dpkg 0.93.67 BETA: the new C dpkg is hereby released !
For the last several months I have been touting this as the answer to
many of dpkg's problems. Well, here it is at last, suitable (I hope)
for being let loose on your systems.
IMPORTANT: Please read the warning about configuration files, found
below, before installing this upgrade.
Changes in this version, which contains a complete rewrite in C of
the main `dpkg' tool, include:
* Full support for virtual packages.
* Much faster.
* Not vulnerable to bugs in `tar' (better symlinks handling, 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.
* No more stale locks when using dselect.
* `Status enquiry' options (--status, --search, &c) work, and do so
for ordinary users as well as root.
* New dpkg --audit option for putting in login scripts &c, so that
users can be reminded about or check for badly-installed packages.
* Support for the new `Essential' field for marking packages that are
not to be removed (essentially, base packages), and better handling
of Class and Section from package control files.
* dselect has moved to /usr/bin, and has had a number of minor user
interface improvements. (more work here is planned)
* dpkg --skip-same-version implemented.
* several options renamed to be more sensible (more of this is coming).
Most users should upgrade their dpkg, following the instructions
below, before doing any other system upgrades.
Alpha-testers of the new dpkg need not upgrade to this version - there
are no significant changes since 0.93.66.
Package maintainers may now make full use of virtual packages and
other features of the new dpkg (though they are not required to do so
yet).
Below you will find a complete copy of the Changelog entries for
0.93.50 and onwards, which gives details of all the changes made since
then. This is likely to be very boring.
** WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING **
There is a problem with conffiles, relating to this upgrade:
The naming convention for configuration files belonging to unpacked
but not configured packages has changed since 0.93.42.3 and earlier.
If you use the new dpkg to configure a package unpacked with an
earlier version, _but not yet configured_, you WILL LOSE ITS
CONFIGURATION INFORMATION.
You should be aware of this, and use your existing dpkg to get
packages into an appropriate state (ie, properly installed, not
installed, or in any state at all if you don't particularly care about
their configuration) before installing dpkg 0.93.67.
YOU SHOULD INSTALL DPKG 0.93.67 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.67 on the system and some unconfigured packages that
you can't fix.
The system will notice that you're upgrading from pre-0.93.50 and
check for any packages in `bad' states. If there are any it will
offer to abort the installation, and offer advice about how to resolve
the problem if you choose to do so.
It will also warn you about the restriction that you must do the
upgrade in a dpkg run all on its own, and again it will give you the
option to back out of the installation. It will not notice if you get
this wrong and tell it `yes' when you should say `no'.
Here are the MD5 checksums and file sizes. The new dpkg will be
available in binary/base/dpkg-0.93.67.deb when it has been uploaded
and moved out of Incoming.
8b05ac75bf803716235ec7889c10333d dpkg-0.93.67.deb
b5eed8652c67a22d1aa1417ccb595651 dpkg-0.93.67.nondebbin.tar.gz
f158b96605a78ca9519a9c40566d6fe9 dpkg-0.93.67.tar.gz
-rw-r--r-- 1 root root 166959 Aug 4 01:50 dpkg-0.93.67.deb
-rw-rw-r-- 1 root ian 164534 Aug 4 01:50 dpkg-0.93.67.nondebbin.tar.gz
-rw-rw-r-- 1 ian ian 220195 Aug 4 01:40 dpkg-0.93.67.tar.gz
(For alpha testers: when 0.93.67 has been successfully uploaded I'll
remove 0.93.66 from the private ALPHA directory. Please check the
file sizes before downloading and the MD5 checksums afterwards.)
dpkg (0.93.67) BETA; priority=LOW for C dpkg alpha testers, HIGH for others
* dpkg no longer statically linked and -g.
* calls to abort() changed to print string, file and line number first.
* removed unused variable from dpkg source.
-- Ian Jackson <iwj10@cus.cam.ac.uk> Fri, 4 Aug 1995 01:39:52 +0100
dpkg (0.93.66) ALPHA; priority=MEDIUM
* dpkg will correctly remove overwritten files from the lists of
the package(s) that used to contain them.
* dpkg --purge is now an action, rather than a modifier for --remove,
and the -P alias for it is withdrawn.
* dpkg --unpack/--install filenames in messages are now more sensible
about when to use .../ (show as many trailing components as possible
in 40 characters, or the whole path if that the last component is
longer than that).
-- Ian Jackson <iwj10@cus.cam.ac.uk> Thu, 3 Aug 1995 02:11:03 +0100
dpkg (0.93.65) ALPHA; priority=MEDIUM
* dpkg --remove should, when a package being removed is depended-on
by another that is also queued for removal, defer the depended-on
package rather than aborting it. (Bug#1188.)
* dpkg will not attempt to configure or remove a package more than
once in the same run. (Bug#1169.)
* dpkg cosmetic fix to dependency problems message (this bug
hasn't been triggered to my knowledge).
* perl-dpkg no longer installed in /usr/bin.
-- Ian Jackson <iwj10@cus.cam.ac.uk> Wed, 2 Aug 1995 13:02:58 +0100
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
dpkg (0.93.63) ALPHA; priority=LOW
* preinst works around shell bug/misfeature involving `trap'.
* dpkg --skip-same-version doesn't skip packages which have
an error flag set or which aren't in a standard `installed' state.
* dpkg --search now does a substring search if the string doesn't
start with a wildcard character (*, [ or ?) or slash.
* problem with C/C++ linkage of stuff in "myopt.h" fixed, to help
with compiling with GCC 2.7.0.
* dselect Makefile.in `clean' deletes curkeys.inc &c, so that they are
not shipped in the distribution source and will be rebuilt on the
target system.
-- Ian Jackson <iwj10@cus.cam.ac.uk> Thu, 27 Jul 1995 13:38:47 +0100
dpkg (0.93.62) ALPHA; priority=HIGH
* dpkg purges leftover control scripts from /var/lib/dpkg/tmp.ci,
rather than associating them with the wrong package. (Bug#1101.)
* dpkg won't `disappear' packages containing no files or directories,
nor a package required for depends/recommended. (Bug#1128.)
* dpkg follows directory symlinks. (Bug#1125.)
* dselect fixups for ELF/GCC2.7.0 compilation.
-- Ian Jackson <iwj10@cus.cam.ac.uk> Fri, 21 Jul 1995 21:43:41 +0100
dpkg (0.93.61) ALPHA; priority=LOW
* dselect keybindings and status characters and descriptions changed
(in pursuance of Bug#1037, user interface problems, still open.)
* Some cleanups to fix mistakes discovered by ELF-GCC 2.7.0, and fixup
for newer C++ draft standard (`for' variable declaration scope change).
-- Ian Jackson <iwj10@cus.cam.ac.uk> Tue, 18 Jul 1995 01:42:51 +0100
dpkg (0.93.60) ALPHA; priority=HIGH
* dpkg doesn't think packages have `disappeared' if you install
several packages at once. (later reported as Bug#1132.)
* usage error messages tidied up.
-- Ian Jackson <iwj10@cus.cam.ac.uk> Sun, 16 Jul 1995 17:56:56 +0100
dpkg (0.93.59) ALPHA; priority=HIGH
* dpkg doesn't break maintainer scripts &c if package `foo' exists
when processing package `foobar'. (Related to Bug#1101.)
* dpkg implements `disappear' functionality.
* dpkg/dselect remove dead entries from /var/lib/dpkg/status.
* dpkg --list now sorted correctly and output somewhat improved.
* some debugging messages moved from dbg_stupidlyverbose to dbg_scripts.
* dpkg prints `Removing foo' message even if foo is not configured.
* dpkg only prints `serious warning: files list file ... missing'
once for each package.
-- Ian Jackson <iwj10@cus.cam.ac.uk> Sun, 16 Jul 1995 02:32:11 +0100
dpkg (0.93.58) ALPHA; priority=HIGH
* dpkg should write out status even for packages which it has only
encountered in the `available' file so far.
-- Ian Jackson <iwj10@cus.cam.ac.uk> Fri, 14 Jul 1995 20:19:21 +0100
dpkg (0.93.57) ALPHA; priority=LOW
* dpkg does chroot when running maintainer scripts (--instdir
should work right now, though I haven't been able to test it).
-- Ian Jackson <iwj10@cus.cam.ac.uk> Fri, 14 Jul 1995 01:32:30 +0100
dpkg (0.93.56) ALPHA; priority=HIGH
* dpkg can now overwrite symlinks to directories, and will
do correct handling of symlinks to plain files.
* dpkg should not replace any directory with a symlink.
-- Ian Jackson <iwj10@cus.cam.ac.uk> Thu, 13 Jul 1995 02:43:36 +0100
dpkg (0.93.55) ALPHA; priority=MEDIUM
* dpkg can now extract hardlinks.
* dpkg configuration/removal works in the presence of dependency cycles.
* dpkg should no longer fail an assertion at processarc.c:193.
-- Ian Jackson <iwj10@cus.cam.ac.uk> Wed, 12 Jul 1995 01:34:44 +0100
dpkg (0.93.54) ALPHA; priority=MEDIUM
* dpkg and dselect no longer throw away all Class and Section
information in /var/lib/dpkg/available. (Oops.)
* dpkg --refuse-<something> now works (this broke some dselect
method scripts' attempts to use --refuse-downgrade).
* dpkg --audit and --list implemented.
-- Ian Jackson <iwj10@cus.cam.ac.uk> Mon, 10 Jul 1995 00:35:13 +0100
dpkg (0.93.53) ALPHA; priority=LOW
* dpkg --install/--unpack only skips on-hold packages with --auto.
* dpkg doesn't fclose() the --fsys-tarfile pipe twice.
* dpkg error handling and reporting cleaned up.
* dpkg now lists any failed packages/files just before exiting.
-- Ian Jackson <iwj10@cus.cam.ac.uk> Sun, 9 Jul 1995 16:31:36 +0100
dpkg (0.93.52) ALPHA; priority=MEDIUM
* dpkg won't segfault due to missing (Package_)Revision fields.
* dpkg --search works.
* dpkg will set execute permissions on scripts if necessary.
* dpkg prints filenames in --unpack and --install.
-- Ian Jackson <iwj10@cus.cam.ac.uk> Sat, 8 Jul 1995 12:41:39 +0100
dpkg (0.93.51) ALPHA; priority=HIGH
* dpkg --status and --listfiles now work.
* dpkg --remove --auto won't try to remove everything (!)
* dpkg --unpack doesn't coredump after unpacking the first package.
* dpkg won't fail an assertion if it bombs out of --configure
or --remove because of too many errors.
* Support for `Essential' in dpkg (not yet in dselect).
* `available' (Packages) file class and section override those
from package control files.
* `Essential: yes' added to control file.
* Locking strategy changed, now uses flock (no more stale locks).
* preinst now more helpful about conffiles upgrade problem.
-- Ian Jackson <iwj10@cus.cam.ac.uk> Sat, 8 Jul 1995 01:15:26 +0100
dpkg (0.93.50) ALPHA
* C dpkg now in service.
* dselect now installs in /usr/bin instead of /usr/sbin.
* Improved `explanation of display' help and changed HSOC to EIOW.
* dselect goes back to top of info display when you move the
highlight.
* Added <sys/types.h> to md5sum/md5.c, for the benefit of FreeBSD.
* --admindir doesn't append `var/lib/dpkg' to its argument.
-- Ian Jackson <iwj10@cus.cam.ac.uk> Fri, 19 May 1995 21:03:08 +0100
Reply to: