and action logs (kept forever?) 957
* start-stop-daemon process status check. 1480
* 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
* Automatically remove <file>.gz if <file> can't be found ?
;; Copyright (C) 1997, Klee Dienes <klee@mit.edu>
;; 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)
+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
* Maintainer release by IWJ.
Architecture: any
Essential: yes
Pre-Depends: ${shlibs:Pre-Depends}
-Suggests: developer-keyring
+Suggests: debian-keyring
Description: Package maintenance system for Debian Linux
This package contains the programs which handle the installation and
removal of packages on your system.
fi
cp debian/{prerm,postinst} $(mcidir)/.
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 -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}
$(MAKE) -C $(BUILD) top_distdir=. dist
$(MAKE) -C $(BUILD) \
libc 6 libc6
libm 6 libc6
-libncurses 3.4 ncurses3.4
+libncurses 4 libncurses4
libICE 6 xlib6g (>= 3.3-5)
libPEX5 6 xlib6g (>= 3.3-5)
libSM 6 xlib6g (>= 3.3-5)
-<!entity manuals-version "">
-<!entity dpkg-version "1.4.1">
+<!entity manuals-version "1.4.1.1">
+<!entity dpkg-version "1.4.1.1">
.SH OPTIONS
.br
.TP
+\fB--abort-after=\fP\fInumber\fP
+Change after how many errors dpkg will abort. The default is 50.
+.TP
.BR -B | --auto-deconfigure
When a package is removed, there is a possibility that another
installed package depended on the removed package. Specifying this
.br
.SH SEE ALSO
\fBdselect\fP(8),
-\fBdpkg-deb\fP(8),
+\fBdpkg-deb\fP(1),
\fBdeb\fP(5),
and
\fBdeb-control\fP(5)
*lastreport= nr;
lastreport= &nr->next;
- if (nerrs++ < 20) return;
+ if (nerrs++ < errabort) return;
fprintf(stderr, _("dpkg: too many errors, stopping\n"));
onerr_abort++;
}
if (linebuf[--l] != '\n') ohshit(_("diversions file has too-long line or EOF [i]"));
linebuf[l]= 0;
oialtname->camefrom= findnamenode(linebuf);
+ oialtname->useinstead= 0;
if (!fgets(linebuf,sizeof(linebuf),file))
if (ferror(file)) ohshite(_("read error in diversions [ii]"));
if (linebuf[--l] != '\n') ohshit(_("diversions file has too-long line or EOF [ii]"));
linebuf[l]= 0;
oicontest->useinstead= findnamenode(linebuf);
+ oicontest->camefrom= 0;
if (!fgets(linebuf,sizeof(linebuf),file))
if (ferror(file)) ohshite(_("read error in diversions [iii]"));
dpkg -l|--list [<pattern> ...] list packages concisely\n\
dpkg -S|--search <pattern> ... find package(s) owning file(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-gnu-build-architecture print GNU version of target arch\n\
dpkg --print-installation-architecture print host architecture (for inst'n)\n\
int fc_autoselect=1, fc_badpath=0, fc_overwritediverted=0, fc_architecture=0;
int fc_nonroot=0, fc_overwritedir=0;
+int errabort = 50;
const char *admindir= ADMINDIR;
const char *instdir= "";
struct packageinlist *ignoredependss=0;
}
}
+static void setinteger(const struct cmdinfo *cip, const char *value) {
+ *cip->iassignto=atoi(value);
+}
+
static void setforce(const struct cmdinfo *cip, const char *value) {
const char *comma;
int l;
stop with error: --refuse-<thing>,<thing>,... | --no-force-<thing>,...\n\
Forcing things:\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\
hold Process incidental packages even when on hold\n\
bad-path PATH is missing important programs, problems likely\n\
{ "largemem", 0, 0, &f_largemem, 0, 0, 1 },
{ "smallmem", 0, 0, &f_largemem, 0, 0, -1 },
{ "root", 0, 1, 0, 0, setroot },
+ { "abort-after", 0, 1, &errabort, 0, setinteger, 0 },
{ "admindir", 0, 1, 0, &admindir, 0 },
{ "instdir", 0, 1, 0, &instdir, 0 },
{ "ignore-depends", 0, 1, 0, 0, ignoredepends },
extern int fc_autoselect, fc_badpath, fc_overwritediverted, fc_architecture;
extern int fc_nonroot, fc_overwritedir;
+extern int errabort;
extern const char *admindir;
extern const char *instdir;
extern struct packageinlist *ignoredependss;
option=$3
cd "$vardir/methods/disk"
-tp=/tmp/ddm$$
+tp=/var/run/ddm$$
iarch=`dpkg --print-installation-architecture`
msgid ""
msgstr ""
"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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "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]"
msgstr "read error in diversions [ii]"
-#: main/filesdb.c:359
+#: main/filesdb.c:360
msgid "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]"
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]"
msgstr "diversions file has too-long line or EOF [ii]"
-#: main/filesdb.c:367
+#: main/filesdb.c:369
msgid "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]"
msgstr "unexpected EOF in diversions [iii]"
-#: main/filesdb.c:370
+#: main/filesdb.c:372
msgid "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
msgid "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]"
msgstr "read error in diversions [i]"
"conditions. There is NO warranty. See dpkg --licence for details.\n"
#: main/main.c:57
-#, fuzzy, c-format
+#, fuzzy
msgid ""
"Usage: \n"
" dpkg -i|--install <.deb file name> ... | -R|--recursive <dir> ...\n"
" dpkg -l|--list [<pattern> ...] list packages concisely\n"
" dpkg -S|--search <pattern> ... find package(s) owning file(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 ""
"Usage: \n"
" dpkg -i|--install <.deb file name> ... | -R|--recursive <dir> ...\n"
"\n"
"Use `dselect' for user-friendly package management.\n"
-#: main/main.c:116
+#: main/main.c:117
msgid ""
"Type dpkg --help for help about installing and deinstalling packages [*];\n"
"Use dselect for user-friendly package management;\n"
"Options marked [*] produce a lot of output - pipe it through `less' or "
"`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
msgid "conflicting actions --%s and --%s"
msgstr "conflicting actions --%s and --%s"
-#: main/main.c:223
+#: main/main.c:225
#, c-format
msgid "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
msgid "--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
msgid ""
"dpkg forcing options - control behaviour when problems found:\n"
" stop with error: --refuse-<thing>,<thing>,... | --no-force-<thing>,...\n"
" Forcing things:\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"
" hold Process incidental packages even when on hold\n"
" bad-path PATH is missing important programs, problems "
"WARNING - use of options marked [!] can seriously damage your installation.\n"
"Forcing options marked [*] are enabled by default.\n"
-#: main/main.c:277
+#: main/main.c:283
#, c-format
msgid "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"
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"
msgstr "need an action option"
msgid ""
msgstr ""
"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"
"Last-Translator: Christophe Le Bars <clebars@debian.org>\n"
"Language-Team: French\n"
msgid "diversions file has too-long line or 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]"
msgstr "erreur de lecture dans les détournements [ii]"
-#: main/filesdb.c:359
+#: main/filesdb.c:360
msgid "unexpected EOF in diversions [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]"
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]"
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]"
msgstr "erreur de lecture dans les détournements [iii]"
-#: main/filesdb.c:368
+#: main/filesdb.c:370
msgid "unexpected EOF in diversions [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]"
msgstr "\"fgets\" a donné une chaine vide pour les détournements [iii]"
-#: main/filesdb.c:378
+#: main/filesdb.c:380
#, c-format
msgid "conflicting diversions involving `%.250s' or `%.250s'"
msgstr "détournements contradictoires impliquant `%.250s' ou `%.250s'"
-#: main/filesdb.c:387
+#: main/filesdb.c:389
msgid "read error in diversions [i]"
msgstr "erreur de lecture dans les détournements [i]"
"les détails.\n"
#: main/main.c:57
-#, fuzzy, c-format
+#, fuzzy
msgid ""
"Usage: \n"
" dpkg -i|--install <.deb file name> ... | -R|--recursive <dir> ...\n"
" dpkg -l|--list [<pattern> ...] list packages concisely\n"
" dpkg -S|--search <pattern> ... find package(s) owning file(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 ""
"Syntaxe: \n"
" dpkg -i|--install <nom fichier .deb> ... | -R|--recursive <rép> ...\n"
"\n"
"Use `dselect' for user-friendly package management.\n"
-#: main/main.c:116
+#: main/main.c:117
msgid ""
"Type dpkg --help for help about installing and deinstalling packages [*];\n"
"Use dselect for user-friendly package management;\n"
"Les options marquées de [*] produisent un affichage important - tuber-les à "
"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
msgid "conflicting actions --%s and --%s"
msgstr "actions conflictuelles --%s et --%s"
-#: main/main.c:223
+#: main/main.c:225
#, c-format
msgid "null package name in --ignore-depends comma-separated list `%.250s'"
msgstr "nom de paquet vide dans la liste `%.250s' de --ignore-depends"
-#: main/main.c:229
+#: main/main.c:231
#, c-format
msgid "--ignore-depends requires a legal package name. `%.250s' is not; %s"
msgstr ""
"--ignore-depends requiert un nom de paquet légal. `%.250s' ne l'est pas; %s"
-#: main/main.c:245
+#: main/main.c:251
#, fuzzy
msgid ""
"dpkg forcing options - control behaviour when problems found:\n"
" stop with error: --refuse-<thing>,<thing>,... | --no-force-<thing>,...\n"
" Forcing things:\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"
" hold Process incidental packages even when on hold\n"
" bad-path PATH is missing important programs, problems "
"votre installation.\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
msgid "unknown force/refuse option `%.*s'"
msgstr "option de forçage `%.*s' inconnue"
-#: main/main.c:353
+#: main/main.c:360
msgid "failed to exec 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"
msgstr "manque une option d'action"
sub outputclose {
my ($dosubstvars) = @_;
for $f (keys %f) { $substvar{"F:$f"}= $f{$f}; }
- if (length($varlistfile)) {
+ if (length($varlistfile) and $dosubstvars) {
$varlistfile="./$varlistfile" if $varlistfile =~ m/\s/;
if (open(SV,"< $varlistfile")) {
while (<SV>) {
$substvar{$1}= $';
}
close(SV);
- } elsif ($! !~ m/no such file or directory/i) {
+ } elsif ($! != ENOENT ) {
&error("unable to open substvars file $varlistfile: $!");
}
}
@ARGV == 1 || &badusage("--add needs a single argument");
$file= $ARGV[0];
$file =~ m/\n/ && &badusage("file may not contain newlines");
+ -d $file && &badusage("Cannot divert directories");
$divertto= "$file.distrib" unless defined($divertto);
$package= ':' unless defined($package);
for ($i=0; $i<=$#contest; $i++) {
$fileslistfile="./$fileslistfile" if $fileslistfile =~ m/^\s/;
open(FL,"< $fileslistfile") || &syserr("cannot read files list file");
while(<FL>) {
- if (m/^(([-+.0-9a-z]+)_([^_]+)_(\w+)\.deb) (\S+) (\S+)$/) {
+ if (m/^(([-+.0-9a-z]+)_([^_]+)_([-\w]+)\.deb) (\S+) (\S+)$/) {
defined($p2f{"$2 $4"}) &&
&warn("duplicate files list entry for package $2 (line $.)");
$f2p{$1}= $2;
}
while (($version= &gl("version")) ne '') {
defined($versionnum{$version}) && &badfmt("duplicate path $tver");
+ if ( -r $version ) {
push(@versions,$version);
$versionnum{$version}= $i= $#versions;
$priority= &gl("priority");
for ($j=0; $j<=$#slavenames; $j++) {
$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);
$dataread=1;
directories that are not symbolic links to the script
.BI /etc/init.d/ name
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
Insert links using the defaults:
.nf