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

Should argument order matter to 'dpkg --install' ?



I'm splitting my libxmltv-perl package into several other binary
packages that provide pieces of the original package (the control file
is attached).  The split occurrs at 0.5.5-1, although I'm currently at
0.5.5-3 (the latest version released in the archive is 0.5.2-3).  I've
been tweaking and testing, trying to make sure that the upgrade path is
clean both from old versions of my libxmltv-perl package and also from
old versions of some unofficial xmltv packages that are out there and
are (were) maintained by others.

I've tested every upgrade combination I can think of with apt-get, out
of my own apt source, starting five versions back with my .debs and
using all of the unofficial .debs I have.  Everything works fine.

After I finished that, I started testing with dpkg, just to make sure
that everything would work if people installed things by hand.  I'm not
sure I understand the result I got.  Essentially, upgrading fails
sometimes depending on the order of the arguments to dpkg.

For instance, with libxmltv-perl 0.5.2-3 previously installed, I get
these two different results.  This argument order works:

   # dpkg --install libxmltv-perl_0.5.5-3_all.deb \
                    xmltv-util_0.5.5-3_all.deb    \
                    xmltv-gui_0.5.5-3_all.deb     \
                    xmltv_0.5.5-3_all.deb

   (Reading database ... 70964 files and directories currently installed.)
   Preparing to replace libxmltv-perl 0.5.2-3 (using libxmltv-perl_0.5.5-3_all.deb) ...
   Unpacking replacement libxmltv-perl ...
   Selecting previously deselected package xmltv-util.
   Unpacking xmltv-util (from xmltv-util_0.5.5-3_all.deb) ...
   Selecting previously deselected package xmltv-gui.
   Unpacking xmltv-gui (from xmltv-gui_0.5.5-3_all.deb) ...
   Selecting previously deselected package xmltv.
   Unpacking xmltv (from xmltv_0.5.5-3_all.deb) ...
   Setting up libxmltv-perl (0.5.5-3) ...
   Setting up xmltv-util (0.5.5-3) ...
   Setting up xmltv-gui (0.5.5-3) ...
   Setting up xmltv (0.5.5-3) ...

Note that dpkg upgrades libxmltv-perl to the new version, and then
installs everything else.

However, this argument order does not work:

   # dpkg --install xmltv_0.5.5-3_all.deb         \
                    libxmltv-perl_0.5.5-3_all.deb \
                    xmltv-util_0.5.5-3_all.deb    \
                    xmltv-gui_0.5.5-3_all.deb

   Selecting previously deselected package xmltv.
   dpkg: considering removing libxmltv-perl in favour of xmltv ...
   dpkg: yes, will remove libxmltv-perl in favour of xmltv.
   (Reading database ... 70964 files and directories currently installed.)
   Unpacking xmltv (from xmltv_0.5.5-3_all.deb) ...
   Selecting previously deselected package libxmltv-perl.
   Unpacking libxmltv-perl (from libxmltv-perl_0.5.5-3_all.deb) ...
   Selecting previously deselected package xmltv-util.
   Unpacking xmltv-util (from xmltv-util_0.5.5-3_all.deb) ...
   Selecting previously deselected package xmltv-gui.
   Unpacking xmltv-gui (from xmltv-gui_0.5.5-3_all.deb) ...
   dpkg: dependency problems prevent configuration of xmltv:
    xmltv depends on libxmltv-perl (>= 0.5.5-1); however:
     Package libxmltv-perl is not installed.
   dpkg: error processing xmltv (--install):
    dependency problems - leaving unconfigured
   dpkg: error processing libxmltv-perl (--install):
    no package named `libxmltv-perl' is installed, cannot configure
   dpkg: dependency problems prevent configuration of xmltv-util:
    xmltv-util depends on libxmltv-perl (>= 0.5.5-1); however:
     Package libxmltv-perl is not installed.
   dpkg: error processing xmltv-util (--install):
    dependency problems - leaving unconfigured
   dpkg: dependency problems prevent configuration of xmltv-gui:
    xmltv-gui depends on libxmltv-perl (>= 0.5.5-1); however:
     Package libxmltv-perl is not installed.
    xmltv-gui depends on xmltv-util (>= 0.5.5-1); however:
     Package xmltv-util is not configured yet.
   dpkg: error processing xmltv-gui (--install):
    dependency problems - leaving unconfigured
   Errors were encountered while processing:
    xmltv
    libxmltv-perl
    xmltv-util
    xmltv-gui

Note that here, dpkg doesn't upgrade libxmltv-perl first.  Instead,
it notices (correctly?) that the new xmltv package conflicts with the
old libxmltv-perl package, and removes the old libxmltv-perl package.
However, at that point, dpkg seems to lose the libxmltv-perl .deb that
is later on the command line.  First, it doesn't see anything to satisfy
xmltv's dependency on libxmltv-perl, and then it tries to configure
libxmltv-perl and can't find it.

Is this expected behavior?  Or have I perhaps made some subtle mistake
in my control file?  If this is expected behavior and I haven't made a
mistake, can someone explain why it works this way?

Is this perhaps related to bug #170825 from last month?  I took a quick
look through the dpkg bug list and didn't see anything else that seemed
similar.

Thanks for the help!

KEN

-- 
Kenneth J. Pronovici <pronovic@ieee.org>
Personal Homepage: http://www.skyjammer.com/~pronovic/
"They that can give up essential liberty to obtain a little 
 temporary safety deserve neither liberty nor safety." 
      - Benjamin Franklin, Historical Review of Pennsylvania, 1759 
Source: xmltv
Section: interpreters
Priority: optional
Maintainer: Kenneth J. Pronovici <pronovic@ieee.org>
Build-Depends-Indep: debhelper (>> 4.1.0), perl (>= 5.8.0), perl-modules, python (>= 1.5), libxml-twig-perl (>= 3.09-1), libxml-writer-perl, libdate-manip-perl, libwww-perl, libhtml-parser-perl, libhtml-tableextract-perl (>= 1.08-1), libterm-progressbar-perl, libcompress-zlib-perl, liblingua-preferred-perl, libunicode-string-perl, liblingua-en-numbers-ordinate-perl, liblog-tracemessages-perl, libcgi-pm-perl, perl-tk, libtk-tablematrix-perl, libxml-simple-perl
Standards-Version: 3.5.8

Package: xmltv
Architecture: all
Depends: libxmltv-perl (>= 0.5.5-1), xmltv-util (>= 0.5.5-1), xmltv-gui (>= 0.5.5-1)
Conflicts: libxmltv-perl (<< 0.5.5-1)
Replaces: libxmltv-perl (<< 0.5.5-1)
Description: Functionality related to the XMLTV file format for TV listings
 Gather television listings, process them and organize your viewing.
 XMLTV is a file format for storing TV listings, defined in xmltv.dtd.
 This is a meta-package that installs all of the XMLTV pieces.
 .
 This package is intended mainly for end-users who will run XMLTV
 programs directly.  Maintainers of other packages that rely on XMLTV
 functionality should consider depending on one or more of the related
 packages (libxmltv-perl, xmltv-util, xmltv-gui) as needed instead of
 this meta-package.
 .
 http://membled.com/work/apps/xmltv/

Package: libxmltv-perl
Architecture: all
Depends: perl (>= 5.8.0), perl-modules, libxml-twig-perl (>= 3.09-1), libxml-writer-perl, libdate-manip-perl
Recommends: xmltv-util (>= 0.5.5-1)
Suggests: xmltv-gui (>= 0.5.5-1)
Conflicts: xmltv (<< 0.5.5-1)
Replaces: xmltv (<< 0.5.5-1)
Description: Perl libraries related to the XMLTV file format for TV listings
 Gather television listings, process them and organize your viewing.
 XMLTV is a file format for storing TV listings, defined in xmltv.dtd.
 This package includes Perl libraries that are part of the XMLTV
 package, as well as the XML DTD itself.
 .
 http://membled.com/work/apps/xmltv/

Package: xmltv-util
Architecture: all
Depends: perl (>= 5.8.0), perl-modules, python (>= 1.5), libxmltv-perl (>= 0.5.5-1), libxml-twig-perl (>= 3.09-1), libxml-writer-perl, libdate-manip-perl, libwww-perl, libhtml-parser-perl, libhtml-tableextract-perl (>= 1.08-1)
Recommends: libterm-progressbar-perl, libcompress-zlib-perl, liblingua-preferred-perl, libunicode-string-perl, liblingua-en-numbers-ordinate-perl, liblog-tracemessages-perl
Suggests: xmltv-gui (>= 0.5.5-1), libcgi-pm-perl
Conflicts: xmltv (<< 0.5.5-1), libxmltv-perl (<< 0.5.5-1)
Replaces: xmltv (<< 0.5.5-1), libxmltv-perl (<< 0.5.5-1)
Description: Utilities related to the XMLTV file format for TV listings
 Gather television listings, process them and organize your viewing.
 XMLTV is a file format for storing TV listings, defined in xmltv.dtd.
 This package includes general programs that are part of the XMLTV
 package, such as various "grabbers" to get TV listings from online
 providers and also utilities to manipulate such listings.
 .
 The upstream CGI (web) front-end example is also included as part of
 the documentation.
 .
 http://membled.com/work/apps/xmltv/

Package: xmltv-gui
Architecture: all
Depends: perl (>= 5.8.0), perl-modules, libxmltv-perl (>= 0.5.5-1), xmltv-util (>= 0.5.5-1), perl-tk, libtk-tablematrix-perl, libxml-simple-perl, libdate-manip-perl, libwww-perl
Conflicts: xmltv (<< 0.5.5-1), libxmltv-perl (<< 0.5.5-1)
Replaces: xmltv (<< 0.5.5-1), libxmltv-perl (<< 0.5.5-1)
Description: Graphical user interface related to the XMLTV file format
 Gather television listings, process them and organize your viewing.
 XMLTV is a file format for storing TV listings, defined in xmltv.dtd.
 This package includes the GUI (graphical user interface) front-end 
 program tv_check.
 .
 http://membled.com/work/apps/xmltv/

Attachment: pgpP3lKLxsxZF.pgp
Description: PGP signature


Reply to: