Sfoglia il codice sorgente

1.4.1.1 changes by Wichert Akkerman

Guy Maor 27 anni fa
parent
commit
635b978983

+ 1 - 0
TODO

@@ -18,6 +18,7 @@ urgent
    and action logs (kept forever?)  957
    and action logs (kept forever?)  957
  * start-stop-daemon process status check. 1480
  * start-stop-daemon process status check. 1480
  * remove old docs from /usr/doc/dpkg.
  * remove old docs from /usr/doc/dpkg.
+ * WTA: fix translations for dpkg --help which broke after adding --stop-after
 
 
 other stuff unlikely to get done soon
 other stuff unlikely to get done soon
  * Automatically remove <file>.gz if <file> can't be found ?
  * Automatically remove <file>.gz if <file> can't be found ?

+ 1 - 1
debian/50dpkg-dev.el

@@ -4,5 +4,5 @@
 ;; Copyright (C) 1997, Klee Dienes <klee@mit.edu>
 ;; Copyright (C) 1997, Klee Dienes <klee@mit.edu>
 ;; I hereby release this progam into the public domain.
 ;; I hereby release this progam into the public domain.
 
 
-(autoload 'debian-changelog-mode "/usr/lib/emacs/site-lisp/debian-changelog-mode.el"
+(autoload 'debian-changelog-mode "/usr/share/emacs/site-lisp/debian-changelog-mode.el"
         "Major mode for editing Debian-style change logs." t)
         "Major mode for editing Debian-style change logs." t)

+ 30 - 0
debian/changelog

@@ -1,3 +1,33 @@
+dpkg (1.4.1.1) unstable; urgency=low
+
+  * Non-maintainer upload
+  * Install emacs-startup scripts with mode 0644 (lintian)
+  * Incorporate changes in NMU 1.4.0.32 made by Vincent Renardias
+    <vincent@waw.com> for slink:
+    + Apply patch from Jim Pick for update-alternatives.pl to
+      fix 'Important' bugs #30891 in dpkg and (#27382, #27383, #27696,
+      #27703, #27736, #27097(merged bugs)) in jdk1.1.
+  * Incorporate changes in NMU 1.4.0.33 made by me for slink:
+    + Fix illegal perl construct (Bug# 30985)
+    + Initialize oialtname->useinstead and oicontest->camefrom to 0 (Bug# 30397)
+    + Update shlibs.default for libncurses 4 (Bug# 30332)
+    + Suggest debian-keyring instead of developer-keyring (Bug# 27376, 30248)
+    + Abort dpkg-divert when attempting to divert a directory (Bug# 30126)
+    + Make dpkg-deb.1 aware that it is in section 1, not 8
+    + Fix section in reference to dpkg-deb in dpkg.8 (Bug# 29740)
+    + Fix typo in --force-help (Bug# 26193)
+    + Correct path for debian-changelog-mode.el (Bug# 24606)
+    + Make disk-method for dpkg use /var/run instead of /tmp to fix
+      symlink-attacks (Bug# 21399)
+    + Document -n and -f options for update-rc.d in manpage (Bug# 15913)
+    + Add --abort-after option to change after how many errors we abort and
+      change the default to 50 (Bug# 22940)
+    + Fix controllib.pl: don't check debian/substvars unless needed, and
+      don't depend on language settings (Bug# 31508)
+    + Allow a - in the architecture-field (Bug# 25537)
+
+ -- Wichert Akkerman <wakkerma@debian.org>  Mon,  1 Feb 1999 00:44:01 +0100
+
 dpkg (1.4.1) unstable; urgency=low
 dpkg (1.4.1) unstable; urgency=low
 
 
   * Maintainer release by IWJ.
   * Maintainer release by IWJ.

+ 1 - 1
debian/control

@@ -8,7 +8,7 @@ Package: dpkg
 Architecture: any
 Architecture: any
 Essential: yes
 Essential: yes
 Pre-Depends: ${shlibs:Pre-Depends}
 Pre-Depends: ${shlibs:Pre-Depends}
-Suggests: developer-keyring
+Suggests: debian-keyring
 Description: Package maintenance system for Debian Linux
 Description: Package maintenance system for Debian Linux
  This package contains the programs which handle the installation and
  This package contains the programs which handle the installation and
  removal of packages on your system.
  removal of packages on your system.

+ 4 - 2
debian/rules

@@ -91,9 +91,11 @@ binary-trees: build
 	fi
 	fi
 	cp debian/{prerm,postinst} $(mcidir)/.
 	cp debian/{prerm,postinst} $(mcidir)/.
 	install -d debian/tmp-dev/etc/emacs/site-start.d
 	install -d debian/tmp-dev/etc/emacs/site-start.d
-	install -c debian/50dpkg-dev.el debian/tmp-dev/etc/emacs/site-start.d/
+	install -p -m 644 debian/50dpkg-dev.el \
+		debian/tmp-dev/etc/emacs/site-start.d/
 	install -d debian/tmp-dev/etc/xemacs/site-start-19.d
 	install -d debian/tmp-dev/etc/xemacs/site-start-19.d
-	install -c debian/50dpkg-dev.el debian/tmp-dev/etc/xemacs/site-start-19.d/
+	install -p -m 644 debian/50dpkg-dev.el \
+		debian/tmp-dev/etc/xemacs/site-start-19.d/
 	chmod +x $(mcidir)/{postinst,prerm,preinst}
 	chmod +x $(mcidir)/{postinst,prerm,preinst}
 	$(MAKE) -C $(BUILD) top_distdir=. dist 
 	$(MAKE) -C $(BUILD) top_distdir=. dist 
 	$(MAKE) -C $(BUILD) \
 	$(MAKE) -C $(BUILD) \

+ 1 - 1
debian/shlibs.default.i386

@@ -1,6 +1,6 @@
 libc 6		libc6
 libc 6		libc6
 libm 6		libc6
 libm 6		libc6
-libncurses 3.4  ncurses3.4
+libncurses 4  libncurses4
 libICE  6       xlib6g (>= 3.3-5)
 libICE  6       xlib6g (>= 3.3-5)
 libPEX5 6       xlib6g (>= 3.3-5)
 libPEX5 6       xlib6g (>= 3.3-5)
 libSM   6       xlib6g (>= 3.3-5)
 libSM   6       xlib6g (>= 3.3-5)

+ 2 - 2
doc/manuals-version

@@ -1,2 +1,2 @@
-<!entity manuals-version "">
-<!entity dpkg-version "1.4.1">
+<!entity manuals-version "1.4.1.1">
+<!entity dpkg-version "1.4.1.1">

+ 4 - 1
main/dpkg.8

@@ -293,6 +293,9 @@ See \fBdpkg-deb\fP(8) for more information about the following actions.
 .SH OPTIONS
 .SH OPTIONS
 .br
 .br
 .TP
 .TP
+\fB--abort-after=\fP\fInumber\fP
+Change after how many errors dpkg will abort. The default is 50.
+.TP
 .BR -B | --auto-deconfigure
 .BR -B | --auto-deconfigure
 When a package is removed, there is a possibility that another
 When a package is removed, there is a possibility that another
 installed package depended on the removed package. Specifying this
 installed package depended on the removed package. Specifying this
@@ -519,7 +522,7 @@ convenient way to modify the package selection states.
 .br
 .br
 .SH SEE ALSO
 .SH SEE ALSO
 \fBdselect\fP(8),
 \fBdselect\fP(8),
-\fBdpkg-deb\fP(8),
+\fBdpkg-deb\fP(1),
 \fBdeb\fP(5),
 \fBdeb\fP(5),
 and
 and
 \fBdeb-control\fP(5)
 \fBdeb-control\fP(5)

+ 1 - 1
main/errors.c

@@ -66,7 +66,7 @@ void print_error_perpackage(const char *emsg, const char *arg) {
   *lastreport= nr;
   *lastreport= nr;
   lastreport= &nr->next;
   lastreport= &nr->next;
     
     
-  if (nerrs++ < 20) return;
+  if (nerrs++ < errabort) return;
   fprintf(stderr, _("dpkg: too many errors, stopping\n"));
   fprintf(stderr, _("dpkg: too many errors, stopping\n"));
   onerr_abort++;
   onerr_abort++;
 }
 }

+ 2 - 0
main/filesdb.c

@@ -353,6 +353,7 @@ void ensure_diversions(void) {
     if (linebuf[--l] != '\n') ohshit(_("diversions file has too-long line or EOF [i]"));
     if (linebuf[--l] != '\n') ohshit(_("diversions file has too-long line or EOF [i]"));
     linebuf[l]= 0;
     linebuf[l]= 0;
     oialtname->camefrom= findnamenode(linebuf);
     oialtname->camefrom= findnamenode(linebuf);
+    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]"));
@@ -362,6 +363,7 @@ void ensure_diversions(void) {
     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]"));
     linebuf[l]= 0;
     linebuf[l]= 0;
     oicontest->useinstead= findnamenode(linebuf);
     oicontest->useinstead= findnamenode(linebuf);
+    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]"));

+ 8 - 1
main/main.c

@@ -73,6 +73,7 @@ Usage: \n\
   dpkg -l|--list [<pattern> ...]          list packages concisely\n\
   dpkg -l|--list [<pattern> ...]          list packages concisely\n\
   dpkg -S|--search <pattern> ...          find package(s) owning file(s)\n\
   dpkg -S|--search <pattern> ...          find package(s) owning file(s)\n\
   dpkg -C|--audit                         check for broken package(s)\n\
   dpkg -C|--audit                         check for broken package(s)\n\
+  dpkg --abort-after <n>                  abort after encountering <n> errors\n
   dpkg --print-architecture               print target architecture (uses GCC)\n\
   dpkg --print-architecture               print target architecture (uses GCC)\n\
   dpkg --print-gnu-build-architecture     print GNU version of target arch\n\
   dpkg --print-gnu-build-architecture     print GNU version of target arch\n\
   dpkg --print-installation-architecture  print host architecture (for inst'n)\n\
   dpkg --print-installation-architecture  print host architecture (for inst'n)\n\
@@ -133,6 +134,7 @@ int fc_removeessential=0, fc_conflicts=0, fc_depends=0, fc_dependsversion=0;
 int fc_autoselect=1, fc_badpath=0, fc_overwritediverted=0, fc_architecture=0;
 int fc_autoselect=1, fc_badpath=0, fc_overwritediverted=0, fc_architecture=0;
 int fc_nonroot=0, fc_overwritedir=0;
 int fc_nonroot=0, fc_overwritedir=0;
 
 
+int errabort = 50;
 const char *admindir= ADMINDIR;
 const char *admindir= ADMINDIR;
 const char *instdir= "";
 const char *instdir= "";
 struct packageinlist *ignoredependss=0;
 struct packageinlist *ignoredependss=0;
@@ -236,6 +238,10 @@ static void ignoredepends(const struct cmdinfo *cip, const char *value) {
   }
   }
 }
 }
 
 
+static void setinteger(const struct cmdinfo *cip, const char *value) {
+	*cip->iassignto=atoi(value);
+}
+
 static void setforce(const struct cmdinfo *cip, const char *value) {
 static void setforce(const struct cmdinfo *cip, const char *value) {
   const char *comma;
   const char *comma;
   int l;
   int l;
@@ -247,7 +253,7 @@ static void setforce(const struct cmdinfo *cip, const char *value) {
   stop with error:    --refuse-<thing>,<thing>,... | --no-force-<thing>,...\n\
   stop with error:    --refuse-<thing>,<thing>,... | --no-force-<thing>,...\n\
  Forcing things:\n\
  Forcing things:\n\
   auto-select [*]        (De)select packages to install (remove) them\n\
   auto-select [*]        (De)select packages to install (remove) them\n\
-  dowgrade [*]           Replace a package with a lower version\n\
+  downgrade [*]          Replace a package with a lower version\n\
   configure-any          Configure any package which may help this one\n\
   configure-any          Configure any package which may help this one\n\
   hold                   Process incidental packages even when on hold\n\
   hold                   Process incidental packages even when on hold\n\
   bad-path               PATH is missing important programs, problems likely\n\
   bad-path               PATH is missing important programs, problems likely\n\
@@ -334,6 +340,7 @@ static const struct cmdinfo cmdinfos[]= {
   { "largemem",           0,   0,  &f_largemem,    0,  0,             1              },
   { "largemem",           0,   0,  &f_largemem,    0,  0,             1              },
   { "smallmem",           0,   0,  &f_largemem,    0,  0,            -1              },
   { "smallmem",           0,   0,  &f_largemem,    0,  0,            -1              },
   { "root",               0,   1,  0, 0,               setroot                       },
   { "root",               0,   1,  0, 0,               setroot                       },
+  { "abort-after",        0,   1,  &errabort,      0,  setinteger,    0              },
   { "admindir",           0,   1,  0, &admindir,       0                             },
   { "admindir",           0,   1,  0, &admindir,       0                             },
   { "instdir",            0,   1,  0, &instdir,        0                             },
   { "instdir",            0,   1,  0, &instdir,        0                             },
   { "ignore-depends",     0,   1,  0, 0,               ignoredepends                 },
   { "ignore-depends",     0,   1,  0, 0,               ignoredepends                 },

+ 1 - 0
main/main.h

@@ -85,6 +85,7 @@ extern int fc_removeessential, fc_conflicts, fc_depends, fc_dependsversion;
 extern int fc_autoselect, fc_badpath, fc_overwritediverted, fc_architecture;
 extern int fc_autoselect, fc_badpath, fc_overwritediverted, fc_architecture;
 extern int fc_nonroot, fc_overwritedir;
 extern int fc_nonroot, fc_overwritedir;
 
 
+extern int errabort;
 extern const char *admindir;
 extern const char *admindir;
 extern const char *instdir;
 extern const char *instdir;
 extern struct packageinlist *ignoredependss;
 extern struct packageinlist *ignoredependss;

+ 1 - 1
methods/disk.setup

@@ -6,7 +6,7 @@ method=$2
 option=$3
 option=$3
 
 
 cd "$vardir/methods/disk"
 cd "$vardir/methods/disk"
-tp=/tmp/ddm$$
+tp=/var/run/ddm$$
 
 
 iarch=`dpkg --print-installation-architecture`
 iarch=`dpkg --print-installation-architecture`
 
 

+ 22 - 38
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: 1998-11-01 17:14+0000\n"
+"POT-Creation-Date: 1999-01-31 05:45-0800\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"
@@ -1725,40 +1725,40 @@ msgstr "fgets gave an empty string from diversions [i]"
 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:358
+#: main/filesdb.c:359
 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:359
+#: main/filesdb.c:360
 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:361
+#: main/filesdb.c:362
 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:362 main/filesdb.c:371
+#: main/filesdb.c:363 main/filesdb.c:373
 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:367
+#: main/filesdb.c:369
 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:368
+#: main/filesdb.c:370
 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:370
+#: main/filesdb.c:372
 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:378
+#: main/filesdb.c:380
 #, 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:387
+#: main/filesdb.c:389
 msgid "read error in diversions [i]"
 msgid "read error in diversions [i]"
 msgstr "read error in diversions [i]"
 msgstr "read error in diversions [i]"
 
 
@@ -1906,7 +1906,7 @@ msgstr ""
 "conditions.  There is NO warranty.  See dpkg --licence for details.\n"
 "conditions.  There is NO warranty.  See dpkg --licence for details.\n"
 
 
 #: main/main.c:57
 #: main/main.c:57
-#, fuzzy, c-format
+#, fuzzy
 msgid ""
 msgid ""
 "Usage: \n"
 "Usage: \n"
 "  dpkg -i|--install      <.deb file name> ... | -R|--recursive <dir> ...\n"
 "  dpkg -i|--install      <.deb file name> ... | -R|--recursive <dir> ...\n"
@@ -1927,24 +1927,8 @@ msgid ""
 "  dpkg -l|--list [<pattern> ...]          list packages concisely\n"
 "  dpkg -l|--list [<pattern> ...]          list packages concisely\n"
 "  dpkg -S|--search <pattern> ...          find package(s) owning file(s)\n"
 "  dpkg -S|--search <pattern> ...          find package(s) owning file(s)\n"
 "  dpkg -C|--audit                         check for broken package(s)\n"
 "  dpkg -C|--audit                         check for broken package(s)\n"
-"  dpkg --print-architecture               print target architecture (uses "
-"GCC)\n"
-"  dpkg --print-gnu-build-architecture     print GNU version of target arch\n"
-"  dpkg --print-installation-architecture  print host architecture (for "
-"inst'n)\n"
-"  dpkg --compare-versions <a> <rel> <b>   compare version numbers - see "
-"below\n"
-"  dpkg --help | --version                 show this help / version number\n"
-"  dpkg --force-help | -Dh|--debug=help    help on forcing resp. debugging\n"
-"  dpkg --licence                          print copyright licencing terms\n"
-"\n"
-"Use dpkg -b|--build|-c|--contents|-e|--control|-I|--info|-f|--field|\n"
-" -x|--extract|-X|--vextract|--fsys-tarfile  on archives (type %s --help.)\n"
-"\n"
-"For internal use: dpkg --assert-support-predepends | --predep-package |\n"
-"  --assert-working-epoch\n"
-"\n"
-"Options:"
+"  dpkg --abort-after <n>                  abort after encountering <n> "
+"errors\n"
 msgstr ""
 msgstr ""
 "Usage: \n"
 "Usage: \n"
 "  dpkg -i|--install      <.deb file name> ... | -R|--recursive <dir> ...\n"
 "  dpkg -i|--install      <.deb file name> ... | -R|--recursive <dir> ...\n"
@@ -2007,7 +1991,7 @@ msgstr ""
 "\n"
 "\n"
 "Use `dselect' for user-friendly package management.\n"
 "Use `dselect' for user-friendly package management.\n"
 
 
-#: main/main.c:116
+#: main/main.c:117
 msgid ""
 msgid ""
 "Type dpkg --help for help about installing and deinstalling packages [*];\n"
 "Type dpkg --help for help about installing and deinstalling packages [*];\n"
 "Use dselect for user-friendly package management;\n"
 "Use dselect for user-friendly package management;\n"
@@ -2031,22 +2015,22 @@ msgstr ""
 "Options marked [*] produce a lot of output - pipe it through `less' or "
 "Options marked [*] produce a lot of output - pipe it through `less' or "
 "`more' !"
 "`more' !"
 
 
-#: dpkg-deb/main.c:130 main/main.c:171 split/main.c:142
+#: dpkg-deb/main.c:130 main/main.c:173 split/main.c:142
 #, c-format
 #, c-format
 msgid "conflicting actions --%s and --%s"
 msgid "conflicting actions --%s and --%s"
 msgstr "conflicting actions --%s and --%s"
 msgstr "conflicting actions --%s and --%s"
 
 
-#: main/main.c:223
+#: main/main.c:225
 #, c-format
 #, c-format
 msgid "null package name in --ignore-depends comma-separated list `%.250s'"
 msgid "null package name in --ignore-depends comma-separated list `%.250s'"
 msgstr "null package name in --ignore-depends comma-separated list `%.250s'"
 msgstr "null package name in --ignore-depends comma-separated list `%.250s'"
 
 
-#: main/main.c:229
+#: main/main.c:231
 #, c-format
 #, c-format
 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:245
+#: main/main.c:251
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "dpkg forcing options - control behaviour when problems found:\n"
 "dpkg forcing options - control behaviour when problems found:\n"
@@ -2054,7 +2038,7 @@ msgid ""
 "  stop with error:    --refuse-<thing>,<thing>,... | --no-force-<thing>,...\n"
 "  stop with error:    --refuse-<thing>,<thing>,... | --no-force-<thing>,...\n"
 " Forcing things:\n"
 " Forcing things:\n"
 "  auto-select [*]        (De)select packages to install (remove) them\n"
 "  auto-select [*]        (De)select packages to install (remove) them\n"
-"  dowgrade [*]           Replace a package with a lower version\n"
+"  downgrade [*]          Replace a package with a lower version\n"
 "  configure-any          Configure any package which may help this one\n"
 "  configure-any          Configure any package which may help this one\n"
 "  hold                   Process incidental packages even when on hold\n"
 "  hold                   Process incidental packages even when on hold\n"
 "  bad-path               PATH is missing important programs, problems "
 "  bad-path               PATH is missing important programs, problems "
@@ -2101,16 +2085,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:277
+#: main/main.c:283
 #, 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:353
+#: main/main.c:360
 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:389 split/main.c:163
+#: dpkg-deb/main.c:150 main/main.c:396 split/main.c:163
 msgid "need an action option"
 msgid "need an action option"
 msgstr "need an action option"
 msgstr "need an action option"
 
 

+ 22 - 38
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: 1998-11-01 17:14+0000\n"
+"POT-Creation-Date: 1999-01-31 05:45-0800\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"
@@ -1864,40 +1864,40 @@ msgstr "\"fgets\" a donn
 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:358
+#: main/filesdb.c:359
 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:359
+#: main/filesdb.c:360
 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:361
+#: main/filesdb.c:362
 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:362 main/filesdb.c:371
+#: main/filesdb.c:363 main/filesdb.c:373
 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:367
+#: main/filesdb.c:369
 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:368
+#: main/filesdb.c:370
 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:370
+#: main/filesdb.c:372
 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:378
+#: main/filesdb.c:380
 #, 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:387
+#: main/filesdb.c:389
 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]"
 
 
@@ -2048,7 +2048,7 @@ msgstr ""
 "les détails.\n"
 "les détails.\n"
 
 
 #: main/main.c:57
 #: main/main.c:57
-#, fuzzy, c-format
+#, fuzzy
 msgid ""
 msgid ""
 "Usage: \n"
 "Usage: \n"
 "  dpkg -i|--install      <.deb file name> ... | -R|--recursive <dir> ...\n"
 "  dpkg -i|--install      <.deb file name> ... | -R|--recursive <dir> ...\n"
@@ -2069,24 +2069,8 @@ msgid ""
 "  dpkg -l|--list [<pattern> ...]          list packages concisely\n"
 "  dpkg -l|--list [<pattern> ...]          list packages concisely\n"
 "  dpkg -S|--search <pattern> ...          find package(s) owning file(s)\n"
 "  dpkg -S|--search <pattern> ...          find package(s) owning file(s)\n"
 "  dpkg -C|--audit                         check for broken package(s)\n"
 "  dpkg -C|--audit                         check for broken package(s)\n"
-"  dpkg --print-architecture               print target architecture (uses "
-"GCC)\n"
-"  dpkg --print-gnu-build-architecture     print GNU version of target arch\n"
-"  dpkg --print-installation-architecture  print host architecture (for "
-"inst'n)\n"
-"  dpkg --compare-versions <a> <rel> <b>   compare version numbers - see "
-"below\n"
-"  dpkg --help | --version                 show this help / version number\n"
-"  dpkg --force-help | -Dh|--debug=help    help on forcing resp. debugging\n"
-"  dpkg --licence                          print copyright licencing terms\n"
-"\n"
-"Use dpkg -b|--build|-c|--contents|-e|--control|-I|--info|-f|--field|\n"
-" -x|--extract|-X|--vextract|--fsys-tarfile  on archives (type %s --help.)\n"
-"\n"
-"For internal use: dpkg --assert-support-predepends | --predep-package |\n"
-"  --assert-working-epoch\n"
-"\n"
-"Options:"
+"  dpkg --abort-after <n>                  abort after encountering <n> "
+"errors\n"
 msgstr ""
 msgstr ""
 "Syntaxe: \n"
 "Syntaxe: \n"
 "  dpkg -i|--install      <nom fichier .deb> ... | -R|--recursive <rép> ...\n"
 "  dpkg -i|--install      <nom fichier .deb> ... | -R|--recursive <rép> ...\n"
@@ -2164,7 +2148,7 @@ msgstr ""
 "\n"
 "\n"
 "Use `dselect' for user-friendly package management.\n"
 "Use `dselect' for user-friendly package management.\n"
 
 
-#: main/main.c:116
+#: main/main.c:117
 msgid ""
 msgid ""
 "Type dpkg --help for help about installing and deinstalling packages [*];\n"
 "Type dpkg --help for help about installing and deinstalling packages [*];\n"
 "Use dselect for user-friendly package management;\n"
 "Use dselect for user-friendly package management;\n"
@@ -2189,23 +2173,23 @@ msgstr ""
 "Les options marquées de [*] produisent un affichage important - tuber-les à "
 "Les options marquées de [*] produisent un affichage important - tuber-les à "
 "travers `less' ou `more' !"
 "travers `less' ou `more' !"
 
 
-#: dpkg-deb/main.c:130 main/main.c:171 split/main.c:142
+#: dpkg-deb/main.c:130 main/main.c:173 split/main.c:142
 #, c-format
 #, c-format
 msgid "conflicting actions --%s and --%s"
 msgid "conflicting actions --%s and --%s"
 msgstr "actions conflictuelles --%s et --%s"
 msgstr "actions conflictuelles --%s et --%s"
 
 
-#: main/main.c:223
+#: main/main.c:225
 #, c-format
 #, c-format
 msgid "null package name in --ignore-depends comma-separated list `%.250s'"
 msgid "null package name in --ignore-depends comma-separated list `%.250s'"
 msgstr "nom de paquet vide dans la liste `%.250s' de --ignore-depends"
 msgstr "nom de paquet vide dans la liste `%.250s' de --ignore-depends"
 
 
-#: main/main.c:229
+#: main/main.c:231
 #, c-format
 #, c-format
 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 ""
 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:245
+#: main/main.c:251
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "dpkg forcing options - control behaviour when problems found:\n"
 "dpkg forcing options - control behaviour when problems found:\n"
@@ -2213,7 +2197,7 @@ msgid ""
 "  stop with error:    --refuse-<thing>,<thing>,... | --no-force-<thing>,...\n"
 "  stop with error:    --refuse-<thing>,<thing>,... | --no-force-<thing>,...\n"
 " Forcing things:\n"
 " Forcing things:\n"
 "  auto-select [*]        (De)select packages to install (remove) them\n"
 "  auto-select [*]        (De)select packages to install (remove) them\n"
-"  dowgrade [*]           Replace a package with a lower version\n"
+"  downgrade [*]          Replace a package with a lower version\n"
 "  configure-any          Configure any package which may help this one\n"
 "  configure-any          Configure any package which may help this one\n"
 "  hold                   Process incidental packages even when on hold\n"
 "  hold                   Process incidental packages even when on hold\n"
 "  bad-path               PATH is missing important programs, problems "
 "  bad-path               PATH is missing important programs, problems "
@@ -2267,16 +2251,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:277
+#: main/main.c:283
 #, 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:353
+#: main/main.c:360
 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:389 split/main.c:163
+#: dpkg-deb/main.c:150 main/main.c:396 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"
 
 

+ 2 - 2
scripts/controllib.pl

@@ -90,7 +90,7 @@ sub substvars {
 sub outputclose {
 sub outputclose {
     my ($dosubstvars) = @_;
     my ($dosubstvars) = @_;
     for $f (keys %f) { $substvar{"F:$f"}= $f{$f}; }
     for $f (keys %f) { $substvar{"F:$f"}= $f{$f}; }
-    if (length($varlistfile)) {
+    if (length($varlistfile) and $dosubstvars) {
         $varlistfile="./$varlistfile" if $varlistfile =~ m/\s/;
         $varlistfile="./$varlistfile" if $varlistfile =~ m/\s/;
         if (open(SV,"< $varlistfile")) {
         if (open(SV,"< $varlistfile")) {
             while (<SV>) {
             while (<SV>) {
@@ -101,7 +101,7 @@ sub outputclose {
                 $substvar{$1}= $';
                 $substvar{$1}= $';
             }
             }
             close(SV);
             close(SV);
-        } elsif ($! !~ m/no such file or directory/i) {
+        } elsif ($! != ENOENT ) {
             &error("unable to open substvars file $varlistfile: $!");
             &error("unable to open substvars file $varlistfile: $!");
         }
         }
     }
     }

+ 1 - 0
scripts/dpkg-divert.pl

@@ -99,6 +99,7 @@ if ($mode eq 'add') {
     @ARGV == 1 || &badusage("--add needs a single argument");
     @ARGV == 1 || &badusage("--add needs a single argument");
     $file= $ARGV[0];
     $file= $ARGV[0];
     $file =~ m/\n/ && &badusage("file may not contain newlines");
     $file =~ m/\n/ && &badusage("file may not contain newlines");
+	-d $file && &badusage("Cannot divert directories");
     $divertto= "$file.distrib" unless defined($divertto);
     $divertto= "$file.distrib" unless defined($divertto);
     $package= ':' unless defined($package);
     $package= ':' unless defined($package);
     for ($i=0; $i<=$#contest; $i++) {
     for ($i=0; $i<=$#contest; $i++) {

+ 1 - 1
scripts/dpkg-genchanges.pl

@@ -102,7 +102,7 @@ while (@ARGV) {
 $fileslistfile="./$fileslistfile" if $fileslistfile =~ m/^\s/;
 $fileslistfile="./$fileslistfile" if $fileslistfile =~ m/^\s/;
 open(FL,"< $fileslistfile") || &syserr("cannot read files list file");
 open(FL,"< $fileslistfile") || &syserr("cannot read files list file");
 while(<FL>) {
 while(<FL>) {
-    if (m/^(([-+.0-9a-z]+)_([^_]+)_(\w+)\.deb) (\S+) (\S+)$/) {
+    if (m/^(([-+.0-9a-z]+)_([^_]+)_([-\w]+)\.deb) (\S+) (\S+)$/) {
         defined($p2f{"$2 $4"}) &&
         defined($p2f{"$2 $4"}) &&
             &warn("duplicate files list entry for package $2 (line $.)");
             &warn("duplicate files list entry for package $2 (line $.)");
 	$f2p{$1}= $2;
 	$f2p{$1}= $2;

+ 9 - 0
scripts/update-alternatives.pl

@@ -110,6 +110,7 @@ if (open(AF,"$admindir/$name")) {
     }
     }
     while (($version= &gl("version")) ne '') {
     while (($version= &gl("version")) ne '') {
         defined($versionnum{$version}) && &badfmt("duplicate path $tver");
         defined($versionnum{$version}) && &badfmt("duplicate path $tver");
+       if ( -r $version ) {
         push(@versions,$version);
         push(@versions,$version);
         $versionnum{$version}= $i= $#versions;
         $versionnum{$version}= $i= $#versions;
         $priority= &gl("priority");
         $priority= &gl("priority");
@@ -118,6 +119,14 @@ if (open(AF,"$admindir/$name")) {
         for ($j=0; $j<=$#slavenames; $j++) {
         for ($j=0; $j<=$#slavenames; $j++) {
             $slavepath{$i,$j}= &gl("spath");
             $slavepath{$i,$j}= &gl("spath");
         }
         }
+       } else {
+           # File not found - remove
+            &pr("Alternative for $name points to $version - which wasn't found.  Removing from list of alternatives.");
+           &gl("priority");
+           for ($j=0; $j<=$#slavenames; $j++) {
+               &gl("spath");
+           }
+       }
     }
     }
     close(AF);
     close(AF);
     $dataread=1;
     $dataread=1;

+ 9 - 0
scripts/update-rc.d.8

@@ -137,6 +137,15 @@ Any files in the
 directories that are not symbolic links to the script
 directories that are not symbolic links to the script
 .BI /etc/init.d/ name
 .BI /etc/init.d/ name
 will be left untouched.
 will be left untouched.
+.SH OPTIONS
+.TP
+.I -n
+Don't do anything, just show what we would do.
+.TP
+.I -f
+Force removal of symlinks even if
+.BI /etc/init.d/ name
+still exists.
 .SH EXAMPLES
 .SH EXAMPLES
 Insert links using the defaults:
 Insert links using the defaults:
 .nf
 .nf