Hi, Quoting Stephen Kitt (2019-08-06 18:43:24) > > recently there was some discussion about this in #debian-apt. I don't have > > the logs of that discussion so others might want to expand on what I > > remember from back then. In no particular order plus my own thoughts. > > > > apt developers are in favour of such a feature but it would need > > implementation in dpkg first. This means that dpkg would have to also track > > "installed" (unpacked) source packages in /usr/src in a similar way of how > > it currently tracks installed binary packages. > > > > Tons of software that parses the Build-Depends field has to be patched. At > > least: dpkg, sbuild, apt, debhelper, cdbs, pbuilder, lintian, dose3, > > wanna-build, dak, devscripts, python-debian, libconfig-model-perl, augeas, > > haskell-debian, dh-exec, autopkgtest... > > Could we avoid (some of) this by treating “source” as a new architecture? > There would be a mostly do-nothing buildd which would repack the source > package as a binary package in /usr/src/... > > That would still mean we’d have to add meaningful arch-qualified > build-dependencies in all the affected tools, and it doesn’t help with the > transitive dependencies (although the binary package containing the source > could carry the appropriate dependencies), so perhaps it’s not such a great > idea.
sure, it could work in theory. It would just be very ugly. Lets have a look at how this would look like: To get the raw sources in /usr/src you would generate around 31000 new binary packages of the "source" architecture. These would have to be Multi-Arch:foreign so that they can satisfy dependencies coming from source packages being built for any architecture. I don't see a way to express the Architecture field of source packages via this method, which is another downside. As you already point out, properly encoding build dependencies that way is another can of worms. For this to work, you would have to generate meta packages for every architecture we support for every source package. This is so that the host architecture gets properly forwarded down the dependency graph. This would mean another few hundred thousand more binary packages. The large number of binary packages needed with this method could of course be reduced if only selected source packages get built that way. But such a method already exists in the form of foo-source binary packages. Changing the build dependency syntax instead would have the advantage, that we do not need more binary or source packages at all because all the necessary logic would come from the resolvers themselves. Thanks! cheers, josch
signature.asc
Description: signature