[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: binNMU or reproducible builds (choose only one)

On 17/09/15 21:53, Santiago Vila wrote:
> Ok. It may be worth to change the tool to do source-only uploads instead
> (which, combined with the Arch: all autobuilder, should yield the
> same result).

BinNMUs don't upload any source at all. They instruct the autobuilders
to run sbuild with some non-default options ("sbuild --binNMU=2
--make-binNMU "Rebuild with foo 3" foo_1.2-3" will result in
foo_1.2-3+b2_i386.changes, I think), and sbuild on each autobuilder
downloads the foo_1.2-3.dsc that already exists in the archive.

The only inherent conflict that I can see between binNMUs and
reproducible builds is that all attempts to reproduce the original build
need to prepend the same changelog entry as the original build, for
example by copying them from the build info that will already be
necessary to be able to use the same build-dependency versions.

BinNMUs that happen for all architectures + source simultaneously might
be good to have eventually, to remove some of the weird special cases
from packaging; but if the packages where I've tried it recently are a
reasonably representative sample, I'd estimate that about half the
packages that have both arch:any and arch:all are initially going to
FTBFS on the "all" autobuilder, so we shouldn't rush into that.

Historically, maintainers have normally built source, "all" and one
architecture (dpkg-buildpackage without special options; sbuild -As).
That's well-tested and will usually work, and if it doesn't, it quickly
attracts severity:serious bugs. One of Ubuntu's autobuilder
architectures (I think it's amd64?) is also responsible for their
arch:all packages; it builds with dpkg-buildpackage -b (sbuild -A).
That's very similar to a sourceful upload, so in practice it'll also work.

Debian autobuilders, and Ubuntu's other autobuilders, build  with
dpkg-buildpackage -B (sbuild without special options). Again, that's
well-tested and will usually work, and where it doesn't, it's normally

Unlike the approach taken in Ubuntu, the new arch:all autobuilder
specifically only builds "all" even if the source produces arch:any
binaries (dpkg-buildpackage -A, sbuild --arch-all-only[1]), which has
not been frequently tested up until now. In my experience, things that
haven't been tested usually don't work.


[1] no released version of sbuild has this option; it's new in git

Reply to: