[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: