On Sun, Aug 19, 2018 at 10:13:56PM +0200, Philip Hands wrote: > Adrian Bunk <b...@debian.org> writes: > > ... > >> "The source" is what you get after steps 1 and 2. > > > > Why is "The source" what you get after dpkg applied patches, > > but before debian/rules applied patches? > > I agree with Sean's point about it being a matter of definition relating > to when we invoke debian/rules, but for an alternative justification one > might look at this: > > For the Debian Maintainer, what is the preferred form of modification?
The maintainer might actually know how his self-written patching machinery works. I am doing plenty of bugfixing in packages I do not maintain, and the complex build machineries of some packages can be a real timeconsuming pain in some body part. It is also frustrating when you end up spending hours trying to find a bug in the wrong sources. > It could be the source before the patches are applied (especially if > they're working on a patch to be sent upstream), but really, chances are > that it's actually the state of the source after the Debian patches are > applied. So for src:gcc-8 the preferred form of modification are three tarballs that are not even unpacked, and none of the patches applied? > It is almost certainly _not_ the state that source might get transformed > into at some point during the build process. Why not? It gets transformed into the sources that actually get built. These are the relevant sources when debugging some FTBFS or segfault. > It is also almost certainly not the alternative version of the source > that results from applying a patch series that only gets applied if they > unpack the source on a different vendor's OS. "different vendor's OS" is only a small part of the general problem. How should we handle architecture-specific patches properly inside Debian? This is part of the same general problem that the notion of exactly one "the sources" is misguided when it comes to what actually gets compiled. It is a real problem that there is no standard way to look on an amd64 machine at the src:gcc-8 sources that will actually get built on armel. And I cannot blame the maintainer, since there is no standard way to express things like e.g.: - "apply the Linaro patches only on arm* and only in Ubuntu" - "apply the Hurd patches that might touch generic code only on Hurd" > Cheers, Phil. cu Adrian -- "Is there not promise of rain?" Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. "Only a promise," Lao Er said. Pearl S. Buck - Dragon Seed