Comment 5 for bug 118246

Revision history for this message
Ian Jackson (ijackson) wrote :

dpkg (1.14.5ubuntu1) gutsy; urgency=low

  Merge from debian unstable, remaining changes follow:

  Miscellaneous fixes:
  * Don't consider it a file conflict if the package contains
    a symlink to a directory where another package already contains the
    same symlink/directory and the existing and new symlinks point to the
    same place. (Launchpad 22340, Debian #377682.)
  * mlib contains m_strdup (part of the fix for Debian #379028).
  * Fix formatting of these files:
       lib/showpkg.c
       lib/tarfn.c
       src/configure.c
       src/archives.c (function quote_filename only)
    to conform to the rest of dpkg by running them through
    expand -t2 (and in the last case using M-x indent-rigidly once).
    As discussed on debian-dpkg. Submitted upstream as Debian #375711.
  * scripts/update-alternatives.pl: in the case where the slave is
    inapplicable do not attempt to create the slave link before removing
    it again. This will help alleviate LP #84906 (vim upgrade problems)
    and will generally make things slightly less fragile. Debian #411699.
  * mlib contains m_strdup (part of the fix for Debian #379028).
  * Fix the uninitialized value in string ne at /usr/sbin/update-alternatives
    line 602. Thanks to Ubulette for this patch. (LP: #118246)
    Patch modified by iwj not to ignore lstat failures.
  * Use i686 for lpia in cputable and triplettable.

  Launchpad integration:
  * Implement changelog-closes-bugs for Ubuntu (see
    https://wiki.ubuntu.com/ClosingBugsFromChangelog).
  * Add Launchpad-Bugs-Fixed to dpkg-genchanges too, to make it not
    complain about unknown fields.

  DebianMaintainerField:
  * scripts/dpkg-source.pl: Check that debian/control complies to
    https://wiki.ubuntu.com/DebianMaintainerField: Refuse to build a source
    package if we have an Ubuntu version number, but Maintainer: is not an
    Ubuntu address. Output a warning if there is no XSBC-Original-Maintainer:
    field for packages with an Ubuntu version number.
  * scripts/dpkg-source.pl: Only fail to build the source package if $DEBEMAIL
    contains 'ubuntu'. If not, only print a warning.
  * debian/control: Change Maintainer/XSBC-Original-Maintainer field.

  Implementation of Breaks:
  * References:
     http://lists.debian.org/debian-devel/1997/10/msg00643.html
     https://wiki.ubuntu.com/PackageDependencyFieldBreaks
     Debian #379140.
  * Manpages mention Breaks: deb-control.5, dpkg-query.1, dpkg.1.
  * Support for Breaks in dpkg-source, dpkg-gencontrol et al.
  * Support for Breaks in the code in dpkg.
  * Breaks is ignored by dselect.
  * Fix for Debian #378003 (multiple deconfigurations) is
    mixed in with Breaks implementation.
  * Declare Breaks against older dpkg-dev rather than Conflicts.
  * Decisions made:
    * Specifying Breaks: <virtual package> is fairly meaningless
      without versioned Provides but to make versioned Provides easier
      in the future we support it fully.
    * We do not transitively deconfigure things when we deconfigure
      due to Breaks, just as we don't do so when we deconfigure due
      to removal due to Conflicts (see also Debian #378009).
    * Just as for deconfiguration due to Conflicts, we don't deconfigure
      Essential packages without --force-remove-essential.
    * We aren't willing to deconfigure more than one package as a result
      of a single element of a Breaks, just as we aren't willing to
      remove more than one package as a result of a single element of
      a Conflicts. (Note that this can only occur due to virtual
      packages so it can be worked around by specifying the individual
      real packages instead.)
    * We're happy to deconfigure a package that's on hold even if
      afterwards, due to Breaks, there might not be a way to reconfigure it.
      (This is analogous to the situation where we install a package which
      no longer satisfies the dependencies of an on-hold package; it's not
      clear what the right answer is.)
    * We invent a new --force-breaks which does much the
      same as --force-conflicts.
    * --ignore-depends works for Breaks even though it doesn't work
      for Conflicts.
    * <deconfigured's prerm> deconfigure in-favour <installing> <ver>
        as well as
      <deconfigured's prerm> deconfigure in-favour <installing> <ver> \
                                       removing <conflictor> <ver>
      and of course the corresponding
    <deconfigured's postinst> abort-deconfigure in-favour <installing> <ver>

 -- Ian Jackson <email address hidden> Wed, 11 Jul 2007 16:26:17 +0100