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

Bug#794194: marked as done (britney: Strip off Multi-Arch qualifiers in reverse dependency calculation)



Your message dated Tue, 07 Aug 2018 19:21:00 +0000
with message-id <fdaa549e-a742-3c27-c263-3fb41c03b51f@thykier.net>
and subject line Re: release.debian.org: Update Ubuntu patch
has caused the Debian Bug report #794194,
regarding britney: Strip off Multi-Arch qualifiers in reverse dependency calculation
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
794194: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=794194
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
Tags: patch
User: release.debian.org@packages.debian.org
Usertags: britney

Hello,

in Ubuntu's britney instance (which triggers autopkgtests for gating
unstable → testing promotion) we noticed that some reverse
dependencies were not being triggered, for example:

   Package: ipython3
   Depends: python3:any (>= 3.3.2-2~)

(Dep list trimmed). This is because britney's reverse dependency
calculation tries to look up "python3:any" in the package map, which
isn't a valid package name. Thus these multi-arch qualifiers should be
stripped off in register_reverses().

Attached patch does that.

Thanks for considering,

Martin
-- 
Martin Pitt                        | http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)
From f885961b7c74e531e66d5815ff66227a6addaaa3 Mon Sep 17 00:00:00 2001
From: Martin Pitt <martin.pitt@ubuntu.com>
Date: Fri, 31 Jul 2015 08:57:48 +0200
Subject: [PATCH] Consider packages with M-A qualifiers in reverse dependency
 map

Strip of Multi-Arch qualifiers like ":any" or ":native" in register_reverses()
for the dictionary lookup, as they are not part of the package name.

This will fix cases like

  Package: ipython3
  Depends: python3:any (>= 3)

and include ipython3 in python3's reverse dependencies.

Signed-off-by: Martin Pitt <mpitt@debian.org>
---
 britney_util.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/britney_util.py b/britney_util.py
index 346bac3..653cadb 100644
--- a/britney_util.py
+++ b/britney_util.py
@@ -233,7 +233,8 @@ def register_reverses(packages, provides, check_doubles=True, iterator=None,
         # go through the list
         for p in dependencies:
             for a in p:
-                dep = a[0]
+                # strip off Multi-Arch qualifiers like :any or :native
+                dep = a[0].split(':')[0]
                 # register real packages
                 if dep in packages and (not check_doubles or pkg not in packages[dep][RDEPENDS]):
                     packages[dep][RDEPENDS].append(pkg)
-- 
2.5.0

Attachment: signature.asc
Description: Digital signature


--- End Message ---
--- Begin Message ---
On Tue, 20 Dec 2016 11:46:40 +0100 Paul Gevers <elbrus@debian.org> wrote:
> Package: release.debian.org
> Followup-For: Bug #794194
> User: release.debian.org@packages.debian.org
> Usertags: britney
> Control: tags 794194 -moreinfo
> 
> While diving into debci/britney integration, I noticed that the Ubuntu patch to
> fix this issue isn't up-to-date anymore in this bug. It seems that the current
> implementation in Ubuntu is answering the concerns.
> 
> Paul
> P.s. I may try to commit the fix myself to the GitHub archive, but I try
> to focus a little bit, so I thought to at least let this bug know.
> 
> [...]

Hi,

Thanks for working on improving Britney.

I believe this bug has been fixed (differently).  The following snippet
from get_dependency_solvers handles :any and :native (a bit more strict
than simply stripping them).

"""
                elif build_depends:
                    # Multi-arch handling for build-dependencies
                    # - :native is ok iff the target is arch:any
                    if archqual == 'native' and [...] != 'all':
                        packages.append(name)

                # Multi-arch handling for both [...]
                # - :any is ok iff the target has "M-A: allowed"
                if archqual == 'any' and [...]_arch == 'allowed':
                    packages.append(name)
"""


If there are issues with the code, please open a new bug (preferably
with a test case) and we will review the situation.  I admit that
virtual packages may still have issues (it is not clear to me that dpkg
and apt accepts these virtual packages that are marked :any/:native - or
even what that means).

Thanks,
~Niels

--- End Message ---

Reply to: