This also causes crashes in python-apt due to a off-by-one error in size
checking there, see 1694702

** Description changed:

+ [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 |
+     debhelper (>= 9), libnacl-dev [amd64] | libnacl-dev [i386]
+  => debhelper (>= 9), libnacl-dev |
  
  Which can cause python-apt to crash.
  
  Even worse:
  
-      debhelper (>= 9), libnacl-dev [amd64] | libnacl-dev [i386], foobar
-   => debhelper (>= 9), libnacl-dev [amd64] | foobar
+      debhelper (>= 9), libnacl-dev [amd64] | libnacl-dev [i386], foobar
+   => debhelper (>= 9), libnacl-dev [amd64] | foobar
  
+ [Test case]
+ TODO
+ 
+ [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.

-- 
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:
  In Progress

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 to crash.

  Even worse:

       debhelper (>= 9), libnacl-dev [amd64] | libnacl-dev [i386], foobar
    => debhelper (>= 9), libnacl-dev [amd64] | foobar

  [Test case]
  TODO

  [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

Reply via email to