Browse Source

Merge branch 'master' into sourcev3

Raphael Hertzog 18 years ago
parent
commit
c3f33b87d4

+ 110 - 2
ChangeLog

@@ -1,5 +1,114 @@
+2008-03-14  Raphael Hertzog  <hertzog@debian.org>
+
+	* scripts/Dpkg/Changelog/Debian.pm: Fix regression by re-allowing
+	capitals (like UNRELEASED!) in the distribution/package name.
+	* scripts/t/600_Dpkg_Changelog/regressions: Add capitals in the
+	distribution name as part of the non-regression tests.
+
+2008-03-11  Ian Jackson  <ian@davenant.greenend.org.uk>,
+            Guillem Jover  <guillem@debian.org>
+
+	* lib/showcright.c: Rename to ...
+	* lib/myopt-util.c: ... this.
+	* lib/Makefile.am (libdpkg_a_SOURCES): Rename 'showcright.c' to
+	'myopt-util.c'.
+
+	* lib/dpkg.h (struct cmdinfo): Remove declaration.
+	(showcopyright): Move prototype to ...
+	* lib/myopt-util.c: ... here.
+	(helponly, versiononly): New functions.
+	* lib/myopt.h: Include <dpkg-def.h>.
+	(showcopyright, helponly, versiononly, usage, printversion): New
+	function prototypes.
+	* dpkg-deb/main.c (printversion, usage): Remove static keyword.
+	(helponly, versiononly): Remove function declarations and definitions.
+	* dpkg-split/main.c: Likewise.
+	* dselect/main.cc: Likewise.
+	* src/main.c: Likewise.
+	* src/query.c: Likewise.
+
+2008-03-11  Guillem Jover  <guillem@debian.org>
+
+	* lib/showcright.c (showcopyright): Move function prototype to ...
+	* lib/dpkg.h: ... here, and replace existing one.
+
+2008-03-11  Guillem Jover  <guillem@debian.org>
+
+	* lib/Makefile.am (libdpkg_a_SOURCES): Add 'dpkg-def.h'.
+	* lib/dpkg.h: Include 'dpkg-def.h'.
+	(CONSTANT, PRINTFFORMAT, NONRETURNING, UNUSED): Move defninitions
+	to ...
+	* lib/dpkg-def.h: ... here. New file.
+	* utils/start-stop-daemon.c: Include 'dpkg-def.h'.
+	(CONSTANT, PRINTFFORMAT, NONRETURNING, UNUSED): Remove defninitions.
+
+2008-03-11  Ian Jackson  <ian@davenant.greenend.org.uk>
+
+	* lib/dpkg.h (fgets_checked, fgets_must): New function declarations.
+	* lib/utils.c: Include <string.h>.
+	(fgets_checked, fgets_must): New function.
+	* src/filesdb.c (ensure_diversions): Use new fgets_checked and
+	fgets_must instead of duped code.
+
+2008-03-09  Ian Jackson  <ian@davenant.greenend.org.uk>
+
+	* dselect/pkgdisplay.cc (relatestrings): Change 'breaks with' to
+	'breaks'.
+
+2008-03-09  Ian Jackson  <ian@davenant.greenend.org.uk>
+
+	* dselect/pkgdepcon.cc (packagelist::resolvedepcon): Move dep_breaks
+	case after dep_conflicts so that it falls through.
+	(packagelist::deppossatisfied): Handle dep_breaks in the same way as
+	dep_conflicts.
+
+2008-03-09  Ian Jackson  <ian@davenant.greenend.org.uk>
+
+	* dselect/pkgdepcon.cc (packagelist::deppossatisfied): The new rule
+	is that a Conflicts is violated if the target package is installed
+	or to be error-preserved ie would_like_to_install() != 0 - except
+	that we disregard packages which directly Conflict with themselves.
+
+2008-03-07  Raphael Hertzog  <hertzog@debian.org>
+
+	* scripts/Dpkg/Fields.pm: Import Dpkg::Gettext since we use _g().
+
+2008-03-06  Sean Finney  <seanius@seanius.net>
+
+	* lib/dump.c (writedb): Free newfn and oldfn.
+	* src/help.c (clear_istobes): Free pkgiterator 'it' by calling
+	iterpkgend.
+
+2008-03-02  Raphael Hertzog  <hertzog@debian.org>
+
+	* scripts/dpkg-gencontrol.pl, scripts/dpkg-source.pl:
+	Do not sort the dependency fields as order matters given
+	the greedy algorithm that APT uses when trying to resolve
+	dependencies. See discussion on debian-devel:
+	http://lists.debian.org/debian-devel/2008/02/msg00893.html
+	* man/dpkg-gencontrol.1: Document the above changes.
+
+	* scripts/Dpkg/Deps.pm (simplify_deps): Tries to respect order put
+	by the maintainer when simplifying dependencies.
+	* scripts/t/400_Dpkg_Deps.t: Add a test-case to ensure that
+	further changes respect this constraint.
+
+	* scripts/dpkg-shlibdeps.pl: Sort generated dependencies to
+	have a deterministic output.
+
+2008-02-29  Frank Lichtenheld  <djpig@debian.org>
+
+	* scripts/Dpkg/Changelog/Debian.pm (parse):
+	One patch against the old parser that allowed
+	chars '+' and '.' in distribution names was
+	not forward ported into the new parser. Do
+	this now.
+	* scripts/t/600_Dpkg_Changelog/regression:
+	Add testcase for this regression.
+
+
 2008-02-22  Raphael Hertzog  <hertzog@debian.org>
-	    Mike Frysinger <vapier@gentoo.org>
+	    Mike Frysinger  <vapier@gentoo.org>
 
 	* scripts/Makefile.am: Modify PATH during make check to include
 	build directories containing dpkg and the scripts dpkg-*.
@@ -26,7 +135,6 @@
 	* debian/rules: Remove hack to copy data files
 	to build directory.
 
-
 2008-02-17  Frank Lichtenheld  <djpig@debian.org>
 	    Matthias Klose  <doko@cs.tu-berlin.de>
 

+ 1 - 0
THANKS

@@ -145,6 +145,7 @@ SZERVÁC Attila <sas@321.hu>
 Samuel Thibault <samuel.thibault@ens-lyon.org>
 Scott Barker <scott@mostlylinux.ab.ca>
 Scott James Remnant <scott@netsplit.com>
+Sean Finney <seanius@seanius.net>
 Sergio Gelato <Sergio.Gelato@astro.su.se>
 Stefano Canepa <sc@linux.it>
 Stepan Golosunov <stepan@golosunov.pp.ru>

+ 32 - 4
debian/changelog

@@ -17,6 +17,14 @@ dpkg (1.14.17) UNRELEASED; urgency=low
   * Change dpkg-gencontrol to not output the Homapage field on udeb.
   * Reintroduce 'no-debsig' back in dpkg.cfg to avoid failing to install any
     package when debsig-verify is installed. Closes: #311843
+  * Fix some small memory leaks. Closes: #469520
+    Thanks to Sean Finney.
+  * Correct broken dselect logic for self-conflicting packages.
+    Thanks to Ian Jackson.
+  * Implement 'Breaks' properly in dselect. Closes: #448946
+    Thanks to Ian Jackson.
+  * Fix erroneous description of Breaks in dselect output.
+    Thanks to Ian Jackson.
 
   [ Raphael Hertzog ]
   * Add a warning displayed by dpkg-genchanges if the current version is
@@ -33,8 +41,9 @@ dpkg (1.14.17) UNRELEASED; urgency=low
     about.
   * Handle the case when the library has a different SONAME than the one used
     to find it. Closes: #462413
-  * Fix Dpkg::Version to import _g() from Dpkg::Gettext. Thanks to Adam Heath
-    for spotting this. Closes: #465651
+  * Fix Dpkg::Version and Dpkg::Fields::Object to import _g() from
+    Dpkg::Gettext. Thanks to Adam Heath and Olivier Berger for spotting
+    this. Closes: #465651
   * Change PATH during make check to look into build directories containing
     dpkg and the related scripts. Thanks to Mike Frysinger. Closes: #466957
   * Some lintian cleanup:
@@ -46,6 +55,15 @@ dpkg (1.14.17) UNRELEASED; urgency=low
     concerns upgrading from dpkg version older than the one in oldstable
     already. And thus we get rid of old the last usage of read in those
     scripts (fixes lintian's warning read-in-maintainer-script).
+  * Removed sorting of dependencies in dpkg-gencontrol and dpkg-source. But
+    kept it for all other fields (Enhances, Conflicts, Replaces, Breaks,
+    Build-Conflicts and Build-Conflicts-Indep).
+  * Instead changed dpkg-shlibdeps to sort the dependencies generated in
+    ${shlibs:*} variables.
+  * Changed the logic of simplification of dependencies: if any dependency
+    must be discarded due to another dependency appearing further
+    in the field, the superseding dependency will take the place of the
+    discarded one. Added a test case for this.
 
   [ Frank Lichtenheld ]
   * Add a warning in dpkg-buildpackage if the build-dependencies are not
@@ -60,15 +78,25 @@ dpkg (1.14.17) UNRELEASED; urgency=low
     .changes files. Information will be available in Checksums-Sha{1,256}
     fields. .changes format version increased to 1.8.
   * Link dselect against libncursesw. Closes: #466321
+  * Forward port a patch from the old changelog parser to the new
+    one that got lost during the transition. '+' and '.' can now
+    be used in distribution names yet again. Reported by dann frazier.
+    Closes: #467470
 
   [ Updated dpkg translations ]
   * Korean (Changwoo Ryu).
   * Polish (Robert Luberda).
   * Romanian (Eddy Petrișor).
+  * Swedish (Peter Karlsson).
+  * Thai (Theppitak Karoonboonyanan). Closes: 468916
 
   [ Updated manpages translations ]
   * German (Helge Kreutzmann).
   * Polish (Robert Luberda).
+  * Swedish (Peter Karlsson).
+
+  [ Updated dselect translations ]
+  * Basque. (Piarres beobide). Closes: #462403
 
   [ Updated scripts translations ]
   * German (Helge Kreutzmann).
@@ -79,7 +107,7 @@ dpkg (1.14.17) UNRELEASED; urgency=low
   * Polish (Robert Luberda).
   * Romanian (Eddy Petrișor).
 
- -- Eddy Petrișor <eddy.petrisor@gmail.com>  Sat, 09 Feb 2008 13:22:38 +0200
+ -- Frank Lichtenheld <djpig@debian.org>  Fri, 29 Feb 2008 18:34:54 +0100
 
 dpkg (1.14.16.6) unstable; urgency=medium
 
@@ -600,7 +628,7 @@ dpkg (1.14.7) unstable; urgency=low
   * German (Sven Joachim). Closes: #440537
   * Nepali (Shiva Prasad Pokharel). Closes: #437825
   * Portuguese (Miguel Figueiredo). Closes: #441113
-  * Romanian (Eddy Petri?or).
+  * Romanian (Eddy Petrișor).
   * Vietnamese (Clytie Siddall). Closes: #440502
   * Korean (Sunjae Park). Closes: #443190
 

+ 6 - 11
dpkg-deb/main.c

@@ -42,7 +42,9 @@
 
 const char* showformat	= "${Package}\t${Version}\n";
 
-static void printversion(void) {
+void
+printversion(void)
+{
   if (printf(_("Debian `%s' package archive backend version %s.\n"),
 	     BACKEND, DPKG_VERSION_ARCH) < 0) werr("stdout");
   if (printf(_("This is free software; see the GNU General Public License version 2 or\n"
@@ -51,7 +53,9 @@ static void printversion(void) {
 	     BACKEND) < 0) werr("stdout");
 }
 
-static void usage(void) {
+void
+usage(void)
+{
   if (printf(_(
 "Usage: %s [<option> ...] <command>\n"
 "\n"), BACKEND) < 0) werr("stdout");
@@ -121,15 +125,6 @@ enum compress_type compress_type = compress_type_gzip;
 const struct cmdinfo *cipaction = NULL;
 dofunction *action = NULL;
 
-static void helponly(const struct cmdinfo *cip, const char *value) NONRETURNING;
-static void helponly(const struct cmdinfo *cip, const char *value) {
-  usage(); exit(0);
-}
-static void versiononly(const struct cmdinfo *cip, const char *value) NONRETURNING;
-static void versiononly(const struct cmdinfo *cip, const char *value) {
-  printversion(); exit(0);
-}
-
 static void setaction(const struct cmdinfo *cip, const char *value);
 static void setcompresstype(const struct cmdinfo *cip, const char *value);
 

+ 6 - 11
dpkg-split/main.c

@@ -34,7 +34,9 @@
 
 #include "dpkg-split.h"
 
-static void printversion(void) {
+void
+printversion(void)
+{
   if (printf(_("Debian `%s' package split/join tool; version %s.\n"),
 	     SPLITTER, DPKG_VERSION_ARCH) < 0) werr ("stdout");
   if (printf(_("Copyright (C) 1994-1996 Ian Jackson.\n")) < 0) werr ("stdout");
@@ -44,7 +46,9 @@ static void printversion(void) {
 	     SPLITTER) < 0) werr("stdout");
 }
 
-static void usage(void) {
+void
+usage(void)
+{
   if (printf(_(
 "Usage: %s [<option> ...] <command>\n"
 "\n"), SPLITTER) < 0) werr("stdout");
@@ -96,15 +100,6 @@ void rerreof(FILE *f, const char *fn) {
   ohshit(_("unexpected end of file in %.250s"),fn);
 }
 
-static void helponly(const struct cmdinfo *cip, const char *value) NONRETURNING;
-static void helponly(const struct cmdinfo *cip, const char *value) {
-  usage(); exit(0);
-}
-static void versiononly(const struct cmdinfo *cip, const char *value) NONRETURNING;
-static void versiononly(const struct cmdinfo *cip, const char *value) {
-  printversion(); exit(0);
-}
-
 static void setaction(const struct cmdinfo *cip, const char *value);
 
 static void setpartsize(const struct cmdinfo *cip, const char *value) {

+ 6 - 11
dselect/main.cc

@@ -155,14 +155,18 @@ static const char licensestring[]= N_(
       "later for copying conditions. There is NO warranty.\n"
       "See %s --license for copyright and license details.\n");
 
-static void printversion(void) {
+void
+printversion(void)
+{
   if (printf(gettext(programdesc), DSELECT, DPKG_VERSION_ARCH) < 0)
     werr("stdout");
   if (printf(gettext(copyrightstring)) < 0) werr("stdout");
   if (printf(gettext(licensestring), DSELECT) < 0) werr("stdout");
 }
 
-static void usage(void) {
+void
+usage(void)
+{
   int i;
   if (printf(_(
 "Usage: %s [<option> ...] [<action> ...]\n"
@@ -207,15 +211,6 @@ static void usage(void) {
 /* These are called by C code, so need to have C calling convention */
 extern "C" {
 
-  static void helponly(const struct cmdinfo*, const char*) NONRETURNING;
-  static void helponly(const struct cmdinfo*, const char*) {
-    usage(); exit(0);
-  }
-  static void versiononly(const struct cmdinfo*, const char*) NONRETURNING;
-  static void versiononly(const struct cmdinfo*, const char*) {
-    printversion(); exit(0);
-  }
-
   static void setdebug(const struct cmdinfo*, const char *v) {
     debug= fopen(v,"a");
     if (!debug) ohshite(_("couldn't open debug file `%.255s'\n"),v);

+ 6 - 3
dselect/pkgdepcon.cc

@@ -221,7 +221,6 @@ int packagelist::resolvedepcon(dependency *depends) {
 
   case dep_provides:
   case dep_replaces:
-  case dep_breaks: /* FIXME: implement Breaks */
     return 0;
 
   case dep_enhances:
@@ -312,6 +311,7 @@ int packagelist::resolvedepcon(dependency *depends) {
     return r ? 2 : 0;
     
   case dep_conflicts:
+  case dep_breaks:
 
     if (depdebug && debug)
       fprintf(debug,"packagelist[%p]::resolvedepcon([%p]): conflict\n",
@@ -353,6 +353,8 @@ int packagelist::resolvedepcon(dependency *depends) {
 }
 
 int packagelist::deppossatisfied(deppossi *possi, perpackagestate **fixbyupgrade) {
+  // `satisfied' here for Conflicts and Breaks means that the
+  //  restriction is violated ie that the target package is wanted
   int would;
   pkginfo::pkgwant want= pkginfo::want_purge;
   
@@ -363,8 +365,9 @@ int packagelist::deppossatisfied(deppossi *possi, perpackagestate **fixbyupgrade
     would= 0;
   }
   
-  if (!(possi->up->type == dep_conflicts && possi->up->up == possi->ed) &&
-      possi->up->type == dep_conflicts ? (would != 0) : (would > 0)) {
+  if ((possi->up->type == dep_conflicts || possi->up->type == dep_breaks)
+      ? possi->up->up != possi->ed && would != 0
+      : would > 0) {
     // If it's to be installed or left installed, then either it's of
     // the right version, and therefore OK, or a version must have
     // been specified, in which case we don't need to look at the rest

+ 1 - 1
dselect/pkgdisplay.cc

@@ -72,7 +72,7 @@ const char
 			    N_("recommends"),
 			    N_("depends on"),
 			    N_("pre-depends on"),
-			    N_("breaks with"),
+			    N_("breaks"),
 			    N_("conflicts with"),
 			    N_("provides"),
 			    N_("replaces"),

+ 5 - 0
dselect/po/ChangeLog

@@ -1,3 +1,8 @@
+2008-03-10  Robert Luberda <robert@debian.org>
+
+	* pl.po: Consistently use Polish quotation marks in translations.
+	* pl.po: Updated to 286t (after locally re-generating the pot file).
+
 2008-02-24  Robert Luberda <robert@debian.org>
 
 	* pl.po: Recoded to UTF-8.

+ 68 - 67
dselect/po/pl.po

@@ -6,10 +6,10 @@
 msgid ""
 msgstr "Project-Id-Version: dpkg 1.14.17\n"
 "Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
-"POT-Creation-Date: 2008-02-24 14:21+0100\n"
-"PO-Revision-Date: 2008-02-24 14:28+0100\n"
+"POT-Creation-Date: 2008-03-10 20:58+0100\n"
+"PO-Revision-Date: 2008-03-10 20:59+0100\n"
 "Last-Translator: Robert Luberda <robert@debian.org>\n"
-"Language-Team: Polish <pddp@debian.linux.org.pl>\n"
+"Language-Team: Polish <debian-l10n-polish@lists.debian.org>\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 ||"
 " n%100>=20) ? 1 : 2;\n"
@@ -43,8 +43,8 @@ msgid ""
 "Press a key from the list above, <space> or `q' to exit help,\n"
 "  or `.' (full stop) to read each help page in turn. "
 msgstr ""
-"Wybierz klawisz z powyższej listy, <spację> lub `q', by opuścić \n"
-"pomoc lub `.' (kropkę), by przeglądać po kolei strony pomocy. "
+"Wybierz klawisz z powyższej listy, <spację> lub \"q\", by opuścić \n"
+"pomoc, lub \".\" (kropkę), by przeglądać po kolei strony pomocy. "
 
 #: dselect/basecmds.cc:198
 msgid "error reading keyboard in help"
@@ -400,11 +400,11 @@ msgstr ""
 "\n"
 "Ukaże się lista pakietów, które są już zainstalowane lub można je dopiero\n"
 "zainstalować. Po liście można się poruszać klawiszami kursora. Klawiszem\n"
-"`+' możesz zaznaczyć pakiet do instalacji, klawiszem `-' do usunięcia.\n"
+"\"+\" możesz zaznaczyć pakiet do instalacji, klawiszem \"-\" do usunięcia.\n"
 "\n"
 "Pakiety mogą być zaznaczane pojedynczo lub grupami. Początkowo kursor "
 "znajduje\n"
-"się na pozycji `Wszystkie pakiety'. Klawisze `+', `-' spowodują zmianę "
+"się na pozycji \"Wszystkie pakiety\". Klawisze \"+\", \"-\" spowodują zmianę "
 "stanu\n"
 "dla wszystkich pakietów z danej grupy.\n"
 "\n"
@@ -413,10 +413,11 @@ msgstr ""
 "lista pakietów, których dotyczy dany problem, który należy rozwiązać.\n"
 "\n"
 "Powinieneś/aś przeczytać listę klawiszy oraz opis ekranu.\n"
-"Wiele pomocy można uzyskać naciskając `?' w każdym momencie.\n"
+"Wiele pomocy można uzyskać naciskając \"?\" w każdym momencie.\n"
 "\n"
 "Jeżeli wybór pakietów został dokonany, należy wcisnąć <enter> dla\n"
-" potwierdzenia zmian lub `X', by wyjść bez ich zapisania. Zostanie dokonane\n"
+" potwierdzenia zmian lub \"X\", by wyjść bez ich zapisania. Zostanie "
+"dokonane\n"
 " ostateczne sprawdzenie konfliktów i zależności - tu też może pojawić się\n"
 " lista pakietów.\n"
 "\n"
@@ -449,16 +450,16 @@ msgstr ""
 "Witaj w głównym ekranie wyboru pakietów dselecta.\n"
 "\n"
 "Ukaże się lista pakietów, które są już zainstalowane lub można je dopiero\n"
-"zainstalować. Ponieważ nie posiadasz odpowiednich uprawnień do "
+"zainstalować. Ponieważ nie masz odpowiednich uprawnień do "
 "aktualizacji,\n"
 "znajdujesz się w trybie tylko do odczytu. Po tej liście można się\n"
 "poruszać klawiszami kursora (proszę przeczytać ekran pomocy z opisem\n"
 "klawiszy), obserwować stan pakietów oraz czytać informacje o nich.\n"
 "\n"
 "Proszę przeczytać listę klawiszy oraz wyjaśnienie wyświetlanych informacji.\n"
-"Wiele pomocy można uzyskać naciskając `?' w każdym momencie.\n"
+"Wiele pomocy można uzyskać naciskając \"?\" w każdym momencie.\n"
 "\n"
-"Po zakończonym przeglądaniu listy pakietów, wciśnij `Q' lub <enter>.\n"
+"Po zakończonym przeglądaniu listy pakietów, wciśnij \"Q\" lub <enter>.\n"
 "\n"
 "Wciśnij <spację>, aby opuścić ekran pomocy i przejść do listy pakietów.\n"
 
@@ -509,25 +510,25 @@ msgstr ""
 "\n"
 "Ukaże się lista zawierająca problematyczne pakiety. Okno poniżej listy "
 "pakietów\n"
-"pokazuje rodzaj konfliktu i zależności; można użyć klawisza `i' do "
+"pokazuje rodzaj konfliktu i zależności; można użyć klawisza \"i\" do "
 "przełączania\n"
 "się pomiędzy tą informacją a opisem pakietu.\n"
 "\n"
-"Został przygotowany zestaw pakietów `sugerowanych' wraz ze wstępnymi\n"
+"Został przygotowany zestaw pakietów \"sugerowanych\" wraz ze wstępnymi\n"
 "ustawieniami dotyczącymi ich instalacji, więc jeśli chcesz możesz je\n"
 "zaakceptować naciskając <enter>. Możesz anulować problematyczne zmiany\n"
-"naciskając `X', a tym samym powracając do głównej listy.\n"
+"naciskając \"X\", a tym samym powracając do głównej listy.\n"
 "\n"
 "Możesz również poruszać się po liście i zmieniać ustawienia tak, by\n"
 "dostosować je do swoich potrzeb lub odrzucić moje sugestie używając\n"
-"wielkich liter `D' lub `R' (zobacz opis klawiszy). Używając klawisza\n"
-"`Q', możesz zmusić mnie do zaakceptowania aktualnie przedstawionej "
+"wielkich liter \"D\" lub \"R\" (zobacz opis klawiszy). Używając klawisza\n"
+"\"Q\", możesz zmusić mnie do zaakceptowania aktualnie przedstawionej "
 "sytuacji,\n"
 "w przypadku gdybyś chciał zmienić moje zalecenia lub gdybyś myślał, że\n"
 "popełniłem błąd.\n"
 "\n"
 "Wciśnij <spację>, aby opuścić ekran pomocy i przejść do listy pakietów; "
-"pamiętaj - wciśnij `?', aby przywołać ten ekran.\n"
+"pamiętaj - wciśnij \"?\", aby przywołać ten ekran.\n"
 
 #: dselect/helpmsgs.cc:121
 msgid "Display, part 1: package listing and status chars"
@@ -568,28 +569,28 @@ msgstr ""
 "wyświetlane\n"
 "są cztery kolumny oznaczające aktualny jego stan w systemie. W trybie "
 "domyślnym\n"
-"(klawisz `v' przełącza na tryb szczegółowy) są to cztery znaki, wymieniając "
-"od\n"
+"(klawisz \"v\" przełącza na tryb szczegółowy) są to cztery znaki, "
+"wymieniając od\n"
 "lewej strony:\n"
 "\n"
 " Flaga błędu: Spacja - brak błędu (ale pakiet może być w nieprawidłowym "
 "stanie)\n"
-"                `R'  - poważny błąd podczas instalacji - konieczna "
+"                \"R\"  - poważny błąd podczas instalacji - konieczna "
 "reinstalacja\n"
 " Stan zainstalowania:  Spacja - nie zainstalowany\n"
-"                         `*'  - zainstalowany\n"
-"                         `-'  - nie zainstalowany, zostały pliki "
+"                         \"*\"  - zainstalowany\n"
+"                         \"-\"  - nie zainstalowany, zostały pliki "
 "konfiguracyjne\n"
-" tak oznaczone pakiety { `U'  - rozpakowany, jeszcze nie skonfigurowany\n"
-"   są w nieprawidłowym { `C'  - wpół-skonfigurowany (wystąpił błąd)\n"
-"                stanie { `I'  - wpół-zainstalowany (wystąpił błąd).\n"
+" tak oznaczone pakiety { \"U\"  - rozpakowany, jeszcze nie skonfigurowany\n"
+"   są w nieprawidłowym { \"C\"  - wpół-skonfigurowany (wystąpił błąd)\n"
+"                stanie { \"I\"  - wpół-zainstalowany (wystąpił błąd).\n"
 " Poprzedni wybór: to, co zostało wybrane przed pojawieniem się tej listy;\n"
 " Znak: to, co zostało określone dla danego pakietu:\n"
-"  `*': zaznaczony do instalacji lub aktualizacji\n"
-"  `-': zaznaczony do usunięcia, pliki konfiguracyjne zostaną zachowane\n"
-"  `=': wstrzymany; pakiet nie będzie przetwarzany\n"
-"  `_': zaznaczony do wyczyszczenia - wraz z plikami konfiguracyjnymi\n"
-"  `n': nowy pakiet, jeszcze nie zaznaczony do instalacji/usunięcia\n"
+"  \"*\": zaznaczony do instalacji lub aktualizacji\n"
+"  \"-\": zaznaczony do usunięcia, pliki konfiguracyjne zostaną zachowane\n"
+"  \"=\": wstrzymany; pakiet nie będzie przetwarzany\n"
+"  \"_\": zaznaczony do wyczyszczenia - wraz z plikami konfiguracyjnymi\n"
+"  \"n\": nowy pakiet, jeszcze nie zaznaczony do instalacji/usunięcia\n"
 "\n"
 "Ponadto każdy pakiet ma wyświetloną informację o priorytecie, sekcji, "
 "nazwie,\n"
@@ -627,7 +628,7 @@ msgid ""
 "  information display or expand it to use almost all of the screen.\n"
 msgstr ""
 "* Podświetlenie: Jedna z linii jest podświetlona. Określa ona pakiet(y),\n"
-"  którego(ych) stan zostanie zmieniony po wciśnięciu `+', '-' i `_'.\n"
+"  którego(ych) stan zostanie zmieniony po wciśnięciu \"+\", \"-\" i \"_\".\n"
 "\n"
 "* Pasek na środku ekranu wyświetla informacje o stanie pakietu, który "
 "został\n"
@@ -635,7 +636,7 @@ msgstr ""
 "  zostanie wskazana. Jeżeli nie rozumiesz znaczenia poszczególnych znaków\n"
 "  oznaczających stan pakietu, pełny opis stanu znajduje się na tym pasku "
 "(można\n"
-"  także skorzystać z klawisza `v' przełączającego listę na tryb "
+"  także skorzystać z klawisza \"v\" przełączającego listę na tryb "
 "szczegółowy).\n"
 "\n"
 "* Na dole ekranu wyświetlane są szczegółowe informacje o wskazanym kursorem\n"
@@ -646,8 +647,8 @@ msgstr ""
 "  problemach z zależnościami danego pakietu (dla listy konfliktów/"
 "zależności).\n"
 "\n"
-"  Klawiszem `i' można wybrać rodzaj wyświetlanej informacji, a klawiszem "
-"`I'\n"
+"  Klawiszem \"i\" można wybrać rodzaj wyświetlanej informacji, a klawiszem "
+"\"I\"\n"
 "  można ukryć to okno lub je rozszerzyć na większą część ekranu.\n"
 
 #: dselect/helpmsgs.cc:171
@@ -688,12 +689,12 @@ msgstr ""
 "\n"
 "Po przesunięciu kursora na daną metodę, na dole ekranu pojawi się jej opis.\n"
 "\n"
-"Klawisz `x' służy do opuszczenia tej listy bez określenia metody "
+"Klawisz \"x\" służy do opuszczenia tej listy bez określenia metody "
 "instalacji.\n"
 "\n"
-"Pełny spis klawiszy dostępny jest po wciśnięciu klawisza `k' teraz, lub z "
+"Pełny spis klawiszy dostępny jest po wciśnięciu klawisza \"k\" teraz, lub z "
 "menu\n"
-"pomocy dostępnego później pod klawiszem `?'.\n"
+"pomocy dostępnego później pod klawiszem \"?\".\n"
 
 #: dselect/helpmsgs.cc:191
 msgid "Keystrokes for method selection"
@@ -844,7 +845,7 @@ msgstr "menu"
 #: dselect/main.cc:147
 #, c-format
 msgid "Debian `%s' package handling frontend version %s.\n"
-msgstr "Debian `%s', nakładka na program zarządzania pakietami, wersja %s.\n"
+msgstr "Debian \"%s\", nakładka na program zarządzania pakietami, wersja %s.\n"
 
 #: dselect/main.cc:150
 msgid ""
@@ -937,12 +938,12 @@ msgstr "Atrybuty:\n"
 #: dselect/main.cc:221
 #, c-format
 msgid "couldn't open debug file `%.255s'\n"
-msgstr "nie można otworzyć pliku debuggera `%.255s'\n"
+msgstr "nie można otworzyć pliku debuggera \"%.255s\"\n"
 
 #: dselect/main.cc:236
 #, c-format
 msgid "Invalid %s `%s'\n"
-msgstr "Nieprawidłowy %s `%s'\n"
+msgstr "Nieprawidłowy %s \"%s\"\n"
 
 #: dselect/main.cc:253
 msgid "screen part"
@@ -1007,12 +1008,12 @@ msgstr ""
 
 #: dselect/main.cc:433
 msgid "failed to getch in main menu"
-msgstr "nie można wywołać `getch' w głównym menu"
+msgstr "nie można wywołać \"getch\" w głównym menu"
 
 #: dselect/main.cc:506
 #, c-format
 msgid "unknown action string `%.50s'"
-msgstr "nieznane działanie `%.50s'"
+msgstr "nieznane działanie \"%.50s\""
 
 #: dselect/methlist.cc:78
 msgid "dselect - list of access methods"
@@ -1021,7 +1022,7 @@ msgstr "dselect - lista metod dostępu"
 #: dselect/methlist.cc:87
 #, c-format
 msgid "Access method `%s'."
-msgstr "Metoda dostępu `%s'."
+msgstr "Metoda dostępu \"%s\"."
 
 #: dselect/methlist.cc:121
 msgid "Abbrev."
@@ -1033,7 +1034,7 @@ msgstr "Opis"
 
 #: dselect/methlist.cc:166
 msgid "doupdate failed"
-msgstr "nie można wykonać funkcji `doupdate'"
+msgstr "nie można wykonać funkcji \"doupdate\""
 
 #: dselect/methlist.cc:168
 msgid "failed to unblock SIGWINCH"
@@ -1045,9 +1046,9 @@ msgstr "nie można przeblokować SIGWINCH"
 
 #: dselect/methlist.cc:173
 msgid "getch failed"
-msgstr "nie można wykonać funkcji `getch'"
+msgstr "nie można wykonać funkcji \"getch\""
 
-#: dselect/methlist.cc:177 dselect/pkgdepcon.cc:243
+#: dselect/methlist.cc:177 dselect/pkgdepcon.cc:242
 msgid "[none]"
 msgstr "[brak]"
 
@@ -1091,12 +1092,12 @@ msgstr "nie można zignorować sygnału %d przed wykonaniem %.250s"
 #: dselect/method.cc:169
 #, c-format
 msgid "unable to run %.250s process `%.250s'"
-msgstr "nie można uruchomić procesu %.250s `%.250s'"
+msgstr "nie można uruchomić procesu %.250s \"%.250s\""
 
 #: dselect/method.cc:173
 #, c-format
 msgid "unable to wait for %.250s"
-msgstr "nie można wykonać funkcji `wait' dla `%.250s'"
+msgstr "nie można wykonać funkcji \"wait\" dla \"%.250s\""
 
 #: dselect/method.cc:175
 #, c-format
@@ -1127,7 +1128,7 @@ msgstr "(Pozostawił plik core.)\n"
 #: dselect/method.cc:197
 #, c-format
 msgid "failed with an unknown wait return code %d.\n"
-msgstr "funkcja `wait' zwróciła nierozpoznany kod błędu %d.\n"
+msgstr "funkcja \"wait\" zwróciła nierozpoznany kod błędu %d.\n"
 
 #: dselect/method.cc:199
 #, c-format
@@ -1157,32 +1158,32 @@ msgstr "skrypt zapytania/ustawiania"
 #: dselect/methparse.cc:53
 #, c-format
 msgid "syntax error in method options file `%.250s' -- %s"
-msgstr "błąd składni w pliku opcji metody `%.250s' -- %s"
+msgstr "błąd składni w pliku opcji metody \"%.250s\" -- %s"
 
 #: dselect/methparse.cc:58
 #, c-format
 msgid "error reading options file `%.250s'"
-msgstr "nie można odczytać pliku opcji `%.250s'"
+msgstr "nie można odczytać pliku opcji \"%.250s\""
 
 #: dselect/methparse.cc:86
 #, c-format
 msgid "unable to read `%.250s' directory for reading methods"
-msgstr "nie można odczytać katalogu `%.250s' do odczytu metod"
+msgstr "nie można odczytać katalogu \"%.250s\" do odczytu metod"
 
 #: dselect/methparse.cc:100
 #, c-format
 msgid "method `%.250s' has name that is too long (%d > %d characters)"
-msgstr "metoda `%.250s' ma za długą nazwę (%d > %d znaków)"
+msgstr "metoda \"%.250s\" ma za długą nazwę (%d > %d znaków)"
 
 #: dselect/methparse.cc:111
 #, c-format
 msgid "unable to access method script `%.250s'"
-msgstr "nie można odczytać skryptu opcji metody `%.250s'"
+msgstr "nie można odczytać skryptu opcji metody \"%.250s\""
 
 #: dselect/methparse.cc:117
 #, c-format
 msgid "unable to read method options file `%.250s'"
-msgstr "nie można odczytać pliku opcji metody `%.250s'"
+msgstr "nie można odczytać pliku opcji metody \"%.250s\""
 
 #: dselect/methparse.cc:140
 msgid "non-digit where digit wanted"
@@ -1231,7 +1232,7 @@ msgstr "EOF w podsumowaniu - brak znaku nowej linii"
 #: dselect/methparse.cc:183
 #, c-format
 msgid "unable to open option description file `%.250s'"
-msgstr "nie można otworzyć pliku opisu opcji `%.250s'"
+msgstr "nie można otworzyć pliku opisu opcji \"%.250s\""
 
 #: dselect/methparse.cc:187
 #, c-format
@@ -1256,27 +1257,27 @@ msgstr "nie można odczytać pliku opcji metody %.250s"
 #: dselect/methparse.cc:246
 #, c-format
 msgid "unable to open current option file `%.250s'"
-msgstr "nie można otworzyć pliku bieżącej opcji `%.250s'"
+msgstr "nie można otworzyć pliku bieżącej opcji \"%.250s\""
 
 #: dselect/methparse.cc:284
 #, c-format
 msgid "unable to open new option file `%.250s'"
-msgstr "nie można otworzyć pliku nowej opcji `%.250s'"
+msgstr "nie można otworzyć pliku nowej opcji \"%.250s\""
 
 #: dselect/methparse.cc:287
 #, c-format
 msgid "unable to write new option to `%.250s'"
-msgstr "nie można zapisać nowej opcji w `%.250s'"
+msgstr "nie można zapisać nowej opcji w \"%.250s\""
 
 #: dselect/methparse.cc:290
 #, c-format
 msgid "unable to close new option file `%.250s'"
-msgstr "nie można zamknąć pliku nowej opcji `%.250s'"
+msgstr "nie można zamknąć pliku nowej opcji \"%.250s\""
 
 #: dselect/methparse.cc:292
 #, c-format
 msgid "unable to install new option as `%.250s'"
-msgstr "nie można zainstalować nowej opcji jako `%.250s'"
+msgstr "nie można zainstalować nowej opcji jako \"%.250s\""
 
 #: dselect/pkgdepcon.cc:215
 msgid "(no clientdata)"
@@ -1387,7 +1388,7 @@ msgid "pre-depends on"
 msgstr "zależy-przed od"
 
 #: dselect/pkgdisplay.cc:75
-msgid "breaks with"
+msgid "breaks"
 msgstr "psuje"
 
 #: dselect/pkgdisplay.cc:76
@@ -1572,7 +1573,7 @@ msgstr " wybór:+/=/- ogólnie:v pomoc:?"
 
 #: dselect/pkgdisplay.cc:262
 msgid " mark:+/=/- verbose:v help:?"
-msgstr " wybór:+/=/- szczegóły:v pomoc:?"
+msgstr " wybór:+/=/- szczegółowo:v pomoc:?"
 
 #: dselect/pkgdisplay.cc:263
 msgid " terse:v help:?"
@@ -1580,7 +1581,7 @@ msgstr " ogólnie:v pomoc:?"
 
 #: dselect/pkgdisplay.cc:264
 msgid " verbose:v help:?"
-msgstr " szczegóły:v pomoc:?"
+msgstr " szczegółowo:v pomoc:?"
 
 #: dselect/pkginfo.cc:82
 msgid ""
@@ -1599,8 +1600,8 @@ msgstr ""
 "\n"
 "Można przesunąć kursor, aby wybrać konkretny pakiet oraz uzyskać informacje "
 "o nim.\n"
-"Można użyć `o' lub `O', aby zmienić kolejność uporządkowania pakietów lub "
-"zaznaczyć pakiety z innych grup."
+"Można użyć \"o\" lub \"O\", aby zmienić kolejność uporządkowania pakietów "
+"lub zaznaczyć pakiety z innych grup."
 
 #: dselect/pkginfo.cc:95
 msgid "Interrelationships"

File diff suppressed because it is too large
+ 286 - 286
dselect/po/sv.po


+ 2 - 1
lib/Makefile.am

@@ -12,6 +12,7 @@ INCLUDES = \
 noinst_LIBRARIES = libdpkg.a
 
 libdpkg_a_SOURCES = \
+	dpkg-def.h \
 	dpkg.h \
 	dpkg-db.h \
 	compat.c \
@@ -26,11 +27,11 @@ libdpkg_a_SOURCES = \
 	md5.c md5.h \
 	mlib.c \
 	myopt.c myopt.h \
+	myopt-util.c \
 	nfmalloc.c \
 	parse.c \
 	parsehelp.c \
 	parsedump.h \
-	showcright.c \
 	showpkg.c \
 	tarfn.c tarfn.h \
 	utils.c \

+ 39 - 0
lib/dpkg-def.h

@@ -0,0 +1,39 @@
+/*
+ * libdpkg - Debian packaging suite library routines
+ * dpkg-def.h - C language support definitions
+ *
+ * Copyright (C) 1994,1995 Ian Jackson <ian@chiark.greenend.org.uk>
+ *
+ * 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.
+ */
+
+#ifndef DPKG_DEF_H
+#define DPKG_DEF_H
+
+#include <config.h>
+
+#if HAVE_C_ATTRIBUTE
+# define CONSTANT __attribute__((constant))
+# define PRINTFFORMAT(si, tc) __attribute__((format(printf,si,tc)))
+# define NONRETURNING __attribute__((noreturn))
+# define UNUSED __attribute__((unused))
+#else
+# define CONSTANT
+# define PRINTFFORMAT(si, tc)
+# define NONRETURNING
+# define UNUSED
+#endif
+
+#endif

+ 5 - 17
lib/dpkg.h

@@ -30,6 +30,8 @@
 
 #include <myopt.h>
 
+#include <dpkg-def.h>
+
 #ifdef HAVE_SYS_CDEFS_H
 #include <sys/cdefs.h>
 #endif
@@ -154,18 +156,6 @@
 extern const char thisname[]; /* defined separately in each program */
 extern const char printforhelp[];
 
-#if HAVE_C_ATTRIBUTE
-# define CONSTANT __attribute__((constant))
-# define PRINTFFORMAT(si, tc) __attribute__((format(printf,si,tc)))
-# define NONRETURNING __attribute__((noreturn))
-# define UNUSED __attribute__((unused))
-#else
-# define CONSTANT
-# define PRINTFFORMAT(si, tc)
-# define NONRETURNING
-# define UNUSED
-#endif
-
 /*** from startup.c ***/
 
 #define standard_startup(ejbuf, argc, argv, prog, loadcfg, cmdinfos) do {\
@@ -361,16 +351,14 @@ off_t buffer_copy(buffer_data_t read_data, buffer_data_t write_data, off_t limit
 
 extern volatile int onerr_abort;
 
-/*** from showcright.c ***/
-
-struct cmdinfo;
-void showcopyright(const struct cmdinfo*, const char*);
-
 /*** from utils.c ***/
 
 int cisdigit(int c);
 int cisalpha(int c);
 
+int fgets_checked(char *buf, size_t bufsz, FILE *f, const char *fn);
+int fgets_must(char *buf, size_t bufsz, FILE *f, const char *fn);
+
 /*** from compression.c ***/
 
 enum compress_type {

+ 2 - 0
lib/dump.c

@@ -325,4 +325,6 @@ void writedb(const char *filename, int available, int mustsync) {
   if (rename(newfn,filename))
     ohshite(_("failed to install `%.250s' as `%.250s' containing %s info"),
             newfn, filename, which);
+  free(newfn);
+  free(oldfn);
 }

+ 26 - 9
lib/showcright.c

@@ -1,6 +1,6 @@
 /*
  * libdpkg - Debian packaging suite library routines
- * showcright.c - show copyright file routine
+ * myopt-util.c - command line option utilities
  *
  * Copyright (C) 1994,1995 Ian Jackson <ian@chiark.greenend.org.uk>
  *
@@ -26,12 +26,29 @@
 
 #include <dpkg.h>
 
-void showcopyright(const struct cmdinfo *c, const char *v) NONRETURNING;
-void showcopyright(const struct cmdinfo *c, const char *v) {
-  int fd;
-  fd= open(COPYINGFILE,O_RDONLY);
-  if (fd < 0)
-    ohshite(_("cannot open GPL file"));
-  fd_fd_copy(fd, 1, -1, "showcopyright");
-  exit(0);
+void
+helponly(const struct cmdinfo *cip, const char *value)
+{
+	usage();
+	exit(0);
 }
+
+void
+versiononly(const struct cmdinfo *cip, const char *value)
+{
+	printversion();
+	exit(0);
+}
+
+void
+showcopyright(const struct cmdinfo *cip, const char *value)
+{
+	int fd;
+
+	fd = open(COPYINGFILE, O_RDONLY);
+	if (fd < 0)
+		ohshite(_("cannot open GPL file"));
+	fd_fd_copy(fd, 1, -1, "showcopyright");
+	exit(0);
+}
+

+ 12 - 0
lib/myopt.h

@@ -22,6 +22,8 @@
 #ifndef MYOPT_H
 #define MYOPT_H
 
+#include <dpkg-def.h>
+
 typedef void (*voidfnp)(void);
 
 struct cmdinfo {
@@ -39,4 +41,14 @@ struct cmdinfo {
 void myfileopt(const char* fn, const struct cmdinfo* cmdinfos);
 void myopt(const char *const **argvp, const struct cmdinfo *cmdinfos);
 void loadcfgfile(const char *prog, const struct cmdinfo *cmdinfos);
+
+/* Utility functions. */
+void showcopyright(const struct cmdinfo *cip, const char *value) NONRETURNING;
+void helponly(const struct cmdinfo *cip, const char *value) NONRETURNING;
+void versiononly(const struct cmdinfo *cip, const char *value) NONRETURNING;
+
+/* To be defined by callers. */
+void usage(void);
+void printversion(void);
+
 #endif /* MYOPT_H */

+ 33 - 0
lib/utils.c

@@ -20,6 +20,7 @@
 
 #include <config.h>
 #include <dpkg.h>
+#include <string.h>
 
 /* Reimplementation of the standard ctype.h is* functions. Since gettext
  * has overloaded the meaning of LC_CTYPE we can't use that to force C
@@ -32,3 +33,35 @@ int cisdigit(int c) {
 int cisalpha(int c) {
 	return ((c>='a') && (c<='z')) || ((c>='A') && (c<='Z'));
 }
+
+int
+fgets_checked(char *buf, size_t bufsz, FILE *f, const char *fn)
+{
+	int l;
+
+	if (!fgets(buf, bufsz, f)) {
+		if (ferror(f))
+			ohshite(_("read error in `%.250s'"), fn);
+		return -1;
+	}
+	l = strlen(buf);
+	if (l == 0)
+		ohshit(_("fgets gave an empty string from `%.250s'"), fn);
+	if (buf[--l] != '\n')
+		ohshit(_("too-long line or missing newline in `%.250s'"), fn);
+	buf[l] = 0;
+
+	return l;
+}
+
+int
+fgets_must(char *buf, size_t bufsz, FILE *f, const char *fn)
+{
+	int l = fgets_checked(buf, bufsz, f, fn);
+
+	if (l < 0)
+		ohshit(_("unexpected eof reading `%.250s'"), fn);
+
+	return l;
+}
+

+ 28 - 0
man/ChangeLog

@@ -1,3 +1,31 @@
+2008-03-14  Guillem Jover  <guillem@debian.org>
+
+	Fix errors spotted by Helge Kreutzmann.
+
+	* dpkg-buildpackage.1: Refer to 'Debian' not 'debian'. Remove a space
+	beofre a comma. Replace FFLAGS with CFLAGS when referring to usage
+	similar to C for Fortran. Do not make bold a terminating parenthesis.
+	* dpkg-checkbuilddeps.1: Mark 'debian/contorl' file with italics.
+
+2008-03-11  Helge Kreutzmann  <debian@helgefjell.de>
+
+	* po/de.po: Updated to 1401t4f56u.
+
+2008-03-13  Helge Kreutzmann  <debian@helgefjell.de>
+
+	* po/de.po: Updated to 1431t0f30u.
+
+2008-03-09  Robert Luberda <robert@debian.org>
+
+	* pl.po: Updated to 1356t13f93u.
+	* pl.po: Consistently use Polish quotation marks in translations.
+	* de.po, hu.po, sv.po: Fix a few broken messages, that caused the
+	newest po4a to die with the `Unknown '<' or '>' sequence' error.
+
+2008-02-26  Peter Karlsson  <peterk@debian.org>
+
+	* po/sv.po: Updated to 1461t.
+
 2008-02-24  Robert Luberda <robert@debian.org>
 
 	* pl.po: Recoded to UTF-8.

+ 7 - 7
man/dpkg-buildpackage.1

@@ -1,4 +1,4 @@
-.TH dpkg\-buildpackage 1 "2008-01-03" "Debian Project" "dpkg utilities"
+.TH dpkg\-buildpackage 1 "2008-03-14" "Debian Project" "dpkg utilities"
 .SH NAME
 dpkg\-buildpackage \- build binary or source packages from sources
 .
@@ -212,10 +212,10 @@ not all \fIrules\fP files and build tools will honour these variables,
 yet.
 .TP
 .B CFLAGS
-Optimization options which are passed to the debian build system and
+Optimization options which are passed to the Debian build system and
 can/should be overriden by the package build if needed (default value:
-.BR \-g\ \-O2
-, or
+.BR "\-g \-O2" ,
+or
 .BR \-g\ \-O0
 if
 .BR noopt
@@ -241,7 +241,7 @@ for C++ sources.
 .TP
 .B FFLAGS
 Same as
-.B FFLAGS
+.B CFLAGS
 for Fortran sources.
 .TP
 .B FFLAGS_APPEND
@@ -250,12 +250,12 @@ Same as
 for Fortran sources.
 .TP
 .B CPPFLAGS
-Preprocessor flags which are passed to the debian build system and
+Preprocessor flags which are passed to the Debian build system and
 can/should be overriden by the package build if needed (default:
 empty). This macro is seldom used (most build systems just use
 .B CFLAGS
 instead of
-.B CPPFLAGS).
+.BR CPPFLAGS ).
 .TP
 .B CPPFLAGS_APPEND
 Preprocessor flags appended to the preprocessor flags, which must not

+ 2 - 2
man/dpkg-checkbuilddeps.1

@@ -1,4 +1,4 @@
-.TH dpkg\-checkbuilddeps 1 "2007-07-18" "Debian Project" "dpkg utilities"
+.TH dpkg\-checkbuilddeps 1 "2008-03-14" "Debian Project" "dpkg utilities"
 .SH NAME
 dpkg\-checkbuilddeps \- check build dependencies and conflicts
 .
@@ -29,7 +29,7 @@ be built.
 .TP
 .BI "\-c " build-conflicts-string
 Use the given build dependencies/conflicts instead of those contained in the
-debian/control file.
+\fIdebian/control\fP file.
 .TP
 .B \-h
 Show the usage message and exit.

+ 8 - 5
man/dpkg-gencontrol.1

@@ -1,4 +1,4 @@
-.TH dpkg\-gencontrol 1 "2007-06-12" "Debian Project" "dpkg utilities"
+.TH dpkg\-gencontrol 1 "2008-03-02" "Debian Project" "dpkg utilities"
 .SH NAME
 dpkg\-gencontrol \- generate Debian control files
 .
@@ -10,8 +10,7 @@ dpkg\-gencontrol \- generate Debian control files
 .B dpkg\-gencontrol
 reads information from an unpacked Debian source tree and generates a
 binary package control file (which defaults to debian/tmp/DEBIAN/control);
-during this process it will simplify the relation fields and rewrite them
-in a sorted manner.
+during this process it will simplify the relation fields.
 .sp
 Thus
 .IR Pre-Depends ", " Depends ", " Recommends " and " Suggests
@@ -20,7 +19,11 @@ order by removing dependencies which are known to be true according to the
 stronger dependencies already parsed. It will also remove any self-dependency
 (in fact it will remove any dependency which evaluates to true given the
 current version of the package as installed). Logically it keeps the
-intersection of multiple dependencies on the same package.
+intersection of multiple dependencies on the same package. The order
+of dependencies is preserved as best as possible: if any dependency
+must be discarded due to another dependency appearing further
+in the field, the superseding dependency will take the place of the
+discarded one.
 .sp
 The other relation fields
 .RI ( Enhances ", " Conflicts ", " Breaks ", " Replaces " and " Provides )
@@ -139,7 +142,7 @@ Copyright (C) 1995-1996 Ian Jackson
 .br
 Copyright (C) 2000 Wichert Akkerman
 .br
-Copyright (C) 2007 Rapha\[:e]l Hertzog
+Copyright (C) 2007-2008 Rapha\[:e]l Hertzog
 .sp
 This is free software; see the GNU General Public Licence version 2 or later
 for copying conditions. There is NO WARRANTY.

+ 1 - 1
man/po/de.add

@@ -1,6 +1,6 @@
 PO4A-HEADER:mode=after;position=^\.TH;beginboundary=^\.SH "SIEHE AUCH"
 .SH ÜBERSETZUNG
-Die deutsche Übersetzung wurde 2004, 2006, 2007, 2008 von Helge Kreutzmann
+Die deutsche Übersetzung wurde 2004, 2006-2008 von Helge Kreutzmann
 <debian@helgefjell.de> und 2007 von Florian Rehnisch <eixman@gmx.de> 
 angefertigt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die
 GNU General Public License Version 2 oder neuer für die Kopierbedingungen.

+ 140 - 70
man/po/de.po

@@ -1,12 +1,12 @@
 # SOME DESCRIPTIVE TITLE
 # Copyright (C) YEAR Free Software Foundation, Inc.
-# Helge Kreutzmann <debian@helgefjell.de>, 2004, 2006, 2007.
+# Helge Kreutzmann <debian@helgefjell.de>, 2004, 2006-2008.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: dpkg man pages\n"
 "POT-Creation-Date: 2008-02-17 18:20+0100\n"
-"PO-Revision-Date: 2008-01-22 19:01+0100\n"
+"PO-Revision-Date: 2008-03-13 22:30+0100\n"
 "Last-Translator: Helge Kreutzmann <debian@helgefjell.de>\n"
 "Language-Team: de <debian-l10n-german@lists.debian.org>\n"
 "MIME-Version: 1.0\n"
@@ -1664,9 +1664,9 @@ msgstr "deb-shlibs"
 
 # type: TH
 #: ../../man/deb-shlibs.5:17
-#, fuzzy, no-wrap
+#, no-wrap
 msgid "2008-02-17"
-msgstr "2008-01-13"
+msgstr "2008-02-17"
 
 # type: Plain text
 #: ../../man/deb-shlibs.5:20
@@ -1682,13 +1682,16 @@ msgid ""
 "character are considered commentary, and are ignored.  All other lines must "
 "have the format"
 msgstr ""
+"B<shlibs>-Dateien bilden Laufzeitbibliotheknamen und -versionen (I<sonames>) "
+"auf Abhängigkeiten, die für eine Paketsteuerdatei geeignet sind. Es gibt "
+"einen Eintrag pro Zeile. Leerzeilen sind B<nicht> erlaubt. Zeilen, die mit "
+"B<#> beginnen, werden als Kommentarzeilen betrachtet und ignoriert. Alle "
+"anderen Zeilen müssen dem nachfolgenden Format folgen:"
 
 # type: Plain text
 #: ../../man/deb-shlibs.5:35
-#, fuzzy
 msgid "[I<tag:>] I<library> I<version> I<dependencies>"
-msgstr ""
-"E<lt>BibliotheksnameE<gt> E<lt>Version/SONameE<gt> E<lt>AbhängigkeitenE<gt>"
+msgstr "[I<Markierung:>] I<Bibliothek> I<Version> I<Abhängigkeiten>"
 
 # type: Plain text
 #: ../../man/deb-shlibs.5:39
@@ -1697,11 +1700,16 @@ msgid ""
 "I<dependencies> field extends to the end of the line.  The I<tag> field is "
 "optional and normally not needed."
 msgstr ""
+"Die Felder I<Bibliothek> und I<Version> werden durch Leerzeichen begrenzt, "
+"das Feld I<Abhängigkeiten> geht aber bis zum Ende der Zeile. Das Feld "
+"I<Markierung> ist optional und wird normalerweise nicht benötigt."
 
 # type: Plain text
 #: ../../man/deb-shlibs.5:41
 msgid "See the Debian Policy Manual for further details."
 msgstr ""
+"Lesen Sie das Debian-Richtlinienhandbuch (Debian Policy Manual) für weitere "
+"Details."
 
 # type: SH
 #: ../../man/deb-shlibs.5:42 ../../man/dpkg.1:554
@@ -1717,11 +1725,14 @@ msgid ""
 "The B<shlibs> file for a typical library package, named I<libcrunch1>, that "
 "provides one library whose soname is I<libcrunch.so.1>, might read"
 msgstr ""
+"Die B<shlibs>-Datei für ein typisches Bibliothekspaket namens I<libcrunch1>, "
+"das eine Bibliothek mit dem Sonamen I<libcrunch.so.1> bereitstellt, könnte "
+"wie folgt lauten:"
 
 # type: Plain text
 #: ../../man/deb-shlibs.5:53
 msgid "libcrunch 1 libcrunch1 (E<gt>= 1.2-1)"
-msgstr ""
+msgstr "libcrunch 1 libcrunch1 (E<gt>= 1.2-1)"
 
 # type: Plain text
 #: ../../man/deb-shlibs.5:61
@@ -1732,12 +1743,16 @@ msgid ""
 "dependencies might need to be tightened; again, see the Debian Policy Manual "
 "for details."
 msgstr ""
+"I<Abhängigkeiten> muss die neuste Version des Pakets erwähnen, das neuen "
+"Symbole zu der Bibliothek hinzugefügt hat: im obigen Beispiel wurden neue "
+"Symbole zu Version 1.2 von I<libcrunch> hinzugefügt. Dies ist nicht der "
+"einzige Grund, dass Abhängigkeiten enger gefasst werden müssen; auch hier "
+"gilt: Lesen Sie das Debian Richtlinienhandbuch für Details."
 
 # type: Plain text
 #: ../../man/deb-shlibs.5:64
-#, fuzzy
 msgid "B<dpkg-shlibdeps>(1), B<deb-symbols>(5)."
-msgstr "B<dpkg-shlibdeps>(1)."
+msgstr "B<dpkg-shlibdeps>(1), B<deb-symbols>(5)."
 
 # type: TP
 #: ../../man/deb-substvars.5:2
@@ -2184,7 +2199,7 @@ msgid ""
 "B<flags>. These values are intended to be changed mainly with B<dselect>."
 msgstr ""
 "B<dpkg> verwaltet einige nützliche Informationen über verfügbare Pakete. Die "
-"Informationen sind in drei Klassen unterteilt: B<Status>, <Auswahlstatus> "
+"Informationen sind in drei Klassen unterteilt: B<Status>, B<Auswahlstatus> "
 "und B<Schalter>. Diese Werte sind Hauptsächlich zur Änderung durch "
 "B<dselect> gedacht."
 
@@ -4939,7 +4954,6 @@ msgstr "B<-r>I<root-werde-Befehl>"
 
 # type: Plain text
 #: ../../man/dpkg-buildpackage.1:134
-#, fuzzy
 msgid ""
 "When B<dpkg-buildpackage> needs to execute part of the build process as "
 "root, it prefixes the command it executes with I<gain-root-command> if one "
@@ -4958,19 +4972,18 @@ msgstr ""
 "falls dieser angegeben wurde. Andernfalls wird standardmäßig B<fakeroot> "
 "verwendet, falls es vorhanden ist. Der I<root-werde-Befehl> sollte der Name "
 "des Programmes im B<PATH> sein und wird als Argumente den Namen des wirklich "
-"auszuführenden Befehles und dessen Argumente erhalten. Der I<root-werde-"
-"Befehl> sollte keine Leerzeichen oder andere Shell-Metazeichen enthalten. "
-"Typischerweise ist der I<root-werde-Befehl> B<fakeroot>, B<sudo>, B<super> "
-"oder B<really>. B<su> ist nicht geeignet, da es eine B<-c>-Option zur "
-"Ausführung eines Befehles benötigt und selbst dann kann es nur die Shell des "
-"Benutzers mit B<-c> aufrufen, anstatt Argumente individuell zur Ausführung "
-"zu übergeben."
+"auszuführenden Befehles und dessen Argumente erhalten. I<root-werde-Befehl> "
+"kann Parameter enthalten (die durch Leerzeichen voneinander getrennt sein "
+"müssen), aber keine Shell-Metazeichen. Typischerweise ist der I<root-werde-"
+"Befehl> B<fakeroot>, B<sudo>, B<super> oder B<really>. B<su> ist nicht "
+"geeignet, da es nur die Shell des Benutzers mit B<-c> aufrufen kann, anstatt "
+"Argumente individuell zur Ausführung des Programms zu übergeben."
 
 # type: TP
 #: ../../man/dpkg-buildpackage.1:134
-#, fuzzy, no-wrap
+#, no-wrap
 msgid "B<-R>I<rules-file>"
-msgstr "B<-f>I<DateienlistDatei>"
+msgstr "B<-R>I<rules-Datei>"
 
 # type: Plain text
 #: ../../man/dpkg-buildpackage.1:145
@@ -4982,6 +4995,13 @@ msgid ""
 "rules file with another make program (for example by using B</usr/local/bin/"
 "make -f debian/rules> as I<rules-file>)."
 msgstr ""
+"Der Bau eines Debian-Pakets erfolgt gewöhnlich durch Aufruf von "
+"B<debian/rules> als ein Befehl mit mehreren Standardparametern. Mit dieser "
+"Option ist es möglich, einen anderen Programmaufruf zum Bau des Paketes zu "
+"verwenden (es können durch Leerzeichen getrennte Parameter angegeben werden). "
+"Alternativ kann die Standard-debian/rules-Datei mit einem anderen "
+"Make-Programm ausgeführt werden (zum Beispiel durch die Verwendung von "
+"B</usr/local/bin/make -f debian/rules> als I<rules-Datei>)."
 
 # type: TP
 #: ../../man/dpkg-buildpackage.1:145
@@ -5112,12 +5132,17 @@ msgid ""
 "mechanism was only introduced in dpkg-dev, version 1.14.17 and not all "
 "I<rules> files and build tools will honour these variables, yet."
 msgstr ""
+"Eine Reihe von Umgebungsvariablen für Einstellungen der Optionen des "
+"Compilers und Linkers werden auf Standardwerte gesetzt, falls sie noch nicht "
+"in der Umgebung gesetzt werden. Beachten Sie, dass dieser Mechanismus erst in "
+"dpkg-dev Version 1.14.17 eingeführt wurde und noch nicht alle I<rules>-"
+"Dateien und Bauwerkzeuge diese Variablen berücksichtigen."
 
 # type: TP
 #: ../../man/dpkg-buildpackage.1:213
-#, fuzzy, no-wrap
+#, no-wrap
 msgid "B<CFLAGS>"
-msgstr "B<COLUMNS>"
+msgstr "B<CFLAGS>"
 
 # type: Plain text
 #: ../../man/dpkg-buildpackage.1:226
@@ -5129,12 +5154,19 @@ msgid ""
 "level, or work around compiler bugs, which only can be seen with some "
 "optimization levels (the last opt level \"wins\")."
 msgstr ""
+"Optimierungs-Optionen, die an das Debian-Bausystem weitergegeben und vom "
+"Paketbausystem bei Bedarf überschrieben werden können/sollten (Vorgabewert: "
+"B<-g\\ -O2>, oder B<-g\\ -O0> falls B<noopt> in DEB_BUILD_OPTIONS angegeben "
+"ist). Das Überschreiben der Optionen kann dazu verwendet werden, explizit "
+"eine höhere Optimierungsstufe zu setzen oder um Compiler-Fehler zu umgehen, "
+"die nur bei einigen Optimierungsstufen auftreten (die letzte "
+"Optimierungsstufe »gewinnt«)."
 
 # type: TP
 #: ../../man/dpkg-buildpackage.1:226
 #, no-wrap
 msgid "B<CFLAGS_APPEND>"
-msgstr ""
+msgstr "B<CFLAGS_APPEND>"
 
 # type: Plain text
 #: ../../man/dpkg-buildpackage.1:231
@@ -5143,56 +5175,59 @@ msgid ""
 "overwritten by the package (mostly used to for test builds). Default value: "
 "empty."
 msgstr ""
+"Optimierungsoptionen, die an die Compiler-Schalter angehängt werden, die "
+"nicht vom Paket überschrieben werden dürfen (hauptsächlich zum Testen). "
+"Standardmäßig leer."
 
 # type: TP
 #: ../../man/dpkg-buildpackage.1:231
 #, no-wrap
 msgid "B<CXXFLAGS>"
-msgstr ""
+msgstr "B<CXXFLAGS>"
 
 # type: Plain text
 #: ../../man/dpkg-buildpackage.1:236
 msgid "Same as B<CFLAGS> for C++ sources."
-msgstr ""
+msgstr "Identisch zu B<CFLAGS> für C++-Quellen."
 
 # type: TP
 #: ../../man/dpkg-buildpackage.1:236
 #, no-wrap
 msgid "B<CXXFLAGS_APPEND>"
-msgstr ""
+msgstr "B<CXXFLAGS_APPEND>"
 
 # type: Plain text
 #: ../../man/dpkg-buildpackage.1:241
 msgid "Same as B<CFLAGS_APPEND> for C++ sources."
-msgstr ""
+msgstr "Identisch zu B<CFLAGS_APPEND> für C++-Quellen."
 
 # type: TP
 #: ../../man/dpkg-buildpackage.1:241
 #, no-wrap
 msgid "B<FFLAGS>"
-msgstr ""
+msgstr "B<FFLAGS>"
 
 # type: Plain text
 #: ../../man/dpkg-buildpackage.1:246
 msgid "Same as B<FFLAGS> for Fortran sources."
-msgstr ""
+msgstr "Identisch zu B<FFLAGS> für Fortran-Quellen."
 
 # type: TP
 #: ../../man/dpkg-buildpackage.1:246
 #, no-wrap
 msgid "B<FFLAGS_APPEND>"
-msgstr ""
+msgstr "B<FFLAGS_APPEND>"
 
 # type: Plain text
 #: ../../man/dpkg-buildpackage.1:251
 msgid "Same as B<CFLAGS_APPEND> for Fortran sources."
-msgstr ""
+msgstr "Identisch zu B<CFLAGS_APPEND> für Fortran-Quellen."
 
 # type: TP
 #: ../../man/dpkg-buildpackage.1:251
 #, no-wrap
 msgid "B<CPPFLAGS>"
-msgstr ""
+msgstr "B<CPPFLAGS>"
 
 # type: Plain text
 #: ../../man/dpkg-buildpackage.1:259
@@ -5202,12 +5237,16 @@ msgid ""
 "macro is seldom used (most build systems just use B<CFLAGS> instead of "
 "B<CPPFLAGS).>"
 msgstr ""
+"Präprozessor-Schalter, die an das Debian-Bausystem weitergegeben und vom "
+"Paketbausystem bei Bedarf überschrieben werden können/sollten (Vorgabewert: "
+"leer). Dieses Makro wird selten benutzt (die meisten Bausysteme verwenden "
+"einfach B<CFLAGS> statt B<CPPFLAGS>)."
 
 # type: TP
 #: ../../man/dpkg-buildpackage.1:259
 #, no-wrap
 msgid "B<CPPFLAGS_APPEND>"
-msgstr ""
+msgstr "B<CPPFLAGS_APPEND>"
 
 # type: Plain text
 #: ../../man/dpkg-buildpackage.1:264
@@ -5216,12 +5255,15 @@ msgid ""
 "overwritten by the package (mostly used to for test builds). Default value: "
 "empty."
 msgstr ""
+"Präprozessor-Schalter, die an die Präprozessor-Schalter angehängt werden, die "
+"nicht vom Paket überschrieben werden dürfen (hauptsächlich zum Testen). "
+"Standardmäßig leer."
 
 # type: TP
 #: ../../man/dpkg-buildpackage.1:264
 #, no-wrap
 msgid "B<LDFLAGS>"
-msgstr ""
+msgstr "B<LDFLAGS>"
 
 # type: Plain text
 #: ../../man/dpkg-buildpackage.1:272
@@ -5230,12 +5272,16 @@ msgid ""
 "(if the linker is called directly, then B<-Wl> and B<,> have to be stripped "
 "from these options. Default value: empty."
 msgstr ""
+"Optionen die beim Linken von Programmen oder Laufzeitbibliotheken an den "
+"Compiler weitergegeben werden (falls der Linker direkt aufgerufen wird, "
+"müssen B<-Wl> und B<,> aus diesen Optionen entfernt werden. Standardmäßig "
+"leer."
 
 # type: TP
 #: ../../man/dpkg-buildpackage.1:272
 #, no-wrap
 msgid "B<LDFLAGS_APPEND>"
-msgstr ""
+msgstr "B<LDFLAGS_APPEND>"
 
 # type: Plain text
 #: ../../man/dpkg-buildpackage.1:277
@@ -5244,6 +5290,10 @@ msgid ""
 "must not be overwritten by the package (mostly used to for test builds). "
 "Default value: empty."
 msgstr ""
+"Optimierungs-Optionen, die an den Compiler beim Linken von Code angehängt "
+"werden und die nicht vom Paket überschrieben werden dürfen (hauptsächlich zum "
+"Testen). Standardmäßig leer."
+
 
 # type: Plain text
 #: ../../man/dpkg-buildpackage.1:282
@@ -5318,13 +5368,13 @@ msgstr ""
 #: ../../man/dpkg-checkbuilddeps.1:27
 #, no-wrap
 msgid "B<-d >I<build-depends-string>"
-msgstr ""
+msgstr "B<-d >I<Zeichenkette-für-Bauabhängigkeiten>"
 
 # type: TP
 #: ../../man/dpkg-checkbuilddeps.1:29
 #, no-wrap
 msgid "B<-c >I<build-conflicts-string>"
-msgstr ""
+msgstr "B<-c >I<Zeichenkette-für-Baukonflikte>"
 
 # type: Plain text
 #: ../../man/dpkg-checkbuilddeps.1:33
@@ -5332,6 +5382,8 @@ msgid ""
 "Use the given build dependencies/conflicts instead of those contained in the "
 "debian/control file."
 msgstr ""
+"Verwende die angegebenen Bauabhängigkeiten/-konflikte statt denen der Datei "
+"debian/control."
 
 # type: TP
 #: ../../man/dpkg-checkbuilddeps.1:33
@@ -6333,6 +6385,10 @@ msgid ""
 "output, however the special variable I<Format> will override the field of "
 "the same name."
 msgstr ""
+"Lese die Substitutionsvariablen aus I<substvardatei>; standardmäßig B<debian/"
+"substvars>. Bei den ausgegeben Feldern erfolgt keine Variablensubstitution, "
+"die besondere Variable I<Format> wird allerdings das Feld mit dem gleichen "
+"Namen überschreiben."
 
 # type: TP
 #: ../../man/dpkg-genchanges.1:85 ../../man/dpkg-gencontrol.1:48
@@ -6726,11 +6782,11 @@ msgstr ""
 "Diese Handbuchseite dokumentiert das B<dpkg-name>-Programm, das eine "
 "einfache Möglichkeit bereitstellt, B<Debian>-Pakete in ihren vollen "
 "Paketnamen umzubenennen. Ein voller Paketname besteht aus "
-"I<E<lt>PaketE<gt>_E<lt>VersionE<gt>_E<lt>ArchitekturE<gt>.E<lt>Pakettyp<gt>> "
+"I<E<lt>PaketE<gt>_E<lt>VersionE<gt>_E<lt>ArchitekturE<gt>.E<lt>PakettypE<gt>> "
 "wie in der Steuerdatei des Pakets spezifiziert. Der I<E<lt>VersionE<gt>>-"
 "Teil des Dateinamens besteht aus der Versionsinformation der Originalautoren "
 "optional gefolgt von einem Gedankenstrich und der Revisionsinformation. Der "
-"I<E<lt>Pakettyp<gt>>-Teil entstammt dem Feld I<package_type> (falls "
+"I<E<lt>PakettypE<gt>>-Teil entstammt dem Feld I<package_type> (falls "
 "vorhanden) oder wird auf B<deb> gesetzt."
 
 # type: TP
@@ -6794,10 +6850,10 @@ msgstr ""
 "existierende Verzeichnis existiert, dann werden die Dateien in das "
 "Verzeichnis verschoben, andernfalls wird das Zielverzeichnis aus dem Section-"
 "Feld des Steuerteils des Pakets extrahiert. Das Zielverzeichnis wird "
-"»unstable/binary-E<lt>ArchitekturE<gt>/E<lt>Bereich<gt>« sein. Falls der "
+"»unstable/binary-E<lt>ArchitekturE<gt>/E<lt>BereichE<gt>« sein. Falls der "
 "Bereich nicht in der Steuerdatei gefunden werden kann, dann wird »no-section« "
 "angenommen, und in diesem Fall, wie auch für die Bereiche »non-free« und "
-"»contrib« ist das Zielverzeichnis »E<lt>Bereich<gt>/binary-"
+"»contrib« ist das Zielverzeichnis »E<lt>BereichE<gt>/binary-"
 "E<lt>ArchitekturE<gt>«. Das Bereichsfeld muss nicht angegeben werden, daher "
 "werden viele Pakete ihren Weg in das »no-section«-Gebiet finden. Verwenden "
 "Sie diese Option mit Vorsicht, sie ist unordentlich."
@@ -6901,7 +6957,7 @@ msgid ""
 "installation tools might depend on this naming structure."
 msgstr ""
 "Einige Pakete folgen nicht der Namensstruktur "
-"E<lt>Paket<gt>_E<lt>VersionE<gt>_E<lt>ArchitekturE<gt>.deb. Pakete, die von "
+"E<lt>PaketE<gt>_E<lt>VersionE<gt>_E<lt>ArchitekturE<gt>.deb. Pakete, die von "
 "dpkg-name umbenannt wurden, folgen dieser Struktur. Im allgemeinen hat diese "
 "keinen Einfluss darauf, wie Pakete von B<dselect>(1)/B<dpkg>(1) installiert "
 "werden, aber andere Installationswerkzeuge können von dieser "
@@ -7724,7 +7780,7 @@ msgid ""
 "B<dpkg-scansources> scans the given I<binary-dir> for I<.dsc> files.  These "
 "are used to create a Debian source index, which is output to stdout."
 msgstr ""
-"<dpkg-scansources> durchsucht das übergebene I<Binär-Verz> nach I<.dsc>-"
+"B<dpkg-scansources> durchsucht das übergebene I<Binär-Verz> nach I<.dsc>-"
 "Dateien. Diese werden verwendet, um einen Debian-Quell-Index zu erstellen, "
 "der auf der Standardausgabe ausgegeben wird."
 
@@ -10320,12 +10376,18 @@ msgid ""
 "in the package. Some packages make use of the B<debconf>(1)  library, "
 "allowing for more flexible or even automated installation setups."
 msgstr ""
+"Details der Installationsaktion hängen von der Implementierung der "
+"Zugriffsmethode ab. Die Aufmerksamkeit und Eingabe des Benutzers könnten "
+"während der Installation, Konfiguration oder dem Entfernen von Paketen "
+"notwendig sein. Dies hängt von den Betreuerskripten im Paket ab. Einige "
+"Pakete verwenden die Bibliothek B<debconf>(1), die flexiblere oder sogar "
+"automatisierte Installationseinrichtungen erlaubt."
 
 # type: SS
 #: ../../man/dselect.1:204
 #, no-wrap
 msgid "config"
-msgstr ""
+msgstr "Konfig"
 
 # type: Plain text
 #: ../../man/dselect.1:206
@@ -10338,12 +10400,14 @@ msgstr ""
 #: ../../man/dselect.1:207
 #, no-wrap
 msgid "remove"
-msgstr ""
+msgstr "Löschen"
 
 # type: Plain text
 #: ../../man/dselect.1:209
 msgid "Removes or purges installed packages, that are marked for removal."
 msgstr ""
+"Löscht oder entfernt installierte Pakete vollständig, die zum Löschen "
+"markiert sind."
 
 # type: SS
 #: ../../man/dselect.1:210
@@ -11392,9 +11456,9 @@ msgstr "start-stop-daemon"
 
 # type: TH
 #: ../../man/start-stop-daemon.8:1
-#, fuzzy, no-wrap
+#, no-wrap
 msgid "2008-01-30"
-msgstr "2008-01-03"
+msgstr "2008-01-30"
 
 # type: Plain text
 #: ../../man/start-stop-daemon.8:4
@@ -11420,7 +11484,6 @@ msgstr ""
 
 # type: Plain text
 #: ../../man/start-stop-daemon.8:34
-#, fuzzy
 msgid ""
 "Note: unless B<--pidfile> is specified, B<start-stop-daemon> behaves similar "
 "to B<killall>(1).  B<start-stop-daemon> will scan the process table looking "
@@ -11447,7 +11510,6 @@ msgstr "B<-S>, B<--start> [B<-->] I<Argumente>"
 
 # type: Plain text
 #: ../../man/start-stop-daemon.8:53
-#, fuzzy
 msgid ""
 "Check for the existence of a specified process.  If such a process exists, "
 "B<start-stop-daemon> does nothing, and exits with error status 1 (0 if B<--"
@@ -11456,13 +11518,13 @@ msgid ""
 "specified, by B<--startas>.  Any arguments given after B<--> on the command "
 "line are passed unmodified to the program being started."
 msgstr ""
-"Prüfe auf Existenz des angegebenen Prozesses. Falls ein solcher Prozess "
-"existiert, dann macht B<start-stop-daemon> nichts, und beendet sich mit "
+"Prüfe auf Existenz eines angegebenen Prozesses. Falls ein solcher Prozess "
+"existiert führt B<start-stop-daemon> nichts aus und beendet sich mit "
 "Fehlerstatus 1 (0, falls B<--oknodo> angegeben wurde). Falls ein solcher "
 "Prozess nicht existiert, dann startet es eine Instanz, entweder unter "
 "Verwendung des ausführbaren Programms, das mittels B<--exec> (oder, falls "
 "angegeben, mittels B<--startas>) spezifiziert wurde. Jedes weitere auf der "
-"Kommandozeile angegebene Argument nach B<--> wird unverändert an das zu "
+"Kommandozeile nach B<--> angegebene Argument wird unverändert an das zu "
 "startende Programm weitergegeben."
 
 # type: IP
@@ -11473,7 +11535,6 @@ msgstr "B<-K>, B<--stop>"
 
 # type: Plain text
 #: ../../man/start-stop-daemon.8:71
-#, fuzzy
 msgid ""
 "Checks for the existence of a specified process.  If such a process exists, "
 "B<start-stop-daemon> sends it the signal specified by B<--signal>, and exits "
@@ -11482,11 +11543,11 @@ msgid ""
 "specified, then B<start-stop-daemon> will check that the process(es) have "
 "terminated."
 msgstr ""
-"Überpfüft auf auf die Existenz eines speziellen Prozesses. Falls ein solcher "
+"Überprüft auf auf die Existenz eines speziellen Prozesses. Falls ein solcher "
 "Prozess existiert, dann sendet B<start-stop-daemon> das durch B<--signal> "
 "angegebene Signal und beendet sich mit Fehlerstatus 0. Falls kein solcher "
 "Prozess existiert, dann beendet sich B<start-stop-daemon> mit Fehlerstatus 1 "
-"(0 falls B<--oknodo> angegeben ist). Falls B<--retry> angegeben wurden, wird "
+"(0 falls B<--oknodo> angegeben ist). Falls B<--retry> angegeben wurde, wird "
 "B<start-stop-daemon> überprüfen, ob der/die Prozess(e) beendet wurden."
 
 # type: TP
@@ -11619,7 +11680,6 @@ msgstr ""
 
 # type: Plain text
 #: ../../man/start-stop-daemon.8:130
-#, fuzzy
 msgid ""
 "If I<timeout> is specified instead of I<schedule>, then the schedule "
 "I<signal>B</>I<timeout>B</KILL/>I<timeout> is used, where I<signal> is the "
@@ -11721,7 +11781,6 @@ msgstr "B<-c >, B< --chuid >I<Benutzername>|I<uid>"
 
 # type: Plain text
 #: ../../man/start-stop-daemon.8:192
-#, fuzzy
 msgid ""
 "Change to this username/uid before starting the process. You can also "
 "specify a group by appending a B<:>, then the group or gid in the same way "
@@ -11735,12 +11794,13 @@ msgstr ""
 "Wechsele vor dem Start des Prozesses zu diesem Benutzername/uid. Sie können "
 "durch Anhängen von B<:> auch die Gruppe spezifizieren, in diesem Fall wird "
 "die Gruppe oder gid wie bei dem »chown«-Befehl (I<Benutzer>B<:>I<Gruppe>) "
-"angegeben. Wenn Sie diese Option verwenden, müssen Sie daran denken, dass "
-"die primäre und zusätzlichen Gruppe auch gesetzt werden, selbst wenn die B<--"
-"group> Option nicht spezifiziert wird. Die B<--group>-Option ist nur für "
-"Gruppen in denen der Benutzer normalerweise kein Mitglied ist (wie das "
-"Hinzufügen von pro-Prozess Gruppenmitgliedschaften für generische Benutzer "
-"wie B<nobody>)."
+"angegeben. Falls ein Benutzer ohne Gruppe angegeben ist, wird die primäre "
+"GID für diesen Benutzer verwandt. Wenn Sie diese Option verwenden, müssen Sie "
+"daran denken, dass die primäre und zusätzliche Gruppen auch gesetzt werden, "
+"selbst wenn die Option B<--group> nicht angegeben wird. Die Option B<--group> "
+"ist nur für Gruppen, in denen der Benutzer normalerweise kein Mitglied ist "
+"(wie das Hinzufügen von pro-Prozess Gruppenmitgliedschaften für generische "
+"Benutzer wie B<nobody>)."
 
 # type: TP
 #: ../../man/start-stop-daemon.8:192
@@ -11830,7 +11890,6 @@ msgstr "B<-m>, B<--make-pidfile>"
 
 # type: Plain text
 #: ../../man/start-stop-daemon.8:239
-#, fuzzy
 msgid ""
 "Used when starting a program that does not create its own pid file. This "
 "option will make B<start-stop-daemon> create the file referenced with B<--"
@@ -11840,14 +11899,14 @@ msgid ""
 "executed forks from its main process. Because of this, it is usually only "
 "useful when combined with the B<--background> option."
 msgstr ""
-"Verwendet, wenn ein Programm gestartet wird, dass keine eigene PID-Datei "
+"Verwendet, wenn ein Programm gestartet wird, das keine eigene PID-Datei "
 "erstellt. Diese Option sorgt dafür, dass B<start-stop-daemon> die mit B<--"
 "pidfile> referenzierte Datei anlegt und die PID kurz vor der Ausführung des "
 "Prozesse hineinlegt. Beachten Sie, dass die Datei nicht entfernt wird, wenn "
 "das Programm beendet wird. B<HINWEIS:> Diese Funktion könnte in nicht allen "
 "Fällen funktionieren. Insbesondere wenn das auszuführende Programm sich vom "
 "Hauptprozess forkt. Deshalb ist diese Option normalerweise nur in "
-"Kombination mit der B<--background> Option sinnvoll."
+"Kombination mit der Option B<--background> sinnvoll."
 
 # type: TP
 #: ../../man/start-stop-daemon.8:239
@@ -11871,6 +11930,13 @@ msgid ""
 "schedule was reached and the processes were still running, the error value "
 "is 2. For all other errors, the status is 3."
 msgstr ""
+"B<start-stop-daemon> liefert 0, falls die angeforderte Aktion ausgeführt "
+"wurde oder B<--oknodo> angegeben und entweder B<--start> angegeben wurde und "
+"ein passener Prozess lief bereits oder B<--stop> angebeben wurde und es gab "
+"keinen passenden Prozess. Falls B<--oknodo> nicht angegeben wurde und nichts "
+"erfolgte, wird 1 zurückgeliefert. Falls B<--stop> und B<--retry> angegeben "
+"wurden, aber das Ende des Plans errreicht wurde und der Prozess noch läuft, "
+"lautet der Fehlerwert 2. Bei allen anderen Fehlern ist der Status 3."
 
 # type: Plain text
 #: ../../man/start-stop-daemon.8:263
@@ -11878,34 +11944,38 @@ msgid ""
 "Start the B<food> daemon, unless one is already running (a process named "
 "food, running as user food, with pid in food.pid):"
 msgstr ""
+"Starte den Dämon B<food> falls noch keiner läuft (ein Prozess mit Namen "
+"food, der als Benutzer food mit PID in food.pid läuft):"
 
 # type: Plain text
 #: ../../man/start-stop-daemon.8:266
 #, no-wrap
 msgid "start-stop-daemon --start --oknodo --user food --name food --pidfile /var/run/food.pid --startas /usr/sbin/food --chuid food -- --daemon\n"
 msgstr ""
+ "start-stop-daemon --start --oknodo --user food --name food --pidfile /var/run/food.pid --startas /usr/sbin/food --chuid food -- --daemon\n"
 
 # type: Plain text
 #: ../../man/start-stop-daemon.8:269
 msgid "Send B<SIGTERM> to B<food> and wait up to 5 seconds for it to stop:"
 msgstr ""
+"Schicke B<SIGTERM> an B<food> und warte bis zu fünf Sekunden auf sein Beenden:"
 
 # type: Plain text
 #: ../../man/start-stop-daemon.8:272
 #, no-wrap
 msgid "start-stop-daemon --stop --oknodo --user food --name food --pidfile /var/run/food.pid --retry 5\n"
-msgstr ""
+msgstr "start-stop-daemon --stop --oknodo --user food --name food --pidfile /var/run/food.pid --retry 5\n"
 
 # type: Plain text
 #: ../../man/start-stop-daemon.8:275
 msgid "Demonstration of a custom schedule for stopping B<food>:"
-msgstr ""
+msgstr "Vorführung eines angepassten Plans zum Beenden von B<food>:"
 
 # type: Plain text
 #: ../../man/start-stop-daemon.8:278
 #, no-wrap
 msgid "start-stop-daemon --stop --oknodo --user food --name food --pidfile /var/run/food.pid --retry=TERM/30/KILL/5\n"
-msgstr ""
+msgstr "start-stop-daemon --stop --oknodo --user food --name food --pidfile /var/run/food.pid --retry=TERM/30/KILL/5\n"
 
 # type: Plain text
 #: ../../man/start-stop-daemon.8:284

+ 1 - 1
man/po/hu.po

@@ -970,7 +970,7 @@ msgid ""
 "package, if this one also has the same files as the conflicted package."
 msgstr ""
 "Az e csomag által lecserélt csomag fájlok listája.  Ez lehetővé teszi e "
-"csomagnak más csomag fájljainak felülírását és általában a <Conflicts> "
+"csomagnak más csomag fájljainak felülírását és általában a B<Conflicts> "
 "mezővel használatos a másik csomag törlésére, ha ez azonos nevű fájlt "
 "tartalmaz, mint az ütköző csomag."
 

File diff suppressed because it is too large
+ 234 - 174
man/po/pl.po


File diff suppressed because it is too large
+ 2146 - 2151
man/po/sv.po


+ 14 - 1
po/ChangeLog

@@ -1,9 +1,22 @@
+2008-03-09  Robert Luberda <robert@debian.org>
+
+	* pl.po: Apply some fixes suggested by Wiktor Wandachowicz.
+	* pl.po: Consistently use Polish quotation marks in translations.
+
+2008-03-03  Theppitak Karoonboonyanan  <thep@linux.thai.net>
+
+	* th.po: Updated to 921t.
+
+2008-02-26  Peter Karlsson  <peterk@debian.org>
+
+	* sv.po: Updated to 921t.
+
 2008-02-24  Robert Luberda <robert@debian.org>
 
 	* pl.po: Recoded to UTF-8
 	* pl.po: Updated to 921t.
 
-2008-02-09  Eddy Petrișor <eddy.petrisor@gmail.com>
+2008-02-09  Eddy Petri?or <eddy.petrisor@gmail.com>
 
 	* ro.po: Update to 927t.
 

File diff suppressed because it is too large
+ 386 - 386
po/pl.po


File diff suppressed because it is too large
+ 1006 - 1036
po/sv.po


+ 11 - 12
po/th.po

@@ -1,14 +1,14 @@
 # Thai translation of dpkg.
-# Copyright (C) 2007 Software in the Public Interest, Inc.
+# Copyright (C) 2007-2008 Software in the Public Interest, Inc.
 # This file is distributed under the same license as the dpkg package.
-# Theppiak Karoonboonyanan <thep@linux.thai.net>, 2007.
+# Theppiak Karoonboonyanan <thep@linux.thai.net>, 2007-2008.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: dpkg\n"
 "Report-Msgid-Bugs-To: debian-dpkg@lists.debian.org\n"
 "POT-Creation-Date: 2008-01-21 08:23+0200\n"
-"PO-Revision-Date: 2007-10-13 20:52+0700\n"
+"PO-Revision-Date: 2008-03-02 18:14+0700\n"
 "Last-Translator: Theppitak Karoonboonyanan <thep@linux.thai.net>\n"
 "Language-Team: Thai <thai-l10n@googlegroups.com>\n"
 "MIME-Version: 1.0\n"
@@ -3711,9 +3711,9 @@ msgid "failed to exec rm -rf"
 msgstr "ไม่สามารถเรียกทำงาน rm -rf"
 
 #: dpkg-deb/info.c:99
-#, fuzzy, c-format
+#, c-format
 msgid "realloc failed (%zu bytes)"
-msgstr "realloc ไม่สำเร็จ (%ld ไบต์)"
+msgstr "realloc ไม่สำเร็จ (%zu ไบต์)"
 
 #: dpkg-deb/info.c:108
 msgid "info_spew"
@@ -4994,7 +4994,7 @@ msgstr ""
 "สงวนลิขสิทธิ์ (C) 2000-2002 Wichert Akkerman"
 
 #: scripts/update-alternatives.pl:71
-#, fuzzy, perl-format
+#, perl-format
 msgid ""
 "Usage: %s [<option> ...] <command>\n"
 "\n"
@@ -5059,7 +5059,6 @@ msgstr ""
 "ตัวเลือก:\n"
 "  --altdir <directory>     เปลี่ยนไดเรกทอรีของทางเลือก\n"
 "  --admindir <directory>   เปลี่ยนไดเรกทอรีสำหรับการดูแลระบบ\n"
-"  --test                   ไม่ต้องทำจริง แค่สาธิตเท่านั้น\n"
 "  --verbose                ทำแบบบอกละเอียด แสดงข้อความมากขึ้น\n"
 "  --quiet                  ทำแบบเงียบ แสดงข้อความให้น้อยที่สุด\n"
 "  --help                   แสดงข้อความช่วยเหลือนี้\n"
@@ -5140,13 +5139,13 @@ msgid "Current `best' version is %s."
 msgstr "ทางเลือกที่ `ดีที่สุด' ในขณะนี้คือ %s"
 
 #: scripts/update-alternatives.pl:228
-#, fuzzy, perl-format
+#, perl-format
 msgid ""
 "warning: %s is supposed to be a symlink to %s, \n"
 "or nonexistent; however, readlink failed: %s"
 msgstr ""
 "คำเตือน: %s ควรจะเป็น symlink ไปยัง %s\n"
-" (หรือไม่ก็ไม่มีอยู่เลย) แต่ปรากฏว่า readlink ล้มเหลว: %s"
+"หรือไม่ก็ไม่มีอยู่เลย แต่ปรากฏว่า readlink ล้มเหลว: %s"
 
 #: scripts/update-alternatives.pl:240
 #, perl-format
@@ -5159,14 +5158,14 @@ msgid "Updating %s (%s) to point to %s."
 msgstr "กำลังปรับข้อมูล %s (%s) ให้ชี้ไปยัง %s"
 
 #: scripts/update-alternatives.pl:252
-#, fuzzy, perl-format
+#, perl-format
 msgid "Using '%s' to provide '%s'."
-msgstr "จะใช้ `%s' เพื่อจัดเตรียม `%s'"
+msgstr "จะใช้ '%s' เพื่อจัดเตรียม '%s'"
 
 #: scripts/update-alternatives.pl:266 scripts/update-alternatives.pl:610
 #, perl-format
 msgid "Removing %s (%s), not appropriate with %s."
-msgstr "กำลังลบ %s (%s) เพราะไม่เหมาะกับ %s"
+msgstr "จะลบ %s (%s) เพราะไม่เหมาะกับ %s"
 
 #: scripts/update-alternatives.pl:284
 #, perl-format

+ 2 - 1
scripts/Dpkg/Changelog/Debian.pm

@@ -134,7 +134,8 @@ sub parse {
     while (<$fh>) {
 	s/\s*\n$//;
 #	printf(STDERR "%-39.39s %-39.39s\n",$expect,$_);
-	if (m/^(\w[-+0-9a-z.]*) \(([^\(\) \t]+)\)((\s+[-0-9a-z]+)+)\;/i) {
+	my $name_chars = qr/[-+0-9a-z.]/i;
+	if (m/^(\w$name_chars*) \(([^\(\) \t]+)\)((\s+$name_chars+)+)\;/i) {
 	    unless ($expect eq 'first heading'
 		    || $expect eq 'next heading or eof') {
 		$entry->{ERROR} = [ $file, $NR,

+ 13 - 1
scripts/Dpkg/Deps.pm

@@ -912,9 +912,21 @@ WHILELOOP:
 	my $dep = shift @{$self->{list}};
 	my $eval = $dep->get_evaluation($facts);
 	next if defined($eval) and $eval == 1;
-	foreach my $odep (@knowndeps, @new, @{$self->{list}}) {
+	foreach my $odep (@knowndeps, @new) {
 	    next WHILELOOP if $odep->implies($dep);
 	}
+        # When a dependency is implied by another dependency that
+        # follows, then invert them
+        # "a | b, c, a"  becomes "a, c" and not "c, a"
+        my $i = 0;
+	foreach my $odep (@{$self->{list}}) {
+            if (defined $odep and $odep->implies($dep)) {
+                splice @{$self->{list}}, $i, 1;
+                unshift @{$self->{list}}, $odep;
+                next WHILELOOP;
+            }
+            $i++;
+	}
 	push @new, $dep;
     }
     $self->{list} = [ @new ];

+ 1 - 0
scripts/Dpkg/Fields.pm

@@ -50,6 +50,7 @@ use Tie::Hash;
 our @ISA = qw(Tie::ExtraHash Tie::Hash);
 
 use Dpkg::ErrorHandling qw(internerr syserr);
+use Dpkg::Gettext;
 
 # Import capit
 Dpkg::Fields->import('capit');

+ 1 - 1
scripts/dpkg-gencontrol.pl

@@ -250,8 +250,8 @@ foreach my $field (@pkg_dep_fields) {
                                      reduce_arch => 1, union => 1);
 	    error(_g("error occurred while parsing %s"), $field_value) unless defined $dep;
 	    $dep->simplify_deps($facts);
+            $dep->sort();
 	}
-	$dep->sort();
 	$fields->{$field} = $dep->dump();
 	delete $fields->{$field} unless $fields->{$field}; # Delete empty field
     }

+ 4 - 1
scripts/dpkg-shlibdeps.pl

@@ -375,7 +375,10 @@ foreach my $field (reverse @depfields) {
 	    keys %{$dependencies{$field}};
     }
     if ($dep) {
-	print $fh "$varnameprefix:$field=$dep\n";
+        my $obj = Dpkg::Deps::parse($dep);
+        error(_g("invalid dependency got generated: %s"), $dep) unless defined $obj;
+        $obj->sort();
+	print $fh "$varnameprefix:$field=" . $obj->dump() . "\n";
     }
 }
 

+ 2 - 2
scripts/dpkg-source.pl

@@ -219,11 +219,11 @@ if ($opmode eq 'build') {
 	} elsif (m/^Build-(Depends|Conflicts)(-Indep)?$/i) {
 	    my $dep;
 	    my $type = $dep_field_type{capit($_)};
-	    $dep = Dpkg::Deps::parse($v, union =>  $type eq 'union');
+	    $dep = Dpkg::Deps::parse($v, union => $type eq 'union');
 	    error(_g("error occurred while parsing %s"), $_) unless defined $dep;
 	    my $facts = Dpkg::Deps::KnownFacts->new();
 	    $dep->simplify_deps($facts);
-	    $dep->sort();
+	    $dep->sort() if $type eq 'union';
 	    $fields->{$_} = $dep->dump();
 	} elsif (s/^X[BC]*S[BC]*-//i) { # Include XS-* fields
 	    $fields->{$_} = $v;

+ 9 - 0
scripts/po/ChangeLog

@@ -1,3 +1,12 @@
+2008-03-09 Robert Luberda <robert@debian.org>
+
+	* pl.po: Updated to 490t.
+	* pl.po: Consistently use Polish quotation marks in translations.
+
+2008-02-26  Peter Karlsson  <peterk@debian.org>
+
+	* sv.po: Updated to 489t.
+
 2008-02-24  Robert Luberda <robert@debian.org>
 
 	* pl.po: Recoded to UTF-8.

File diff suppressed because it is too large
+ 253 - 177
scripts/po/pl.po


File diff suppressed because it is too large
+ 1036 - 1123
scripts/po/sv.po


+ 5 - 1
scripts/t/400_Dpkg_Deps.t

@@ -1,6 +1,6 @@
 # -*- mode: cperl;-*-
 
-use Test::More tests => 14;
+use Test::More tests => 15;
 
 use strict;
 use warnings;
@@ -53,6 +53,10 @@ my $dep_dup_union = Dpkg::Deps::parse($field_dup_union, union => 1);
 $dep_dup_union->simplify_deps($facts);
 is($dep_dup_union->dump(), "libc6 (>> 2.3), fake (<< 2.0), fake (>> 3.0), fake (= 2.5), python (<< 2.5)", "Simplify union deps");
 
+my $dep_red = Dpkg::Deps::parse("abc | xyz, two, abc");
+$dep_red->simplify_deps($facts, $dep_opposite);
+is($dep_red->dump(), "abc, two", "Simplification respect order");
+
 my $dep_empty1 = Dpkg::Deps::parse("");
 is($dep_empty1->dump(), "", "Empty dependency");
 

+ 13 - 11
scripts/t/600_Dpkg_Changelog.t

@@ -6,7 +6,7 @@ use warnings;
 use File::Basename;
 
 BEGIN {
-    my $no_examples = 3;
+    my $no_examples = 4;
     my $no_err_examples = 1;
     my $no_tests = $no_examples * 4
 	+ $no_err_examples * 2
@@ -32,7 +32,8 @@ my $test = Dpkg::Changelog::Debian->init( { infile => '/nonexistant',
 ok( !defined($test), "fatal parse errors lead to init() returning undef");
 
 my $save_data;
-foreach my $file ("$srcdir/countme", "$srcdir/shadow", "$srcdir/fields") {
+foreach my $file ("$srcdir/countme", "$srcdir/shadow", "$srcdir/fields",
+    "$srcdir/regressions") {
 
     my $changes = Dpkg::Changelog::Debian->init( { infile => $file,
 						   quiet => 1 } );
@@ -217,20 +218,21 @@ Xc-Userfield: foobar
 # 		'version numbers in module and Changes match' );
 #     }
 
-    my $oldest_version = $data[-1]->{Version};
-    $str = $changes->dpkg_str({ since => $oldest_version });
+    SKIP: {
+	skip("avoid spurios warning with only one entry", 2)
+	    if @data == 1;
 
-#    is( $str, `dpkg-parsechangelog -v$oldest_version -l$file`,
-#	'Output of dpkg_str equal to output of dpkg-parsechangelog' )
-#	or diag("oldest_version=$oldest_version");
+	my $oldest_version = $data[-1]->{Version};
+	$str = $changes->dpkg_str({ since => $oldest_version });
 
-    $str = $changes->rfc822_str();
+	$str = $changes->rfc822_str();
 
-    ok( 1 );
+	ok( 1 );
 
-    $str = $changes->rfc822_str({ since => $oldest_version });
+	$str = $changes->rfc822_str({ since => $oldest_version });
 
-    ok( 1 );
+	ok( 1 );
+    }
 }
 
 open CHANGES, '<', "$srcdir/countme";

+ 6 - 0
scripts/t/600_Dpkg_Changelog/regressions

@@ -0,0 +1,6 @@
+re-gressions++1.2.3 (1.5-1) ALLOWED.chars-567+890; urgency=low
+
+  * Test allowed chars in package name and distribution name.
+    (Closes: #361171)
+
+ -- Frank Lichtenheld <frank@lichtenheld.de>  Thu, 01 Jan 1970 00:00:00 +0000

+ 3 - 22
src/filesdb.c

@@ -470,37 +470,18 @@ void ensure_diversions(void) {
   diversions = NULL;
   if (!file) { onerr_abort--; return; }
 
-  while (fgets(linebuf,sizeof(linebuf),file)) {
+  while ((l = fgets_checked(linebuf, sizeof(linebuf), file, vb.buf)) >= 0) {
     oicontest= nfmalloc(sizeof(struct diversion));
     oialtname= nfmalloc(sizeof(struct diversion));
 
-    l= strlen(linebuf);
-    if (l == 0) ohshit(_("fgets gave an empty string from diversions [i]"));
-    if (linebuf[--l] != '\n') ohshit(_("diversions file has too-long line or EOF [i]"));
-    linebuf[l]= 0;
     oialtname->camefrom= findnamenode(linebuf, 0);
     oialtname->useinstead = NULL;
 
-    if (!fgets(linebuf,sizeof(linebuf),file)) {
-      if (ferror(file)) ohshite(_("read error in diversions [ii]"));
-      else ohshit(_("unexpected EOF in diversions [ii]"));
-    } 
-    l= strlen(linebuf);
-    if (l == 0) ohshit(_("fgets gave an empty string from diversions [ii]"));
-    if (linebuf[--l] != '\n') ohshit(_("diversions file has too-long line or EOF [ii]"));
-    linebuf[l]= 0;
+    fgets_must(linebuf, sizeof(linebuf), file, vb.buf);
     oicontest->useinstead= findnamenode(linebuf, 0);
     oicontest->camefrom = NULL;
-    
-    if (!fgets(linebuf,sizeof(linebuf),file)) {
-      if (ferror(file)) ohshite(_("read error in diversions [iii]"));
-      else ohshit(_("unexpected EOF in diversions [iii]"));
-    }
-    l= strlen(linebuf);
-    if (l == 0) ohshit(_("fgets gave an empty string from diversions [iii]"));
-    if (linebuf[--l] != '\n') ohshit(_("diversions file has too-long line or EOF [ii]"));
-    linebuf[l]= 0;
 
+    fgets_must(linebuf, sizeof(linebuf), file, vb.buf);
     oicontest->pkg= oialtname->pkg=
       strcmp(linebuf, ":") ? findpackage(linebuf) : NULL;
 

+ 1 - 0
src/help.c

@@ -400,6 +400,7 @@ void clear_istobes(void) {
     pkg->clientdata->istobe= itb_normal;
     pkg->clientdata->replacingfilesandsaid= 0;
   }
+  iterpkgend(it);
 }
 
 void debug(int which, const char *fmt, ...) {

+ 6 - 11
src/main.c

@@ -40,7 +40,9 @@
 
 #include "main.h"
 
-static void printversion(void) {
+void
+printversion(void)
+{
   if (printf(_("Debian `%s' package management program version %s.\n"),
 	     DPKG, DPKG_VERSION_ARCH) < 0) werr("stdout");
   if (printf(_("This is free software; see the GNU General Public License version 2 or\n"
@@ -52,7 +54,9 @@ static void printversion(void) {
    options that need fixing:
   dpkg --yet-to-unpack                 \n\
   */
-static void usage(void) {
+void
+usage(void)
+{
   if (fprintf (stdout, _(
 "Usage: %s [<option> ...] <command>\n"
 "\n"), DPKG) < 0) werr ("stdout");
@@ -193,15 +197,6 @@ static const struct forceinfo {
   {  NULL                                               }
 };
 
-static void helponly(const struct cmdinfo *cip, const char *value) NONRETURNING;
-static void helponly(const struct cmdinfo *cip, const char *value) {
-  usage(); exit(0);
-}
-static void versiononly(const struct cmdinfo *cip, const char *value) NONRETURNING;
-static void versiononly(const struct cmdinfo *cip, const char *value) {
-  printversion(); exit(0);
-}
-
 static void setaction(const struct cmdinfo *cip, const char *value) {
   if (cipaction)
     badusage(_("conflicting actions -%c (--%s) and -%c (--%s)"),

+ 6 - 11
src/query.c

@@ -484,7 +484,9 @@ void showpackages(const char *const *argv) {
   modstatdb_shutdown();
 }
 
-static void printversion(void) {
+void
+printversion(void)
+{
   if (printf(_("Debian `%s' package management program query tool\n"),
 	     DPKGQUERY) < 0) werr("stdout");
   if (printf(_("This is free software; see the GNU General Public License version 2 or\n"
@@ -496,7 +498,9 @@ static void printversion(void) {
    options that need fixing:
   dpkg --yet-to-unpack                 \n\
   */
-static void usage(void) {
+void
+usage(void)
+{
   if (printf(_(
 "Usage: %s [<option> ...] <command>\n"
 "\n"), DPKGQUERY) < 0) werr ("stdout");
@@ -553,15 +557,6 @@ const char *admindir= ADMINDIR;
 const char *instdir= "";
 struct packageinlist *ignoredependss=0;
 
-static void helponly(const struct cmdinfo *cip, const char *value) NONRETURNING;
-static void helponly(const struct cmdinfo *cip, const char *value) {
-  usage(); exit(0);
-}
-static void versiononly(const struct cmdinfo *cip, const char *value) NONRETURNING;
-static void versiononly(const struct cmdinfo *cip, const char *value) {
-  printversion(); exit(0);
-}
-
 static void setaction(const struct cmdinfo *cip, const char *value) {
   if (cipaction)
     badusage(_("conflicting actions -%c (--%s) and -%c (--%s)"),

+ 2 - 12
utils/start-stop-daemon.c

@@ -22,6 +22,8 @@
 
 #include "config.h"
 
+#include <dpkg-def.h>
+
 #if defined(linux) || (defined(__FreeBSD_kernel__) && defined(__GLIBC__))
 #  define OSLinux
 #elif defined(__GNU__)
@@ -101,18 +103,6 @@
 #include <error.h>
 #endif
 
-#if HAVE_C_ATTRIBUTE
-# define CONSTANT __attribute__((constant))
-# define PRINTFFORMAT(si, tc) __attribute__((format(printf, si, tc)))
-# define NONRETURNING __attribute__((noreturn))
-# define UNUSED __attribute__((unused))
-#else
-# define CONSTANT
-# define PRINTFFORMAT(si, tc)
-# define NONRETURNING
-# define UNUSED
-#endif
-
 static int testmode = 0;
 static int quietmode = 0;
 static int exitnodo = 1;