Re: multiple arch support for dpkg
Jules Bean wrote:
> However, he suggests a file called /etc/dpkg/architectures which the user
> modifies by commenting out the current line and uncommenting out the on he
> wants. E.g:
>
> The default is:
>
> i386:i386 all
> # uncomment below for pentium
> #i386: pentium i386 all
>
> I suggest, instead, that there be a file /usr/lib/dpkg/architectures which
> looks like this:
>
> pentium:pentium i386 all
> i386:i386 all
>
> This is not modified by the user. Instead, the user simply sets
> /etc/dpkg/architecture to simply 'pentium' or 'i386'. In this way,
> the developers, not the users are responsible for working out which arch's
> go together. All the user has to do is choose one.
Yes, but this does lose the user some control. Suppose you want to install
i386 package in preference, but pentium optimized packages if they are newer
than the i386 packages (because some developers have started releasing stuff
pentium optimized first, for example.). If /usr/lib/dpkg/architectures just
has the above 2 lines, you cannot do it. If the file is in /etc, you just
use:
i386: i386 pentium all
> Secondly, (although this is not very important) I would suggest that it is
> more appropriate for apt to access the architecture list by using libdpkg
> or by a dpkg flag 'dpkg --print-all-architectures' rather than directly
> accessing files under /etc/dpkg.
Sounds like a good idea, though it would mean moving the architecture list
parsing code into libdpkg (it's currently in dpkg proper.)
I attach a new version of the patch. I accidentially gave patch options that
made it ignore 2 new files I added to the dpkg source code, that are the
meat of my changes. This one shows those new files too.
--
see shy jo
diff --new-file -ur o/dpkg-1.4.0.26/ChangeLog dpkg-1.4.0.26.3/ChangeLog
--- o/dpkg-1.4.0.26/ChangeLog Thu Jul 23 05:26:46 1998
+++ dpkg-1.4.0.26.3/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 --new-file -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 --new-file -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 --new-file -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 --new-file -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 --new-file -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
diff --new-file -ur o/dpkg-1.4.0.26/dpkg/arch.c dpkg-1.4.0.26.3/dpkg/arch.c
--- o/dpkg-1.4.0.26/dpkg/arch.c Wed Dec 31 16:00:00 1969
+++ dpkg-1.4.0.26.3/dpkg/arch.c Sat Jul 25 16:43:01 1998
@@ -0,0 +1,115 @@
+/*
+ * dpkg - main program for package management
+ * arch.c - parser for arch table files
+ *
+ * Copyright (C) 1998 Joey Hess <joeyh@debian.org>
+ *
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2,
+ * or (at your option) any later version.
+ *
+ * This is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with dpkg; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <config.h>
+#include <dpkg.h>
+#include <dpkg-db.h>
+
+#include "arch.h"
+#include "main.h"
+
+char **arch_table=NULL;
+int arch_table_count=0;
+
+int arch_read=0;
+
+/*
+ * Read and parse a dpkg arch definition file, storing it in arch_table.
+ */
+int read_arch(const char *archfile) {
+ FILE *file;
+ char linebuf[1024];
+ int len, archlen=strlen(architecture);
+ char *l;
+
+ file= fopen(archfile,"r");
+
+ if (!file) {
+ /* This isn't fatal, the arch definition file is optional. */
+ return 0;
+ }
+
+ while (fgets(linebuf,sizeof(linebuf),file)) {
+ len= strlen(linebuf);
+
+ if (len == 0)
+ ohshit(_("fgets gave an empty null-terminated string from %.250s'"),
+ archfile);
+
+ /*
+ * We can ignore all lines that do not pertain to this system's
+ * architecture. This has a side effect of ignoring comments.
+ */
+ if (len > archlen + 1 &&
+ strncmp(linebuf,architecture,archlen) == 0 &&
+ linebuf[archlen] == ':') {
+
+ /* parse remainder of line one word at a time */
+ l= linebuf + archlen + 1;
+ l= strtok(l," \t\n");
+ while (l) {
+ if (! arch_table)
+ arch_table= m_malloc(sizeof(char *));
+ else
+ arch_table= m_realloc(arch_table,sizeof(char *) *
+ (arch_table_count + 1));
+
+ arch_table[arch_table_count]= m_malloc(strlen(l)+1);
+ strncpy(arch_table[arch_table_count], l, strlen(l));
+ arch_table[arch_table_count++][strlen(l)]='\0';
+
+ l= strtok(NULL," \t\n");
+ }
+ }
+ }
+
+ return 1;
+}
+
+/*
+ * Returns true if an architecture may be installed on this system.
+ */
+int isvalid_arch(const char *testarch) {
+ int i;
+
+ if (! testarch || ! *testarch)
+ return 0;
+
+ /*
+ * If arch_table is empty, we fall back on a default of
+ * only allowing the true architecture and arch all.
+ */
+ if (! arch_table && (
+ strcmp(testarch,"all") == 0 ||
+ strcmp(testarch,architecture) == 0))
+ return 1;
+
+ for (i= 0; i < arch_table_count; i++) {
+ if (strcmp(arch_table[i],testarch) == 0)
+ return 1;
+ }
+
+ return 0;
+}
diff --new-file -ur o/dpkg-1.4.0.26/dpkg/arch.h dpkg-1.4.0.26.3/dpkg/arch.h
--- o/dpkg-1.4.0.26/dpkg/arch.h Wed Dec 31 16:00:00 1969
+++ dpkg-1.4.0.26.3/dpkg/arch.h Sat Jul 25 16:38:05 1998
@@ -0,0 +1,28 @@
+/*
+ * dpkg - main program for package management
+ * arch.h - parser for arch table files
+ *
+ * Copyright (C) 1998 Joey Hess <joeyh@debian.org>
+ *
+ * This is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2,
+ * or (at your option) any later version.
+ *
+ * This is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with dpkg; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+int read_arch(const char *);
+int isvalid_arch(const char *);
+
+char **arch_table;
+int arch_table_count;
+
+int arch_read;
diff --new-file -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 --new-file -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 --new-file -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 --new-file -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 --new-file -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 --new-file -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 --new-file -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: