Some good answers here already, especially for your question where requirements are found in Open Source projects. Let me say something about athe reasons, why is it hard to find a formal spec document for such projects.
SRSs make most sense in projects with an economical interest between two parties. Some customer / client / employer requires some software and may be willing to invest some time and money. But to make sure they will something in return which will have enough value to balance the invested money, they are asking a potential contractor or employee for a detailed description of what they will get in return, something which is detailed enough for making a contract or to justify the expected effort. That's typically the primary motivation behind creating a requirements specification.
In most Open Source projects, especially FOSS projects, the motivation behind the development is usually different. Most often, FOSS authors aredo not havinghave the primary interest of selling their programs to someone else,else; otherwise, they would not disclose the whole source code. Often, they are trying to develop something for a domain they are interested in for themselves, maybe for educational purposes, maybe for solving a problem they are personally interested in, maybe for research purposes, for cooperation with others, or for building some reputation.
I think it is quite obvious that in the latter situation a detailed spec is way less important than in the former situation. That does not mean each commercial project will always have a detailed spec, or FOSS projects never have one, but it means that in FOSS projects chances are way lower to find a formal spec than in closed-source commercial projects.
To learn more about the typical motivations in FOSS projects, I would recommend to have ayou look into Eric S. Raymond's book "The Cathedral and the Bazzar"Bazaar".