multiple arch support for dpkg
I think we need to extend dpkg's concept of architectures.
This came up when I wanted to make a small subset of debian compiled with
pentium optimizations. To set this up on the ftp sites, it needs to be a
different architecture. But dpkg only installs packages in the system's
architecture plus arch all. I needed some way to make dpkg accept that
pentium architecture packages were valid too.
There are some other places similar functionality is needed, in the ports of
debian to other architectures. For example, I think the sparc64 architecture
will be able to run sparc architecure packages, but sparc's will not be able
to run sparc64 packages. Another example, the m68k architecture has some
packages that only work on atari computers, not on amigas. It would be
useful if those packages could be in a special m68k-atari srchitecture so
they aren't accidentially installed on amigas.
After some discussion on debian-devel, I've came up with a tenative proposal
for how to extend dpkg to support these situations. Make dpkg parse a file,
/etc/dpkg/architectures. The format of the file is:
# comment
arch: arch1 [arch2 ...]
...
Only lines that start with the architecture that's the same as output by
dpkg --print-installation-architecture are looked at, the rest are ignored.
Comments are allowed, as is arbitratry whitespace.
If no lines match or the file does not exist, dpkg defaults to its current
behavior.
For each matching line, dpkg adds the list of architectures to a table. When
dpkg is asked to install a package, it looks at the table to determine if
the package's architecture is good for this machine.
A sample file:
# Uncomment this line if this is a pentium computer and you
# wish to use pentium optimized packages:
#i386: pentium
i386: i386 all
# If your machine is an atari, use this line:
#m68k: m68k-atari m68k all
# If your machine is an amiga, use this line:
m68k: m68k-amiga m68k all
# This allows sparc 64's to use normal sparc binaries.
sparc64: sparc64 sparc all
sparc: sparc all
This file is about half of the solution to making a pentium optimized debian
work. The remainder is making apt able to use it. What I and the author of
apt have come up with is that the order of architectures in
/etc/dpkg/architectures should be looked at by apt. Apt will consider
architectures that are listed first to be preferable when deciding which
architecture of a package to install. For example, if the file has:
i386: pentium i386 all
Then if an i386 and a pentium version of a .deb are available, apt will
prefer the i386 version. In fact, if the perviously installed version was an
i386 package, and the pentium version is the _same_ or greater, apt will
reinstall the pentium version.
A corellary of this is that apt needs a way to know what architecture of a
package is currently installed. I propose modifying the status file to add
the Architecture field to it so that will work.
I've made the modifications to dpkg to add the Architecture field to the
status file and to make it parse /etc/dpkg/available, and have uploaded dpkg
1.4.0.26.3 to experimental with these changes. I would like to get this into
the official dpkg. I've attached a diff of my changes.
--
see shy jo
diff -ur o/dpkg-1.4.0.26/archtable dpkg-1.4.0.26.3/archtable
--- o/dpkg-1.4.0.26/archtable Sun May 25 05:49:10 1997
+++ dpkg-1.4.0.26.3/archtable Sat Jul 25 17:00:49 1998
@@ -17,7 +17,7 @@
i486 i386 i486
i586 i386 i486
i686 i386 i486
-pentium i386 i486
+pentium pentium i486
sparc sparc sparc
alpha alpha alpha
m68k m68k m68k
diff -ur o/dpkg-1.4.0.26/config.log dpkg-1.4.0.26.3/config.log
--- o/dpkg-1.4.0.26/config.log Thu Jul 23 05:29:55 1998
+++ dpkg-1.4.0.26.3/config.log Sat Jul 25 21:27:59 1998
@@ -5,7 +5,19 @@
ltconfig:580: checking if gcc static flag -static works
ltconfig:581: gcc -o conftest -static conftest.c 1>&5
ltconfig:613: checking for ld used by GCC
-GNU ld version 2.9 (with BFD 2.9)
+GNU ld version 2.9.1 (with BFD 2.9.1)
+ltconfig:960: checking if global_symbol_pipe works
+ltconfig:961: gcc -c conftest.c 1>&5
+ltconfig:964: eval "/usr/bin/nm -B conftest.o | sed -n -e 's/^.* [ABCDGISTUW] \([_A-Za-z][_A-Za-z0-9]*\)$/\1 \1/p' > conftest.nm"
+ltconfig:1022: gcc -o conftest -fno-builtin conftest.c conftestm.o 1>&5
+ltconfig:418: checking whether we are using GNU C
+ltconfig:426: gcc -E conftest.c
+ltconfig:537: checking if gcc PIC flag -fPIC works
+ltconfig:538: gcc -c -fPIC -DPIC conftest.c 1>&5
+ltconfig:580: checking if gcc static flag -static works
+ltconfig:581: gcc -o conftest -static conftest.c 1>&5
+ltconfig:613: checking for ld used by GCC
+GNU ld version 2.9.1 (with BFD 2.9.1)
ltconfig:960: checking if global_symbol_pipe works
ltconfig:961: gcc -c conftest.c 1>&5
ltconfig:964: eval "/usr/bin/nm -B conftest.o | sed -n -e 's/^.* [ABCDGISTUW] \([_A-Za-z][_A-Za-z0-9]*\)$/\1 \1/p' > conftest.nm"
diff -ur o/dpkg-1.4.0.26/debian/changelog dpkg-1.4.0.26.3/debian/changelog
--- o/dpkg-1.4.0.26/debian/changelog Thu Jul 23 05:26:46 1998
+++ dpkg-1.4.0.26.3/debian/changelog Sat Jul 25 21:17:22 1998
@@ -1,3 +1,27 @@
+dpkg (1.4.0.26.3) experimental; urgency=low
+
+ * Non-maintainer upload.
+
+ * lib/parse.c: fixed an error that was making the status file contain
+ only the architecture of the last package installed, and was making dpkg
+ -s not print the architecture.
+
+ -- Joey Hess <joeyh@master.debian.org> Sat, 25 Jul 1998 21:16:22 -0700
+
+dpkg (1.4.0.26.2) experimental; urgency=low
+
+ * Non-maintainer upload.
+
+ * Modified dpkg to parse a file, /etc/dpkg/arch, to determine which
+ architectures of packages it can install, in a user configurable way.
+ * Modified dpkg to save architecture info to the status file, this
+ information will be of use to apt. Also made it display the info in dpkg
+ -s.
+ * Modified archtable to make pentium be a unique arch, instead of being
+ mapped to i386. This is for the pentium optimized debian project.
+
+ -- Joey Hess <joeyh@master.debian.org> Sat, 25 Jul 1998 13:08:23 -0700
+
dpkg (1.4.0.26) unstable; urgency=low
* Non-maintainer upload.
diff -ur o/dpkg-1.4.0.26/doc/manuals-version dpkg-1.4.0.26.3/doc/manuals-version
--- o/dpkg-1.4.0.26/doc/manuals-version Thu Jul 23 05:34:41 1998
+++ dpkg-1.4.0.26.3/doc/manuals-version Sat Jul 25 21:33:02 1998
@@ -1,2 +1,2 @@
-<!entity manuals-version "1.4.0.26">
-<!entity dpkg-version "1.4.0.26">
+<!entity manuals-version "1.4.0.26.3">
+<!entity dpkg-version "1.4.0.26.3">
diff -ur o/dpkg-1.4.0.26/dpkg/Makefile.am dpkg-1.4.0.26.3/dpkg/Makefile.am
--- o/dpkg-1.4.0.26/dpkg/Makefile.am Fri Jul 11 12:47:01 1997
+++ dpkg-1.4.0.26.3/dpkg/Makefile.am Sat Jul 25 15:15:12 1998
@@ -28,7 +28,7 @@
dpkg_SOURCES = main.c enquiry.c filesdb.c archives.c processarc.c \
cleanup.c select.c packages.c configure.c remove.c \
help.c depcon.c errors.c update.c main.h filesdb.h \
- archives.h
+ archives.h arch.c arch.h
dpkg_LDADD = ../lib/libdpkg.la ../lib/myopt.o
BUILT_SOURCES = archtable.h
Only in dpkg-1.4.0.26.3/dpkg: arch.c
Only in dpkg-1.4.0.26.3/dpkg: arch.h
diff -ur o/dpkg-1.4.0.26/dpkg/processarc.c dpkg-1.4.0.26.3/dpkg/processarc.c
--- o/dpkg-1.4.0.26/dpkg/processarc.c Sun Mar 30 12:45:27 1997
+++ dpkg-1.4.0.26.3/dpkg/processarc.c Sat Jul 25 16:28:50 1998
@@ -43,6 +43,7 @@
#include "filesdb.h"
#include "main.h"
#include "archives.h"
+#include "arch.h"
void process_archive(const char *filename) {
static const struct TarFunctions tf = {
@@ -182,9 +183,12 @@
return;
}
- if (pkg->available.architecture && *pkg->available.architecture &&
- strcmp(pkg->available.architecture,"all") &&
- strcmp(pkg->available.architecture,architecture))
+ if (!arch_read) {
+ read_arch(SYSCONFDIR "/" ARCHTABLEFILE);
+ arch_read=1;
+ }
+
+ if (! isvalid_arch(pkg->available.architecture))
forcibleerr(fc_architecture,
_("package architecture (%s) does not match system (%s)"),
pkg->available.architecture,architecture);
@@ -754,7 +758,7 @@
pkg->installed.description= pkg->available.description;
pkg->installed.maintainer= pkg->available.maintainer;
pkg->installed.source= pkg->available.source;
- pkg->installed.architecture= 0; /* This is irrelevant in the status file. */
+ pkg->installed.architecture= pkg->available.architecture;
pkg->installed.installedsize= pkg->available.installedsize;
pkg->installed.version= pkg->available.version;
@@ -893,6 +897,7 @@
otherpkg->installed.essential= 0;
otherpkg->installed.description= otherpkg->installed.maintainer= 0;
otherpkg->installed.installedsize= otherpkg->installed.source= 0;
+ otherpkg->installed.architecture= 0;
otherpkg->installed.conffiles= 0;
blankversion(&otherpkg->installed.version);
otherpkg->installed.arbs= 0;
diff -ur o/dpkg-1.4.0.26/dpkg/remove.c dpkg-1.4.0.26.3/dpkg/remove.c
--- o/dpkg-1.4.0.26/dpkg/remove.c Sat Apr 4 10:18:54 1998
+++ dpkg-1.4.0.26.3/dpkg/remove.c Sat Jul 25 13:21:09 1998
@@ -475,6 +475,7 @@
pkg->installed.essential= 0;
pkg->installed.description= pkg->installed.maintainer= 0;
pkg->installed.source= pkg->installed.installedsize= 0;
+ pkg->installed.architecture= 0;
blankversion(&pkg->installed.version);
pkg->installed.arbs= 0;
}
diff -ur o/dpkg-1.4.0.26/include/Makefile.am dpkg-1.4.0.26.3/include/Makefile.am
--- o/dpkg-1.4.0.26/include/Makefile.am Sat Jul 12 17:06:56 1997
+++ dpkg-1.4.0.26.3/include/Makefile.am Sat Jul 25 15:24:26 1998
@@ -40,7 +40,8 @@
dpkg.h: stamp-dpkg.h
stamp-dpkg.h: dpkg.h.in Makefile
sed 's:^\(#define ADMINDIR[ ]*"\).*\(".*\):\1$(pkglocalstatedir)\2:; \
- s:^\(#define UPDATESDIR[ ]*"\).*\(".*\):\1$(pupdates_suffix)/\2:; \
+ s:^\(#define SYSCONFDIR[ ]*"\).*\(".*\):\1$(pkgsysconfdir)/\2:; \
+ s:^\(#define UPDATESDIR[ ]*"\).*\(".*\):\1$(pupdates_suffix)/\2:; \
s:^\(#define INFODIR[ ]*"\).*\(".*\):\1$(pinfo_suffix)/\2:; \
s:^\(#define PARTSDIR[ ]*"\).*\(".*\):\1$(parts_suffix)/\2:; \
s:^\(#define LIBDIR[ ]*"\).*\(".*\):\1$(pkglibdir)/\2:; \
diff -ur o/dpkg-1.4.0.26/include/dpkg.h.in dpkg-1.4.0.26.3/include/dpkg.h.in
--- o/dpkg-1.4.0.26/include/dpkg.h.in Sat Mar 8 11:40:48 1997
+++ dpkg-1.4.0.26.3/include/dpkg.h.in Sat Jul 25 15:26:07 1998
@@ -67,6 +67,9 @@
#define POSTRMFILE "postrm"
#define LISTFILE "list"
+#define SYSCONFDIR "/etc/dpkg"
+#define ARCHTABLEFILE "architectures"
+
#define ADMINDIR "/var/lib/dpkg"
#define STATUSFILE "status"
#define AVAILFILE "available"
diff -ur o/dpkg-1.4.0.26/lib/parse.c dpkg-1.4.0.26.3/lib/parse.c
--- o/dpkg-1.4.0.26/lib/parse.c Sat Mar 8 11:40:49 1997
+++ dpkg-1.4.0.26.3/lib/parse.c Sat Jul 25 21:26:41 1998
@@ -205,8 +205,6 @@
if (flags & pdb_recordavailable)
parsemustfield(file,filename,lno, warnto,warncount,&newpig,1,
&newpifp->architecture, "architecture");
- else if (newpifp->architecture && *newpifp->architecture)
- newpifp->architecture= 0;
/* Check the Config-Version information:
* If there is a Config-Version it is definitely to be used, but
diff -ur o/dpkg-1.4.0.26/po/en.po dpkg-1.4.0.26.3/po/en.po
--- o/dpkg-1.4.0.26/po/en.po Thu Jul 23 05:35:04 1998
+++ dpkg-1.4.0.26.3/po/en.po Sat Jul 25 21:33:36 1998
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 1998-07-23 08:31-0400\n"
+"POT-Creation-Date: 1998-07-25 21:29-0700\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"
@@ -529,25 +529,25 @@
msgid "several package info entries found, only one allowed"
msgstr "several package info entries found, only one allowed"
-#: lib/parse.c:221
+#: lib/parse.c:219
msgid "Configured-Version for package with inappropriate Status"
msgstr "Configured-Version for package with inappropriate Status"
-#: lib/parse.c:235
+#: lib/parse.c:233
msgid "Package which in state not-installed has conffiles, forgetting them"
msgstr "Package which in state not-installed has conffiles, forgetting them"
-#: lib/parse.c:283
+#: lib/parse.c:281
#, c-format
msgid "failed to read from `%.255s'"
msgstr "failed to read from `%.255s'"
-#: lib/parse.c:285
+#: lib/parse.c:283
#, c-format
msgid "failed to close after read: `%.255s'"
msgstr "failed to close after read: `%.255s'"
-#: lib/parse.c:286
+#: lib/parse.c:284
#, c-format
msgid "no package information in `%.255s'"
msgstr "no package information in `%.255s'"
@@ -2181,67 +2181,67 @@
msgid "; however:\n"
msgstr "; however:\n"
-#: dpkg/processarc.c:105
+#: dpkg/processarc.c:106
msgid "cannot access archive"
msgstr "cannot access archive"
-#: dpkg/processarc.c:115
+#: dpkg/processarc.c:116
#, c-format
msgid "error ensuring `%.250s' doesn't exist"
msgstr "error ensuring `%.250s' doesn't exist"
-#: dpkg/processarc.c:120
+#: dpkg/processarc.c:121
msgid "failed to exec dpkg-split to see if it's part of a multiparter"
msgstr "failed to exec dpkg-split to see if it's part of a multiparter"
-#: dpkg/processarc.c:123
+#: dpkg/processarc.c:124
msgid "wait for dpkg-split failed"
msgstr "wait for dpkg-split failed"
-#: dpkg/processarc.c:144
+#: dpkg/processarc.c:145
msgid "unable to get unique filename for control info"
msgstr "unable to get unique filename for control info"
-#: dpkg/processarc.c:166
+#: dpkg/processarc.c:167
msgid "failed to exec dpkg-deb to extract control information"
msgstr "failed to exec dpkg-deb to extract control information"
-#: dpkg/processarc.c:180
+#: dpkg/processarc.c:181
#, c-format
msgid "Recorded info about %s from %s.\n"
msgstr "Recorded info about %s from %s.\n"
-#: dpkg/processarc.c:189
+#: dpkg/processarc.c:193
#, c-format
msgid "package architecture (%s) does not match system (%s)"
msgstr "package architecture (%s) does not match system (%s)"
-#: dpkg/processarc.c:206
+#: dpkg/processarc.c:210
#, c-format
msgid "Selecting previously deselected package %s.\n"
msgstr "Selecting previously deselected package %s.\n"
-#: dpkg/processarc.c:209
+#: dpkg/processarc.c:213
#, c-format
msgid "Skipping deselected package %s.\n"
msgstr "Skipping deselected package %s.\n"
-#: dpkg/processarc.c:220
+#: dpkg/processarc.c:224
#, c-format
msgid "dpkg - warning: downgrading %.250s from %.250s to %.250s.\n"
msgstr "dpkg - warning: downgrading %.250s from %.250s to %.250s.\n"
-#: dpkg/processarc.c:225
+#: dpkg/processarc.c:229
#, 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"
-#: dpkg/processarc.c:235
+#: dpkg/processarc.c:239
#, c-format
msgid "Version %.250s of %.250s already installed, skipping.\n"
msgstr "Version %.250s of %.250s already installed, skipping.\n"
-#: dpkg/processarc.c:268
+#: dpkg/processarc.c:272
#, c-format
msgid ""
"dpkg: regarding %s containing %s, pre-dependency problem:\n"
@@ -2250,136 +2250,136 @@
"dpkg: regarding %s containing %s, pre-dependency problem:\n"
"%s"
-#: dpkg/processarc.c:271
+#: dpkg/processarc.c:275
#, c-format
msgid "pre-dependency problem - not installing %.250s"
msgstr "pre-dependency problem - not installing %.250s"
-#: dpkg/processarc.c:272
+#: dpkg/processarc.c:276
msgid "dpkg: warning - ignoring pre-dependency problem !\n"
msgstr "dpkg: warning - ignoring pre-dependency problem !\n"
-#: dpkg/processarc.c:286
+#: dpkg/processarc.c:290
#, c-format
msgid "Preparing to replace %s %s (using %s) ...\n"
msgstr "Preparing to replace %s %s (using %s) ...\n"
-#: dpkg/processarc.c:291
+#: dpkg/processarc.c:295
#, c-format
msgid "Unpacking %s (from %s) ...\n"
msgstr "Unpacking %s (from %s) ...\n"
-#: dpkg/processarc.c:311
+#: dpkg/processarc.c:315
#, c-format
msgid "name of conffile (starting `%.250s') is too long (>%d characters)"
msgstr "name of conffile (starting `%.250s') is too long (>%d characters)"
-#: dpkg/processarc.c:365
+#: dpkg/processarc.c:369
#, c-format
msgid "read error in %.250s"
msgstr "read error in %.250s"
#. conff= fopen()
-#: dpkg/processarc.c:367
+#: dpkg/processarc.c:371
#, c-format
msgid "error closing %.250s"
msgstr "error closing %.250s"
-#: dpkg/processarc.c:369
+#: dpkg/processarc.c:373
#, c-format
msgid "error trying to open %.250s"
msgstr "error trying to open %.250s"
-#: dpkg/processarc.c:401
+#: dpkg/processarc.c:405
#, c-format
msgid "De-configuring %s, so that we can remove %s ...\n"
msgstr "De-configuring %s, so that we can remove %s ...\n"
-#: dpkg/processarc.c:458
+#: dpkg/processarc.c:462
#, c-format
msgid "Unpacking replacement %.250s ...\n"
msgstr "Unpacking replacement %.250s ...\n"
-#: dpkg/processarc.c:534
+#: dpkg/processarc.c:538
msgid "unable to exec dpkg-deb to get filesystem archive"
msgstr "unable to exec dpkg-deb to get filesystem archive"
-#: dpkg/processarc.c:542
+#: dpkg/processarc.c:546
msgid "unable to fdopen dpkg-deb extract pipe"
msgstr "unable to fdopen dpkg-deb extract pipe"
-#: dpkg/processarc.c:548
+#: dpkg/processarc.c:552
msgid "error reading dpkg-deb tar output"
msgstr "error reading dpkg-deb tar output"
-#: dpkg/processarc.c:551
+#: dpkg/processarc.c:555
msgid "unexpected EOF in filesystem tarfile - corrupted package archive"
msgstr "unexpected EOF in filesystem tarfile - corrupted package archive"
-#: dpkg/processarc.c:553
+#: dpkg/processarc.c:557
msgid "corrupted filesystem tarfile - corrupted package archive"
msgstr "corrupted filesystem tarfile - corrupted package archive"
-#: dpkg/processarc.c:610
+#: dpkg/processarc.c:614
#, c-format
msgid "dpkg: warning - unable to delete old file `%.250s': %s\n"
msgstr "dpkg: warning - unable to delete old file `%.250s': %s\n"
-#: dpkg/processarc.c:632 dpkg/processarc.c:867 dpkg/remove.c:287
+#: dpkg/processarc.c:636 dpkg/processarc.c:871 dpkg/remove.c:287
msgid "cannot read info directory"
msgstr "cannot read info directory"
-#: dpkg/processarc.c:645
+#: dpkg/processarc.c:649
#, c-format
msgid "old version of package has overly-long info file name starting `%.250s'"
msgstr ""
"old version of package has overly-long info file name starting `%.250s'"
-#: dpkg/processarc.c:657
+#: dpkg/processarc.c:661
#, c-format
msgid "unable to remove obsolete info file `%.250s'"
msgstr "unable to remove obsolete info file `%.250s'"
-#: dpkg/processarc.c:660
+#: dpkg/processarc.c:664
#, c-format
msgid "unable to install (supposed) new info file `%.250s'"
msgstr "unable to install (supposed) new info file `%.250s'"
-#: dpkg/processarc.c:667
+#: dpkg/processarc.c:671
msgid "unable to open temp control directory"
msgstr "unable to open temp control directory"
-#: dpkg/processarc.c:676
+#: dpkg/processarc.c:680
#, c-format
msgid "package contains overly-long control info file name (starting `%.50s')"
msgstr "package contains overly-long control info file name (starting `%.50s')"
-#: dpkg/processarc.c:681
+#: dpkg/processarc.c:685
#, c-format
msgid "package control info contained directory `%.250s'"
msgstr "package control info contained directory `%.250s'"
-#: dpkg/processarc.c:683
+#: dpkg/processarc.c:687
#, c-format
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"
-#: dpkg/processarc.c:689
+#: dpkg/processarc.c:693
#, c-format
msgid "dpkg: warning - package %s contained list as info file"
msgstr "dpkg: warning - package %s contained list as info file"
-#: dpkg/processarc.c:696
+#: dpkg/processarc.c:700
#, c-format
msgid "unable to install new info file `%.250s' as `%.250s'"
msgstr "unable to install new info file `%.250s' as `%.250s'"
-#: dpkg/processarc.c:847
+#: dpkg/processarc.c:851
#, c-format
msgid "(Noting disappearance of %s, which has been completely replaced.)\n"
msgstr "(Noting disappearance of %s, which has been completely replaced.)\n"
-#: dpkg/processarc.c:883
+#: dpkg/processarc.c:887
#, c-format
msgid "unable to delete disappearing control info file `%.250s'"
msgstr "unable to delete disappearing control info file `%.250s'"
diff -ur o/dpkg-1.4.0.26/po/fr.po dpkg-1.4.0.26.3/po/fr.po
--- o/dpkg-1.4.0.26/po/fr.po Thu Jul 23 05:35:04 1998
+++ dpkg-1.4.0.26.3/po/fr.po Sat Jul 25 21:33:38 1998
@@ -17,7 +17,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Debian dpkg 1.4.0.14\n"
-"POT-Creation-Date: 1998-07-23 08:31-0400\n"
+"POT-Creation-Date: 1998-07-25 21:29-0700\n"
"PO-Revision-Date: 1997-05-13 22:07 EDT\n"
"Last-Translator: Christophe Le Bars <clebars@debian.org>\n"
"Language-Team: French\n"
@@ -599,27 +599,27 @@
msgid "several package info entries found, only one allowed"
msgstr "plusieurs entrées d'infos de paquet trouvées, seule une est autorisée"
-#: lib/parse.c:221
+#: lib/parse.c:219
msgid "Configured-Version for package with inappropriate Status"
msgstr "\"Configured-Version\" du paquet avec un état inapproprié"
-#: lib/parse.c:235
+#: lib/parse.c:233
msgid "Package which in state not-installed has conffiles, forgetting them"
msgstr ""
"Paquet dans l'état non-installé possédant des fichiers de configuration, "
"fichiers ignorés"
-#: lib/parse.c:283
+#: lib/parse.c:281
#, c-format
msgid "failed to read from `%.255s'"
msgstr "échec pour lire à partir de `%.255s'"
-#: lib/parse.c:285
+#: lib/parse.c:283
#, c-format
msgid "failed to close after read: `%.255s'"
msgstr "échec pour fermer après lecture: `%.255s'"
-#: lib/parse.c:286
+#: lib/parse.c:284
#, c-format
msgid "no package information in `%.255s'"
msgstr "pas d'informations du paquet dans `%.255s'"
@@ -2347,74 +2347,74 @@
msgid "; however:\n"
msgstr "; malgré tout:\n"
-#: dpkg/processarc.c:105
+#: dpkg/processarc.c:106
msgid "cannot access archive"
msgstr "ne peut pas accéder à l'archive"
-#: dpkg/processarc.c:115
+#: dpkg/processarc.c:116
#, c-format
msgid "error ensuring `%.250s' doesn't exist"
msgstr "erreur en considérant que `%.250s' n'existe pas"
-#: dpkg/processarc.c:120
+#: dpkg/processarc.c:121
msgid "failed to exec dpkg-split to see if it's part of a multiparter"
msgstr ""
"échec pour exécuter dpkg-split pour voir si c'est une partie d'un fichier "
"découpé"
-#: dpkg/processarc.c:123
+#: dpkg/processarc.c:124
msgid "wait for dpkg-split failed"
msgstr "attente de l'échec de dpkg-split"
-#: dpkg/processarc.c:144
+#: dpkg/processarc.c:145
msgid "unable to get unique filename for control info"
msgstr ""
"impossible d'obtenir un nom de fichier unique pour les informations de "
"contrôle"
-#: dpkg/processarc.c:166
+#: dpkg/processarc.c:167
msgid "failed to exec dpkg-deb to extract control information"
msgstr ""
"échec pour exécuter dpkg-deb pour extraire les informations de contrôle"
-#: dpkg/processarc.c:180
+#: dpkg/processarc.c:181
#, c-format
msgid "Recorded info about %s from %s.\n"
msgstr "Enregistrement de l'information sur %s de %s.\n"
-#: dpkg/processarc.c:189
+#: dpkg/processarc.c:193
#, c-format
msgid "package architecture (%s) does not match system (%s)"
msgstr "l'architecture du paquet (%s) ne correspond pas celle du système (%s)"
-#: dpkg/processarc.c:206
+#: dpkg/processarc.c:210
#, c-format
msgid "Selecting previously deselected package %s.\n"
msgstr "Sélection du paquet %s précédemment déselectionné.\n"
-#: dpkg/processarc.c:209
+#: dpkg/processarc.c:213
#, c-format
msgid "Skipping deselected package %s.\n"
msgstr "Paquet déselectionné %s ignoré.\n"
-#: dpkg/processarc.c:220
+#: dpkg/processarc.c:224
#, 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"
-#: dpkg/processarc.c:225
+#: dpkg/processarc.c:229
#, 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"
-#: dpkg/processarc.c:235
+#: dpkg/processarc.c:239
#, c-format
msgid "Version %.250s of %.250s already installed, skipping.\n"
msgstr "Version %.250s de %.250s déjà installée, paquet ignoré.\n"
-#: dpkg/processarc.c:268
+#: dpkg/processarc.c:272
#, c-format
msgid ""
"dpkg: regarding %s containing %s, pre-dependency problem:\n"
@@ -2423,152 +2423,152 @@
"dpkg: concernant %s contenant %s, problème de pré-dépendance:\n"
"%s"
-#: dpkg/processarc.c:271
+#: dpkg/processarc.c:275
#, c-format
msgid "pre-dependency problem - not installing %.250s"
msgstr "problème de pré-dépendance - %.250s non installé"
-#: dpkg/processarc.c:272
+#: dpkg/processarc.c:276
msgid "dpkg: warning - ignoring pre-dependency problem !\n"
msgstr "dpkg: avertissement - problème de pré-dépendance ignoré !\n"
-#: dpkg/processarc.c:286
+#: dpkg/processarc.c:290
#, c-format
msgid "Preparing to replace %s %s (using %s) ...\n"
msgstr "Préparation de la mise à jour de %s %s (en utilisant %s) ...\n"
-#: dpkg/processarc.c:291
+#: dpkg/processarc.c:295
#, c-format
msgid "Unpacking %s (from %s) ...\n"
msgstr "Dépaquetage de %s (à partir de %s) ...\n"
-#: dpkg/processarc.c:311
+#: dpkg/processarc.c:315
#, c-format
msgid "name of conffile (starting `%.250s') is too long (>%d characters)"
msgstr ""
"le nom du fichier de configuration (commençant par `%.250s') est trop long "
"(>%d caractères)"
-#: dpkg/processarc.c:365
+#: dpkg/processarc.c:369
#, c-format
msgid "read error in %.250s"
msgstr "erreur de lecture dans %.250s"
#. conff= fopen()
-#: dpkg/processarc.c:367
+#: dpkg/processarc.c:371
#, c-format
msgid "error closing %.250s"
msgstr "erreur de fermeture de %.250s"
-#: dpkg/processarc.c:369
+#: dpkg/processarc.c:373
#, c-format
msgid "error trying to open %.250s"
msgstr "erreur en essayant d'ouvrir %.250s"
-#: dpkg/processarc.c:401
+#: dpkg/processarc.c:405
#, c-format
msgid "De-configuring %s, so that we can remove %s ...\n"
msgstr "Déconfiguration de %s, pour pouvoir supprimer %s ...\n"
-#: dpkg/processarc.c:458
+#: dpkg/processarc.c:462
#, c-format
msgid "Unpacking replacement %.250s ...\n"
msgstr "Dépaquetage de la mise à jour de %.250s ...\n"
-#: dpkg/processarc.c:534
+#: dpkg/processarc.c:538
msgid "unable to exec dpkg-deb to get filesystem archive"
msgstr ""
"impossible d'exécuter dpkg-deb pour obtenir l'archive du système de fichiers"
-#: dpkg/processarc.c:542
+#: dpkg/processarc.c:546
msgid "unable to fdopen dpkg-deb extract pipe"
msgstr "impossible de \"fdopen\" le tube d'extraction de dpkg-deb"
-#: dpkg/processarc.c:548
+#: dpkg/processarc.c:552
msgid "error reading dpkg-deb tar output"
msgstr "erreur en lisant la sortie du \"tar\" de dpkg-deb"
-#: dpkg/processarc.c:551
+#: dpkg/processarc.c:555
msgid "unexpected EOF in filesystem tarfile - corrupted package archive"
msgstr ""
"EOF inattendu dans l'archive du système de fichiers - archive du paquet "
"corrompue"
-#: dpkg/processarc.c:553
+#: dpkg/processarc.c:557
msgid "corrupted filesystem tarfile - corrupted package archive"
msgstr "archive du système de fichiers corrompue - archive du paquet corrompue"
-#: dpkg/processarc.c:610
+#: dpkg/processarc.c:614
#, c-format
msgid "dpkg: warning - unable to delete old file `%.250s': %s\n"
msgstr ""
"dpkg: avertissement - impossible de supprimer le fichier `%.250s': %s\n"
-#: dpkg/processarc.c:632 dpkg/processarc.c:867 dpkg/remove.c:287
+#: dpkg/processarc.c:636 dpkg/processarc.c:871 dpkg/remove.c:287
msgid "cannot read info directory"
msgstr "ne peut pas lire le répertoire d'informations"
-#: dpkg/processarc.c:645
+#: dpkg/processarc.c:649
#, c-format
msgid "old version of package has overly-long info file name starting `%.250s'"
msgstr ""
"l'ancienne version du paquet a un nom de fichier d'information commençant "
"par `%.250s' trop long"
-#: dpkg/processarc.c:657
+#: dpkg/processarc.c:661
#, c-format
msgid "unable to remove obsolete info file `%.250s'"
msgstr "impossible de supprimer le fichier d'information obsolète `%.250s'"
-#: dpkg/processarc.c:660
+#: dpkg/processarc.c:664
#, c-format
msgid "unable to install (supposed) new info file `%.250s'"
msgstr ""
"impossible d'installer le (supposé) nouveau fichier d'information `%.250s'"
-#: dpkg/processarc.c:667
+#: dpkg/processarc.c:671
msgid "unable to open temp control directory"
msgstr "impossible d'ouvrir le répertoire de contrôle temporaire"
-#: dpkg/processarc.c:676
+#: dpkg/processarc.c:680
#, c-format
msgid "package contains overly-long control info file name (starting `%.50s')"
msgstr ""
"le paquet contient un nom de fichier de contrôle trop long (commençant par "
"`%.50s')"
-#: dpkg/processarc.c:681
+#: dpkg/processarc.c:685
#, c-format
msgid "package control info contained directory `%.250s'"
msgstr "l'information de contrôle du paquet contient le répertoire `%.250s'"
-#: dpkg/processarc.c:683
+#: dpkg/processarc.c:687
#, c-format
msgid "package control info rmdir of `%.250s' didn't say not a dir"
msgstr ""
"l'information de contrôle du paquet \"rmdir\" de `%.250s' ne dit pas que ce "
"n'est pas un répertoire"
-#: dpkg/processarc.c:689
+#: dpkg/processarc.c:693
#, c-format
msgid "dpkg: warning - package %s contained list as info file"
msgstr ""
"dpkg: avertissement - le paquet %s contient une liste comme fichier "
"d'information"
-#: dpkg/processarc.c:696
+#: dpkg/processarc.c:700
#, c-format
msgid "unable to install new info file `%.250s' as `%.250s'"
msgstr ""
"impossible d'installer le nouveau fichier d'information `%.250s' comme "
"`%.250s'"
-#: dpkg/processarc.c:847
+#: dpkg/processarc.c:851
#, c-format
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"
-#: dpkg/processarc.c:883
+#: dpkg/processarc.c:887
#, c-format
msgid "unable to delete disappearing control info file `%.250s'"
msgstr ""
Reply to: