Your message dated Mon, 21 May 2012 12:26:14 +0000
with message-id <[email protected]>
and subject line Bug#670542: fixed in synaptic 0.75.11
has caused the Debian Bug report #670542,
regarding synaptic: please adapt deborphan invocation to work with upcoming 
multiarch supporting deborphan
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 [email protected]
immediately.)


-- 
670542: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=670542
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: synaptic


synaptic is the only[1] blocker before deborphan with multiarch support
can be uploaded.  The current synaptic with multiarch support does not
display any package as orphaned if it is used with the upcoming
deborphan release on a multiarch enabled system.  The other reverse
dependencies of deborphan work fine with it.


There are basically two sane ways to fix this:

 * Pass an option to deborphan to let it print it's output in the way
   you like, or teach synaptic to parse both output formats.
 * Reimplement the subset of deborphan that you use.  An advantage of
   this is that this part of synaptic wouldn't require an additional
   package to be installed for finding orphans anymore.


Adapt synaptic to work with multiarch enabled deborphan versions:
-----------------------------------------------------------------
I assume that you don't do anything related to deborphan's keep file,
--exclude lists or --show-deps mode; thus I skip explaining how arch
suffixes are handled in these cases.

If the option --show-arch is used, arch suffixes are always printed,
e.g., 'apt:amd64' instead of 'apt'.  If the option --no-show-arch is
used, arch suffixes are never printed, that is, it's output is the same
as it is since ten years.  If none of these two options is used,
deborphan decides if it prints all packages with arch suffix, or if it
prints all packages without arch suffix.  Since deborphan is for
non-relevant reasons not able to ask dpkg if the system has multiarch
enabled, it instead checks if packages from more than one architecture
are installed ('all' is not considered to be an architecture in this
case).

These options are not documented in the man page due to a missing
plausible use case besides usage in deborphan's frontends.

The correct way to check if the above mentioned option --show-arch
(checking for --no-show-arch is equivalent) is available on a system's
deborphan is:

  $ deborphan --check-option --show-arch >/dev/null 2>&1

The exit status is 0 if and only if the option is available.



Reimplement a subset of deborphan:
----------------------------------
Reimplementing this subset is way more easy that one would expect.
A naive algorithm with quadratic runtime regarding the number of
installed packages is also possible, but the one below should be faster
and it is still simple.  If you already have built a graph of all
package relationships, you could use a simple linear time algorithm.

The algorithm below uses naive set theory and can be implemented using
the standard <algorithm> header:

 * Abort if any package is half-installed, half-configured, unpacked,
   triggers-awaited or triggers-pending.
 * Get a set A of all installed packages that are in section 'libs' or
   'oldlibs', but not in base nor marked as $insert_weired_field_names.
 * Get a set B of all virtual packages provided by any package in A.
 * Create a set C that is a set_union of A and B.  A and B are not
   needed anymore.  (Obviously, if implemented in C++, you wouldn't have
   created three sets up to now.)
 * Get a set D of all Depends: and all Recommends: (summarized under the
   term dependencies from now on) of any installed package, ignoring
   versions.  To be sure that the final result consists only of packages
   that are orphaned, regardless of decisions done by an advanced
   solver, alternative dependencies must be parsed as if there would be
   a dependency on all alternatives, for example, "foo | bar" must be
   considered to be equivalent to "foo, bar".
 * Create a set E that is a set_difference of packages in C but not in
   D.  No package in E has a non-virtual reverse dependency from any
   installed package.
 * For all packages X in E, check if all virtual packages provided by
   package X are also in E.  If all provides are in E, then X has no
   reverse dependency from any virtual package, and due to above point
   no reverse dependency at all.  Since X is also in section libs or
   oldlibs and not in base (see second point), it would be considered to
   be orphaned by deborphan (there are non-relevant historical
   exceptions to this).

The above has one bug, packages depending on them self are never
considered to be an orphan, but this happens rarely.  Circular
dependencies are not detected too, but they are seldom enough to be
ignored in synaptic, and adapting synaptic's UI for circular
dependencies would be a mess.


Regards
Carsten


 [1] The package 'packagesearch' is broken anyway in sid and it is not
     part of precise, so I did not manually check it, nor did I read
     it's source.



--- End Message ---
--- Begin Message ---
Source: synaptic
Source-Version: 0.75.11

We believe that the bug you reported is fixed in the latest version of
synaptic, which is due to be installed in the Debian FTP archive:

synaptic_0.75.11.dsc
  to main/s/synaptic/synaptic_0.75.11.dsc
synaptic_0.75.11.tar.gz
  to main/s/synaptic/synaptic_0.75.11.tar.gz
synaptic_0.75.11_amd64.deb
  to main/s/synaptic/synaptic_0.75.11_amd64.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Michael Vogt <[email protected]> (supplier of updated synaptic package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Mon, 21 May 2012 13:52:30 +0200
Source: synaptic
Binary: synaptic
Architecture: source amd64
Version: 0.75.11
Distribution: unstable
Urgency: low
Maintainer: Michael Vogt <[email protected]>
Changed-By: Michael Vogt <[email protected]>
Description: 
 synaptic   - Graphical package manager
Closes: 388250 626257 670542 670961 672919
Changes: 
 synaptic (0.75.11) unstable; urgency=low
 .
   [  Sergey Alyoshin ]
   * Fix some compiler warnings, closes: #672919
   * Fix missing Help/Contents localization, closes: #670961
 .
   [ Michael Vogt ]
   * add "ctrl-l" accelerator key for downloading the changelog,
     closes: #388250
   * merge patch from Carsten Hey to support multiarch deborphan,
     closes: #670542
   * only try to apply distro specific patches if there are any,
     thanks to  Moritz Muehlenhoff, closes: #626257
Checksums-Sha1: 
 956684b603ee34991ba1d9e512ab35351666c708 1090 synaptic_0.75.11.dsc
 e3996e86cde21fa71382333c3aced7c31fa94d6d 4301534 synaptic_0.75.11.tar.gz
 8ae86e95f3812e63ebe3d34b884e39f88a8ef117 2634340 synaptic_0.75.11_amd64.deb
Checksums-Sha256: 
 fb2b658e7bb24414c7fe61ae877659d9aa90b1b7b401deb72fcbf280d41bc2b5 1090 
synaptic_0.75.11.dsc
 f8e7d3cb73e9f27cfe099b4f265ce91326cb26ca828a03f3e544c2f0e5d7deb1 4301534 
synaptic_0.75.11.tar.gz
 45302b74f0fe6df7534226e9efce4ebc2c043297677d0a1fdcff40bdd7014f1a 2634340 
synaptic_0.75.11_amd64.deb
Files: 
 8b44610d6a9903ee4ad39c6dff6061f8 1090 admin optional synaptic_0.75.11.dsc
 7e855b921373f6493bc43856e5e813f8 4301534 admin optional synaptic_0.75.11.tar.gz
 11fdaa0d94cd7c13f40ec2743e4349c9 2634340 admin optional 
synaptic_0.75.11_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iEYEARECAAYFAk+6LqIACgkQliSD4VZixzRjpgCgj0HMITCJbJ3at85cXrHUhUvS
RbMAn18GsMNxidxN2lcAW6OlzVdWw3ky
=C5l5
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to