* Neal Gompa:
On Tue, May 5, 2020 at 1:33 PM Florian Weimer fweimer@redhat.com wrote:
- Neal Gompa:
In the merged-source world, the packaging is an aspect of managing the software codebase. This is common in Debian and ALT Linux, where the standard practice with their tooling is to fork the codebase and integrate the packaging files into the tree. Changes then are managed as part of evolving the sources, and packaging is mainly touched when preparing to push to build. And for $DAYJOB, I've implemented this model for software that $DAYJOB makes (we use the split-source model for stuff we didn't write).
This is not an accurate representation of what Debian does. The guidelines and tools very much encourage broken-out patches. The representation is slightly different (via the “debian” subdirectory in a source tree), but this does not mean that you can just change files outside the “debian” directory (i.e., upstream sources), build the Debian SRPM equivalent, and have it built.
Debian *does* have this merged-source model. There are two variants of this model:
- merged source with patch trees (debian 2.0/3.0 formats)
- merged source with no patch trees (debian 1.0 format)
There is no singular SRPM equivalent, this differs across variants:
- singular source tarball (debian 1.0 format)
1.0 covers both singular source tarball (so-called native package) and tarball plus .diff.gz file.
- source tarball + compressed super-patch (debian 2.0 format)
- source tarball + debian folder tarball (debian 3.0 format)
Actually, 2.0 and 3.0 (quilt) both have broken-out patches. 3.0 (native) is very similar to 1.0 without a separate patch file.
The 3.0 source format is the closest to our model.
And the tools (and not just them) push you gently towards using the 3.0 (quilt) format, so most packages do. And in that case, you cannot simply make changes to the source tree and build a new source package.
Even with the original .orig.tar.gz plus .diff.gz approach, *many* packages had broken-out patches in debian/patches and used various approaches to apply them during the build. The 3.0 (quilt) format just made that part declarative.
Thanks, Florian