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