On Mon, Jun 02, 2025 at 01:55:24PM -0400, Zack Weinberg wrote: > On Mon, Jun 2, 2025, at 12:12 PM, Nick Bowler wrote: > > On Sun, Jun 01, 2025 at 06:48:38PM -0500, Bob Friesenhahn wrote: > >> It seems a shame that a distribution tarball will lack a source file > >> due to makefile build rules. Build rules are a simple technical > >> issue, which have been solved before, and are even already supported > >> by Automake. > > > > I agree wholeheartedly. The bootstrap script forms part of the > > corresponding source code for configure and should definitely be > > included in the distribution. > > I generally agree with this. Everything that is needed to do > development on Automake should be included in each Automake tarball > release. [Footnote: I can see an argument that "everything that is > needed to do development" is in fact *the complete VCS history*, but > that goes against the entire tradition of making tarballs so let's not > go there today.]
I hear variations of this argument a lot. I think it comes from the mistunderstanding of what a source distribution is for. "Everything needed to do development" is the wrong standard. The entire purpose of a source distribution is to give users the four freedoms, in particular freedoms 1 and 3: - The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1) ... - The freedom to distribute copies of your modified versions to others (freedom 3) ... Put another way, the source bundle should have everything needed in order to prepare, use, and distribute a modified version of the software. This would include preparing a modified version of the packaged configure script. Anything more than this is optional. There is an endless number of things you could include in a distribution which would be *useful* for doing these things, but are not *needed*. This would include things like the design documentation, scanned copies of the developer's notebooks, detailed change history, etc.: useful to have but not essential. One of the changes in version 3 of the GNU GPL over version 2 was an explicit definition of the term "corresponding source" as a subset of the wider source code: "all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities." This seems to me like the standard that GNU should follow in all of its source distributions. Cheers, Nick