Procházet zdrojové kódy

Updating to dpkg 1.4.1.7

Wichert Akkerman před 27 roky
rodič
revize
f800320944
27 změnil soubory, kde provedl 627 přidání a 501 odebrání
  1. 29 0
      ChangeLog
  2. 1 1
      configure.in
  3. 29 0
      debian/changelog
  4. 5 0
      debian/postinst
  5. 9 0
      debian/prerm
  6. 11 9
      debian/rules
  7. 5 1
      doc/Makefile.am
  8. 2 2
      doc/manuals-version
  9. 1 1
      dpkg-deb/dpkg-deb.1
  10. 22 22
      dselect/methkeys.cc
  11. 4 4
      dselect/pkginfo.cc
  12. 38 38
      dselect/pkgkeys.cc
  13. 2 1
      include/dpkg-db.h
  14. 1 0
      lib/dbmodify.c
  15. 1 1
      lib/showcright.c
  16. 1 0
      lib/varbuf.c
  17. 65 0
      main/archives.c
  18. 21 35
      main/enquiry.c
  19. 20 16
      main/filesdb.c
  20. 42 15
      main/help.c
  21. 7 1
      main/main.c
  22. 2 0
      main/main.h
  23. 1 35
      main/processarc.c
  24. 9 4
      md5sum/md5sum.1
  25. 148 156
      po/en.po
  26. 150 159
      po/fr.po
  27. 1 0
      scripts/dpkg-scanpackages.pl

+ 29 - 0
ChangeLog

@@ -1,3 +1,32 @@
+dpkg (1.4.1.7) unstable; urgency=low
+
+  * Non-maintainer release.
+  * Use /usr/share/doc
+  * Merge changes from dpkg-iwj tree:
+    + change section in dpkg-deb.1 to 1
+    + Use COPYINGFILE instead of hardcoded GPL-location in showcopyright()
+    + varbufprintf (used for some error messages) vsnprintf return value
+      assumption changed to correspond to reality rather than glibc-doc.
+    + Don't read available-info when not needed (slightly improved from 
+	  dpkg-iwj: don't read for listfiles either :)
+    + Cleanup --assert-* code
+    + Assume largemem on systems without sysinfo(2).
+    + modify preexec-script for easier script execution
+    + Do not chmod(".../path/to/symlink",0600) causing many bad perms.
+    + Sanity-check numbers for parameters
+    + Move some logic from process_archive into wantinstall
+    + Print '0' in dpkg-scanpackages if no packages found.
+
+ -- Wichert Akkerman <wakkerma@debian.org>  Fri, 10 Sep 1999 04:06:32 +0200
+
+dpkg (1.4.1.6) unstable; urgency=low
+
+  * Non-maintainer release.
+  * scripts/dpkg-architecture.pl: Update to latest version.
+  * scripts/dpkg-architecture.1: Likewise.
+  
+ -- Marcus Brinkmann <brinkmd@debian.org>  Sat, 24 Jul 1999 18:24:21 +0200
+
 dpkg (1.4.1.5) unstable; urgency=low
 dpkg (1.4.1.5) unstable; urgency=low
 
 
   * Non-maintainer release.
   * Non-maintainer release.

+ 1 - 1
configure.in

@@ -121,7 +121,7 @@ AC_C_BIGENDIAN
 AC_CHECK_SIZEOF(unsigned long)
 AC_CHECK_SIZEOF(unsigned long)
 AC_CHECK_SIZEOF(unsigned int)
 AC_CHECK_SIZEOF(unsigned int)
 AC_CHECK_FUNCS(unsetenv alphasort scandir strerror strsignal strtoul vsnprintf lchown)
 AC_CHECK_FUNCS(unsetenv alphasort scandir strerror strsignal strtoul vsnprintf lchown)
-AC_CHECK_HEADERS(sys/cdefs.h)
+AC_CHECK_HEADERS(sys/cdefs.h sys/sysinfo.h)
 
 
 AC_CHECK_FUNC(sysinfo,
 AC_CHECK_FUNC(sysinfo,
   AC_DEFINE(HAVE_SYSINFO),
   AC_DEFINE(HAVE_SYSINFO),

+ 29 - 0
debian/changelog

@@ -1,3 +1,32 @@
+dpkg (1.4.1.7) unstable; urgency=low
+
+  * Non-maintainer release.
+  * Use /usr/share/doc
+  * Merge changes from dpkg-iwj tree:
+    + change section in dpkg-deb.1 to 1
+    + Use COPYINGFILE instead of hardcoded GPL-location in showcopyright()
+    + varbufprintf (used for some error messages) vsnprintf return value
+      assumption changed to correspond to reality rather than glibc-doc.
+    + Don't read available-info when not needed (slightly improved from 
+	  dpkg-iwj: don't read for listfiles either :)
+    + Cleanup --assert-* code
+    + Assume largemem on systems without sysinfo(2).
+    + modify preexec-script for easier script execution
+    + Do not chmod(".../path/to/symlink",0600) causing many bad perms.
+    + Sanity-check numbers for parameters
+    + Move some logic from process_archive into wantinstall
+    + Print '0' in dpkg-scanpackages if no packages found.
+
+ -- Wichert Akkerman <wakkerma@debian.org>  Fri, 10 Sep 1999 04:06:32 +0200
+
+dpkg (1.4.1.6) unstable; urgency=low
+
+  * Non-maintainer release.
+  * scripts/dpkg-architecture.pl: Update to latest version.
+  * scripts/dpkg-architecture.1: Likewise.
+  
+ -- Marcus Brinkmann <brinkmd@debian.org>  Sat, 24 Jul 1999 18:24:21 +0200
+
 dpkg (1.4.1.5) unstable; urgency=low
 dpkg (1.4.1.5) unstable; urgency=low
 
 
   * Non-maintainer release.
   * Non-maintainer release.

+ 5 - 0
debian/postinst

@@ -19,6 +19,10 @@ END
 }
 }
 
 
 if [ "x$1" = xconfigure ]; then
 if [ "x$1" = xconfigure ]; then
+	if [ -d /usr/doc -a ! -e /usr/doc/dpkg -a -d /usr/share/doc/dpkg ] ; then
+		ln -s ../share/doc/dpkg /usr/doc/dpkg
+	fi
+
 	case "$2" in
 	case "$2" in
 	0.* | 1.0.* | 1.1.0 | 1.1.0[^0-9]* | '' )
 	0.* | 1.0.* | 1.1.0 | 1.1.0[^0-9]* | '' )
 		for f in 0 1 2 3 4 5 6
 		for f in 0 1 2 3 4 5 6
@@ -227,3 +231,4 @@ then
 fi
 fi
 
 
 mv $newdb/status.new $newdb/status
 mv $newdb/status.new $newdb/status
+

+ 9 - 0
debian/prerm

@@ -2,6 +2,10 @@
 
 
 set -e
 set -e
 
 
+if [ ! \( "$1" = "upgrade" -o "$1" = "remove" \) ]; then
+	exit 0
+fi
+
 cd /usr/bin
 cd /usr/bin
 
 
 install-info --quiet --remove /usr/info/Guidelines
 install-info --quiet --remove /usr/info/Guidelines
@@ -9,3 +13,8 @@ install-info --quiet --remove /usr/info/debian-guidelines
 install-info --quiet --remove /usr/info/guidelines
 install-info --quiet --remove /usr/info/guidelines
 install-info --quiet --remove /usr/info/debian-guidelines.info.gz
 install-info --quiet --remove /usr/info/debian-guidelines.info.gz
 install-info --quiet --remove /usr/info/guidelines.info.gz
 install-info --quiet --remove /usr/info/guidelines.info.gz
+
+if [ -L /usr/doc/dpkg ]; then
+	rm -f /usr/doc/dpkg
+fi
+

+ 11 - 9
debian/rules

@@ -28,7 +28,8 @@ $(BUILD)/config.status:
 	install -d debian/build
 	install -d debian/build
 	cd $(BUILD) && ../../configure \
 	cd $(BUILD) && ../../configure \
 		--enable-shared \
 		--enable-shared \
-		--prefix=/usr \
+		--prefix=/usr/share \
+		--exec-prefix=/usr \
 		--datadir=/usr/share \
 		--datadir=/usr/share \
 		--mandir=/usr/share/man \
 		--mandir=/usr/share/man \
 		--sysconfdir=/etc \
 		--sysconfdir=/etc \
@@ -53,8 +54,8 @@ binary: binary-arch binary-indep
 binary-trees: build
 binary-trees: build
 	$(checkdir)
 	$(checkdir)
 	-$(RM) -r debian/tmp-{main,dev}
 	-$(RM) -r debian/tmp-{main,dev}
-	install -d debian/tmp-{main,dev}/{DEBIAN,etc/dpkg,usr/doc/dpkg}
-	install -d debian/tmp-dev/usr/{lib/dpkg,doc/dpkg-dev,share/man/man1,share/man/man8,sbin,bin}
+	install -d debian/tmp-{main,dev}/{DEBIAN,etc/dpkg,usr/share/doc/dpkg}
+	install -d debian/tmp-dev/usr/{lib/dpkg,share/doc/dpkg-dev,share/man/man1,share/man/man8,sbin,bin}
 	install -d debian/tmp-dev/usr/share/emacs/site-lisp/dpkg-dev
 	install -d debian/tmp-dev/usr/share/emacs/site-lisp/dpkg-dev
 	install -d debian/tmp-main/sbin
 	install -d debian/tmp-main/sbin
 	set -e; if [ $(arch) = i386 ]; then \
 	set -e; if [ $(arch) = i386 ]; then \
@@ -70,7 +71,8 @@ binary-trees: build
 	cp debian/{prerm,postinst} $(mcidir)/.
 	cp debian/{prerm,postinst} $(mcidir)/.
 	$(MAKE) -C $(BUILD) top_distdir=. dist 
 	$(MAKE) -C $(BUILD) top_distdir=. dist 
 	$(MAKE) -C $(BUILD) \
 	$(MAKE) -C $(BUILD) \
-		prefix=$(DIR)/debian/tmp-main/usr \
+		prefix=$(DIR)/debian/tmp-main/usr/share \
+		exec_prefix=$(DIR)/debian/tmp-main/usr \
 		sysconfdir=$(DIR)/debian/tmp-main/etc \
 		sysconfdir=$(DIR)/debian/tmp-main/etc \
 		datadir=$(DIR)/debian/tmp-main/usr/share \
 		datadir=$(DIR)/debian/tmp-main/usr/share \
 		mandir=$(DIR)/debian/tmp-main/usr/share/man \
 		mandir=$(DIR)/debian/tmp-main/usr/share/man \
@@ -97,12 +99,12 @@ binary-trees: build
 		ln -s dpkg-source.1.gz debian/tmp-main/usr/share/man/man1/$$f.1.gz ; \
 		ln -s dpkg-source.1.gz debian/tmp-main/usr/share/man/man1/$$f.1.gz ; \
 	done
 	done
 	ln -s ../man7/undocumented.7.gz debian/tmp-main/usr/share/man/man1/dpkg-divert.1.gz
 	ln -s ../man7/undocumented.7.gz debian/tmp-main/usr/share/man/man1/dpkg-divert.1.gz
-	gzip -9vf debian/tmp-main/usr/doc/dpkg/changelog*
-	cp debian/copyright debian/tmp-main/usr/doc/dpkg/copyright
-	cp debian/copyright debian/tmp-dev/usr/doc/dpkg-dev/copyright
-	cp debian/dev-README debian/tmp-dev/usr/doc/dpkg-dev/README
+	gzip -9vf debian/tmp-main/usr/share/doc/dpkg/changelog*
+	cp debian/copyright debian/tmp-main/usr/share/doc/dpkg/copyright
+	cp debian/copyright debian/tmp-dev/usr/share/doc/dpkg-dev/copyright
+	cp debian/dev-README debian/tmp-dev/usr/share/doc/dpkg-dev/README
 	set -e; for f in \
 	set -e; for f in \
- usr/doc/dpkg/{internals.html,changelog.manuals.gz} \
+ usr/share/doc/dpkg/{internals.html,changelog.manuals.gz} \
  usr/bin/dpkg-{source,genchanges,gencontrol,shlibdeps,buildpackage,parsechangelog} \
  usr/bin/dpkg-{source,genchanges,gencontrol,shlibdeps,buildpackage,parsechangelog} \
  usr/bin/{dpkg-distaddfile,822-date,dpkg-scanpackages,dpkg-name,dpkg-architecture} \
  usr/bin/{dpkg-distaddfile,822-date,dpkg-scanpackages,dpkg-name,dpkg-architecture} \
  usr/share/man/man1/dpkg-{source,genchanges,gencontrol,shlibdeps,buildpackage,architecture}.1.gz \
  usr/share/man/man1/dpkg-{source,genchanges,gencontrol,shlibdeps,buildpackage,architecture}.1.gz \

+ 5 - 1
doc/Makefile.am

@@ -54,7 +54,11 @@ internals.dvi: internals.texi
 	texi2dvi $^
 	texi2dvi $^
 
 
 internals.info: internals.texi
 internals.info: internals.texi
-	makeinfo $^
+	# WTA: We force makeinfo and ignore errors, since we use a broken method
+	# to generate the texi-file anyway. Since we are supposed to switch to the
+	# dpkg-iwj branch soon anyway fixing this correctly is more trouble then
+ 	# it's worth
+	-makeinfo --force $^
 
 
 internals.html-stamp: internals.texi
 internals.html-stamp: internals.texi
 	-$(RM) -r $*.html*
 	-$(RM) -r $*.html*

+ 2 - 2
doc/manuals-version

@@ -1,2 +1,2 @@
-<!entity manuals-version "1.4.1.5">
-<!entity dpkg-version "1.4.1.5">
+<!entity manuals-version "1.4.1.7">
+<!entity dpkg-version "1.4.1.7">

+ 1 - 1
dpkg-deb/dpkg-deb.1

@@ -1,6 +1,6 @@
 .\" Hey, Emacs!  This is an -*- nroff -*- source file.
 .\" Hey, Emacs!  This is an -*- nroff -*- source file.
 .\" Authors: Ian Jackson
 .\" Authors: Ian Jackson
-.TH DPKG\-DEB 8 "1st June 1996" "Debian Project" "Debian Linux manual"
+.TH DPKG\-DEB 1 "1st June 1996" "Debian Project" "Debian Linux manual"
 .SH NAME 
 .SH NAME 
 dpkg\-deb \- Debian package archive (.deb) manipulation tool
 dpkg\-deb \- Debian package archive (.deb) manipulation tool
 .SH SYNOPSIS
 .SH SYNOPSIS

+ 22 - 22
dselect/methkeys.cc

@@ -34,28 +34,28 @@ extern "C" {
 #include "bindings.h"
 #include "bindings.h"
 
 
 const keybindings::interpretation methodlist_kinterps[] = {
 const keybindings::interpretation methodlist_kinterps[] = {
-  { "up",              methodlist::kd_up,             0,    qa_noquit           },
-  { "down",            methodlist::kd_down,           0,    qa_noquit           },
-  { "top",             methodlist::kd_top,            0,    qa_noquit           },
-  { "bottom",          methodlist::kd_bottom,         0,    qa_noquit           },
-  { "scrollon",        methodlist::kd_scrollon,       0,    qa_noquit           },
-  { "scrollback",      methodlist::kd_scrollback,     0,    qa_noquit           },
-  { "iscrollon",       methodlist::kd_iscrollon,      0,    qa_noquit           },
-  { "iscrollback",     methodlist::kd_iscrollback,    0,    qa_noquit           },
-  { "scrollon1",       methodlist::kd_scrollon1,      0,    qa_noquit           },
-  { "scrollback1",     methodlist::kd_scrollback1,    0,    qa_noquit           },
-  { "iscrollon1",      methodlist::kd_iscrollon1,     0,    qa_noquit           },
-  { "iscrollback1",    methodlist::kd_iscrollback1,   0,    qa_noquit           },
-  { "panon",           methodlist::kd_panon,          0,    qa_noquit           },
-  { "panback",         methodlist::kd_panback,        0,    qa_noquit           },
-  { "panon1",          methodlist::kd_panon1,         0,    qa_noquit           },
-  { "panback1",        methodlist::kd_panback1,       0,    qa_noquit           },
-  { "help",            methodlist::kd_help,           0,    qa_noquit           },
-  { "search",          methodlist::kd_search,         0,    qa_noquit           },
-  { "searchagain",     methodlist::kd_searchagain,    0,    qa_noquit           },
-  { "redraw",          methodlist::kd_redraw,         0,    qa_noquit           },
-  { "select-and-quit", methodlist::kd_quit,           0,    qa_quitchecksave    },
-  { "abort",           methodlist::kd_abort,          0,    qa_quitnochecksave  },
+  { "up",              &methodlist::kd_up,             0,    qa_noquit           },
+  { "down",            &methodlist::kd_down,           0,    qa_noquit           },
+  { "top",             &methodlist::kd_top,            0,    qa_noquit           },
+  { "bottom",          &methodlist::kd_bottom,         0,    qa_noquit           },
+  { "scrollon",        &methodlist::kd_scrollon,       0,    qa_noquit           },
+  { "scrollback",      &methodlist::kd_scrollback,     0,    qa_noquit           },
+  { "iscrollon",       &methodlist::kd_iscrollon,      0,    qa_noquit           },
+  { "iscrollback",     &methodlist::kd_iscrollback,    0,    qa_noquit           },
+  { "scrollon1",       &methodlist::kd_scrollon1,      0,    qa_noquit           },
+  { "scrollback1",     &methodlist::kd_scrollback1,    0,    qa_noquit           },
+  { "iscrollon1",      &methodlist::kd_iscrollon1,     0,    qa_noquit           },
+  { "iscrollback1",    &methodlist::kd_iscrollback1,   0,    qa_noquit           },
+  { "panon",           &methodlist::kd_panon,          0,    qa_noquit           },
+  { "panback",         &methodlist::kd_panback,        0,    qa_noquit           },
+  { "panon1",          &methodlist::kd_panon1,         0,    qa_noquit           },
+  { "panback1",        &methodlist::kd_panback1,       0,    qa_noquit           },
+  { "help",            &methodlist::kd_help,           0,    qa_noquit           },
+  { "search",          &methodlist::kd_search,         0,    qa_noquit           },
+  { "searchagain",     &methodlist::kd_searchagain,    0,    qa_noquit           },
+  { "redraw",          &methodlist::kd_redraw,         0,    qa_noquit           },
+  { "select-and-quit", &methodlist::kd_quit,           0,    qa_quitchecksave    },
+  { "abort",           &methodlist::kd_abort,          0,    qa_quitnochecksave  },
   {  0,                0,                             0,    qa_noquit           }
   {  0,                0,                             0,    qa_noquit           }
 };
 };
 
 

+ 4 - 4
dselect/pkginfo.cc

@@ -66,10 +66,10 @@ const struct helpmenuentry *packagelist::helpmenulist() {
 int packagelist::itr_recursive() { return recursive; }
 int packagelist::itr_recursive() { return recursive; }
 
 
 const packagelist::infotype packagelist::infoinfos[]= {
 const packagelist::infotype packagelist::infoinfos[]= {
-  { itr_recursive,     itd_relations         },
-  { 0,                 itd_description       },
-  { 0,                 itd_statuscontrol     },
-  { 0,                 itd_availablecontrol  },
+  { &packagelist::itr_recursive,     &packagelist::itd_relations         },
+  { 0,                               &packagelist::itd_description       },
+  { 0,                               &packagelist::itd_statuscontrol     },
+  { 0,                               &packagelist::itd_availablecontrol  },
   { 0,                 0                     }
   { 0,                 0                     }
 };
 };
 
 

+ 38 - 38
dselect/pkgkeys.cc

@@ -34,44 +34,44 @@ extern "C" {
 #include "bindings.h"
 #include "bindings.h"
 
 
 const keybindings::interpretation packagelist_kinterps[] = {
 const keybindings::interpretation packagelist_kinterps[] = {
-  { "up",               0,  packagelist::kd_up,               qa_noquit           },
-  { "down",             0,  packagelist::kd_down,             qa_noquit           },
-  { "top",              0,  packagelist::kd_top,              qa_noquit           },
-  { "bottom",           0,  packagelist::kd_bottom,           qa_noquit           },
-  { "scrollon",         0,  packagelist::kd_scrollon,         qa_noquit           },
-  { "scrollback",       0,  packagelist::kd_scrollback,       qa_noquit           },
-  { "iscrollon",        0,  packagelist::kd_iscrollon,        qa_noquit           },
-  { "iscrollback",      0,  packagelist::kd_iscrollback,      qa_noquit           },
-  { "scrollon1",        0,  packagelist::kd_scrollon1,        qa_noquit           },
-  { "scrollback1",      0,  packagelist::kd_scrollback1,      qa_noquit           },
-  { "iscrollon1",       0,  packagelist::kd_iscrollon1,       qa_noquit           },
-  { "iscrollback1",     0,  packagelist::kd_iscrollback1,     qa_noquit           },
-  { "panon",            0,  packagelist::kd_panon,            qa_noquit           },
-  { "panback",          0,  packagelist::kd_panback,          qa_noquit           },
-  { "panon1",           0,  packagelist::kd_panon1,           qa_noquit           },
-  { "panback1",         0,  packagelist::kd_panback1,         qa_noquit           },
-  { "install",          0,  packagelist::kd_select,           qa_noquit           },
-  { "remove",           0,  packagelist::kd_deselect,         qa_noquit           },
-  { "purge",            0,  packagelist::kd_purge,            qa_noquit           },
-  { "hold",             0,  packagelist::kd_hold,             qa_noquit           },
-  { "unhold",           0,  packagelist::kd_unhold,           qa_noquit           },
-  { "info",             0,  packagelist::kd_info,             qa_noquit           },
-  { "toggleinfo",       0,  packagelist::kd_toggleinfo,       qa_noquit           },
-  { "verbose",          0,  packagelist::kd_verbose,          qa_noquit           },
-  { "versiondisplay",   0,  packagelist::kd_versiondisplay,   qa_noquit           },
-  { "help",             0,  packagelist::kd_help,             qa_noquit           },
-  { "search",           0,  packagelist::kd_search,           qa_noquit           },
-  { "searchagain",      0,  packagelist::kd_searchagain,      qa_noquit           },
-  { "swaporder",        0,  packagelist::kd_swaporder,        qa_noquit           },
-  { "swapstatorder",    0,  packagelist::kd_swapstatorder,    qa_noquit           },
-  { "redraw",           0,  packagelist::kd_redraw,           qa_noquit           },
-  { "quitcheck",        0,  packagelist::kd_quit_noop,        qa_quitchecksave    },
-  { "quitrejectsug",    0,  packagelist::kd_revertdirect,     qa_quitnochecksave  },
-  { "quitnocheck",      0,  packagelist::kd_quit_noop,        qa_quitnochecksave  },
-  { "abortnocheck",     0,  packagelist::kd_revert_abort,     qa_quitnochecksave  },
-  { "revert",           0,  packagelist::kd_revert_abort,     qa_noquit           },
-  { "revertsuggest",    0,  packagelist::kd_revertsuggest,    qa_noquit           },
-  { "revertdirect",     0,  packagelist::kd_revertdirect,     qa_noquit           },
+  { "up",               0,  &packagelist::kd_up,               qa_noquit           },
+  { "down",             0,  &packagelist::kd_down,             qa_noquit           },
+  { "top",              0,  &packagelist::kd_top,              qa_noquit           },
+  { "bottom",           0,  &packagelist::kd_bottom,           qa_noquit           },
+  { "scrollon",         0,  &packagelist::kd_scrollon,         qa_noquit           },
+  { "scrollback",       0,  &packagelist::kd_scrollback,       qa_noquit           },
+  { "iscrollon",        0,  &packagelist::kd_iscrollon,        qa_noquit           },
+  { "iscrollback",      0,  &packagelist::kd_iscrollback,      qa_noquit           },
+  { "scrollon1",        0,  &packagelist::kd_scrollon1,        qa_noquit           },
+  { "scrollback1",      0,  &packagelist::kd_scrollback1,      qa_noquit           },
+  { "iscrollon1",       0,  &packagelist::kd_iscrollon1,       qa_noquit           },
+  { "iscrollback1",     0,  &packagelist::kd_iscrollback1,     qa_noquit           },
+  { "panon",            0,  &packagelist::kd_panon,            qa_noquit           },
+  { "panback",          0,  &packagelist::kd_panback,          qa_noquit           },
+  { "panon1",           0,  &packagelist::kd_panon1,           qa_noquit           },
+  { "panback1",         0,  &packagelist::kd_panback1,         qa_noquit           },
+  { "install",          0,  &packagelist::kd_select,           qa_noquit           },
+  { "remove",           0,  &packagelist::kd_deselect,         qa_noquit           },
+  { "purge",            0,  &packagelist::kd_purge,            qa_noquit           },
+  { "hold",             0,  &packagelist::kd_hold,             qa_noquit           },
+  { "unhold",           0,  &packagelist::kd_unhold,           qa_noquit           },
+  { "info",             0,  &packagelist::kd_info,             qa_noquit           },
+  { "toggleinfo",       0,  &packagelist::kd_toggleinfo,       qa_noquit           },
+  { "verbose",          0,  &packagelist::kd_verbose,          qa_noquit           },
+  { "versiondisplay",   0,  &packagelist::kd_versiondisplay,   qa_noquit           },
+  { "help",             0,  &packagelist::kd_help,             qa_noquit           },
+  { "search",           0,  &packagelist::kd_search,           qa_noquit           },
+  { "searchagain",      0,  &packagelist::kd_searchagain,      qa_noquit           },
+  { "swaporder",        0,  &packagelist::kd_swaporder,        qa_noquit           },
+  { "swapstatorder",    0,  &packagelist::kd_swapstatorder,    qa_noquit           },
+  { "redraw",           0,  &packagelist::kd_redraw,           qa_noquit           },
+  { "quitcheck",        0,  &packagelist::kd_quit_noop,        qa_quitchecksave    },
+  { "quitrejectsug",    0,  &packagelist::kd_revertdirect,     qa_quitnochecksave  },
+  { "quitnocheck",      0,  &packagelist::kd_quit_noop,        qa_quitnochecksave  },
+  { "abortnocheck",     0,  &packagelist::kd_revert_abort,     qa_quitnochecksave  },
+  { "revert",           0,  &packagelist::kd_revert_abort,     qa_noquit           },
+  { "revertsuggest",    0,  &packagelist::kd_revertsuggest,    qa_noquit           },
+  { "revertdirect",     0,  &packagelist::kd_revertdirect,     qa_noquit           },
   {  0,                 0,  0,                                qa_noquit           }
   {  0,                 0,  0,                                qa_noquit           }
 };
 };
 
 

+ 2 - 1
include/dpkg-db.h

@@ -152,7 +152,8 @@ enum modstatdb_rw {
   msdbrw_write/*s*/, msdbrw_needsuperuser,
   msdbrw_write/*s*/, msdbrw_needsuperuser,
   /* Now some optional flags: */
   /* Now some optional flags: */
   msdbrw_flagsmask= ~077,
   msdbrw_flagsmask= ~077,
-  /* ... of which there are currently none, but they'd start at 0100 */
+  /* flags start at 0100 */
+  msdbrw_noavail= 0100,
 };
 };
 
 
 enum modstatdb_rw modstatdb_init(const char *admindir, enum modstatdb_rw reqrwflags);
 enum modstatdb_rw modstatdb_init(const char *admindir, enum modstatdb_rw reqrwflags);

+ 1 - 0
lib/dbmodify.c

@@ -169,6 +169,7 @@ enum modstatdb_rw modstatdb_init(const char *adir, enum modstatdb_rw readwritere
 
 
   if (cstatus != msdbrw_needsuperuserlockonly) {
   if (cstatus != msdbrw_needsuperuserlockonly) {
     cleanupdates();
     cleanupdates();
+    if(!(cflags & msdbrw_noavail))
     parsedb(availablefile,
     parsedb(availablefile,
             pdb_recordavailable|pdb_rejectstatus,
             pdb_recordavailable|pdb_rejectstatus,
             0,0,0);
             0,0,0);

+ 1 - 1
lib/showcright.c

@@ -28,7 +28,7 @@
 void showcopyright(const struct cmdinfo *c, const char *v) {
 void showcopyright(const struct cmdinfo *c, const char *v) {
   int fd;
   int fd;
   fd= open(COPYINGFILE,O_RDONLY);
   fd= open(COPYINGFILE,O_RDONLY);
-  if (fd < 0) ohshite(_("cannot open GPL file /usr/doc/dpkg/copyright"));
+  if (fd < 0) ohshite(_("cannot open GPL file " COPYINGFILE));
   m_dup2(fd,0);
   m_dup2(fd,0);
   execlp(CAT,CAT,"-",(char*)0);
   execlp(CAT,CAT,"-",(char*)0);
   ohshite(_("unable to exec cat for displaying GPL file"));
   ohshite(_("unable to exec cat for displaying GPL file"));

+ 1 - 0
lib/varbuf.c

@@ -44,6 +44,7 @@ void varbufprintf(struct varbuf *v, const char *fmt, ...) {
     va_start(al,fmt);
     va_start(al,fmt);
     r= vsnprintf(v->buf+ou,v->size-ou,fmt,al);
     r= vsnprintf(v->buf+ou,v->size-ou,fmt,al);
     va_end(al);
     va_end(al);
+    if (r < 0) r= (v->size-ou+1) * 2;
     v->used= ou+r;
     v->used= ou+r;
   } while (r >= v->size-ou-1);
   } while (r >= v->size-ou-1);
 }
 }

+ 65 - 0
main/archives.c

@@ -816,3 +816,68 @@ void archivefiles(const char *const *argv) {
 
 
   modstatdb_shutdown();
   modstatdb_shutdown();
 }
 }
+
+int wanttoinstall(struct pkginfo *pkg, const struct versionrevision *ver, int saywhy) {
+  /* Decide whether we want to install a new version of the package.
+   * ver is the version we might want to install.  If saywhy is 1 then
+   * if we skip the package we say what we are doing (and, if we are
+   * selecting a previously deselected package, say so and actually do
+   * the select).  want_install returns 0 if the package should be
+   * skipped and 1 if it should be installed.
+   *
+   * ver may be 0, in which case saywhy must be 0 and want_install may
+   * also return -1 to mean it doesn't know because it would depend on
+   * the version number.
+   */
+  enum versiondisplayepochwhen needepochs;
+  int r;
+
+  if (pkg->want != want_install) {
+    if (f_alsoselect) {
+      if (saywhy) {
+   printf("Selecting previously deselected package %s.\n",pkg->name);
+   pkg->want= want_install;
+      }
+      return 1;
+    } else {
+      if (saywhy) printf("Skipping deselected package %s.\n",pkg->name);
+      return 0;
+    }
+  }
+
+  if (pkg->status != stat_installed) return 1;
+  if (!ver) return -1;
+
+  r= versioncompare(ver,&pkg->installed.version);
+  if (r > 0) {
+    return 1;
+  } else if (r == 0) {
+    if (f_skipsame && /* same version fully installed ? */
+   pkg->status == stat_installed && !(pkg->eflag &= eflagf_reinstreq)) {
+      if (saywhy) fprintf(stderr, "Version %.250s of %.250s already installed, "
+             "skipping.\n",
+             versiondescribe(&pkg->installed.version,vdew_never),
+             pkg->name);
+      return 0;
+    } else {
+      return 1;
+    }
+  } else {
+    needepochs= epochsdiffer(&pkg->available.version,&pkg->installed.version) ?
+      vdew_always : vdew_never;
+    if (fc_downgrade) {
+      if (saywhy) fprintf(stderr, DPKG " - warning: downgrading %.250s "
+             "from %.250s to %.250s.\n", pkg->name,
+             versiondescribe(&pkg->installed.version,needepochs),
+             versiondescribe(&pkg->available.version,needepochs));
+      return 1;
+    } else {
+      if (saywhy) fprintf(stderr, "Will not downgrade %.250s from version %.250s "
+             "to %.250s, skipping.\n", pkg->name,
+             versiondescribe(&pkg->installed.version,needepochs),
+             versiondescribe(&pkg->available.version,needepochs));
+      return 0;
+    }
+  }
+}
+

+ 21 - 35
main/enquiry.c

@@ -236,7 +236,7 @@ void unpackchk(const char *const *argv) {
   
   
   if (*argv) badusage(_("--yet-to-unpack does not take any arguments"));
   if (*argv) badusage(_("--yet-to-unpack does not take any arguments"));
 
 
-  modstatdb_init(admindir,msdbrw_readonly);
+  modstatdb_init(admindir,msdbrw_readonly|msdbrw_noavail);
 
 
   totalcount= 0;
   totalcount= 0;
   sectionentries= 0;
   sectionentries= 0;
@@ -344,7 +344,7 @@ void searchfiles(const char *const *argv) {
   if (!*argv)
   if (!*argv)
     badusage(_("--search needs at least one file name pattern argument"));
     badusage(_("--search needs at least one file name pattern argument"));
 
 
-  modstatdb_init(admindir,msdbrw_readonly);
+  modstatdb_init(admindir,msdbrw_readonly|msdbrw_noavail);
   ensure_allinstfiles_available_quiet();
   ensure_allinstfiles_available_quiet();
   ensure_diversions();
   ensure_diversions();
 
 
@@ -389,6 +389,9 @@ void enqperpackage(const char *const *argv) {
     badusage(_("--%s needs at least one package name argument"), cipaction->olong);
     badusage(_("--%s needs at least one package name argument"), cipaction->olong);
 
 
   failures= 0;
   failures= 0;
+  if (cipaction->arg==act_listfiles)
+    modstatdb_init(admindir,msdbrw_readonly|msdbrw_noavail);
+  else
   modstatdb_init(admindir,msdbrw_readonly);
   modstatdb_init(admindir,msdbrw_readonly);
   
   
   while ((thisarg= *argv++) != 0) {
   while ((thisarg= *argv++) != 0) {
@@ -464,24 +467,25 @@ void enqperpackage(const char *const *argv) {
   }
   }
 }
 }
 
 
-void assertepoch(const char *const *argv) {
-  static struct versionrevision epochversion = {~0UL,0,0};
+void assertversion(const char *const *argv,
+			struct versionrevision *verrev_buf,
+			const char *reqversion) {
   struct pkginfo *pkg;
   struct pkginfo *pkg;
 
 
-  if (*argv) badusage("--assert-working-epoch does not take any arguments");
+  if (*argv) badusage("--assert-* does not take any arguments");
 
 
-  modstatdb_init(admindir,msdbrw_readonly);
-  pkg= findpackage("dpkg");
-  if (epochversion.epoch == ~0UL) {
-    epochversion.epoch= 0;
-    epochversion.version= nfstrsave("1.4.0.7");
-    epochversion.revision= 0;
+  modstatdb_init(admindir,msdbrw_readonly|msdbrw_noavail);
+  if (verrev_buf->epoch == ~0UL) {
+    verrev_buf->epoch= 0;
+    verrev_buf->version= nfstrsave(reqversion);
+    verrev_buf->revision= 0;
   }
   }
+  pkg= findpackage("dpkg");
   switch (pkg->status) {
   switch (pkg->status) {
   case stat_installed:
   case stat_installed:
     break;
     break;
   case stat_unpacked: case stat_halfconfigured: case stat_halfinstalled:
   case stat_unpacked: case stat_halfconfigured: case stat_halfinstalled:
-    if (versionsatisfied3(&pkg->configversion,&epochversion,dvr_laterequal))
+    if (versionsatisfied3(&pkg->configversion,verrev_buf,dvr_laterequal))
       break;
       break;
     printf("Version of dpkg with working epoch support not yet configured.\n"
     printf("Version of dpkg with working epoch support not yet configured.\n"
            " Please use `dpkg --configure dpkg', and then try again.\n");
            " Please use `dpkg --configure dpkg', and then try again.\n");
@@ -494,30 +498,12 @@ void assertepoch(const char *const *argv) {
 
 
 void assertpredep(const char *const *argv) {
 void assertpredep(const char *const *argv) {
   static struct versionrevision predepversion = {~0UL,0,0};
   static struct versionrevision predepversion = {~0UL,0,0};
-  struct pkginfo *pkg;
-  
-  if (*argv) badusage(_("--assert-support-predepends does not take any arguments"));
-
-  modstatdb_init(admindir,msdbrw_readonly);
-  pkg= findpackage("dpkg");
-  if (predepversion.epoch == ~0UL) {
-    predepversion.epoch= 0;
-    predepversion.version= nfstrsave("1.1.0");
-    predepversion.revision= 0;
-  }
-  switch (pkg->status) {
-  case stat_installed:
-    break;
-  case stat_unpacked: case stat_halfconfigured: case stat_halfinstalled:
-    if (versionsatisfied3(&pkg->configversion,&predepversion,dvr_laterequal))
-      break;
-    printf(_("Version of dpkg with Pre-Depends support not yet configured.\n"
-           " Please use `dpkg --configure dpkg', and then try again.\n"));
-    exit(1);
-  default:
-    printf(_("dpkg not recorded as installed, cannot check for Pre-Depends support !\n"));
-    exit(1);
+  assertversion(argv,&predepversion,"1.1.0");
   }
   }
+
+void assertepoch(const char *const *argv) {
+  static struct versionrevision epochversion = {~0UL,0,0};
+  assertversion(argv,&epochversion,"1.4.0.7");
 }
 }
 
 
 void predeppackage(const char *const *argv) {
 void predeppackage(const char *const *argv) {

+ 20 - 16
main/filesdb.c

@@ -32,6 +32,10 @@
 #include "filesdb.h"
 #include "filesdb.h"
 #include "main.h"
 #include "main.h"
 
 
+#ifdef HAVE_SYS_SYSINFO_H
+#include <sys/sysinfo.h>
+#endif
+
 /*** Generic data structures and routines ***/
 /*** Generic data structures and routines ***/
 
 
 static int allpackagesdone= 0;
 static int allpackagesdone= 0;
@@ -355,9 +359,10 @@ void ensure_diversions(void) {
     oialtname->camefrom= findnamenode(linebuf);
     oialtname->camefrom= findnamenode(linebuf);
     oialtname->useinstead= 0;    
     oialtname->useinstead= 0;    
 
 
-    if (!fgets(linebuf,sizeof(linebuf),file))
+    if (!fgets(linebuf,sizeof(linebuf),file)) {
       if (ferror(file)) ohshite(_("read error in diversions [ii]"));
       if (ferror(file)) ohshite(_("read error in diversions [ii]"));
       else ohshit(_("unexpected EOF in diversions [ii]"));
       else ohshit(_("unexpected EOF in diversions [ii]"));
+    } 
     l= strlen(linebuf);
     l= strlen(linebuf);
     if (l == 0) ohshit(_("fgets gave an empty string from diversions [ii]"));
     if (l == 0) ohshit(_("fgets gave an empty string from diversions [ii]"));
     if (linebuf[--l] != '\n') ohshit(_("diversions file has too-long line or EOF [ii]"));
     if (linebuf[--l] != '\n') ohshit(_("diversions file has too-long line or EOF [ii]"));
@@ -365,9 +370,10 @@ void ensure_diversions(void) {
     oicontest->useinstead= findnamenode(linebuf);
     oicontest->useinstead= findnamenode(linebuf);
     oicontest->camefrom= 0;
     oicontest->camefrom= 0;
     
     
-    if (!fgets(linebuf,sizeof(linebuf),file))
+    if (!fgets(linebuf,sizeof(linebuf),file)) {
       if (ferror(file)) ohshite(_("read error in diversions [iii]"));
       if (ferror(file)) ohshite(_("read error in diversions [iii]"));
       else ohshit(_("unexpected EOF in diversions [iii]"));
       else ohshit(_("unexpected EOF in diversions [iii]"));
+    }
     l= strlen(linebuf);
     l= strlen(linebuf);
     if (l == 0) ohshit(_("fgets gave an empty string from diversions [iii]"));
     if (l == 0) ohshit(_("fgets gave an empty string from diversions [iii]"));
     if (linebuf[--l] != '\n') ohshit(_("diversions file has too-long line or EOF [ii]"));
     if (linebuf[--l] != '\n') ohshit(_("diversions file has too-long line or EOF [ii]"));
@@ -485,25 +491,23 @@ void iterfileend(struct fileiterator *i) {
   free(i);
   free(i);
 }
 }
 
 
-void filesdbinit(void) {
-  struct filenamenode *fnn;
+static int autodetect_largemem(void) {
 #ifdef HAVE_SYSINFO
 #ifdef HAVE_SYSINFO
   struct sysinfo info;
   struct sysinfo info;
+  if (sysinfo(&info)) return 0;
+  if (info.freeram + (info.sharedram>>2) + (info.bufferram>>2) < 16384*1024 &&
+      info.totalram < 16384*1024)
+    return 0;
 #endif
 #endif
+  return 1;
+}
+
+void filesdbinit(void) {
+  struct filenamenode *fnn;
   int i;
   int i;
 
 
-#ifdef HAVE_SYSINFO
-  if (!f_largemem) {
-    f_largemem= -1;
-    if (!sysinfo(&info)) {
-      if (info.freeram + (info.sharedram>>2) + (info.bufferram>>2) >= 4096*1024 ||
-          info.totalram >= 6144)
-        f_largemem= 1;
-    }
-  }
-#else
-  f_largemem= 1;
-#endif
+  if (!f_largemem)
+    f_largemem= autodetect_largemem() ? 1 : -1;
 
 
   switch (f_largemem) {
   switch (f_largemem) {
   case 1:
   case 1:

+ 42 - 15
main/help.c

@@ -161,16 +161,25 @@ const char *pkgadminfile(struct pkginfo *pkg, const char *whichfile) {
   return vb.buf;
   return vb.buf;
 }
 }
 
 
-static void preexecscript(const char *path, char *const *argv) {
+static const char* preexecscript(const char *path, char *const *argv) {
+  /* returns the path to the script inside the chroot
+   * none of the stuff here will work if admindir isn't inside instdir
+   * as expected. - fixme
+   */
+  int instdirl;
+
   if (*instdir) {
   if (*instdir) {
-    /* fixme: won't work right when instdir != admindir */
-    if (chdir(instdir) || chroot(instdir)) ohshite("failed to chroot to `%.250s'",instdir);
+    if (chroot(instdir)) ohshite("failed to chroot to `%.250s'",instdir);
   }
   }
   if (f_debug & dbg_scripts) {
   if (f_debug & dbg_scripts) {
     fprintf(stderr,"D0%05o: fork/exec %s (",dbg_scripts,path);
     fprintf(stderr,"D0%05o: fork/exec %s (",dbg_scripts,path);
     while (*argv) fprintf(stderr," %s",*argv++);
     while (*argv) fprintf(stderr," %s",*argv++);
     fputs(" )\n",stderr);
     fputs(" )\n",stderr);
   }
   }
+  instdirl= strlen(instdir);
+  if (!instdirl) return path;
+  assert (strlen(path)>=instdirl);
+  return path+instdirl;
 }  
 }  
 
 
 static char *const *vbuildarglist(const char *scriptname, va_list ap) {
 static char *const *vbuildarglist(const char *scriptname, va_list ap) {
@@ -240,7 +249,7 @@ static void setexecute(const char *path, struct stat *stab) {
 int maintainer_script_installed(struct pkginfo *pkg, const char *scriptname,
 int maintainer_script_installed(struct pkginfo *pkg, const char *scriptname,
                                 const char *description, ...) {
                                 const char *description, ...) {
   /* all ...'s are const char*'s */
   /* all ...'s are const char*'s */
-  const char *scriptpath;
+  const char *scriptpath, *scriptexec;
   char *const *arglist;
   char *const *arglist;
   struct stat stab;
   struct stat stab;
   va_list ap;
   va_list ap;
@@ -263,8 +272,8 @@ int maintainer_script_installed(struct pkginfo *pkg, const char *scriptname,
   setexecute(scriptpath,&stab);
   setexecute(scriptpath,&stab);
   c1= m_fork();
   c1= m_fork();
   if (!c1) {
   if (!c1) {
-    preexecscript(scriptpath,arglist);
-    execv(scriptpath+strlen(instdir),arglist);
+    scriptexec= preexecscript(scriptpath,arglist);
+    execv(scriptexec,arglist);
     ohshite(_("unable to execute %s"),buf);
     ohshite(_("unable to execute %s"),buf);
   }
   }
   script_catchsignals(); /* This does a push_cleanup() */
   script_catchsignals(); /* This does a push_cleanup() */
@@ -278,6 +287,7 @@ int maintainer_script_installed(struct pkginfo *pkg, const char *scriptname,
 int maintainer_script_new(const char *scriptname, const char *description,
 int maintainer_script_new(const char *scriptname, const char *description,
                           const char *cidir, char *cidirrest, ...) {
                           const char *cidir, char *cidirrest, ...) {
   char *const *arglist;
   char *const *arglist;
+  const char *scriptexec;
   struct stat stab;
   struct stat stab;
   va_list ap;
   va_list ap;
   char buf[100];
   char buf[100];
@@ -299,8 +309,8 @@ int maintainer_script_new(const char *scriptname, const char *description,
   setexecute(cidir,&stab);
   setexecute(cidir,&stab);
   c1= m_fork();
   c1= m_fork();
   if (!c1) {
   if (!c1) {
-    preexecscript(cidir,arglist);
-    execv(cidir+strlen(instdir),arglist);
+    scriptexec= preexecscript(cidir,arglist);
+    execv(scriptexec,arglist);
     ohshite(_("unable to execute new %s"),buf);
     ohshite(_("unable to execute new %s"),buf);
   }
   }
   script_catchsignals(); /* This does a push_cleanup() */
   script_catchsignals(); /* This does a push_cleanup() */
@@ -315,7 +325,7 @@ int maintainer_script_alternative(struct pkginfo *pkg,
                                   const char *scriptname, const char *description,
                                   const char *scriptname, const char *description,
                                   const char *cidir, char *cidirrest,
                                   const char *cidir, char *cidirrest,
                                   const char *ifok, const char *iffallback) {
                                   const char *ifok, const char *iffallback) {
-  const char *oldscriptpath;
+  const char *oldscriptpath, *scriptexec;
   char *const *arglist;
   char *const *arglist;
   struct stat stab;
   struct stat stab;
   int c1, n, status;
   int c1, n, status;
@@ -341,8 +351,8 @@ int maintainer_script_alternative(struct pkginfo *pkg,
     setexecute(oldscriptpath,&stab);
     setexecute(oldscriptpath,&stab);
     c1= m_fork();
     c1= m_fork();
     if (!c1) {
     if (!c1) {
-      preexecscript(oldscriptpath,arglist);
-      execv(oldscriptpath+strlen(instdir),arglist);
+      scriptexec= preexecscript(oldscriptpath,arglist);
+      execv(scriptexec, arglist);
       ohshite(_("unable to execute %s"),buf);
       ohshite(_("unable to execute %s"),buf);
     }
     }
     script_catchsignals(); /* This does a push_cleanup() */
     script_catchsignals(); /* This does a push_cleanup() */
@@ -370,18 +380,19 @@ int maintainer_script_alternative(struct pkginfo *pkg,
   strcpy(cidirrest,scriptname);
   strcpy(cidirrest,scriptname);
   sprintf(buf,_("new %s script"),description);
   sprintf(buf,_("new %s script"),description);
 
 
-  if (stat(cidir,&stab))
+  if (stat(cidir,&stab)) {
     if (errno == ENOENT)
     if (errno == ENOENT)
       ohshit(_("there is no script in the new version of the package - giving up"));
       ohshit(_("there is no script in the new version of the package - giving up"));
     else
     else
       ohshite(_("unable to stat %s `%.250s'"),buf,cidir);
       ohshite(_("unable to stat %s `%.250s'"),buf,cidir);
+  }
 
 
   setexecute(cidir,&stab);
   setexecute(cidir,&stab);
 
 
   c1= m_fork();
   c1= m_fork();
   if (!c1) {
   if (!c1) {
-    preexecscript(cidir,arglist);
-    execv(cidir+strlen(instdir),arglist);
+    scriptexec= preexecscript(cidir,arglist);
+    execv(scriptexec, arglist);
     ohshite(_("unable to execute %s"),buf);
     ohshite(_("unable to execute %s"),buf);
   }
   }
   script_catchsignals(); /* This does a push_cleanup() */
   script_catchsignals(); /* This does a push_cleanup() */
@@ -448,6 +459,22 @@ void oldconffsetflags(struct conffile *searchconff) {
   }
   }
 }
 }
 
 
+int chmodsafe_unlink(const char *pathname) {
+  struct stat stab;
+
+  if (lstat(pathname,&stab)) return -1;
+  if (S_ISREG(stab.st_mode) ? (stab.st_mode | 07000) :
+      !(S_ISLNK(stab.st_mode) || S_ISDIR(stab.st_mode) ||
+   S_ISFIFO(stab.st_mode) || S_ISSOCK(stab.st_mode))) {
+    /* We chmod it if it is 1. a sticky or set-id file, or 2. an unrecognised
+     * object (ie, not a file, link, directory, fifo or socket
+     */
+    if (chmod(pathname,0600)) return -1;
+  }
+  if (unlink(pathname)) return -1;
+  return 0;
+}
+
 void ensure_pathname_nonexisting(const char *pathname) {
 void ensure_pathname_nonexisting(const char *pathname) {
   int c1;
   int c1;
   const char *u;
   const char *u;
@@ -462,7 +489,7 @@ void ensure_pathname_nonexisting(const char *pathname) {
     /* Either it's a file, or one of the path components is.  If one
     /* Either it's a file, or one of the path components is.  If one
      * of the path components is this will fail again ...
      * of the path components is this will fail again ...
      */
      */
-    if (!unlink(pathname)) return; /* OK, it was */
+    if (!chmodsafe_unlink(pathname)) return; /* OK, it was */
     if (errno == ENOTDIR) return;
     if (errno == ENOTDIR) return;
   }
   }
   if (errno != ENOTEMPTY) /* Huh ? */
   if (errno != ENOTEMPTY) /* Huh ? */

+ 7 - 1
main/main.c

@@ -239,7 +239,13 @@ static void ignoredepends(const struct cmdinfo *cip, const char *value) {
 }
 }
 
 
 static void setinteger(const struct cmdinfo *cip, const char *value) {
 static void setinteger(const struct cmdinfo *cip, const char *value) {
-	*cip->iassignto=atoi(value);
+  unsigned long v;
+  char *ep;
+
+  v= strtoul(value,&ep,0);
+  if (*ep || v > INT_MAX)
+    badusage("invalid integer for --%s: `%.250s'",cip->olong,value);
+  *cip->iassignto= v;
 }
 }
 
 
 static void setforce(const struct cmdinfo *cip, const char *value) {
 static void setforce(const struct cmdinfo *cip, const char *value) {

+ 2 - 0
main/main.h

@@ -99,6 +99,7 @@ void filesdbinit(void);
 
 
 void archivefiles(const char *const *argv);
 void archivefiles(const char *const *argv);
 void process_archive(const char *filename);
 void process_archive(const char *filename);
+int wanttoinstall(struct pkginfo *pkg, const struct versionrevision *ver, int saywhy);
 
 
 /* from update.c */
 /* from update.c */
 
 
@@ -169,6 +170,7 @@ void ensure_package_clientdata(struct pkginfo *pkg);
 const char *pkgadminfile(struct pkginfo *pkg, const char *whichfile);
 const char *pkgadminfile(struct pkginfo *pkg, const char *whichfile);
 void oldconffsetflags(struct conffile *searchconff);
 void oldconffsetflags(struct conffile *searchconff);
 void ensure_pathname_nonexisting(const char *pathname);
 void ensure_pathname_nonexisting(const char *pathname);
+int chmodsafe_unlink(const char *pathname); /* chmod 600, then unlink */
 void checkpath(void);
 void checkpath(void);
 struct filenamenode *namenodetouse(struct filenamenode*, struct pkginfo*);
 struct filenamenode *namenodetouse(struct filenamenode*, struct pkginfo*);
 
 

+ 1 - 35
main/processarc.c

@@ -201,43 +201,9 @@ void process_archive(const char *filename) {
   deconfigure= 0;
   deconfigure= 0;
   clear_istobes();
   clear_istobes();
 
 
-  if (pkg->want != want_install) {
-    if (f_alsoselect) {
-      printf(_("Selecting previously deselected package %s.\n"),pkg->name);
-      pkg->want= want_install;
-    } else {
-      printf(_("Skipping deselected package %s.\n"),pkg->name);
-      return;
-    }
-  }
-
-  if (pkg->status == stat_installed) {
-    r= versioncompare(&pkg->available.version,&pkg->installed.version);
-    if (r < 0) {
-      needepochs= epochsdiffer(&pkg->available.version,&pkg->installed.version) ?
-        vdew_always : vdew_never;
-      if (fc_downgrade) {
-        fprintf(stderr, _("dpkg - warning: downgrading %.250s from %.250s to %.250s.\n"),
-                pkg->name,
-                versiondescribe(&pkg->installed.version,needepochs),
-                versiondescribe(&pkg->available.version,needepochs));
-      } else {
-        fprintf(stderr, _("Will not downgrade"
-                " %.250s from version %.250s to %.250s, skipping.\n"),
-                pkg->name,
-                versiondescribe(&pkg->installed.version,needepochs),
-                versiondescribe(&pkg->available.version,needepochs));
-        pop_cleanup(ehflag_normaltidy);
-        return;
-      }
-    } else if (r == 0 && f_skipsame && /* same version fully installed ? */
-               pkg->status == stat_installed && !(pkg->eflag &= eflagf_reinstreq)) {
-      fprintf(stderr, _("Version %.250s of %.250s already installed, skipping.\n"),
-              versiondescribe(&pkg->installed.version,vdew_never),
-              pkg->name);
+  if (!wanttoinstall(pkg,&pkg->available.version,1)) {
       pop_cleanup(ehflag_normaltidy);
       pop_cleanup(ehflag_normaltidy);
       return;
       return;
-    }
   }
   }
 
 
   pkg->clientdata->istobe= itb_installnew;
   pkg->clientdata->istobe= itb_installnew;

+ 9 - 4
md5sum/md5sum.1

@@ -42,11 +42,16 @@ That is, each line in the file describes a file. A line looks like:
 
 
 .B <MD5 checksum>  <filename>
 .B <MD5 checksum>  <filename>
 
 
-So, for example, a file containing checksum for this manpage would look
-like(don't worry, if the checkusum doesn't match, there is a minor
-problem in keeping it up to date):
+So, for example, if a file was created and its message digest calculated
+like so:
+
+.B echo foo > md5-test-file; md5sum md5-test-file
+
+.B md5sum
+would report:
+
+.B d3b07384d113edec49eaa6238ad5ff00\  md5-test-file
 
 
-.B c6514f34ffe6e1ce146e1f17db2c0f90  md5sum.1
 .TP
 .TP
 .B -v
 .B -v
 Be more verbose. Print filenames when checking (with -c).
 Be more verbose. Print filenames when checking (with -c).

+ 148 - 156
po/en.po

@@ -6,7 +6,7 @@
 msgid ""
 msgid ""
 msgstr ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 1999-07-06 16:05-0700\n"
+"POT-Creation-Date: 1999-09-10 03:34+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -118,37 +118,37 @@ msgstr "unable to access dpkg status area"
 msgid "operation requires read/write access to dpkg status area"
 msgid "operation requires read/write access to dpkg status area"
 msgstr "operation requires read/write access to dpkg status area"
 msgstr "operation requires read/write access to dpkg status area"
 
 
-#: lib/dbmodify.c:197
+#: lib/dbmodify.c:198
 #, c-format
 #, c-format
 msgid "failed to remove my own update file %.255s"
 msgid "failed to remove my own update file %.255s"
 msgstr "failed to remove my own update file %.255s"
 msgstr "failed to remove my own update file %.255s"
 
 
-#: lib/dbmodify.c:229
+#: lib/dbmodify.c:230
 #, c-format
 #, c-format
 msgid "unable to write updated status of `%.250s'"
 msgid "unable to write updated status of `%.250s'"
 msgstr "unable to write updated status of `%.250s'"
 msgstr "unable to write updated status of `%.250s'"
 
 
-#: lib/dbmodify.c:231
+#: lib/dbmodify.c:232
 #, c-format
 #, c-format
 msgid "unable to flush updated status of `%.250s'"
 msgid "unable to flush updated status of `%.250s'"
 msgstr "unable to flush updated status of `%.250s'"
 msgstr "unable to flush updated status of `%.250s'"
 
 
-#: lib/dbmodify.c:233
+#: lib/dbmodify.c:234
 #, c-format
 #, c-format
 msgid "unable to truncate for updated status of `%.250s'"
 msgid "unable to truncate for updated status of `%.250s'"
 msgstr "unable to truncate for updated status of `%.250s'"
 msgstr "unable to truncate for updated status of `%.250s'"
 
 
-#: lib/dbmodify.c:235
+#: lib/dbmodify.c:236
 #, c-format
 #, c-format
 msgid "unable to fsync updated status of `%.250s'"
 msgid "unable to fsync updated status of `%.250s'"
 msgstr "unable to fsync updated status of `%.250s'"
 msgstr "unable to fsync updated status of `%.250s'"
 
 
-#: lib/dbmodify.c:237
+#: lib/dbmodify.c:238
 #, c-format
 #, c-format
 msgid "unable to close updated status of `%.250s'"
 msgid "unable to close updated status of `%.250s'"
 msgstr "unable to close updated status of `%.250s'"
 msgstr "unable to close updated status of `%.250s'"
 
 
-#: lib/dbmodify.c:240
+#: lib/dbmodify.c:241
 #, c-format
 #, c-format
 msgid "unable to install updated status of `%.250s'"
 msgid "unable to install updated status of `%.250s'"
 msgstr "unable to install updated status of `%.250s'"
 msgstr "unable to install updated status of `%.250s'"
@@ -435,7 +435,7 @@ msgstr "subprocess %s killed by signal (%s)%s"
 msgid "subprocess %s failed with wait status code %d"
 msgid "subprocess %s failed with wait status code %d"
 msgstr "subprocess %s failed with wait status code %d"
 msgstr "subprocess %s failed with wait status code %d"
 
 
-#: lib/mlib.c:122 main/help.c:350
+#: lib/mlib.c:122 main/help.c:360
 #, c-format
 #, c-format
 msgid "wait for %s failed"
 msgid "wait for %s failed"
 msgstr "wait for %s failed"
 msgstr "wait for %s failed"
@@ -619,14 +619,15 @@ msgid "empty value for %s"
 msgstr "empty value for %s"
 msgstr "empty value for %s"
 
 
 #: lib/showcright.c:31
 #: lib/showcright.c:31
-msgid "cannot open GPL file /usr/doc/dpkg/copyright"
-msgstr "cannot open GPL file /usr/doc/dpkg/copyright"
+#, fuzzy
+msgid "cannot open GPL file "
+msgstr "cannot remove old files list"
 
 
 #: lib/showcright.c:34
 #: lib/showcright.c:34
 msgid "unable to exec cat for displaying GPL file"
 msgid "unable to exec cat for displaying GPL file"
 msgstr "unable to exec cat for displaying GPL file"
 msgstr "unable to exec cat for displaying GPL file"
 
 
-#: lib/varbuf.c:76
+#: lib/varbuf.c:77
 msgid "failed to realloc for variable buffer"
 msgid "failed to realloc for variable buffer"
 msgstr "failed to realloc for variable buffer"
 msgstr "failed to realloc for variable buffer"
 
 
@@ -1477,29 +1478,11 @@ msgstr ""
 "Use dpkg --info (= dpkg-deb --info) to examine archive files,\n"
 "Use dpkg --info (= dpkg-deb --info) to examine archive files,\n"
 "and dpkg --contents (= dpkg-deb --contents) to list their contents."
 "and dpkg --contents (= dpkg-deb --contents) to list their contents."
 
 
-#: main/enquiry.c:499
-msgid "--assert-support-predepends does not take any arguments"
-msgstr "--assert-support-predepends does not take any arguments"
-
-#: main/enquiry.c:514
-msgid ""
-"Version of dpkg with Pre-Depends support not yet configured.\n"
-" Please use `dpkg --configure dpkg', and then try again.\n"
-msgstr ""
-"Version of dpkg with Pre-Depends support not yet configured.\n"
-" Please use `dpkg --configure dpkg', and then try again.\n"
-
-#: main/enquiry.c:518
-msgid ""
-"dpkg not recorded as installed, cannot check for Pre-Depends support !\n"
-msgstr ""
-"dpkg not recorded as installed, cannot check for Pre-Depends support !\n"
-
-#: main/enquiry.c:541
+#: main/enquiry.c:524
 msgid "--predep-package does not take any argument"
 msgid "--predep-package does not take any argument"
 msgstr "--predep-package does not take any argument"
 msgstr "--predep-package does not take any argument"
 
 
-#: main/enquiry.c:593
+#: main/enquiry.c:576
 #, c-format
 #, c-format
 msgid ""
 msgid ""
 "dpkg: cannot see how to satisfy pre-dependency:\n"
 "dpkg: cannot see how to satisfy pre-dependency:\n"
@@ -1508,12 +1491,12 @@ msgstr ""
 "dpkg: cannot see how to satisfy pre-dependency:\n"
 "dpkg: cannot see how to satisfy pre-dependency:\n"
 " %s\n"
 " %s\n"
 
 
-#: main/enquiry.c:594
+#: main/enquiry.c:577
 #, c-format
 #, c-format
 msgid "cannot satisfy pre-dependencies for %.250s (wanted due to %.250s)"
 msgid "cannot satisfy pre-dependencies for %.250s (wanted due to %.250s)"
 msgstr "cannot satisfy pre-dependencies for %.250s (wanted due to %.250s)"
 msgstr "cannot satisfy pre-dependencies for %.250s (wanted due to %.250s)"
 
 
-#: main/enquiry.c:614
+#: main/enquiry.c:597
 #, c-format
 #, c-format
 msgid ""
 msgid ""
 "dpkg: unexpected output from `%s --print-libgcc-file-name':\n"
 "dpkg: unexpected output from `%s --print-libgcc-file-name':\n"
@@ -1522,67 +1505,67 @@ msgstr ""
 "dpkg: unexpected output from `%s --print-libgcc-file-name':\n"
 "dpkg: unexpected output from `%s --print-libgcc-file-name':\n"
 " `%s'\n"
 " `%s'\n"
 
 
-#: main/enquiry.c:617
+#: main/enquiry.c:600
 #, c-format
 #, c-format
 msgid "compiler libgcc filename not understood: %.250s"
 msgid "compiler libgcc filename not understood: %.250s"
 msgstr "compiler libgcc filename not understood: %.250s"
 msgstr "compiler libgcc filename not understood: %.250s"
 
 
-#: main/enquiry.c:621
+#: main/enquiry.c:604
 msgid "--print-installation-architecture does not take any argument"
 msgid "--print-installation-architecture does not take any argument"
 msgstr "--print-installation-architecture does not take any argument"
 msgstr "--print-installation-architecture does not take any argument"
 
 
-#: main/enquiry.c:641
+#: main/enquiry.c:624
 msgid "--print-architecture does not take any argument"
 msgid "--print-architecture does not take any argument"
 msgstr "--print-architecture does not take any argument"
 msgstr "--print-architecture does not take any argument"
 
 
-#: main/enquiry.c:647
+#: main/enquiry.c:630
 msgid "failed to fdopen CC pipe"
 msgid "failed to fdopen CC pipe"
 msgstr "failed to fdopen CC pipe"
 msgstr "failed to fdopen CC pipe"
 
 
-#: main/enquiry.c:651
+#: main/enquiry.c:634
 #, c-format
 #, c-format
 msgid "failed to exec C compiler `%.250s'"
 msgid "failed to exec C compiler `%.250s'"
 msgstr "failed to exec C compiler `%.250s'"
 msgstr "failed to exec C compiler `%.250s'"
 
 
-#: main/enquiry.c:655
+#: main/enquiry.c:638
 msgid "error reading from CC pipe"
 msgid "error reading from CC pipe"
 msgstr "error reading from CC pipe"
 msgstr "error reading from CC pipe"
 
 
-#: main/enquiry.c:657
+#: main/enquiry.c:640
 msgid "empty output"
 msgid "empty output"
 msgstr "empty output"
 msgstr "empty output"
 
 
-#: main/enquiry.c:659
+#: main/enquiry.c:642
 msgid "no newline"
 msgid "no newline"
 msgstr "no newline"
 msgstr "no newline"
 
 
-#: main/enquiry.c:662
+#: main/enquiry.c:645
 msgid "no gcc-lib component"
 msgid "no gcc-lib component"
 msgstr "no gcc-lib component"
 msgstr "no gcc-lib component"
 
 
-#: main/enquiry.c:664
+#: main/enquiry.c:647
 msgid "no hyphen after gcc-lib"
 msgid "no hyphen after gcc-lib"
 msgstr "no hyphen after gcc-lib"
 msgstr "no hyphen after gcc-lib"
 
 
-#: main/enquiry.c:676
+#: main/enquiry.c:659
 #, c-format
 #, c-format
 msgid "dpkg: warning, architecture `%s' not in remapping table\n"
 msgid "dpkg: warning, architecture `%s' not in remapping table\n"
 msgstr "dpkg: warning, architecture `%s' not in remapping table\n"
 msgstr "dpkg: warning, architecture `%s' not in remapping table\n"
 
 
-#: main/enquiry.c:718
+#: main/enquiry.c:701
 msgid "--cmpversions takes three arguments: <version> <relation> <version>"
 msgid "--cmpversions takes three arguments: <version> <relation> <version>"
 msgstr "--cmpversions takes three arguments: <version> <relation> <version>"
 msgstr "--cmpversions takes three arguments: <version> <relation> <version>"
 
 
-#: main/enquiry.c:723
+#: main/enquiry.c:706
 msgid "--cmpversions bad relation"
 msgid "--cmpversions bad relation"
 msgstr "--cmpversions bad relation"
 msgstr "--cmpversions bad relation"
 
 
-#: main/enquiry.c:728
+#: main/enquiry.c:711
 #, c-format
 #, c-format
 msgid "version a has bad syntax: %s\n"
 msgid "version a has bad syntax: %s\n"
 msgstr "version a has bad syntax: %s\n"
 msgstr "version a has bad syntax: %s\n"
 
 
-#: main/enquiry.c:738
+#: main/enquiry.c:721
 #, c-format
 #, c-format
 msgid "version b has bad syntax: %s\n"
 msgid "version b has bad syntax: %s\n"
 msgstr "version b has bad syntax: %s\n"
 msgstr "version b has bad syntax: %s\n"
@@ -1618,12 +1601,12 @@ msgstr ""
 "dpkg - warning, overriding problem because --force enabled:\n"
 "dpkg - warning, overriding problem because --force enabled:\n"
 " "
 " "
 
 
-#: main/filesdb.c:116
+#: main/filesdb.c:120
 #, c-format
 #, c-format
 msgid "unable to open files list file for package `%.250s'"
 msgid "unable to open files list file for package `%.250s'"
 msgstr "unable to open files list file for package `%.250s'"
 msgstr "unable to open files list file for package `%.250s'"
 
 
-#: main/filesdb.c:121
+#: main/filesdb.c:125
 #, c-format
 #, c-format
 msgid ""
 msgid ""
 "dpkg: serious warning: files list file for package `%.250s' missing, "
 "dpkg: serious warning: files list file for package `%.250s' missing, "
@@ -1632,133 +1615,133 @@ msgstr ""
 "dpkg: serious warning: files list file for package `%.250s' missing, "
 "dpkg: serious warning: files list file for package `%.250s' missing, "
 "assuming package has no files currently installed.\n"
 "assuming package has no files currently installed.\n"
 
 
-#: main/filesdb.c:132
+#: main/filesdb.c:136
 #, c-format
 #, c-format
 msgid "unable to set buffering on `%.250s'"
 msgid "unable to set buffering on `%.250s'"
 msgstr "unable to set buffering on `%.250s'"
 msgstr "unable to set buffering on `%.250s'"
 
 
-#: main/filesdb.c:142
+#: main/filesdb.c:146
 #, c-format
 #, c-format
 msgid "fgets gave an empty null-terminated string from `%.250s'"
 msgid "fgets gave an empty null-terminated string from `%.250s'"
 msgstr "fgets gave an empty null-terminated string from `%.250s'"
 msgstr "fgets gave an empty null-terminated string from `%.250s'"
 
 
-#: main/filesdb.c:160
+#: main/filesdb.c:164
 #, c-format
 #, c-format
 msgid "files list file for package `%.250s' contains empty filename"
 msgid "files list file for package `%.250s' contains empty filename"
 msgstr "files list file for package `%.250s' contains empty filename"
 msgstr "files list file for package `%.250s' contains empty filename"
 
 
-#: main/filesdb.c:168
+#: main/filesdb.c:172
 #, c-format
 #, c-format
 msgid "error reading files list file for package `%.250s'"
 msgid "error reading files list file for package `%.250s'"
 msgstr "error reading files list file for package `%.250s'"
 msgstr "error reading files list file for package `%.250s'"
 
 
-#: main/filesdb.c:171
+#: main/filesdb.c:175
 #, c-format
 #, c-format
 msgid "error closing files list file for package `%.250s'"
 msgid "error closing files list file for package `%.250s'"
 msgstr "error closing files list file for package `%.250s'"
 msgstr "error closing files list file for package `%.250s'"
 
 
-#: main/filesdb.c:173
+#: main/filesdb.c:177
 #, c-format
 #, c-format
 msgid "files list file for package `%.250s' is truncated"
 msgid "files list file for package `%.250s' is truncated"
 msgstr "files list file for package `%.250s' is truncated"
 msgstr "files list file for package `%.250s' is truncated"
 
 
-#: main/filesdb.c:204
+#: main/filesdb.c:208
 msgid "(Reading database ... "
 msgid "(Reading database ... "
 msgstr "(Reading database ... "
 msgstr "(Reading database ... "
 
 
-#: main/filesdb.c:204
+#: main/filesdb.c:208
 msgid "(Scanning database ... "
 msgid "(Scanning database ... "
 msgstr "(Scanning database ... "
 msgstr "(Scanning database ... "
 
 
-#: main/filesdb.c:212
+#: main/filesdb.c:216
 #, c-format
 #, c-format
 msgid "%d files and directories currently installed.)\n"
 msgid "%d files and directories currently installed.)\n"
 msgstr "%d files and directories currently installed.)\n"
 msgstr "%d files and directories currently installed.)\n"
 
 
-#: main/filesdb.c:243
+#: main/filesdb.c:247
 #, c-format
 #, c-format
 msgid "unable to create updated files list file for package %s"
 msgid "unable to create updated files list file for package %s"
 msgstr "unable to create updated files list file for package %s"
 msgstr "unable to create updated files list file for package %s"
 
 
-#: main/filesdb.c:253
+#: main/filesdb.c:257
 #, c-format
 #, c-format
 msgid "failed to write to updated files list file for package %s"
 msgid "failed to write to updated files list file for package %s"
 msgstr "failed to write to updated files list file for package %s"
 msgstr "failed to write to updated files list file for package %s"
 
 
-#: main/filesdb.c:255
+#: main/filesdb.c:259
 #, c-format
 #, c-format
 msgid "failed to flush updated files list file for package %s"
 msgid "failed to flush updated files list file for package %s"
 msgstr "failed to flush updated files list file for package %s"
 msgstr "failed to flush updated files list file for package %s"
 
 
-#: main/filesdb.c:257
+#: main/filesdb.c:261
 #, c-format
 #, c-format
 msgid "failed to sync updated files list file for package %s"
 msgid "failed to sync updated files list file for package %s"
 msgstr "failed to sync updated files list file for package %s"
 msgstr "failed to sync updated files list file for package %s"
 
 
-#: main/filesdb.c:260
+#: main/filesdb.c:264
 #, c-format
 #, c-format
 msgid "failed to close updated files list file for package %s"
 msgid "failed to close updated files list file for package %s"
 msgstr "failed to close updated files list file for package %s"
 msgstr "failed to close updated files list file for package %s"
 
 
-#: main/filesdb.c:262
+#: main/filesdb.c:266
 #, c-format
 #, c-format
 msgid "failed to install updated files list file for package %s"
 msgid "failed to install updated files list file for package %s"
 msgstr "failed to install updated files list file for package %s"
 msgstr "failed to install updated files list file for package %s"
 
 
-#: main/filesdb.c:326
+#: main/filesdb.c:330
 msgid "failed to open diversions file"
 msgid "failed to open diversions file"
 msgstr "failed to open diversions file"
 msgstr "failed to open diversions file"
 
 
-#: main/filesdb.c:330
+#: main/filesdb.c:334
 msgid "failed to fstat previous diversions file"
 msgid "failed to fstat previous diversions file"
 msgstr "failed to fstat previous diversions file"
 msgstr "failed to fstat previous diversions file"
 
 
-#: main/filesdb.c:332
+#: main/filesdb.c:336
 msgid "failed to fstat diversions file"
 msgid "failed to fstat diversions file"
 msgstr "failed to fstat diversions file"
 msgstr "failed to fstat diversions file"
 
 
-#: main/filesdb.c:352
+#: main/filesdb.c:356
 msgid "fgets gave an empty string from diversions [i]"
 msgid "fgets gave an empty string from diversions [i]"
 msgstr "fgets gave an empty string from diversions [i]"
 msgstr "fgets gave an empty string from diversions [i]"
 
 
-#: main/filesdb.c:353
+#: main/filesdb.c:357
 msgid "diversions file has too-long line or EOF [i]"
 msgid "diversions file has too-long line or EOF [i]"
 msgstr "diversions file has too-long line or EOF [i]"
 msgstr "diversions file has too-long line or EOF [i]"
 
 
-#: main/filesdb.c:359
+#: main/filesdb.c:363
 msgid "read error in diversions [ii]"
 msgid "read error in diversions [ii]"
 msgstr "read error in diversions [ii]"
 msgstr "read error in diversions [ii]"
 
 
-#: main/filesdb.c:360
+#: main/filesdb.c:364
 msgid "unexpected EOF in diversions [ii]"
 msgid "unexpected EOF in diversions [ii]"
 msgstr "unexpected EOF in diversions [ii]"
 msgstr "unexpected EOF in diversions [ii]"
 
 
-#: main/filesdb.c:362
+#: main/filesdb.c:367
 msgid "fgets gave an empty string from diversions [ii]"
 msgid "fgets gave an empty string from diversions [ii]"
 msgstr "fgets gave an empty string from diversions [ii]"
 msgstr "fgets gave an empty string from diversions [ii]"
 
 
-#: main/filesdb.c:363 main/filesdb.c:373
+#: main/filesdb.c:368 main/filesdb.c:379
 msgid "diversions file has too-long line or EOF [ii]"
 msgid "diversions file has too-long line or EOF [ii]"
 msgstr "diversions file has too-long line or EOF [ii]"
 msgstr "diversions file has too-long line or EOF [ii]"
 
 
-#: main/filesdb.c:369
+#: main/filesdb.c:374
 msgid "read error in diversions [iii]"
 msgid "read error in diversions [iii]"
 msgstr "read error in diversions [iii]"
 msgstr "read error in diversions [iii]"
 
 
-#: main/filesdb.c:370
+#: main/filesdb.c:375
 msgid "unexpected EOF in diversions [iii]"
 msgid "unexpected EOF in diversions [iii]"
 msgstr "unexpected EOF in diversions [iii]"
 msgstr "unexpected EOF in diversions [iii]"
 
 
-#: main/filesdb.c:372
+#: main/filesdb.c:378
 msgid "fgets gave an empty string from diversions [iii]"
 msgid "fgets gave an empty string from diversions [iii]"
 msgstr "fgets gave an empty string from diversions [iii]"
 msgstr "fgets gave an empty string from diversions [iii]"
 
 
-#: main/filesdb.c:380
+#: main/filesdb.c:386
 #, c-format
 #, c-format
 msgid "conflicting diversions involving `%.250s' or `%.250s'"
 msgid "conflicting diversions involving `%.250s' or `%.250s'"
 msgstr "conflicting diversions involving `%.250s' or `%.250s'"
 msgstr "conflicting diversions involving `%.250s' or `%.250s'"
 
 
-#: main/filesdb.c:389
+#: main/filesdb.c:395
 msgid "read error in diversions [i]"
 msgid "read error in diversions [i]"
 msgstr "read error in diversions [i]"
 msgstr "read error in diversions [i]"
 
 
@@ -1804,90 +1787,90 @@ msgstr ""
 "%d expected program(s) not found on PATH.\n"
 "%d expected program(s) not found on PATH.\n"
 "NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin."
 "NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin."
 
 
-#: main/help.c:210
+#: main/help.c:219
 #, c-format
 #, c-format
 msgid "error un-catching signal %s: %s\n"
 msgid "error un-catching signal %s: %s\n"
 msgstr "error un-catching signal %s: %s\n"
 msgstr "error un-catching signal %s: %s\n"
 
 
-#: main/help.c:228
+#: main/help.c:237
 #, c-format
 #, c-format
 msgid "unable to ignore signal %s before running script"
 msgid "unable to ignore signal %s before running script"
 msgstr "unable to ignore signal %s before running script"
 msgstr "unable to ignore signal %s before running script"
 
 
-#: main/help.c:237
+#: main/help.c:246
 #, c-format
 #, c-format
 msgid "unable to set execute permissions on `%.250s'"
 msgid "unable to set execute permissions on `%.250s'"
 msgstr "unable to set execute permissions on `%.250s'"
 msgstr "unable to set execute permissions on `%.250s'"
 
 
-#: main/help.c:261
+#: main/help.c:270
 #, c-format
 #, c-format
 msgid "unable to stat installed %s script `%.250s'"
 msgid "unable to stat installed %s script `%.250s'"
 msgstr "unable to stat installed %s script `%.250s'"
 msgstr "unable to stat installed %s script `%.250s'"
 
 
-#: main/help.c:268 main/help.c:346 main/help.c:385
+#: main/help.c:277 main/help.c:356 main/help.c:396
 #, c-format
 #, c-format
 msgid "unable to execute %s"
 msgid "unable to execute %s"
 msgstr "unable to execute %s"
 msgstr "unable to execute %s"
 
 
-#: main/help.c:297
+#: main/help.c:307
 #, c-format
 #, c-format
 msgid "unable to stat new %s script `%.250s'"
 msgid "unable to stat new %s script `%.250s'"
 msgstr "unable to stat new %s script `%.250s'"
 msgstr "unable to stat new %s script `%.250s'"
 
 
-#: main/help.c:304
+#: main/help.c:314
 #, c-format
 #, c-format
 msgid "unable to execute new %s"
 msgid "unable to execute new %s"
 msgstr "unable to execute new %s"
 msgstr "unable to execute new %s"
 
 
-#: main/help.c:338
+#: main/help.c:348
 #, c-format
 #, c-format
 msgid "dpkg: warning - unable to stat %s `%.250s': %s\n"
 msgid "dpkg: warning - unable to stat %s `%.250s': %s\n"
 msgstr "dpkg: warning - unable to stat %s `%.250s': %s\n"
 msgstr "dpkg: warning - unable to stat %s `%.250s': %s\n"
 
 
-#: main/help.c:354
+#: main/help.c:364
 #, c-format
 #, c-format
 msgid "dpkg: warning - %s returned error exit status %d\n"
 msgid "dpkg: warning - %s returned error exit status %d\n"
 msgstr "dpkg: warning - %s returned error exit status %d\n"
 msgstr "dpkg: warning - %s returned error exit status %d\n"
 
 
-#: main/help.c:357
+#: main/help.c:367
 #, c-format
 #, c-format
 msgid "dpkg: warning - %s killed by signal (%s)%s\n"
 msgid "dpkg: warning - %s killed by signal (%s)%s\n"
 msgstr "dpkg: warning - %s killed by signal (%s)%s\n"
 msgstr "dpkg: warning - %s killed by signal (%s)%s\n"
 
 
-#: main/help.c:360
+#: main/help.c:370
 #, c-format
 #, c-format
 msgid "%s failed with unknown wait status code %d"
 msgid "%s failed with unknown wait status code %d"
 msgstr "%s failed with unknown wait status code %d"
 msgstr "%s failed with unknown wait status code %d"
 
 
-#: main/help.c:364
+#: main/help.c:374
 msgid "dpkg - trying script from the new package instead ...\n"
 msgid "dpkg - trying script from the new package instead ...\n"
 msgstr "dpkg - trying script from the new package instead ...\n"
 msgstr "dpkg - trying script from the new package instead ...\n"
 
 
-#: main/help.c:371
+#: main/help.c:381
 #, c-format
 #, c-format
 msgid "new %s script"
 msgid "new %s script"
 msgstr "new %s script"
 msgstr "new %s script"
 
 
-#: main/help.c:375
+#: main/help.c:385
 msgid "there is no script in the new version of the package - giving up"
 msgid "there is no script in the new version of the package - giving up"
 msgstr "there is no script in the new version of the package - giving up"
 msgstr "there is no script in the new version of the package - giving up"
 
 
-#: main/help.c:377
+#: main/help.c:387
 #, c-format
 #, c-format
 msgid "unable to stat %s `%.250s'"
 msgid "unable to stat %s `%.250s'"
 msgstr "unable to stat %s `%.250s'"
 msgstr "unable to stat %s `%.250s'"
 
 
-#: main/help.c:390
+#: main/help.c:401
 msgid "dpkg: ... it looks like that went OK.\n"
 msgid "dpkg: ... it looks like that went OK.\n"
 msgstr "dpkg: ... it looks like that went OK.\n"
 msgstr "dpkg: ... it looks like that went OK.\n"
 
 
 #. Huh ?
 #. Huh ?
-#: main/help.c:469
+#: main/help.c:496
 #, c-format
 #, c-format
 msgid "failed to rmdir/unlink `%.255s'"
 msgid "failed to rmdir/unlink `%.255s'"
 msgstr "failed to rmdir/unlink `%.255s'"
 msgstr "failed to rmdir/unlink `%.255s'"
 
 
-#: dpkg-deb/info.c:52 main/help.c:473
+#: dpkg-deb/info.c:52 main/help.c:500
 msgid "failed to exec rm for cleanup"
 msgid "failed to exec rm for cleanup"
 msgstr "failed to exec rm for cleanup"
 msgstr "failed to exec rm for cleanup"
 
 
@@ -2011,7 +1994,7 @@ msgstr "null package name in --ignore-depends comma-separated list `%.250s'"
 msgid "--ignore-depends requires a legal package name. `%.250s' is not; %s"
 msgid "--ignore-depends requires a legal package name. `%.250s' is not; %s"
 msgstr "--ignore-depends requires a legal package name. `%.250s' is not; %s"
 msgstr "--ignore-depends requires a legal package name. `%.250s' is not; %s"
 
 
-#: main/main.c:251
+#: main/main.c:257
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "dpkg forcing options - control behaviour when problems found:\n"
 "dpkg forcing options - control behaviour when problems found:\n"
@@ -2066,16 +2049,16 @@ msgstr ""
 "WARNING - use of options marked [!] can seriously damage your installation.\n"
 "WARNING - use of options marked [!] can seriously damage your installation.\n"
 "Forcing options marked [*] are enabled by default.\n"
 "Forcing options marked [*] are enabled by default.\n"
 
 
-#: main/main.c:283
+#: main/main.c:289
 #, c-format
 #, c-format
 msgid "unknown force/refuse option `%.*s'"
 msgid "unknown force/refuse option `%.*s'"
 msgstr "unknown force/refuse option `%.*s'"
 msgstr "unknown force/refuse option `%.*s'"
 
 
-#: main/main.c:360
+#: main/main.c:366
 msgid "failed to exec dpkg-deb"
 msgid "failed to exec dpkg-deb"
 msgstr "failed to exec dpkg-deb"
 msgstr "failed to exec dpkg-deb"
 
 
-#: dpkg-deb/main.c:150 main/main.c:396 split/main.c:163
+#: dpkg-deb/main.c:150 main/main.c:402 split/main.c:163
 msgid "need an action option"
 msgid "need an action option"
 msgstr "need an action option"
 msgstr "need an action option"
 
 
@@ -2181,32 +2164,7 @@ msgstr "Recorded info about %s from %s.\n"
 msgid "package architecture (%s) does not match system (%s)"
 msgid "package architecture (%s) does not match system (%s)"
 msgstr "package architecture (%s) does not match system (%s)"
 msgstr "package architecture (%s) does not match system (%s)"
 
 
-#: main/processarc.c:206
-#, c-format
-msgid "Selecting previously deselected package %s.\n"
-msgstr "Selecting previously deselected package %s.\n"
-
-#: main/processarc.c:209
-#, c-format
-msgid "Skipping deselected package %s.\n"
-msgstr "Skipping deselected package %s.\n"
-
-#: main/processarc.c:220
-#, c-format
-msgid "dpkg - warning: downgrading %.250s from %.250s to %.250s.\n"
-msgstr "dpkg - warning: downgrading %.250s from %.250s to %.250s.\n"
-
-#: main/processarc.c:225
-#, c-format
-msgid "Will not downgrade %.250s from version %.250s to %.250s, skipping.\n"
-msgstr "Will not downgrade %.250s from version %.250s to %.250s, skipping.\n"
-
-#: main/processarc.c:235
-#, c-format
-msgid "Version %.250s of %.250s already installed, skipping.\n"
-msgstr "Version %.250s of %.250s already installed, skipping.\n"
-
-#: main/processarc.c:268
+#: main/processarc.c:234
 #, c-format
 #, c-format
 msgid ""
 msgid ""
 "dpkg: regarding %s containing %s, pre-dependency problem:\n"
 "dpkg: regarding %s containing %s, pre-dependency problem:\n"
@@ -2215,136 +2173,136 @@ msgstr ""
 "dpkg: regarding %s containing %s, pre-dependency problem:\n"
 "dpkg: regarding %s containing %s, pre-dependency problem:\n"
 "%s"
 "%s"
 
 
-#: main/processarc.c:271
+#: main/processarc.c:237
 #, c-format
 #, c-format
 msgid "pre-dependency problem - not installing %.250s"
 msgid "pre-dependency problem - not installing %.250s"
 msgstr "pre-dependency problem - not installing %.250s"
 msgstr "pre-dependency problem - not installing %.250s"
 
 
-#: main/processarc.c:272
+#: main/processarc.c:238
 msgid "dpkg: warning - ignoring pre-dependency problem !\n"
 msgid "dpkg: warning - ignoring pre-dependency problem !\n"
 msgstr "dpkg: warning - ignoring pre-dependency problem !\n"
 msgstr "dpkg: warning - ignoring pre-dependency problem !\n"
 
 
-#: main/processarc.c:286
+#: main/processarc.c:252
 #, c-format
 #, c-format
 msgid "Preparing to replace %s %s (using %s) ...\n"
 msgid "Preparing to replace %s %s (using %s) ...\n"
 msgstr "Preparing to replace %s %s (using %s) ...\n"
 msgstr "Preparing to replace %s %s (using %s) ...\n"
 
 
-#: main/processarc.c:291
+#: main/processarc.c:257
 #, c-format
 #, c-format
 msgid "Unpacking %s (from %s) ...\n"
 msgid "Unpacking %s (from %s) ...\n"
 msgstr "Unpacking %s (from %s) ...\n"
 msgstr "Unpacking %s (from %s) ...\n"
 
 
-#: main/processarc.c:311
+#: main/processarc.c:277
 #, c-format
 #, c-format
 msgid "name of conffile (starting `%.250s') is too long (>%d characters)"
 msgid "name of conffile (starting `%.250s') is too long (>%d characters)"
 msgstr "name of conffile (starting `%.250s') is too long (>%d characters)"
 msgstr "name of conffile (starting `%.250s') is too long (>%d characters)"
 
 
-#: main/processarc.c:365
+#: main/processarc.c:331
 #, c-format
 #, c-format
 msgid "read error in %.250s"
 msgid "read error in %.250s"
 msgstr "read error in %.250s"
 msgstr "read error in %.250s"
 
 
 #. conff= fopen()
 #. conff= fopen()
-#: main/processarc.c:367
+#: main/processarc.c:333
 #, c-format
 #, c-format
 msgid "error closing %.250s"
 msgid "error closing %.250s"
 msgstr "error closing %.250s"
 msgstr "error closing %.250s"
 
 
-#: main/processarc.c:369
+#: main/processarc.c:335
 #, c-format
 #, c-format
 msgid "error trying to open %.250s"
 msgid "error trying to open %.250s"
 msgstr "error trying to open %.250s"
 msgstr "error trying to open %.250s"
 
 
-#: main/processarc.c:401
+#: main/processarc.c:367
 #, c-format
 #, c-format
 msgid "De-configuring %s, so that we can remove %s ...\n"
 msgid "De-configuring %s, so that we can remove %s ...\n"
 msgstr "De-configuring %s, so that we can remove %s ...\n"
 msgstr "De-configuring %s, so that we can remove %s ...\n"
 
 
-#: main/processarc.c:458
+#: main/processarc.c:424
 #, c-format
 #, c-format
 msgid "Unpacking replacement %.250s ...\n"
 msgid "Unpacking replacement %.250s ...\n"
 msgstr "Unpacking replacement %.250s ...\n"
 msgstr "Unpacking replacement %.250s ...\n"
 
 
-#: main/processarc.c:534
+#: main/processarc.c:500
 msgid "unable to exec dpkg-deb to get filesystem archive"
 msgid "unable to exec dpkg-deb to get filesystem archive"
 msgstr "unable to exec dpkg-deb to get filesystem archive"
 msgstr "unable to exec dpkg-deb to get filesystem archive"
 
 
-#: main/processarc.c:542
+#: main/processarc.c:508
 msgid "unable to fdopen dpkg-deb extract pipe"
 msgid "unable to fdopen dpkg-deb extract pipe"
 msgstr "unable to fdopen dpkg-deb extract pipe"
 msgstr "unable to fdopen dpkg-deb extract pipe"
 
 
-#: main/processarc.c:548
+#: main/processarc.c:514
 msgid "error reading dpkg-deb tar output"
 msgid "error reading dpkg-deb tar output"
 msgstr "error reading dpkg-deb tar output"
 msgstr "error reading dpkg-deb tar output"
 
 
-#: main/processarc.c:551
+#: main/processarc.c:517
 msgid "unexpected EOF in filesystem tarfile - corrupted package archive"
 msgid "unexpected EOF in filesystem tarfile - corrupted package archive"
 msgstr "unexpected EOF in filesystem tarfile - corrupted package archive"
 msgstr "unexpected EOF in filesystem tarfile - corrupted package archive"
 
 
-#: main/processarc.c:553
+#: main/processarc.c:519
 msgid "corrupted filesystem tarfile - corrupted package archive"
 msgid "corrupted filesystem tarfile - corrupted package archive"
 msgstr "corrupted filesystem tarfile - corrupted package archive"
 msgstr "corrupted filesystem tarfile - corrupted package archive"
 
 
-#: main/processarc.c:610
+#: main/processarc.c:576
 #, c-format
 #, c-format
 msgid "dpkg: warning - unable to delete old file `%.250s': %s\n"
 msgid "dpkg: warning - unable to delete old file `%.250s': %s\n"
 msgstr "dpkg: warning - unable to delete old file `%.250s': %s\n"
 msgstr "dpkg: warning - unable to delete old file `%.250s': %s\n"
 
 
-#: main/processarc.c:632 main/processarc.c:867 main/remove.c:287
+#: main/processarc.c:598 main/processarc.c:833 main/remove.c:287
 msgid "cannot read info directory"
 msgid "cannot read info directory"
 msgstr "cannot read info directory"
 msgstr "cannot read info directory"
 
 
-#: main/processarc.c:645
+#: main/processarc.c:611
 #, c-format
 #, c-format
 msgid "old version of package has overly-long info file name starting `%.250s'"
 msgid "old version of package has overly-long info file name starting `%.250s'"
 msgstr ""
 msgstr ""
 "old version of package has overly-long info file name starting `%.250s'"
 "old version of package has overly-long info file name starting `%.250s'"
 
 
-#: main/processarc.c:657
+#: main/processarc.c:623
 #, c-format
 #, c-format
 msgid "unable to remove obsolete info file `%.250s'"
 msgid "unable to remove obsolete info file `%.250s'"
 msgstr "unable to remove obsolete info file `%.250s'"
 msgstr "unable to remove obsolete info file `%.250s'"
 
 
-#: main/processarc.c:660
+#: main/processarc.c:626
 #, c-format
 #, c-format
 msgid "unable to install (supposed) new info file `%.250s'"
 msgid "unable to install (supposed) new info file `%.250s'"
 msgstr "unable to install (supposed) new info file `%.250s'"
 msgstr "unable to install (supposed) new info file `%.250s'"
 
 
-#: main/processarc.c:667
+#: main/processarc.c:633
 msgid "unable to open temp control directory"
 msgid "unable to open temp control directory"
 msgstr "unable to open temp control directory"
 msgstr "unable to open temp control directory"
 
 
-#: main/processarc.c:676
+#: main/processarc.c:642
 #, c-format
 #, c-format
 msgid "package contains overly-long control info file name (starting `%.50s')"
 msgid "package contains overly-long control info file name (starting `%.50s')"
 msgstr "package contains overly-long control info file name (starting `%.50s')"
 msgstr "package contains overly-long control info file name (starting `%.50s')"
 
 
-#: main/processarc.c:681
+#: main/processarc.c:647
 #, c-format
 #, c-format
 msgid "package control info contained directory `%.250s'"
 msgid "package control info contained directory `%.250s'"
 msgstr "package control info contained directory `%.250s'"
 msgstr "package control info contained directory `%.250s'"
 
 
-#: main/processarc.c:683
+#: main/processarc.c:649
 #, c-format
 #, c-format
 msgid "package control info rmdir of `%.250s' didn't say not a dir"
 msgid "package control info rmdir of `%.250s' didn't say not a dir"
 msgstr "package control info rmdir of `%.250s' didn't say not a dir"
 msgstr "package control info rmdir of `%.250s' didn't say not a dir"
 
 
-#: main/processarc.c:689
+#: main/processarc.c:655
 #, c-format
 #, c-format
 msgid "dpkg: warning - package %s contained list as info file"
 msgid "dpkg: warning - package %s contained list as info file"
 msgstr "dpkg: warning - package %s contained list as info file"
 msgstr "dpkg: warning - package %s contained list as info file"
 
 
-#: main/processarc.c:696
+#: main/processarc.c:662
 #, c-format
 #, c-format
 msgid "unable to install new info file `%.250s' as `%.250s'"
 msgid "unable to install new info file `%.250s' as `%.250s'"
 msgstr "unable to install new info file `%.250s' as `%.250s'"
 msgstr "unable to install new info file `%.250s' as `%.250s'"
 
 
-#: main/processarc.c:847
+#: main/processarc.c:813
 #, c-format
 #, c-format
 msgid "(Noting disappearance of %s, which has been completely replaced.)\n"
 msgid "(Noting disappearance of %s, which has been completely replaced.)\n"
 msgstr "(Noting disappearance of %s, which has been completely replaced.)\n"
 msgstr "(Noting disappearance of %s, which has been completely replaced.)\n"
 
 
-#: main/processarc.c:883
+#: main/processarc.c:849
 #, c-format
 #, c-format
 msgid "unable to delete disappearing control info file `%.250s'"
 msgid "unable to delete disappearing control info file `%.250s'"
 msgstr "unable to delete disappearing control info file `%.250s'"
 msgstr "unable to delete disappearing control info file `%.250s'"
@@ -3503,6 +3461,40 @@ msgstr "%s: %d of %d file(s) failed MD5 check\n"
 msgid "%s: no files checked\n"
 msgid "%s: no files checked\n"
 msgstr "%s: no files checked\n"
 msgstr "%s: no files checked\n"
 
 
+#~ msgid "cannot open GPL file /usr/doc/dpkg/copyright"
+#~ msgstr "cannot open GPL file /usr/doc/dpkg/copyright"
+
+#~ msgid "--assert-support-predepends does not take any arguments"
+#~ msgstr "--assert-support-predepends does not take any arguments"
+
+#~ msgid ""
+#~ "Version of dpkg with Pre-Depends support not yet configured.\n"
+#~ " Please use `dpkg --configure dpkg', and then try again.\n"
+#~ msgstr ""
+#~ "Version of dpkg with Pre-Depends support not yet configured.\n"
+#~ " Please use `dpkg --configure dpkg', and then try again.\n"
+
+#~ msgid ""
+#~ "dpkg not recorded as installed, cannot check for Pre-Depends support !\n"
+#~ msgstr ""
+#~ "dpkg not recorded as installed, cannot check for Pre-Depends support !\n"
+
+#~ msgid "Selecting previously deselected package %s.\n"
+#~ msgstr "Selecting previously deselected package %s.\n"
+
+#~ msgid "Skipping deselected package %s.\n"
+#~ msgstr "Skipping deselected package %s.\n"
+
+#~ msgid "dpkg - warning: downgrading %.250s from %.250s to %.250s.\n"
+#~ msgstr "dpkg - warning: downgrading %.250s from %.250s to %.250s.\n"
+
+#~ msgid "Will not downgrade %.250s from version %.250s to %.250s, skipping.\n"
+#~ msgstr ""
+#~ "Will not downgrade %.250s from version %.250s to %.250s, skipping.\n"
+
+#~ msgid "Version %.250s of %.250s already installed, skipping.\n"
+#~ msgstr "Version %.250s of %.250s already installed, skipping.\n"
+
 #, fuzzy
 #, fuzzy
 #~ msgid ""
 #~ msgid ""
 #~ "Usage: \n"
 #~ "Usage: \n"

+ 150 - 159
po/fr.po

@@ -17,7 +17,7 @@
 msgid ""
 msgid ""
 msgstr ""
 msgstr ""
 "Project-Id-Version: Debian dpkg 1.4.0.14\n"
 "Project-Id-Version: Debian dpkg 1.4.0.14\n"
-"POT-Creation-Date: 1999-07-06 16:05-0700\n"
+"POT-Creation-Date: 1999-09-10 03:34+0200\n"
 "PO-Revision-Date: 1997-05-13 22:07 EDT\n"
 "PO-Revision-Date: 1997-05-13 22:07 EDT\n"
 "Last-Translator: Christophe Le Bars <clebars@debian.org>\n"
 "Last-Translator: Christophe Le Bars <clebars@debian.org>\n"
 "Language-Team: French\n"
 "Language-Team: French\n"
@@ -173,37 +173,37 @@ msgid "operation requires read/write access to dpkg status area"
 msgstr ""
 msgstr ""
 "opération demandant un accès en lecture-écriture dans la zone d'états de dpkg"
 "opération demandant un accès en lecture-écriture dans la zone d'états de dpkg"
 
 
-#: lib/dbmodify.c:197
+#: lib/dbmodify.c:198
 #, c-format
 #, c-format
 msgid "failed to remove my own update file %.255s"
 msgid "failed to remove my own update file %.255s"
 msgstr "échec pour retirer mon propre fichier de mise à jour %.255s"
 msgstr "échec pour retirer mon propre fichier de mise à jour %.255s"
 
 
-#: lib/dbmodify.c:229
+#: lib/dbmodify.c:230
 #, c-format
 #, c-format
 msgid "unable to write updated status of `%.250s'"
 msgid "unable to write updated status of `%.250s'"
 msgstr "impossible d'écrire l'état modifié de `%.250s'"
 msgstr "impossible d'écrire l'état modifié de `%.250s'"
 
 
-#: lib/dbmodify.c:231
+#: lib/dbmodify.c:232
 #, c-format
 #, c-format
 msgid "unable to flush updated status of `%.250s'"
 msgid "unable to flush updated status of `%.250s'"
 msgstr "impossible de vider l'état modifié de `%.250s'"
 msgstr "impossible de vider l'état modifié de `%.250s'"
 
 
-#: lib/dbmodify.c:233
+#: lib/dbmodify.c:234
 #, c-format
 #, c-format
 msgid "unable to truncate for updated status of `%.250s'"
 msgid "unable to truncate for updated status of `%.250s'"
 msgstr "impossible de troncaténer pour l'état modifié de `%.250s'"
 msgstr "impossible de troncaténer pour l'état modifié de `%.250s'"
 
 
-#: lib/dbmodify.c:235
+#: lib/dbmodify.c:236
 #, c-format
 #, c-format
 msgid "unable to fsync updated status of `%.250s'"
 msgid "unable to fsync updated status of `%.250s'"
 msgstr "impossible de \"fsync\" l'état modifié de `%.250s'"
 msgstr "impossible de \"fsync\" l'état modifié de `%.250s'"
 
 
-#: lib/dbmodify.c:237
+#: lib/dbmodify.c:238
 #, c-format
 #, c-format
 msgid "unable to close updated status of `%.250s'"
 msgid "unable to close updated status of `%.250s'"
 msgstr "impossible de fermer l'état modifié de `%.250s'"
 msgstr "impossible de fermer l'état modifié de `%.250s'"
 
 
-#: lib/dbmodify.c:240
+#: lib/dbmodify.c:241
 #, c-format
 #, c-format
 msgid "unable to install updated status of `%.250s'"
 msgid "unable to install updated status of `%.250s'"
 msgstr "impossible d'installer l'état modifié de `%.250s'"
 msgstr "impossible d'installer l'état modifié de `%.250s'"
@@ -503,7 +503,7 @@ msgstr "sous-processus %s tu
 msgid "subprocess %s failed with wait status code %d"
 msgid "subprocess %s failed with wait status code %d"
 msgstr "sous-processus %s a échoué avec le code d'état d'attente %d"
 msgstr "sous-processus %s a échoué avec le code d'état d'attente %d"
 
 
-#: lib/mlib.c:122 main/help.c:350
+#: lib/mlib.c:122 main/help.c:360
 #, c-format
 #, c-format
 msgid "wait for %s failed"
 msgid "wait for %s failed"
 msgstr "attente de l'échec de %s"
 msgstr "attente de l'échec de %s"
@@ -693,14 +693,15 @@ msgid "empty value for %s"
 msgstr "valeur nulle pour %s"
 msgstr "valeur nulle pour %s"
 
 
 #: lib/showcright.c:31
 #: lib/showcright.c:31
-msgid "cannot open GPL file /usr/doc/dpkg/copyright"
-msgstr "ne peut pas ouvrir le fichier GPL /usr/doc/dpkg/copyright"
+#, fuzzy
+msgid "cannot open GPL file "
+msgstr "ne peut pas supprimer la liste des anciens fichiers"
 
 
 #: lib/showcright.c:34
 #: lib/showcright.c:34
 msgid "unable to exec cat for displaying GPL file"
 msgid "unable to exec cat for displaying GPL file"
 msgstr "impossible d'exécuter \"cat\" pour afficher le fichier GPL"
 msgstr "impossible d'exécuter \"cat\" pour afficher le fichier GPL"
 
 
-#: lib/varbuf.c:76
+#: lib/varbuf.c:77
 msgid "failed to realloc for variable buffer"
 msgid "failed to realloc for variable buffer"
 msgstr "échec pour réallouer les variables \"buffer\""
 msgstr "échec pour réallouer les variables \"buffer\""
 
 
@@ -1590,30 +1591,11 @@ msgstr ""
 "archives,\n"
 "archives,\n"
 "et dpkg --contents (= dpkg-deb --contents) pour afficher leurs contenus."
 "et dpkg --contents (= dpkg-deb --contents) pour afficher leurs contenus."
 
 
-#: main/enquiry.c:499
-msgid "--assert-support-predepends does not take any arguments"
-msgstr "--assert-support-predepends ne prend aucun argument"
-
-#: main/enquiry.c:514
-msgid ""
-"Version of dpkg with Pre-Depends support not yet configured.\n"
-" Please use `dpkg --configure dpkg', and then try again.\n"
-msgstr ""
-"Version de dpkg avec support des pré-dépendances non encore configurée.\n"
-" Utilisez s'il vous plaît `dpkg --configure dpkg' et essayez à nouveau.\n"
-
-#: main/enquiry.c:518
-msgid ""
-"dpkg not recorded as installed, cannot check for Pre-Depends support !\n"
-msgstr ""
-"dpkg non enregistré comme installé, vérification du support des "
-"pré-dépendances impossible !\n"
-
-#: main/enquiry.c:541
+#: main/enquiry.c:524
 msgid "--predep-package does not take any argument"
 msgid "--predep-package does not take any argument"
 msgstr "--predep-package ne prend aucun argument"
 msgstr "--predep-package ne prend aucun argument"
 
 
-#: main/enquiry.c:593
+#: main/enquiry.c:576
 #, c-format
 #, c-format
 msgid ""
 msgid ""
 "dpkg: cannot see how to satisfy pre-dependency:\n"
 "dpkg: cannot see how to satisfy pre-dependency:\n"
@@ -1622,13 +1604,13 @@ msgstr ""
 "dpkg: ne peut pas voir comment satisfaire les pré-dépendances:\n"
 "dpkg: ne peut pas voir comment satisfaire les pré-dépendances:\n"
 " %s\n"
 " %s\n"
 
 
-#: main/enquiry.c:594
+#: main/enquiry.c:577
 #, c-format
 #, c-format
 msgid "cannot satisfy pre-dependencies for %.250s (wanted due to %.250s)"
 msgid "cannot satisfy pre-dependencies for %.250s (wanted due to %.250s)"
 msgstr ""
 msgstr ""
 "ne peut satisfaire les pré-dépendances pour %.250s (réclamé par %.250s)"
 "ne peut satisfaire les pré-dépendances pour %.250s (réclamé par %.250s)"
 
 
-#: main/enquiry.c:614
+#: main/enquiry.c:597
 #, c-format
 #, c-format
 msgid ""
 msgid ""
 "dpkg: unexpected output from `%s --print-libgcc-file-name':\n"
 "dpkg: unexpected output from `%s --print-libgcc-file-name':\n"
@@ -1637,69 +1619,69 @@ msgstr ""
 "dpkg: sortie inattendu de `%s --print-libgcc-file-name':\n"
 "dpkg: sortie inattendu de `%s --print-libgcc-file-name':\n"
 " `%s'\n"
 " `%s'\n"
 
 
-#: main/enquiry.c:617
+#: main/enquiry.c:600
 #, c-format
 #, c-format
 msgid "compiler libgcc filename not understood: %.250s"
 msgid "compiler libgcc filename not understood: %.250s"
 msgstr "fichier libgcc du compilateur non compris: %.250s"
 msgstr "fichier libgcc du compilateur non compris: %.250s"
 
 
-#: main/enquiry.c:621
+#: main/enquiry.c:604
 msgid "--print-installation-architecture does not take any argument"
 msgid "--print-installation-architecture does not take any argument"
 msgstr "--print-installation-architecture ne prend aucun argument"
 msgstr "--print-installation-architecture ne prend aucun argument"
 
 
-#: main/enquiry.c:641
+#: main/enquiry.c:624
 msgid "--print-architecture does not take any argument"
 msgid "--print-architecture does not take any argument"
 msgstr "--print-architecture ne prend aucun argument"
 msgstr "--print-architecture ne prend aucun argument"
 
 
-#: main/enquiry.c:647
+#: main/enquiry.c:630
 msgid "failed to fdopen CC pipe"
 msgid "failed to fdopen CC pipe"
 msgstr "échec pour \"fdopen\" le tube de CC"
 msgstr "échec pour \"fdopen\" le tube de CC"
 
 
-#: main/enquiry.c:651
+#: main/enquiry.c:634
 #, c-format
 #, c-format
 msgid "failed to exec C compiler `%.250s'"
 msgid "failed to exec C compiler `%.250s'"
 msgstr "échec pour exécuter le compilateur C `%.250s'"
 msgstr "échec pour exécuter le compilateur C `%.250s'"
 
 
-#: main/enquiry.c:655
+#: main/enquiry.c:638
 msgid "error reading from CC pipe"
 msgid "error reading from CC pipe"
 msgstr "erreur en lisant le tube de CC"
 msgstr "erreur en lisant le tube de CC"
 
 
-#: main/enquiry.c:657
+#: main/enquiry.c:640
 msgid "empty output"
 msgid "empty output"
 msgstr "sortie vide"
 msgstr "sortie vide"
 
 
-#: main/enquiry.c:659
+#: main/enquiry.c:642
 msgid "no newline"
 msgid "no newline"
 msgstr "pas de saut de ligne"
 msgstr "pas de saut de ligne"
 
 
-#: main/enquiry.c:662
+#: main/enquiry.c:645
 msgid "no gcc-lib component"
 msgid "no gcc-lib component"
 msgstr "pas de composant gcc-lib"
 msgstr "pas de composant gcc-lib"
 
 
-#: main/enquiry.c:664
+#: main/enquiry.c:647
 msgid "no hyphen after gcc-lib"
 msgid "no hyphen after gcc-lib"
 msgstr "pas de trait d'union pas gcc-lib"
 msgstr "pas de trait d'union pas gcc-lib"
 
 
-#: main/enquiry.c:676
+#: main/enquiry.c:659
 #, c-format
 #, c-format
 msgid "dpkg: warning, architecture `%s' not in remapping table\n"
 msgid "dpkg: warning, architecture `%s' not in remapping table\n"
 msgstr ""
 msgstr ""
 "dpkg: avertissement, architecture `%s' inexistante dans la tale des "
 "dpkg: avertissement, architecture `%s' inexistante dans la tale des "
 "correspondances\n"
 "correspondances\n"
 
 
-#: main/enquiry.c:718
+#: main/enquiry.c:701
 msgid "--cmpversions takes three arguments: <version> <relation> <version>"
 msgid "--cmpversions takes three arguments: <version> <relation> <version>"
 msgstr "--cmpversions prend trois arguments: <version> <relation> <version>"
 msgstr "--cmpversions prend trois arguments: <version> <relation> <version>"
 
 
-#: main/enquiry.c:723
+#: main/enquiry.c:706
 msgid "--cmpversions bad relation"
 msgid "--cmpversions bad relation"
 msgstr "--cmpversions mauvaise relation"
 msgstr "--cmpversions mauvaise relation"
 
 
-#: main/enquiry.c:728
+#: main/enquiry.c:711
 #, c-format
 #, c-format
 msgid "version a has bad syntax: %s\n"
 msgid "version a has bad syntax: %s\n"
 msgstr "mauvaise syntaxe de la version a:  %s\n"
 msgstr "mauvaise syntaxe de la version a:  %s\n"
 
 
-#: main/enquiry.c:738
+#: main/enquiry.c:721
 #, c-format
 #, c-format
 msgid "version b has bad syntax: %s\n"
 msgid "version b has bad syntax: %s\n"
 msgstr "mauvaise syntaxe de la version b:  %s\n"
 msgstr "mauvaise syntaxe de la version b:  %s\n"
@@ -1736,14 +1718,14 @@ msgstr ""
 "dpkg - avertissement, problème de recouvrement à cause de --force:\n"
 "dpkg - avertissement, problème de recouvrement à cause de --force:\n"
 " "
 " "
 
 
-#: main/filesdb.c:116
+#: main/filesdb.c:120
 #, c-format
 #, c-format
 msgid "unable to open files list file for package `%.250s'"
 msgid "unable to open files list file for package `%.250s'"
 msgstr ""
 msgstr ""
 "impossible d'ouvrir le fichier comprenant la liste des fichiers du paquet "
 "impossible d'ouvrir le fichier comprenant la liste des fichiers du paquet "
 "`%.250s'"
 "`%.250s'"
 
 
-#: main/filesdb.c:121
+#: main/filesdb.c:125
 #, c-format
 #, c-format
 msgid ""
 msgid ""
 "dpkg: serious warning: files list file for package `%.250s' missing, "
 "dpkg: serious warning: files list file for package `%.250s' missing, "
@@ -1753,151 +1735,151 @@ msgstr ""
 "du paquet `%.250s' étant manquant, il est considéré que le paquet n'a aucun "
 "du paquet `%.250s' étant manquant, il est considéré que le paquet n'a aucun "
 "fichier actuellement installé.\n"
 "fichier actuellement installé.\n"
 
 
-#: main/filesdb.c:132
+#: main/filesdb.c:136
 #, c-format
 #, c-format
 msgid "unable to set buffering on `%.250s'"
 msgid "unable to set buffering on `%.250s'"
 msgstr "impossible de paramétrer le \"buffering\" sur `%.250s'"
 msgstr "impossible de paramétrer le \"buffering\" sur `%.250s'"
 
 
-#: main/filesdb.c:142
+#: main/filesdb.c:146
 #, c-format
 #, c-format
 msgid "fgets gave an empty null-terminated string from `%.250s'"
 msgid "fgets gave an empty null-terminated string from `%.250s'"
 msgstr "\"fgets\" a donné une chaine vide de `%.250s'"
 msgstr "\"fgets\" a donné une chaine vide de `%.250s'"
 
 
-#: main/filesdb.c:160
+#: main/filesdb.c:164
 #, c-format
 #, c-format
 msgid "files list file for package `%.250s' contains empty filename"
 msgid "files list file for package `%.250s' contains empty filename"
 msgstr ""
 msgstr ""
 "la liste des fichiers pour le paquet `%.250s' contient un nom de fichier vide"
 "la liste des fichiers pour le paquet `%.250s' contient un nom de fichier vide"
 
 
-#: main/filesdb.c:168
+#: main/filesdb.c:172
 #, c-format
 #, c-format
 msgid "error reading files list file for package `%.250s'"
 msgid "error reading files list file for package `%.250s'"
 msgstr ""
 msgstr ""
 "erreur de lecture du fichier contenant la liste des fichiers du paquet "
 "erreur de lecture du fichier contenant la liste des fichiers du paquet "
 "`%.250s'"
 "`%.250s'"
 
 
-#: main/filesdb.c:171
+#: main/filesdb.c:175
 #, c-format
 #, c-format
 msgid "error closing files list file for package `%.250s'"
 msgid "error closing files list file for package `%.250s'"
 msgstr ""
 msgstr ""
 "erreur de fermeture du fichier contenant la liste des fichiers du paquet "
 "erreur de fermeture du fichier contenant la liste des fichiers du paquet "
 "`%.250s'"
 "`%.250s'"
 
 
-#: main/filesdb.c:173
+#: main/filesdb.c:177
 #, c-format
 #, c-format
 msgid "files list file for package `%.250s' is truncated"
 msgid "files list file for package `%.250s' is truncated"
 msgstr ""
 msgstr ""
 "le fichier contenant la liste des fichiers du paquet `%.250s' est coupé"
 "le fichier contenant la liste des fichiers du paquet `%.250s' est coupé"
 
 
-#: main/filesdb.c:204
+#: main/filesdb.c:208
 msgid "(Reading database ... "
 msgid "(Reading database ... "
 msgstr "(Lecture de la base de données ... "
 msgstr "(Lecture de la base de données ... "
 
 
-#: main/filesdb.c:204
+#: main/filesdb.c:208
 msgid "(Scanning database ... "
 msgid "(Scanning database ... "
 msgstr "(Recherche dans la base de données ... "
 msgstr "(Recherche dans la base de données ... "
 
 
-#: main/filesdb.c:212
+#: main/filesdb.c:216
 #, c-format
 #, c-format
 msgid "%d files and directories currently installed.)\n"
 msgid "%d files and directories currently installed.)\n"
 msgstr "%d fichiers et répertoires déjà installés.)\n"
 msgstr "%d fichiers et répertoires déjà installés.)\n"
 
 
-#: main/filesdb.c:243
+#: main/filesdb.c:247
 #, c-format
 #, c-format
 msgid "unable to create updated files list file for package %s"
 msgid "unable to create updated files list file for package %s"
 msgstr ""
 msgstr ""
 "impossible de créer le fichier contenant la liste mise à jour des fichiers "
 "impossible de créer le fichier contenant la liste mise à jour des fichiers "
 "du paquet %s"
 "du paquet %s"
 
 
-#: main/filesdb.c:253
+#: main/filesdb.c:257
 #, c-format
 #, c-format
 msgid "failed to write to updated files list file for package %s"
 msgid "failed to write to updated files list file for package %s"
 msgstr ""
 msgstr ""
 "échec pour écrire le fichier contenant la liste mise à jour des fichiers du "
 "échec pour écrire le fichier contenant la liste mise à jour des fichiers du "
 "paquet %s"
 "paquet %s"
 
 
-#: main/filesdb.c:255
+#: main/filesdb.c:259
 #, c-format
 #, c-format
 msgid "failed to flush updated files list file for package %s"
 msgid "failed to flush updated files list file for package %s"
 msgstr ""
 msgstr ""
 "échec pour vider le fichier contenant la liste mise à jour des fichiers du "
 "échec pour vider le fichier contenant la liste mise à jour des fichiers du "
 "paquet %s"
 "paquet %s"
 
 
-#: main/filesdb.c:257
+#: main/filesdb.c:261
 #, c-format
 #, c-format
 msgid "failed to sync updated files list file for package %s"
 msgid "failed to sync updated files list file for package %s"
 msgstr ""
 msgstr ""
 "échec pour \"sync\" le fichier contenant la liste mise à jour des fichiers "
 "échec pour \"sync\" le fichier contenant la liste mise à jour des fichiers "
 "du paquet %s"
 "du paquet %s"
 
 
-#: main/filesdb.c:260
+#: main/filesdb.c:264
 #, c-format
 #, c-format
 msgid "failed to close updated files list file for package %s"
 msgid "failed to close updated files list file for package %s"
 msgstr ""
 msgstr ""
 "échec pour fermer le fichier contenant la liste mise à jour des fichiers du "
 "échec pour fermer le fichier contenant la liste mise à jour des fichiers du "
 "paquet %s"
 "paquet %s"
 
 
-#: main/filesdb.c:262
+#: main/filesdb.c:266
 #, c-format
 #, c-format
 msgid "failed to install updated files list file for package %s"
 msgid "failed to install updated files list file for package %s"
 msgstr ""
 msgstr ""
 "échec pour installer le fichier contenant la liste mise à jour des fichiers "
 "échec pour installer le fichier contenant la liste mise à jour des fichiers "
 "du paquet %s"
 "du paquet %s"
 
 
-#: main/filesdb.c:326
+#: main/filesdb.c:330
 msgid "failed to open diversions file"
 msgid "failed to open diversions file"
 msgstr "échec pour ouvrir le fichier des détournements"
 msgstr "échec pour ouvrir le fichier des détournements"
 
 
-#: main/filesdb.c:330
+#: main/filesdb.c:334
 msgid "failed to fstat previous diversions file"
 msgid "failed to fstat previous diversions file"
 msgstr "échec pour \"fstat\" l'ancien fichier des détournements"
 msgstr "échec pour \"fstat\" l'ancien fichier des détournements"
 
 
-#: main/filesdb.c:332
+#: main/filesdb.c:336
 msgid "failed to fstat diversions file"
 msgid "failed to fstat diversions file"
 msgstr "échec pour \"fstat\" le fichier des détournements"
 msgstr "échec pour \"fstat\" le fichier des détournements"
 
 
-#: main/filesdb.c:352
+#: main/filesdb.c:356
 msgid "fgets gave an empty string from diversions [i]"
 msgid "fgets gave an empty string from diversions [i]"
 msgstr "\"fgets\" a donné une chaine vide pour les détournements [i]"
 msgstr "\"fgets\" a donné une chaine vide pour les détournements [i]"
 
 
-#: main/filesdb.c:353
+#: main/filesdb.c:357
 msgid "diversions file has too-long line or EOF [i]"
 msgid "diversions file has too-long line or EOF [i]"
 msgstr "le fichier des détournements a une ligne trop longue ou EOF [i]"
 msgstr "le fichier des détournements a une ligne trop longue ou EOF [i]"
 
 
-#: main/filesdb.c:359
+#: main/filesdb.c:363
 msgid "read error in diversions [ii]"
 msgid "read error in diversions [ii]"
 msgstr "erreur de lecture dans les détournements [ii]"
 msgstr "erreur de lecture dans les détournements [ii]"
 
 
-#: main/filesdb.c:360
+#: main/filesdb.c:364
 msgid "unexpected EOF in diversions [ii]"
 msgid "unexpected EOF in diversions [ii]"
 msgstr "EOF inattendu dans les détournements [ii]"
 msgstr "EOF inattendu dans les détournements [ii]"
 
 
-#: main/filesdb.c:362
+#: main/filesdb.c:367
 msgid "fgets gave an empty string from diversions [ii]"
 msgid "fgets gave an empty string from diversions [ii]"
 msgstr "\"fgets\" a donné une chaine vide pour les détournements [ii]"
 msgstr "\"fgets\" a donné une chaine vide pour les détournements [ii]"
 
 
-#: main/filesdb.c:363 main/filesdb.c:373
+#: main/filesdb.c:368 main/filesdb.c:379
 msgid "diversions file has too-long line or EOF [ii]"
 msgid "diversions file has too-long line or EOF [ii]"
 msgstr "le fichier des détournements a une ligne trop longue ou EOF [ii]"
 msgstr "le fichier des détournements a une ligne trop longue ou EOF [ii]"
 
 
-#: main/filesdb.c:369
+#: main/filesdb.c:374
 msgid "read error in diversions [iii]"
 msgid "read error in diversions [iii]"
 msgstr "erreur de lecture dans les détournements [iii]"
 msgstr "erreur de lecture dans les détournements [iii]"
 
 
-#: main/filesdb.c:370
+#: main/filesdb.c:375
 msgid "unexpected EOF in diversions [iii]"
 msgid "unexpected EOF in diversions [iii]"
 msgstr "EOF inattendu dans les détournements [iii]"
 msgstr "EOF inattendu dans les détournements [iii]"
 
 
-#: main/filesdb.c:372
+#: main/filesdb.c:378
 msgid "fgets gave an empty string from diversions [iii]"
 msgid "fgets gave an empty string from diversions [iii]"
 msgstr "\"fgets\" a donné une chaine vide pour les détournements [iii]"
 msgstr "\"fgets\" a donné une chaine vide pour les détournements [iii]"
 
 
-#: main/filesdb.c:380
+#: main/filesdb.c:386
 #, c-format
 #, c-format
 msgid "conflicting diversions involving `%.250s' or `%.250s'"
 msgid "conflicting diversions involving `%.250s' or `%.250s'"
 msgstr "détournements contradictoires impliquant `%.250s' ou `%.250s'"
 msgstr "détournements contradictoires impliquant `%.250s' ou `%.250s'"
 
 
-#: main/filesdb.c:389
+#: main/filesdb.c:395
 msgid "read error in diversions [i]"
 msgid "read error in diversions [i]"
 msgstr "erreur de lecture dans les détournements [i]"
 msgstr "erreur de lecture dans les détournements [i]"
 
 
@@ -1944,90 +1926,90 @@ msgstr ""
 "NB: la variable PATH de root doit normalement contenir /usr/local/sbin, "
 "NB: la variable PATH de root doit normalement contenir /usr/local/sbin, "
 "/usr/sbin et /sbin."
 "/usr/sbin et /sbin."
 
 
-#: main/help.c:210
+#: main/help.c:219
 #, c-format
 #, c-format
 msgid "error un-catching signal %s: %s\n"
 msgid "error un-catching signal %s: %s\n"
 msgstr "erreur signal %s non-capturé: %s\n"
 msgstr "erreur signal %s non-capturé: %s\n"
 
 
-#: main/help.c:228
+#: main/help.c:237
 #, c-format
 #, c-format
 msgid "unable to ignore signal %s before running script"
 msgid "unable to ignore signal %s before running script"
 msgstr "impossible d'ignorer le signal %s avant le lancement du script"
 msgstr "impossible d'ignorer le signal %s avant le lancement du script"
 
 
-#: main/help.c:237
+#: main/help.c:246
 #, c-format
 #, c-format
 msgid "unable to set execute permissions on `%.250s'"
 msgid "unable to set execute permissions on `%.250s'"
 msgstr "impossible de paramétrer les permissions en exécution sur `%.250s'"
 msgstr "impossible de paramétrer les permissions en exécution sur `%.250s'"
 
 
-#: main/help.c:261
+#: main/help.c:270
 #, c-format
 #, c-format
 msgid "unable to stat installed %s script `%.250s'"
 msgid "unable to stat installed %s script `%.250s'"
 msgstr "impossible d'analyser le script installé %s `%.250s'"
 msgstr "impossible d'analyser le script installé %s `%.250s'"
 
 
-#: main/help.c:268 main/help.c:346 main/help.c:385
+#: main/help.c:277 main/help.c:356 main/help.c:396
 #, c-format
 #, c-format
 msgid "unable to execute %s"
 msgid "unable to execute %s"
 msgstr "impossible d'exécuter %s"
 msgstr "impossible d'exécuter %s"
 
 
-#: main/help.c:297
+#: main/help.c:307
 #, c-format
 #, c-format
 msgid "unable to stat new %s script `%.250s'"
 msgid "unable to stat new %s script `%.250s'"
 msgstr "impossible d'analyser le nouveau script %s `%.250s'"
 msgstr "impossible d'analyser le nouveau script %s `%.250s'"
 
 
-#: main/help.c:304
+#: main/help.c:314
 #, c-format
 #, c-format
 msgid "unable to execute new %s"
 msgid "unable to execute new %s"
 msgstr "impossible d'exécuter le nouveau %s"
 msgstr "impossible d'exécuter le nouveau %s"
 
 
-#: main/help.c:338
+#: main/help.c:348
 #, c-format
 #, c-format
 msgid "dpkg: warning - unable to stat %s `%.250s': %s\n"
 msgid "dpkg: warning - unable to stat %s `%.250s': %s\n"
 msgstr "dpkg: avertissement - impossible d'analyser %s `%.250s': %s\n"
 msgstr "dpkg: avertissement - impossible d'analyser %s `%.250s': %s\n"
 
 
-#: main/help.c:354
+#: main/help.c:364
 #, c-format
 #, c-format
 msgid "dpkg: warning - %s returned error exit status %d\n"
 msgid "dpkg: warning - %s returned error exit status %d\n"
 msgstr "dpkg: avertissement- %s a retourné un code d'erreur de sortie %d\n"
 msgstr "dpkg: avertissement- %s a retourné un code d'erreur de sortie %d\n"
 
 
-#: main/help.c:357
+#: main/help.c:367
 #, c-format
 #, c-format
 msgid "dpkg: warning - %s killed by signal (%s)%s\n"
 msgid "dpkg: warning - %s killed by signal (%s)%s\n"
 msgstr "dpkg: avertissement - %s a été tué par le signal (%s)%s\n"
 msgstr "dpkg: avertissement - %s a été tué par le signal (%s)%s\n"
 
 
-#: main/help.c:360
+#: main/help.c:370
 #, c-format
 #, c-format
 msgid "%s failed with unknown wait status code %d"
 msgid "%s failed with unknown wait status code %d"
 msgstr "%s a échoué avec le code d'attente inconnu %d"
 msgstr "%s a échoué avec le code d'attente inconnu %d"
 
 
-#: main/help.c:364
+#: main/help.c:374
 msgid "dpkg - trying script from the new package instead ...\n"
 msgid "dpkg - trying script from the new package instead ...\n"
 msgstr "dpkg - tentative avec le script du nouveau paquet à la place ...\n"
 msgstr "dpkg - tentative avec le script du nouveau paquet à la place ...\n"
 
 
-#: main/help.c:371
+#: main/help.c:381
 #, c-format
 #, c-format
 msgid "new %s script"
 msgid "new %s script"
 msgstr "nouveau script %s"
 msgstr "nouveau script %s"
 
 
-#: main/help.c:375
+#: main/help.c:385
 msgid "there is no script in the new version of the package - giving up"
 msgid "there is no script in the new version of the package - giving up"
 msgstr "il n'y a pas de script dans cette nouvelle version du paquet - abandon"
 msgstr "il n'y a pas de script dans cette nouvelle version du paquet - abandon"
 
 
-#: main/help.c:377
+#: main/help.c:387
 #, c-format
 #, c-format
 msgid "unable to stat %s `%.250s'"
 msgid "unable to stat %s `%.250s'"
 msgstr "impossible d'analyser %s `%.250s'"
 msgstr "impossible d'analyser %s `%.250s'"
 
 
-#: main/help.c:390
+#: main/help.c:401
 msgid "dpkg: ... it looks like that went OK.\n"
 msgid "dpkg: ... it looks like that went OK.\n"
 msgstr "dpkg: ... tout a certainement fonctionné correctement.\n"
 msgstr "dpkg: ... tout a certainement fonctionné correctement.\n"
 
 
 #. Huh ?
 #. Huh ?
-#: main/help.c:469
+#: main/help.c:496
 #, c-format
 #, c-format
 msgid "failed to rmdir/unlink `%.255s'"
 msgid "failed to rmdir/unlink `%.255s'"
 msgstr "échec pour \"rmdir/unlink\" `%.255s'"
 msgstr "échec pour \"rmdir/unlink\" `%.255s'"
 
 
-#: dpkg-deb/info.c:52 main/help.c:473
+#: dpkg-deb/info.c:52 main/help.c:500
 msgid "failed to exec rm for cleanup"
 msgid "failed to exec rm for cleanup"
 msgstr "échec pour exécuter \"rm\" pour nettoyage"
 msgstr "échec pour exécuter \"rm\" pour nettoyage"
 
 
@@ -2155,7 +2137,7 @@ msgid "--ignore-depends requires a legal package name. `%.250s' is not; %s"
 msgstr ""
 msgstr ""
 "--ignore-depends requiert un nom de paquet légal. `%.250s' ne l'est pas; %s"
 "--ignore-depends requiert un nom de paquet légal. `%.250s' ne l'est pas; %s"
 
 
-#: main/main.c:251
+#: main/main.c:257
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "dpkg forcing options - control behaviour when problems found:\n"
 "dpkg forcing options - control behaviour when problems found:\n"
@@ -2217,16 +2199,16 @@ msgstr ""
 "votre installation.\n"
 "votre installation.\n"
 "Les options de forçage marquées [*] sont activées par défaut.\n"
 "Les options de forçage marquées [*] sont activées par défaut.\n"
 
 
-#: main/main.c:283
+#: main/main.c:289
 #, c-format
 #, c-format
 msgid "unknown force/refuse option `%.*s'"
 msgid "unknown force/refuse option `%.*s'"
 msgstr "option de forçage `%.*s' inconnue"
 msgstr "option de forçage `%.*s' inconnue"
 
 
-#: main/main.c:360
+#: main/main.c:366
 msgid "failed to exec dpkg-deb"
 msgid "failed to exec dpkg-deb"
 msgstr "échec pour exécuter \"dpkg-deb\""
 msgstr "échec pour exécuter \"dpkg-deb\""
 
 
-#: dpkg-deb/main.c:150 main/main.c:396 split/main.c:163
+#: dpkg-deb/main.c:150 main/main.c:402 split/main.c:163
 msgid "need an action option"
 msgid "need an action option"
 msgstr "manque une option d'action"
 msgstr "manque une option d'action"
 
 
@@ -2337,34 +2319,7 @@ msgstr "Enregistrement de l'information sur %s de %s.\n"
 msgid "package architecture (%s) does not match system (%s)"
 msgid "package architecture (%s) does not match system (%s)"
 msgstr "l'architecture du paquet (%s) ne correspond pas celle du système (%s)"
 msgstr "l'architecture du paquet (%s) ne correspond pas celle du système (%s)"
 
 
-#: main/processarc.c:206
-#, c-format
-msgid "Selecting previously deselected package %s.\n"
-msgstr "Sélection du paquet %s précédemment déselectionné.\n"
-
-#: main/processarc.c:209
-#, c-format
-msgid "Skipping deselected package %s.\n"
-msgstr "Paquet déselectionné %s ignoré.\n"
-
-#: main/processarc.c:220
-#, c-format
-msgid "dpkg - warning: downgrading %.250s from %.250s to %.250s.\n"
-msgstr ""
-"dpkg - avertissement: %.250s mis à jour de %.250s vers l'ancienne %.250s.\n"
-
-#: main/processarc.c:225
-#, c-format
-msgid "Will not downgrade %.250s from version %.250s to %.250s, skipping.\n"
-msgstr ""
-"Mise à jour de %.250s de la version %.250s vers l'ancienne %.250s ignorée.\n"
-
-#: main/processarc.c:235
-#, c-format
-msgid "Version %.250s of %.250s already installed, skipping.\n"
-msgstr "Version %.250s de %.250s déjà installée, paquet ignoré.\n"
-
-#: main/processarc.c:268
+#: main/processarc.c:234
 #, c-format
 #, c-format
 msgid ""
 msgid ""
 "dpkg: regarding %s containing %s, pre-dependency problem:\n"
 "dpkg: regarding %s containing %s, pre-dependency problem:\n"
@@ -2373,152 +2328,152 @@ msgstr ""
 "dpkg: concernant %s contenant %s, problème de pré-dépendance:\n"
 "dpkg: concernant %s contenant %s, problème de pré-dépendance:\n"
 "%s"
 "%s"
 
 
-#: main/processarc.c:271
+#: main/processarc.c:237
 #, c-format
 #, c-format
 msgid "pre-dependency problem - not installing %.250s"
 msgid "pre-dependency problem - not installing %.250s"
 msgstr "problème de pré-dépendance - %.250s non installé"
 msgstr "problème de pré-dépendance - %.250s non installé"
 
 
-#: main/processarc.c:272
+#: main/processarc.c:238
 msgid "dpkg: warning - ignoring pre-dependency problem !\n"
 msgid "dpkg: warning - ignoring pre-dependency problem !\n"
 msgstr "dpkg: avertissement - problème de pré-dépendance ignoré !\n"
 msgstr "dpkg: avertissement - problème de pré-dépendance ignoré !\n"
 
 
-#: main/processarc.c:286
+#: main/processarc.c:252
 #, c-format
 #, c-format
 msgid "Preparing to replace %s %s (using %s) ...\n"
 msgid "Preparing to replace %s %s (using %s) ...\n"
 msgstr "Préparation de la mise à jour de %s %s (en utilisant %s) ...\n"
 msgstr "Préparation de la mise à jour de %s %s (en utilisant %s) ...\n"
 
 
-#: main/processarc.c:291
+#: main/processarc.c:257
 #, c-format
 #, c-format
 msgid "Unpacking %s (from %s) ...\n"
 msgid "Unpacking %s (from %s) ...\n"
 msgstr "Dépaquetage de %s (à partir de %s) ...\n"
 msgstr "Dépaquetage de %s (à partir de %s) ...\n"
 
 
-#: main/processarc.c:311
+#: main/processarc.c:277
 #, c-format
 #, c-format
 msgid "name of conffile (starting `%.250s') is too long (>%d characters)"
 msgid "name of conffile (starting `%.250s') is too long (>%d characters)"
 msgstr ""
 msgstr ""
 "le nom du fichier de configuration (commençant par `%.250s') est trop long "
 "le nom du fichier de configuration (commençant par `%.250s') est trop long "
 "(>%d caractères)"
 "(>%d caractères)"
 
 
-#: main/processarc.c:365
+#: main/processarc.c:331
 #, c-format
 #, c-format
 msgid "read error in %.250s"
 msgid "read error in %.250s"
 msgstr "erreur de lecture dans %.250s"
 msgstr "erreur de lecture dans %.250s"
 
 
 #. conff= fopen()
 #. conff= fopen()
-#: main/processarc.c:367
+#: main/processarc.c:333
 #, c-format
 #, c-format
 msgid "error closing %.250s"
 msgid "error closing %.250s"
 msgstr "erreur de fermeture de %.250s"
 msgstr "erreur de fermeture de %.250s"
 
 
-#: main/processarc.c:369
+#: main/processarc.c:335
 #, c-format
 #, c-format
 msgid "error trying to open %.250s"
 msgid "error trying to open %.250s"
 msgstr "erreur en essayant d'ouvrir %.250s"
 msgstr "erreur en essayant d'ouvrir %.250s"
 
 
-#: main/processarc.c:401
+#: main/processarc.c:367
 #, c-format
 #, c-format
 msgid "De-configuring %s, so that we can remove %s ...\n"
 msgid "De-configuring %s, so that we can remove %s ...\n"
 msgstr "Déconfiguration de %s, pour pouvoir supprimer %s ...\n"
 msgstr "Déconfiguration de %s, pour pouvoir supprimer %s ...\n"
 
 
-#: main/processarc.c:458
+#: main/processarc.c:424
 #, c-format
 #, c-format
 msgid "Unpacking replacement %.250s ...\n"
 msgid "Unpacking replacement %.250s ...\n"
 msgstr "Dépaquetage de la mise à jour de %.250s ...\n"
 msgstr "Dépaquetage de la mise à jour de %.250s ...\n"
 
 
-#: main/processarc.c:534
+#: main/processarc.c:500
 msgid "unable to exec dpkg-deb to get filesystem archive"
 msgid "unable to exec dpkg-deb to get filesystem archive"
 msgstr ""
 msgstr ""
 "impossible d'exécuter dpkg-deb pour obtenir l'archive du système de fichiers"
 "impossible d'exécuter dpkg-deb pour obtenir l'archive du système de fichiers"
 
 
-#: main/processarc.c:542
+#: main/processarc.c:508
 msgid "unable to fdopen dpkg-deb extract pipe"
 msgid "unable to fdopen dpkg-deb extract pipe"
 msgstr "impossible de \"fdopen\" le tube d'extraction de dpkg-deb"
 msgstr "impossible de \"fdopen\" le tube d'extraction de dpkg-deb"
 
 
-#: main/processarc.c:548
+#: main/processarc.c:514
 msgid "error reading dpkg-deb tar output"
 msgid "error reading dpkg-deb tar output"
 msgstr "erreur en lisant la sortie du \"tar\" de dpkg-deb"
 msgstr "erreur en lisant la sortie du \"tar\" de dpkg-deb"
 
 
-#: main/processarc.c:551
+#: main/processarc.c:517
 msgid "unexpected EOF in filesystem tarfile - corrupted package archive"
 msgid "unexpected EOF in filesystem tarfile - corrupted package archive"
 msgstr ""
 msgstr ""
 "EOF inattendu dans l'archive du système de fichiers - archive du paquet "
 "EOF inattendu dans l'archive du système de fichiers - archive du paquet "
 "corrompue"
 "corrompue"
 
 
-#: main/processarc.c:553
+#: main/processarc.c:519
 msgid "corrupted filesystem tarfile - corrupted package archive"
 msgid "corrupted filesystem tarfile - corrupted package archive"
 msgstr "archive du système de fichiers corrompue - archive du paquet corrompue"
 msgstr "archive du système de fichiers corrompue - archive du paquet corrompue"
 
 
-#: main/processarc.c:610
+#: main/processarc.c:576
 #, c-format
 #, c-format
 msgid "dpkg: warning - unable to delete old file `%.250s': %s\n"
 msgid "dpkg: warning - unable to delete old file `%.250s': %s\n"
 msgstr ""
 msgstr ""
 "dpkg: avertissement - impossible de supprimer le fichier `%.250s': %s\n"
 "dpkg: avertissement - impossible de supprimer le fichier `%.250s': %s\n"
 
 
-#: main/processarc.c:632 main/processarc.c:867 main/remove.c:287
+#: main/processarc.c:598 main/processarc.c:833 main/remove.c:287
 msgid "cannot read info directory"
 msgid "cannot read info directory"
 msgstr "ne peut pas lire le répertoire d'informations"
 msgstr "ne peut pas lire le répertoire d'informations"
 
 
-#: main/processarc.c:645
+#: main/processarc.c:611
 #, c-format
 #, c-format
 msgid "old version of package has overly-long info file name starting `%.250s'"
 msgid "old version of package has overly-long info file name starting `%.250s'"
 msgstr ""
 msgstr ""
 "l'ancienne version du paquet a un nom de fichier d'information commençant "
 "l'ancienne version du paquet a un nom de fichier d'information commençant "
 "par `%.250s' trop long"
 "par `%.250s' trop long"
 
 
-#: main/processarc.c:657
+#: main/processarc.c:623
 #, c-format
 #, c-format
 msgid "unable to remove obsolete info file `%.250s'"
 msgid "unable to remove obsolete info file `%.250s'"
 msgstr "impossible de supprimer le fichier d'information obsolète `%.250s'"
 msgstr "impossible de supprimer le fichier d'information obsolète `%.250s'"
 
 
-#: main/processarc.c:660
+#: main/processarc.c:626
 #, c-format
 #, c-format
 msgid "unable to install (supposed) new info file `%.250s'"
 msgid "unable to install (supposed) new info file `%.250s'"
 msgstr ""
 msgstr ""
 "impossible d'installer le (supposé) nouveau fichier d'information `%.250s'"
 "impossible d'installer le (supposé) nouveau fichier d'information `%.250s'"
 
 
-#: main/processarc.c:667
+#: main/processarc.c:633
 msgid "unable to open temp control directory"
 msgid "unable to open temp control directory"
 msgstr "impossible d'ouvrir le répertoire de contrôle temporaire"
 msgstr "impossible d'ouvrir le répertoire de contrôle temporaire"
 
 
-#: main/processarc.c:676
+#: main/processarc.c:642
 #, c-format
 #, c-format
 msgid "package contains overly-long control info file name (starting `%.50s')"
 msgid "package contains overly-long control info file name (starting `%.50s')"
 msgstr ""
 msgstr ""
 "le paquet contient un nom de fichier de contrôle trop long (commençant par "
 "le paquet contient un nom de fichier de contrôle trop long (commençant par "
 "`%.50s')"
 "`%.50s')"
 
 
-#: main/processarc.c:681
+#: main/processarc.c:647
 #, c-format
 #, c-format
 msgid "package control info contained directory `%.250s'"
 msgid "package control info contained directory `%.250s'"
 msgstr "l'information de contrôle du paquet contient le répertoire `%.250s'"
 msgstr "l'information de contrôle du paquet contient le répertoire `%.250s'"
 
 
-#: main/processarc.c:683
+#: main/processarc.c:649
 #, c-format
 #, c-format
 msgid "package control info rmdir of `%.250s' didn't say not a dir"
 msgid "package control info rmdir of `%.250s' didn't say not a dir"
 msgstr ""
 msgstr ""
 "l'information de contrôle du paquet \"rmdir\" de `%.250s' ne dit pas que ce "
 "l'information de contrôle du paquet \"rmdir\" de `%.250s' ne dit pas que ce "
 "n'est pas un répertoire"
 "n'est pas un répertoire"
 
 
-#: main/processarc.c:689
+#: main/processarc.c:655
 #, c-format
 #, c-format
 msgid "dpkg: warning - package %s contained list as info file"
 msgid "dpkg: warning - package %s contained list as info file"
 msgstr ""
 msgstr ""
 "dpkg: avertissement - le paquet %s contient une liste comme fichier "
 "dpkg: avertissement - le paquet %s contient une liste comme fichier "
 "d'information"
 "d'information"
 
 
-#: main/processarc.c:696
+#: main/processarc.c:662
 #, c-format
 #, c-format
 msgid "unable to install new info file `%.250s' as `%.250s'"
 msgid "unable to install new info file `%.250s' as `%.250s'"
 msgstr ""
 msgstr ""
 "impossible d'installer le nouveau fichier d'information `%.250s' comme "
 "impossible d'installer le nouveau fichier d'information `%.250s' comme "
 "`%.250s'"
 "`%.250s'"
 
 
-#: main/processarc.c:847
+#: main/processarc.c:813
 #, c-format
 #, c-format
 msgid "(Noting disappearance of %s, which has been completely replaced.)\n"
 msgid "(Noting disappearance of %s, which has been completely replaced.)\n"
 msgstr "(A noter la disparition de %s, qui a été complètement remplacé.)\n"
 msgstr "(A noter la disparition de %s, qui a été complètement remplacé.)\n"
 
 
-#: main/processarc.c:883
+#: main/processarc.c:849
 #, c-format
 #, c-format
 msgid "unable to delete disappearing control info file `%.250s'"
 msgid "unable to delete disappearing control info file `%.250s'"
 msgstr ""
 msgstr ""
@@ -3739,6 +3694,42 @@ msgstr "%s: 
 msgid "%s: no files checked\n"
 msgid "%s: no files checked\n"
 msgstr "%s: aucun fichiers vérifiés\n"
 msgstr "%s: aucun fichiers vérifiés\n"
 
 
+#~ msgid "cannot open GPL file /usr/doc/dpkg/copyright"
+#~ msgstr "ne peut pas ouvrir le fichier GPL /usr/doc/dpkg/copyright"
+
+#~ msgid "--assert-support-predepends does not take any arguments"
+#~ msgstr "--assert-support-predepends ne prend aucun argument"
+
+#~ msgid ""
+#~ "Version of dpkg with Pre-Depends support not yet configured.\n"
+#~ " Please use `dpkg --configure dpkg', and then try again.\n"
+#~ msgstr ""
+#~ "Version de dpkg avec support des pré-dépendances non encore configurée.\n"
+#~ " Utilisez s'il vous plaît `dpkg --configure dpkg' et essayez à nouveau.\n"
+
+#~ msgid ""
+#~ "dpkg not recorded as installed, cannot check for Pre-Depends support !\n"
+#~ msgstr ""
+#~ "dpkg non enregistré comme installé, vérification du support des "
+#~ "pré-dépendances impossible !\n"
+
+#~ msgid "Selecting previously deselected package %s.\n"
+#~ msgstr "Sélection du paquet %s précédemment déselectionné.\n"
+
+#~ msgid "Skipping deselected package %s.\n"
+#~ msgstr "Paquet déselectionné %s ignoré.\n"
+
+#~ msgid "dpkg - warning: downgrading %.250s from %.250s to %.250s.\n"
+#~ msgstr ""
+#~ "dpkg - avertissement: %.250s mis à jour de %.250s vers l'ancienne %.250s.\n"
+
+#~ msgid "Will not downgrade %.250s from version %.250s to %.250s, skipping.\n"
+#~ msgstr ""
+#~ "Mise à jour de %.250s de la version %.250s vers l'ancienne %.250s ignorée.\n"
+
+#~ msgid "Version %.250s of %.250s already installed, skipping.\n"
+#~ msgstr "Version %.250s de %.250s déjà installée, paquet ignoré.\n"
+
 #, fuzzy
 #, fuzzy
 #~ msgid ""
 #~ msgid ""
 #~ "Usage: \n"
 #~ "Usage: \n"

+ 1 - 0
scripts/dpkg-scanpackages.pl

@@ -26,6 +26,7 @@ $version= '1.2.6'; # This line modified by Makefile
             'MD5sum',
             'MD5sum',
             'Description');
             'Description');
 
 
+$written=0;
 $i=100; grep($pri{$_}=$i--,@fieldpri);
 $i=100; grep($pri{$_}=$i--,@fieldpri);
 
 
 $#ARGV == 1 || $#ARGV == 2
 $#ARGV == 1 || $#ARGV == 2