Package: dpkg-dev
Version: 1.18.10
Severity: wishlist

I've just reported the FTBFS bug for a slang2 upload that failed on all
buildds due to a non-parallel-safe upstream build system. It appears that
all our official buildds build with DEB_BUILD_OPTIONS=parallel=n for n >= 2,
so any Architecture: any package that fails when built like that is de
facto RC-buggy already.

It occurs to me that if dpkg-buildpackage defaulted to a parallel build
on hardware with multiple cores, then in practice maintainers would never
upload packages with this failure mode, because in practice maintainers
are using PCs with two or more cores. Also, test builds and final-upload
builds by maintainers who do not yet know about the -J option would go
faster, saving them time.

Unlike -jauto, -Jauto respects "dh --no-parallel", making it relatively safe
to use everywhere - particularly since our buildds are already using
DEB_BUILD_OPTIONS=parallel=n anyway.

The one difference that I would advocate in a default behaviour (and
perhaps for -Jauto itself) is that according to its documentation,
-Jauto falls back to an unlimited number of threads (make -j) if the
number of CPU cores cannot be determined. For memory-hungry compilations,
particularly C++, this causes everything to grind to a halt or even get
hit with the OOM killer. It seems to me that using some arbitrary number
of threads, perhaps the equivalent of -J2 or -J4, might be a better
fallback behaviour if the number of cores cannot be determined.

-- System Information:
Debian Release: stretch/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'unstable'), (500, 'testing'), 
(500, 'stable'), (1, 'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.7.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages dpkg-dev depends on:
ii  base-files    9.6
ii  binutils      2.27-9+b1
ii  bzip2         1.0.6-8
ii  libdpkg-perl  1.18.10
ii  make          4.1-9
ii  patch         2.7.5-1
ii  tar           1.29b-1.1
ii  xz-utils      5.2.2-1.2

Versions of packages dpkg-dev recommends:
ii  build-essential          12.2
ii  clang-3.6 [c-compiler]   1:3.6.2-4
ii  clang-3.8 [c-compiler]   1:3.8.1-13
ii  fakeroot                 1.21-2
ii  gcc [c-compiler]         4:6.1.1-1
ii  gcc-6 [c-compiler]       6.2.0-10
ii  gnupg                    2.1.15-8
ii  gnupg2                   2.1.15-8
ii  gpgv                     2.1.15-8
ii  libalgorithm-merge-perl  0.08-3
ii  pseudo [fakeroot]        1.8.1+git20161012-2

Versions of packages dpkg-dev suggests:
ii  debian-keyring  2016.09.04

-- no debconf information

Reply via email to