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

dpkg 0.93.64: non-serious bugfix, cleanups



There is a bug in 0.93.63 which can cause it to die with an assertion
failure if the configuration of an important package fails.  The
problem is not serious, though, as no packages should be missed that
could have been configured, and repeating the configuration attempt
should work right (in the sense that it will give the correct error
messages).

There are also a few terminology and option cleanups, which will break
Carl's current access method scripts.  I hope to have revised access
methods available soon.

I plan to make this version of dpkg beta some time around Friday if
there are no serious problems with it before then.  Please test it if
possible, but please still be careful.

dpkg (0.93.64) ALPHA; priority=MEDIUM

  * dpkg marks a package as no longer `to be configured in this run'
    when an error occurs, so that other packages which depend on it
    will fail (rather than causing a loop and an assertion failure,
     packages.c:166: failed assertion `dependtry <= 4').

  * dselect initial selection granularity is single-package.
  * dpkg --no-also-select option renamed to --selected-only (old option
    still accepted, but no longer in --help).  Changed -N to -O.

  * dselect `update' option changed to `install' (and other options
    renamed too).  NB: old access methods will not work, because
    the `update' script should now be an `install' script.

  * dselect `installation methods' renamed to `access methods'.
  * dpkg --skip-same-version and --refuse-downgrade produce friendlier
    messages when they skip packages.
  * --licence option now properly mentioned in all programs' --version
    messages.

  * bad fix for ELF compile problem involving myopt.h removed (compile
    problem turned out to be a GCC bug.)

 -- Ian Jackson <iwj10@cus.cam.ac.uk>  Tue, 1 Aug 1995 03:03:58 +0100

5ba375c310bd545819ff7457e531fec8  dpkg-0.93.64.deb
5614f1a9a4aeda579ac2f76e810a2de9  dpkg-0.93.64.nondebbin.tar.gz
efc7e50ec08bde491ce1cda730993cf5  dpkg-0.93.64.tar.gz
-rw-r--r--   1 root     root       384139 Aug  1 04:10 dpkg-0.93.64.deb
-rw-rw-r--   1 root     ian        382191 Aug  1 04:07 dpkg-0.93.64.nondebbin.tar.gz
-rw-rw-r--   1 ian      ian        219193 Aug  1 03:56 dpkg-0.93.64.tar.gz

This is the new C dpkg, available for alpha testing.

To be a candidate alpha tester you need:
 1. To be competent.  You need to know at least roughly how dpkg
    is supposed to work, and you need to be able to edit
    /var/lib/dpkg/status.
 2. Backups of your system.  This version of dpkg has code that can
    call `rm -rf -- <something>' !  I have hedged it with checks,
    but something might go wrong.
 3. Coredumps enabled.

Features in the new release include:
 * Full support for virtual packages.
 * Completely rewritten in C - much faster.
 * No longer vulnerable to bugs in `tar' (better handling of
   symlinks, etc).
 * Better conffiles handling - tends to prompt less about
   files the user has never heard of, and also doesn't routinely
   displace the users' files while unpacking the archive.
 * Better handling of files that always need to be present -
   no more need to use `ln' and `mv' in the maintainer scripts.
 * Better handling of files from one package which overwrite
   some from another.
 * More maintainable.


IMPORTANT: there is a problem with conffiles that will only happen
once, but it will happen to ordinary users as well as you alpha
testers:

The conffile naming scheme for unpacked but not configured packages
has changed in this version.  It used to be <foo>.dpkg-tmp for the
user's version and <foo> for the package maintainer's new one.  These
are now <foo> and <foo>.dpkg-new respectively.

This means that the users files are not messed about with
unnecessarily, but it does mean that if you use the new dpkg to
configure a package unpacked with an earlier version, but not yet
configured, YOU WILL LOSE YOUR CONFIGURATION INFORMATION.

You should be aware of this, and use the old Perl dpkg to get packages
in an appropriate state before installing dpkg 0.93.50.

YOU SHOULD INSTALL DPKG 0.93.50 IN A DPKG RUN ALL ON ITS OWN.  This is
for the same reason - if anything goes wrong, you may find yourself
with dpkg 0.93.50 on the system and some unconfigured packages that
you can't fix.

The preinst script will notice that you're upgrading from pre-0.93.50,
warn you and give you the option to back out of the installation.  It
will also spot packages which are in `bad' states and offer to abort
the installation, and let you know what to do after you've aborted.

The Perl version (equivalent to 0.93.42.3) is also installed, as
`perl-dpkg'.  Don't use it unless absolutely necessary.


Known issues outstanding are:
 * Dependency and conflict processing needs better testing.  If you
   notice odd behaviour please report it, with a copy of your
   /var/lib/dpkg/status file and details of what you did.  Use
   --force-depends, or --ignore-depends=<package>, if necessary.
 * There is no support for reassembling split packages.
 * There are no options yet to set conffiles update behaviour.
 * The binary is currently statically linked, unstripped and contains
   debugging symbols.  It has some malloc-paranoia enabled too.
   I'll change this when the new dpkg is beta.


When you report a bug whose cause isn't immediately obvious, bear in
mind that the following information may make it much easier for me to
find the problem:

(i) If the bug is reproducible, provide the output of running dpkg
   with some useful combination of debugging flags:
              dbg_general=           00001,
              dbg_scripts=           00002,
              dbg_eachfile=          00010,
              dbg_eachfiledetail=    00100,
              dbg_conff=             00020,
              dbg_conffdetail=       00200,
              dbg_depcon=            00040,
              dbg_depcondetail=      00400,
              dbg_veryverbose=       01000,
              dbg_stupidlyverbose=   02000,
   Specify any combination of these using -D<octal>.  -D7777 is likely
   to be very large - if I need that much detail I'll mail you and ask
   for it.

(ii) If you get a segfault: ensure you get a core file, and at the
   very least run gdb on it and mail me the output of `where'.  If
   it's not too large (500Kb, say) gzip it, uuencode it and mail it to
   me in a separate message.  Don't delete it, I may ask for it.

(iii) Provide a copy of your /var/lib/dpkg/status file, preferably
   before and after the problem manifests itself.  gzip and uuencode
   it if it is large.

(iv) Tell me where I can get any .deb files required to reproduce the
   problem.  Provide their MD5 checksums.

--
Ian Jackson, at home.          ijackson@nyx.cs.du.edu or iwj10@cus.cam.ac.uk
+44 1223 575512    Escoerea on IRC.    http://www.cl.cam.ac.uk/users/iwj10/
2 Lexington Close, Cambridge, CB4 3LS, England.  Urgent: iwj10@thor.cam.co.uk


Reply to: