This bug was fixed in the package apt - 1.2.24 --------------- apt (1.2.24) xenial; urgency=medium
* Microrelease covering fixes of 1.4.6 * Fix parsing of or groups in build-deps with ignored packages (LP: #1694697) * apt.systemd.daily: Use unattended-ugrade --download-only if available. Instead of passing -d, which enables a debugging mode; check if unattended-upgrade supports an option --download-only (which is yet to be implemented) and use that (Closes: #863859) apt (1.2.23) xenial; urgency=medium * Microrelease covering fixes of 1.4.4 [ Alan Jenkins ] * apt.systemd.daily: fix error from locking code (Closes: #862567) apt (1.2.22) xenial; urgency=medium [ Julian Andres Klode ] * Run unattended-upgrade -d in download part * apt.systemd.daily: Add locking * Split apt-daily timer into two (LP: #1686470) [ Matt Kraai ] * bash-completion: Fix spelling of autoclean (Closes: #861846) apt (1.2.21) xenial; urgency=medium * Microrelease covering fixes of 1.4 and 1.4.1 [ Julian Andres Klode ] * Ignore \.ucf-[a-z]+$ like we do for \.dpkg-[a-z]+$ * systemd: Rework timing and add After=network-online (was LP #1615482) [ David Kalnischkies ] * Fix and avoid quoting in CommandLine::AsString (LP: #1672710) [ Unit 193 ] * apt-ftparchive: Support '.ddeb' dbgsym packages -- Julian Andres Klode <juli...@ubuntu.com> Mon, 19 Jun 2017 13:58:04 +0200 ** Changed in: apt (Ubuntu Xenial) Status: Fix Committed => Fix Released -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to apt in Ubuntu. https://bugs.launchpad.net/bugs/1694697 Title: build-depends keeps OR flag if end of or group is ignored Status in apt package in Ubuntu: Fix Released Status in apt source package in Trusty: New Status in apt source package in Xenial: Fix Released Status in apt source package in Yakkety: Won't Fix Status in apt source package in Zesty: Fix Committed Bug description: [Impact] If the last alternative(s) of an Or group is ignored, because it does not match an architecture list, we would end up keeping the or flag, effectively making the next AND an OR. For example, when parsing (on amd64): debhelper (>= 9), libnacl-dev [amd64] | libnacl-dev [i386] => debhelper (>= 9), libnacl-dev | Which can cause python-apt and apt-get build-dep to crash. Even worse: debhelper (>= 9), libnacl-dev [amd64] | libnacl-dev [i386], foobar => debhelper (>= 9), libnacl-dev [amd64] | foobar [Test case] On amd64: cat > segv.dsc << EOF Format: 3.0 (native) Source: foobar Binary: foobar Architecture: all Version: 1 Maintainer: Joe Sixpack <j...@example.org> Build-Depends: build-essential [amd64] | build-essential [fancy] Standards-Version: 3.9.8 EOF cat > failure.dsc << EOF Format: 3.0 (native) Source: foobar Binary: foobar Architecture: all Version: 1 Maintainer: Joe Sixpack <j...@example.org> Build-Depends: build-essential [amd64] | build-essential [fancy], a-non-existing-package Standards-Version: 3.9.8 EOF (1) apt-get build-dep -s ./segv.dsc should succeed instead of crash (2) apt-get build-dep -s ./failure.dsc should complain about "Depends: a-non-existing-package but it is not installable" instead of succeeding. This is the same test as run by CI and autopkgtests, so if they pass the tests passed. You can also run apt-get build-dep -s dq for a real life example that should not segfault. [Regression Potential] apt-get build-dep and friends can now fail where they succeeded previously for packages that employ architecture-limited alternatives in their build depends, as in the second example given above, because now additional packages need to be installed (which is correct, though). [Other info] By setting the previous alternatives Or flag to the current Or flag if the current alternative is ignored, we solve the issue. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1694697/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp