From 227ab53dd41551453e25b2bd4a213ee87270c77a Mon Sep 17 00:00:00 2001 From: "bubulle@debian.org" <> Date: Mon, 23 Jan 2012 21:42:03 +0100 Subject: =?UTF-8?q?Polish=20(Micha=C5=82=20Ku=C5=82ach).=20Closes:=20#6569?= =?UTF-8?q?08?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- debian/changelog | 1 + po/pl.po | 1035 +++++++++++++++++++++++++++++------------------------- 2 files changed, 563 insertions(+), 473 deletions(-) diff --git a/debian/changelog b/debian/changelog index 36b6d3451..49d71ac85 100644 --- a/debian/changelog +++ b/debian/changelog @@ -18,6 +18,7 @@ apt (0.8.15.10) UNRELEASEDunstable; urgency=low * Slovak (Ivan Masar). Closes: #652985 * Russian (Yuri Kozlov). Closes: #654844 * Hungarian (Gabor Kelemen). Closes: #655238 + * Polish (Michał Kułach). Closes: #656908 -- David Kalnischkies Tue, 06 Dec 2011 16:35:39 +0100 diff --git a/po/pl.po b/po/pl.po index 7cf36ab92..7e3736f5f 100644 --- a/po/pl.po +++ b/po/pl.po @@ -1,23 +1,27 @@ # Advanced Package Transfer - APT message translation catalog # Polish translation by: -# Marcin Owsiany , 2002, 2003, 2004. -# Bartosz Fenski , 2005, 2006 -# Wiktor Wandachowicz , 2008, 2009 # # Nazewnictwo i spójność tłumaczeń programów apt, aptitude, synaptic i innych: # http://wiki.debian.org/PolishL10N/PackageInstallers +# Marcin Owsiany , 2002, 2003, 2004. +# Bartosz Fenski , 2005, 2006. +# Wiktor Wandachowicz , 2008, 2009. +# Michał Kułach , 2012. msgid "" msgstr "" "Project-Id-Version: apt 0.7.23.1\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-07-26 12:05+0200\n" -"PO-Revision-Date: 2009-09-27 03:42+0100\n" -"Last-Translator: Wiktor Wandachowicz \n" +"POT-Creation-Date: 2011-10-14 12:59+0200\n" +"PO-Revision-Date: 2012-01-22 20:35+0100\n" +"Last-Translator: Michał Kułach \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " +"|| n%100>=20) ? 1 : 2);\n" #: cmdline/apt-cache.cc:154 #, c-format @@ -29,9 +33,8 @@ msgid "Total package names: " msgstr "Liczba nazw pakietów: " #: cmdline/apt-cache.cc:284 -#, fuzzy msgid "Total package structures: " -msgstr "Liczba nazw pakietów: " +msgstr "Liczba wszystkich typów pakietów: " #: cmdline/apt-cache.cc:324 msgid " Normal packages: " @@ -105,13 +108,12 @@ msgid "No packages found" msgstr "Nie znaleziono żadnych pakietów" #: cmdline/apt-cache.cc:1218 -#, fuzzy msgid "You must give at least one search pattern" -msgstr "Należy podać dokładnie jeden wzorzec" +msgstr "Należy podać przynajmniej jeden wzorzec" #: cmdline/apt-cache.cc:1353 msgid "This command is deprecated. Please use 'apt-mark showauto' instead." -msgstr "" +msgstr "To polecenie jest przestarzałe. Prosimy używać \"apt-mark showauto\"." #: cmdline/apt-cache.cc:1448 apt-pkg/cacheset.cc:440 #, c-format @@ -135,7 +137,7 @@ msgstr "Przypięte pakiety:" #: cmdline/apt-cache.cc:1511 cmdline/apt-cache.cc:1556 msgid "(not found)" -msgstr "(nieznaleziony)" +msgstr "(nie znaleziono)" #: cmdline/apt-cache.cc:1519 msgid " Installed: " @@ -160,13 +162,12 @@ msgstr " Tabela wersji:" #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589 -#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:3235 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s compiled on %s %s\n" msgstr "%s %s dla %s skompilowany %s %s\n" #: cmdline/apt-cache.cc:1682 -#, fuzzy msgid "" "Usage: apt-cache [options] command\n" " apt-cache [options] showpkg pkg1 [pkg2 ...]\n" @@ -203,16 +204,13 @@ msgid "" "See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" msgstr "" "Użycie: apt-cache [opcje] polecenie\n" -" apt-cache [opcje] add plik1 [plik2 ...]\n" " apt-cache [opcje] showpkg pakiet1 [pakiet2 ...]\n" " apt-cache [opcje] showsrc pakiet1 [pakiet2 ...]\n" "\n" -"apt-cache to niskopoziomowe narzędzie służące do manipulowania\n" -"binarnymi plikami magazynów podręcznych APT-a, oraz do pobierania\n" -"z nich informacji.\n" +"apt-cache to niskopoziomowe narzędzie służące pobierania informacji\n" +"z podręcznego magazynu plików binarnych APT-a.\n" "\n" "Polecenia:\n" -" add - Dodaje plik pakietów do magazynu podręcznego\n" " gencaches - Buduje magazyn podręczny pakietów i źródeł\n" " showpkg - Pokazuje ogólne informacje na temat pojedynczego pakietu\n" " showsrc - Pokazuje informacje dla źródeł\n" @@ -241,18 +239,17 @@ msgstr "" "oraz apt.conf(5).\n" #: cmdline/apt-cdrom.cc:77 -#, fuzzy msgid "Please provide a name for this Disc, such as 'Debian 5.0.3 Disk 1'" -msgstr "Proszę wprowadzić nazwę dla tej płyty, np. \"Debian 2.1r1 Disk 1\"" +msgstr "Proszę wprowadzić nazwę dla tej płyty, np. \"Debian 5.0.3 Disk 1\"" #: cmdline/apt-cdrom.cc:92 msgid "Please insert a Disc in the drive and press enter" msgstr "Proszę włożyć dysk do napędu i nacisnąć enter" #: cmdline/apt-cdrom.cc:127 -#, fuzzy, c-format +#, c-format msgid "Failed to mount '%s' to '%s'" -msgstr "Nie udało się zmienić nazwy %s na %s" +msgstr "Nie udało się zamontować \"%s\" w \"%s\"" #: cmdline/apt-cdrom.cc:162 msgid "Repeat this process for the rest of the CDs in your set." @@ -319,7 +316,7 @@ msgstr "" " -c=? Czyta wskazany plik konfiguracyjny.\n" " -o=? Ustawia dowolną opcję konfiguracji, np. -o dir::cache=/tmp\n" -#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:1149 +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:1164 #, c-format msgid "Unable to write to %s" msgstr "Nie udało się pisać do %s" @@ -455,13 +452,12 @@ msgid "DB is old, attempting to upgrade %s" msgstr "Baza jest przestarzała, próbuję zaktualizować %s" #: ftparchive/cachedb.cc:72 -#, fuzzy msgid "" "DB format is invalid. If you upgraded from an older version of apt, please " "remove and re-create the database." msgstr "" -"Niepoprawny format bazy. Jeśli została zaktualizowana starsza wersja apt, " -"proszę usunąć i utworzyć ponownie bazę danych." +"Niepoprawny format bazy. Jeśli zaktualizowano ze starszej wersji apt, proszę " +"usunąć i utworzyć ponownie bazę danych." #: ftparchive/cachedb.cc:77 #, c-format @@ -478,7 +474,7 @@ msgstr "Nie udało się wykonać operacji stat na %s" msgid "Archive has no control record" msgstr "Archiwum nie posiada rekordu kontrolnego" -#: ftparchive/cachedb.cc:448 +#: ftparchive/cachedb.cc:452 msgid "Unable to get a cursor" msgstr "Nie udało się pobrać kursora" @@ -579,17 +575,17 @@ msgstr "Nie można otworzyć %s" #: ftparchive/override.cc:60 ftparchive/override.cc:166 #, c-format msgid "Malformed override %s line %lu #1" -msgstr "Błędna linia %2$lu #1 pliku override %1$s" +msgstr "Nieprawidłowa linia %2$lu #1 pliku override %1$s" #: ftparchive/override.cc:74 ftparchive/override.cc:178 #, c-format msgid "Malformed override %s line %lu #2" -msgstr "Błędna linia %2$lu #2 pliku override %1$s" +msgstr "Nieprawidłowa linia %2$lu #2 pliku override %1$s" #: ftparchive/override.cc:88 ftparchive/override.cc:191 #, c-format msgid "Malformed override %s line %lu #3" -msgstr "Błędna linia %2$lu #3 pliku override %1$s" +msgstr "Nieprawidłowa linia %2$lu #3 pliku override %1$s" #: ftparchive/override.cc:127 ftparchive/override.cc:201 #, c-format @@ -735,7 +731,7 @@ msgid "" "This should NOT be done unless you know exactly what you are doing!" msgstr "" "UWAGA: Zostaną usunięte następujące istotne pakiety.\n" -"Nie powinno się tego robić, chyba że dokładnie wiesz co robisz!" +"NIE należy kontynuować, jeśli nie jest się pewnym tego co się robi!" #: cmdline/apt-get.cc:594 #, c-format @@ -745,7 +741,7 @@ msgstr "%lu aktualizowanych, %lu nowo instalowanych, " #: cmdline/apt-get.cc:598 #, c-format msgid "%lu reinstalled, " -msgstr "%lu przeinstalowywanych, " +msgstr "%lu ponownie instalowanych, " #: cmdline/apt-get.cc:600 #, c-format @@ -763,14 +759,14 @@ msgid "%lu not fully installed or removed.\n" msgstr "%lu nie w pełni zainstalowanych lub usuniętych.\n" #: cmdline/apt-get.cc:628 -#, fuzzy, c-format +#, c-format msgid "Note, selecting '%s' for task '%s'\n" -msgstr "Uwaga, wybieranie %s za wyrażenie \"%s\"\n" +msgstr "Uwaga, wybieranie %s dla zadania \"%s\"\n" #: cmdline/apt-get.cc:634 -#, fuzzy, c-format +#, c-format msgid "Note, selecting '%s' for regex '%s'\n" -msgstr "Uwaga, wybieranie %s za wyrażenie \"%s\"\n" +msgstr "Uwaga, wybieranie %s dla wyrażenia \"%s\"\n" #: cmdline/apt-get.cc:651 #, c-format @@ -782,9 +778,8 @@ msgid " [Installed]" msgstr " [Zainstalowany]" #: cmdline/apt-get.cc:671 -#, fuzzy msgid " [Not candidate version]" -msgstr "Kandydujące wersje" +msgstr " [Brak wersji kandydującej]" #: cmdline/apt-get.cc:673 msgid "You should explicitly select one to install." @@ -806,19 +801,19 @@ msgid "However the following packages replace it:" msgstr "Jednak następujące pakiety go zastępują:" #: cmdline/apt-get.cc:706 -#, fuzzy, c-format +#, c-format msgid "Package '%s' has no installation candidate" msgstr "Pakiet %s nie ma kandydata do instalacji" #: cmdline/apt-get.cc:717 #, c-format msgid "Virtual packages like '%s' can't be removed\n" -msgstr "" +msgstr "Pakiety wirtualne, takie jak \"%s\" nie mogą być usunięte\n" #: cmdline/apt-get.cc:748 -#, fuzzy, c-format +#, c-format msgid "Note, selecting '%s' instead of '%s'\n" -msgstr "Uwaga, wybieranie %s zamiast %s\n" +msgstr "Uwaga, wybieranie \"%s\" zamiast \"%s\"\n" #: cmdline/apt-get.cc:778 #, c-format @@ -827,10 +822,10 @@ msgstr "" "Pomijanie %s, jest już zainstalowane, a nie została wybrana aktualizacja.\n" #: cmdline/apt-get.cc:782 -#, fuzzy, c-format +#, c-format msgid "Skipping %s, it is not installed and only upgrades are requested.\n" msgstr "" -"Pomijanie %s, jest już zainstalowane, a nie została wybrana aktualizacja.\n" +"Pomijanie %s, nie jest zainstalowane, a wybrano wyłącznie aktualizacje.\n" #: cmdline/apt-get.cc:794 #, c-format @@ -843,192 +838,193 @@ msgstr "" msgid "%s is already the newest version.\n" msgstr "%s jest już w najnowszej wersji.\n" -#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59 +#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2096 cmdline/apt-mark.cc:59 #, c-format msgid "%s set to manually installed.\n" msgstr "%s zaznaczony jako zainstalowany ręcznie.\n" #: cmdline/apt-get.cc:844 -#, fuzzy, c-format +#, c-format msgid "Selected version '%s' (%s) for '%s'\n" -msgstr "Wybrano wersję %s (%s) dla %s\n" +msgstr "Wybrano wersję \"%s\" (%s) pakietu \"%s\"\n" #: cmdline/apt-get.cc:849 -#, fuzzy, c-format +#, c-format msgid "Selected version '%s' (%s) for '%s' because of '%s'\n" -msgstr "Wybrano wersję %s (%s) dla %s\n" +msgstr "Wybrano wersję \"%s\" (%s) pakietu \"%s\", z powodu \"%s\"\n" -#: cmdline/apt-get.cc:893 +#: cmdline/apt-get.cc:891 #, c-format msgid "Package %s is not installed, so not removed\n" msgstr "Pakiet %s nie jest zainstalowany, więc nie zostanie usunięty.\n" -#: cmdline/apt-get.cc:971 +#: cmdline/apt-get.cc:969 msgid "Correcting dependencies..." msgstr "Naprawianie zależności..." -#: cmdline/apt-get.cc:974 +#: cmdline/apt-get.cc:972 msgid " failed." msgstr " nie udało się." -#: cmdline/apt-get.cc:977 +#: cmdline/apt-get.cc:975 msgid "Unable to correct dependencies" msgstr "Nie udało się naprawić zależności" -#: cmdline/apt-get.cc:980 +#: cmdline/apt-get.cc:978 msgid "Unable to minimize the upgrade set" msgstr "Nie udało się zminimalizować zbioru aktualizacji" -#: cmdline/apt-get.cc:982 +#: cmdline/apt-get.cc:980 msgid " Done" msgstr " Gotowe" -#: cmdline/apt-get.cc:986 +#: cmdline/apt-get.cc:984 msgid "You might want to run 'apt-get -f install' to correct these." msgstr "Należy uruchomić \"apt-get -f install\", aby je naprawić." -#: cmdline/apt-get.cc:989 +#: cmdline/apt-get.cc:987 msgid "Unmet dependencies. Try using -f." msgstr "Niespełnione zależności. Proszę spróbować użyć -f." -#: cmdline/apt-get.cc:1014 +#: cmdline/apt-get.cc:1012 msgid "WARNING: The following packages cannot be authenticated!" msgstr "UWAGA: Następujące pakiety nie mogą zostać zweryfikowane!" -#: cmdline/apt-get.cc:1018 +#: cmdline/apt-get.cc:1016 msgid "Authentication warning overridden.\n" -msgstr "Ostrzeżenie uwierzytelniania zignorowano.\n" +msgstr "Zignorowano ostrzeżenie uwierzytelniania.\n" -#: cmdline/apt-get.cc:1025 +#: cmdline/apt-get.cc:1023 msgid "Install these packages without verification [y/N]? " msgstr "Zainstalować te pakiety bez weryfikacji [t/N]? " -#: cmdline/apt-get.cc:1027 +#: cmdline/apt-get.cc:1025 msgid "Some packages could not be authenticated" msgstr "Niektóre pakiety nie mogły zostać zweryfikowane" -#: cmdline/apt-get.cc:1036 cmdline/apt-get.cc:1197 +#: cmdline/apt-get.cc:1034 cmdline/apt-get.cc:1195 msgid "There are problems and -y was used without --force-yes" -msgstr "Były problemy, a użyto -y bez --force-yes" +msgstr "Wystąpiły problemy, a użyto -y bez --force-yes" -#: cmdline/apt-get.cc:1077 +#: cmdline/apt-get.cc:1075 msgid "Internal error, InstallPackages was called with broken packages!" -msgstr "Błąd wewnętrzny, InstallPackages użyto z uszkodzonymi pakietami!" +msgstr "Błąd wewnętrzny, użyto InstallPackages z uszkodzonymi pakietami!" -#: cmdline/apt-get.cc:1086 +#: cmdline/apt-get.cc:1084 msgid "Packages need to be removed but remove is disabled." msgstr "Pakiety powinny zostać usunięte, ale Remove jest wyłączone." -#: cmdline/apt-get.cc:1097 +#: cmdline/apt-get.cc:1095 msgid "Internal error, Ordering didn't finish" msgstr "Błąd wewnętrzny, sortowanie niezakończone" -#: cmdline/apt-get.cc:1135 +#: cmdline/apt-get.cc:1133 msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" msgstr "" -"Dziwne. Rozmiary się nie zgadzają, proszę to zgłosić pod apt@packages.debian." -"org" +"Wystąpił dziwny błąd - rozmiary się nie zgadzają. Proszę to zgłosić pod " +"apt@packages.debian.org" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB -#: cmdline/apt-get.cc:1142 +#: cmdline/apt-get.cc:1140 #, c-format msgid "Need to get %sB/%sB of archives.\n" msgstr "Konieczne pobranie %sB/%sB archiwów.\n" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB -#: cmdline/apt-get.cc:1147 +#: cmdline/apt-get.cc:1145 #, c-format msgid "Need to get %sB of archives.\n" msgstr "Konieczne pobranie %sB archiwów.\n" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB -#: cmdline/apt-get.cc:1154 +#: cmdline/apt-get.cc:1152 #, c-format msgid "After this operation, %sB of additional disk space will be used.\n" msgstr "Po tej operacji zostanie dodatkowo użyte %sB miejsca na dysku.\n" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB -#: cmdline/apt-get.cc:1159 +#: cmdline/apt-get.cc:1157 #, c-format msgid "After this operation, %sB disk space will be freed.\n" msgstr "Po tej operacji zostanie zwolnione %sB miejsca na dysku.\n" -#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499 -#: cmdline/apt-get.cc:2502 +#: cmdline/apt-get.cc:1172 cmdline/apt-get.cc:1175 cmdline/apt-get.cc:2514 +#: cmdline/apt-get.cc:2517 #, c-format msgid "Couldn't determine free space in %s" msgstr "Nie udało się ustalić ilości wolnego miejsca w %s" -#: cmdline/apt-get.cc:1187 +#: cmdline/apt-get.cc:1185 #, c-format msgid "You don't have enough free space in %s." msgstr "Niestety w %s nie ma wystarczającej ilości wolnego miejsca." -#: cmdline/apt-get.cc:1203 cmdline/apt-get.cc:1223 +#: cmdline/apt-get.cc:1201 cmdline/apt-get.cc:1221 msgid "Trivial Only specified but this is not a trivial operation." -msgstr "Nakazano wykonywać tylko trywialne operacje, a to nie jest trywialne." +msgstr "Nakazano wykonywać tylko trywialne operacje, a ta do nich nie należy." -#: cmdline/apt-get.cc:1205 +# Bezpieczniej jest nie używać tu polskich znaków. +#: cmdline/apt-get.cc:1203 msgid "Yes, do as I say!" -msgstr "Tak, rób jak mówię!" +msgstr "Tak, jestem pewien!" -#: cmdline/apt-get.cc:1207 +#: cmdline/apt-get.cc:1205 #, c-format msgid "" "You are about to do something potentially harmful.\n" "To continue type in the phrase '%s'\n" " ?] " msgstr "" -"Zaraz zrobisz coś potencjalnie szkodliwego.\n" -"Aby kontynuować wpisz zdanie \"%s\"\n" +"Zaraz stanie się coś potencjalnie szkodliwego.\n" +"Aby kontynuować proszę napisać zdanie \"%s\"\n" " ?] " -#: cmdline/apt-get.cc:1213 cmdline/apt-get.cc:1232 +#: cmdline/apt-get.cc:1211 cmdline/apt-get.cc:1230 msgid "Abort." msgstr "Przerwane." -#: cmdline/apt-get.cc:1228 +#: cmdline/apt-get.cc:1226 msgid "Do you want to continue [Y/n]? " msgstr "Kontynuować [T/n]? " -#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438 +#: cmdline/apt-get.cc:1298 cmdline/apt-get.cc:2579 apt-pkg/algorithms.cc:1445 #, c-format msgid "Failed to fetch %s %s\n" msgstr "Nie udało się pobrać %s %s\n" -#: cmdline/apt-get.cc:1318 +#: cmdline/apt-get.cc:1316 msgid "Some files failed to download" msgstr "Nie udało się pobrać niektórych plików" -#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576 +#: cmdline/apt-get.cc:1317 cmdline/apt-get.cc:2591 msgid "Download complete and in download only mode" msgstr "Ukończono pobieranie w trybie samego pobierania" -#: cmdline/apt-get.cc:1325 +#: cmdline/apt-get.cc:1323 msgid "" "Unable to fetch some archives, maybe run apt-get update or try with --fix-" "missing?" msgstr "" "Nie udało się pobrać niektórych archiwów, proszę spróbować uruchomić apt-get " -"update lub użyć opcji --fix-missing" +"update lub użyć opcji --fix-missing." -#: cmdline/apt-get.cc:1329 +#: cmdline/apt-get.cc:1327 msgid "--fix-missing and media swapping is not currently supported" msgstr "--fix-missing i zamiana nośników nie są obecnie obsługiwane" -#: cmdline/apt-get.cc:1334 +#: cmdline/apt-get.cc:1332 msgid "Unable to correct missing packages." msgstr "Nie udało się poprawić brakujących pakietów." -#: cmdline/apt-get.cc:1335 +#: cmdline/apt-get.cc:1333 msgid "Aborting install." msgstr "Przerywanie instalacji" -#: cmdline/apt-get.cc:1363 +#: cmdline/apt-get.cc:1361 msgid "" "The following package disappeared from your system as\n" "all files have been overwritten by other packages:" @@ -1036,37 +1032,44 @@ msgid_plural "" "The following packages disappeared from your system as\n" "all files have been overwritten by other packages:" msgstr[0] "" +"Następujący pakiet zniknął z tego systemu, ponieważ wszystkie jego pliki " +"zostały nadpisane przez inne pakiety:" msgstr[1] "" +"Następujące pakiety zniknęły z tego systemu, ponieważ wszystkie ich pliki " +"zostały nadpisane przez inne pakiety:" +msgstr[2] "" +"Następujące pakiety zniknęły z tego systemu, ponieważ wszystkie ich pliki " +"zostały nadpisane przez inne pakiety:" -#: cmdline/apt-get.cc:1367 +#: cmdline/apt-get.cc:1365 msgid "Note: This is done automatic and on purpose by dpkg." -msgstr "" +msgstr "Uwaga: dpkg wykonał to automatycznie i celowo." -#: cmdline/apt-get.cc:1505 +#: cmdline/apt-get.cc:1503 #, c-format msgid "Ignore unavailable target release '%s' of package '%s'" -msgstr "" +msgstr "Ignorowanie niedostępnego wydania docelowego %s pakietu %s" -#: cmdline/apt-get.cc:1537 -#, fuzzy, c-format +#: cmdline/apt-get.cc:1535 +#, c-format msgid "Picking '%s' as source package instead of '%s'\n" -msgstr "Nie udało się wykonać operacji stat na liście pakietów źródłowych %s" +msgstr "Zmieniono wybrany pakiet źródłowy na \"%s\" z \"%s\"\n" #. if (VerTag.empty() == false && Last == 0) -#: cmdline/apt-get.cc:1575 +#: cmdline/apt-get.cc:1573 #, c-format msgid "Ignore unavailable version '%s' of package '%s'" -msgstr "" +msgstr "Ignorowanie niedostępnej wersji \"%s\" pakietu \"%s\"" -#: cmdline/apt-get.cc:1591 +#: cmdline/apt-get.cc:1589 msgid "The update command takes no arguments" msgstr "Polecenie update nie wymaga żadnych argumentów" -#: cmdline/apt-get.cc:1653 +#: cmdline/apt-get.cc:1652 msgid "We are not supposed to delete stuff, can't start AutoRemover" msgstr "Nic nie powinno być usuwane, AutoRemover nie zostanie uruchomiony" -#: cmdline/apt-get.cc:1748 +#: cmdline/apt-get.cc:1756 msgid "" "Hmm, seems like the AutoRemover destroyed something which really\n" "shouldn't happen. Please file a bug report against apt." @@ -1084,61 +1087,67 @@ msgstr "" #. "that package should be filed.") << endl; #. } #. -#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921 +#: cmdline/apt-get.cc:1759 cmdline/apt-get.cc:1929 msgid "The following information may help to resolve the situation:" msgstr "Następujące informacje mogą pomóc rozwiązać sytuację:" -#: cmdline/apt-get.cc:1755 +#: cmdline/apt-get.cc:1763 msgid "Internal Error, AutoRemover broke stuff" -msgstr "Błąd wewnętrzny, AutoRemover wszystko popsuł" +msgstr "Błąd wewnętrzny spowodowany przez AutoRemover" -#: cmdline/apt-get.cc:1762 -#, fuzzy +#: cmdline/apt-get.cc:1770 msgid "" "The following package was automatically installed and is no longer required:" msgid_plural "" "The following packages were automatically installed and are no longer " "required:" msgstr[0] "" +"Następujący pakiet został zainstalowany automatycznie i nie jest już więcej " +"wymagany:" +msgstr[1] "" "Następujące pakiety zostały zainstalowane automatycznie i nie są już więcej " "wymagane:" -msgstr[1] "" +msgstr[2] "" "Następujące pakiety zostały zainstalowane automatycznie i nie są już więcej " "wymagane:" -#: cmdline/apt-get.cc:1766 -#, fuzzy, c-format +#: cmdline/apt-get.cc:1774 +#, c-format msgid "%lu package was automatically installed and is no longer required.\n" msgid_plural "" "%lu packages were automatically installed and are no longer required.\n" msgstr[0] "" -"%lu pakiety(ów) zostały zainstalowane automatycznie i nie są już więcej " -"wymagane.\n" +"%lu pakiet został zainstalowany automatycznie i nie jest już więcej " +"wymagany.\n" msgstr[1] "" -"%lu pakiety(ów) zostały zainstalowane automatycznie i nie są już więcej " +"%lu pakiety zostały zainstalowane automatycznie i nie są już więcej " +"wymagane.\n" +msgstr[2] "" +"%lu pakietów zostało zainstalowanych automatycznie i nie są już więcej " "wymagane.\n" -#: cmdline/apt-get.cc:1768 +#: cmdline/apt-get.cc:1776 msgid "Use 'apt-get autoremove' to remove them." msgstr "Aby je usunąć należy użyć \"apt-get autoremove\"." -#: cmdline/apt-get.cc:1787 +#: cmdline/apt-get.cc:1795 msgid "Internal error, AllUpgrade broke stuff" -msgstr "Błąd wewnętrzny, AllUpgrade wszystko popsuło" +msgstr "Błąd wewnętrzny spowodowany przez AllUpgrade" -#: cmdline/apt-get.cc:1886 +#: cmdline/apt-get.cc:1894 msgid "You might want to run 'apt-get -f install' to correct these:" -msgstr "Należy uruchomić \"apt-get -f install\", aby je naprawić:" +msgstr "" +"Należy uruchomić \"apt-get -f install\", aby naprawić poniższe problemy:" -#: cmdline/apt-get.cc:1890 +#: cmdline/apt-get.cc:1898 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." msgstr "" -"Niespełnione zależności. Proszę spróbować \"apt-get -f install\" bez " +"Niespełnione zależności. Proszę spróbować wykonać \"apt-get -f install\" bez " "pakietów (lub podać rozwiązanie)." -#: cmdline/apt-get.cc:1906 +#: cmdline/apt-get.cc:1914 msgid "" "Some packages could not be installed. This may mean that you have\n" "requested an impossible situation or if you are using the unstable\n" @@ -1146,183 +1155,194 @@ msgid "" "or been moved out of Incoming." msgstr "" "Nie udało się zainstalować niektórych pakietów. Może to oznaczać,\n" -"że zażądano niemożliwej sytuacji lub używasz dystrybucji niestabilnej,\n" +"że zażądano niemożliwej sytuacji lub użyto dystrybucji niestabilnej,\n" "w której niektóre pakiety nie zostały jeszcze utworzone lub przeniesione\n" "z katalogu Incoming (\"Przychodzące\")." -#: cmdline/apt-get.cc:1924 +#: cmdline/apt-get.cc:1932 msgid "Broken packages" msgstr "Pakiety są uszkodzone" -#: cmdline/apt-get.cc:1950 +#: cmdline/apt-get.cc:1958 msgid "The following extra packages will be installed:" msgstr "Zostaną zainstalowane następujące dodatkowe pakiety:" -#: cmdline/apt-get.cc:2040 +#: cmdline/apt-get.cc:2048 msgid "Suggested packages:" msgstr "Sugerowane pakiety:" -#: cmdline/apt-get.cc:2041 +#: cmdline/apt-get.cc:2049 msgid "Recommended packages:" msgstr "Polecane pakiety:" -#: cmdline/apt-get.cc:2083 +#: cmdline/apt-get.cc:2091 #, c-format msgid "Couldn't find package %s" msgstr "Nie udało się odnaleźć pakietu %s" -#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61 -#, fuzzy, c-format +#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:61 +#, c-format msgid "%s set to automatically installed.\n" -msgstr "%s zaznaczony jako zainstalowany ręcznie.\n" +msgstr "%s zaznaczony jako zainstalowany automatycznie.\n" -#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105 +#: cmdline/apt-get.cc:2106 cmdline/apt-mark.cc:105 msgid "" "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' " "instead." msgstr "" +"To polecenie jest przestarzałe. Prosimy używać \"apt-mark auto\" i \"apt-" +"mark manual\"." -#: cmdline/apt-get.cc:2114 +#: cmdline/apt-get.cc:2122 msgid "Calculating upgrade... " msgstr "Obliczanie aktualizacji..." -#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111 +#: cmdline/apt-get.cc:2125 methods/ftp.cc:708 methods/connect.cc:111 msgid "Failed" msgstr "Nie udało się" -#: cmdline/apt-get.cc:2122 +#: cmdline/apt-get.cc:2130 msgid "Done" msgstr "Gotowe" -#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197 +#: cmdline/apt-get.cc:2197 cmdline/apt-get.cc:2205 msgid "Internal error, problem resolver broke stuff" -msgstr "Błąd wewnętrzny, rozwiązywanie problemów wszystko popsuło" +msgstr "Błąd wewnętrzny, spowodowany przez moduł rozwiązywania problemów" -#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254 +#: cmdline/apt-get.cc:2233 cmdline/apt-get.cc:2269 msgid "Unable to lock the download directory" msgstr "Nie udało się zablokować katalogu pobierania" -#: cmdline/apt-get.cc:2305 +#: cmdline/apt-get.cc:2320 #, c-format msgid "Downloading %s %s" -msgstr "" +msgstr "Pobieranie %s %s" -#: cmdline/apt-get.cc:2361 +#: cmdline/apt-get.cc:2376 msgid "Must specify at least one package to fetch source for" msgstr "" "Należy podać przynajmniej jeden pakiet, dla którego mają zostać pobrane " "źródła" -#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713 +#: cmdline/apt-get.cc:2416 cmdline/apt-get.cc:2728 #, c-format msgid "Unable to find a source package for %s" msgstr "Nie udało się odnaleźć źródła dla pakietu %s" -#: cmdline/apt-get.cc:2418 +#: cmdline/apt-get.cc:2433 #, c-format msgid "" "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n" "%s\n" msgstr "" +"UWAGA: pakietowanie \"%s\" jest zarządzane w systemie kontroli wersji \"%s\" " +"pod adresem:\n" +"%s\n" -#: cmdline/apt-get.cc:2423 +#: cmdline/apt-get.cc:2438 #, c-format msgid "" "Please use:\n" "bzr get %s\n" "to retrieve the latest (possibly unreleased) updates to the package.\n" msgstr "" +"Proszę użyć:\n" +"bzr get %s\n" +"by pobrać najnowsze (prawdopodobnie jeszcze niewydane) poprawki tego " +"pakietu.\n" -#: cmdline/apt-get.cc:2476 +#: cmdline/apt-get.cc:2491 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "Pomijanie już pobranego pliku \"%s\"\n" -#: cmdline/apt-get.cc:2513 +#: cmdline/apt-get.cc:2528 #, c-format msgid "You don't have enough free space in %s" msgstr "W %s nie ma wystarczającej ilości wolnego miejsca" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB -#: cmdline/apt-get.cc:2522 +#: cmdline/apt-get.cc:2537 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "Konieczne pobranie %sB/%sB archiwów źródeł.\n" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB -#: cmdline/apt-get.cc:2527 +#: cmdline/apt-get.cc:2542 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "Konieczne pobranie %sB archiwów źródeł.\n" -#: cmdline/apt-get.cc:2533 +#: cmdline/apt-get.cc:2548 #, c-format msgid "Fetch source %s\n" -msgstr "Pobierz źródło %s\n" +msgstr "Pobieranie źródeł %s\n" -#: cmdline/apt-get.cc:2571 +#: cmdline/apt-get.cc:2586 msgid "Failed to fetch some archives." msgstr "Nie udało się pobrać niektórych archiwów." -#: cmdline/apt-get.cc:2602 +#: cmdline/apt-get.cc:2617 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "Pomijanie rozpakowania już rozpakowanego źródła w %s\n" -#: cmdline/apt-get.cc:2614 +#: cmdline/apt-get.cc:2629 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "Polecenie rozpakowania \"%s\" zawiodło.\n" -#: cmdline/apt-get.cc:2615 +#: cmdline/apt-get.cc:2630 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "Proszę sprawdzić czy pakiet \"dpkg-dev\" jest zainstalowany.\n" -#: cmdline/apt-get.cc:2637 +#: cmdline/apt-get.cc:2652 #, c-format msgid "Build command '%s' failed.\n" msgstr "Polecenie budowania \"%s\" zawiodło.\n" -#: cmdline/apt-get.cc:2657 +#: cmdline/apt-get.cc:2672 msgid "Child process failed" msgstr "Proces potomny zawiódł" -#: cmdline/apt-get.cc:2676 +#: cmdline/apt-get.cc:2691 msgid "Must specify at least one package to check builddeps for" msgstr "" "Należy podać przynajmniej jeden pakiet, dla którego mają zostać sprawdzone " "zależności dla budowania" -#: cmdline/apt-get.cc:2701 +#: cmdline/apt-get.cc:2716 #, c-format msgid "" "No architecture information available for %s. See apt.conf(5) APT::" "Architectures for setup" msgstr "" +"Nie znaleziono informacji o architekturze dla %s. Proszę zapoznać się z apt." +"conf(5) APT::Architectures" -#: cmdline/apt-get.cc:2718 +#: cmdline/apt-get.cc:2733 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "Nie udało się pobrać informacji o zależnościach dla budowania %s" -#: cmdline/apt-get.cc:2738 +#: cmdline/apt-get.cc:2753 #, c-format msgid "%s has no build depends.\n" msgstr "%s nie ma zależności dla budowania.\n" -#: cmdline/apt-get.cc:2868 -#, fuzzy, c-format +#: cmdline/apt-get.cc:2883 +#, c-format msgid "" "%s dependency for %s can't be satisfied because %s is not allowed on '%s' " "packages" msgstr "" -"Zależność %s od %s nie może zostać spełniona, ponieważ nie znaleziono " -"pakietu %s" +"Zależność %s od %s nie może zostać spełniona, ponieważ %s nie jest dozwolone " +"w pakietach \"%s\"" -#: cmdline/apt-get.cc:2889 +#: cmdline/apt-get.cc:2904 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " @@ -1331,56 +1351,55 @@ msgstr "" "Zależność %s od %s nie może zostać spełniona, ponieważ nie znaleziono " "pakietu %s" -#: cmdline/apt-get.cc:2912 +#: cmdline/apt-get.cc:2927 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" "Nie udało się spełnić zależności %s od %s: Zainstalowany pakiet %s jest zbyt " "nowy" -#: cmdline/apt-get.cc:2951 -#, fuzzy, c-format +#: cmdline/apt-get.cc:2966 +#, c-format msgid "" "%s dependency for %s cannot be satisfied because candidate version of " "package %s can't satisfy version requirements" msgstr "" -"Zależność %s od %s nie może zostać spełniona, ponieważ żadna z dostępnych " -"wersji pakietu %s nie ma odpowiedniej wersji" +"Zależność %s od %s nie może zostać spełniona, ponieważ kandydująca wersja " +"pakietu %s nie spełnia wymagań wersji" -#: cmdline/apt-get.cc:2957 -#, fuzzy, c-format +#: cmdline/apt-get.cc:2972 +#, c-format msgid "" "%s dependency for %s cannot be satisfied because package %s has no candidate " "version" msgstr "" -"Zależność %s od %s nie może zostać spełniona, ponieważ nie znaleziono " -"pakietu %s" +"Zależność %s od %s nie może zostać spełniona, ponieważ pakiet %s nie ma " +"wersji kandydującej" -#: cmdline/apt-get.cc:2980 +#: cmdline/apt-get.cc:2995 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "Nie udało się spełnić zależności %s od %s: %s" -#: cmdline/apt-get.cc:2996 +#: cmdline/apt-get.cc:3011 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "Nie udało się spełnić zależności dla budowania %s." -#: cmdline/apt-get.cc:3001 +#: cmdline/apt-get.cc:3016 msgid "Failed to process build dependencies" msgstr "Nie udało się przetworzyć zależności dla budowania" -#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106 -#, fuzzy, c-format +#: cmdline/apt-get.cc:3109 cmdline/apt-get.cc:3121 +#, c-format msgid "Changelog for %s (%s)" -msgstr "Podłączanie do %s (%s)" +msgstr "Dziennik zmian %s (%s)" -#: cmdline/apt-get.cc:3225 +#: cmdline/apt-get.cc:3240 msgid "Supported modules:" msgstr "Obsługiwane moduły:" -#: cmdline/apt-get.cc:3266 -#, fuzzy +#: cmdline/apt-get.cc:3281 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1438,7 +1457,7 @@ msgstr "" " install - Instaluje nowe pakiety (pakiet to np. libc6, nie libc6.deb)\n" " remove - Usuwa pakiety\n" " autoremove - Usuwa automatycznie wszystkie nieużywane pakiety\n" -" purge - Usuwa i czyści pakiety\n" +" purge - Usuwa pakiety łącznie z plikami konfiguracyjnymi\n" " source - Pobiera archiwa źródłowe\n" " build-dep - Konfiguruje zależności dla budowania pakietów źródłowych\n" " dist-upgrade - Aktualizacja dystrybucji, patrz apt-get(8)\n" @@ -1446,9 +1465,11 @@ msgstr "" " clean - Usuwa pobrane pliki archiwów\n" " autoclean - Usuwa stare pobrane pliki archiwów\n" " check - Sprawdza, czy wszystkie zależności są spełnione\n" +" changelog - Pobiera i wyświetla dziennika zmian wybranych pakietów\n" +" download - Pobiera pakiet binarny do bieżącego katalogu\n" "\n" "Opcje:\n" -" -h Ten tekst pomocy.\n" +" -h Ten tekst pomocy\n" " -q Nie pokazuje wskaźnika postępu (przydatne przy rejestrowaniu " "działania)\n" " -qq Nie wypisuje nic oprócz komunikatów błędów\n" @@ -1466,7 +1487,7 @@ msgstr "" "apt-get(8), sources.list(5) i apt.conf(5).\n" " Ten APT ma moce Super Krowy.\n" -#: cmdline/apt-get.cc:3429 +#: cmdline/apt-get.cc:3444 msgid "" "NOTE: This is only a simulation!\n" " apt-get needs root privileges for real execution.\n" @@ -1474,25 +1495,28 @@ msgid "" " so don't depend on the relevance to the real current situation!" msgstr "" "UWAGA: To jest tylko symulacja!\n" -" apt-get wymaga normalnie praw administracyjnych dla działania.\n" +" apt-get wymaga do normalnego działania uprawnień administratora.\n" " Aktualnie blokowanie jest wyłączone, więc nie należy polegać\n" " na związku z rzeczywistą sytuacją!" +# Ujednolicono z aptitude #: cmdline/acqprogress.cc:57 msgid "Hit " -msgstr "Traf " +msgstr "Stary " #: cmdline/acqprogress.cc:81 msgid "Get:" -msgstr "Pob: " +msgstr "Pobieranie:" +# Wyrównane do Hit i Err. #: cmdline/acqprogress.cc:112 msgid "Ign " -msgstr "Ign " +msgstr "Ign. " +# Wyrównane do Hit i Ign. #: cmdline/acqprogress.cc:116 msgid "Err " -msgstr "Błąd " +msgstr "Błąd " #: cmdline/acqprogress.cc:137 #, c-format @@ -1516,43 +1540,45 @@ msgstr "" "do napędu \"%s\" i nacisnąć enter\n" #: cmdline/apt-mark.cc:46 -#, fuzzy, c-format +#, c-format msgid "%s can not be marked as it is not installed.\n" -msgstr "ale nie jest zainstalowany" +msgstr "%s nie może zostać oznaczony, ponieważ nie jest zainstalowany.\n" #: cmdline/apt-mark.cc:52 -#, fuzzy, c-format +#, c-format msgid "%s was already set to manually installed.\n" -msgstr "%s zaznaczony jako zainstalowany ręcznie.\n" +msgstr "%s został już ustawiony jako zainstalowany ręcznie.\n" #: cmdline/apt-mark.cc:54 -#, fuzzy, c-format +#, c-format msgid "%s was already set to automatically installed.\n" -msgstr "%s zaznaczony jako zainstalowany ręcznie.\n" +msgstr "%s został już ustawiony jako zainstalowany automatycznie.\n" #: cmdline/apt-mark.cc:169 -#, fuzzy, c-format +#, c-format msgid "%s was already set on hold.\n" -msgstr "%s jest już w najnowszej wersji.\n" +msgstr "%s został już zatrzymany.\n" #: cmdline/apt-mark.cc:171 -#, fuzzy, c-format +#, c-format msgid "%s was already not hold.\n" -msgstr "%s jest już w najnowszej wersji.\n" +msgstr "%s został już odznaczony jako zatrzymany.\n" #: cmdline/apt-mark.cc:185 cmdline/apt-mark.cc:207 -#, fuzzy, c-format +#, c-format msgid "%s set on hold.\n" -msgstr "%s zaznaczony jako zainstalowany ręcznie.\n" +msgstr "%s został zatrzymany.\n" #: cmdline/apt-mark.cc:187 cmdline/apt-mark.cc:212 -#, fuzzy, c-format +#, c-format msgid "Canceled hold on %s.\n" -msgstr "Nie udało się otworzyć %s" +msgstr "Odznaczono zatrzymanie %s\n" +# Musi pasować do su i sudo. #: cmdline/apt-mark.cc:220 msgid "Executing dpkg failed. Are you root?" msgstr "" +"Uruchomienie dpkg nie powiodło się. Czy użyto uprawnień administratora?" #: cmdline/apt-mark.cc:268 msgid "" @@ -1575,6 +1601,27 @@ msgid "" " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" "See the apt-mark(8) and apt.conf(5) manual pages for more information." msgstr "" +"Użycie: apt-mark [opcje] {auto|manual} pakiet1 [pakiet2 ...]\n" +"\n" +"apt-mark jest prostym poleceniem wiersza poleceń do oznaczania pakietów\n" +"jako zainstalowane automatycznie lub ręcznie. Może także służyć\n" +"do wyświetlania stanu oznaczeń.\n" +"\n" +"Polecenia:\n" +" auto - Oznacza dany pakiet jako zainstalowany automatycznie\n" +" manual - Oznacza dany pakiet jako zainstalowany ręcznie\n" +"\n" +"Opcje:\n" +" -h Ten tekst pomocy\n" +" -q Nie pokazuje wskaźnika postępu (przydatne przy rejestrowaniu " +"działania)\n" +" -qq Nie wypisuje nic oprócz komunikatów błędów\n" +" -s Symulacja - wyświetla jedynie co powinno zostać zrobione\n" +" -f zapis/odczyt oznaczenia jako automatyczny/ręczny danego pliku\n" +" -c=? Czyta wskazany plik konfiguracyjny.\n" +" -o=? Ustawia dowolną opcję konfiguracji, np. -o dir::cache=/tmp\n" +"Proszę zapoznać się ze stronami podręcznika systemowego apt-mark(8)\n" +"i apt.conf(5), aby uzyskać więcej informacji." #: cmdline/apt-sortpkgs.cc:86 msgid "Unknown package record!" @@ -1615,30 +1662,29 @@ msgstr "Proszę nacisnąć enter, aby kontynuować." #: dselect/install:91 msgid "Do you want to erase any previously downloaded .deb files?" -msgstr "Usunąć wszystkie pobrane wcześniej pliki .deb?" +msgstr "Czy usunąć wszystkie pobrane wcześniej pliki .deb?" # Note to translators: The following four messages belong together. It doesn't # matter where sentences start, but it has to fit in just these four lines, and # at only 80 characters per line, if possible. #: dselect/install:101 -#, fuzzy msgid "Some errors occurred while unpacking. Packages that were installed" msgstr "Wystąpiły problemy przy rozpakowywaniu. Zainstalowane pakiety zostaną" #: dselect/install:102 -#, fuzzy msgid "will be configured. This may result in duplicate errors" msgstr "skonfigurowane. Może to spowodować podwójne błędy lub błędy" #: dselect/install:103 msgid "or errors caused by missing dependencies. This is OK, only the errors" msgstr "" -"spowodowane brakującymi zależnościami. To jest normalne. Tylko powyższe" +"spowodowane brakującymi zależnościami. Jest to normalne. Tylko błędy nad tym" #: dselect/install:104 msgid "" "above this message are important. Please fix them and run [I]nstall again" -msgstr "błędy są istotne. Proszę je poprawić i ponownie wybrać [I]nstalację." +msgstr "" +"komunikatem są istotne. Proszę je poprawić i ponownie wybrać [I]nstalację." #: dselect/update:30 msgid "Merging available information" @@ -1674,9 +1720,9 @@ msgid "Error reading archive member header" msgstr "Błąd przy czytaniu nagłówka składnika archiwum" #: apt-inst/contrib/arfile.cc:90 -#, fuzzy, c-format +#, c-format msgid "Invalid archive member header %s" -msgstr "Nieprawidłowy nagłówek składnika archiwum" +msgstr "Nieprawidłowy nagłówek składnika archiwum: %s" #: apt-inst/contrib/arfile.cc:102 msgid "Invalid archive member header" @@ -1771,7 +1817,7 @@ msgstr "Ścieżka jest zbyt długa" #: apt-inst/extract.cc:412 #, c-format msgid "Overwrite package match with no version for %s" -msgstr "Dopasowanie dla %s nadpisującego pakietu bez wersji" +msgstr "Nadpisujący pakiet nie pasuje z wersją %s" #: apt-inst/extract.cc:429 #, c-format @@ -1782,8 +1828,8 @@ msgstr "Plik %s/%s nadpisuje plik w pakiecie %s" #. Only warn if there is no sources.list file. #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204 -#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104 -#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352 +#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:454 apt-pkg/init.cc:103 +#: apt-pkg/init.cc:111 apt-pkg/clean.cc:33 apt-pkg/policy.cc:353 #: methods/mirror.cc:91 #, c-format msgid "Unable to read %s" @@ -1811,11 +1857,11 @@ msgstr "Nie udało się wykonać operacji stat na %sinfo" #: apt-inst/deb/dpkgdb.cc:119 msgid "The info and temp directories need to be on the same filesystem" -msgstr "Pliki info i katalog tymczasowy muszą być na tym samym systemie plików" +msgstr "Pliki info i katalog tymczasowy muszą być w tym samym systemie plików" -#: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048 -#: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158 -#: apt-pkg/pkgcachegen.cc:1320 +#: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1063 +#: apt-pkg/pkgcachegen.cc:1167 apt-pkg/pkgcachegen.cc:1173 +#: apt-pkg/pkgcachegen.cc:1335 msgid "Reading package lists" msgstr "Czytanie list pakietów" @@ -1874,7 +1920,7 @@ msgstr "Błąd wewnętrzny przy dodawaniu ominięcia" #: apt-inst/deb/dpkgdb.cc:379 msgid "The pkg cache must be initialized first" -msgstr "Magazyn podręczny pakietów musi wcześniej zostać zainicjalizowany" +msgstr "Magazyn podręczny pakietów musi zostać wcześniej zainicjalizowany" #: apt-inst/deb/dpkgdb.cc:439 #, c-format @@ -1916,7 +1962,7 @@ msgstr "Błąd wewnętrzny, nie udało się odnaleźć składnika %s" #: apt-inst/deb/debfile.cc:189 msgid "Failed to locate a valid control file" -msgstr "Nie udało się odnaleźć poprawnego pliku control" +msgstr "Nie udało się odnaleźć poprawnego pliku kontrolnego" #: apt-inst/deb/debfile.cc:274 msgid "Unparsable control file" @@ -1924,7 +1970,7 @@ msgstr "Plik kontrolny nie może zostać poprawnie zinterpretowany" #: methods/bzip2.cc:60 methods/gzip.cc:52 msgid "Empty files can't be valid archives" -msgstr "" +msgstr "Puste pliki nie mogą być prawidłowymi archiwami" #: methods/bzip2.cc:64 #, c-format @@ -1937,22 +1983,22 @@ msgid "Read error from %s process" msgstr "Błąd odczytu z procesu %s" #: methods/bzip2.cc:140 methods/bzip2.cc:149 methods/copy.cc:43 -#: methods/gzip.cc:92 methods/gzip.cc:101 methods/rred.cc:524 -#: methods/rred.cc:533 +#: methods/gzip.cc:92 methods/gzip.cc:101 methods/rred.cc:527 +#: methods/rred.cc:536 msgid "Failed to stat" msgstr "Nie udało się wykonać operacji stat" #: methods/bzip2.cc:146 methods/copy.cc:80 methods/gzip.cc:98 -#: methods/rred.cc:530 +#: methods/rred.cc:533 msgid "Failed to set modification time" msgstr "Nie udało się ustawić czasu modyfikacji" -#: methods/cdrom.cc:199 +#: methods/cdrom.cc:200 #, c-format msgid "Unable to read the cdrom database %s" msgstr "Nie można odczytać bazy danych CD-ROM-ów %s" -#: methods/cdrom.cc:208 +#: methods/cdrom.cc:209 msgid "" "Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " "cannot be used to add new CD-ROMs" @@ -1960,20 +2006,20 @@ msgstr "" "Proszę użyć programu apt-cdrom, aby APT mógł rozpoznać tę płytę CD. Nowych " "płyt nie można dodawać przy pomocy polecenia apt-get update" -#: methods/cdrom.cc:218 +#: methods/cdrom.cc:219 msgid "Wrong CD-ROM" msgstr "Niewłaściwa płyta CD" -#: methods/cdrom.cc:245 +#: methods/cdrom.cc:246 #, c-format msgid "Unable to unmount the CD-ROM in %s, it may still be in use." msgstr "Nie udało się odmontować CD-ROM-u w %s, być może wciąż jest używany." -#: methods/cdrom.cc:250 +#: methods/cdrom.cc:251 msgid "Disk not found." msgstr "Nie odnaleziono dysku." -#: methods/cdrom.cc:258 methods/file.cc:79 methods/rsh.cc:265 +#: methods/cdrom.cc:259 methods/file.cc:79 methods/rsh.cc:265 msgid "File not found" msgstr "Nie odnaleziono pliku" @@ -1982,34 +2028,34 @@ msgid "Invalid URI, local URIS must not start with //" msgstr "Nieprawidłowe URI, lokalne URI nie mogą zaczynać się od //" #. Login must be before getpeername otherwise dante won't work. -#: methods/ftp.cc:168 +#: methods/ftp.cc:169 msgid "Logging in" msgstr "Logowanie się" -#: methods/ftp.cc:174 +#: methods/ftp.cc:175 msgid "Unable to determine the peer name" msgstr "Nie można określić nazwy zdalnego systemu" -#: methods/ftp.cc:179 +#: methods/ftp.cc:180 msgid "Unable to determine the local name" msgstr "Nie udało się określić nazwy lokalnego systemu" -#: methods/ftp.cc:210 methods/ftp.cc:238 +#: methods/ftp.cc:211 methods/ftp.cc:239 #, c-format msgid "The server refused the connection and said: %s" msgstr "Serwer odrzucił połączenie, otrzymana odpowiedź: %s" -#: methods/ftp.cc:216 +#: methods/ftp.cc:217 #, c-format msgid "USER failed, server said: %s" msgstr "Polecenie USER nie powiodło się, odpowiedź serwera: %s" -#: methods/ftp.cc:223 +#: methods/ftp.cc:224 #, c-format msgid "PASS failed, server said: %s" msgstr "Polecenie PASS nie powiodło się, odpowiedź serwera: %s" -#: methods/ftp.cc:243 +#: methods/ftp.cc:244 msgid "" "A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " "is empty." @@ -2017,123 +2063,123 @@ msgstr "" "Określono serwer pośredniczący, ale nie określono skryptu rejestrowania, " "Acquire::ftp::ProxyLogin jest puste." -#: methods/ftp.cc:271 +#: methods/ftp.cc:272 #, c-format msgid "Login script command '%s' failed, server said: %s" msgstr "" "Polecenie skryptu rejestrowania \"%s\" nie powiodło się, odpowiedź serwera: " "%s" -#: methods/ftp.cc:297 +#: methods/ftp.cc:298 #, c-format msgid "TYPE failed, server said: %s" msgstr "Polecenie TYPE nie powiodło się, odpowiedź serwera: %s" -#: methods/ftp.cc:335 methods/ftp.cc:446 methods/rsh.cc:184 methods/rsh.cc:227 +#: methods/ftp.cc:336 methods/ftp.cc:447 methods/rsh.cc:184 methods/rsh.cc:227 msgid "Connection timeout" msgstr "Przekroczenie czasu połączenia" -#: methods/ftp.cc:341 +#: methods/ftp.cc:342 msgid "Server closed the connection" msgstr "Serwer zamknął połączenie" -#: methods/ftp.cc:344 apt-pkg/contrib/fileutl.cc:820 methods/rsh.cc:191 +#: methods/ftp.cc:345 apt-pkg/contrib/fileutl.cc:831 methods/rsh.cc:191 msgid "Read error" msgstr "Błąd odczytu" -#: methods/ftp.cc:351 methods/rsh.cc:198 +#: methods/ftp.cc:352 methods/rsh.cc:198 msgid "A response overflowed the buffer." msgstr "Odpowiedź przepełniła bufor." -#: methods/ftp.cc:368 methods/ftp.cc:380 +#: methods/ftp.cc:369 methods/ftp.cc:381 msgid "Protocol corruption" msgstr "Naruszenie zasad protokołu" -#: methods/ftp.cc:452 apt-pkg/contrib/fileutl.cc:862 methods/rsh.cc:233 +#: methods/ftp.cc:453 apt-pkg/contrib/fileutl.cc:873 methods/rsh.cc:233 msgid "Write error" msgstr "Błąd zapisu" -#: methods/ftp.cc:692 methods/ftp.cc:698 methods/ftp.cc:734 +#: methods/ftp.cc:693 methods/ftp.cc:699 methods/ftp.cc:735 msgid "Could not create a socket" msgstr "Nie udało się utworzyć gniazda" -#: methods/ftp.cc:703 +#: methods/ftp.cc:704 msgid "Could not connect data socket, connection timed out" msgstr "Nie udało się połączyć gniazda danych, przekroczenie czasu połączenia" -#: methods/ftp.cc:709 +#: methods/ftp.cc:710 msgid "Could not connect passive socket." msgstr "Nie udało się połączyć pasywnego gniazda." -#: methods/ftp.cc:727 +#: methods/ftp.cc:728 msgid "getaddrinfo was unable to get a listening socket" msgstr "getaddrinfo nie było w stanie uzyskać nasłuchującego gniazda" -#: methods/ftp.cc:741 +#: methods/ftp.cc:742 msgid "Could not bind a socket" msgstr "Nie udało się przyłączyć gniazda" -#: methods/ftp.cc:745 +#: methods/ftp.cc:746 msgid "Could not listen on the socket" msgstr "Nie udało się nasłuchiwać na gnieździe" -#: methods/ftp.cc:752 +#: methods/ftp.cc:753 msgid "Could not determine the socket's name" msgstr "Nie udało się określić nazwy gniazda" -#: methods/ftp.cc:784 +#: methods/ftp.cc:785 msgid "Unable to send PORT command" msgstr "Nie można wysłać polecenia PORT" -#: methods/ftp.cc:794 +#: methods/ftp.cc:795 #, c-format msgid "Unknown address family %u (AF_*)" msgstr "Nieznana rodzina adresów %u (AF_*)" -#: methods/ftp.cc:803 +#: methods/ftp.cc:804 #, c-format msgid "EPRT failed, server said: %s" msgstr "Polecenie EPRT nie powiodło się, odpowiedź serwera: %s" -#: methods/ftp.cc:823 +#: methods/ftp.cc:824 msgid "Data socket connect timed out" msgstr "Przekroczony czas połączenia gniazda danych" -#: methods/ftp.cc:830 +#: methods/ftp.cc:831 msgid "Unable to accept connection" msgstr "Nie udało się przyjąć połączenia" -#: methods/ftp.cc:869 methods/http.cc:1023 methods/rsh.cc:303 +#: methods/ftp.cc:870 methods/http.cc:1023 methods/rsh.cc:303 msgid "Problem hashing file" msgstr "Nie udało się obliczyć skrótu pliku" -#: methods/ftp.cc:882 +#: methods/ftp.cc:883 #, c-format msgid "Unable to fetch file, server said '%s'" msgstr "Nie można pobrać pliku, odpowiedź serwera: %s" -#: methods/ftp.cc:897 methods/rsh.cc:322 +#: methods/ftp.cc:898 methods/rsh.cc:322 msgid "Data socket timed out" msgstr "Przekroczony czas oczekiwania na dane" -#: methods/ftp.cc:927 +#: methods/ftp.cc:928 #, c-format msgid "Data transfer failed, server said '%s'" msgstr "Nie udało się przesłać danych, odpowiedź serwera: %s" #. Get the files information -#: methods/ftp.cc:1004 +#: methods/ftp.cc:1005 msgid "Query" msgstr "Info" -#: methods/ftp.cc:1116 +#: methods/ftp.cc:1117 msgid "Unable to invoke " msgstr "Nie można wywołać " #: methods/connect.cc:71 #, c-format msgid "Connecting to %s (%s)" -msgstr "Podłączanie do %s (%s)" +msgstr "Łączenie z %s (%s)" #: methods/connect.cc:82 #, c-format @@ -2178,31 +2224,29 @@ msgid "Temporary failure resolving '%s'" msgstr "Tymczasowy błąd przy tłumaczeniu \"%s\"" #: methods/connect.cc:196 -#, fuzzy, c-format +#, c-format msgid "Something wicked happened resolving '%s:%s' (%i - %s)" -msgstr "Coś niewłaściwego stało się przy tłumaczeniu \"%s:%s\" (%i)" +msgstr "Coś niewłaściwego stało się przy tłumaczeniu \"%s:%s\" (%i - %s)" #: methods/connect.cc:243 -#, fuzzy, c-format +#, c-format msgid "Unable to connect to %s:%s:" -msgstr "Nie udało się połączyć z %s %s:" +msgstr "Nie udało się połączyć z %s:%s:" #: methods/gpgv.cc:166 msgid "" "Internal error: Good signature, but could not determine key fingerprint?!" msgstr "" -"Błąd wewnętrzny: Prawidłowy podpis, ale nie nie udało się ustalić odcisku " -"klucza?!" +"Błąd wewnętrzny: Prawidłowy podpis, ale nie udało się ustalić odcisku klucza!" #: methods/gpgv.cc:171 msgid "At least one invalid signature was encountered." msgstr "Napotkano przynajmniej jeden nieprawidłowy podpis." #: methods/gpgv.cc:175 -#, fuzzy msgid "Could not execute 'gpgv' to verify signature (is gpgv installed?)" msgstr "" -"Nie udało się uruchomić \"%s\" by zweryfikować podpis (czy gpgv jest " +"Nie udało się uruchomić gpgv by zweryfikować podpis (czy gpgv jest " "zainstalowane?)" #: methods/gpgv.cc:180 @@ -2292,7 +2336,7 @@ msgstr "Błędne dane nagłówka" #: methods/http.cc:1200 methods/http.cc:1255 msgid "Connection failed" -msgstr "Połączenie nie udało się" +msgstr "Połączenie nie powiodło się" #: methods/http.cc:1347 msgid "Internal error" @@ -2303,9 +2347,9 @@ msgid "Can't mmap an empty file" msgstr "Nie można wykonać mmap na pustym pliku" #: apt-pkg/contrib/mmap.cc:89 -#, fuzzy, c-format +#, c-format msgid "Couldn't duplicate file descriptor %i" -msgstr "Nie udało się otworzyć potoku dla %s" +msgstr "Nie udało się zduplikować deskryptora pliku %i" #: apt-pkg/contrib/mmap.cc:97 apt-pkg/contrib/mmap.cc:258 #, c-format @@ -2313,14 +2357,12 @@ msgid "Couldn't make mmap of %lu bytes" msgstr "Nie udało się wykonać mmap %lu bajtów" #: apt-pkg/contrib/mmap.cc:124 -#, fuzzy msgid "Unable to close mmap" -msgstr "Nie można otworzyć %s" +msgstr "Nie udało się zamknąć mmap" #: apt-pkg/contrib/mmap.cc:152 apt-pkg/contrib/mmap.cc:180 -#, fuzzy msgid "Unable to synchronize mmap" -msgstr "Nie można wywołać " +msgstr "Nie udało się zsynchronizować mmap" #: apt-pkg/contrib/mmap.cc:310 #, c-format @@ -2337,23 +2379,27 @@ msgid "" "Unable to increase the size of the MMap as the limit of %lu bytes is already " "reached." msgstr "" +"Nie udało się zwiększyć rozmiaru MMap, ponieważ limit %lu bajtów został już " +"osiągnięty." #: apt-pkg/contrib/mmap.cc:412 msgid "" "Unable to increase size of the MMap as automatic growing is disabled by user." msgstr "" +"Nie udało się zwiększyć rozmiaru MMap, ponieważ automatycznie powiększanie " +"zostało wyłączone przez użytkownika." #. d means days, h means hours, min means minutes, s means seconds #: apt-pkg/contrib/strutl.cc:371 #, c-format msgid "%lid %lih %limin %lis" -msgstr "%lidni %lih %limin %lis" +msgstr "%lidni %lig %limin %lis" #. h means hours, min means minutes, s means seconds #: apt-pkg/contrib/strutl.cc:378 #, c-format msgid "%lih %limin %lis" -msgstr "%lih %limin %lis" +msgstr "%lig %limin %lis" #. min means minutes, s means seconds #: apt-pkg/contrib/strutl.cc:385 @@ -2367,7 +2413,7 @@ msgstr "%limin %lis" msgid "%lis" msgstr "%lis" -#: apt-pkg/contrib/strutl.cc:1138 +#: apt-pkg/contrib/strutl.cc:1137 #, c-format msgid "Selection %s not found" msgstr "Nie odnaleziono wyboru %s" @@ -2419,10 +2465,10 @@ msgid "Syntax error %s:%u: Unsupported directive '%s'" msgstr "Błąd składniowy %s:%u: Nieobsługiwana dyrektywa \"%s\"" #: apt-pkg/contrib/configuration.cc:790 -#, fuzzy, c-format +#, c-format msgid "Syntax error %s:%u: clear directive requires an option tree as argument" msgstr "" -"Błąd składniowy %s:%u: Dyrektywy mogą występować tylko na najwyższym poziomie" +"Błąd składniowy %s:%u: czysta dyrektywa wymaga drzewa opcji jako argumentu" #: apt-pkg/contrib/configuration.cc:840 #, c-format @@ -2444,43 +2490,43 @@ msgstr "%c%s... Gotowe" msgid "Command line option '%c' [from %s] is not known." msgstr "Opcja linii poleceń \"%c\" [z %s] jest nieznana." -#: apt-pkg/contrib/cmndline.cc:103 apt-pkg/contrib/cmndline.cc:111 -#: apt-pkg/contrib/cmndline.cc:119 +#: apt-pkg/contrib/cmndline.cc:101 apt-pkg/contrib/cmndline.cc:109 +#: apt-pkg/contrib/cmndline.cc:117 #, c-format msgid "Command line option %s is not understood" msgstr "Niezrozumiała opcja linii poleceń %s" -#: apt-pkg/contrib/cmndline.cc:124 +#: apt-pkg/contrib/cmndline.cc:122 #, c-format msgid "Command line option %s is not boolean" -msgstr "Opcja linii poleceń %s nie jest typu boolean" +msgstr "Opcja linii poleceń %s nie jest typu logicznego" -#: apt-pkg/contrib/cmndline.cc:165 apt-pkg/contrib/cmndline.cc:186 +#: apt-pkg/contrib/cmndline.cc:163 apt-pkg/contrib/cmndline.cc:184 #, c-format msgid "Option %s requires an argument." msgstr "Opcja %s wymaga argumentu." -#: apt-pkg/contrib/cmndline.cc:200 apt-pkg/contrib/cmndline.cc:206 +#: apt-pkg/contrib/cmndline.cc:197 apt-pkg/contrib/cmndline.cc:203 #, c-format msgid "Option %s: Configuration item specification must have an =." msgstr "Opcja %s: Specyfikacja elementu konfiguracji musi zawierać =." -#: apt-pkg/contrib/cmndline.cc:236 +#: apt-pkg/contrib/cmndline.cc:232 #, c-format msgid "Option %s requires an integer argument, not '%s'" msgstr "Opcja %s wymaga argumentu typu całkowitego, nie \"%s\"" -#: apt-pkg/contrib/cmndline.cc:267 +#: apt-pkg/contrib/cmndline.cc:263 #, c-format msgid "Option '%s' is too long" msgstr "Opcja \"%s\" jest zbyt długa" -#: apt-pkg/contrib/cmndline.cc:300 +#: apt-pkg/contrib/cmndline.cc:295 #, c-format msgid "Sense %s is not understood, try true or false." -msgstr "Znaczenie %s jest nieznane, spróbuj true albo false." +msgstr "Znaczenie %s jest nieznane, proszę spróbować true lub false." -#: apt-pkg/contrib/cmndline.cc:350 +#: apt-pkg/contrib/cmndline.cc:345 #, c-format msgid "Invalid operation %s" msgstr "Nieprawidłowa operacja %s" @@ -2491,7 +2537,7 @@ msgid "Unable to stat the mount point %s" msgstr "Nie udało się wykonać operacji stat na punkcie montowania %s" #: apt-pkg/contrib/cdromutl.cc:175 apt-pkg/contrib/cdromutl.cc:209 -#: apt-pkg/acquire.cc:456 apt-pkg/acquire.cc:481 apt-pkg/clean.cc:39 +#: apt-pkg/acquire.cc:460 apt-pkg/acquire.cc:485 apt-pkg/clean.cc:39 #: methods/mirror.cc:97 #, c-format msgid "Unable to change to %s" @@ -2525,89 +2571,94 @@ msgstr "Nie udało się uzyskać blokady %s" #, c-format msgid "List of files can't be created as '%s' is not a directory" msgstr "" +"Lista plików nie może zostać stworzona, ponieważ \"%s\" nie jest katalogiem" #: apt-pkg/contrib/fileutl.cc:362 #, c-format msgid "Ignoring '%s' in directory '%s' as it is not a regular file" -msgstr "" +msgstr "Ignorowanie \"%s\" w katalogu \"%s\", ponieważ nie jest to zwykły plik" #: apt-pkg/contrib/fileutl.cc:380 #, c-format msgid "Ignoring file '%s' in directory '%s' as it has no filename extension" msgstr "" +"Ignorowanie pliku \"%s\" w katalogu \"%s\", ponieważ nie ma on rozszerzenia " +"pliku" #: apt-pkg/contrib/fileutl.cc:389 #, c-format msgid "" "Ignoring file '%s' in directory '%s' as it has an invalid filename extension" msgstr "" +"Ignorowanie pliku \"%s\" w katalogu \"%s\", ponieważ ma on nieprawidłowe " +"rozszerzenie pliku" -#: apt-pkg/contrib/fileutl.cc:679 +#: apt-pkg/contrib/fileutl.cc:690 #, c-format msgid "Waited for %s but it wasn't there" msgstr "Oczekiwano na proces %s, ale nie było go" -#: apt-pkg/contrib/fileutl.cc:691 +#: apt-pkg/contrib/fileutl.cc:702 #, c-format msgid "Sub-process %s received a segmentation fault." -msgstr "Podproces %s spowodował naruszenie segmentacji." +msgstr "Podproces %s spowodował naruszenie ochrony pamięci." -#: apt-pkg/contrib/fileutl.cc:693 +#: apt-pkg/contrib/fileutl.cc:704 #, c-format msgid "Sub-process %s received signal %u." -msgstr "Podproces %s dostał sygnał %u." +msgstr "Podproces %s otrzymał sygnał %u." -#: apt-pkg/contrib/fileutl.cc:697 +#: apt-pkg/contrib/fileutl.cc:708 #, c-format msgid "Sub-process %s returned an error code (%u)" msgstr "Podproces %s zwrócił kod błędu (%u)" -#: apt-pkg/contrib/fileutl.cc:699 +#: apt-pkg/contrib/fileutl.cc:710 #, c-format msgid "Sub-process %s exited unexpectedly" msgstr "Podproces %s zakończył się niespodziewanie" -#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673 +#: apt-pkg/contrib/fileutl.cc:775 apt-pkg/indexcopy.cc:673 #, c-format msgid "Could not open file %s" msgstr "Nie udało się otworzyć pliku %s" -#: apt-pkg/contrib/fileutl.cc:781 -#, fuzzy, c-format +#: apt-pkg/contrib/fileutl.cc:792 +#, c-format msgid "Could not open file descriptor %d" -msgstr "Nie udało się otworzyć potoku dla %s" +msgstr "Nie udało się otworzyć deskryptora pliku %d" -#: apt-pkg/contrib/fileutl.cc:841 +#: apt-pkg/contrib/fileutl.cc:852 #, c-format msgid "read, still have %lu to read but none left" msgstr "należało przeczytać jeszcze %lu, ale nic nie zostało" -#: apt-pkg/contrib/fileutl.cc:874 +#: apt-pkg/contrib/fileutl.cc:885 #, c-format msgid "write, still have %lu to write but couldn't" msgstr "należało zapisać jeszcze %lu, ale nie udało się to" -#: apt-pkg/contrib/fileutl.cc:1010 -#, fuzzy, c-format +#: apt-pkg/contrib/fileutl.cc:1021 +#, c-format msgid "Problem closing the gzip file %s" -msgstr "Problem przy zamykaniu pliku" +msgstr "Problem przy zamykaniu pliku gzip %s" -#: apt-pkg/contrib/fileutl.cc:1013 -#, fuzzy, c-format +#: apt-pkg/contrib/fileutl.cc:1024 +#, c-format msgid "Problem closing the file %s" -msgstr "Problem przy zamykaniu pliku" +msgstr "Problem przy zamykaniu pliku %s" -#: apt-pkg/contrib/fileutl.cc:1018 -#, fuzzy, c-format +#: apt-pkg/contrib/fileutl.cc:1029 +#, c-format msgid "Problem renaming the file %s to %s" -msgstr "Problem przy zapisywaniu pliku na dysk" +msgstr "Problem przy zapisywaniu pliku %s w %s" -#: apt-pkg/contrib/fileutl.cc:1029 -#, fuzzy, c-format +#: apt-pkg/contrib/fileutl.cc:1040 +#, c-format msgid "Problem unlinking the file %s" -msgstr "Problem przy usuwaniu pliku" +msgstr "Problem przy odlinkowywaniu pliku %s" -#: apt-pkg/contrib/fileutl.cc:1042 +#: apt-pkg/contrib/fileutl.cc:1053 msgid "Problem syncing the file" msgstr "Problem przy zapisywaniu pliku na dysk" @@ -2638,7 +2689,7 @@ msgstr "Wymaga" #: apt-pkg/pkgcache.cc:299 msgid "PreDepends" -msgstr "PreWymaga" +msgstr "Wymaga wstępnie" #: apt-pkg/pkgcache.cc:299 msgid "Suggests" @@ -2650,7 +2701,7 @@ msgstr "Poleca" #: apt-pkg/pkgcache.cc:300 msgid "Conflicts" -msgstr "Jest w konflikcie z" +msgstr "W konflikcie z" #: apt-pkg/pkgcache.cc:300 msgid "Replaces" @@ -2658,11 +2709,11 @@ msgstr "Zastępuje" #: apt-pkg/pkgcache.cc:301 msgid "Obsoletes" -msgstr "Czyni zbędnym" +msgstr "Dezaktualizuje" #: apt-pkg/pkgcache.cc:301 msgid "Breaks" -msgstr "Psuje" +msgstr "Narusza zależności" #: apt-pkg/pkgcache.cc:301 msgid "Enhances" @@ -2725,29 +2776,31 @@ msgid "Unable to parse package file %s (2)" msgstr "Nie udało się zanalizować pliku pakietu %s (2)" #: apt-pkg/sourcelist.cc:92 -#, fuzzy, c-format +#, c-format msgid "Malformed line %lu in source list %s ([option] unparseable)" -msgstr "Nieprawidłowa linia %lu w liście źródeł %s (analiza dystrybucji)" +msgstr "" +"Nieprawidłowa linia %lu w liście źródeł %s ([opcja] nie dająca się sparsować)" #: apt-pkg/sourcelist.cc:95 -#, fuzzy, c-format +#, c-format msgid "Malformed line %lu in source list %s ([option] too short)" -msgstr "Nieprawidłowa linia %lu w liście źródeł %s (dystrybucja)" +msgstr "Nieprawidłowa linia %lu w liście źródeł %s ([opcja] zbyt krótka)" #: apt-pkg/sourcelist.cc:106 -#, fuzzy, c-format +#, c-format msgid "Malformed line %lu in source list %s ([%s] is not an assignment)" -msgstr "Nieprawidłowa linia %lu w liście źródeł %s (analiza dystrybucji)" +msgstr "Nieprawidłowa linia %lu w liście źródeł %s ([%s] nie jest przypisane)" #: apt-pkg/sourcelist.cc:112 -#, fuzzy, c-format +#, c-format msgid "Malformed line %lu in source list %s ([%s] has no key)" -msgstr "Nieprawidłowa linia %lu w liście źródeł %s (analiza dystrybucji)" +msgstr "Nieprawidłowa linia %lu w liście źródeł %s ([%s] nie ma klucza)" #: apt-pkg/sourcelist.cc:115 -#, fuzzy, c-format +#, c-format msgid "Malformed line %lu in source list %s ([%s] key %s has no value)" -msgstr "Nieprawidłowa linia %lu w liście źródeł %s (analiza dystrybucji)" +msgstr "" +"Nieprawidłowa linia %lu w liście źródeł %s ([%s] klucz %s nie ma wartości)" #: apt-pkg/sourcelist.cc:128 #, c-format @@ -2794,12 +2847,15 @@ msgstr "Nieprawidłowa linia %u w liście źródeł %s (typ)" msgid "Type '%s' is not known on line %u in source list %s" msgstr "Typ \"%s\" jest nieznany w linii %u listy źródeł %s" -#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623 +#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:645 #, c-format msgid "" "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf " "under APT::Immediate-Configure for details. (%d)" msgstr "" +"Nie udało się wykonać natychmiastowej konfiguracji %s. Proszę wykonać \"man " +"5 apt.conf\" i zapoznać się z wpisem APT::Immediate-Configure aby dowiedzieć " +"się więcej. (%d)" #: apt-pkg/packagemanager.cc:456 #, c-format @@ -2809,9 +2865,9 @@ msgid "" "you really want to do it, activate the APT::Force-LoopBreak option." msgstr "" "To uruchomienie programu będzie wymagało tymczasowego usunięcia istotnego " -"pakietu %s z powodu pętli konfliktów/pre-zależności. Często nie oznacza to " -"nic dobrego, ale jeśli naprawdę chcesz to zrobić, włącz opcję APT::Force-" -"LoopBreak." +"pakietu %s z powodu pętli konfliktów/wymagań wstępnych. Często jest to złe " +"rozwiązanie, ale jeśli jest się pewnym swoich działań, należy włączyć opcję " +"APT::Force-LoopBreak." #: apt-pkg/packagemanager.cc:501 #, c-format @@ -2819,6 +2875,9 @@ msgid "" "Could not perform immediate configuration on already unpacked '%s'. Please " "see man 5 apt.conf under APT::Immediate-Configure for details." msgstr "" +"Nie udało się wykonać natychmiastowej konfiguracji rozpakowanego pakietu %s. " +"Proszę wykonać \"man 5 apt.conf\" i zapoznać się z wpisem APT::Immediate-" +"Configure aby dowiedzieć się więcej." #: apt-pkg/pkgrecords.cc:32 #, c-format @@ -2830,7 +2889,8 @@ msgstr "Plik indeksu typu \"%s\" nie jest obsługiwany" msgid "" "The package %s needs to be reinstalled, but I can't find an archive for it." msgstr "" -"Pakiet %s ma zostać przeinstalowany, ale nie można znaleźć jego archiwum." +"Pakiet %s ma zostać ponownie zainstalowany, ale nie można znaleźć jego " +"archiwum." #: apt-pkg/algorithms.cc:1158 msgid "" @@ -2844,38 +2904,37 @@ msgstr "" msgid "Unable to correct problems, you have held broken packages." msgstr "Nie udało się naprawić problemów, zatrzymano uszkodzone pakiety." -#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466 -#, fuzzy +#: apt-pkg/algorithms.cc:1471 apt-pkg/algorithms.cc:1473 msgid "" "Some index files failed to download. They have been ignored, or old ones " "used instead." msgstr "" "Nie udało się pobrać niektórych plików indeksu, zostały one zignorowane lub " -"została użyta ich starsza wersja." +"użyto ich starszej wersji." #: apt-pkg/acquire.cc:79 -#, fuzzy, c-format +#, c-format msgid "List directory %spartial is missing." msgstr "Brakuje katalogu list %spartial." #: apt-pkg/acquire.cc:83 -#, fuzzy, c-format +#, c-format msgid "Archives directory %spartial is missing." msgstr "Brakuje katalogu archiwów %spartial." #: apt-pkg/acquire.cc:91 -#, fuzzy, c-format +#, c-format msgid "Unable to lock directory %s" -msgstr "Nie udało się zablokować katalogu list" +msgstr "Nie udało się zablokować katalogu %s" #. only show the ETA if it makes sense #. two days -#: apt-pkg/acquire.cc:857 +#: apt-pkg/acquire.cc:861 #, c-format msgid "Retrieving file %li of %li (%s remaining)" -msgstr "Pobieranie pliku %li z %li (%s pozostało)" +msgstr "Pobieranie pliku %li z %li (pozostało %s)" -#: apt-pkg/acquire.cc:859 +#: apt-pkg/acquire.cc:863 #, c-format msgid "Retrieving file %li of %li" msgstr "Pobieranie pliku %li z %li" @@ -2895,12 +2954,12 @@ msgstr "Metoda %s nie uruchomiła się poprawnie" msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." msgstr "Proszę włożyć do napędu \"%s\" dysk o nazwie: \"%s\" i nacisnąć enter." -#: apt-pkg/init.cc:147 +#: apt-pkg/init.cc:146 #, c-format msgid "Packaging system '%s' is not supported" msgstr "System pakietów \"%s\" nie jest obsługiwany" -#: apt-pkg/init.cc:163 +#: apt-pkg/init.cc:162 msgid "Unable to determine a suitable packaging system type" msgstr "Nie udało się określić odpowiedniego typu systemu pakietów" @@ -2925,24 +2984,26 @@ msgstr "Należy uruchomić apt-get update aby naprawić te problemy." msgid "The list of sources could not be read." msgstr "Nie udało się odczytać list źródeł." -#: apt-pkg/policy.cc:71 +#: apt-pkg/policy.cc:72 #, c-format msgid "" "The value '%s' is invalid for APT::Default-Release as such a release is not " "available in the sources" msgstr "" +"Wartość %s jest nieprawidłowa dla APT::Default-Release, ponieważ takie " +"wydanie nie jest dostępne w źródłach" -#: apt-pkg/policy.cc:389 +#: apt-pkg/policy.cc:390 #, c-format msgid "Invalid record in the preferences file %s, no Package header" msgstr "Nieprawidłowe informacje w pliku ustawień %s, brak nagłówka Package" -#: apt-pkg/policy.cc:411 +#: apt-pkg/policy.cc:412 #, c-format msgid "Did not understand pin type %s" msgstr "Nierozpoznany typ przypinania %s" -#: apt-pkg/policy.cc:419 +#: apt-pkg/policy.cc:420 msgid "No priority (or zero) specified for pin" msgstr "Brak (lub zerowy) priorytet przypięcia" @@ -2950,91 +3011,89 @@ msgstr "Brak (lub zerowy) priorytet przypięcia" msgid "Cache has an incompatible versioning system" msgstr "Magazyn podręczny ma niezgodny system wersji" -#: apt-pkg/pkgcachegen.cc:187 +#: apt-pkg/pkgcachegen.cc:190 #, c-format msgid "Error occurred while processing %s (NewPackage)" msgstr "Wystąpił błąd podczas przetwarzania %s (NewPackage)" -#: apt-pkg/pkgcachegen.cc:204 +#: apt-pkg/pkgcachegen.cc:207 #, c-format msgid "Error occurred while processing %s (UsePackage1)" msgstr "Wystąpił błąd podczas przetwarzania %s (UsePackage1)" -#: apt-pkg/pkgcachegen.cc:242 +#: apt-pkg/pkgcachegen.cc:245 #, c-format msgid "Error occurred while processing %s (NewFileDesc1)" msgstr "Wystąpił błąd podczas przetwarzania %s (NewFileDesc1)" -#: apt-pkg/pkgcachegen.cc:274 +#: apt-pkg/pkgcachegen.cc:277 #, c-format msgid "Error occurred while processing %s (UsePackage2)" msgstr "Wystąpił błąd podczas przetwarzania %s (UsePackage2)" -#: apt-pkg/pkgcachegen.cc:278 +#: apt-pkg/pkgcachegen.cc:281 #, c-format msgid "Error occurred while processing %s (NewFileVer1)" msgstr "Wystąpił błąd podczas przetwarzania %s (NewFileVer1)" -#: apt-pkg/pkgcachegen.cc:295 apt-pkg/pkgcachegen.cc:305 -#: apt-pkg/pkgcachegen.cc:313 -#, fuzzy, c-format +#: apt-pkg/pkgcachegen.cc:298 apt-pkg/pkgcachegen.cc:308 +#: apt-pkg/pkgcachegen.cc:316 +#, c-format msgid "Error occurred while processing %s (NewVersion%d)" -msgstr "Wystąpił błąd podczas przetwarzania %s (NewVersion1)" +msgstr "Wystąpił błąd podczas przetwarzania %s (NewVersion%d)" -#: apt-pkg/pkgcachegen.cc:309 +#: apt-pkg/pkgcachegen.cc:312 #, c-format msgid "Error occurred while processing %s (UsePackage3)" msgstr "Wystąpił błąd podczas przetwarzania %s (UsePackage3)" -#: apt-pkg/pkgcachegen.cc:342 +#: apt-pkg/pkgcachegen.cc:345 #, c-format msgid "Error occurred while processing %s (NewFileDesc2)" msgstr "Wystąpił błąd podczas przetwarzania %s (NewFileDesc2)" -#: apt-pkg/pkgcachegen.cc:348 +#: apt-pkg/pkgcachegen.cc:351 msgid "Wow, you exceeded the number of package names this APT is capable of." -msgstr "" -"Och, przekroczono liczbę pakietów, którą ten APT jest w stanie obsłużyć." +msgstr "Przekroczono liczbę pakietów, którą ten APT jest w stanie obsłużyć." -#: apt-pkg/pkgcachegen.cc:351 +#: apt-pkg/pkgcachegen.cc:354 msgid "Wow, you exceeded the number of versions this APT is capable of." -msgstr "Och, przekroczono liczbę wersji, którą ten APT jest w stanie obsłużyć." +msgstr "Przekroczono liczbę wersji, którą ten APT jest w stanie obsłużyć." -#: apt-pkg/pkgcachegen.cc:354 +#: apt-pkg/pkgcachegen.cc:357 msgid "Wow, you exceeded the number of descriptions this APT is capable of." -msgstr "Och, przekroczono liczbę opisów, którą ten APT jest w stanie obsłużyć." +msgstr "Przekroczono liczbę opisów, którą ten APT jest w stanie obsłużyć." -#: apt-pkg/pkgcachegen.cc:357 +#: apt-pkg/pkgcachegen.cc:360 msgid "Wow, you exceeded the number of dependencies this APT is capable of." -msgstr "" -"Och, przekroczono liczbę zależności, którą ten APT jest w stanie obsłużyć." +msgstr "Przekroczono liczbę zależności, którą ten APT jest w stanie obsłużyć." -#: apt-pkg/pkgcachegen.cc:386 +#: apt-pkg/pkgcachegen.cc:389 #, c-format msgid "Error occurred while processing %s (FindPkg)" msgstr "Wystąpił błąd podczas przetwarzania %s (FindPkg)" -#: apt-pkg/pkgcachegen.cc:400 +#: apt-pkg/pkgcachegen.cc:403 #, c-format msgid "Error occurred while processing %s (CollectFileProvides)" msgstr "Wystąpił błąd podczas przetwarzania %s (CollectFileProvides)" -#: apt-pkg/pkgcachegen.cc:406 +#: apt-pkg/pkgcachegen.cc:409 #, c-format msgid "Package %s %s was not found while processing file dependencies" msgstr "" "Pakiet %s %s nie został odnaleziony podczas przetwarzania zależności plików" -#: apt-pkg/pkgcachegen.cc:960 +#: apt-pkg/pkgcachegen.cc:975 #, c-format msgid "Couldn't stat source package list %s" msgstr "Nie udało się wykonać operacji stat na liście pakietów źródłowych %s" -#: apt-pkg/pkgcachegen.cc:1065 +#: apt-pkg/pkgcachegen.cc:1080 msgid "Collecting File Provides" msgstr "Zbieranie zapewnień plików" -#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266 +#: apt-pkg/pkgcachegen.cc:1274 apt-pkg/pkgcachegen.cc:1281 msgid "IO Error saving source cache" msgstr "Błąd wejścia/wyjścia przy zapisywaniu podręcznego magazynu źródeł" @@ -3047,53 +3106,59 @@ msgstr "nie udało się zmienić nazwy, %s (%s -> %s)" msgid "MD5Sum mismatch" msgstr "Błędna suma MD5" -#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848 -#: apt-pkg/acquire-item.cc:1991 +#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1847 +#: apt-pkg/acquire-item.cc:1990 msgid "Hash Sum mismatch" msgstr "Błędna suma kontrolna" -#: apt-pkg/acquire-item.cc:1388 +#: apt-pkg/acquire-item.cc:1387 #, c-format msgid "" "Unable to find expected entry '%s' in Release file (Wrong sources.list entry " "or malformed file)" msgstr "" +"Nie udało się znaleźć oczekiwanego wpisu \"%s\" w pliku Release " +"(nieprawidłowy wpis sources.list lub nieprawidłowy plik)" #: apt-pkg/acquire-item.cc:1403 -#, fuzzy, c-format +#, c-format msgid "Unable to find hash sum for '%s' in Release file" -msgstr "Nie udało się zanalizować pliku Release %s" +msgstr "Nie udało się znaleźć sumy kontrolnej \"%s\" w pliku Release" -#: apt-pkg/acquire-item.cc:1439 +#: apt-pkg/acquire-item.cc:1438 msgid "There is no public key available for the following key IDs:\n" msgstr "Dla następujących identyfikatorów kluczy brakuje klucza publicznego:\n" -#: apt-pkg/acquire-item.cc:1477 +#: apt-pkg/acquire-item.cc:1476 #, c-format msgid "" "Release file for %s is expired (invalid since %s). Updates for this " "repository will not be applied." msgstr "" +"Plik Release dla %s wygasnął (nieprawidłowy od %s). Aktualizacje z tego " +"repozytorium nie będą wykonywane." -#: apt-pkg/acquire-item.cc:1499 +#: apt-pkg/acquire-item.cc:1498 #, c-format msgid "Conflicting distribution: %s (expected %s but got %s)" -msgstr "" +msgstr "Nieprawidłowa dystrybucja: %s (oczekiwano %s, a otrzymano %s)" -#: apt-pkg/acquire-item.cc:1532 +#: apt-pkg/acquire-item.cc:1531 #, c-format msgid "" "A error occurred during the signature verification. The repository is not " "updated and the previous index files will be used. GPG error: %s: %s\n" msgstr "" +"Podczas weryfikacji podpisu wystąpił błąd. Nie zaktualizowano repozytorium i " +"w dalszym ciągu będą używane poprzednie pliki indeksu. Błąd GPG %s: %s\n" #. Invalid signature file, reject (LP: #346386) (Closes: #627642) -#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547 +#: apt-pkg/acquire-item.cc:1541 apt-pkg/acquire-item.cc:1546 #, c-format msgid "GPG error: %s: %s" -msgstr "" +msgstr "Błąd GPG: %s: %s" -#: apt-pkg/acquire-item.cc:1639 +#: apt-pkg/acquire-item.cc:1638 #, c-format msgid "" "I wasn't able to locate a file for the %s package. This might mean you need " @@ -3102,7 +3167,7 @@ msgstr "" "Nie udało się odnaleźć pliku dla pakietu %s. Może to oznaczać, że trzeba " "będzie ręcznie naprawić ten pakiet (z powodu brakującej architektury)." -#: apt-pkg/acquire-item.cc:1698 +#: apt-pkg/acquire-item.cc:1697 #, c-format msgid "" "I wasn't able to locate a file for the %s package. This might mean you need " @@ -3111,21 +3176,21 @@ msgstr "" "Nie udało się odnaleźć pliku dla pakietu %s. Może to oznaczać, że trzeba " "będzie ręcznie naprawić ten pakiet." -#: apt-pkg/acquire-item.cc:1753 +#: apt-pkg/acquire-item.cc:1752 #, c-format msgid "" "The package index files are corrupted. No Filename: field for package %s." msgstr "" "Pliki indeksu pakietów są uszkodzone. Brak pola Filename: dla pakietu %s." -#: apt-pkg/acquire-item.cc:1840 +#: apt-pkg/acquire-item.cc:1839 msgid "Size mismatch" msgstr "Błędny rozmiar" #: apt-pkg/indexrecords.cc:53 #, c-format msgid "Unable to parse Release file %s" -msgstr "Nie udało się zanalizować pliku Release %s" +msgstr "Nie udało się przeanalizować pliku Release %s" #: apt-pkg/indexrecords.cc:63 #, c-format @@ -3138,14 +3203,14 @@ msgid "No Hash entry in Release file %s" msgstr "Brak wpisu Hash w pliku Release %s" #: apt-pkg/indexrecords.cc:110 -#, fuzzy, c-format +#, c-format msgid "Invalid 'Valid-Until' entry in Release file %s" -msgstr "Brak wpisu Hash w pliku Release %s" +msgstr "Nieprawidłowy wpis Valid-Until w pliku Release %s" -#: apt-pkg/indexrecords.cc:125 -#, fuzzy, c-format +#: apt-pkg/indexrecords.cc:129 +#, c-format msgid "Invalid 'Date' entry in Release file %s" -msgstr "Brak wpisu Hash w pliku Release %s" +msgstr "Nieprawidłowy wpis Date w pliku Release %s" #: apt-pkg/vendorlist.cc:71 #, c-format @@ -3158,8 +3223,8 @@ msgid "" "Using CD-ROM mount point %s\n" "Mounting CD-ROM\n" msgstr "" -"Użycie %s jako punktu montowania CD-ROMu\n" -"Montowanie CD-ROMu\n" +"Użycie %s jako punktu montowania CD-ROM-u\n" +"Montowanie CD-ROM-u\n" #: apt-pkg/cdrom.cc:534 apt-pkg/cdrom.cc:631 msgid "Identifying.. " @@ -3172,16 +3237,16 @@ msgstr "Etykieta: %s \n" #: apt-pkg/cdrom.cc:571 apt-pkg/cdrom.cc:847 msgid "Unmounting CD-ROM...\n" -msgstr "Odmontowanie CD-ROMu...\n" +msgstr "Odmontowanie CD-ROM-u...\n" #: apt-pkg/cdrom.cc:591 #, c-format msgid "Using CD-ROM mount point %s\n" -msgstr "Użycie %s jako punktu montowania CD-ROMu\n" +msgstr "Użycie %s jako punktu montowania CD-ROM-u\n" #: apt-pkg/cdrom.cc:609 msgid "Unmounting CD-ROM\n" -msgstr "Odmontowanie CD-ROMu\n" +msgstr "Odmontowanie CD-ROM-u\n" #: apt-pkg/cdrom.cc:614 msgid "Waiting for disc...\n" @@ -3189,7 +3254,7 @@ msgstr "Oczekiwanie na płytę...\n" #: apt-pkg/cdrom.cc:623 msgid "Mounting CD-ROM...\n" -msgstr "Montowanie CD-ROMu...\n" +msgstr "Montowanie CD-ROM-u...\n" #: apt-pkg/cdrom.cc:642 msgid "Scanning disc for index files..\n" @@ -3210,7 +3275,7 @@ msgid "" "wrong architecture?" msgstr "" "Nie można odnaleźć żadnych plików pakietów, być może nie jest to dysk " -"Debiana lub inna architektura?" +"Debiana lub jest to inna architektura?" #: apt-pkg/cdrom.cc:722 #, c-format @@ -3219,7 +3284,7 @@ msgstr "Znaleziono etykietę \"%s\"\n" #: apt-pkg/cdrom.cc:751 msgid "That is not a valid name, try again.\n" -msgstr "To nie jest prawidłowa nazwa, spróbuj ponownie.\n" +msgstr "To nie jest prawidłowa nazwa, proszę spróbować ponownie.\n" #: apt-pkg/cdrom.cc:768 #, c-format @@ -3242,51 +3307,51 @@ msgstr "Zapisywanie nowej listy źródeł\n" msgid "Source list entries for this disc are:\n" msgstr "Źródła dla tej płyty to:\n" -#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928 +#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:927 #, c-format msgid "Wrote %i records.\n" msgstr "Zapisano %i rekordów.\n" -#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930 +#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:929 #, c-format msgid "Wrote %i records with %i missing files.\n" msgstr "Zapisano %i rekordów z %i brakującymi plikami.\n" -#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933 +#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:932 #, c-format msgid "Wrote %i records with %i mismatched files\n" msgstr "Zapisano %i rekordów z %i niepasującymi plikami\n" -#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936 +#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:935 #, c-format msgid "Wrote %i records with %i missing files and %i mismatched files\n" msgstr "Zapisano %i rekordów z %i brakującymi plikami i %i niepasującymi\n" #: apt-pkg/indexcopy.cc:537 -#, fuzzy, c-format +#, c-format msgid "Skipping nonexistent file %s" -msgstr "Otwieranie pliku konfiguracyjnego %s" +msgstr "Pomijanie nieistniejącego pliku %s" #: apt-pkg/indexcopy.cc:543 #, c-format msgid "Can't find authentication record for: %s" -msgstr "" +msgstr "Nie udało się znaleźć wpisu uwierzytelnienia dla: %s" #: apt-pkg/indexcopy.cc:549 -#, fuzzy, c-format +#, c-format msgid "Hash mismatch for: %s" -msgstr "Błędna suma kontrolna" +msgstr "Błędna suma kontrolna dla: %s" #: apt-pkg/indexcopy.cc:677 #, c-format msgid "File %s doesn't start with a clearsigned message" -msgstr "" +msgstr "Plik %s nie zaczyna się wiadomością podpisaną w trybie clearsign" #. TRANSLATOR: %s is the trusted keyring parts directory #: apt-pkg/indexcopy.cc:708 -#, fuzzy, c-format +#, c-format msgid "No keyring installed in %s." -msgstr "Przerywanie instalacji" +msgstr "Brak zainstalowanej bazy kluczy w %s." #: apt-pkg/cacheset.cc:337 #, c-format @@ -3299,19 +3364,22 @@ msgid "Version '%s' for '%s' was not found" msgstr "Wersja \"%s\" dla \"%s\" nie została znaleziona" #: apt-pkg/cacheset.cc:447 -#, fuzzy, c-format +#, c-format msgid "Couldn't find task '%s'" -msgstr "Nie udało się odnaleźć zadania %s" +msgstr "Nie udało się odnaleźć zadania \"%s\"" #: apt-pkg/cacheset.cc:454 -#, fuzzy, c-format +#, c-format msgid "Couldn't find any package by regex '%s'" -msgstr "Nie udało się odnaleźć pakietu %s" +msgstr "" +"Nie udało się znaleźć żadnego pakietu według wyrażenia regularnego \"%s\"" #: apt-pkg/cacheset.cc:467 #, c-format msgid "Can't select versions from package '%s' as it is purely virtual" msgstr "" +"Nie udało się wybrać wersji z pakietu \"%s\", ponieważ jest on czysto " +"wirtualny" #: apt-pkg/cacheset.cc:475 apt-pkg/cacheset.cc:483 #, c-format @@ -3319,21 +3387,29 @@ msgid "" "Can't select installed nor candidate version from package '%s' as it has " "neither of them" msgstr "" +"Nie udało się wybrać zainstalowanej ani kandydującej wersji pakietu \"%s\", " +"ponieważ nie ma żadnej z nich" #: apt-pkg/cacheset.cc:491 #, c-format msgid "Can't select newest version from package '%s' as it is purely virtual" msgstr "" +"Nie udało się wybrać najnowszej wersji pakietu \"%s\", ponieważ jest on " +"czysto wirtualny" #: apt-pkg/cacheset.cc:499 #, c-format msgid "Can't select candidate version from package %s as it has no candidate" msgstr "" +"Nie udało się wybrać wersji kandydującej pakietu %s, ponieważ nie ma " +"kandydata" #: apt-pkg/cacheset.cc:507 #, c-format msgid "Can't select installed version from package %s as it is not installed" msgstr "" +"Nie udało się wybrać zainstalowanej wersji z pakietu %s, ponieważ nie jest " +"zainstalowany" #: apt-pkg/deb/dpkgpm.cc:54 #, c-format @@ -3351,14 +3427,14 @@ msgid "Removing %s" msgstr "Usuwanie %s" #: apt-pkg/deb/dpkgpm.cc:57 -#, fuzzy, c-format +#, c-format msgid "Completely removing %s" -msgstr "Całkowicie usunięto %s" +msgstr "Całkowite usuwanie %s" #: apt-pkg/deb/dpkgpm.cc:58 #, c-format msgid "Noting disappearance of %s" -msgstr "" +msgstr "Proszę odnotować zniknięcie %s" #: apt-pkg/deb/dpkgpm.cc:59 #, c-format @@ -3372,14 +3448,14 @@ msgid "Directory '%s' missing" msgstr "Brakuje katalogu \"%s\"" #: apt-pkg/deb/dpkgpm.cc:669 apt-pkg/deb/dpkgpm.cc:689 -#, fuzzy, c-format +#, c-format msgid "Could not open file '%s'" -msgstr "Nie udało się otworzyć pliku %s" +msgstr "Nie udało się otworzyć pliku \"%s\"" #: apt-pkg/deb/dpkgpm.cc:841 #, c-format msgid "Preparing %s" -msgstr "Przygotowanie %s" +msgstr "Przygotowywanie %s" #: apt-pkg/deb/dpkgpm.cc:842 #, c-format @@ -3389,74 +3465,82 @@ msgstr "Rozpakowywanie %s" #: apt-pkg/deb/dpkgpm.cc:847 #, c-format msgid "Preparing to configure %s" -msgstr "Przygotowanie do konfiguracji %s" +msgstr "Przygotowywanie do konfiguracji %s" #: apt-pkg/deb/dpkgpm.cc:849 #, c-format msgid "Installed %s" -msgstr "Zainstalowany %s" +msgstr "Pakiet %s został zainstalowany" #: apt-pkg/deb/dpkgpm.cc:854 #, c-format msgid "Preparing for removal of %s" -msgstr "Przygotowanie do usunięcia %s" +msgstr "Przygotowywanie do usunięcia %s" #: apt-pkg/deb/dpkgpm.cc:856 #, c-format msgid "Removed %s" -msgstr "Usunięto %s" +msgstr "Pakiet %s został usunięty" #: apt-pkg/deb/dpkgpm.cc:861 #, c-format msgid "Preparing to completely remove %s" -msgstr "Przygotowanie do całkowitego usunięcia %s" +msgstr "Przygotowywanie do całkowitego usunięcia %s" #: apt-pkg/deb/dpkgpm.cc:862 #, c-format msgid "Completely removed %s" -msgstr "Całkowicie usunięto %s" +msgstr "Pakiet %s został całkowicie usunięty" -#: apt-pkg/deb/dpkgpm.cc:1082 +#: apt-pkg/deb/dpkgpm.cc:1087 msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n" msgstr "" -"Nie można zapisać dziennika, openpty() nie powiodło się (/dev/pts nie " +"Nie można zapisać dziennika, openpty() nie powiodło się (/dev/pts nie jest " "zamontowane?)\n" -#: apt-pkg/deb/dpkgpm.cc:1113 +#: apt-pkg/deb/dpkgpm.cc:1118 msgid "Running dpkg" msgstr "Uruchamianie dpkg" -#: apt-pkg/deb/dpkgpm.cc:1338 +#: apt-pkg/deb/dpkgpm.cc:1344 msgid "No apport report written because MaxReports is reached already" -msgstr "" +msgstr "Brak raportu programu apport, ponieważ osiągnięto limit MaxReports" #. check if its not a follow up error -#: apt-pkg/deb/dpkgpm.cc:1343 +#: apt-pkg/deb/dpkgpm.cc:1349 msgid "dependency problems - leaving unconfigured" -msgstr "" +msgstr "problemy z zależnościami - pozostawianie nieskonfigurowanego" -#: apt-pkg/deb/dpkgpm.cc:1345 +#: apt-pkg/deb/dpkgpm.cc:1351 msgid "" "No apport report written because the error message indicates its a followup " "error from a previous failure." msgstr "" +"Brak raportu programu apport, ponieważ komunikat błędu wskazuje, że " +"przyczyna niepowodzenia leży w poprzednim błędzie." -#: apt-pkg/deb/dpkgpm.cc:1351 +#: apt-pkg/deb/dpkgpm.cc:1357 msgid "" "No apport report written because the error message indicates a disk full " "error" msgstr "" +"Brak raportu programu apport, ponieważ komunikat błędu wskazuje na " +"przepełnienie dysku" -#: apt-pkg/deb/dpkgpm.cc:1357 +#: apt-pkg/deb/dpkgpm.cc:1363 msgid "" "No apport report written because the error message indicates a out of memory " "error" msgstr "" +"Brak raportu programu apport, ponieważ komunikat błędu wskazuje na błąd " +"braku wolnej pamięci" -#: apt-pkg/deb/dpkgpm.cc:1364 +#: apt-pkg/deb/dpkgpm.cc:1370 msgid "" "No apport report written because the error message indicates a dpkg I/O error" msgstr "" +"Brak raportu programu apport, ponieważ komunikat błędu wskazuje na błąd " +"wejścia/wyjścia dpkg" #: apt-pkg/deb/debsystem.cc:69 #, c-format @@ -3467,62 +3551,67 @@ msgstr "" "Nie udało się zablokować katalogu administracyjnego (%s), czy inny proces go " "używa?" +# Musi pasować do su i sudo. #: apt-pkg/deb/debsystem.cc:72 #, c-format msgid "Unable to lock the administration directory (%s), are you root?" msgstr "" -"Nie udało się zablokować katalogu administracyjnego (%s), czy jesteś rootem?" +"Nie udało się zablokować katalogu administracyjnego (%s), czy użyto " +"uprawnień administratora?" #. TRANSLATORS: the %s contains the recovery command, usually #. dpkg --configure -a #: apt-pkg/deb/debsystem.cc:88 -#, fuzzy, c-format +#, c-format msgid "" "dpkg was interrupted, you must manually run '%s' to correct the problem. " msgstr "" -"dpkg został przerwany, należy ręcznie uruchomić \"dpkg --configure -a\" aby " -"naprawić problem." +"dpkg został przerwany, należy wykonać ręcznie \"%s\", aby naprawić problem." #: apt-pkg/deb/debsystem.cc:106 msgid "Not locked" -msgstr "Nie zablokowany" +msgstr "Niezablokowany" #. FIXME: fallback to a default mirror here instead #. and provide a config option to define that default #: methods/mirror.cc:260 #, c-format msgid "No mirror file '%s' found " -msgstr "" +msgstr "Nie znaleziono pliku serwera lustrzanego \"%s\"" #. FIXME: fallback to a default mirror here instead #. and provide a config option to define that default #: methods/mirror.cc:267 -#, fuzzy, c-format +#, c-format msgid "Can not read mirror file '%s'" -msgstr "Nie udało się otworzyć pliku %s" +msgstr "Nie udało się otworzyć pliku serwera lustrzanego \"%s\"" #: methods/mirror.cc:422 #, c-format msgid "[Mirror: %s]" -msgstr "" +msgstr "[Serwer lustrzany: %s]" -#: methods/rred.cc:503 +#: methods/rred.cc:506 #, c-format msgid "" "Could not patch %s with mmap and with file operation usage - the patch seems " "to be corrupt." msgstr "" +"Nie udało się nałożyć łatki %s przy użyciu mmap i operacji plikowej - łatka " +"wygląda na uszkodzoną." -#: methods/rred.cc:508 +#: methods/rred.cc:511 #, c-format msgid "" "Could not patch %s with mmap (but no mmap specific fail) - the patch seems " "to be corrupt." msgstr "" +"Nie udało się nałożyć łatki %s przy użyciu mmap, ale błąd nie pochodzi z " +"mmap - łatka wygląda na uszkodzoną" #: methods/rsh.cc:330 msgid "Connection closed prematurely" -msgstr "Połączenie zostało zamknięte przedwcześnie" +msgstr "Połączenie zostało przedwcześnie zamknięte" #~ msgid "Internal error, could not locate member" #~ msgstr "Błąd wewnętrzny, nie udało się odnaleźć składnika" -- cgit v1.2.3 From 9d3cce03f50b6a2d361d3e5c9f1475bccb13775e Mon Sep 17 00:00:00 2001 From: "bubulle@debian.org" <> Date: Sun, 5 Feb 2012 08:08:59 +0100 Subject: Danish translation update --- debian/changelog | 1 + po/da.po | 608 ++++++++++++++++++++++++++++--------------------------- 2 files changed, 313 insertions(+), 296 deletions(-) diff --git a/debian/changelog b/debian/changelog index 49d71ac85..dabd3ac4f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -19,6 +19,7 @@ apt (0.8.15.10) UNRELEASEDunstable; urgency=low * Russian (Yuri Kozlov). Closes: #654844 * Hungarian (Gabor Kelemen). Closes: #655238 * Polish (Michał Kułach). Closes: #656908 + * Danish (Joe Hansen). Closes: #658643 -- David Kalnischkies Tue, 06 Dec 2011 16:35:39 +0100 diff --git a/po/da.po b/po/da.po index 9babe20de..358e0fe12 100644 --- a/po/da.po +++ b/po/da.po @@ -1,16 +1,15 @@ # Danish translation apt. -# Copyright (C) 2010 apt & nedenstående oversættere. +# Copyright (C) 2012 apt & nedenstående oversættere. # This file is distributed under the same license as the apt package. -# Claus Hindsgaul , 2002,2003, 2004, 2005, 2006. -# Claus Hindsgaul , 2006, 2007. -# Joe Hansen , 2010. +# Claus Hindsgaul , 2002, 2003, 2004, 2005, 2006, 2007. +# Joe Hansen , 2010, 2012. # msgid "" msgstr "" "Project-Id-Version: apt\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-07-26 12:05+0200\n" -"PO-Revision-Date: 2010-09-01 23:51+0200\n" +"POT-Creation-Date: 2011-10-14 12:59+0200\n" +"PO-Revision-Date: 2012-02-04 23:51+0200\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" "Language: \n" @@ -111,6 +110,7 @@ msgstr "Du skal angive mindst ét søgemønster" #: cmdline/apt-cache.cc:1353 msgid "This command is deprecated. Please use 'apt-mark showauto' instead." msgstr "" +"Denne kommando er forældet. Brug venligst »apt-mark showauto« i stedet for." #: cmdline/apt-cache.cc:1448 apt-pkg/cacheset.cc:440 #, c-format @@ -159,13 +159,12 @@ msgstr " Versionstabel:" #: cmdline/apt-cache.cc:1675 cmdline/apt-cdrom.cc:197 cmdline/apt-config.cc:73 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:589 -#: cmdline/apt-get.cc:3220 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144 +#: cmdline/apt-get.cc:3235 cmdline/apt-mark.cc:264 cmdline/apt-sortpkgs.cc:144 #, c-format msgid "%s %s for %s compiled on %s %s\n" msgstr "%s %s for %s kompileret på %s %s\n" #: cmdline/apt-cache.cc:1682 -#, fuzzy msgid "" "Usage: apt-cache [options] command\n" " apt-cache [options] showpkg pkg1 [pkg2 ...]\n" @@ -202,7 +201,6 @@ msgid "" "See the apt-cache(8) and apt.conf(5) manual pages for more information.\n" msgstr "" "Brug: apt-cache [tilvalg] kommando\n" -" apt-cache [tilvalg] add fil1 [fil2 ...]\n" " apt-cache [tilvalg] showpkg pakke1 [pakke2 ...]\n" " apt-cache [tilvalg] showsrc pakke1 [pakke2 ...]\n" "\n" @@ -210,7 +208,6 @@ msgstr "" "binære mellemlagerfiler og hente oplysninger fra dem.\n" "\n" "Kommandoer:\n" -" add - Tilføj en pakkefil til kildemellemlageret\n" " gencaches - Opbyg både pakke- og kildemellemlageret\n" " showpkg - Vis generelle oplysninger om en enkelt pakke\n" " showsrc - Vis kildetekstposter\n" @@ -220,7 +217,6 @@ msgstr "" " unmet - Vis uopfyldte afhængigheder\n" " search - Gennemsøg pakkelisten med et regulært udtryk\n" " show - Vis en læsbar post for pakken\n" -" showauto - Vis en liste af automatisk installerede pakker\n" " depends - Vis de rå afhængighedsoplysninger for en pakke\n" " rdepends - Vis omvendte afhængighedsoplysninger for en pakke\n" " pkgnames - Vis navnene på alle pakker\n" @@ -317,7 +313,7 @@ msgstr "" " -c=? Læs denne opsætningsfil\n" " -o=? Angiv et opsætningstilvalg. F.eks. -o dir::cache=/tmp\n" -#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:1149 +#: cmdline/apt-extracttemplates.cc:267 apt-pkg/pkgcachegen.cc:1164 #, c-format msgid "Unable to write to %s" msgstr "Kunne ikke skrive til %s" @@ -472,7 +468,7 @@ msgstr "Kunne ikke finde %s" msgid "Archive has no control record" msgstr "Arkivet har ingen kontrolindgang" -#: ftparchive/cachedb.cc:448 +#: ftparchive/cachedb.cc:452 msgid "Unable to get a cursor" msgstr "Kunne skaffe en markør" @@ -838,7 +834,7 @@ msgstr "Geninstallering af %s er ikke mulig, da den ikke kan hentes.\n" msgid "%s is already the newest version.\n" msgstr "%s er i forvejen den nyeste version.\n" -#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2088 cmdline/apt-mark.cc:59 +#: cmdline/apt-get.cc:818 cmdline/apt-get.cc:2096 cmdline/apt-mark.cc:59 #, c-format msgid "%s set to manually installed.\n" msgstr "%s sat til manuelt installeret.\n" @@ -849,127 +845,127 @@ msgid "Selected version '%s' (%s) for '%s'\n" msgstr "Valgte version '%s' (%s) for '%s'\n" #: cmdline/apt-get.cc:849 -#, fuzzy, c-format +#, c-format msgid "Selected version '%s' (%s) for '%s' because of '%s'\n" -msgstr "Valgte version '%s' (%s) for '%s'\n" +msgstr "Valgte version '%s' (%s) for '%s' på grund af '%s'\n" -#: cmdline/apt-get.cc:893 +#: cmdline/apt-get.cc:891 #, c-format msgid "Package %s is not installed, so not removed\n" msgstr "Pakken %s er ikke installeret, så den afinstalleres ikke\n" -#: cmdline/apt-get.cc:971 +#: cmdline/apt-get.cc:969 msgid "Correcting dependencies..." msgstr "Retter afhængigheder..." -#: cmdline/apt-get.cc:974 +#: cmdline/apt-get.cc:972 msgid " failed." msgstr " mislykkedes." -#: cmdline/apt-get.cc:977 +#: cmdline/apt-get.cc:975 msgid "Unable to correct dependencies" msgstr "Kunne ikke rette afhængigheder" -#: cmdline/apt-get.cc:980 +#: cmdline/apt-get.cc:978 msgid "Unable to minimize the upgrade set" msgstr "Kunne ikke minimere opgraderingssættet" -#: cmdline/apt-get.cc:982 +#: cmdline/apt-get.cc:980 msgid " Done" msgstr " Færdig" -#: cmdline/apt-get.cc:986 +#: cmdline/apt-get.cc:984 msgid "You might want to run 'apt-get -f install' to correct these." msgstr "Du kan muligvis rette dette ved at køre 'apt-get -f install'." -#: cmdline/apt-get.cc:989 +#: cmdline/apt-get.cc:987 msgid "Unmet dependencies. Try using -f." msgstr "Uopfyldte afhængigheder. Prøv med -f." -#: cmdline/apt-get.cc:1014 +#: cmdline/apt-get.cc:1012 msgid "WARNING: The following packages cannot be authenticated!" msgstr "ADVARSEL: Følgende pakkers autenticitet kunne ikke verificeres!" -#: cmdline/apt-get.cc:1018 +#: cmdline/apt-get.cc:1016 msgid "Authentication warning overridden.\n" msgstr "Autentifikationsadvarsel tilsidesat.\n" -#: cmdline/apt-get.cc:1025 +#: cmdline/apt-get.cc:1023 msgid "Install these packages without verification [y/N]? " msgstr "Installér disse pakker uden verifikation (y/N)? " -#: cmdline/apt-get.cc:1027 +#: cmdline/apt-get.cc:1025 msgid "Some packages could not be authenticated" msgstr "Nogle pakker kunne ikke autentificeres" -#: cmdline/apt-get.cc:1036 cmdline/apt-get.cc:1197 +#: cmdline/apt-get.cc:1034 cmdline/apt-get.cc:1195 msgid "There are problems and -y was used without --force-yes" msgstr "Der er problemer og -y blev brugt uden --force-yes" -#: cmdline/apt-get.cc:1077 +#: cmdline/apt-get.cc:1075 msgid "Internal error, InstallPackages was called with broken packages!" msgstr "Intern fejl. InstallPackages blev kaldt med ødelagte pakker!" -#: cmdline/apt-get.cc:1086 +#: cmdline/apt-get.cc:1084 msgid "Packages need to be removed but remove is disabled." msgstr "Pakker skal afinstalleres, men Remove er deaktiveret." -#: cmdline/apt-get.cc:1097 +#: cmdline/apt-get.cc:1095 msgid "Internal error, Ordering didn't finish" msgstr "Intern fejl. Sortering blev ikke fuldført" -#: cmdline/apt-get.cc:1135 +#: cmdline/apt-get.cc:1133 msgid "How odd.. The sizes didn't match, email apt@packages.debian.org" msgstr "Mystisk.. Størrelserne passede ikke, skriv til apt@packages.debian.org" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB -#: cmdline/apt-get.cc:1142 +#: cmdline/apt-get.cc:1140 #, c-format msgid "Need to get %sB/%sB of archives.\n" msgstr "%sB/%sB skal hentes fra arkiverne.\n" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB -#: cmdline/apt-get.cc:1147 +#: cmdline/apt-get.cc:1145 #, c-format msgid "Need to get %sB of archives.\n" msgstr "%sB skal hentes fra arkiverne.\n" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB -#: cmdline/apt-get.cc:1154 +#: cmdline/apt-get.cc:1152 #, c-format msgid "After this operation, %sB of additional disk space will be used.\n" msgstr "Efter denne handling, vil %sB yderligere diskplads være brugt.\n" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB -#: cmdline/apt-get.cc:1159 +#: cmdline/apt-get.cc:1157 #, c-format msgid "After this operation, %sB disk space will be freed.\n" msgstr "Efter denne handling, vil %sB diskplads blive frigjort.\n" -#: cmdline/apt-get.cc:1174 cmdline/apt-get.cc:1177 cmdline/apt-get.cc:2499 -#: cmdline/apt-get.cc:2502 +#: cmdline/apt-get.cc:1172 cmdline/apt-get.cc:1175 cmdline/apt-get.cc:2514 +#: cmdline/apt-get.cc:2517 #, c-format msgid "Couldn't determine free space in %s" msgstr "Kunne ikke bestemme ledig plads i %s" -#: cmdline/apt-get.cc:1187 +#: cmdline/apt-get.cc:1185 #, c-format msgid "You don't have enough free space in %s." msgstr "Du har ikke nok ledig plads i %s." -#: cmdline/apt-get.cc:1203 cmdline/apt-get.cc:1223 +#: cmdline/apt-get.cc:1201 cmdline/apt-get.cc:1221 msgid "Trivial Only specified but this is not a trivial operation." msgstr "'Trivial Only' angivet, men dette er ikke en triviel handling." -#: cmdline/apt-get.cc:1205 +#: cmdline/apt-get.cc:1203 msgid "Yes, do as I say!" msgstr "Ja, gør som jeg siger!" -#: cmdline/apt-get.cc:1207 +#: cmdline/apt-get.cc:1205 #, c-format msgid "" "You are about to do something potentially harmful.\n" @@ -980,28 +976,28 @@ msgstr "" "For at fortsætte, skal du skrive '%s'\n" " ?] " -#: cmdline/apt-get.cc:1213 cmdline/apt-get.cc:1232 +#: cmdline/apt-get.cc:1211 cmdline/apt-get.cc:1230 msgid "Abort." msgstr "Afbryder." -#: cmdline/apt-get.cc:1228 +#: cmdline/apt-get.cc:1226 msgid "Do you want to continue [Y/n]? " msgstr "Vil du fortsætte [J/n]? " -#: cmdline/apt-get.cc:1300 cmdline/apt-get.cc:2564 apt-pkg/algorithms.cc:1438 +#: cmdline/apt-get.cc:1298 cmdline/apt-get.cc:2579 apt-pkg/algorithms.cc:1445 #, c-format msgid "Failed to fetch %s %s\n" msgstr "Kunne ikke hente %s %s\n" -#: cmdline/apt-get.cc:1318 +#: cmdline/apt-get.cc:1316 msgid "Some files failed to download" msgstr "Nedhentningen af filer mislykkedes" -#: cmdline/apt-get.cc:1319 cmdline/apt-get.cc:2576 +#: cmdline/apt-get.cc:1317 cmdline/apt-get.cc:2591 msgid "Download complete and in download only mode" msgstr "Nedhentning afsluttet i 'hent-kun'-tilstand" -#: cmdline/apt-get.cc:1325 +#: cmdline/apt-get.cc:1323 msgid "" "Unable to fetch some archives, maybe run apt-get update or try with --fix-" "missing?" @@ -1009,19 +1005,19 @@ msgstr "" "Kunne ikke hente nogle af arkiverne. Prøv evt. at køre 'apt-get update' " "eller prøv med --fix-missing." -#: cmdline/apt-get.cc:1329 +#: cmdline/apt-get.cc:1327 msgid "--fix-missing and media swapping is not currently supported" msgstr "--fix-missing og medieskift understøttes endnu ikke" -#: cmdline/apt-get.cc:1334 +#: cmdline/apt-get.cc:1332 msgid "Unable to correct missing packages." msgstr "Kunne ikke rette manglende pakker." -#: cmdline/apt-get.cc:1335 +#: cmdline/apt-get.cc:1333 msgid "Aborting install." msgstr "Afbryder installationen." -#: cmdline/apt-get.cc:1363 +#: cmdline/apt-get.cc:1361 msgid "" "The following package disappeared from your system as\n" "all files have been overwritten by other packages:" @@ -1035,37 +1031,37 @@ msgstr[1] "" "De følgende pakker forsvandt fra dit system, da\n" "alle filer er blevet overskrevet af andre pakker:" -#: cmdline/apt-get.cc:1367 +#: cmdline/apt-get.cc:1365 msgid "Note: This is done automatic and on purpose by dpkg." msgstr "Bemærk: Dette sker automatisk og med vilje af dpkg." -#: cmdline/apt-get.cc:1505 +#: cmdline/apt-get.cc:1503 #, c-format msgid "Ignore unavailable target release '%s' of package '%s'" msgstr "Ignorer utilgængelig måludgivelse '%s' af pakke '%s'" -#: cmdline/apt-get.cc:1537 +#: cmdline/apt-get.cc:1535 #, c-format msgid "Picking '%s' as source package instead of '%s'\n" msgstr "Vælger '%s' som kildepakke fremfor '%s'\n" #. if (VerTag.empty() == false && Last == 0) -#: cmdline/apt-get.cc:1575 +#: cmdline/apt-get.cc:1573 #, c-format msgid "Ignore unavailable version '%s' of package '%s'" msgstr "Ignorer utilgængelig version '%s' af pakke '%s'" -#: cmdline/apt-get.cc:1591 +#: cmdline/apt-get.cc:1589 msgid "The update command takes no arguments" msgstr "'update'-kommandoen benytter ingen parametre" -#: cmdline/apt-get.cc:1653 +#: cmdline/apt-get.cc:1652 msgid "We are not supposed to delete stuff, can't start AutoRemover" msgstr "" "Det er ikke meningen, at vi skal slette ting og sager, kan ikke starte " "AutoRemover" -#: cmdline/apt-get.cc:1748 +#: cmdline/apt-get.cc:1756 msgid "" "Hmm, seems like the AutoRemover destroyed something which really\n" "shouldn't happen. Please file a bug report against apt." @@ -1083,15 +1079,15 @@ msgstr "" #. "that package should be filed.") << endl; #. } #. -#: cmdline/apt-get.cc:1751 cmdline/apt-get.cc:1921 +#: cmdline/apt-get.cc:1759 cmdline/apt-get.cc:1929 msgid "The following information may help to resolve the situation:" msgstr "Følgende oplysninger kan hjælpe dig med at klare situationen:" -#: cmdline/apt-get.cc:1755 +#: cmdline/apt-get.cc:1763 msgid "Internal Error, AutoRemover broke stuff" msgstr "Intern fejl. AutoRemover ødelagde noget" -#: cmdline/apt-get.cc:1762 +#: cmdline/apt-get.cc:1770 msgid "" "The following package was automatically installed and is no longer required:" msgid_plural "" @@ -1102,7 +1098,7 @@ msgstr[0] "" msgstr[1] "" "Følgende pakker blev installeret automatisk, og behøves ikke længere:" -#: cmdline/apt-get.cc:1766 +#: cmdline/apt-get.cc:1774 #, c-format msgid "%lu package was automatically installed and is no longer required.\n" msgid_plural "" @@ -1111,19 +1107,19 @@ msgstr[0] "Pakken %lu blev installeret automatisk, og behøves ikke længere.\n" msgstr[1] "" "Pakkerne %lu blev installeret automatisk, og behøves ikke længere.\n" -#: cmdline/apt-get.cc:1768 +#: cmdline/apt-get.cc:1776 msgid "Use 'apt-get autoremove' to remove them." msgstr "Brug 'apt-get autoremove' til at fjerne dem." -#: cmdline/apt-get.cc:1787 +#: cmdline/apt-get.cc:1795 msgid "Internal error, AllUpgrade broke stuff" msgstr "Intern fejl, AllUpgrade ødelagde noget" -#: cmdline/apt-get.cc:1886 +#: cmdline/apt-get.cc:1894 msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Du kan muligvis rette det ved at køre 'apt-get -f install':" -#: cmdline/apt-get.cc:1890 +#: cmdline/apt-get.cc:1898 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." @@ -1131,7 +1127,7 @@ msgstr "" "Uopfyldte afhængigheder. Prøv 'apt-get -f install' uden pakker (eller angiv " "en løsning)." -#: cmdline/apt-get.cc:1906 +#: cmdline/apt-get.cc:1914 msgid "" "Some packages could not be installed. This may mean that you have\n" "requested an impossible situation or if you are using the unstable\n" @@ -1142,73 +1138,75 @@ msgstr "" "en umulig situation eller bruger den ustabile distribution, hvor enkelte\n" "pakker endnu ikke er lavet eller gjort tilgængelige." -#: cmdline/apt-get.cc:1924 +#: cmdline/apt-get.cc:1932 msgid "Broken packages" msgstr "Ødelagte pakker" -#: cmdline/apt-get.cc:1950 +#: cmdline/apt-get.cc:1958 msgid "The following extra packages will be installed:" msgstr "Følgende yderligere pakker vil blive installeret:" -#: cmdline/apt-get.cc:2040 +#: cmdline/apt-get.cc:2048 msgid "Suggested packages:" msgstr "Foreslåede pakker:" -#: cmdline/apt-get.cc:2041 +#: cmdline/apt-get.cc:2049 msgid "Recommended packages:" msgstr "Anbefalede pakker:" -#: cmdline/apt-get.cc:2083 +#: cmdline/apt-get.cc:2091 #, c-format msgid "Couldn't find package %s" msgstr "Kunne ikke finde pakken %s" -#: cmdline/apt-get.cc:2090 cmdline/apt-mark.cc:61 +#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:61 #, c-format msgid "%s set to automatically installed.\n" msgstr "%s sat til automatisk installation.\n" -#: cmdline/apt-get.cc:2098 cmdline/apt-mark.cc:105 +#: cmdline/apt-get.cc:2106 cmdline/apt-mark.cc:105 msgid "" "This command is deprecated. Please use 'apt-mark auto' and 'apt-mark manual' " "instead." msgstr "" +"Denne kommando er forældet. Brug venligst »apt-mark auto« og »apt-mark " +"manual« i stedet for." -#: cmdline/apt-get.cc:2114 +#: cmdline/apt-get.cc:2122 msgid "Calculating upgrade... " msgstr "Beregner opgraderingen... " -#: cmdline/apt-get.cc:2117 methods/ftp.cc:707 methods/connect.cc:111 +#: cmdline/apt-get.cc:2125 methods/ftp.cc:708 methods/connect.cc:111 msgid "Failed" msgstr "Mislykkedes" -#: cmdline/apt-get.cc:2122 +#: cmdline/apt-get.cc:2130 msgid "Done" msgstr "Færdig" -#: cmdline/apt-get.cc:2189 cmdline/apt-get.cc:2197 +#: cmdline/apt-get.cc:2197 cmdline/apt-get.cc:2205 msgid "Internal error, problem resolver broke stuff" msgstr "Intern fejl. Problemløseren ødelagde noget" -#: cmdline/apt-get.cc:2221 cmdline/apt-get.cc:2254 +#: cmdline/apt-get.cc:2233 cmdline/apt-get.cc:2269 msgid "Unable to lock the download directory" msgstr "Kunne ikke låse nedhentningsmappen" -#: cmdline/apt-get.cc:2305 +#: cmdline/apt-get.cc:2320 #, c-format msgid "Downloading %s %s" -msgstr "" +msgstr "Henter %s %s" -#: cmdline/apt-get.cc:2361 +#: cmdline/apt-get.cc:2376 msgid "Must specify at least one package to fetch source for" msgstr "Du skal angive mindst én pakke at hente kildeteksten til" -#: cmdline/apt-get.cc:2401 cmdline/apt-get.cc:2713 +#: cmdline/apt-get.cc:2416 cmdline/apt-get.cc:2728 #, c-format msgid "Unable to find a source package for %s" msgstr "Kunne ikke finde kildetekstpakken for %s" -#: cmdline/apt-get.cc:2418 +#: cmdline/apt-get.cc:2433 #, c-format msgid "" "NOTICE: '%s' packaging is maintained in the '%s' version control system at:\n" @@ -1217,7 +1215,7 @@ msgstr "" "BEMÆRK: Pakning af '%s' vedligeholdes i versionskontrolsystemet '%s' på:\n" "%s\n" -#: cmdline/apt-get.cc:2423 +#: cmdline/apt-get.cc:2438 #, c-format msgid "" "Please use:\n" @@ -1228,149 +1226,151 @@ msgstr "" "bzr get %s\n" "for at hente de seneste (muligvis ikke udgivet) opdateringer til pakken.\n" -#: cmdline/apt-get.cc:2476 +#: cmdline/apt-get.cc:2491 #, c-format msgid "Skipping already downloaded file '%s'\n" msgstr "Overspringer allerede hentet fil '%s'\n" -#: cmdline/apt-get.cc:2513 +#: cmdline/apt-get.cc:2528 #, c-format msgid "You don't have enough free space in %s" msgstr "Du har ikke nok ledig plads i %s" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement strings, so %sB will be correctly translate in e.g. 1,5 MB -#: cmdline/apt-get.cc:2522 +#: cmdline/apt-get.cc:2537 #, c-format msgid "Need to get %sB/%sB of source archives.\n" msgstr "%sB/%sB skal hentes fra kildetekst-arkiverne.\n" #. TRANSLATOR: The required space between number and unit is already included #. in the replacement string, so %sB will be correctly translate in e.g. 1,5 MB -#: cmdline/apt-get.cc:2527 +#: cmdline/apt-get.cc:2542 #, c-format msgid "Need to get %sB of source archives.\n" msgstr "%sB skal hentes fra kildetekst-arkiverne.\n" -#: cmdline/apt-get.cc:2533 +#: cmdline/apt-get.cc:2548 #, c-format msgid "Fetch source %s\n" msgstr "Henter kildetekst %s\n" -#: cmdline/apt-get.cc:2571 +#: cmdline/apt-get.cc:2586 msgid "Failed to fetch some archives." msgstr "Nogle arkiver kunne ikke hentes." -#: cmdline/apt-get.cc:2602 +#: cmdline/apt-get.cc:2617 #, c-format msgid "Skipping unpack of already unpacked source in %s\n" msgstr "Overspringer udpakning af allerede udpakket kildetekst i %s\n" -#: cmdline/apt-get.cc:2614 +#: cmdline/apt-get.cc:2629 #, c-format msgid "Unpack command '%s' failed.\n" msgstr "Udpakningskommandoen '%s' fejlede.\n" -#: cmdline/apt-get.cc:2615 +#: cmdline/apt-get.cc:2630 #, c-format msgid "Check if the 'dpkg-dev' package is installed.\n" msgstr "Tjek om pakken 'dpkg-dev' er installeret.\n" -#: cmdline/apt-get.cc:2637 +#: cmdline/apt-get.cc:2652 #, c-format msgid "Build command '%s' failed.\n" msgstr "Opbygningskommandoen '%s' fejlede.\n" -#: cmdline/apt-get.cc:2657 +#: cmdline/apt-get.cc:2672 msgid "Child process failed" msgstr "Barneprocessen fejlede" -#: cmdline/apt-get.cc:2676 +#: cmdline/apt-get.cc:2691 msgid "Must specify at least one package to check builddeps for" msgstr "Skal angive mindst én pakke at tjekke opbygningsafhængigheder for" -#: cmdline/apt-get.cc:2701 +#: cmdline/apt-get.cc:2716 #, c-format msgid "" "No architecture information available for %s. See apt.conf(5) APT::" "Architectures for setup" msgstr "" +"Ingen arkitekturinformation tilgængelig for %s. Se apt.conf(5) APT::" +"Architectures for opsætning" -#: cmdline/apt-get.cc:2718 +#: cmdline/apt-get.cc:2733 #, c-format msgid "Unable to get build-dependency information for %s" msgstr "Kunne ikke hente oplysninger om opbygningsafhængigheder for %s" -#: cmdline/apt-get.cc:2738 +#: cmdline/apt-get.cc:2753 #, c-format msgid "%s has no build depends.\n" msgstr "%s har ingen opbygningsafhængigheder.\n" -#: cmdline/apt-get.cc:2868 -#, fuzzy, c-format +#: cmdline/apt-get.cc:2883 +#, c-format msgid "" "%s dependency for %s can't be satisfied because %s is not allowed on '%s' " "packages" msgstr "" -"%s-afhængigheden for %s kan ikke opfyldes, da pakken %s ikke blev fundet" +"Afhængigheden %s for %s kan ikke opfyldes, da %s ikke er tilladt på '%s'" -#: cmdline/apt-get.cc:2889 +#: cmdline/apt-get.cc:2904 #, c-format msgid "" "%s dependency for %s cannot be satisfied because the package %s cannot be " "found" msgstr "" -"%s-afhængigheden for %s kan ikke opfyldes, da pakken %s ikke blev fundet" +"Afhængigheden %s for %s kan ikke opfyldes, da pakken %s ikke blev fundet" -#: cmdline/apt-get.cc:2912 +#: cmdline/apt-get.cc:2927 #, c-format msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new" msgstr "" "Kunne ikke opfylde %s-afhængigheden for %s: Den installerede pakke %s er for " "ny" -#: cmdline/apt-get.cc:2951 -#, fuzzy, c-format +#: cmdline/apt-get.cc:2966 +#, c-format msgid "" "%s dependency for %s cannot be satisfied because candidate version of " "package %s can't satisfy version requirements" msgstr "" -"%s-afhængigheden for %s kan ikke opfyldes, da ingen af de tilgængelige " -"udgaver af pakken %s kan tilfredsstille versions-kravene" +"Afhængigheden %s for %s kan ikke opfyldes, da ingen af de tilgængelige " +"kandidater for pakken %s kan tilfredsstille versionskravene" -#: cmdline/apt-get.cc:2957 -#, fuzzy, c-format +#: cmdline/apt-get.cc:2972 +#, c-format msgid "" "%s dependency for %s cannot be satisfied because package %s has no candidate " "version" msgstr "" -"%s-afhængigheden for %s kan ikke opfyldes, da pakken %s ikke blev fundet" +"%s-afhængigheden for %s kan ikke opfyldes, da pakken %s ikke har en " +"kandidatversion" -#: cmdline/apt-get.cc:2980 +#: cmdline/apt-get.cc:2995 #, c-format msgid "Failed to satisfy %s dependency for %s: %s" msgstr "Kunne ikke opfylde %s-afhængigheden for %s: %s" -#: cmdline/apt-get.cc:2996 +#: cmdline/apt-get.cc:3011 #, c-format msgid "Build-dependencies for %s could not be satisfied." msgstr "Opbygningsafhængigheden for %s kunne ikke opfyldes." -#: cmdline/apt-get.cc:3001 +#: cmdline/apt-get.cc:3016 msgid "Failed to process build dependencies" msgstr "Kunne ikke behandler opbygningsafhængighederne" -#: cmdline/apt-get.cc:3094 cmdline/apt-get.cc:3106 -#, fuzzy, c-format +#: cmdline/apt-get.cc:3109 cmdline/apt-get.cc:3121 +#, c-format msgid "Changelog for %s (%s)" -msgstr "Forbinder til %s (%s)" +msgstr "Ændringslog for %s (%s)" -#: cmdline/apt-get.cc:3225 +#: cmdline/apt-get.cc:3240 msgid "Supported modules:" msgstr "Understøttede moduler:" -#: cmdline/apt-get.cc:3266 -#, fuzzy +#: cmdline/apt-get.cc:3281 msgid "" "Usage: apt-get [options] command\n" " apt-get [options] install|remove pkg1 [pkg2 ...]\n" @@ -1426,9 +1426,9 @@ msgstr "" "Kommandoer:\n" " update - Hent nye lister over pakker\n" " upgrade - Udfør en opgradering\n" -" install - Installér nye pakker (pakke er libc6, ikke libc6.deb)\n" -" remove - Afinstallér pakker\n" -" autoremove - Afinstallér automatisk alle ubrugte pakker\n" +" install - Installer nye pakker (pakke er libc6, ikke libc6.deb)\n" +" remove - Afinstaller pakker\n" +" autoremove - Afinstaller automatisk alle ubrugte pakker\n" " purge - Fjern pakker og konfigurationsfiler\n" " source - Hent kildetekstarkiver\n" " build-dep - Sæt opbygningsafhængigheder op for kildetekstpakker\n" @@ -1437,8 +1437,8 @@ msgstr "" " clean - Slet hentede arkivfiler\n" " autoclean - Slet gamle hentede arkivfiler\n" " check - Tjek at der ikke er uopfyldte afhængigheder\n" -" markauto - Marker de angivne pakker som automatisk installeret\n" -" unmarkauto - Marker de angivne pakker som manuelt installeret\n" +" changelog - Hent og vis ændringsloggen for den angivne pakke\n" +" download - Hent den binære pakke til den aktuelle mappe\n" "\n" "Tilvalg:\n" " -h Denne hjælpetekst.\n" @@ -1456,9 +1456,9 @@ msgstr "" " -o=? Angiv et arbitrært opsætningsvalg. F.eks. -o dir::cache=/tmp\n" "Se manualsiderne for apt-get(8), sources.list(5) og apt.conf(5)\n" "for flere oplysninger og tilvalg.\n" -" Denne APT har \"Super Cow Powers\".\n" +" Denne APT har »Super Cow Powers«.\n" -#: cmdline/apt-get.cc:3429 +#: cmdline/apt-get.cc:3444 msgid "" "NOTE: This is only a simulation!\n" " apt-get needs root privileges for real execution.\n" @@ -1508,43 +1508,43 @@ msgstr "" "i drevet '%s' og tryk retur\n" #: cmdline/apt-mark.cc:46 -#, fuzzy, c-format +#, c-format msgid "%s can not be marked as it is not installed.\n" -msgstr "men den er ikke installeret" +msgstr "%s kan ikke markeres, da den ikke er installeret.\n" #: cmdline/apt-mark.cc:52 -#, fuzzy, c-format +#, c-format msgid "%s was already set to manually installed.\n" -msgstr "%s sat til manuelt installeret.\n" +msgstr "%s var allerede sat til manuelt installeret.\n" #: cmdline/apt-mark.cc:54 -#, fuzzy, c-format +#, c-format msgid "%s was already set to automatically installed.\n" -msgstr "%s sat til automatisk installation.\n" +msgstr "%s var allerede sat til automatisk installeret.\n" #: cmdline/apt-mark.cc:169 -#, fuzzy, c-format +#, c-format msgid "%s was already set on hold.\n" -msgstr "%s er i forvejen den nyeste version.\n" +msgstr "%s var allerede sat i bero.\n" #: cmdline/apt-mark.cc:171 -#, fuzzy, c-format +#, c-format msgid "%s was already not hold.\n" -msgstr "%s er i forvejen den nyeste version.\n" +msgstr "%s var allerede ikke i bero.\n" #: cmdline/apt-mark.cc:185 cmdline/apt-mark.cc:207 -#, fuzzy, c-format +#, c-format msgid "%s set on hold.\n" -msgstr "%s sat til manuelt installeret.\n" +msgstr "%s sat i bero.\n" #: cmdline/apt-mark.cc:187 cmdline/apt-mark.cc:212 -#, fuzzy, c-format +#, c-format msgid "Canceled hold on %s.\n" -msgstr "Kunne ikke åbne %s" +msgstr "Afbrød i bero for %s.\n" #: cmdline/apt-mark.cc:220 msgid "Executing dpkg failed. Are you root?" -msgstr "" +msgstr "Kørsel af dpkg fejlede. Er du root (administrator)?" #: cmdline/apt-mark.cc:268 msgid "" @@ -1567,6 +1567,26 @@ msgid "" " -o=? Set an arbitrary configuration option, eg -o dir::cache=/tmp\n" "See the apt-mark(8) and apt.conf(5) manual pages for more information." msgstr "" +"Brug: apt-mark [tilvalg] {auto|manual} pakke1 [pakke2 ...]\n" +"\n" +"apt-mark er en simpel kommandolinjegrænseflade for markering af pakker\n" +"som manuelt eller automatisk installeret. Programmet kan også vise\n" +"markeringerne.\n" +"\n" +"Kommandoer:\n" +" auto - Marker de givne pakker som automatisk installeret\n" +" manual - Marker de givne pakker som manuelt installeret\n" +"\n" +"Tilvalg:\n" +" -h Denne hjælpetekst.\n" +" -q Logbar uddata - ingen statusindikator\n" +" -qq Ingen uddata undtagen for fejl\n" +" -s Ingen handling. Viser kun hvad der ville blive udført.\n" +" -f læs/skriv auto/manuel markering i den givne fil\n" +" -c=? Læs denne konfigurationsfil\n" +" -o=? Angiv en arbitrær konfigurationsindstilling, f.eks. -o dir::cache=/" +"tmp\n" +"Se manualsiderne apt-mark(8) og apt.conf(5) for yderligere information." #: cmdline/apt-sortpkgs.cc:86 msgid "Unknown package record!" @@ -1773,8 +1793,8 @@ msgstr "File %s/%s overskriver filen i pakken %s" #. Only warn if there is no sources.list file. #: apt-inst/extract.cc:462 apt-pkg/contrib/cdromutl.cc:179 #: apt-pkg/contrib/fileutl.cc:343 apt-pkg/sourcelist.cc:204 -#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:450 apt-pkg/init.cc:104 -#: apt-pkg/init.cc:112 apt-pkg/clean.cc:33 apt-pkg/policy.cc:352 +#: apt-pkg/sourcelist.cc:210 apt-pkg/acquire.cc:454 apt-pkg/init.cc:103 +#: apt-pkg/init.cc:111 apt-pkg/clean.cc:33 apt-pkg/policy.cc:353 #: methods/mirror.cc:91 #, c-format msgid "Unable to read %s" @@ -1804,9 +1824,9 @@ msgstr "Kunne ikke finde %sinfo" msgid "The info and temp directories need to be on the same filesystem" msgstr "Mapperne info og temp skal ligge i samme filsystem" -#: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1048 -#: apt-pkg/pkgcachegen.cc:1152 apt-pkg/pkgcachegen.cc:1158 -#: apt-pkg/pkgcachegen.cc:1320 +#: apt-inst/deb/dpkgdb.cc:135 apt-pkg/pkgcachegen.cc:1063 +#: apt-pkg/pkgcachegen.cc:1167 apt-pkg/pkgcachegen.cc:1173 +#: apt-pkg/pkgcachegen.cc:1335 msgid "Reading package lists" msgstr "Indlæser pakkelisterne" @@ -1915,7 +1935,7 @@ msgstr "Ikke-tolkbar kontrolfil" #: methods/bzip2.cc:60 methods/gzip.cc:52 msgid "Empty files can't be valid archives" -msgstr "" +msgstr "Tomme filer kan ikke være gyldige arkiver" #: methods/bzip2.cc:64 #, c-format @@ -1928,22 +1948,22 @@ msgid "Read error from %s process" msgstr "Læsefejl fra %s-process" #: methods/bzip2.cc:140 methods/bzip2.cc:149 methods/copy.cc:43 -#: methods/gzip.cc:92 methods/gzip.cc:101 methods/rred.cc:524 -#: methods/rred.cc:533 +#: methods/gzip.cc:92 methods/gzip.cc:101 methods/rred.cc:527 +#: methods/rred.cc:536 msgid "Failed to stat" msgstr "Kunne ikke finde" #: methods/bzip2.cc:146 methods/copy.cc:80 methods/gzip.cc:98 -#: methods/rred.cc:530 +#: methods/rred.cc:533 msgid "Failed to set modification time" msgstr "Kunne ikke angive ændringstidspunkt" -#: methods/cdrom.cc:199 +#: methods/cdrom.cc:200 #, c-format msgid "Unable to read the cdrom database %s" msgstr "Kunne ikke læse cdrom-databasen %s" -#: methods/cdrom.cc:208 +#: methods/cdrom.cc:209 msgid "" "Please use apt-cdrom to make this CD-ROM recognized by APT. apt-get update " "cannot be used to add new CD-ROMs" @@ -1951,20 +1971,20 @@ msgstr "" "Brug apt-cdrom for at apt kan lære den at kende. apt-get update kan ikke " "bruges til at tilføje nye cd'er" -#: methods/cdrom.cc:218 +#: methods/cdrom.cc:219 msgid "Wrong CD-ROM" msgstr "Forkert cd" -#: methods/cdrom.cc:245 +#: methods/cdrom.cc:246 #, c-format msgid "Unable to unmount the CD-ROM in %s, it may still be in use." msgstr "Kunne ikke afmontere cdrommen i %s, den er muligvis stadig i brug." -#: methods/cdrom.cc:250 +#: methods/cdrom.cc:251 msgid "Disk not found." msgstr "Disk blev ikke fundet." -#: methods/cdrom.cc:258 methods/file.cc:79 methods/rsh.cc:265 +#: methods/cdrom.cc:259 methods/file.cc:79 methods/rsh.cc:265 msgid "File not found" msgstr "Fil blev ikke fundet" @@ -1973,34 +1993,34 @@ msgid "Invalid URI, local URIS must not start with //" msgstr "Ugyldig URI, lokale URI'er må ikke starte med //" #. Login must be before getpeername otherwise dante won't work. -#: methods/ftp.cc:168 +#: methods/ftp.cc:169 msgid "Logging in" msgstr "Logget på" -#: methods/ftp.cc:174 +#: methods/ftp.cc:175 msgid "Unable to determine the peer name" msgstr "Kunne ikke bestemme serverens navn" -#: methods/ftp.cc:179 +#: methods/ftp.cc:180 msgid "Unable to determine the local name" msgstr "Kunne ikke bestemme det lokale navn" -#: methods/ftp.cc:210 methods/ftp.cc:238 +#: methods/ftp.cc:211 methods/ftp.cc:239 #, c-format msgid "The server refused the connection and said: %s" msgstr "Serveren nægtede os forbindelse og sagde: %s" -#: methods/ftp.cc:216 +#: methods/ftp.cc:217 #, c-format msgid "USER failed, server said: %s" msgstr "angivelse af brugernavn mislykkedes, serveren sagde: %s" -#: methods/ftp.cc:223 +#: methods/ftp.cc:224 #, c-format msgid "PASS failed, server said: %s" msgstr "angivelse af adgangskode mislykkedes, serveren sagde: %s" -#: methods/ftp.cc:243 +#: methods/ftp.cc:244 msgid "" "A proxy server was specified but no login script, Acquire::ftp::ProxyLogin " "is empty." @@ -2008,114 +2028,114 @@ msgstr "" "Der blev angivet en proxyserver men intet logpå-skript; Acquire::ftp::" "ProxyLogin er tom." -#: methods/ftp.cc:271 +#: methods/ftp.cc:272 #, c-format msgid "Login script command '%s' failed, server said: %s" msgstr "Logpå-skriptets kommando '%s' mislykkedes. Serveren sagde: %s" -#: methods/ftp.cc:297 +#: methods/ftp.cc:298 #, c-format msgid "TYPE failed, server said: %s" msgstr "TYPE mislykkedes. Serveren sagde: %s" -#: methods/ftp.cc:335 methods/ftp.cc:446 methods/rsh.cc:184 methods/rsh.cc:227 +#: methods/ftp.cc:336 methods/ftp.cc:447 methods/rsh.cc:184 methods/rsh.cc:227 msgid "Connection timeout" msgstr "Tidsudløb på forbindelsen" -#: methods/ftp.cc:341 +#: methods/ftp.cc:342 msgid "Server closed the connection" msgstr "Serveren lukkede forbindelsen" -#: methods/ftp.cc:344 apt-pkg/contrib/fileutl.cc:820 methods/rsh.cc:191 +#: methods/ftp.cc:345 apt-pkg/contrib/fileutl.cc:831 methods/rsh.cc:191 msgid "Read error" msgstr "Læsefejl" -#: methods/ftp.cc:351 methods/rsh.cc:198 +#: methods/ftp.cc:352 methods/rsh.cc:198 msgid "A response overflowed the buffer." msgstr "Mellemlageret blev overfyldt af et svar." -#: methods/ftp.cc:368 methods/ftp.cc:380 +#: methods/ftp.cc:369 methods/ftp.cc:381 msgid "Protocol corruption" msgstr "Protokolfejl" -#: methods/ftp.cc:452 apt-pkg/contrib/fileutl.cc:862 methods/rsh.cc:233 +#: methods/ftp.cc:453 apt-pkg/contrib/fileutl.cc:873 methods/rsh.cc:233 msgid "Write error" msgstr "Skrivefejl" -#: methods/ftp.cc:692 methods/ftp.cc:698 methods/ftp.cc:734 +#: methods/ftp.cc:693 methods/ftp.cc:699 methods/ftp.cc:735 msgid "Could not create a socket" msgstr "Kunne ikke oprette sokkel" -#: methods/ftp.cc:703 +#: methods/ftp.cc:704 msgid "Could not connect data socket, connection timed out" msgstr "Kunne ikke forbinde datasokkel, tidsudløb på forbindelsen" -#: methods/ftp.cc:709 +#: methods/ftp.cc:710 msgid "Could not connect passive socket." msgstr "Kunne ikke forbinde passiv sokkel." -#: methods/ftp.cc:727 +#: methods/ftp.cc:728 msgid "getaddrinfo was unable to get a listening socket" msgstr "getaddrinfo kunne ikke få en lyttesokkel" -#: methods/ftp.cc:741 +#: methods/ftp.cc:742 msgid "Could not bind a socket" msgstr "Kunne ikke tilknytte en sokkel" -#: methods/ftp.cc:745 +#: methods/ftp.cc:746 msgid "Could not listen on the socket" msgstr "Kunne ikke lytte på soklen" -#: methods/ftp.cc:752 +#: methods/ftp.cc:753 msgid "Could not determine the socket's name" msgstr "Kunne ikke finde soklens navn" -#: methods/ftp.cc:784 +#: methods/ftp.cc:785 msgid "Unable to send PORT command" msgstr "Kunne ikke sende PORT-kommando" -#: methods/ftp.cc:794 +#: methods/ftp.cc:795 #, c-format msgid "Unknown address family %u (AF_*)" msgstr "Ukendt adressefamilie %u (AF_*)" -#: methods/ftp.cc:803 +#: methods/ftp.cc:804 #, c-format msgid "EPRT failed, server said: %s" msgstr "EPRT mislykkedes. Serveren sagde: %s" -#: methods/ftp.cc:823 +#: methods/ftp.cc:824 msgid "Data socket connect timed out" msgstr "Tidsudløb på datasokkel-forbindelse" -#: methods/ftp.cc:830 +#: methods/ftp.cc:831 msgid "Unable to accept connection" msgstr "Kunne ikke acceptere forbindelse" -#: methods/ftp.cc:869 methods/http.cc:1023 methods/rsh.cc:303 +#: methods/ftp.cc:870 methods/http.cc:1023 methods/rsh.cc:303 msgid "Problem hashing file" msgstr "Problem ved \"hashing\" af fil" -#: methods/ftp.cc:882 +#: methods/ftp.cc:883 #, c-format msgid "Unable to fetch file, server said '%s'" msgstr "Kunne ikke hente fil. Serveren sagde '%s'" -#: methods/ftp.cc:897 methods/rsh.cc:322 +#: methods/ftp.cc:898 methods/rsh.cc:322 msgid "Data socket timed out" msgstr "Tidsudløb ved datasokkel" -#: methods/ftp.cc:927 +#: methods/ftp.cc:928 #, c-format msgid "Data transfer failed, server said '%s'" msgstr "Dataoverførsel mislykkedes, serveren sagde '%s'" #. Get the files information -#: methods/ftp.cc:1004 +#: methods/ftp.cc:1005 msgid "Query" msgstr "Forespørgsel" -#: methods/ftp.cc:1116 +#: methods/ftp.cc:1117 msgid "Unable to invoke " msgstr "Kunne ikke udføre " @@ -2356,7 +2376,7 @@ msgstr "%limin %lis" msgid "%lis" msgstr "%lis" -#: apt-pkg/contrib/strutl.cc:1138 +#: apt-pkg/contrib/strutl.cc:1137 #, c-format msgid "Selection %s not found" msgstr "Det valgte %s blev ikke fundet" @@ -2431,43 +2451,43 @@ msgstr "%c%s... Færdig" msgid "Command line option '%c' [from %s] is not known." msgstr "Kommandolinjetilvalget '%c' [fra %s] kendes ikke." -#: apt-pkg/contrib/cmndline.cc:103 apt-pkg/contrib/cmndline.cc:111 -#: apt-pkg/contrib/cmndline.cc:119 +#: apt-pkg/contrib/cmndline.cc:101 apt-pkg/contrib/cmndline.cc:109 +#: apt-pkg/contrib/cmndline.cc:117 #, c-format msgid "Command line option %s is not understood" msgstr "Kommandolinjetilvalget %s blev ikke forstået" -#: apt-pkg/contrib/cmndline.cc:124 +#: apt-pkg/contrib/cmndline.cc:122 #, c-format msgid "Command line option %s is not boolean" msgstr "Kommandolinjetilvalget %s er ikke boolsk" -#: apt-pkg/contrib/cmndline.cc:165 apt-pkg/contrib/cmndline.cc:186 +#: apt-pkg/contrib/cmndline.cc:163 apt-pkg/contrib/cmndline.cc:184 #, c-format msgid "Option %s requires an argument." msgstr "Tilvalget %s kræver et parameter." -#: apt-pkg/contrib/cmndline.cc:200 apt-pkg/contrib/cmndline.cc:206 +#: apt-pkg/contrib/cmndline.cc:197 apt-pkg/contrib/cmndline.cc:203 #, c-format msgid "Option %s: Configuration item specification must have an =." msgstr "Tilvalg %s: Opsætningspostens specifikation skal have en =." -#: apt-pkg/contrib/cmndline.cc:236 +#: apt-pkg/contrib/cmndline.cc:232 #, c-format msgid "Option %s requires an integer argument, not '%s'" msgstr "Tilvalget %s kræver et heltalligt parameter, ikke '%s'" -#: apt-pkg/contrib/cmndline.cc:267 +#: apt-pkg/contrib/cmndline.cc:263 #, c-format msgid "Option '%s' is too long" msgstr "Tilvalget '%s' er for langt" -#: apt-pkg/contrib/cmndline.cc:300 +#: apt-pkg/contrib/cmndline.cc:295 #, c-format msgid "Sense %s is not understood, try true or false." msgstr "%s blev ikke forstået, prøv med 'true' eller 'false'." -#: apt-pkg/contrib/cmndline.cc:350 +#: apt-pkg/contrib/cmndline.cc:345 #, c-format msgid "Invalid operation %s" msgstr "Ugyldig handling %s" @@ -2478,7 +2498,7 @@ msgid "Unable to stat the mount point %s" msgstr "Kunne ikke finde monteringspunktet %s" #: apt-pkg/contrib/cdromutl.cc:175 apt-pkg/contrib/cdromutl.cc:209 -#: apt-pkg/acquire.cc:456 apt-pkg/acquire.cc:481 apt-pkg/clean.cc:39 +#: apt-pkg/acquire.cc:460 apt-pkg/acquire.cc:485 apt-pkg/clean.cc:39 #: methods/mirror.cc:97 #, c-format msgid "Unable to change to %s" @@ -2511,90 +2531,90 @@ msgstr "Kunne ikke opnå låsen %s" #: apt-pkg/contrib/fileutl.cc:335 #, c-format msgid "List of files can't be created as '%s' is not a directory" -msgstr "" +msgstr "Liste over filer kan ikke oprettes da »%s« ikke er en mappe" #: apt-pkg/contrib/fileutl.cc:362 #, c-format msgid "Ignoring '%s' in directory '%s' as it is not a regular file" -msgstr "" +msgstr "Ignorerer »%s« i mappe »%s« da det ikke er en regulær fil" #: apt-pkg/contrib/fileutl.cc:380 #, c-format msgid "Ignoring file '%s' in directory '%s' as it has no filename extension" -msgstr "" +msgstr "Ignorerer fil »%s« i mappe »%s« da den ikke har en filendelse" #: apt-pkg/contrib/fileutl.cc:389 #, c-format msgid "" "Ignoring file '%s' in directory '%s' as it has an invalid filename extension" -msgstr "" +msgstr "Ignorerer fil »%s« i mappe »%s« da den har en ugyldig filendelse" -#: apt-pkg/contrib/fileutl.cc:679 +#: apt-pkg/contrib/fileutl.cc:690 #, c-format msgid "Waited for %s but it wasn't there" msgstr "Ventede på %s, men den var der ikke" -#: apt-pkg/contrib/fileutl.cc:691 +#: apt-pkg/contrib/fileutl.cc:702 #, c-format msgid "Sub-process %s received a segmentation fault." msgstr "Underprocessen %s modtog en segmenteringsfejl." -#: apt-pkg/contrib/fileutl.cc:693 +#: apt-pkg/contrib/fileutl.cc:704 #, c-format msgid "Sub-process %s received signal %u." msgstr "Underprocessen %s modtog en signal %u." -#: apt-pkg/contrib/fileutl.cc:697 +#: apt-pkg/contrib/fileutl.cc:708 #, c-format msgid "Sub-process %s returned an error code (%u)" msgstr "Underprocessen %s returnerede en fejlkode (%u)" -#: apt-pkg/contrib/fileutl.cc:699 +#: apt-pkg/contrib/fileutl.cc:710 #, c-format msgid "Sub-process %s exited unexpectedly" msgstr "Underprocessen %s afsluttedes uventet" -#: apt-pkg/contrib/fileutl.cc:764 apt-pkg/indexcopy.cc:673 +#: apt-pkg/contrib/fileutl.cc:775 apt-pkg/indexcopy.cc:673 #, c-format msgid "Could not open file %s" msgstr "Kunne ikke åbne filen %s" -#: apt-pkg/contrib/fileutl.cc:781 +#: apt-pkg/contrib/fileutl.cc:792 #, c-format msgid "Could not open file descriptor %d" msgstr "Kunne ikke åbne filbeskrivelse %d" -#: apt-pkg/contrib/fileutl.cc:841 +#: apt-pkg/contrib/fileutl.cc:852 #, c-format msgid "read, still have %lu to read but none left" msgstr "læs, mangler stadig at læse %lu men der er ikke flere" -#: apt-pkg/contrib/fileutl.cc:874 +#: apt-pkg/contrib/fileutl.cc:885 #, c-format msgid "write, still have %lu to write but couldn't" msgstr "skriv, mangler stadig at skrive %lu men kunne ikke" -#: apt-pkg/contrib/fileutl.cc:1010 +#: apt-pkg/contrib/fileutl.cc:1021 #, c-format msgid "Problem closing the gzip file %s" msgstr "Problem under lukning af gzip-filen %s" -#: apt-pkg/contrib/fileutl.cc:1013 +#: apt-pkg/contrib/fileutl.cc:1024 #, c-format msgid "Problem closing the file %s" msgstr "Problem under lukning af filen %s" -#: apt-pkg/contrib/fileutl.cc:1018 +#: apt-pkg/contrib/fileutl.cc:1029 #, c-format msgid "Problem renaming the file %s to %s" msgstr "Problem under omdøbning af filen %s til %s" -#: apt-pkg/contrib/fileutl.cc:1029 +#: apt-pkg/contrib/fileutl.cc:1040 #, c-format msgid "Problem unlinking the file %s" msgstr "Fejl ved frigivelse af filen %s" -#: apt-pkg/contrib/fileutl.cc:1042 +#: apt-pkg/contrib/fileutl.cc:1053 msgid "Problem syncing the file" msgstr "Problem under synkronisering af fil" @@ -2781,7 +2801,7 @@ msgstr "Ugyldig linje %u i kildelisten %s (type)" msgid "Type '%s' is not known on line %u in source list %s" msgstr "Typen '%s' er ukendt på linje %u i kildelisten %s" -#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:623 +#: apt-pkg/packagemanager.cc:335 apt-pkg/packagemanager.cc:645 #, c-format msgid "" "Could not perform immediate configuration on '%s'. Please see man 5 apt.conf " @@ -2836,13 +2856,12 @@ msgid "Unable to correct problems, you have held broken packages." msgstr "" "Kunne ikke korrigere problemerne, da du har tilbageholdt ødelagte pakker." -#: apt-pkg/algorithms.cc:1464 apt-pkg/algorithms.cc:1466 -#, fuzzy +#: apt-pkg/algorithms.cc:1471 apt-pkg/algorithms.cc:1473 msgid "" "Some index files failed to download. They have been ignored, or old ones " "used instead." msgstr "" -"Nogle indeksfiler kunne ikke hentes, de er blevet ignoreret eller de gamle " +"Nogle indeksfiler kunne ikke hentes. De er blevet ignoreret eller de gamle " "bruges i stedet." #: apt-pkg/acquire.cc:79 @@ -2862,12 +2881,12 @@ msgstr "Kunne ikke låse mappen %s" #. only show the ETA if it makes sense #. two days -#: apt-pkg/acquire.cc:857 +#: apt-pkg/acquire.cc:861 #, c-format msgid "Retrieving file %li of %li (%s remaining)" msgstr "Henter fil %li ud af %li (%s tilbage)" -#: apt-pkg/acquire.cc:859 +#: apt-pkg/acquire.cc:863 #, c-format msgid "Retrieving file %li of %li" msgstr "Henter fil %li ud af %li" @@ -2887,12 +2906,12 @@ msgstr "Metoden %s startede ikke korrekt" msgid "Please insert the disc labeled: '%s' in the drive '%s' and press enter." msgstr "Indsæt disken med navnet: '%s' i drevet '%s' og tryk retur." -#: apt-pkg/init.cc:147 +#: apt-pkg/init.cc:146 #, c-format msgid "Packaging system '%s' is not supported" msgstr "Pakkesystemet '%s' understøttes ikke" -#: apt-pkg/init.cc:163 +#: apt-pkg/init.cc:162 msgid "Unable to determine a suitable packaging system type" msgstr "Kunne ikke bestemme en passende pakkesystemtype" @@ -2917,24 +2936,26 @@ msgstr "Du kan muligvis rette problemet ved at køre 'apt-get update'" msgid "The list of sources could not be read." msgstr "Listen med kilder kunne ikke læses." -#: apt-pkg/policy.cc:71 +#: apt-pkg/policy.cc:72 #, c-format msgid "" "The value '%s' is invalid for APT::Default-Release as such a release is not " "available in the sources" msgstr "" +"Værdien »%s« er ugyldig for APT::Default-Release da sådan en udgivelse ikke " +"er tilgængelig i kilderne" -#: apt-pkg/policy.cc:389 +#: apt-pkg/policy.cc:390 #, c-format msgid "Invalid record in the preferences file %s, no Package header" msgstr "Ugyldig indgang i indstillingsfilen %s, pakkehovedet mangler" -#: apt-pkg/policy.cc:411 +#: apt-pkg/policy.cc:412 #, c-format msgid "Did not understand pin type %s" msgstr "Kunne ikke forstå pin-type %s" -#: apt-pkg/policy.cc:419 +#: apt-pkg/policy.cc:420 msgid "No priority (or zero) specified for pin" msgstr "Ingen prioritet (eller prioritet nul) angivet ved pin" @@ -2942,90 +2963,90 @@ msgstr "Ingen prioritet (eller prioritet nul) angivet ved pin" msgid "Cache has an incompatible versioning system" msgstr "Mellemlageret benytter en inkompatibel versionsstyring" -#: apt-pkg/pkgcachegen.cc:187 +#: apt-pkg/pkgcachegen.cc:190 #, c-format msgid "Error occurred while processing %s (NewPackage)" msgstr "Der skete en fejl under behandlingen af %s (NewPackage)" -#: apt-pkg/pkgcachegen.cc:204 +#: apt-pkg/pkgcachegen.cc:207 #, c-format msgid "Error occurred while processing %s (UsePackage1)" msgstr "Der skete en fejl under behandlingen af %s (UsePackage1)" -#: apt-pkg/pkgcachegen.cc:242 +#: apt-pkg/pkgcachegen.cc:245 #, c-format msgid "Error occurred while processing %s (NewFileDesc1)" msgstr "Der skete en fejl under behandlingen af %s (NewFileDesc1)" -#: apt-pkg/pkgcachegen.cc:274 +#: apt-pkg/pkgcachegen.cc:277 #, c-format msgid "Error occurred while processing %s (UsePackage2)" msgstr "Der skete en fejl under behandlingen af %s (UsePackage2)" -#: apt-pkg/pkgcachegen.cc:278 +#: apt-pkg/pkgcachegen.cc:281 #, c-format msgid "Error occurred while processing %s (NewFileVer1)" msgstr "Der skete en fejl under behandlingen af %s (NewFileVer1)" -#: apt-pkg/pkgcachegen.cc:295 apt-pkg/pkgcachegen.cc:305 -#: apt-pkg/pkgcachegen.cc:313 +#: apt-pkg/pkgcachegen.cc:298 apt-pkg/pkgcachegen.cc:308 +#: apt-pkg/pkgcachegen.cc:316 #, c-format msgid "Error occurred while processing %s (NewVersion%d)" msgstr "Der skete en fejl under behandlingen af %s (NewVersion%d)" -#: apt-pkg/pkgcachegen.cc:309 +#: apt-pkg/pkgcachegen.cc:312 #, c-format msgid "Error occurred while processing %s (UsePackage3)" msgstr "Der skete en fejl under behandlingen af %s (UsePackage3)" -#: apt-pkg/pkgcachegen.cc:342 +#: apt-pkg/pkgcachegen.cc:345 #, c-format msgid "Error occurred while processing %s (NewFileDesc2)" msgstr "Der skete en fejl under behandlingen af %s (NewFileDesc2)" -#: apt-pkg/pkgcachegen.cc:348 +#: apt-pkg/pkgcachegen.cc:351 msgid "Wow, you exceeded the number of package names this APT is capable of." msgstr "" "Hold da op! Du nåede over det antal pakkenavne, denne APT kan håndtere." -#: apt-pkg/pkgcachegen.cc:351 +#: apt-pkg/pkgcachegen.cc:354 msgid "Wow, you exceeded the number of versions this APT is capable of." msgstr "Hold da op! Du nåede over det antal versioner, denne APT kan håndtere." -#: apt-pkg/pkgcachegen.cc:354 +#: apt-pkg/pkgcachegen.cc:357 msgid "Wow, you exceeded the number of descriptions this APT is capable of." msgstr "Hold da op! Du nåede over det antal versioner, denne APT kan håndtere." -#: apt-pkg/pkgcachegen.cc:357 +#: apt-pkg/pkgcachegen.cc:360 msgid "Wow, you exceeded the number of dependencies this APT is capable of." msgstr "" "Hold da op! Du nåede over det antal afhængigheder, denne APT kan håndtere." -#: apt-pkg/pkgcachegen.cc:386 +#: apt-pkg/pkgcachegen.cc:389 #, c-format msgid "Error occurred while processing %s (FindPkg)" msgstr "Der skete en fejl under behandlingen af %s (FindPkg)" -#: apt-pkg/pkgcachegen.cc:400 +#: apt-pkg/pkgcachegen.cc:403 #, c-format msgid "Error occurred while processing %s (CollectFileProvides)" msgstr "Der skete en fejl under behandlingen af %s (CollectfileProvides)" -#: apt-pkg/pkgcachegen.cc:406 +#: apt-pkg/pkgcachegen.cc:409 #, c-format msgid "Package %s %s was not found while processing file dependencies" msgstr "Pakken %s %s blev ikke fundet under behandlingen af filafhængigheder" -#: apt-pkg/pkgcachegen.cc:960 +#: apt-pkg/pkgcachegen.cc:975 #, c-format msgid "Couldn't stat source package list %s" msgstr "Kunne ikke finde kildepakkelisten %s" -#: apt-pkg/pkgcachegen.cc:1065 +#: apt-pkg/pkgcachegen.cc:1080 msgid "Collecting File Provides" msgstr "Samler filudbud" -#: apt-pkg/pkgcachegen.cc:1259 apt-pkg/pkgcachegen.cc:1266 +#: apt-pkg/pkgcachegen.cc:1274 apt-pkg/pkgcachegen.cc:1281 msgid "IO Error saving source cache" msgstr "IO-fejl ved gemning af kilde-mellemlageret" @@ -3038,41 +3059,45 @@ msgstr "omdøbning mislykkedes, %s (%s -> %s)." msgid "MD5Sum mismatch" msgstr "MD5Sum stemmer ikke" -#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848 -#: apt-pkg/acquire-item.cc:1991 +#: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1847 +#: apt-pkg/acquire-item.cc:1990 msgid "Hash Sum mismatch" msgstr "Hashsum stemmer ikke" -#: apt-pkg/acquire-item.cc:1388 +#: apt-pkg/acquire-item.cc:1387 #, c-format msgid "" "Unable to find expected entry '%s' in Release file (Wrong sources.list entry " "or malformed file)" msgstr "" +"Kunne ikke finde uventet punkt »%s« i udgivelsesfil (forkert sources.list-" +"punkt eller forkert udformet fil)" #: apt-pkg/acquire-item.cc:1403 -#, fuzzy, c-format +#, c-format msgid "Unable to find hash sum for '%s' in Release file" -msgstr "Kunne ikke fortolke udgivelsesfil %s" +msgstr "Kunne ikke finde hashsum for »%s« i udgivelsesfilen" -#: apt-pkg/acquire-item.cc:1439 +#: apt-pkg/acquire-item.cc:1438 msgid "There is no public key available for the following key IDs:\n" msgstr "" "Der er ingen tilgængelige offentlige nøgler for følgende nøgle-ID'er:\n" -#: apt-pkg/acquire-item.cc:1477 +#: apt-pkg/acquire-item.cc:1476 #, c-format msgid "" "Release file for %s is expired (invalid since %s). Updates for this " "repository will not be applied." msgstr "" +"Udgivelsesfil for %s er udløbet (ugyldig siden %s). Opdateringer for dette " +"arkiv vil ikke blive anvendt." -#: apt-pkg/acquire-item.cc:1499 +#: apt-pkg/acquire-item.cc:1498 #, c-format msgid "Conflicting distribution: %s (expected %s but got %s)" msgstr "Konfliktdistribution: %s (forventede %s men fik %s)" -#: apt-pkg/acquire-item.cc:1532 +#: apt-pkg/acquire-item.cc:1531 #, c-format msgid "" "A error occurred during the signature verification. The repository is not " @@ -3082,12 +3107,12 @@ msgstr "" "og den forrige indeksfil vil blive brugt. GPG-fejl: %s: %s\n" #. Invalid signature file, reject (LP: #346386) (Closes: #627642) -#: apt-pkg/acquire-item.cc:1542 apt-pkg/acquire-item.cc:1547 +#: apt-pkg/acquire-item.cc:1541 apt-pkg/acquire-item.cc:1546 #, c-format msgid "GPG error: %s: %s" msgstr "GPG-fejl: %s: %s" -#: apt-pkg/acquire-item.cc:1639 +#: apt-pkg/acquire-item.cc:1638 #, c-format msgid "" "I wasn't able to locate a file for the %s package. This might mean you need " @@ -3096,7 +3121,7 @@ msgstr "" "Jeg kunne ikke lokalisere filen til %s-pakken. Det betyder muligvis at du er " "nødt til manuelt at reparere denne pakke. (grundet manglende arch)" -#: apt-pkg/acquire-item.cc:1698 +#: apt-pkg/acquire-item.cc:1697 #, c-format msgid "" "I wasn't able to locate a file for the %s package. This might mean you need " @@ -3105,13 +3130,13 @@ msgstr "" "Jeg kunne ikke lokalisere filen til %s-pakken. Det betyder muligvis at du er " "nødt til manuelt at reparere denne pakke." -#: apt-pkg/acquire-item.cc:1753 +#: apt-pkg/acquire-item.cc:1752 #, c-format msgid "" "The package index files are corrupted. No Filename: field for package %s." msgstr "Pakkeindeksfilerne er i stykker. Intet 'Filename:'-felt for pakken %s." -#: apt-pkg/acquire-item.cc:1840 +#: apt-pkg/acquire-item.cc:1839 msgid "Size mismatch" msgstr "Størrelsen stemmer ikke" @@ -3135,7 +3160,7 @@ msgstr "Intet hashpunkt i udgivelsesfil %s" msgid "Invalid 'Valid-Until' entry in Release file %s" msgstr "Ugyldigt punkt 'Valid-Until' i udgivelsesfil %s" -#: apt-pkg/indexrecords.cc:125 +#: apt-pkg/indexrecords.cc:129 #, c-format msgid "Invalid 'Date' entry in Release file %s" msgstr "Ugyldigt punkt 'Date' i udgivelsesfil %s" @@ -3235,22 +3260,22 @@ msgstr "Skriver ny kildeliste\n" msgid "Source list entries for this disc are:\n" msgstr "Denne disk har følgende kildeliste-indgange:\n" -#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:928 +#: apt-pkg/indexcopy.cc:270 apt-pkg/indexcopy.cc:927 #, c-format msgid "Wrote %i records.\n" msgstr "Skrev %i poster.\n" -#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:930 +#: apt-pkg/indexcopy.cc:272 apt-pkg/indexcopy.cc:929 #, c-format msgid "Wrote %i records with %i missing files.\n" msgstr "Skrev %i poster med %i manglende filer.\n" -#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:933 +#: apt-pkg/indexcopy.cc:275 apt-pkg/indexcopy.cc:932 #, c-format msgid "Wrote %i records with %i mismatched files\n" msgstr "Skrev %i poster med %i ikke-trufne filer\n" -#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:936 +#: apt-pkg/indexcopy.cc:278 apt-pkg/indexcopy.cc:935 #, c-format msgid "Wrote %i records with %i missing files and %i mismatched files\n" msgstr "Skrev %i poster med %i manglende filer og %i ikke-trufne filer\n" @@ -3273,7 +3298,7 @@ msgstr "Hashsum stemmer ikke: %s" #: apt-pkg/indexcopy.cc:677 #, c-format msgid "File %s doesn't start with a clearsigned message" -msgstr "" +msgstr "Fil %s starter ikke med en »clearsigned« besked" #. TRANSLATOR: %s is the trusted keyring parts directory #: apt-pkg/indexcopy.cc:708 @@ -3413,25 +3438,25 @@ msgstr "Gør klar til at fjerne %s helt" msgid "Completely removed %s" msgstr "Fjernede %s helt" -#: apt-pkg/deb/dpkgpm.cc:1082 +#: apt-pkg/deb/dpkgpm.cc:1087 msgid "Can not write log, openpty() failed (/dev/pts not mounted?)\n" msgstr "Kan ikke skrive log, openpty() mislykkedes (/dev/pts ej monteret?)\n" -#: apt-pkg/deb/dpkgpm.cc:1113 +#: apt-pkg/deb/dpkgpm.cc:1118 msgid "Running dpkg" msgstr "Kører dpkg" -#: apt-pkg/deb/dpkgpm.cc:1338 +#: apt-pkg/deb/dpkgpm.cc:1344 msgid "No apport report written because MaxReports is reached already" msgstr "" "Ingen apportrapport skrevet da MaxReports (maks rapporter) allerede er nået" #. check if its not a follow up error -#: apt-pkg/deb/dpkgpm.cc:1343 +#: apt-pkg/deb/dpkgpm.cc:1349 msgid "dependency problems - leaving unconfigured" msgstr "afhængighedsproblemer - efterlader ukonfigureret" -#: apt-pkg/deb/dpkgpm.cc:1345 +#: apt-pkg/deb/dpkgpm.cc:1351 msgid "" "No apport report written because the error message indicates its a followup " "error from a previous failure." @@ -3439,14 +3464,14 @@ msgstr "" "Ingen apportrapport skrevet da fejlbeskeden indikerer, at det er en " "opfølgningsfejl fra en tidligere fejl." -#: apt-pkg/deb/dpkgpm.cc:1351 +#: apt-pkg/deb/dpkgpm.cc:1357 msgid "" "No apport report written because the error message indicates a disk full " "error" msgstr "" "Ingen apportrapport skrevet da fejlbeskeden indikerer en fuld disk-fejl" -#: apt-pkg/deb/dpkgpm.cc:1357 +#: apt-pkg/deb/dpkgpm.cc:1363 msgid "" "No apport report written because the error message indicates a out of memory " "error" @@ -3454,7 +3479,7 @@ msgstr "" "Ingen apportrapport skrevet da fejlbeskeden indikerer en ikke nok " "hukommelsesfejl" -#: apt-pkg/deb/dpkgpm.cc:1364 +#: apt-pkg/deb/dpkgpm.cc:1370 msgid "" "No apport report written because the error message indicates a dpkg I/O error" msgstr "Ingen apportrapport skrevet da fejlbeskeden indikerer en dpkg I/O-fejl" @@ -3489,21 +3514,21 @@ msgstr "Ikke låst" #: methods/mirror.cc:260 #, c-format msgid "No mirror file '%s' found " -msgstr "Ingen spejlfil '%s' fundet " +msgstr "Ingen spejlfil »%s« fundet " #. FIXME: fallback to a default mirror here instead #. and provide a config option to define that default #: methods/mirror.cc:267 -#, fuzzy, c-format +#, c-format msgid "Can not read mirror file '%s'" -msgstr "Ingen spejlfil '%s' fundet " +msgstr "Kan ikke læse spejlfil »%s«" #: methods/mirror.cc:422 #, c-format msgid "[Mirror: %s]" msgstr "[Spejl: %s]" -#: methods/rred.cc:503 +#: methods/rred.cc:506 #, c-format msgid "" "Could not patch %s with mmap and with file operation usage - the patch seems " @@ -3512,7 +3537,7 @@ msgstr "" "Kunne ikke fejlrette (patch) %s med mmap og med filhandlingsbrug - " "fejlrettelsen ser ud til at være ødelagt." -#: methods/rred.cc:508 +#: methods/rred.cc:511 #, c-format msgid "" "Could not patch %s with mmap (but no mmap specific fail) - the patch seems " @@ -3524,12 +3549,3 @@ msgstr "" #: methods/rsh.cc:330 msgid "Connection closed prematurely" msgstr "Forbindelsen lukkedes for hurtigt" - -#~ msgid "Internal error, could not locate member" -#~ msgstr "Intern fejl, kunne ikke finde element" - -#~ msgid "Internal error, group '%s' has no installable pseudo package" -#~ msgstr "Intern fejl, gruppe '%s' har ingen installationsbar pseudopakke" - -#~ msgid "Release file expired, ignoring %s (invalid since %s)" -#~ msgstr "Udgivelsesfil udløbet, ignorerer %s (ugyldig siden %s)" -- cgit v1.2.3 From e34303dc2efda7bf966086bf31b1b5a76a3277d6 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 1 Mar 2012 12:51:15 +0100 Subject: merged patch from lp:~uusijani/apt/uusi-branch: Correct fi translation for hash sum mismatches (lp:420403) Thanks to Jani Uusitalo --- debian/changelog | 5 +++++ po/fi.po | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index dabd3ac4f..4567c80ae 100644 --- a/debian/changelog +++ b/debian/changelog @@ -20,6 +20,11 @@ apt (0.8.15.10) UNRELEASEDunstable; urgency=low * Hungarian (Gabor Kelemen). Closes: #655238 * Polish (Michał Kułach). Closes: #656908 * Danish (Joe Hansen). Closes: #658643 + + [ Michael Vogt ] + * merged patch from lp:~uusijani/apt/uusi-branch: + Correct fi translation for hash sum mismatches (lp:420403) + Thanks to Jani Uusitalo -- David Kalnischkies Tue, 06 Dec 2011 16:35:39 +0100 diff --git a/po/fi.po b/po/fi.po index 617cc6182..eaab969aa 100644 --- a/po/fi.po +++ b/po/fi.po @@ -3018,7 +3018,7 @@ msgstr "MD5Sum ei täsmää" #: apt-pkg/acquire-item.cc:900 apt-pkg/acquire-item.cc:1848 #: apt-pkg/acquire-item.cc:1991 msgid "Hash Sum mismatch" -msgstr "Hash Sum täsmää" +msgstr "Tarkistussumma ei täsmää" #: apt-pkg/acquire-item.cc:1388 #, c-format @@ -3244,7 +3244,7 @@ msgstr "" #: apt-pkg/indexcopy.cc:549 #, fuzzy, c-format msgid "Hash mismatch for: %s" -msgstr "Hash Sum täsmää" +msgstr "Kohteen %s tarkistussumma ei täsmää" #: apt-pkg/indexcopy.cc:677 #, c-format -- cgit v1.2.3 From 032ad7384e4529d95966a9c88fd5e11dd11c31f3 Mon Sep 17 00:00:00 2001 From: "bubulle@debian.org" <> Date: Sat, 3 Mar 2012 16:19:16 +0100 Subject: =?UTF-8?q?French:=20replace=20"=C3=A9tiquetage"=20by=20"=C3=A9pin?= =?UTF-8?q?glage"=20for=20"pinning"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- debian/changelog | 1 + doc/po/fr.po | 4 ++-- po/fr.po | 10 +++++----- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/debian/changelog b/debian/changelog index 4567c80ae..c68299078 100644 --- a/debian/changelog +++ b/debian/changelog @@ -20,6 +20,7 @@ apt (0.8.15.10) UNRELEASEDunstable; urgency=low * Hungarian (Gabor Kelemen). Closes: #655238 * Polish (Michał Kułach). Closes: #656908 * Danish (Joe Hansen). Closes: #658643 + * French: replace "étiquetage" by "épinglage" for "pinning" [ Michael Vogt ] * merged patch from lp:~uusijani/apt/uusi-branch: diff --git a/doc/po/fr.po b/doc/po/fr.po index bed2c2985..4996a8d18 100644 --- a/doc/po/fr.po +++ b/doc/po/fr.po @@ -465,7 +465,7 @@ msgstr "" "/etc/apt/preferences\n" " Fichier des préférences.\n" -" C'est dans ce fichier qu'on peut faire de l'étiquetage (pinning) c'est-à-dire, choisir d'obtenir des paquets d'une source distincte ou d'une distribution différente.\n" +" C'est dans ce fichier qu'on peut faire de l'épinglage (pinning) c'est-à-dire, choisir d'obtenir des paquets d'une source distincte ou d'une distribution différente.\n" " Élément de configuration : Dir::Etc::Preferences.\n" " \n" @@ -4446,7 +4446,7 @@ msgid "" "also the &apt-preferences; manual page." msgstr "" "Cette option contrôle l'entrée par défaut pour les questions de " -"distribution ; une étiquette (pin) par défaut dont la priorité vaut 990 est " +"distribution ; un épinglage (pin) par défaut dont la priorité vaut 990 est " "créée en utilisant la chaîne spécifiée. Le fichier des préférences peut " "annuler cette décision. En clair, cette option permet de contrôler " "simplement dans quelle distribution seront récupérés les paquets. Par " diff --git a/po/fr.po b/po/fr.po index cc2a9d8ba..1c008ef06 100644 --- a/po/fr.po +++ b/po/fr.po @@ -127,7 +127,7 @@ msgstr "Le cache est désynchronisé, impossible de référencer un fichier" #. Show any packages have explicit pins #: cmdline/apt-cache.cc:1499 msgid "Pinned packages:" -msgstr "Paquets étiquetés :" +msgstr "Paquets épinglés :" #: cmdline/apt-cache.cc:1511 cmdline/apt-cache.cc:1556 msgid "(not found)" @@ -147,7 +147,7 @@ msgstr "(aucun)" #: cmdline/apt-cache.cc:1553 msgid " Package pin: " -msgstr " Étiquette de paquet : " +msgstr " Épinglage de paquet : " #. Show the priority tables #: cmdline/apt-cache.cc:1562 @@ -220,7 +220,7 @@ msgstr "" " pkgnames - Liste le nom de tous les paquets du système\n" " dotty - Génère un graphe des paquets pour GraphViz\n" " xvcg - Génère un graphe des paquets pour xvcg\n" -" policy - Affiche l'étiquetage (Pin) en vigueur\n" +" policy - Affiche l'épinglage (Pin) en vigueur\n" "\n" "Options :\n" " -h Ce texte d'aide\n" @@ -3020,11 +3020,11 @@ msgstr "" #: apt-pkg/policy.cc:411 #, c-format msgid "Did not understand pin type %s" -msgstr "Étiquette %s inconnue" +msgstr "Type d'épinglage %s inconnu" #: apt-pkg/policy.cc:419 msgid "No priority (or zero) specified for pin" -msgstr "Aucune priorité (ou zéro) n'a été spécifiée pour l'étiquette" +msgstr "Aucune priorité (ou zéro) n'a été spécifiée pour l'épinglage" #: apt-pkg/pkgcachegen.cc:80 msgid "Cache has an incompatible versioning system" -- cgit v1.2.3 From b7a6594d1e5ed199a7a472b78b33e070375d6f92 Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Tue, 6 Mar 2012 17:22:44 +0100 Subject: * apt-pkg/acquire-item.cc: - remove 'old' InRelease file if we can't get a new one before proceeding with Release.gpg to avoid the false impression of a still trusted repository by a (still present) old InRelease file. Thanks to Simon Ruderich for reporting this issue! (CVE-2012-0214) --- apt-pkg/acquire-item.cc | 7 +++++++ debian/changelog | 9 ++++++-- test/integration/test-releasefile-verification | 29 ++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index 39ce90dda..eda45d7be 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -1608,6 +1608,13 @@ void pkgAcqMetaClearSig::Failed(string Message,pkgAcquire::MethodConfig *Cnf) /* { if (AuthPass == false) { + // Remove the 'old' InRelease file if we try Release.gpg now as otherwise + // the file will stay around and gives a false-auth impression (CVE-2012-0214) + string FinalFile = _config->FindDir("Dir::State::lists"); + FinalFile.append(URItoFileName(RealURI)); + if (FileExists(FinalFile)) + unlink(FinalFile.c_str()); + new pkgAcqMetaSig(Owner, MetaSigURI, MetaSigURIDesc, MetaSigShortDesc, MetaIndexURI, MetaIndexURIDesc, MetaIndexShortDesc, diff --git a/debian/changelog b/debian/changelog index c68299078..97b9a182d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -apt (0.8.15.10) UNRELEASEDunstable; urgency=low +apt (0.8.15.10) unstable; urgency=high [ David Kalnischkies ] * algorithms.cc: @@ -7,6 +7,11 @@ apt (0.8.15.10) UNRELEASEDunstable; urgency=low - put around email addresses * doc/po/de.po: - apply typo-fix from Michael Basse, thanks! (LP: #900770) + * apt-pkg/acquire-item.cc: + - remove 'old' InRelease file if we can't get a new one before + proceeding with Release.gpg to avoid the false impression of a still + trusted repository by a (still present) old InRelease file. + Thanks to Simon Ruderich for reporting this issue! (CVE-2012-0214) [ Chris Leick ] * German manpage translation update @@ -27,7 +32,7 @@ apt (0.8.15.10) UNRELEASEDunstable; urgency=low Correct fi translation for hash sum mismatches (lp:420403) Thanks to Jani Uusitalo - -- David Kalnischkies Tue, 06 Dec 2011 16:35:39 +0100 + -- Michael Vogt Tue, 06 Mar 2012 14:14:26 +0100 apt (0.8.15.9) unstable; urgency=low diff --git a/test/integration/test-releasefile-verification b/test/integration/test-releasefile-verification index 8bf02a78f..4f65cfa3b 100755 --- a/test/integration/test-releasefile-verification +++ b/test/integration/test-releasefile-verification @@ -153,6 +153,35 @@ runtest() { installaptold } +runtest2() { + prepare ${PKGFILE} + rm -rf rootdir/var/lib/apt/lists + signreleasefiles 'Joe Sixpack' + msgtest 'Cold archive signed by' 'Joe Sixpack' + aptget update 2>&1 | grep -E '^(W|E): ' > /dev/null && msgfail || msgpass + + # New .deb but now an unsigned archive. For example MITM to circumvent + # package verification. + prepare ${PKGFILE}-new + find aptarchive/ -name InRelease -delete + find aptarchive/ -name Release.gpg -delete + msgtest 'Warm archive signed by' 'nobody' + aptget update 2>&1 | grep -E '^(W|E): ' > /dev/null && msgfail || msgpass + testequal "$(cat ${PKGFILE}-new) +" aptcache show apt + failaptnew + + # Unsigned archive from the beginning must also be detected. + rm -rf rootdir/var/lib/apt/lists + msgtest 'Cold archive signed by' 'nobody' + aptget update 2>&1 | grep -E '^(W|E): ' > /dev/null && msgfail || msgpass + testequal "$(cat ${PKGFILE}-new) +" aptcache show apt + failaptnew +} +runtest2 + + DELETEFILE="InRelease" runtest DELETEFILE="Release.gpg" -- cgit v1.2.3 From 9a3798e6d5c26ebdaf1f865f5117bbc995b69b76 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 13 Mar 2012 13:34:47 +0100 Subject: now that stdout/stdlog are used consistently, the message order changed --- test/integration/test-conflicts-loop | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/test-conflicts-loop b/test/integration/test-conflicts-loop index 25f005969..4407fbd9d 100755 --- a/test/integration/test-conflicts-loop +++ b/test/integration/test-conflicts-loop @@ -19,10 +19,10 @@ testequal 'Reading package lists... Building dependency tree... The following packages will be upgraded: openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib -3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. openjdk-6-jre-lib:i386 conflicts with openjdk-6-jre:i386 openjdk-6-jre:i386 conflicts with openjdk-6-jre-headless:i386 openjdk-6-jre-headless:i386 conflicts with openjdk-6-jre:i386 +3 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Remv openjdk-6-jre [6b16-1.8-0ubuntu1] openjdk-6-jre-headless:i386 conflicts with openjdk-6-jre-lib:i386 Remv openjdk-6-jre-lib [6b16-1.8-0ubuntu1] -- cgit v1.2.3 From 05343a22b8c7d9b491e93169e035a996ff68af9f Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 20 Mar 2012 17:03:35 +0100 Subject: update the versionnumber of the faked dpkg in the testcases for multiarch and add a comment about the need of this number --- test/integration/framework | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/integration/framework b/test/integration/framework index a738d27cc..fa4a98f58 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -207,7 +207,9 @@ configdpkg() { if [ "${ARCH}" != "${DPKGARCH}" ]; then dpkg --add-architecture ${ARCH}; fi done if [ "0" = "$(dpkg -l dpkg 2> /dev/null | grep '^i' | wc -l)" ]; then - insertinstalledpackage 'dpkg' "all" '1.16.2~wipmultiarch~fake' + # dpkg doesn't really check the version as long as it is fully installed, + # but just to be sure we choose one above the required version + insertinstalledpackage 'dpkg' "all" '1.16.2+fake' fi fi fi -- cgit v1.2.3 From 31bda5000136d77f516cf2080257835fb44deaef Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 20 Mar 2012 17:05:11 +0100 Subject: * apt-pkg/acquire-worker.cc: - check return of write() as gcc recommends * apt-pkg/acquire.cc: - check return of write() as gcc recommends * apt-pkg/cdrom.cc: - check return of chdir() and link() as gcc recommends * apt-pkg/clean.cc: - check return of chdir() as gcc recommends * apt-pkg/contrib/netrc.cc: - check return of asprintf() as gcc recommends --- apt-pkg/acquire-worker.cc | 18 +++++++++++++++++- apt-pkg/acquire.cc | 18 +++++++++++++++++- apt-pkg/cdrom.cc | 6 ++++-- apt-pkg/clean.cc | 11 +++++++---- apt-pkg/contrib/netrc.cc | 3 +-- debian/changelog | 14 ++++++++++++-- 6 files changed, 58 insertions(+), 12 deletions(-) diff --git a/apt-pkg/acquire-worker.cc b/apt-pkg/acquire-worker.cc index 3bb977e14..d79b2b16d 100644 --- a/apt-pkg/acquire-worker.cc +++ b/apt-pkg/acquire-worker.cc @@ -431,7 +431,23 @@ bool pkgAcquire::Worker::MediaChange(string Message) << Drive << ":" // drive << msg.str() // l10n message << endl; - write(status_fd, status.str().c_str(), status.str().size()); + + std::string const dlstatus = status.str(); + size_t done = 0; + size_t todo = dlstatus.size(); + errno = 0; + int res = 0; + do + { + res = write(status_fd, dlstatus.c_str() + done, todo); + if (res < 0 && errno == EINTR) + continue; + if (res < 0) + break; + done += res; + todo -= res; + } + while (res > 0 && todo > 0); } if (Log == 0 || Log->MediaChange(LookupTag(Message,"Media"), diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc index 573a85c2f..19bcca8a1 100644 --- a/apt-pkg/acquire.cc +++ b/apt-pkg/acquire.cc @@ -872,7 +872,23 @@ bool pkgAcquireStatus::Pulse(pkgAcquire *Owner) << ":" << (CurrentBytes/float(TotalBytes)*100.0) << ":" << msg << endl; - write(fd, status.str().c_str(), status.str().size()); + + std::string const dlstatus = status.str(); + size_t done = 0; + size_t todo = dlstatus.size(); + errno = 0; + int res = 0; + do + { + res = write(fd, dlstatus.c_str() + done, todo); + if (res < 0 && errno == EINTR) + continue; + if (res < 0) + break; + done += res; + todo -= res; + } + while (res > 0 && todo > 0); } return true; diff --git a/apt-pkg/cdrom.cc b/apt-pkg/cdrom.cc index 4462d4e24..50c204371 100644 --- a/apt-pkg/cdrom.cc +++ b/apt-pkg/cdrom.cc @@ -430,7 +430,8 @@ bool pkgCdrom::WriteDatabase(Configuration &Cnf) Out.close(); - link(DFile.c_str(),string(DFile + '~').c_str()); + if (FileExists(DFile) == true && link(DFile.c_str(),string(DFile + '~').c_str()) != 0) + return _error->Errno("link", "Failed to link %s to %s~", DFile.c_str(), DFile.c_str()); if (rename(NewFile.c_str(),DFile.c_str()) != 0) return _error->Errno("rename","Failed to rename %s.new to %s", DFile.c_str(),DFile.c_str()); @@ -697,7 +698,8 @@ bool pkgCdrom::Add(pkgCdromStatus *log) /*{{{*/ return false; } - chdir(StartDir.c_str()); + if (chdir(StartDir.c_str()) != 0) + return _error->Errno("chdir","Unable to change to %s", StartDir.c_str()); if (_config->FindB("Debug::aptcdrom",false) == true) { diff --git a/apt-pkg/clean.cc b/apt-pkg/clean.cc index ed8fa1aa9..9c167eaa5 100644 --- a/apt-pkg/clean.cc +++ b/apt-pkg/clean.cc @@ -54,9 +54,11 @@ bool pkgArchiveCleaner::Go(std::string Dir,pkgCache &Cache) struct stat St; if (stat(Dir->d_name,&St) != 0) { - chdir(StartDir.c_str()); + _error->Errno("stat",_("Unable to stat %s."),Dir->d_name); closedir(D); - return _error->Errno("stat",_("Unable to stat %s."),Dir->d_name); + if (chdir(StartDir.c_str()) != 0) + return _error->Errno("chdir", _("Unable to change to %s"), StartDir.c_str()); + return false; } // Grab the package name @@ -115,8 +117,9 @@ bool pkgArchiveCleaner::Go(std::string Dir,pkgCache &Cache) Erase(Dir->d_name,Pkg,Ver,St); }; - chdir(StartDir.c_str()); closedir(D); - return true; + if (chdir(StartDir.c_str()) != 0) + return _error->Errno("chdir", _("Unable to change to %s"), StartDir.c_str()); + return true; } /*}}}*/ diff --git a/apt-pkg/contrib/netrc.cc b/apt-pkg/contrib/netrc.cc index cb7d36088..56e59d84b 100644 --- a/apt-pkg/contrib/netrc.cc +++ b/apt-pkg/contrib/netrc.cc @@ -68,8 +68,7 @@ int parsenetrc (char *host, char *login, char *password, char *netrcfile = NULL) if (!home) return -1; - asprintf (&netrcfile, "%s%s%s", home, DIR_CHAR, NETRC); - if(!netrcfile) + if (asprintf (&netrcfile, "%s%s%s", home, DIR_CHAR, NETRC) == -1 || netrcfile == NULL) return -1; else netrc_alloc = true; diff --git a/debian/changelog b/debian/changelog index 32b271668..22ed8a5a5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,14 +3,24 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low [ Michael Vogt ] * apt-pkg/packagemanager.cc: - fix inconsistent clog/cout usage in the debug output - + [ David Kalnischkies ] * apt-pkg/packagemanager.cc: - recheck all dependencies if we changed a package in SmartConfigure as this could break an earlier dependency (LP: #940396) - recheck dependencies in SmartUnpack after a change, too + * apt-pkg/acquire-worker.cc: + - check return of write() as gcc recommends + * apt-pkg/acquire.cc: + - check return of write() as gcc recommends + * apt-pkg/cdrom.cc: + - check return of chdir() and link() as gcc recommends + * apt-pkg/clean.cc: + - check return of chdir() as gcc recommends + * apt-pkg/contrib/netrc.cc: + - check return of asprintf() as gcc recommends - -- David Kalnischkies Tue, 13 Mar 2012 12:38:35 +0100 + -- David Kalnischkies Tue, 20 Mar 2012 17:00:14 +0100 apt (0.8.16~exp13) experimental; urgency=low -- cgit v1.2.3 From 771ad846826482b925830b1afd562d0e9372fea5 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 20 Mar 2012 17:08:08 +0100 Subject: * methods/makefile: - do not link rred against libz anymore as FileFd handles all this transparently now --- debian/changelog | 5 ++++- methods/makefile | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 22ed8a5a5..93d48c22a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -19,8 +19,11 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low - check return of chdir() as gcc recommends * apt-pkg/contrib/netrc.cc: - check return of asprintf() as gcc recommends + * methods/makefile: + - do not link rred against libz anymore as FileFd handles all + this transparently now - -- David Kalnischkies Tue, 20 Mar 2012 17:00:14 +0100 + -- David Kalnischkies Tue, 20 Mar 2012 17:06:08 +0100 apt (0.8.16~exp13) experimental; urgency=low diff --git a/methods/makefile b/methods/makefile index 6ba51058e..6f904d071 100644 --- a/methods/makefile +++ b/methods/makefile @@ -67,7 +67,7 @@ include $(PROGRAM_H) # The rred method PROGRAM=rred -SLIBS = -lapt-pkg -lz $(SOCKETLIBS) $(INTLLIBS) +SLIBS = -lapt-pkg $(SOCKETLIBS) $(INTLLIBS) LIB_MAKES = apt-pkg/makefile SOURCE = rred.cc include $(PROGRAM_H) -- cgit v1.2.3 From 571449d4444a8a6f5c55dce318cdf16805c04743 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 20 Mar 2012 18:30:32 +0100 Subject: * debian/libapt-pkg4.12: - update symbols file --- debian/changelog | 4 +- debian/libapt-pkg4.12.symbols | 183 +++++++++++++++++++++++++++++++----------- 2 files changed, 137 insertions(+), 50 deletions(-) diff --git a/debian/changelog b/debian/changelog index 93d48c22a..5da87a5ad 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,8 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low - fix inconsistent clog/cout usage in the debug output [ David Kalnischkies ] + * debian/libapt-pkg4.12: + - update symbols file * apt-pkg/packagemanager.cc: - recheck all dependencies if we changed a package in SmartConfigure as this could break an earlier dependency (LP: #940396) @@ -23,7 +25,7 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low - do not link rred against libz anymore as FileFd handles all this transparently now - -- David Kalnischkies Tue, 20 Mar 2012 17:06:08 +0100 + -- David Kalnischkies Tue, 20 Mar 2012 18:29:33 +0100 apt (0.8.16~exp13) experimental; urgency=low diff --git a/debian/libapt-pkg4.12.symbols b/debian/libapt-pkg4.12.symbols index 8d2bc4a54..012617eb6 100644 --- a/debian/libapt-pkg4.12.symbols +++ b/debian/libapt-pkg4.12.symbols @@ -55,7 +55,6 @@ libapt-pkg.so.4.12 libapt-pkg4.12 #MINVER# (c++)"pkgMinimizeUpgrade(pkgDepCache&)@Base" 0.8.0 (c++)"GetListOfFilesInDir(std::basic_string, std::allocator > const&, std::vector, std::allocator >, std::allocator, std::allocator > > > const&, bool const&)@Base" 0.8.0 (c++)"GetListOfFilesInDir(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, bool const&, bool const&)@Base" 0.8.0 - (c++)"pkgMakeStatusCacheMem(pkgSourceList&, OpProgress&)@Base" 0.8.0 (c++)"pkgMakeOnlyStatusCache(OpProgress&, DynamicMMap**)@Base" 0.8.0 (c++)"WaitFd(int, bool, unsigned long)@Base" 0.8.0 (c++)"GetLock(std::basic_string, std::allocator >, bool)@Base" 0.8.0 @@ -551,13 +550,11 @@ libapt-pkg.so.4.12 libapt-pkg4.12 #MINVER# (c++)"pkgPackageManager::ImmediateAdd(pkgCache::PkgIterator, bool, unsigned int const&)@Base" 0.8.0 (c++)"pkgPackageManager::OrderInstall()@Base" 0.8.0 (c++)"pkgPackageManager::DepAlwaysTrue(pkgCache::DepIterator)@Base" 0.8.0 - (c++)"pkgPackageManager::SmartConfigure(pkgCache::PkgIterator)@Base" 0.8.0 (c++)"pkgPackageManager::CheckRConflicts(pkgCache::PkgIterator, pkgCache::DepIterator, char const*)@Base" 0.8.0 (c++)"pkgPackageManager::CreateOrderList()@Base" 0.8.0 (c++)"pkgPackageManager::DoInstallPostFork(int)@Base" 0.8.0 (c++)"pkgPackageManager::Go(int)@Base" 0.8.0 (c++)"pkgPackageManager::Reset()@Base" 0.8.0 - (c++)"pkgPackageManager::DepAdd(pkgOrderList&, pkgCache::PkgIterator, int)@Base" 0.8.0 (c++)"pkgPackageManager::Remove(pkgCache::PkgIterator, bool)@Base" 0.8.0 (c++)"pkgPackageManager::Install(pkgCache::PkgIterator, std::basic_string, std::allocator >)@Base" 0.8.0 (c++)"pkgPackageManager::Configure(pkgCache::PkgIterator)@Base" 0.8.0 @@ -601,20 +598,6 @@ libapt-pkg.so.4.12 libapt-pkg4.12 #MINVER# (c++)"pkgVersioningSystem::~pkgVersioningSystem()@Base" 0.8.0 (c++)"debTranslationsIndex::debTranslationsIndex(std::basic_string, std::allocator >, std::basic_string, std::allocator >, std::basic_string, std::allocator >, char const*)@Base" 0.8.0 (c++)"debTranslationsIndex::~debTranslationsIndex()@Base" 0.8.0 - (c++)"APT::PackageSet::FromString(pkgCacheFile&, std::basic_string, std::allocator > const&, APT::CacheSetHelper&)@Base" 0.8.0 - (c++)"APT::PackageSet::FromCommandLine(pkgCacheFile&, char const**, APT::CacheSetHelper&)@Base" 0.8.0 - (c++)"APT::PackageSet::GroupedFromCommandLine(pkgCacheFile&, char const**, std::list > const&, unsigned short const&, APT::CacheSetHelper&)@Base" 0.8.0 - (c++)"APT::PackageSet::FromName(pkgCacheFile&, std::basic_string, std::allocator > const&, APT::CacheSetHelper&)@Base" 0.8.0 - (c++)"APT::PackageSet::FromTask(pkgCacheFile&, std::basic_string, std::allocator >, APT::CacheSetHelper&)@Base" 0.8.0 - (c++)"APT::PackageSet::FromRegEx(pkgCacheFile&, std::basic_string, std::allocator >, APT::CacheSetHelper&)@Base" 0.8.0 - (c++)"APT::PackageSet::~PackageSet()@Base" 0.8.0 - (c++)"APT::VersionSet::FromString(pkgCacheFile&, std::basic_string, std::allocator >, APT::VersionSet::Version const&, APT::CacheSetHelper&, bool const&)@Base" 0.8.0 - (c++)"APT::VersionSet::FromPackage(pkgCacheFile&, pkgCache::PkgIterator const&, APT::VersionSet::Version const&, APT::CacheSetHelper&)@Base" 0.8.0 - (c++)"APT::VersionSet::FromCommandLine(pkgCacheFile&, char const**, APT::VersionSet::Version const&, APT::CacheSetHelper&)@Base" 0.8.0 - (c++)"APT::VersionSet::getCandidateVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@Base" 0.8.0 - (c++)"APT::VersionSet::getInstalledVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@Base" 0.8.0 - (c++)"APT::VersionSet::GroupedFromCommandLine(pkgCacheFile&, char const**, std::list > const&, unsigned short const&, APT::CacheSetHelper&)@Base" 0.8.0 - (c++)"APT::VersionSet::~VersionSet()@Base" 0.8.0 (c++)"APT::CacheFilter::PackageNameMatchesRegEx::PackageNameMatchesRegEx(std::basic_string, std::allocator > const&)@Base" 0.8.0 (c++)"APT::CacheFilter::PackageNameMatchesRegEx::~PackageNameMatchesRegEx()@Base" 0.8.0 (c++)"APT::CacheFilter::PackageNameMatchesRegEx::operator()(pkgCache::GrpIterator const&)@Base" 0.8.0 @@ -623,17 +606,8 @@ libapt-pkg.so.4.12 libapt-pkg4.12 #MINVER# (c++)"APT::Configuration::getArchitectures(bool const&)@Base" 0.8.0 (c++)"APT::Configuration::checkArchitecture(std::basic_string, std::allocator > const&)@Base" 0.8.0 (c++)"APT::Configuration::getCompressionTypes(bool const&)@Base" 0.8.0 - (c++)"APT::CacheSetHelper::canNotFindTask(pkgCacheFile&, std::basic_string, std::allocator >)@Base" 0.8.0 - (c++)"APT::CacheSetHelper::canNotFindRegEx(pkgCacheFile&, std::basic_string, std::allocator >)@Base" 0.8.0 - (c++)"APT::CacheSetHelper::canNotFindAllVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0 - (c++)"APT::CacheSetHelper::canNotFindPackage(pkgCacheFile&, std::basic_string, std::allocator > const&)@Base" 0.8.0 (c++)"APT::CacheSetHelper::canNotFindPkgName(pkgCacheFile&, std::basic_string, std::allocator > const&)@Base" 0.8.0 - (c++)"APT::CacheSetHelper::showTaskSelection(APT::PackageSet const&, std::basic_string, std::allocator > const&)@Base" 0.8.0 - (c++)"APT::CacheSetHelper::showRegExSelection(APT::PackageSet const&, std::basic_string, std::allocator > const&)@Base" 0.8.0 (c++)"APT::CacheSetHelper::canNotFindNewestVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0 - (c++)"APT::CacheSetHelper::showSelectedVersion(pkgCache::PkgIterator const&, pkgCache::VerIterator, std::basic_string, std::allocator > const&, bool const&)@Base" 0.8.0 - (c++)"APT::CacheSetHelper::canNotFindCandInstVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0 - (c++)"APT::CacheSetHelper::canNotFindInstCandVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0 (c++)"APT::CacheSetHelper::canNotFindCandidateVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0 (c++)"APT::CacheSetHelper::canNotFindInstalledVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0 (c++)"APT::CacheSetHelper::~CacheSetHelper()@Base" 0.8.0 @@ -649,8 +623,6 @@ libapt-pkg.so.4.12 libapt-pkg4.12 #MINVER# (c++)"MMap::MMap(FileFd&, unsigned long)@Base" 0.8.0 (c++)"MMap::MMap(unsigned long)@Base" 0.8.0 (c++)"MMap::~MMap()@Base" 0.8.0 - (c++)"FileFd::OpenDescriptor(int, FileFd::OpenMode, bool)@Base" 0.8.0 - (c++)"FileFd::Open(std::basic_string, std::allocator >, FileFd::OpenMode, unsigned long)@Base" 0.8.0 (c++)"FileFd::Size()@Base" 0.8.0 (c++)"FileFd::Sync()@Base" 0.8.0 (c++)"FileFd::Tell()@Base" 0.8.0 @@ -1172,11 +1144,12 @@ libapt-pkg.so.4.12 libapt-pkg4.12 #MINVER# # (c++|regex|optional=template)"^SPtrArray<[^ ]+>::~SPtrArray\(\)@Base$" 0.8.0 # (c++|optional=template)"SPtrArray::~SPtrArray()@Base" 0.8.0 ### gcc-4.6 specific - (c++|optional=template)"SPtrArray::~SPtrArray()@Base" 0.8.0 +# (c++|optional=template)"SPtrArray::~SPtrArray()@Base" 0.8.0 +# (c++|optional=inline)"IndexTarget::~IndexTarget()@Base" 0.8.11 (c++|regex|optional=std)"^std::basic_string, std::allocator >::basic_string\(.+\)@Base$" 0.8.0 (c++|regex|optional=std)"^std::vector::(vector|push_back|erase|_[^ ]+)\(.+\)( const|)@Base$" 0.8.0 -# (c++|optional=strange)"pkgCache::VerIterator::VerIterator(pkgCache&, pkgCache::Version*)@Base" 0.8.0 + (c++|optional=template)"HashSumValue<160>::operator std::basic_string, std::allocator >() const@Base" 0.8.16~exp14 ### architecture specific: va_list (arch=armel armhf|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, std::__va_list&) const@Base" 0.8.15~exp1 (arch=i386 hurd-i386 kfreebsd-i386|c++)"pkgAcqMethod::PrintStatus(char const*, char const*, char*&) const@Base" 0.8.15~exp1 @@ -1223,7 +1196,6 @@ libapt-pkg.so.4.12 libapt-pkg4.12 #MINVER# (c++)"pkgDepCache::SetCandidateRelease(pkgCache::VerIterator, std::basic_string, std::allocator > const&)@Base" 0.8.11 (c++)"RealFileExists(std::basic_string, std::allocator >)@Base" 0.8.11 (c++)"StripEpoch(std::basic_string, std::allocator > const&)@Base" 0.8.11 - (c++)"IndexTarget::~IndexTarget()@Base" 0.8.11 (c++)"pkgAcqIndex::Init(std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&)@Base" 0.8.11 (c++)"pkgAcqIndex::pkgAcqIndex(pkgAcquire*, IndexTarget const*, HashString const&, indexRecords const*)@Base" 0.8.11 (c++)"pkgTagSection::FindFlag(unsigned long&, unsigned long, char const*, char const*)@Base" 0.8.11 @@ -1258,7 +1230,6 @@ libapt-pkg.so.4.12 libapt-pkg4.12 #MINVER# (c++|optional=private)"debListParser::NewProvidesAllArch(pkgCache::VerIterator&, std::basic_string, std::allocator > const&, std::basic_string, std::allocator > const&)@Base" 0.8.13.2 (c++|optional=private)"PrintMode(char)@Base" 0.8.13.2 (c++)"pkgDepCache::IsModeChangeOk(pkgDepCache::ModeList, pkgCache::PkgIterator const&, unsigned long, bool)@Base" 0.8.13.2 - (c++)"pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool)@Base" 0.8.15~exp1 (c++)"pkgCache::DepIterator::IsNegative() const@Base" 0.8.15~exp1 (c++)"Configuration::CndSet(char const*, int)@Base" 0.8.15.3 (c++)"pkgProblemResolver::InstOrNewPolicyBroken(pkgCache::PkgIterator)@Base" 0.8.15.3 @@ -1305,10 +1276,8 @@ libapt-pkg.so.4.12 libapt-pkg4.12 #MINVER# (c++)"EDSP::WriteScenario(pkgDepCache&, _IO_FILE*, OpProgress*)@Base" 0.8.16~exp2 (c++)"EDSP::WriteSolution(pkgDepCache&, _IO_FILE*)@Base" 0.8.16~exp2 (c++)"EDSP::ResolveExternal(char const*, pkgDepCache&, bool, bool, bool, OpProgress*)@Base" 0.8.16~exp2 - (c++)"EDSP::WriteLimitedScenario(pkgDepCache&, _IO_FILE*, APT::PackageSet const&, OpProgress*)@Base" 0.8.16~exp2 (c++)"EDSP::WriteScenarioVersion(pkgDepCache&, _IO_FILE*, pkgCache::PkgIterator const&, pkgCache::VerIterator const&)@Base" 0.8.16~exp2 (c++)"EDSP::WriteScenarioDependency(pkgDepCache&, _IO_FILE*, pkgCache::PkgIterator const&, pkgCache::VerIterator const&)@Base" 0.8.16~exp2 - (c++)"EDSP::WriteScenarioLimitedDependency(pkgDepCache&, _IO_FILE*, pkgCache::PkgIterator const&, pkgCache::VerIterator const&, APT::PackageSet const&)@Base" 0.8.16~exp2 (c++)"EDSP::DepMap@Base" 0.8.16~exp2 (c++)"EDSP::PrioMap@Base" 0.8.16~exp2 (c++)"EDSP::ReadLine(int, std::basic_string, std::allocator >&)@Base" 0.8.16~exp2 @@ -1328,21 +1297,6 @@ libapt-pkg.so.4.12 libapt-pkg4.12 #MINVER# (c++)"vtable for edspIndex@Base" 0.8.16~exp2 edspSys@Base 0.8.16~exp2 ### generalisation of checksums (with lfs) -- mostly api-compatible available (without sha512 in previous versions) - (c++)"SHA256_End(_SHA256_CTX*, char*)@Base" 0.8.16~exp2 - (c++)"SHA384_End(_SHA512_CTX*, char*)@Base" 0.8.16~exp2 - (c++)"SHA512_End(_SHA512_CTX*, char*)@Base" 0.8.16~exp2 - (c++)"SHA256_Data(unsigned char const*, unsigned int, char*)@Base" 0.8.16~exp2 - (c++)"SHA256_Init(_SHA256_CTX*)@Base" 0.8.16~exp2 - (c++)"SHA384_Data(unsigned char const*, unsigned int, char*)@Base" 0.8.16~exp2 - (c++)"SHA384_Init(_SHA512_CTX*)@Base" 0.8.16~exp2 - (c++)"SHA512_Data(unsigned char const*, unsigned int, char*)@Base" 0.8.16~exp2 - (c++)"SHA512_Init(_SHA512_CTX*)@Base" 0.8.16~exp2 - (c++)"SHA256_Final(unsigned char*, _SHA256_CTX*)@Base" 0.8.16~exp2 - (c++)"SHA384_Final(unsigned char*, _SHA512_CTX*)@Base" 0.8.16~exp2 - (c++)"SHA512_Final(unsigned char*, _SHA512_CTX*)@Base" 0.8.16~exp2 - (c++)"SHA256_Update(_SHA256_CTX*, unsigned char const*, unsigned int)@Base" 0.8.16~exp2 - (c++)"SHA384_Update(_SHA512_CTX*, unsigned char const*, unsigned int)@Base" 0.8.16~exp2 - (c++)"SHA512_Update(_SHA512_CTX*, unsigned char const*, unsigned int)@Base" 0.8.16~exp2 (c++)"AddCRC16(unsigned short, void const*, unsigned long long)@Base" 0.8.16~exp2 (c++)"MD5Summation::Add(unsigned char const*, unsigned long long)@Base" 0.8.16~exp6 (c++)"MD5Summation::Result()@Base" 0.8.16~exp2 @@ -1445,3 +1399,134 @@ libapt-pkg.so.4.12 libapt-pkg4.12 #MINVER# (c++)"pkgDepCache::SetCandidateVersion(pkgCache::VerIterator)@Base" 0.8.16~exp6 (c++)"pkgDepCache::AddSizes(pkgCache::PkgIterator const&, bool)@Base" 0.8.16~exp6 (c++)"pkgDepCache::AddStates(pkgCache::PkgIterator const&, bool)@Base" 0.8.16~exp6 +### used internally by public interfaces - if you use them directly, you can keep the pieces + (c++|optional=internal|regex)"^SHA256_.*@Base$" 0.8.16~exp2 + (c++|optional=internal|regex)"^SHA384_.*@Base$" 0.8.16~exp2 + (c++|optional=internal|regex)"^SHA512_.*@Base$" 0.8.16~exp2 +### orderlist rework: the touched methods are protected +# (c++)"pkgPackageManager::SmartConfigure(pkgCache::PkgIterator)@Base" 0.8.0 +# (c++)"pkgPackageManager::DepAdd(pkgOrderList&, pkgCache::PkgIterator, int)@Base" 0.8.0 +# (c++)"pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool)@Base" 0.8.15~exp1 + (c++)"SigINT(int)@Base" 0.8.16~exp14 + (c++)"pkgPackageManager::SigINTStop@Base" 0.8.16~exp14 + (c++)"pkgPackageManager::SmartUnPack(pkgCache::PkgIterator, bool, int)@Base" 0.8.16~exp14 + (c++)"pkgPackageManager::SmartConfigure(pkgCache::PkgIterator, int)@Base" 0.8.16~exp14 +### FileFd rework: supporting different on-the-fly (de)compressing needs more parameter (abi), but the api is stable +# (c++)"FileFd::OpenDescriptor(int, FileFd::OpenMode, bool)@Base" 0.8.0 +# (c++)"FileFd::Open(std::basic_string, std::allocator >, FileFd::OpenMode, unsigned long)@Base" 0.8.0 + (c++)"FileFd::OpenDescriptor(int, unsigned int, FileFd::CompressMode, bool)@Base" 0.8.16~exp9 + (c++)"FileFd::OpenDescriptor(int, unsigned int, APT::Configuration::Compressor const&, bool)@Base" 0.8.16~exp9 + (c++)"FileFd::ModificationTime()@Base" 0.8.16~exp9 + (c++)"FileFd::Open(std::basic_string, std::allocator >, unsigned int, FileFd::CompressMode, unsigned long)@Base" 0.8.16~exp9 + (c++)"FileFd::Open(std::basic_string, std::allocator >, unsigned int, APT::Configuration::Compressor const&, unsigned long)@Base" 0.8.16~exp9 + (c++)"FileFd::ReadLine(char*, unsigned long long)@Base" 0.8.16~exp9 + (c++)"SummationImplementation::AddFD(FileFd&, unsigned long long)@Base" 0.8.16~exp9 + (c++)"Hashes::AddFD(FileFd&, unsigned long long, bool, bool, bool, bool)@Base" 0.8.16~exp9 + (c++|optional=deprecated,previous-inline)"FileFd::gzFd()@Base" 0.8.0 + (c++|optional=private)"FileFd::OpenInternDescriptor(unsigned int, APT::Configuration::Compressor const&)@Base" 0.8.16~exp9 +### CacheSet rework: making them real containers breaks bigtime the API (for the CacheSetHelper) +# (c++)"EDSP::WriteLimitedScenario(pkgDepCache&, _IO_FILE*, APT::PackageSet const&, OpProgress*)@Base" 0.8.16~exp2 +# (c++)"EDSP::WriteScenarioLimitedDependency(pkgDepCache&, _IO_FILE*, pkgCache::PkgIterator const&, pkgCache::VerIterator const&, APT::PackageSet const&)@Base" 0.8.16~exp2 +# (c++)"APT::PackageSet::FromString(pkgCacheFile&, std::basic_string, std::allocator > const&, APT::CacheSetHelper&)@Base" 0.8.0 +# (c++)"APT::PackageSet::FromCommandLine(pkgCacheFile&, char const**, APT::CacheSetHelper&)@Base" 0.8.0 +# (c++)"APT::PackageSet::GroupedFromCommandLine(pkgCacheFile&, char const**, std::list > const&, unsigned short const&, APT::CacheSetHelper&)@Base" 0.8.0 +# (c++)"APT::PackageSet::FromName(pkgCacheFile&, std::basic_string, std::allocator > const&, APT::CacheSetHelper&)@Base" 0.8.0 +# (c++)"APT::PackageSet::FromTask(pkgCacheFile&, std::basic_string, std::allocator >, APT::CacheSetHelper&)@Base" 0.8.0 +# (c++)"APT::PackageSet::FromRegEx(pkgCacheFile&, std::basic_string, std::allocator >, APT::CacheSetHelper&)@Base" 0.8.0 +# (c++)"APT::PackageSet::~PackageSet()@Base" 0.8.0 +# (c++)"APT::VersionSet::FromString(pkgCacheFile&, std::basic_string, std::allocator >, APT::VersionSet::Version const&, APT::CacheSetHelper&, bool const&)@Base" 0.8.0 +# (c++)"APT::VersionSet::FromPackage(pkgCacheFile&, pkgCache::PkgIterator const&, APT::VersionSet::Version const&, APT::CacheSetHelper&)@Base" 0.8.0 +# (c++)"APT::VersionSet::FromCommandLine(pkgCacheFile&, char const**, APT::VersionSet::Version const&, APT::CacheSetHelper&)@Base" 0.8.0 +# (c++)"APT::VersionSet::getCandidateVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@Base" 0.8.0 +# (c++)"APT::VersionSet::getInstalledVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@Base" 0.8.0 +# (c++)"APT::VersionSet::GroupedFromCommandLine(pkgCacheFile&, char const**, std::list > const&, unsigned short const&, APT::CacheSetHelper&)@Base" 0.8.0 +# (c++)"APT::VersionSet::~VersionSet()@Base" 0.8.0 +# (c++)"APT::CacheSetHelper::showTaskSelection(APT::PackageSet const&, std::basic_string, std::allocator > const&)@Base" 0.8.0 +# (c++)"APT::CacheSetHelper::showRegExSelection(APT::PackageSet const&, std::basic_string, std::allocator > const&)@Base" 0.8.0 +# (c++)"APT::CacheSetHelper::canNotFindTask(pkgCacheFile&, std::basic_string, std::allocator >)@Base" 0.8.0 +# (c++)"APT::CacheSetHelper::canNotFindRegEx(pkgCacheFile&, std::basic_string, std::allocator >)@Base" 0.8.0 +# (c++)"APT::CacheSetHelper::canNotFindAllVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0 +# (c++)"APT::CacheSetHelper::canNotFindPackage(pkgCacheFile&, std::basic_string, std::allocator > const&)@Base" 0.8.0 +# (c++)"APT::CacheSetHelper::showSelectedVersion(pkgCache::PkgIterator const&, pkgCache::VerIterator, std::basic_string, std::allocator > const&, bool const&)@Base" 0.8.0 +# (c++)"APT::CacheSetHelper::canNotFindCandInstVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0 +# (c++)"APT::CacheSetHelper::canNotFindInstCandVer(pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.0 + (c++)"APT::PackageContainer, std::allocator > >::const_iterator::getPkg() const@Base" 0.8.16~exp9 + (c++)"APT::PackageContainer, std::allocator > >::getConstructor() const@Base" 0.8.16~exp9 + (c++)"APT::PackageContainer, std::allocator > >::empty() const@Base" 0.8.16~exp9 + (c++)"APT::PackageContainer > >::const_iterator::getPkg() const@Base" 0.8.16~exp9 + (c++)"APT::PackageContainer > >::getConstructor() const@Base" 0.8.16~exp9 + (c++)"APT::PackageContainer > >::empty() const@Base" 0.8.16~exp9 + (c++)"APT::VersionContainer > >::empty() const@Base" 0.8.16~exp9 + (c++)"APT::VersionContainer > >::iterator::getVer() const@Base" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::canNotFindTask(APT::PackageContainerInterface*, pkgCacheFile&, std::basic_string, std::allocator >)@Base" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::canNotFindRegEx(APT::PackageContainerInterface*, pkgCacheFile&, std::basic_string, std::allocator >)@Base" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::canNotFindAllVer(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::canNotFindPackage(APT::PackageContainerInterface*, pkgCacheFile&, std::basic_string, std::allocator > const&)@Base" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::showTaskSelection(pkgCache::PkgIterator const&, std::basic_string, std::allocator > const&)@Base" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::showRegExSelection(pkgCache::PkgIterator const&, std::basic_string, std::allocator > const&)@Base" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::showSelectedVersion(pkgCache::PkgIterator const&, pkgCache::VerIterator, std::basic_string, std::allocator > const&, bool)@Base" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::canNotFindCandInstVer(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.16~exp9 + (c++)"APT::CacheSetHelper::canNotFindInstCandVer(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&)@Base" 0.8.16~exp9 + (c++)"APT::PackageContainer, std::allocator > >::setConstructor(APT::PackageContainerInterface::Constructor const&)@Base" 0.8.16~exp9 + (c++)"APT::PackageContainer, std::allocator > >::clear()@Base" 0.8.16~exp9 + (c++)"APT::PackageContainer, std::allocator > >::insert(pkgCache::PkgIterator const&)@Base" 0.8.16~exp9 + (c++)"APT::PackageContainer > >::setConstructor(APT::PackageContainerInterface::Constructor const&)@Base" 0.8.16~exp9 + (c++)"APT::PackageContainer > >::clear()@Base" 0.8.16~exp9 + (c++)"APT::PackageContainer > >::insert(pkgCache::PkgIterator const&)@Base" 0.8.16~exp9 + (c++)"APT::VersionContainer > >::clear()@Base" 0.8.16~exp9 + (c++)"APT::VersionContainer > >::insert(pkgCache::VerIterator const&)@Base" 0.8.16~exp9 + (c++)"APT::PackageContainerInterface::FromString(APT::PackageContainerInterface*, pkgCacheFile&, std::basic_string, std::allocator > const&, APT::CacheSetHelper&)@Base" 0.8.16~exp9 + (c++)"APT::PackageContainerInterface::FromCommandLine(APT::PackageContainerInterface*, pkgCacheFile&, char const**, APT::CacheSetHelper&)@Base" 0.8.16~exp9 + (c++)"APT::PackageContainerInterface::FromModifierCommandLine(unsigned short&, APT::PackageContainerInterface*, pkgCacheFile&, char const*, std::list > const&, APT::CacheSetHelper&)@Base" 0.8.16~exp9 + (c++)"APT::PackageContainerInterface::FromName(pkgCacheFile&, std::basic_string, std::allocator > const&, APT::CacheSetHelper&)@Base" 0.8.16~exp9 + (c++)"APT::PackageContainerInterface::FromTask(APT::PackageContainerInterface*, pkgCacheFile&, std::basic_string, std::allocator >, APT::CacheSetHelper&)@Base" 0.8.16~exp9 + (c++)"APT::PackageContainerInterface::FromRegEx(APT::PackageContainerInterface*, pkgCacheFile&, std::basic_string, std::allocator >, APT::CacheSetHelper&)@Base" 0.8.16~exp9 + (c++)"APT::VersionContainerInterface::FromString(APT::VersionContainerInterface*, pkgCacheFile&, std::basic_string, std::allocator >, APT::VersionContainerInterface::Version const&, APT::CacheSetHelper&, bool)@Base" 0.8.16~exp9 + (c++)"APT::VersionContainerInterface::FromPackage(APT::VersionContainerInterface*, pkgCacheFile&, pkgCache::PkgIterator const&, APT::VersionContainerInterface::Version const&, APT::CacheSetHelper&)@Base" 0.8.16~exp9 + (c++)"APT::VersionContainerInterface::FromCommandLine(APT::VersionContainerInterface*, pkgCacheFile&, char const**, APT::VersionContainerInterface::Version const&, APT::CacheSetHelper&)@Base" 0.8.16~exp9 + (c++)"APT::VersionContainerInterface::getCandidateVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@Base" 0.8.16~exp9 + (c++)"APT::VersionContainerInterface::getInstalledVer(pkgCacheFile&, pkgCache::PkgIterator const&, APT::CacheSetHelper&)@Base" 0.8.16~exp9 + (c++)"APT::VersionContainerInterface::FromModifierCommandLine(unsigned short&, APT::VersionContainerInterface*, pkgCacheFile&, char const*, std::list > const&, APT::CacheSetHelper&)@Base" 0.8.16~exp9 + (c++)"EDSP::WriteLimitedScenario(pkgDepCache&, _IO_FILE*, APT::PackageContainer, std::allocator > > const&, OpProgress*)@Base" 0.8.16~exp9 + (c++)"EDSP::WriteScenarioLimitedDependency(pkgDepCache&, _IO_FILE*, pkgCache::PkgIterator const&, pkgCache::VerIterator const&, APT::PackageContainer, std::allocator > > const&)@Base" 0.8.16~exp9 + (c++)"APT::VersionContainer > >::iterator std::max_element > >::iterator, CompareProviders>(APT::VersionContainer > >::iterator, APT::VersionContainer > >::iterator, CompareProviders)@Base" 0.8.16~exp9 + (c++)"typeinfo for APT::PackageContainer, std::allocator > >::const_iterator@Base" 0.8.16~exp9 + (c++)"typeinfo for APT::PackageContainer, std::allocator > >@Base" 0.8.16~exp9 + (c++)"typeinfo for APT::PackageContainer > >::const_iterator@Base" 0.8.16~exp9 + (c++)"typeinfo for APT::PackageContainer > >@Base" 0.8.16~exp9 + (c++)"typeinfo for APT::VersionContainer > >::iterator@Base" 0.8.16~exp9 + (c++)"typeinfo for APT::VersionContainer > >@Base" 0.8.16~exp9 + (c++)"typeinfo for APT::PackageContainerInterface::const_iterator@Base" 0.8.16~exp9 + (c++)"typeinfo for APT::PackageContainerInterface@Base" 0.8.16~exp9 + (c++)"typeinfo for APT::VersionContainerInterface::const_iterator@Base" 0.8.16~exp9 + (c++)"typeinfo for APT::VersionContainerInterface@Base" 0.8.16~exp9 + (c++)"typeinfo name for APT::PackageContainer, std::allocator > >::const_iterator@Base" 0.8.16~exp9 + (c++)"typeinfo name for APT::PackageContainer, std::allocator > >@Base" 0.8.16~exp9 + (c++)"typeinfo name for APT::PackageContainer > >::const_iterator@Base" 0.8.16~exp9 + (c++)"typeinfo name for APT::PackageContainer > >@Base" 0.8.16~exp9 + (c++)"typeinfo name for APT::VersionContainer > >::iterator@Base" 0.8.16~exp9 + (c++)"typeinfo name for APT::VersionContainer > >@Base" 0.8.16~exp9 + (c++)"typeinfo name for APT::PackageContainerInterface::const_iterator@Base" 0.8.16~exp9 + (c++)"typeinfo name for APT::PackageContainerInterface@Base" 0.8.16~exp9 + (c++)"typeinfo name for APT::VersionContainerInterface::const_iterator@Base" 0.8.16~exp9 + (c++)"typeinfo name for APT::VersionContainerInterface@Base" 0.8.16~exp9 + (c++)"vtable for APT::PackageContainer, std::allocator > >::const_iterator@Base" 0.8.16~exp9 + (c++)"vtable for APT::PackageContainer, std::allocator > >@Base" 0.8.16~exp9 + (c++)"vtable for APT::PackageContainer > >::const_iterator@Base" 0.8.16~exp9 + (c++)"vtable for APT::PackageContainer > >@Base" 0.8.16~exp9 + (c++)"vtable for APT::VersionContainer > >::iterator@Base" 0.8.16~exp9 + (c++)"vtable for APT::VersionContainer > >@Base" 0.8.16~exp9 + (c++)"vtable for APT::PackageContainerInterface::const_iterator@Base" 0.8.16~exp9 + (c++)"vtable for APT::PackageContainerInterface@Base" 0.8.16~exp9 + (c++)"vtable for APT::VersionContainerInterface::const_iterator@Base" 0.8.16~exp9 + (c++)"vtable for APT::VersionContainerInterface@Base" 0.8.16~exp9 +### mixed stuff + (c++)"GetListOfFilesInDir(std::basic_string, std::allocator > const&, bool)@Base" 0.8.16~exp13 + (c++)"pkgCache::DepIterator::IsIgnorable(pkgCache::PkgIterator const&) const@Base" 0.8.16~exp10 + (c++)"pkgCache::DepIterator::IsIgnorable(pkgCache::PrvIterator const&) const@Base" 0.8.16~exp10 + (c++|optional=private)"pkgCacheGenerator::MergeListGroup(pkgCacheGenerator::ListParser&, std::basic_string, std::allocator > const&)@Base" 0.8.16~exp7 + (c++|optional=private)"pkgCacheGenerator::MergeListPackage(pkgCacheGenerator::ListParser&, pkgCache::PkgIterator&)@Base" 0.8.16~exp7 + (c++|optional=private)"pkgCacheGenerator::MergeListVersion(pkgCacheGenerator::ListParser&, pkgCache::PkgIterator&, std::basic_string, std::allocator > const&, pkgCache::VerIterator*&)@Base" 0.8.16~exp7 + (c++|optional=private)"pkgCacheGenerator::AddImplicitDepends(pkgCache::GrpIterator&, pkgCache::PkgIterator&, pkgCache::VerIterator&)@Base" 0.8.16~exp7 + (c++|optional=private)"pkgCacheGenerator::AddImplicitDepends(pkgCache::VerIterator&, pkgCache::PkgIterator&)@Base" 0.8.16~exp7 + (c++|optional=internal)"IsDuplicateDescription(pkgCache::DescIterator, HashSumValue<128> const&, std::basic_string, std::allocator > const&)@Base" 0.8.16~exp7 -- cgit v1.2.3 From 319790f4f86f595724fb2bd5aa6274d345469010 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 20 Mar 2012 19:23:32 +0100 Subject: * methods/rred.cc: - check return of writev() as gcc recommends * methods/mirror.cc: - check return of chdir() as gcc recommends * apt-pkg/deb/dpkgpm.cc: - check return of write() a gcc recommends * apt-inst/deb/debfile.cc: - check return of chdir() as gcc recommends * apt-inst/deb/dpkgdb.cc: - check return of chdir() as gcc recommends --- apt-inst/deb/debfile.cc | 2 +- apt-inst/deb/dpkgdb.cc | 3 +-- apt-pkg/deb/dpkgpm.cc | 36 ++++++++++++++++++++++++++++-------- debian/changelog | 12 +++++++++++- methods/mirror.cc | 5 +++-- methods/rred.cc | 25 ++++++++++++++++++++----- 6 files changed, 64 insertions(+), 19 deletions(-) diff --git a/apt-inst/deb/debfile.cc b/apt-inst/deb/debfile.cc index 4bd065cf8..aeab82e82 100644 --- a/apt-inst/deb/debfile.cc +++ b/apt-inst/deb/debfile.cc @@ -121,7 +121,7 @@ bool debDebFile::ExtractControl(pkgDataBase &DB) // Switch out of the tmp directory. if (chdir(Cwd.c_str()) != 0) - chdir("/"); + return _error->Errno("chdir",_("Unable to change to %s"),Cwd.c_str()); return true; } diff --git a/apt-inst/deb/dpkgdb.cc b/apt-inst/deb/dpkgdb.cc index 819c123f6..71a0c2177 100644 --- a/apt-inst/deb/dpkgdb.cc +++ b/apt-inst/deb/dpkgdb.cc @@ -286,8 +286,7 @@ bool debDpkgDB::ReadFList(OpProgress &Progress) delete [] Buffer; if (chdir(Cwd.c_str()) != 0) - chdir("/"); - + return _error->Errno("chdir",_("Unable to change to %s"),Cwd.c_str()); return !_error->PendingError(); } /*}}}*/ diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index c46a81209..63c5a6380 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -163,6 +163,25 @@ pkgCache::VerIterator FindNowVersion(const pkgCache::PkgIterator &Pkg) return Ver; } /*}}}*/ +ssize_t retry_write(int fd, const void *buf, size_t count) +{ + int Res; + ssize_t i = 0; + errno = 0; + do + { + Res = write(fd, buf, count); + if (Res < 0 && errno == EINTR) + continue; + if (Res < 0) + break; + buf = (char *)buf + Res; + count -= Res; + i += Res; + } + while (Res > 0 && count > 0); + return i; +} // DPkgPM::pkgDPkgPM - Constructor /*{{{*/ // --------------------------------------------------------------------- @@ -425,7 +444,7 @@ void pkgDPkgPM::DoStdin(int master) unsigned char input_buf[256] = {0,}; ssize_t len = read(0, input_buf, sizeof(input_buf)); if (len) - write(master, input_buf, len); + retry_write(master, input_buf, len); else d->stdin_is_dev_null = true; } @@ -451,7 +470,7 @@ void pkgDPkgPM::DoTerminalPty(int master) } if(len <= 0) return; - write(1, term_buf, len); + retry_write(1, term_buf, len); if(d->term_out) fwrite(term_buf, len, sizeof(char), d->term_out); } @@ -526,7 +545,7 @@ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line) << ":" << s << endl; if(OutStatusFd > 0) - write(OutStatusFd, status.str().c_str(), status.str().size()); + retry_write(OutStatusFd, status.str().c_str(), status.str().size()); if (Debug == true) std::clog << "send: '" << status.str() << "'" << endl; @@ -550,7 +569,7 @@ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line) << ":" << list[3] << endl; if(OutStatusFd > 0) - write(OutStatusFd, status.str().c_str(), status.str().size()); + retry_write(OutStatusFd, status.str().c_str(), status.str().size()); if (Debug == true) std::clog << "send: '" << status.str() << "'" << endl; pkgFailures++; @@ -564,7 +583,7 @@ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line) << ":" << list[3] << endl; if(OutStatusFd > 0) - write(OutStatusFd, status.str().c_str(), status.str().size()); + retry_write(OutStatusFd, status.str().c_str(), status.str().size()); if (Debug == true) std::clog << "send: '" << status.str() << "'" << endl; return; @@ -592,7 +611,7 @@ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line) << ":" << s << endl; if(OutStatusFd > 0) - write(OutStatusFd, status.str().c_str(), status.str().size()); + retry_write(OutStatusFd, status.str().c_str(), status.str().size()); if (Debug == true) std::clog << "send: '" << status.str() << "'" << endl; } @@ -1055,7 +1074,8 @@ bool pkgDPkgPM::Go(int OutStatusFd) } int fd[2]; - pipe(fd); + if (pipe(fd) != 0) + return _error->Errno("pipe","Failed to create IPC pipe to dpkg"); #define ADDARG(X) Args.push_back(X); Size += strlen(X) #define ADDARGC(X) Args.push_back(X); Size += sizeof(X) - 1 @@ -1236,7 +1256,7 @@ bool pkgDPkgPM::Go(int OutStatusFd) << (PackagesDone/float(PackagesTotal)*100.0) << ":" << _("Running dpkg") << endl; - write(OutStatusFd, status.str().c_str(), status.str().size()); + retry_write(OutStatusFd, status.str().c_str(), status.str().size()); } Child = ExecFork(); diff --git a/debian/changelog b/debian/changelog index 5da87a5ad..bb5d9920a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -21,11 +21,21 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low - check return of chdir() as gcc recommends * apt-pkg/contrib/netrc.cc: - check return of asprintf() as gcc recommends + * methods/rred.cc: + - check return of writev() as gcc recommends + * methods/mirror.cc: + - check return of chdir() as gcc recommends + * apt-pkg/deb/dpkgpm.cc: + - check return of write() a gcc recommends + * apt-inst/deb/debfile.cc: + - check return of chdir() as gcc recommends + * apt-inst/deb/dpkgdb.cc: + - check return of chdir() as gcc recommends * methods/makefile: - do not link rred against libz anymore as FileFd handles all this transparently now - -- David Kalnischkies Tue, 20 Mar 2012 18:29:33 +0100 + -- David Kalnischkies Tue, 20 Mar 2012 19:22:49 +0100 apt (0.8.16~exp13) experimental; urgency=low diff --git a/methods/mirror.cc b/methods/mirror.cc index 3b2ab8ede..eb6d97425 100644 --- a/methods/mirror.cc +++ b/methods/mirror.cc @@ -124,9 +124,10 @@ bool MirrorMethod::Clean(string Dir) if (I == list.end()) unlink(Dir->d_name); }; - - chdir(StartDir.c_str()); + closedir(D); + if (chdir(StartDir.c_str()) != 0) + return _error->Errno("chdir",_("Unable to change to %s"),StartDir.c_str()); return true; } diff --git a/methods/rred.cc b/methods/rred.cc index 1e352d0e7..38554464d 100644 --- a/methods/rred.cc +++ b/methods/rred.cc @@ -227,6 +227,21 @@ struct EdCommand { char type; }; #define IOV_COUNT 1024 /* Don't really want IOV_MAX since it can be arbitrarily large */ +ssize_t retry_writev(int fd, const struct iovec *iov, int iovcnt) { + ssize_t Res; + errno = 0; + ssize_t i = 0; + do { + Res = writev(fd, iov + i, iovcnt); + if (Res < 0 && errno == EINTR) + continue; + if (Res < 0) + return _error->Errno("writev",_("Write error")); + iovcnt -= Res; + i += Res; + } while (Res > 0 && iovcnt > 0); + return i; +} #endif /*}}}*/ RredMethod::State RredMethod::patchMMap(FileFd &Patch, FileFd &From, /*{{{*/ @@ -377,7 +392,7 @@ RredMethod::State RredMethod::patchMMap(FileFd &Patch, FileFd &From, /*{{{*/ hash->Add((const unsigned char*) begin, input - begin); if(++iov_size == IOV_COUNT) { - writev(out_file.Fd(), iov, IOV_COUNT); + retry_writev(out_file.Fd(), iov, IOV_COUNT); iov_size = 0; } } @@ -402,7 +417,7 @@ RredMethod::State RredMethod::patchMMap(FileFd &Patch, FileFd &From, /*{{{*/ iov[iov_size].iov_len); if(++iov_size == IOV_COUNT) { - writev(out_file.Fd(), iov, IOV_COUNT); + retry_writev(out_file.Fd(), iov, IOV_COUNT); iov_size = 0; } } @@ -417,15 +432,15 @@ RredMethod::State RredMethod::patchMMap(FileFd &Patch, FileFd &From, /*{{{*/ } if(iov_size) { - writev(out_file.Fd(), iov, iov_size); + retry_writev(out_file.Fd(), iov, iov_size); iov_size = 0; } for(i = 0; i < iov_size; i += IOV_COUNT) { if(iov_size - i < IOV_COUNT) - writev(out_file.Fd(), iov + i, iov_size - i); + retry_writev(out_file.Fd(), iov + i, iov_size - i); else - writev(out_file.Fd(), iov + i, IOV_COUNT); + retry_writev(out_file.Fd(), iov + i, IOV_COUNT); } delete [] iov; -- cgit v1.2.3 From fca9751603f4f1ee0612208c009326490dca9a53 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 20 Mar 2012 21:08:15 +0100 Subject: for these helpers we don't need too much checks, but no warnings from gcc helps --- test/interactive-helper/extract-control.cc | 3 +-- test/interactive-helper/testextract.cc | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/interactive-helper/extract-control.cc b/test/interactive-helper/extract-control.cc index a1b3600aa..3f7feabcb 100644 --- a/test/interactive-helper/extract-control.cc +++ b/test/interactive-helper/extract-control.cc @@ -21,8 +21,7 @@ bool ExtractMember(const char *File,const char *Member) if (Extract.Control == 0) return true; - write(STDOUT_FILENO,Extract.Control,Extract.Length); - return true; + return write(STDOUT_FILENO,Extract.Control,Extract.Length) != -1; } int main(int argc, const char *argv[]) diff --git a/test/interactive-helper/testextract.cc b/test/interactive-helper/testextract.cc index f7ddb72f0..8dfe68fc9 100644 --- a/test/interactive-helper/testextract.cc +++ b/test/interactive-helper/testextract.cc @@ -66,7 +66,8 @@ bool Go(int argc,char *argv[]) while (feof(F) == 0) { char Line[300]; - fgets(Line,sizeof(Line),F); + if (fgets(Line,sizeof(Line),F) == NULL) + return false; Itm.Name = _strstrip(Line); Itm.Type = pkgDirStream::Item::File; if (Line[strlen(Line)-1] == '/') -- cgit v1.2.3 From a11afb9d0dd5d2326acb2de19ea20b49238667d0 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 21 Mar 2012 23:47:54 +0100 Subject: do not update po and pot files in the process of the build as this causes timestamp changes for the mo files which therefore can't be refcounted by dpkg for your M-A: same packages (Closes: #659333, LP: #924628) The commit also enables a top-level 'make update-po' and does all the needed changes to let this work now that update-po might be called in a freshly checkout tree --- Makefile | 6 ++++-- buildlib/defaults.mak | 2 +- buildlib/podomain.mak | 2 +- debian/changelog | 7 ++++++- doc/makefile | 11 +++-------- po/makefile | 24 +++++++++++++++--------- test/Makefile | 4 ++-- 7 files changed, 32 insertions(+), 24 deletions(-) diff --git a/Makefile b/Makefile index 9a47014c3..aa8160ac0 100644 --- a/Makefile +++ b/Makefile @@ -9,8 +9,8 @@ endif .PHONY: default default: startup all -.PHONY: headers library clean veryclean all binary program doc test -all headers library clean veryclean binary program doc dirs test: +.PHONY: headers library clean veryclean all binary program doc test update-po +startup all headers library clean veryclean binary program doc dirs test update-po: $(MAKE) -C apt-pkg $@ $(MAKE) -C apt-inst $@ $(MAKE) -C methods $@ @@ -21,6 +21,8 @@ all headers library clean veryclean binary program doc dirs test: $(MAKE) -C po $@ $(MAKE) -C test $@ +update-po: startup + # Some very common aliases .PHONY: maintainer-clean dist-clean distclean pristine sanity maintainer-clean dist-clean distclean pristine sanity: veryclean diff --git a/buildlib/defaults.mak b/buildlib/defaults.mak index edb089160..c10813e9d 100644 --- a/buildlib/defaults.mak +++ b/buildlib/defaults.mak @@ -121,7 +121,7 @@ MKDIRS := $(BIN) all: dirs binary doc binary: library program maintainer-clean dist-clean distclean pristine sanity: veryclean -headers library clean veryclean program test: +startup headers library clean veryclean program test update-po: veryclean: echo Very Clean done for $(SUBDIR) diff --git a/buildlib/podomain.mak b/buildlib/podomain.mak index 511a5cae2..bb1c77e47 100644 --- a/buildlib/podomain.mak +++ b/buildlib/podomain.mak @@ -14,7 +14,7 @@ MKDIRS += $(PO_DOMAINS)/$(MY_DOMAIN) $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list: SRC := $(addprefix $(SUBDIR)/,$(SOURCE)) $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list: makefile (echo $(SRC) | xargs -n1 echo) > $@ -binary program clean: $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list +startup binary program clean: $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list veryclean: veryclean/$(LOCAL) veryclean/po/$(LOCAL): LIST := $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list diff --git a/debian/changelog b/debian/changelog index bb5d9920a..ca622a78c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,10 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low - fix inconsistent clog/cout usage in the debug output [ David Kalnischkies ] + * do not update po and pot files in the process of the build as this + causes timestamp changes for the mo files which therefore can't + be refcounted by dpkg for your M-A: same packages + (Closes: #659333, LP: #924628) * debian/libapt-pkg4.12: - update symbols file * apt-pkg/packagemanager.cc: @@ -35,7 +39,8 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low - do not link rred against libz anymore as FileFd handles all this transparently now - -- David Kalnischkies Tue, 20 Mar 2012 19:22:49 +0100 + + -- David Kalnischkies Wed, 21 Mar 2012 18:50:23 +0100 apt (0.8.16~exp13) experimental; urgency=low diff --git a/doc/makefile b/doc/makefile index 4fcf3bd10..fca0bfa0d 100644 --- a/doc/makefile +++ b/doc/makefile @@ -67,26 +67,21 @@ veryclean-subdirs: rm -rf $$dir; \ done +.PHONY: update-po po4a stats + ifdef PO4A doc: po4a -clean: po4a-clean - -.PHONY: update-po po4a stats update-po: po4a --previous --no-backups --force --no-translations po4a.conf -po4a-clean: - po4a --previous --rm-backups --rm-translations po4a.conf - po4a: po4a --previous --no-backups po4a.conf +endif stats: for i in po/*.po; do echo -n "$$i: "; msgfmt --statistics $$i; done -endif - ifdef DOXYGEN DOXYGEN_SOURCES = $(shell find $(BASE)/apt-pkg -not -name .\\\#* -and \( -name \*.cc -or -name \*.h \) ) diff --git a/po/makefile b/po/makefile index 9f8b7b22e..6a2bc416d 100644 --- a/po/makefile +++ b/po/makefile @@ -29,7 +29,7 @@ GETDOMAIN = $(word 1,$(subst /, ,$(1))) # Generate the list of files from the bits the other make files dropped # and produce the .pot file. $(POTFILES) : $(PO)/%.pot : - printf "%s " "Generating POT file $@" + echo "Generating POT file $@" echo $@ : $(wildcard $(PO)/domains/$*/*.*list) $(addprefix $(BASE)/,$(shell cat $(wildcard $(PO)/domains/$*/*.srclist))) > $@.d # From sh source cat $(PO)/domains/$*/*.shlist 2> /dev/null | (cd $(BASE) && xargs -n1 bash --dump-po-strings) > $(PO)/domains/$*/sh.pot @@ -40,22 +40,19 @@ $(POTFILES) : $(PO)/%.pot : --keyword=P_:1,2 \ --files-from=$(PO)/POTFILES_$*.in -o $(PO)/domains/$*/c.pot rm -f $(PO)/POTFILES_$*.in - $(MSGCOMM) --more-than=0 $(PO)/domains/$*/c.pot $(PO)/domains/$*/sh.pot --output=$@ + $(MSGCOMM) --omit-header --more-than=0 $(PO)/domains/$*/c.pot $(PO)/domains/$*/sh.pot --output=$@ # copy into the domain dirs to make rosetta happy rm -f $(PO)/domains/$*/*.pot cp $@ $(PO)/domains/$* -$(PACKAGE)-all.pot: $(POTFILES) - $(MSGCOMM) --more-than=0 $(POTFILES) --output=$@ - # Filter the complete translation with the domain specific file to produce # only the subtext needed for this domain # We cannot express the dependencies required for this directly with a pattern # rule, so we use the .d hack. -$(LANG_POFILES) : $(PO_DOMAINS)/%.po : $(PACKAGE)-all.pot +$(LANG_POFILES) : $(PO_DOMAINS)/%.po : $(POTFILES) printf "%s " "Generating $@" echo $@ : $(notdir $@) $(PO)/$(call GETDOMAIN,$*).pot > $(PO)/$(call GETDOMAIN,$*)_$(notdir $@).d - $(MSGMERGE) $(notdir $@) $(PO)/$(call GETDOMAIN,$*).pot -o $@ + $(MSGMERGE) --no-location $(notdir $@) $(PO)/$(call GETDOMAIN,$*).pot -o $@ $(MOFILES) : $(PO_DOMAINS)/%.mo : $(PO_DOMAINS)/%.po printf "%s: " "Generating $(LOCALE)/$(notdir $*)/LC_MESSAGES/$(call GETDOMAIN,$*).mo" @@ -66,7 +63,16 @@ $(MOFILES) : $(PO_DOMAINS)/%.mo : $(PO_DOMAINS)/%.po stats: for i in *.pot *.po; do echo -n "$$i: "; msgfmt --statistics $$i; done -binary: $(POTFILES) $(PACKAGE)-all.pot $(MOFILES) +binary: $(POTFILES) $(MOFILES) + +$(PACKAGE)-all.pot: $(POTFILES) + # we create our partial pot files without a header to avoid changing dates in *.mo files, + # but we want a header for our master-pot file, so we use a dummy pot with nothing but the header + $(XGETTEXT) --default-domain=$(PO)/$(PACKAGE)-dummy.pot --foreign --language=c \ + -o $(PO)/$(PACKAGE)-dummy.pot --force-po --package-name=$(PACKAGE) \ + --package-version=$(VERSION) --msgid-bugs-address=deity@lists.debian.org /dev/null + $(MSGCOMM) --more-than=0 $(PO)/$(PACKAGE)-dummy.pot $(POTFILES) --output=$(PACKAGE)-all.pot + rm -f $(PO)/$(PACKAGE)-dummy.pot .PHONY: update-po update-po: $(PACKAGE)-all.pot @@ -78,7 +84,7 @@ update-po: $(PACKAGE)-all.pot done clean: clean/local -clean/local: update-po +clean/local: rm -f $(MOFILES) $(LANG_POFILES) $(PO)/*.d # Include the dependencies that are available diff --git a/test/Makefile b/test/Makefile index da0a49b0c..b42a90b25 100644 --- a/test/Makefile +++ b/test/Makefile @@ -6,8 +6,8 @@ ifndef NOISY .SILENT: endif -.PHONY: headers library clean veryclean all binary program doc test -all clean veryclean binary program dirs test: +.PHONY: startup headers library clean veryclean all binary program doc test update-po +startup all clean veryclean binary program dirs test update-po: $(MAKE) -C libapt $@ $(MAKE) -C interactive-helper $@ -- cgit v1.2.3 From 9179f697ed4796a86f820b516f034fd679e48be4 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 22 Mar 2012 00:16:11 +0100 Subject: the previously used VERSION didn't work everywhere so we are switching to the more standard PACKAGE_VERSION and make it work in every file --- apt-pkg/init.cc | 2 +- buildlib/config.h.in | 6 +++--- buildlib/environment.mak.in | 1 + cmdline/apt-cache.cc | 2 +- cmdline/apt-cdrom.cc | 2 +- cmdline/apt-config.cc | 2 +- cmdline/apt-dump-solver.cc | 2 +- cmdline/apt-extracttemplates.cc | 2 +- cmdline/apt-get.cc | 2 +- cmdline/apt-internal-solver.cc | 2 +- cmdline/apt-mark.cc | 2 +- cmdline/apt-sortpkgs.cc | 2 +- configure.in | 7 ++++--- debian/rules | 2 +- doc/Doxyfile.in | 2 +- doc/makefile | 3 --- ftparchive/apt-ftparchive.cc | 2 +- methods/http.cc | 2 +- methods/https.cc | 2 +- po/makefile | 2 +- 20 files changed, 24 insertions(+), 25 deletions(-) diff --git a/apt-pkg/init.cc b/apt-pkg/init.cc index a1c47c030..76278921f 100644 --- a/apt-pkg/init.cc +++ b/apt-pkg/init.cc @@ -24,7 +24,7 @@ #define Stringfy_(x) # x #define Stringfy(x) Stringfy_(x) -const char *pkgVersion = VERSION; +const char *pkgVersion = PACKAGE_VERSION; const char *pkgLibVersion = Stringfy(APT_PKG_MAJOR) "." Stringfy(APT_PKG_MINOR) "." Stringfy(APT_PKG_RELEASE); diff --git a/buildlib/config.h.in b/buildlib/config.h.in index 4798fe3f5..87918bbec 100644 --- a/buildlib/config.h.in +++ b/buildlib/config.h.in @@ -39,10 +39,10 @@ /* Define the arch name string */ #undef COMMON_ARCH -/* The version number string */ -#undef VERSION - /* The package name string */ #undef PACKAGE +/* The version number string */ +#undef PACKAGE_VERSION + #define APT_8_CLEANER_HEADERS diff --git a/buildlib/environment.mak.in b/buildlib/environment.mak.in index fdac3e6c3..b8ddb34a2 100644 --- a/buildlib/environment.mak.in +++ b/buildlib/environment.mak.in @@ -2,6 +2,7 @@ # if you want you can edit it, just don't re-run configure. PACKAGE = @PACKAGE@ +PACKAGE_VERSION = @PACKAGE_VERSION@ # C++ compiler options CC = @CC@ diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc index 94654ffd4..ce869581b 100644 --- a/cmdline/apt-cache.cc +++ b/cmdline/apt-cache.cc @@ -1676,7 +1676,7 @@ bool GenCaches(CommandLine &Cmd) /* */ bool ShowHelp(CommandLine &Cmd) { - ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION, + ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); if (_config->FindB("version") == true) diff --git a/cmdline/apt-cdrom.cc b/cmdline/apt-cdrom.cc index 0017d954e..2551f4916 100644 --- a/cmdline/apt-cdrom.cc +++ b/cmdline/apt-cdrom.cc @@ -195,7 +195,7 @@ bool DoIdent(CommandLine &) /* */ int ShowHelp() { - ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION, + ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); if (_config->FindB("version") == true) return 0; diff --git a/cmdline/apt-config.cc b/cmdline/apt-config.cc index 47bedfe3f..79ae944df 100644 --- a/cmdline/apt-config.cc +++ b/cmdline/apt-config.cc @@ -72,7 +72,7 @@ bool DoDump(CommandLine &CmdL) /* */ int ShowHelp() { - ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION, + ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); if (_config->FindB("version") == true) return 0; diff --git a/cmdline/apt-dump-solver.cc b/cmdline/apt-dump-solver.cc index e82e15c6e..aa16b1271 100644 --- a/cmdline/apt-dump-solver.cc +++ b/cmdline/apt-dump-solver.cc @@ -21,7 +21,7 @@ bool ShowHelp() { std::cout << - PACKAGE " " VERSION " for " COMMON_ARCH " compiled on " __DATE__ " " __TIME__ << std::endl << + PACKAGE " " PACKAGE_VERSION " for " COMMON_ARCH " compiled on " __DATE__ " " __TIME__ << std::endl << "Usage: apt-dump-resolver\n" "\n" "apt-dump-resolver is a dummy solver who just dumps its input to the\n" diff --git a/cmdline/apt-extracttemplates.cc b/cmdline/apt-extracttemplates.cc index dc4c110a1..60efafba5 100644 --- a/cmdline/apt-extracttemplates.cc +++ b/cmdline/apt-extracttemplates.cc @@ -224,7 +224,7 @@ bool DebFile::ParseInfo() /* */ int ShowHelp(void) { - ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION, + ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); if (_config->FindB("version") == true) diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index f4ad75d1c..ac1566f30 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -3295,7 +3295,7 @@ bool DoMoo(CommandLine &CmdL) /* */ bool ShowHelp(CommandLine &CmdL) { - ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION, + ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); if (_config->FindB("version") == true) diff --git a/cmdline/apt-internal-solver.cc b/cmdline/apt-internal-solver.cc index 1b636e4d5..25ecb7af1 100644 --- a/cmdline/apt-internal-solver.cc +++ b/cmdline/apt-internal-solver.cc @@ -29,7 +29,7 @@ // --------------------------------------------------------------------- /* */ bool ShowHelp(CommandLine &CmdL) { - ioprintf(std::cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION, + ioprintf(std::cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); std::cout << diff --git a/cmdline/apt-mark.cc b/cmdline/apt-mark.cc index ef4331714..2d5eed29d 100644 --- a/cmdline/apt-mark.cc +++ b/cmdline/apt-mark.cc @@ -360,7 +360,7 @@ bool ShowHold(CommandLine &CmdL) /* */ bool ShowHelp(CommandLine &CmdL) { - ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION, + ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); cout << diff --git a/cmdline/apt-sortpkgs.cc b/cmdline/apt-sortpkgs.cc index 20ae14f2a..46989044e 100644 --- a/cmdline/apt-sortpkgs.cc +++ b/cmdline/apt-sortpkgs.cc @@ -144,7 +144,7 @@ bool DoIt(string InFile) /* */ int ShowHelp() { - ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION, + ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); if (_config->FindB("version") == true) return 0; diff --git a/configure.in b/configure.in index 065afccf1..78ad06b72 100644 --- a/configure.in +++ b/configure.in @@ -17,11 +17,12 @@ AC_INIT(configure.in) AC_CONFIG_AUX_DIR(buildlib) AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in) -dnl -- SET THIS TO THE RELEASE VERSION -- -AC_DEFINE_UNQUOTED(VERSION,"0.8.16~exp9") PACKAGE="apt" +PACKAGE_VERSION="0.8.16~exp14" AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE") +AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"$PACKAGE_VERSION") AC_SUBST(PACKAGE) +AC_SUBST(PACKAGE_VERSION) dnl Check the archs, we want the target type. AC_CANONICAL_SYSTEM @@ -218,4 +219,4 @@ fi AC_SUBST(USE_NLS) AC_PATH_PROG(BASH, bash) -AC_OUTPUT(environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in doc/Doxyfile,make -s dirs) +AC_OUTPUT(environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in doc/Doxyfile:doc/Doxyfile.in,make -s dirs) diff --git a/debian/rules b/debian/rules index 9eda3a8fa..00e6bd4b7 100755 --- a/debian/rules +++ b/debian/rules @@ -35,7 +35,7 @@ build: PKG=apt DEB_BUILD_PROG:=debuild --preserve-envvar PATH --preserve-envvar CCACHE_DIR -us -uc $(DEB_BUILD_PROG_OPTS) APT_DEBVER=$(shell dpkg-parsechangelog |sed -n -e '/^Version:/s/^Version: //p' | sed -e 's/\+.*$$//') -APT_CONFVER=$(shell sed -n -e 's/^AC_DEFINE_UNQUOTED(VERSION,"\(.*\)")/\1/p' configure.in) +APT_CONFVER=$(shell sed -n -e 's/^AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"\(.*\)")/\1/p' configure.in) APT_CVSTAG=$(shell echo "$(APT_DEBVER)" | sed -e 's/^/v/' -e 's/\./_/g') # Determine the build directory to use diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index 43d961443..cf79aff85 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -31,7 +31,7 @@ PROJECT_NAME = @PACKAGE@ # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = @VERSION@ +PROJECT_NUMBER = @PACKAGE_VERSION@ # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff --git a/doc/makefile b/doc/makefile index fca0bfa0d..0817821b6 100644 --- a/doc/makefile +++ b/doc/makefile @@ -91,9 +91,6 @@ doxygen-clean: rm -fr $(BUILD)/doc/doxygen rm -f $(BUILD)/doc/doxygen-stamp -$(BUILD)/doc/Doxyfile: Doxyfile.in - (cd $(BUILD) && ./config.status doc/Doxyfile) - $(BUILD)/doc/doxygen-stamp: $(DOXYGEN_SOURCES) $(BUILD)/doc/Doxyfile rm -fr $(BUILD)/doc/doxygen mkdir $(BUILD)/doc/doxygen # some versions seem to not create this directory #628799 diff --git a/ftparchive/apt-ftparchive.cc b/ftparchive/apt-ftparchive.cc index f289eb00d..4efbecc8c 100644 --- a/ftparchive/apt-ftparchive.cc +++ b/ftparchive/apt-ftparchive.cc @@ -587,7 +587,7 @@ void LoadBinDir(vector &PkgList,Configuration &Setup) /* */ bool ShowHelp(CommandLine &CmdL) { - ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,VERSION, + ioprintf(cout,_("%s %s for %s compiled on %s %s\n"),PACKAGE,PACKAGE_VERSION, COMMON_ARCH,__DATE__,__TIME__); if (_config->FindB("version") == true) return true; diff --git a/methods/http.cc b/methods/http.cc index d2e03cfbc..c62ca71d3 100644 --- a/methods/http.cc +++ b/methods/http.cc @@ -758,7 +758,7 @@ void HttpMethod::SendReq(FetchItem *Itm,CircleBuf &Out) Base64Encode(Uri.User + ":" + Uri.Password) + "\r\n"; } Req += "User-Agent: " + _config->Find("Acquire::http::User-Agent", - "Debian APT-HTTP/1.3 ("VERSION")") + "\r\n\r\n"; + "Debian APT-HTTP/1.3 ("PACKAGE_VERSION")") + "\r\n\r\n"; if (Debug == true) cerr << Req << endl; diff --git a/methods/https.cc b/methods/https.cc index 4f2d581d2..fac7ba790 100644 --- a/methods/https.cc +++ b/methods/https.cc @@ -219,7 +219,7 @@ bool HttpsMethod::Fetch(FetchItem *Itm) curl_easy_setopt(curl, CURLOPT_USERAGENT, _config->Find("Acquire::https::User-Agent", _config->Find("Acquire::http::User-Agent", - "Debian APT-CURL/1.0 ("VERSION")").c_str()).c_str()); + "Debian APT-CURL/1.0 ("PACKAGE_VERSION")").c_str()).c_str()); // set timeout int const timeout = _config->FindI("Acquire::https::Timeout", diff --git a/po/makefile b/po/makefile index 6a2bc416d..46b75ff4f 100644 --- a/po/makefile +++ b/po/makefile @@ -70,7 +70,7 @@ $(PACKAGE)-all.pot: $(POTFILES) # but we want a header for our master-pot file, so we use a dummy pot with nothing but the header $(XGETTEXT) --default-domain=$(PO)/$(PACKAGE)-dummy.pot --foreign --language=c \ -o $(PO)/$(PACKAGE)-dummy.pot --force-po --package-name=$(PACKAGE) \ - --package-version=$(VERSION) --msgid-bugs-address=deity@lists.debian.org /dev/null + --package-version=$(PACKAGE_VERSION) --msgid-bugs-address=deity@lists.debian.org /dev/null $(MSGCOMM) --more-than=0 $(PO)/$(PACKAGE)-dummy.pot $(POTFILES) --output=$(PACKAGE)-all.pot rm -f $(PO)/$(PACKAGE)-dummy.pot -- cgit v1.2.3 From 53ec04bb0fd4c086e54e2a6779fa88ee53139628 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 22 Mar 2012 00:51:44 +0100 Subject: * debian/apt-utils.install: - ship the ftparchive, apt-extractemplates and apt-sortpkgs locales in the apt-utils package instead of the apt package --- cmdline/makefile | 33 +++++++++++++++++++-------------- debian/apt-utils.install | 2 +- debian/changelog | 6 ++++-- ftparchive/makefile | 1 + methods/makefile | 2 +- 5 files changed, 26 insertions(+), 18 deletions(-) diff --git a/cmdline/makefile b/cmdline/makefile index 07e9eb8ca..f3712232a 100644 --- a/cmdline/makefile +++ b/cmdline/makefile @@ -33,20 +33,6 @@ LIB_MAKES = apt-pkg/makefile SOURCE = apt-cdrom.cc include $(PROGRAM_H) -# The apt-sortpkgs program -PROGRAM=apt-sortpkgs -SLIBS = -lapt-pkg $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile -SOURCE = apt-sortpkgs.cc -include $(PROGRAM_H) - -# The apt-extracttemplates program -PROGRAM=apt-extracttemplates -SLIBS = -lapt-pkg -lapt-inst $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile -SOURCE = apt-extracttemplates.cc -include $(PROGRAM_H) - # The apt-key program SOURCE=apt-key TO=$(BIN) @@ -66,6 +52,25 @@ include $(PROGRAM_H) #TARGET=program #include $(COPY_H) +# +# the following programs are shipped in apt-utils +# +APT_DOMAIN:=apt-utils + +# The apt-sortpkgs program +PROGRAM=apt-sortpkgs +SLIBS = -lapt-pkg $(INTLLIBS) +LIB_MAKES = apt-pkg/makefile +SOURCE = apt-sortpkgs.cc +include $(PROGRAM_H) + +# The apt-extracttemplates program +PROGRAM=apt-extracttemplates +SLIBS = -lapt-pkg -lapt-inst $(INTLLIBS) +LIB_MAKES = apt-pkg/makefile +SOURCE = apt-extracttemplates.cc +include $(PROGRAM_H) + # The internal solver acting as an external PROGRAM=apt-internal-solver SLIBS = -lapt-pkg $(INTLLIBS) diff --git a/debian/apt-utils.install b/debian/apt-utils.install index 8b1378917..cdbcb2f37 100644 --- a/debian/apt-utils.install +++ b/debian/apt-utils.install @@ -1 +1 @@ - +usr/share/locale/*/*/apt-utils.mo diff --git a/debian/changelog b/debian/changelog index ca622a78c..cb82f715c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,6 +11,9 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low (Closes: #659333, LP: #924628) * debian/libapt-pkg4.12: - update symbols file + * debian/apt-utils.install: + - ship the ftparchive, apt-extractemplates and apt-sortpkgs locales + in the apt-utils package instead of the apt package * apt-pkg/packagemanager.cc: - recheck all dependencies if we changed a package in SmartConfigure as this could break an earlier dependency (LP: #940396) @@ -39,8 +42,7 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low - do not link rred against libz anymore as FileFd handles all this transparently now - - -- David Kalnischkies Wed, 21 Mar 2012 18:50:23 +0100 + -- David Kalnischkies Thu, 22 Mar 2012 00:50:03 +0100 apt (0.8.16~exp13) experimental; urgency=low diff --git a/ftparchive/makefile b/ftparchive/makefile index 504ebf893..362c29198 100644 --- a/ftparchive/makefile +++ b/ftparchive/makefile @@ -7,6 +7,7 @@ include ../buildlib/defaults.mak # The apt-ftparchive program ifdef BDBLIB +APT_DOMAIN:=apt-utils PROGRAM=apt-ftparchive SLIBS = -lapt-pkg -lapt-inst $(BDBLIB) $(INTLLIBS) LIB_MAKES = apt-pkg/makefile apt-inst/makefile diff --git a/methods/makefile b/methods/makefile index 6f904d071..6fe95f29a 100644 --- a/methods/makefile +++ b/methods/makefile @@ -7,7 +7,7 @@ include ../buildlib/defaults.mak BIN := $(BIN)/methods include ../buildlib/libversion.mak -APT_DOMAIN := libapt-pkg$(LIBAPTPKG_MAJOR) +APT_DOMAIN := apt # The file method PROGRAM=file -- cgit v1.2.3 From 6d2500e267ce42fadaf301791ee0b6bc351bb176 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 22 Mar 2012 00:59:51 +0100 Subject: use the correct line to get the currently configure.in version --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index 00e6bd4b7..b819460c1 100755 --- a/debian/rules +++ b/debian/rules @@ -35,7 +35,7 @@ build: PKG=apt DEB_BUILD_PROG:=debuild --preserve-envvar PATH --preserve-envvar CCACHE_DIR -us -uc $(DEB_BUILD_PROG_OPTS) APT_DEBVER=$(shell dpkg-parsechangelog |sed -n -e '/^Version:/s/^Version: //p' | sed -e 's/\+.*$$//') -APT_CONFVER=$(shell sed -n -e 's/^AC_DEFINE_UNQUOTED(PACKAGE_VERSION,"\(.*\)")/\1/p' configure.in) +APT_CONFVER=$(shell sed -n -e 's/^PACKAGE_VERSION="\(.*\)"/\1/p' configure.in) APT_CVSTAG=$(shell echo "$(APT_DEBVER)" | sed -e 's/^/v/' -e 's/\./_/g') # Determine the build directory to use -- cgit v1.2.3 From 26fced49e860e42806f3bada0841d1355a83bd0b Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 22 Mar 2012 01:02:22 +0100 Subject: * debian/control - bump Standards-Version to 3.9.3 (no changes needed) --- debian/changelog | 4 +++- debian/control | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index cb82f715c..64c12b681 100644 --- a/debian/changelog +++ b/debian/changelog @@ -41,8 +41,10 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low * methods/makefile: - do not link rred against libz anymore as FileFd handles all this transparently now + * debian/control + - bump Standards-Version to 3.9.3 (no changes needed) - -- David Kalnischkies Thu, 22 Mar 2012 00:50:03 +0100 + -- David Kalnischkies Thu, 22 Mar 2012 01:00:31 +0100 apt (0.8.16~exp13) experimental; urgency=low diff --git a/debian/control b/debian/control index 311346b0f..528468c7c 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,7 @@ Maintainer: APT Development Team Uploaders: Michael Vogt , Otavio Salvador , Christian Perrier , Daniel Burrows , Julian Andres Klode -Standards-Version: 3.9.2 +Standards-Version: 3.9.3 Build-Depends: dpkg-dev (>= 1.15.8), debhelper (>= 8.1.3~), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.0), zlib1g-dev | libz-dev, debiandoc-sgml, xsltproc, docbook-xsl, docbook-xml, -- cgit v1.2.3 From 2e30ddbe95ff8ecfcf7d15a8b3c69ede6cda027a Mon Sep 17 00:00:00 2001 From: Mike Erickson Date: Thu, 22 Mar 2012 10:37:53 +0100 Subject: =?UTF-8?q?*=20doc/apt-get.8.xml:=20=20=20-=20typofix:=20respect?= =?UTF-8?q?=20=E2=86=92=20respecting,=20thanks=20Mike=20Erickson!=20(Close?= =?UTF-8?q?s:=20#664833)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- debian/changelog | 6 ++++-- doc/apt-get.8.xml | 2 +- doc/po/apt-doc.pot | 2 +- doc/po/de.po | 2 +- doc/po/es.po | 2 +- doc/po/fr.po | 2 +- doc/po/it.po | 2 +- doc/po/ja.po | 2 +- doc/po/pl.po | 2 +- doc/po/pt.po | 2 +- doc/po/pt_BR.po | 2 +- 11 files changed, 14 insertions(+), 12 deletions(-) diff --git a/debian/changelog b/debian/changelog index 64c12b681..e1e023c7d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -41,10 +41,12 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low * methods/makefile: - do not link rred against libz anymore as FileFd handles all this transparently now - * debian/control + * debian/control: - bump Standards-Version to 3.9.3 (no changes needed) + * doc/apt-get.8.xml: + - typofix: respect → respecting, thanks Mike Erickson! (Closes: #664833) - -- David Kalnischkies Thu, 22 Mar 2012 01:00:31 +0100 + -- David Kalnischkies Thu, 22 Mar 2012 10:33:17 +0100 apt (0.8.16~exp13) experimental; urgency=low diff --git a/doc/apt-get.8.xml b/doc/apt-get.8.xml index fd1cd2540..ecd753f2d 100644 --- a/doc/apt-get.8.xml +++ b/doc/apt-get.8.xml @@ -247,7 +247,7 @@ source causes apt-get to fetch source packages. APT will examine the available packages to decide which source package to fetch. It will then find and download into the current directory the - newest available version of that source package while respect the + newest available version of that source package while respecting the default release, set with the option APT::Default-Release, the option or per package with the pkg/release syntax, if possible. diff --git a/doc/po/apt-doc.pot b/doc/po/apt-doc.pot index 364dce12f..5cc0b53fe 100644 --- a/doc/po/apt-doc.pot +++ b/doc/po/apt-doc.pot @@ -2845,7 +2845,7 @@ msgid "" "source causes apt-get to fetch source " "packages. APT will examine the available packages to decide which source " "package to fetch. It will then find and download into the current directory " -"the newest available version of that source package while respect the " +"the newest available version of that source package while respecting the " "default release, set with the option " "APT::Default-Release, the option or " "per package with the pkg/release syntax, if possible." diff --git a/doc/po/de.po b/doc/po/de.po index 9a3415051..0db7a13fb 100644 --- a/doc/po/de.po +++ b/doc/po/de.po @@ -3768,7 +3768,7 @@ msgid "" "source causes apt-get to fetch source " "packages. APT will examine the available packages to decide which source " "package to fetch. It will then find and download into the current directory " -"the newest available version of that source package while respect the " +"the newest available version of that source package while respecting the " "default release, set with the option APT::Default-Release, the option or per package with the " "pkg/release syntax, if possible." diff --git a/doc/po/es.po b/doc/po/es.po index 35b8d0af7..645be1ab2 100644 --- a/doc/po/es.po +++ b/doc/po/es.po @@ -3820,7 +3820,7 @@ msgid "" "source causes apt-get to fetch source " "packages. APT will examine the available packages to decide which source " "package to fetch. It will then find and download into the current directory " -"the newest available version of that source package while respect the " +"the newest available version of that source package while respecting the " "default release, set with the option APT::Default-Release, the option or per package with the " "pkg/release syntax, if possible." diff --git a/doc/po/fr.po b/doc/po/fr.po index 2e0e766a7..780d1209e 100644 --- a/doc/po/fr.po +++ b/doc/po/fr.po @@ -3752,7 +3752,7 @@ msgid "" "source causes apt-get to fetch source " "packages. APT will examine the available packages to decide which source " "package to fetch. It will then find and download into the current directory " -"the newest available version of that source package while respect the " +"the newest available version of that source package while respecting the " "default release, set with the option APT::Default-Release, the option or per package with the " "pkg/release syntax, if possible." diff --git a/doc/po/it.po b/doc/po/it.po index 4571690e1..505553b55 100644 --- a/doc/po/it.po +++ b/doc/po/it.po @@ -2821,7 +2821,7 @@ msgid "" "source causes apt-get to fetch source " "packages. APT will examine the available packages to decide which source " "package to fetch. It will then find and download into the current directory " -"the newest available version of that source package while respect the " +"the newest available version of that source package while respecting the " "default release, set with the option APT::Default-Release, the option or per package with the " "pkg/release syntax, if possible." diff --git a/doc/po/ja.po b/doc/po/ja.po index 22488b227..368572943 100644 --- a/doc/po/ja.po +++ b/doc/po/ja.po @@ -3907,7 +3907,7 @@ msgid "" "source causes apt-get to fetch source " "packages. APT will examine the available packages to decide which source " "package to fetch. It will then find and download into the current directory " -"the newest available version of that source package while respect the " +"the newest available version of that source package while respecting the " "default release, set with the option APT::Default-Release, the option or per package with the " "pkg/release syntax, if possible." diff --git a/doc/po/pl.po b/doc/po/pl.po index 41eb56684..08c1b1660 100644 --- a/doc/po/pl.po +++ b/doc/po/pl.po @@ -3722,7 +3722,7 @@ msgid "" "source causes apt-get to fetch source " "packages. APT will examine the available packages to decide which source " "package to fetch. It will then find and download into the current directory " -"the newest available version of that source package while respect the " +"the newest available version of that source package while respecting the " "default release, set with the option APT::Default-Release, the option or per package with the " "pkg/release syntax, if possible." diff --git a/doc/po/pt.po b/doc/po/pt.po index e298281f8..e3d699bd0 100644 --- a/doc/po/pt.po +++ b/doc/po/pt.po @@ -3755,7 +3755,7 @@ msgid "" "source causes apt-get to fetch source " "packages. APT will examine the available packages to decide which source " "package to fetch. It will then find and download into the current directory " -"the newest available version of that source package while respect the " +"the newest available version of that source package while respecting the " "default release, set with the option APT::Default-Release, the option or per package with the " "pkg/release syntax, if possible." diff --git a/doc/po/pt_BR.po b/doc/po/pt_BR.po index 488350186..4f4c04caf 100644 --- a/doc/po/pt_BR.po +++ b/doc/po/pt_BR.po @@ -2878,7 +2878,7 @@ msgid "" "source causes apt-get to fetch source " "packages. APT will examine the available packages to decide which source " "package to fetch. It will then find and download into the current directory " -"the newest available version of that source package while respect the " +"the newest available version of that source package while respecting the " "default release, set with the option APT::Default-Release, the option or per package with the " "pkg/release syntax, if possible." -- cgit v1.2.3 From 9c257550854273ff6defb1816cb210d51f64db03 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 22 Mar 2012 13:09:22 +0100 Subject: =?UTF-8?q?*=20apt-inst/database.{cc,h},=20apt-inst/deb/dpkgdb.{cc?= =?UTF-8?q?,h}:=20=20=20-=20drop=20instead=20of=20fix=20as=20it=20is=20onl?= =?UTF-8?q?y=20needed=20if=20you=20want=20to=20reimplement=20dpkg=20=20=20?= =?UTF-8?q?=20=20and=20comes=20straight=20from=20the=20beginning=20of=20la?= =?UTF-8?q?st=20decade=20(Closes:=20#663372)=20*=20apt-inst/deb/debfile.cc?= =?UTF-8?q?:=20=20=20-=20{Extract,Merge}Control()=20is=20another=20instanc?= =?UTF-8?q?e=20of=20"lets=20reimplement=20dpkg"=20=20=20=20=20so=20shot=20?= =?UTF-8?q?of=20this=20code=20before=20someone=20ends=20up=20using=20this?= =?UTF-8?q?=E2=80=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apt-inst/database.cc | 35 --- apt-inst/database.h | 60 ---- apt-inst/deb/debfile.cc | 63 ----- apt-inst/deb/debfile.h | 10 +- apt-inst/deb/dpkgdb.cc | 493 --------------------------------- apt-inst/deb/dpkgdb.h | 55 ---- apt-inst/makefile | 7 +- debian/changelog | 8 +- debian/libapt-inst1.4.symbols | 28 -- test/interactive-helper/makefile | 12 +- test/interactive-helper/testextract.cc | 104 ------- 11 files changed, 15 insertions(+), 860 deletions(-) delete mode 100644 apt-inst/database.cc delete mode 100644 apt-inst/database.h delete mode 100644 apt-inst/deb/dpkgdb.cc delete mode 100644 apt-inst/deb/dpkgdb.h delete mode 100644 test/interactive-helper/testextract.cc diff --git a/apt-inst/database.cc b/apt-inst/database.cc deleted file mode 100644 index da7613491..000000000 --- a/apt-inst/database.cc +++ /dev/null @@ -1,35 +0,0 @@ -// -*- mode: cpp; mode: fold -*- -// Description /*{{{*/ -// $Id: database.cc,v 1.2 2001/02/20 07:03:16 jgg Exp $ -/* ###################################################################### - - Data Base Abstraction - - ##################################################################### */ - /*}}}*/ -// Include Files /*{{{*/ -#include - -#include -#include -#include - /*}}}*/ - -// DataBase::GetMetaTmp - Get the temp dir /*{{{*/ -// --------------------------------------------------------------------- -/* This re-initializes the meta temporary directory if it hasn't yet - been inited for this cycle. The flag is the emptyness of MetaDir */ -bool pkgDataBase::GetMetaTmp(std::string &Dir) -{ - if (MetaDir.empty() == true) - if (InitMetaTmp(MetaDir) == false) - return false; - Dir = MetaDir; - return true; -} - /*}}}*/ -pkgDataBase::~pkgDataBase() -{ - delete Cache; - delete FList; -} diff --git a/apt-inst/database.h b/apt-inst/database.h deleted file mode 100644 index 64e149f98..000000000 --- a/apt-inst/database.h +++ /dev/null @@ -1,60 +0,0 @@ -// -*- mode: cpp; mode: fold -*- -// Description /*{{{*/ -// $Id: database.h,v 1.2 2001/02/20 07:03:16 jgg Exp $ -/* ###################################################################### - - Data Base Abstraction - - This class provides a simple interface to an abstract notion of a - database directory for storing state information about the system. - - The 'Meta' information for a package is the control information and - setup scripts stored inside the archive. GetMetaTmp returns the name of - a directory that is used to store named files containing the control - information. - - The File Listing is the database of installed files. It is loaded - into the memory/persistent cache structure by the ReadFileList method. - - ##################################################################### */ - /*}}}*/ -#ifndef PKGLIB_DATABASE_H -#define PKGLIB_DATABASE_H - -#include - -#include - -#ifndef APT_8_CLEANER_HEADERS -#include -#endif - -class pkgFLCache; -class OpProgress; - -class pkgDataBase -{ - protected: - - pkgCacheGenerator *Cache; - pkgFLCache *FList; - std::string MetaDir; - virtual bool InitMetaTmp(std::string &Dir) = 0; - - public: - - // Some manipulators for the cache and generator - inline pkgCache &GetCache() {return Cache->GetCache();}; - inline pkgFLCache &GetFLCache() {return *FList;}; - inline pkgCacheGenerator &GetGenerator() {return *Cache;}; - - bool GetMetaTmp(std::string &Dir); - virtual bool ReadyFileList(OpProgress &Progress) = 0; - virtual bool ReadyPkgCache(OpProgress &Progress) = 0; - virtual bool LoadChanges() = 0; - - pkgDataBase() : Cache(0), FList(0) {}; - virtual ~pkgDataBase(); -}; - -#endif diff --git a/apt-inst/deb/debfile.cc b/apt-inst/deb/debfile.cc index aeab82e82..ab4037915 100644 --- a/apt-inst/deb/debfile.cc +++ b/apt-inst/deb/debfile.cc @@ -18,7 +18,6 @@ // Include Files /*{{{*/ #include -#include #include #include #include @@ -90,42 +89,6 @@ const ARArchive::Member *debDebFile::GotoMember(const char *Name) return Member; } /*}}}*/ -// DebFile::ExtractControl - Extract Control information /*{{{*/ -// --------------------------------------------------------------------- -/* Extract the control information into the Database's temporary - directory. */ -bool debDebFile::ExtractControl(pkgDataBase &DB) -{ - // Get the archive member and positition the file - const ARArchive::Member *Member = GotoMember("control.tar.gz"); - if (Member == 0) - return false; - - // Prepare Tar - ControlExtract Extract; - ExtractTar Tar(File,Member->Size,"gzip"); - if (_error->PendingError() == true) - return false; - - // Get into the temporary directory - std::string Cwd = SafeGetCWD(); - std::string Tmp; - if (DB.GetMetaTmp(Tmp) == false) - return false; - if (chdir(Tmp.c_str()) != 0) - return _error->Errno("chdir",_("Couldn't change to %s"),Tmp.c_str()); - - // Do extraction - if (Tar.Go(Extract) == false) - return false; - - // Switch out of the tmp directory. - if (chdir(Cwd.c_str()) != 0) - return _error->Errno("chdir",_("Unable to change to %s"),Cwd.c_str()); - - return true; -} - /*}}}*/ // DebFile::ExtractArchive - Extract the archive data itself /*{{{*/ // --------------------------------------------------------------------- /* Simple wrapper around tar.. */ @@ -167,32 +130,6 @@ bool debDebFile::ExtractArchive(pkgDirStream &Stream) return Tar.Go(Stream); } /*}}}*/ -// DebFile::MergeControl - Merge the control information /*{{{*/ -// --------------------------------------------------------------------- -/* This reads the extracted control file into the cache and returns the - version that was parsed. All this really does is select the correct - parser and correct file to parse. */ -pkgCache::VerIterator debDebFile::MergeControl(pkgDataBase &DB) -{ - // Open the control file - std::string Tmp; - if (DB.GetMetaTmp(Tmp) == false) - return pkgCache::VerIterator(DB.GetCache()); - FileFd Fd(Tmp + "control",FileFd::ReadOnly); - if (_error->PendingError() == true) - return pkgCache::VerIterator(DB.GetCache()); - - // Parse it - debListParser Parse(&Fd); - pkgCache::VerIterator Ver(DB.GetCache()); - if (DB.GetGenerator().MergeList(Parse,&Ver) == false) - return pkgCache::VerIterator(DB.GetCache()); - - if (Ver.end() == true) - _error->Error(_("Failed to locate a valid control file")); - return Ver; -} - /*}}}*/ // DebFile::ControlExtract::DoItem - Control Tar Extraction /*{{{*/ // --------------------------------------------------------------------- diff --git a/apt-inst/deb/debfile.h b/apt-inst/deb/debfile.h index 5e1ea1d2f..d94b74446 100644 --- a/apt-inst/deb/debfile.h +++ b/apt-inst/deb/debfile.h @@ -29,12 +29,7 @@ #include #include -#ifndef APT_8_CLEANER_HEADERS -#include -#endif - class FileFd; -class pkgDataBase; class debDebFile { @@ -46,13 +41,10 @@ class debDebFile bool CheckMember(const char *Name); public: - class ControlExtract; class MemControlExtract; - - bool ExtractControl(pkgDataBase &DB); + bool ExtractArchive(pkgDirStream &Stream); - pkgCache::VerIterator MergeControl(pkgDataBase &DB); const ARArchive::Member *GotoMember(const char *Name); inline FileFd &GetFile() {return File;}; diff --git a/apt-inst/deb/dpkgdb.cc b/apt-inst/deb/dpkgdb.cc deleted file mode 100644 index 71a0c2177..000000000 --- a/apt-inst/deb/dpkgdb.cc +++ /dev/null @@ -1,493 +0,0 @@ -// -*- mode: cpp; mode: fold -*- -// Description /*{{{*/ -// $Id: dpkgdb.cc,v 1.7.2.1 2004/01/16 18:58:50 mdz Exp $ -/* ###################################################################### - - DPKGv1 Database Implemenation - - This class provides parsers and other implementations for the DPKGv1 - database. It reads the diversion file, the list files and the status - file to build both the list of currently installed files and the - currently installed package list. - - ##################################################################### */ - /*}}}*/ -// Include Files /*{{{*/ -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - /*}}}*/ -using namespace std; - -// EraseDir - Erase A Directory /*{{{*/ -// --------------------------------------------------------------------- -/* This is necessary to create a new empty sub directory. The caller should - invoke mkdir after this with the proper permissions and check for - error. Maybe stick this in fileutils */ -static bool EraseDir(const char *Dir) -{ - // First we try a simple RM - if (rmdir(Dir) == 0 || - errno == ENOENT) - return true; - - // A file? Easy enough.. - if (errno == ENOTDIR) - { - if (unlink(Dir) != 0) - return _error->Errno("unlink",_("Failed to remove %s"),Dir); - return true; - } - - // Should not happen - if (errno != ENOTEMPTY) - return _error->Errno("rmdir",_("Failed to remove %s"),Dir); - - // Purge it using rm - pid_t Pid = ExecFork(); - - // Spawn the subprocess - if (Pid == 0) - { - execlp(_config->Find("Dir::Bin::rm","/bin/rm").c_str(), - "rm","-rf","--",Dir,(char *)NULL); - _exit(100); - } - return ExecWait(Pid,_config->Find("dir::bin::rm","/bin/rm").c_str()); -} - /*}}}*/ -// DpkgDB::debDpkgDB - Constructor /*{{{*/ -// --------------------------------------------------------------------- -/* */ -debDpkgDB::debDpkgDB() : CacheMap(0), FileMap(0) -{ - AdminDir = flNotFile(_config->Find("Dir::State::status")); - DiverInode = 0; - DiverTime = 0; -} - /*}}}*/ -// DpkgDB::~debDpkgDB - Destructor /*{{{*/ -// --------------------------------------------------------------------- -/* */ -debDpkgDB::~debDpkgDB() -{ - delete Cache; - Cache = 0; - delete CacheMap; - CacheMap = 0; - - delete FList; - FList = 0; - delete FileMap; - FileMap = 0; -} - /*}}}*/ -// DpkgDB::InitMetaTmp - Get the temp dir for meta information /*{{{*/ -// --------------------------------------------------------------------- -/* This creats+empties the meta temporary directory /var/lib/dpkg/tmp.ci - Only one package at a time can be using the returned meta directory. */ -bool debDpkgDB::InitMetaTmp(string &Dir) -{ - string Tmp = AdminDir + "tmp.ci/"; - if (EraseDir(Tmp.c_str()) == false) - return _error->Error(_("Unable to create %s"),Tmp.c_str()); - if (mkdir(Tmp.c_str(),0755) != 0) - return _error->Errno("mkdir",_("Unable to create %s"),Tmp.c_str()); - - // Verify it is on the same filesystem as the main info directory - dev_t Dev; - struct stat St; - if (stat((AdminDir + "info").c_str(),&St) != 0) - return _error->Errno("stat",_("Failed to stat %sinfo"),AdminDir.c_str()); - Dev = St.st_dev; - if (stat(Tmp.c_str(),&St) != 0) - return _error->Errno("stat",_("Failed to stat %s"),Tmp.c_str()); - if (Dev != St.st_dev) - return _error->Error(_("The info and temp directories need to be on the same filesystem")); - - // Done - Dir = Tmp; - return true; -} - /*}}}*/ -// DpkgDB::ReadyPkgCache - Prepare the cache with the current status /*{{{*/ -// --------------------------------------------------------------------- -/* This reads in the status file into an empty cache. This really needs - to be somehow unified with the high level APT notion of the Database - directory, but there is no clear way on how to do that yet. */ -bool debDpkgDB::ReadyPkgCache(OpProgress &Progress) -{ - if (Cache != 0) - { - Progress.OverallProgress(1,1,1,_("Reading package lists")); - return true; - } - - if (CacheMap != 0) - { - delete CacheMap; - CacheMap = 0; - } - - if (pkgCacheGenerator::MakeOnlyStatusCache(&Progress,&CacheMap) == false) - return false; - Cache->DropProgress(); - - return true; -} - /*}}}*/ -// DpkgDB::ReadFList - Read the File Listings in /*{{{*/ -// --------------------------------------------------------------------- -/* This reads the file listing in from the state directory. This is a - performance critical routine, as it needs to parse about 50k lines of - text spread over a hundred or more files. For an initial cold start - most of the time is spent in reading file inodes and so on, not - actually parsing. */ -bool debDpkgDB::ReadFList(OpProgress &Progress) -{ - // Count the number of packages we need to read information for - unsigned long Total = 0; - pkgCache &Cache = this->Cache->GetCache(); - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) - { - // Only not installed packages have no files. - if (I->CurrentState == pkgCache::State::NotInstalled) - continue; - Total++; - } - - /* Switch into the admin dir, this prevents useless lookups for the - path components */ - string Cwd = SafeGetCWD(); - if (chdir((AdminDir + "info/").c_str()) != 0) - return _error->Errno("chdir",_("Failed to change to the admin dir %sinfo"),AdminDir.c_str()); - - // Allocate a buffer. Anything larger than this buffer will be mmaped - unsigned long BufSize = 32*1024; - char *Buffer = new char[BufSize]; - - // Begin Loading them - unsigned long Count = 0; - char Name[300]; - for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; I++) - { - /* Only not installed packages have no files. ConfFile packages have - file lists but we don't want to read them in */ - if (I->CurrentState == pkgCache::State::NotInstalled || - I->CurrentState == pkgCache::State::ConfigFiles) - continue; - - // Fetch a package handle to associate with the file - pkgFLCache::PkgIterator FlPkg = FList->GetPkg(I.Name(),0,true); - if (FlPkg.end() == true) - { - _error->Error(_("Internal error getting a package name")); - break; - } - - Progress.OverallProgress(Count,Total,1,_("Reading file listing")); - - // Open the list file - snprintf(Name,sizeof(Name),"%s.list",I.Name()); - int Fd = open(Name,O_RDONLY); - - /* Okay this is very strange and bad.. Best thing is to bail and - instruct the user to look into it. */ - struct stat Stat; - if (Fd == -1 || fstat(Fd,&Stat) != 0) - { - _error->Errno("open",_("Failed to open the list file '%sinfo/%s'. If you " - "cannot restore this file then make it empty " - "and immediately re-install the same version of the package!"), - AdminDir.c_str(),Name); - break; - } - - // Set File to be a memory buffer containing the whole file - char *File; - if ((unsigned)Stat.st_size < BufSize) - { - if (read(Fd,Buffer,Stat.st_size) != Stat.st_size) - { - _error->Errno("read",_("Failed reading the list file %sinfo/%s"), - AdminDir.c_str(),Name); - close(Fd); - break; - } - File = Buffer; - } - else - { - // Use mmap - File = (char *)mmap(0,Stat.st_size,PROT_READ,MAP_PRIVATE,Fd,0); - if (File == (char *)(-1)) - { - _error->Errno("mmap",_("Failed reading the list file %sinfo/%s"), - AdminDir.c_str(),Name); - close(Fd); - break; - } - } - - // Parse it - const char *Start = File; - const char *End = File; - const char *Finish = File + Stat.st_size; - for (; End < Finish; End++) - { - // Not an end of line - if (*End != '\n' && End + 1 < Finish) - continue; - - // Skip blank lines - if (End - Start > 1) - { - pkgFLCache::NodeIterator Node = FList->GetNode(Start,End, - FlPkg.Offset(),true,false); - if (Node.end() == true) - { - _error->Error(_("Internal error getting a node")); - break; - } - } - - // Skip past the end of line - for (; *End == '\n' && End < Finish; End++); - Start = End; - } - - close(Fd); - if ((unsigned)Stat.st_size >= BufSize) - munmap((caddr_t)File,Stat.st_size); - - // Failed - if (End < Finish) - break; - - Count++; - } - - delete [] Buffer; - if (chdir(Cwd.c_str()) != 0) - return _error->Errno("chdir",_("Unable to change to %s"),Cwd.c_str()); - return !_error->PendingError(); -} - /*}}}*/ -// DpkgDB::ReadDiversions - Load the diversions file /*{{{*/ -// --------------------------------------------------------------------- -/* Read the diversion file in from disk. This is usually invoked by - LoadChanges before performing an operation that uses the FLCache. */ -bool debDpkgDB::ReadDiversions() -{ - struct stat Stat; - if (stat((AdminDir + "diversions").c_str(),&Stat) != 0) - return true; - - if (_error->PendingError() == true) - return false; - - FILE *Fd = fopen((AdminDir + "diversions").c_str(),"r"); - if (Fd == 0) - return _error->Errno("fopen",_("Failed to open the diversions file %sdiversions"),AdminDir.c_str()); - - FList->BeginDiverLoad(); - while (1) - { - char From[300]; - char To[300]; - char Package[100]; - - // Read the three lines in - if (fgets(From,sizeof(From),Fd) == 0) - break; - if (fgets(To,sizeof(To),Fd) == 0 || - fgets(Package,sizeof(Package),Fd) == 0) - { - _error->Error(_("The diversion file is corrupted")); - break; - } - - // Strip the \ns - unsigned long Len = strlen(From); - if (Len < 2 || From[Len-1] != '\n') - _error->Error(_("Invalid line in the diversion file: %s"),From); - else - From[Len-1] = 0; - Len = strlen(To); - if (Len < 2 || To[Len-1] != '\n') - _error->Error(_("Invalid line in the diversion file: %s"),To); - else - To[Len-1] = 0; - Len = strlen(Package); - if (Len < 2 || Package[Len-1] != '\n') - _error->Error(_("Invalid line in the diversion file: %s"),Package); - else - Package[Len-1] = 0; - - // Make sure the lines were parsed OK - if (_error->PendingError() == true) - break; - - // Fetch a package - if (strcmp(Package,":") == 0) - Package[0] = 0; - pkgFLCache::PkgIterator FlPkg = FList->GetPkg(Package,0,true); - if (FlPkg.end() == true) - { - _error->Error(_("Internal error getting a package name")); - break; - } - - // Install the diversion - if (FList->AddDiversion(FlPkg,From,To) == false) - { - _error->Error(_("Internal error adding a diversion")); - break; - } - } - if (_error->PendingError() == false) - FList->FinishDiverLoad(); - - DiverInode = Stat.st_ino; - DiverTime = Stat.st_mtime; - - fclose(Fd); - return !_error->PendingError(); -} - /*}}}*/ -// DpkgDB::ReadFileList - Read the file listing /*{{{*/ -// --------------------------------------------------------------------- -/* Read in the file listing. The file listing is created from three - sources, *.list, Conffile sections and the Diversion table. */ -bool debDpkgDB::ReadyFileList(OpProgress &Progress) -{ - if (Cache == 0) - return _error->Error(_("The pkg cache must be initialized first")); - if (FList != 0) - { - Progress.OverallProgress(1,1,1,_("Reading file listing")); - return true; - } - - // Create the cache and read in the file listing - FileMap = new DynamicMMap(MMap::Public); - FList = new pkgFLCache(*FileMap); - if (_error->PendingError() == true || - ReadFList(Progress) == false || - ReadConfFiles() == false || - ReadDiversions() == false) - { - delete FList; - delete FileMap; - FileMap = 0; - FList = 0; - return false; - } - - cout << "Node: " << FList->HeaderP->NodeCount << ',' << FList->HeaderP->UniqNodes << endl; - cout << "Dir: " << FList->HeaderP->DirCount << endl; - cout << "Package: " << FList->HeaderP->PackageCount << endl; - cout << "HashSize: " << FList->HeaderP->HashSize << endl; - cout << "Size: " << FileMap->Size() << endl; - cout << endl; - - return true; -} - /*}}}*/ -// DpkgDB::ReadConfFiles - Read the conf file sections from the s-file /*{{{*/ -// --------------------------------------------------------------------- -/* Reading the conf files is done by reparsing the status file. This is - actually rather fast so it is no big deal. */ -bool debDpkgDB::ReadConfFiles() -{ - FileFd File(_config->FindFile("Dir::State::status"),FileFd::ReadOnly); - pkgTagFile Tags(&File); - if (_error->PendingError() == true) - return false; - - pkgTagSection Section; - while (1) - { - // Skip to the next section - unsigned long Offset = Tags.Offset(); - if (Tags.Step(Section) == false) - break; - - // Parse the line - const char *Start; - const char *Stop; - if (Section.Find("Conffiles",Start,Stop) == false) - continue; - - const char *PkgStart; - const char *PkgEnd; - if (Section.Find("Package",PkgStart,PkgEnd) == false) - return _error->Error(_("Failed to find a Package: header, offset %lu"),Offset); - - // Snag a package record for it - pkgFLCache::PkgIterator FlPkg = FList->GetPkg(PkgStart,PkgEnd,true); - if (FlPkg.end() == true) - return _error->Error(_("Internal error getting a package name")); - - // Parse the conf file lines - while (1) - { - for (; isspace(*Start) != 0 && Start < Stop; Start++); - if (Start == Stop) - break; - - // Split it into words - const char *End = Start; - for (; isspace(*End) == 0 && End < Stop; End++); - const char *StartMd5 = End; - for (; isspace(*StartMd5) != 0 && StartMd5 < Stop; StartMd5++); - const char *EndMd5 = StartMd5; - for (; isspace(*EndMd5) == 0 && EndMd5 < Stop; EndMd5++); - if (StartMd5 == EndMd5 || Start == End) - return _error->Error(_("Bad ConfFile section in the status file. Offset %lu"),Offset); - - // Insert a new entry - unsigned char MD5[16]; - if (Hex2Num(string(StartMd5,EndMd5-StartMd5),MD5,16) == false) - return _error->Error(_("Error parsing MD5. Offset %lu"),Offset); - - if (FList->AddConfFile(Start,End,FlPkg,MD5) == false) - return false; - Start = EndMd5; - } - } - - return true; -} - /*}}}*/ -// DpkgDB::LoadChanges - Read in any changed state files /*{{{*/ -// --------------------------------------------------------------------- -/* The only file in the dpkg system that can change while packages are - unpacking is the diversions file. */ -bool debDpkgDB::LoadChanges() -{ - struct stat Stat; - if (stat((AdminDir + "diversions").c_str(),&Stat) != 0) - return true; - if (DiverInode == Stat.st_ino && DiverTime == Stat.st_mtime) - return true; - return ReadDiversions(); -} - /*}}}*/ diff --git a/apt-inst/deb/dpkgdb.h b/apt-inst/deb/dpkgdb.h deleted file mode 100644 index f28563a93..000000000 --- a/apt-inst/deb/dpkgdb.h +++ /dev/null @@ -1,55 +0,0 @@ -// -*- mode: cpp; mode: fold -*- -// Description /*{{{*/ -// $Id: dpkgdb.h,v 1.2 2001/02/20 07:03:17 jgg Exp $ -/* ###################################################################### - - DPKGv1 Data Base Implemenation - - The DPKGv1 database is typically stored in /var/lib/dpkg/. For - DPKGv1 the 'meta' information is the contents of the .deb control.tar.gz - member prepended by the package name. The meta information is unpacked - in its temporary directory and then migrated into the main list dir - at a checkpoint. - - Journaling is providing by syncronized file writes to the updates sub - directory. - - ##################################################################### */ - /*}}}*/ -#ifndef PKGLIB_DPKGDB_H -#define PKGLIB_DPKGDB_H - - -#include - -#include - -class DynamicMMap; -class OpProgress; - -class debDpkgDB : public pkgDataBase -{ - protected: - - std::string AdminDir; - DynamicMMap *CacheMap; - DynamicMMap *FileMap; - unsigned long DiverInode; - signed long DiverTime; - - virtual bool InitMetaTmp(std::string &Dir); - bool ReadFList(OpProgress &Progress); - bool ReadDiversions(); - bool ReadConfFiles(); - - public: - - virtual bool ReadyFileList(OpProgress &Progress); - virtual bool ReadyPkgCache(OpProgress &Progress); - virtual bool LoadChanges(); - - debDpkgDB(); - virtual ~debDpkgDB(); -}; - -#endif diff --git a/apt-inst/makefile b/apt-inst/makefile index 1b9cc2676..c716b8c96 100644 --- a/apt-inst/makefile +++ b/apt-inst/makefile @@ -23,12 +23,11 @@ APT_DOMAIN:=libapt-inst$(MAJOR) SOURCE = contrib/extracttar.cc contrib/arfile.cc # Source code for the main library -SOURCE+= filelist.cc database.cc dirstream.cc extract.cc \ - deb/dpkgdb.cc deb/debfile.cc +SOURCE+= filelist.cc dirstream.cc extract.cc deb/debfile.cc # Public header files -HEADERS = extracttar.h arfile.h filelist.h database.h extract.h \ - dpkgdb.h dirstream.h debfile.h +HEADERS = extracttar.h arfile.h filelist.h extract.h \ + dirstream.h debfile.h HEADERS := $(addprefix apt-pkg/,$(HEADERS)) include $(LIBRARY_H) diff --git a/debian/changelog b/debian/changelog index e1e023c7d..127152b09 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,12 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low causes timestamp changes for the mo files which therefore can't be refcounted by dpkg for your M-A: same packages (Closes: #659333, LP: #924628) + * apt-inst/database.{cc,h}, apt-inst/deb/dpkgdb.{cc,h}: + - drop instead of fix as it is only needed if you want to reimplement dpkg + and comes straight from the beginning of last decade (Closes: #663372) + * apt-inst/deb/debfile.cc: + - {Extract,Merge}Control() is another instance of "lets reimplement dpkg" + so shot of this code before someone ends up using this… * debian/libapt-pkg4.12: - update symbols file * debian/apt-utils.install: @@ -46,7 +52,7 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low * doc/apt-get.8.xml: - typofix: respect → respecting, thanks Mike Erickson! (Closes: #664833) - -- David Kalnischkies Thu, 22 Mar 2012 10:33:17 +0100 + -- David Kalnischkies Thu, 22 Mar 2012 12:53:34 +0100 apt (0.8.16~exp13) experimental; urgency=low diff --git a/debian/libapt-inst1.4.symbols b/debian/libapt-inst1.4.symbols index bba2cb653..cade0990d 100644 --- a/debian/libapt-inst1.4.symbols +++ b/debian/libapt-inst1.4.symbols @@ -7,11 +7,9 @@ libapt-inst.so.1.4 libapt-inst1.4 #MINVER# (c++)"ExtractTar::~ExtractTar()@Base" 0.8.0 (c++)"debDebFile::GotoMember(char const*)@Base" 0.8.0 (c++)"debDebFile::CheckMember(char const*)@Base" 0.8.0 - (c++)"debDebFile::MergeControl(pkgDataBase&)@Base" 0.8.0 (c++)"debDebFile::ControlExtract::DoItem(pkgDirStream::Item&, int&)@Base" 0.8.0 (c++)"debDebFile::ControlExtract::~ControlExtract()@Base" 0.8.0 (c++)"debDebFile::ExtractArchive(pkgDirStream&)@Base" 0.8.0 - (c++)"debDebFile::ExtractControl(pkgDataBase&)@Base" 0.8.0 (c++)"debDebFile::MemControlExtract::TakeControl(void const*, unsigned long)@Base" 0.8.0 (c++)"debDebFile::MemControlExtract::Read(debDebFile&)@Base" 0.8.0 (c++)"debDebFile::MemControlExtract::DoItem(pkgDirStream::Item&, int&)@Base" 0.8.0 @@ -39,16 +37,11 @@ libapt-inst.so.1.4 libapt-inst1.4 #MINVER# (c++)"pkgFLCache::HashNode(pkgFLCache::NodeIterator const&)@Base" 0.8.0 (c++)"pkgFLCache::PrintTree(unsigned int, unsigned long)@Base" 0.8.0 (c++)"pkgFLCache::pkgFLCache(DynamicMMap&)@Base" 0.8.0 - (c++)"pkgDataBase::GetMetaTmp(std::basic_string, std::allocator >&)@Base" 0.8.0 - (c++)"pkgDataBase::~pkgDataBase()@Base" 0.8.0 (c++)"pkgDirStream::FinishedFile(pkgDirStream::Item&, int)@Base" 0.8.0 (c++)"pkgDirStream::Fail(pkgDirStream::Item&, int)@Base" 0.8.0 (c++)"pkgDirStream::DoItem(pkgDirStream::Item&, int&)@Base" 0.8.0 (c++)"pkgDirStream::Process(pkgDirStream::Item&, unsigned char const*, unsigned long, unsigned long)@Base" 0.8.0 (c++)"pkgDirStream::~pkgDirStream()@Base" 0.8.0 - (c++|optional)"debListParser::~debListParser()@Base" 0.8.0 - (c++|optional)"pkgCacheGenerator::ListParser::CollectFileProvides(pkgCache&, pkgCache::VerIterator&)@Base" 0.8.0 - (c++|optional)"pkgCacheGenerator::ListParser::~ListParser()@Base" 0.8.0 (c++|optional)"pkgCache::DepIterator::operator++(int)@Base" 0.8.0 (c++|optional)"pkgCache::DepIterator::operator++()@Base" 0.8.0 (c++|optional)"pkgCache::VerIterator::operator++(int)@Base" 0.8.0 @@ -56,15 +49,6 @@ libapt-inst.so.1.4 libapt-inst1.4 #MINVER# (c++)"ARArchive::LoadHeaders()@Base" 0.8.0 (c++)"ARArchive::ARArchive(FileFd&)@Base" 0.8.0 (c++)"ARArchive::~ARArchive()@Base" 0.8.0 - (c++)"debDpkgDB::InitMetaTmp(std::basic_string, std::allocator >&)@Base" 0.8.0 - (c++)"debDpkgDB::LoadChanges()@Base" 0.8.0 - (c++)"debDpkgDB::ReadConfFiles()@Base" 0.8.0 - (c++)"debDpkgDB::ReadyFileList(OpProgress&)@Base" 0.8.0 - (c++)"debDpkgDB::ReadyPkgCache(OpProgress&)@Base" 0.8.0 - (c++)"debDpkgDB::ReadDiversions()@Base" 0.8.0 - (c++)"debDpkgDB::ReadFList(OpProgress&)@Base" 0.8.0 - (c++)"debDpkgDB::debDpkgDB()@Base" 0.8.0 - (c++)"debDpkgDB::~debDpkgDB()@Base" 0.8.0 (c++)"pkgFLCache::NodeIterator::RealPackage() const@Base" 0.8.0 (c++)"pkgFLCache::Header::CheckSizes(pkgFLCache::Header&) const@Base" 0.8.0 (c++|optional)"pkgCache::DepIterator::OwnerPointer() const@Base" 0.8.0 @@ -72,42 +56,30 @@ libapt-inst.so.1.4 libapt-inst1.4 #MINVER# (c++)"ARArchive::FindMember(char const*) const@Base" 0.8.0 (c++)"typeinfo for ExtractTar@Base" 0.8.0 (c++)"typeinfo for pkgExtract@Base" 0.8.0 - (c++)"typeinfo for pkgDataBase@Base" 0.8.0 (c++)"typeinfo for pkgDirStream@Base" 0.8.0 - (c++)"typeinfo for debDpkgDB@Base" 0.8.0 (c++)"typeinfo for debDebFile::ControlExtract@Base" 0.8.0 (c++)"typeinfo for debDebFile::MemControlExtract@Base" 0.8.0 - (c++|optional)"typeinfo for pkgCacheGenerator::ListParser@Base" 0.8.0 (c++|optional)"typeinfo for pkgCache::DepIterator@Base" 0.8.0 (c++|optional)"typeinfo for pkgCache::VerIterator@Base" 0.8.0 (c++|optional)"typeinfo for pkgCache::Iterator@Base" 0.8.0 - (c++|optional)"typeinfo for pkgCache::Iterator@Base" 0.8.0 (c++|optional)"typeinfo for pkgCache::Iterator@Base" 0.8.0 (c++)"typeinfo name for ExtractTar@Base" 0.8.0 (c++)"typeinfo name for pkgExtract@Base" 0.8.0 - (c++)"typeinfo name for pkgDataBase@Base" 0.8.0 (c++)"typeinfo name for pkgDirStream@Base" 0.8.0 - (c++)"typeinfo name for debDpkgDB@Base" 0.8.0 (c++)"typeinfo name for debDebFile::ControlExtract@Base" 0.8.0 (c++)"typeinfo name for debDebFile::MemControlExtract@Base" 0.8.0 - (c++|optional)"typeinfo name for pkgCacheGenerator::ListParser@Base" 0.8.0 (c++|optional)"typeinfo name for pkgCache::DepIterator@Base" 0.8.0 (c++|optional)"typeinfo name for pkgCache::VerIterator@Base" 0.8.0 (c++|optional)"typeinfo name for pkgCache::Iterator@Base" 0.8.0 - (c++|optional)"typeinfo name for pkgCache::Iterator@Base" 0.8.0 (c++|optional)"typeinfo name for pkgCache::Iterator@Base" 0.8.0 (c++)"vtable for ExtractTar@Base" 0.8.0 (c++)"vtable for pkgExtract@Base" 0.8.0 - (c++)"vtable for pkgDataBase@Base" 0.8.0 (c++)"vtable for pkgDirStream@Base" 0.8.0 - (c++)"vtable for debDpkgDB@Base" 0.8.0 (c++)"vtable for debDebFile::ControlExtract@Base" 0.8.0 (c++)"vtable for debDebFile::MemControlExtract@Base" 0.8.0 - (c++|optional)"vtable for pkgCacheGenerator::ListParser@Base" 0.8.0 (c++|optional)"vtable for pkgCache::DepIterator@Base" 0.8.0 (c++|optional)"vtable for pkgCache::VerIterator@Base" 0.8.0 (c++|optional)"vtable for pkgCache::Iterator@Base" 0.8.0 - (c++|optional)"vtable for pkgCache::Iterator@Base" 0.8.0 (c++|optional)"vtable for pkgCache::Iterator@Base" 0.8.0 ### gcc-4.4 specific # (c++|regex|optional=std)"^char\* std::[^ ]+<.+ >::_.+@Base$" 0.8.0 diff --git a/test/interactive-helper/makefile b/test/interactive-helper/makefile index b96139fda..10d1e44ec 100644 --- a/test/interactive-helper/makefile +++ b/test/interactive-helper/makefile @@ -11,28 +11,24 @@ SLIBS = SOURCE = mthdcat.cc include $(PROGRAM_H) -# Version compare tester -PROGRAM=testextract -SLIBS = -lapt-pkg -lapt-inst -LIB_MAKES = apt-pkg/makefile apt-inst/makefile -SOURCE = testextract.cc -include $(PROGRAM_H) - # Program for testing the tar/deb extractor PROGRAM=testdeb SLIBS = -lapt-pkg -lapt-inst +LIB_MAKES = apt-pkg/makefile apt-inst/makefile SOURCE = testdeb.cc include $(PROGRAM_H) # Program for testing tar extraction PROGRAM=extract-control SLIBS = -lapt-pkg -lapt-inst +LIB_MAKES = apt-pkg/makefile apt-inst/makefile SOURCE = extract-control.cc include $(PROGRAM_H) # Program for testing udevcdrom PROGRAM=test_udevcdrom -SLIBS = -lapt-pkg +SLIBS = -lapt-pkg +LIB_MAKES = apt-pkg/makefile SOURCE = test_udevcdrom.cc include $(PROGRAM_H) diff --git a/test/interactive-helper/testextract.cc b/test/interactive-helper/testextract.cc deleted file mode 100644 index 8dfe68fc9..000000000 --- a/test/interactive-helper/testextract.cc +++ /dev/null @@ -1,104 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -using namespace std; - -bool Go(int argc,char *argv[]) -{ - // Init the database - debDpkgDB Db; - { - OpTextProgress Prog; - - if (Db.ReadyPkgCache(Prog) == false) - return false; - Prog.Done(); - - if (Db.ReadyFileList(Prog) == false) - return false; - } - - for (int I = 1; I < argc; I++) - { - const char *Fake = 0; - for (unsigned J = 0; argv[I][J] != 0; J++) - { - if (argv[I][J] != ',') - continue; - Fake = argv[I] + J + 1; - argv[I][J] = 0; - } - - FileFd F(argv[I],FileFd::ReadOnly); - debDebFile Deb(F); - - if (_error->PendingError() == true) - return false; - - if (Deb.ExtractControl(Db) == false) - return false; - cout << argv[I] << endl; - - pkgCache::VerIterator Ver = Deb.MergeControl(Db); - if (Ver.end() == true) - return false; - - cout << Ver.ParentPkg().Name() << ' ' << Ver.VerStr() << endl; - - pkgExtract Extract(Db.GetFLCache(),Ver); - - if (Fake != 0) - { - pkgExtract::Item Itm; - memset(&Itm,0,sizeof(Itm)); - FILE *F = fopen(Fake,"r"); - while (feof(F) == 0) - { - char Line[300]; - if (fgets(Line,sizeof(Line),F) == NULL) - return false; - Itm.Name = _strstrip(Line); - Itm.Type = pkgDirStream::Item::File; - if (Line[strlen(Line)-1] == '/') - Itm.Type = pkgDirStream::Item::Directory; - - int Fd; - if (Extract.DoItem(Itm,Fd) == false) { - fclose(F); - return false; - } - } - fclose(F); - } - else - if (Deb.ExtractArchive(Extract) == false) - return false; - } - return true; -} - -int main(int argc,char *argv[]) -{ - pkgInitConfig(*_config); - pkgInitSystem(*_config,_system); - _config->Set("Dir::State::status","/tmp/testing/status"); - - Go(argc,argv); - - if (_error->PendingError() == true) - { - _error->DumpErrors(); - return 0; - } -} -- cgit v1.2.3 From b058a788c4f976ea98e20b853853929f47d4bc3e Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 22 Mar 2012 13:42:59 +0100 Subject: use the variables as the rest of the tests to avoid escapes in the output --- test/libapt/run-tests | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/libapt/run-tests b/test/libapt/run-tests index d4341412d..4ea9a916d 100755 --- a/test/libapt/run-tests +++ b/test/libapt/run-tests @@ -68,8 +68,8 @@ do "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-ast_DE" elif [ $name = "HashSums${EXT}" ]; then TMP="$(readlink -f "./${0}")" - echo -n "Testing with \033[1;35m${name}\033[0m ... " - LD_LIBRARY_PATH=${LDPATH} ${testapp} $TMP $(md5sum $TMP | cut -d' ' -f 1) $(sha1sum $TMP | cut -d' ' -f 1) $(sha256sum $TMP | cut -d' ' -f 1) $(sha512sum $TMP | cut -d' ' -f 1) && echo "\033[1;32mOKAY\033[0m" || echo "\033[1;31mFAILED\033[0m" + echo -n "Testing with ${NAME} " + LD_LIBRARY_PATH=${LDPATH} ${testapp} $TMP $(md5sum $TMP | cut -d' ' -f 1) $(sha1sum $TMP | cut -d' ' -f 1) $(sha256sum $TMP | cut -d' ' -f 1) $(sha512sum $TMP | cut -d' ' -f 1) && echo "$TESTOKAY" || echo "$TESTFAIL" continue elif [ $name = "CompareVersion${EXT}" ]; then tmppath="${DIR}/versions.lst" -- cgit v1.2.3 From 3a496cd2c06bf00d8386ff9c56e2fd26eb61ec5a Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 22 Mar 2012 19:29:53 +0100 Subject: * debian/rules: - do not sed in configure.in to set the version-number * prepare-release: - add as a small script to lazy check and prepare releases --- .bzr-builddeb/default.conf | 4 ++++ debian/changelog | 6 +++++- debian/rules | 14 -------------- prepare-release | 37 +++++++++++++++++++++++++++++++++++++ 4 files changed, 46 insertions(+), 15 deletions(-) create mode 100755 prepare-release diff --git a/.bzr-builddeb/default.conf b/.bzr-builddeb/default.conf index 9c55498ce..c33445b56 100644 --- a/.bzr-builddeb/default.conf +++ b/.bzr-builddeb/default.conf @@ -1,2 +1,6 @@ [BUILDDEB] native = true + +[HOOKS] +pre-export = ./prepare-release pre-export +post-build = ./prepare-release post-build diff --git a/debian/changelog b/debian/changelog index 72ecc2f27..6eee11b41 100644 --- a/debian/changelog +++ b/debian/changelog @@ -51,8 +51,12 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low - bump Standards-Version to 3.9.3 (no changes needed) * doc/apt-get.8.xml: - typofix: respect → respecting, thanks Mike Erickson! (Closes: #664833) + * debian/rules: + - do not sed in configure.in to set the version-number + * prepare-release: + - add as a small script to lazy check and prepare releases - -- David Kalnischkies Thu, 22 Mar 2012 12:53:34 +0100 + -- David Kalnischkies Thu, 22 Mar 2012 19:23:57 +0100 apt (0.8.16~exp13) experimental; urgency=low diff --git a/debian/rules b/debian/rules index b819460c1..4b9510663 100755 --- a/debian/rules +++ b/debian/rules @@ -34,9 +34,6 @@ build: PKG=apt DEB_BUILD_PROG:=debuild --preserve-envvar PATH --preserve-envvar CCACHE_DIR -us -uc $(DEB_BUILD_PROG_OPTS) -APT_DEBVER=$(shell dpkg-parsechangelog |sed -n -e '/^Version:/s/^Version: //p' | sed -e 's/\+.*$$//') -APT_CONFVER=$(shell sed -n -e 's/^PACKAGE_VERSION="\(.*\)"/\1/p' configure.in) -APT_CVSTAG=$(shell echo "$(APT_DEBVER)" | sed -e 's/^/v/' -e 's/\./_/g') # Determine the build directory to use BASE=. @@ -53,17 +50,6 @@ ifeq ($(words $(BLD)),0) override BLD := ./build endif -# Rebuild configure.in to have the correct version from the change log -ifneq ($(APT_DEBVER),$(APT_CONFVER)) -ifneq ($(APT_DEBVER),) -.PHONY: configure.in -configure.in: - sed -e 's/$(APT_CONFVER)/$(APT_DEBVER)/' $@ > $@.$$$$ && mv $@.$$$$ $@ -endif -else -configure.in: -endif - # APT Programs in apt-utils APT_UTILS=ftparchive sortpkgs extracttemplates internal-solver diff --git a/prepare-release b/prepare-release new file mode 100755 index 000000000..e02157b24 --- /dev/null +++ b/prepare-release @@ -0,0 +1,37 @@ +#!/bin/sh + +VERSION=$(dpkg-parsechangelog | sed -n -e '/^Version:/s/^Version: //p') +DISTRIBUTION=$(dpkg-parsechangelog | sed -n -e '/^Distribution:/s/^Distribution: //p') + +if [ "$1" = 'pre-export' ]; then + if [ "$DISTRIBUTION" = 'sid' ]; then + echo >&2 '»sid« is not a valid distribution. Replace it with »unstable« for you' + sed -i -e 's/) sid; urgency=/) unstable; urgency=/' debian/changelog + DISTRIBUTION='unstable' + elif [ "$DISTRIBUTION" = 'UNRELEASED' ]; then + echo >&2 'WARNING: Remember to change to a valid distribution for release' + VERSION="$VERSION~$(date +%Y%m%d)" + fi + + if [ "$(date +%Y-%m-%d)" != "$(grep --max-count=1 '^"POT-Creation-Date: .*\n"$' po/apt-all.pot | cut -d' ' -f 2)" -o \ + "$(date +%Y-%m-%d)" != "$(grep --max-count=1 '^"POT-Creation-Date: .*\n"$' doc/po/apt-doc.pot | cut -d' ' -f 2)" ]; then + echo >&2 'POT files are not up-to-date. Execute »make update-po« for you…' + make update-po + fi + + sed -i -e "s/^PACKAGE_VERSION=\".*\"$/PACKAGE_VERSION=\"${VERSION}\"/" configure.in +elif [ "$1" = 'post-build' ]; then + if [ "$DISTRIBUTION" != "UNRELEASED" ]; then + echo >&2 "REMEMBER: Tag this release with »bzr tag ${VERSION}« if you are satisfied" + else + echo >&2 'REMEMBER: Change to a valid distribution before release' + fi +else + echo >&1 "Usage:\t$0 pre-export +\t$0 post-build + +If you use »bzr builddeb« you can leave this script alone as it will +be run at the right places auto-magically. Otherwise you should use +»pre-export« to update po and pot files as well as version numbering. +»post-build« can be used to run some more or less useful checks later on." +fi -- cgit v1.2.3 From 136a6c13c8df7c403dd5284ff8bda20c8a84b614 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 22 Mar 2012 22:18:05 +0100 Subject: make these retry_write methods static so that they don't end up as symbols --- apt-pkg/deb/dpkgpm.cc | 3 ++- methods/rred.cc | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 63c5a6380..1a21c03eb 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -163,7 +163,8 @@ pkgCache::VerIterator FindNowVersion(const pkgCache::PkgIterator &Pkg) return Ver; } /*}}}*/ -ssize_t retry_write(int fd, const void *buf, size_t count) +static ssize_t +retry_write(int fd, const void *buf, size_t count) { int Res; ssize_t i = 0; diff --git a/methods/rred.cc b/methods/rred.cc index 38554464d..78d1595d4 100644 --- a/methods/rred.cc +++ b/methods/rred.cc @@ -227,7 +227,7 @@ struct EdCommand { char type; }; #define IOV_COUNT 1024 /* Don't really want IOV_MAX since it can be arbitrarily large */ -ssize_t retry_writev(int fd, const struct iovec *iov, int iovcnt) { +static ssize_t retry_writev(int fd, const struct iovec *iov, int iovcnt) { ssize_t Res; errno = 0; ssize_t i = 0; -- cgit v1.2.3 From 45b4187829a147c5b9c9594d20407edbdaae7e91 Mon Sep 17 00:00:00 2001 From: Bogdan Purcareata Date: Wed, 4 Apr 2012 22:43:53 +0200 Subject: [ Bogdan Purcareata ] * doc/apt-get.8.xml: - add 'download' to the usage line (Closes: #649340) --- debian/changelog | 6 +++++- doc/apt-get.8.xml | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 6eee11b41..57d4e8679 100644 --- a/debian/changelog +++ b/debian/changelog @@ -56,7 +56,11 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low * prepare-release: - add as a small script to lazy check and prepare releases - -- David Kalnischkies Thu, 22 Mar 2012 19:23:57 +0100 + [ Bogdan Purcareata ] + * doc/apt-get.8.xml: + - add 'download' to the usage line (Closes: #649340) + + -- David Kalnischkies Wed, 04 Apr 2012 22:41:13 +0200 apt (0.8.16~exp13) experimental; urgency=low diff --git a/doc/apt-get.8.xml b/doc/apt-get.8.xml index ecd753f2d..956259ef4 100644 --- a/doc/apt-get.8.xml +++ b/doc/apt-get.8.xml @@ -99,6 +99,7 @@ build-dep pkg check + download pkg clean autoclean autoremove -- cgit v1.2.3 From fd4bd9029ee0fe03c18187cd11ae4576c5e47379 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 4 Apr 2012 23:04:57 +0200 Subject: apt-verbatim.ent is an INCLUDE file as well --- doc/makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/makefile b/doc/makefile index 0817821b6..df2ddb25f 100644 --- a/doc/makefile +++ b/doc/makefile @@ -15,7 +15,7 @@ include $(DEBIANDOC_H) ifdef XSLTPROC # generate a list of accepted man page translations SOURCE = $(patsubst %.xml,%,$(wildcard *.?.xml)) -INCLUDES = apt.ent +INCLUDES = apt.ent apt-verbatim.ent STYLESHEET=manpage-style.xsl LOCAL := manpage-$(firstword $(SOURCE)) -- cgit v1.2.3 From 6e8b4572fb7d3e575821fe8799ded1c865cd866f Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 5 Apr 2012 11:54:36 +0200 Subject: * doc/*: - move the command synopsis out of each manpage into apt-verbatim.ent as they are a hell to translate and just single out the parameters which can be translated to apt.ent --- debian/changelog | 6 +- doc/apt-cache.8.xml | 30 +------- doc/apt-cdrom.8.xml | 15 +--- doc/apt-config.8.xml | 16 +---- doc/apt-extracttemplates.1.xml | 12 +--- doc/apt-ftparchive.1.xml | 25 +------ doc/apt-get.8.xml | 88 +---------------------- doc/apt-key.8.xml | 24 +++---- doc/apt-mark.8.xml | 22 +----- doc/apt-sortpkgs.1.xml | 13 +--- doc/apt-verbatim.ent | 155 +++++++++++++++++++++++++++++++++++++++++ doc/apt.ent | 43 ++++++++++++ 12 files changed, 226 insertions(+), 223 deletions(-) diff --git a/debian/changelog b/debian/changelog index 57d4e8679..d6913b003 100644 --- a/debian/changelog +++ b/debian/changelog @@ -55,12 +55,16 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low - do not sed in configure.in to set the version-number * prepare-release: - add as a small script to lazy check and prepare releases + * doc/*: + - move the command synopsis out of each manpage into apt-verbatim.ent + as they are a hell to translate and just single out the parameters + which can be translated to apt.ent [ Bogdan Purcareata ] * doc/apt-get.8.xml: - add 'download' to the usage line (Closes: #649340) - -- David Kalnischkies Wed, 04 Apr 2012 22:41:13 +0200 + -- David Kalnischkies Thu, 05 Apr 2012 11:22:34 +0200 apt (0.8.16~exp13) experimental; urgency=low diff --git a/doc/apt-cache.8.xml b/doc/apt-cache.8.xml index 1393de015..42d700c82 100644 --- a/doc/apt-cache.8.xml +++ b/doc/apt-cache.8.xml @@ -33,34 +33,8 @@ query the APT cache - - - - apt-cache - - - - - gencaches - showpkg pkg - showsrc pkg - stats - dump - dumpavail - unmet - search regex - show pkg - depends pkg - rdepends pkg - pkgnames prefix - dotty pkg - xvcg pkg - policy pkgs - madison pkgs - - - - + &synopsis-command-apt-cache; + Description apt-cache performs a variety of operations on APT's package cache. apt-cache does not manipulate the state of the system diff --git a/doc/apt-cdrom.8.xml b/doc/apt-cdrom.8.xml index 53ab392ab..94fc6fd8b 100644 --- a/doc/apt-cdrom.8.xml +++ b/doc/apt-cdrom.8.xml @@ -32,20 +32,7 @@ APT CDROM management utility - - - - apt-cdrom - - - - - - add - ident - - - + &synopsis-command-apt-cdrom; Description apt-cdrom is used to add a new CDROM to APTs list diff --git a/doc/apt-config.8.xml b/doc/apt-config.8.xml index 862a034a1..b6fcf4bf2 100644 --- a/doc/apt-config.8.xml +++ b/doc/apt-config.8.xml @@ -33,20 +33,8 @@ APT Configuration Query program - - - - apt-config - - - - - shell - dump - - - - + &synopsis-command-apt-config; + Description apt-config is an internal program used by various portions of the APT suite to provide consistent configurability. It accesses diff --git a/doc/apt-extracttemplates.1.xml b/doc/apt-extracttemplates.1.xml index af4cacfce..8f28f8c54 100644 --- a/doc/apt-extracttemplates.1.xml +++ b/doc/apt-extracttemplates.1.xml @@ -33,16 +33,8 @@ Utility to extract DebConf config and templates from Debian packages - - - - apt-extracttemplates - - - file - - - + &synopsis-command-apt-extracttemplates; + Description apt-extracttemplates will take one or more Debian package files as input and write out (to a temporary directory) all associated config diff --git a/doc/apt-ftparchive.1.xml b/doc/apt-ftparchive.1.xml index b08ebe80f..93b109af1 100644 --- a/doc/apt-ftparchive.1.xml +++ b/doc/apt-ftparchive.1.xml @@ -33,29 +33,8 @@ Utility to generate index files - - - - apt-ftparchive - - - - - - - - - - packagespathoverridepathprefix - sourcespathoverridepathprefix - contents path - release path - generate config-file section - clean config-file - - - - + &synopsis-command-apt-ftparchive; + Description apt-ftparchive is the command line tool that generates the index files that APT uses to access a distribution source. The index files should diff --git a/doc/apt-get.8.xml b/doc/apt-get.8.xml index 956259ef4..65929e733 100644 --- a/doc/apt-get.8.xml +++ b/doc/apt-get.8.xml @@ -33,92 +33,8 @@ APT package handling utility -- command-line interface - - - - apt-get - - - - - - - - - - - target_release - - - - - - default_architecture - - - - - - update - upgrade - dselect-upgrade - dist-upgrade - install - pkg - - - - =pkg_version_number - - - /target_release - - - - - - remove pkg - purge pkg - source - pkg - - - - =pkg_version_number - - - /target_release - - - - - - build-dep pkg - check - download pkg - clean - autoclean - autoremove - - - -v - --version - - - - - -h - --help - - - - - - + &synopsis-command-apt-get; + Description apt-get is the command-line tool for handling packages, and may be considered the user's "back-end" to other tools using the APT diff --git a/doc/apt-key.8.xml b/doc/apt-key.8.xml index cae2b00a0..3748b5e17 100644 --- a/doc/apt-key.8.xml +++ b/doc/apt-key.8.xml @@ -25,15 +25,7 @@ APT key management utility - - - - apt-key - - command - - - + &synopsis-command-apt-key; Description @@ -45,19 +37,19 @@ Commands - add filename + add &synopsis-param-filename; Add a new key to the list of trusted keys. The key is read - from filename, or standard input if - filename is -. + from &synopsis-param-filename;, or standard input if + &synopsis-param-filename; is -. - del keyid + del &synopsis-param-keyid; @@ -68,11 +60,11 @@ - export keyid + export &synopsis-param-keyid; - Output the key keyid to standard output. + Output the key &synopsis-param-keyid; to standard output. @@ -161,7 +153,7 @@ Options Note that options need to be defined before the commands described in the previous section. - --keyring filename + --keyring &synopsis-param-filename; With this option it is possible to specify a specific keyring file the command should operate on. The default is that a command is executed on the trusted.gpg file as well as on all parts in the diff --git a/doc/apt-mark.8.xml b/doc/apt-mark.8.xml index 01c8665dd..d62731124 100644 --- a/doc/apt-mark.8.xml +++ b/doc/apt-mark.8.xml @@ -33,26 +33,8 @@ mark/unmark a package as being automatically-installed - - - - apt-mark - - - - - - auto - manual - showauto - showmanual - - package - - - - - + &synopsis-command-apt-mark; + Description apt-mark will change whether a package has been marked as being automatically installed. diff --git a/doc/apt-sortpkgs.1.xml b/doc/apt-sortpkgs.1.xml index f2bd3c3ea..c1d1aa1e1 100644 --- a/doc/apt-sortpkgs.1.xml +++ b/doc/apt-sortpkgs.1.xml @@ -33,17 +33,8 @@ Utility to sort package index files - - - - apt-sortpkgs - - - - file - - - + &synopsis-command-apt-sortpkgs; + Description apt-sortpkgs will take an index file (Source index or Package index) and sort the records so that they are ordered by the package name. diff --git a/doc/apt-verbatim.ent b/doc/apt-verbatim.ent index 14cd70e89..ad4554e2f 100644 --- a/doc/apt-verbatim.ent +++ b/doc/apt-verbatim.ent @@ -192,3 +192,158 @@ + + + +"> +"> +"> +"> +&synopsis-pkg; + =&synopsis-pkg-ver-number; + /&synopsis-target-release; +"> +&synopsis-pkg;"> +&synopsis-filename;"> +-v--version + -h--help"> + + apt-get + + &synopsis-arg-option; + &synopsis-arg-config; + &synopsis-arg-target-release; + &synopsis-arg-architecture; + + update + upgrade + dselect-upgrade + dist-upgrade + install &synopsis-arg-pkgver; + remove &synopsis-arg-pkg; + purge &synopsis-arg-pkg; + source &synopsis-arg-pkgver; + build-dep &synopsis-arg-pkgver; + download &synopsis-arg-pkgver; + check + clean + autoclean + autoremove + &synopsis-help; + +"> + + apt-cache + + &synopsis-arg-option; + &synopsis-arg-config; + + gencaches + showpkg &synopsis-arg-pkg; + showsrc &synopsis-arg-pkg; + stats + dump + dumpavail + unmet + search &synopsis-regex; + show &synopsis-arg-pkgver; + depends &synopsis-arg-pkgver; + rdepends &synopsis-arg-pkgver; + pkgnames &synopsis-prefix; + dotty &synopsis-arg-pkgver; + xvcg &synopsis-arg-pkgver; + policy &synopsis-arg-pkg; + madison &synopsis-arg-pkg; + &synopsis-help; + +"> + + apt-cdrom + + + &synopsis-arg-option; + &synopsis-arg-config; + + add + ident + &synopsis-help; + +"> + + apt-config + &synopsis-arg-option; + &synopsis-arg-config; + + shell + dump + &synopsis-help; + +"> + + apt-extracttemplates + + &synopsis-param-filename; + &synopsis-help; +"> +&synopsis-path;&synopsis-override;&synopsis-pathprefix;"> + + apt-ftparchive + + + + + + + &synopsis-arg-option; + &synopsis-arg-config; + + packages &synopsis-arg-ftparchive; + sources &synopsis-arg-ftparchive; + contents &synopsis-path; + release &synopsis-path; + generate &synopsis-config-file; &synopsis-section; + clean &synopsis-config-file; + &synopsis-help; + +"> +&synopsis-keyid;"> + + apt-key + + + add &synopsis-param-filename; + del &synopsis-param-keyid; + export &synopsis-param-keyid; + exportall + list + finger + adv + update + net-update + &synopsis-help; + +"> + + apt-mark + + + + + auto + manual + showauto + showmanual + + &synopsis-arg-pkg; + + &synopsis-help; + +"> + + apt-sortpkgs + + &synopsis-arg-option; + &synopsis-arg-config; + &synopsis-param-filename; + &synopsis-help; +"> diff --git a/doc/apt.ent b/doc/apt.ent index fc745989f..e48087fa7 100644 --- a/doc/apt.ent +++ b/doc/apt.ent @@ -208,3 +208,46 @@ This is done on purpose, to avoid losing content when the translation is lagging behind the original content. "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3 From de3786516df8b0fec2f759a16bbbc4b8605c1856 Mon Sep 17 00:00:00 2001 From: Bogdan Purcareata Date: Thu, 5 Apr 2012 12:03:37 +0200 Subject: * cmdline/apt-get.cc: - distinguish information about 'apt-get autoremove' based on the number of auto-removed packages both before and after the list of packages (Closes: #665833) --- cmdline/apt-get.cc | 2 +- debian/changelog | 6 +++++- test/integration/test-bug-604222-new-and-autoremove | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index ac1566f30..52618ae28 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1826,7 +1826,7 @@ bool DoAutomaticRemove(CacheFile &Cache) else ioprintf(c1out, P_("%lu package was automatically installed and is no longer required.\n", "%lu packages were automatically installed and are no longer required.\n", autoRemoveCount), autoRemoveCount); - c1out << _("Use 'apt-get autoremove' to remove them.") << std::endl; + c1out << P_("Use 'apt-get autoremove' to remove it.", "Use 'apt-get autoremove' to remove them.", autoRemoveCount) << std::endl; } return true; } diff --git a/debian/changelog b/debian/changelog index d6913b003..fe92378dd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -63,8 +63,12 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low [ Bogdan Purcareata ] * doc/apt-get.8.xml: - add 'download' to the usage line (Closes: #649340) + * cmdline/apt-get.cc: + - distinguish information about 'apt-get autoremove' based on the + number of auto-removed packages both before and after the list + of packages (Closes: #665833) - -- David Kalnischkies Thu, 05 Apr 2012 11:22:34 +0200 + -- David Kalnischkies Thu, 05 Apr 2012 11:55:30 +0200 apt (0.8.16~exp13) experimental; urgency=low diff --git a/test/integration/test-bug-604222-new-and-autoremove b/test/integration/test-bug-604222-new-and-autoremove index 2875d547a..5820fb0dc 100755 --- a/test/integration/test-bug-604222-new-and-autoremove +++ b/test/integration/test-bug-604222-new-and-autoremove @@ -16,7 +16,7 @@ Building dependency tree... Reading state information... The following package was automatically installed and is no longer required: libvtk5.4 -Use 'apt-get autoremove' to remove them. +Use 'apt-get autoremove' to remove it. The following NEW packages will be installed: libavcodec52 0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded. @@ -28,7 +28,7 @@ Building dependency tree... Reading state information... The following package was automatically installed and is no longer required: libvtk5.4 -Use 'apt-get autoremove' to remove them. +Use 'apt-get autoremove' to remove it. The following extra packages will be installed: libavcodec52 libopenal-dev libvtk5.4 The following NEW packages will be installed: -- cgit v1.2.3 From bacc49dfe278f16859b43d159e7042e9fc22d603 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 5 Apr 2012 14:54:45 +0200 Subject: db2 isn't used for ages now, so complain about missing libdb instead --- ftparchive/makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ftparchive/makefile b/ftparchive/makefile index 362c29198..c53ecff72 100644 --- a/ftparchive/makefile +++ b/ftparchive/makefile @@ -16,6 +16,6 @@ SOURCE = apt-ftparchive.cc cachedb.cc writer.cc contents.cc override.cc \ include $(PROGRAM_H) else PROGRAM=apt-ftparchive -MESSAGE="Must have db2 to build apt-ftparchive" +MESSAGE="Must have libdb to build apt-ftparchive" include $(FAIL_H) endif # ifdef BDBLIB -- cgit v1.2.3 From 7efb8c8ef10c1d0b9479c24a6a5b4e96fc0e6286 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 5 Apr 2012 15:18:03 +0200 Subject: detect zlib correctly. We still don't allow to build without it to remain compatible with users accessing it directly, but this prepares for a drop of this strict requirement in the future --- apt-pkg/contrib/fileutl.cc | 32 +++++++++++++------------------- buildlib/config.h.in | 3 +++ configure.in | 2 +- 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 1808489d7..691657cb4 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -44,14 +44,8 @@ #include #include -// FIXME: Compressor Fds have some speed disadvantages and are a bit buggy currently, -// so while the current implementation satisfies the testcases it is not a real option -// to disable it for now -#define APT_USE_ZLIB 1 -#if APT_USE_ZLIB -#include -#else -#pragma message "Usage of zlib is DISABLED!" +#ifdef HAVE_ZLIB + #include #endif #ifdef WORDS_BIGENDIAN @@ -65,7 +59,7 @@ using namespace std; class FileFdPrivate { public: -#if APT_USE_ZLIB +#ifdef HAVE_ZLIB gzFile gz; #else void* gz; @@ -1016,7 +1010,7 @@ bool FileFd::OpenInternDescriptor(unsigned int const Mode, APT::Configuration::C d->compressor = compressor; if (compressor.Name == "." || compressor.Binary.empty() == true) return true; -#if APT_USE_ZLIB +#ifdef HAVE_ZLIB else if (compressor.Name == "gzip") { if ((Mode & ReadWrite) == ReadWrite) @@ -1137,7 +1131,7 @@ bool FileFd::Read(void *To,unsigned long long Size,unsigned long long *Actual) *((char *)To) = '\0'; do { -#if APT_USE_ZLIB +#ifdef HAVE_ZLIB if (d->gz != NULL) Res = gzread(d->gz,To,Size); else @@ -1149,7 +1143,7 @@ bool FileFd::Read(void *To,unsigned long long Size,unsigned long long *Actual) if (errno == EINTR) continue; Flags |= Fail; -#if APT_USE_ZLIB +#ifdef HAVE_ZLIB if (d->gz != NULL) { int err; @@ -1190,7 +1184,7 @@ bool FileFd::Read(void *To,unsigned long long Size,unsigned long long *Actual) char* FileFd::ReadLine(char *To, unsigned long long const Size) { *To = '\0'; -#if APT_USE_ZLIB +#ifdef HAVE_ZLIB if (d->gz != NULL) return gzgets(d->gz, To, Size); #endif @@ -1221,7 +1215,7 @@ bool FileFd::Write(const void *From,unsigned long long Size) errno = 0; do { -#if APT_USE_ZLIB +#ifdef HAVE_ZLIB if (d->gz != NULL) Res = gzwrite(d->gz,From,Size); else @@ -1289,7 +1283,7 @@ bool FileFd::Seek(unsigned long long To) return true; } int res; -#if APT_USE_ZLIB +#ifdef HAVE_ZLIB if (d->gz) res = gzseek(d->gz,To,SEEK_SET); else @@ -1325,7 +1319,7 @@ bool FileFd::Skip(unsigned long long Over) } int res; -#if APT_USE_ZLIB +#ifdef HAVE_ZLIB if (d->gz != NULL) res = gzseek(d->gz,Over,SEEK_CUR); else @@ -1373,7 +1367,7 @@ unsigned long long FileFd::Tell() return d->seekpos; off_t Res; -#if APT_USE_ZLIB +#ifdef HAVE_ZLIB if (d->gz != NULL) Res = gztell(d->gz); else @@ -1427,7 +1421,7 @@ unsigned long long FileFd::Size() size = Tell(); Seek(oldSeek); } -#if APT_USE_ZLIB +#ifdef HAVE_ZLIB // only check gzsize if we are actually a gzip file, just checking for // "gz" is not sufficient as uncompressed files could be opened with // gzopen in "direct" mode as well @@ -1500,7 +1494,7 @@ bool FileFd::Close() bool Res = true; if ((Flags & AutoClose) == AutoClose) { -#if APT_USE_ZLIB +#ifdef HAVE_ZLIB if (d != NULL && d->gz != NULL) { int const e = gzclose(d->gz); // gzdclose() on empty files always fails with "buffer error" here, ignore that diff --git a/buildlib/config.h.in b/buildlib/config.h.in index 87918bbec..43d39d304 100644 --- a/buildlib/config.h.in +++ b/buildlib/config.h.in @@ -19,6 +19,9 @@ /* Define if we have the timegm() function */ #undef HAVE_TIMEGM +/* Define if we have the zlib library for gzip */ +#undef HAVE_ZLIB + /* These two are used by the statvfs shim for glibc2.0 and bsd */ /* Define if we have sys/vfs.h */ #undef HAVE_VFS_H diff --git a/configure.in b/configure.in index 78ad06b72..ec98ba4ef 100644 --- a/configure.in +++ b/configure.in @@ -89,7 +89,7 @@ AC_CHECK_LIB(curl, curl_easy_init, AC_SUBST(BDBLIB) AC_CHECK_LIB(z, gzopen, - [AC_CHECK_HEADER(zlib.h, [], AC_MSG_ERROR([failed: zlib.h not found]))], + [AC_CHECK_HEADER(zlib.h, [AC_DEFINE(HAVE_ZLIB)], AC_MSG_ERROR([failed: zlib.h not found]))], AC_MSG_ERROR([failed: Need libz])) dnl Converts the ARCH to be something singular for this general CPU family -- cgit v1.2.3 From 2024154c6d4fa1142b022d54f8c88cf8991929ff Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 5 Apr 2012 18:49:13 +0200 Subject: * apt-pkg/aptconfiguration.cc: - if present, prefer xz binary over lzma --- apt-pkg/aptconfiguration.cc | 33 +++++++++++++++++++++++++++------ debian/changelog | 4 +++- 2 files changed, 30 insertions(+), 7 deletions(-) diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index 4324f0e63..2fdb837c5 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -432,9 +432,30 @@ bool const Configuration::checkArchitecture(std::string const &Arch) { // setDefaultConfigurationForCompressors /*{{{*/ void Configuration::setDefaultConfigurationForCompressors() { // Set default application paths to check for optional compression types - _config->CndSet("Dir::Bin::lzma", "/usr/bin/lzma"); - _config->CndSet("Dir::Bin::xz", "/usr/bin/xz"); _config->CndSet("Dir::Bin::bzip2", "/bin/bzip2"); + _config->CndSet("Dir::Bin::xz", "/usr/bin/xz"); + if (FileExists(_config->FindFile("Dir::Bin::xz")) == true) { + _config->CndSet("Dir::Bin::lzma", _config->Find("Dir::Bin::xz")); + _config->Set("APT::Compressor::lzma::Binary", "xz"); + if (_config->Exists("APT::Compressor::lzma::CompressArg") == false) { + _config->Set("APT::Compressor::lzma::CompressArg::", "--format=lzma"); + _config->Set("APT::Compressor::lzma::CompressArg::", "-9"); + } + if (_config->Exists("APT::Compressor::lzma::UncompressArg") == false) { + _config->Set("APT::Compressor::lzma::UncompressArg::", "--format=lzma"); + _config->Set("APT::Compressor::lzma::UncompressArg::", "-d"); + } + } else { + _config->CndSet("Dir::Bin::lzma", "/usr/bin/lzma"); + if (_config->Exists("APT::Compressor::lzma::CompressArg") == false) { + _config->Set("APT::Compressor::lzma::CompressArg::", "--suffix="); + _config->Set("APT::Compressor::lzma::CompressArg::", "-9"); + } + if (_config->Exists("APT::Compressor::lzma::UncompressArg") == false) { + _config->Set("APT::Compressor::lzma::UncompressArg::", "--suffix="); + _config->Set("APT::Compressor::lzma::UncompressArg::", "-d"); + } + } } /*}}}*/ // getCompressors - Return Vector of usbale compressors /*{{{*/ @@ -458,10 +479,10 @@ const Configuration::getCompressors(bool const Cached) { compressors.push_back(Compressor("gzip",".gz","gzip","-9n","-d",2)); if (_config->Exists("Dir::Bin::bzip2") == false || FileExists(_config->FindFile("Dir::Bin::bzip2")) == true) compressors.push_back(Compressor("bzip2",".bz2","bzip2","-9","-d",3)); - if (_config->Exists("Dir::Bin::lzma") == false || FileExists(_config->FindFile("Dir::Bin::lzma")) == true) - compressors.push_back(Compressor("lzma",".lzma","lzma","-9","-d",4)); if (_config->Exists("Dir::Bin::xz") == false || FileExists(_config->FindFile("Dir::Bin::xz")) == true) - compressors.push_back(Compressor("xz",".xz","xz","-6","-d",5)); + compressors.push_back(Compressor("xz",".xz","xz","-6","-d",4)); + if (_config->Exists("Dir::Bin::lzma") == false || FileExists(_config->FindFile("Dir::Bin::lzma")) == true) + compressors.push_back(Compressor("lzma",".lzma","lzma","-9","-d",5)); std::vector const comp = _config->FindVector("APT::Compressor"); for (std::vector::const_iterator c = comp.begin(); @@ -494,7 +515,7 @@ Configuration::Compressor::Compressor(char const *name, char const *extension, char const *binary, char const *compressArg, char const *uncompressArg, unsigned short const cost) { - std::string const config = std::string("APT:Compressor::").append(name).append("::"); + std::string const config = std::string("APT::Compressor::").append(name).append("::"); Name = _config->Find(std::string(config).append("Name"), name); Extension = _config->Find(std::string(config).append("Extension"), extension); Binary = _config->Find(std::string(config).append("Binary"), binary); diff --git a/debian/changelog b/debian/changelog index fe92378dd..631a8d2d2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -59,6 +59,8 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low - move the command synopsis out of each manpage into apt-verbatim.ent as they are a hell to translate and just single out the parameters which can be translated to apt.ent + * apt-pkg/aptconfiguration.cc: + - if present, prefer xz binary over lzma [ Bogdan Purcareata ] * doc/apt-get.8.xml: @@ -68,7 +70,7 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low number of auto-removed packages both before and after the list of packages (Closes: #665833) - -- David Kalnischkies Thu, 05 Apr 2012 11:55:30 +0200 + -- David Kalnischkies Thu, 05 Apr 2012 18:39:51 +0200 apt (0.8.16~exp13) experimental; urgency=low -- cgit v1.2.3 From d6bbcaad675a746e958d0736ead63bf44c2787ee Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 5 Apr 2012 18:51:06 +0200 Subject: * methods/bzip2.cc: - remove it as the functionality for all compressors can be provided by gzip.cc now with the usage of FileFD --- debian/changelog | 5 +- methods/bzip2.cc | 175 ------------------------------------------------------- methods/gzip.cc | 18 +++++- methods/makefile | 36 +++++------- 4 files changed, 35 insertions(+), 199 deletions(-) delete mode 100644 methods/bzip2.cc diff --git a/debian/changelog b/debian/changelog index 631a8d2d2..8e7b41796 100644 --- a/debian/changelog +++ b/debian/changelog @@ -61,6 +61,9 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low which can be translated to apt.ent * apt-pkg/aptconfiguration.cc: - if present, prefer xz binary over lzma + * methods/bzip2.cc: + - remove it as the functionality for all compressors can be + provided by gzip.cc now with the usage of FileFD [ Bogdan Purcareata ] * doc/apt-get.8.xml: @@ -70,7 +73,7 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low number of auto-removed packages both before and after the list of packages (Closes: #665833) - -- David Kalnischkies Thu, 05 Apr 2012 18:39:51 +0200 + -- David Kalnischkies Thu, 05 Apr 2012 18:49:35 +0200 apt (0.8.16~exp13) experimental; urgency=low diff --git a/methods/bzip2.cc b/methods/bzip2.cc deleted file mode 100644 index 8e7e46557..000000000 --- a/methods/bzip2.cc +++ /dev/null @@ -1,175 +0,0 @@ -// -*- mode: cpp; mode: fold -*- -// Description /*{{{*/ -/* ###################################################################### - - Bzip2 method - Take a file URI in and decompress it into the target - file. - - While the method is named "bzip2" it handles also other compression - types as it calls binaries based on the name of the method, - so it can also be used to handle gzip, lzma and others if named - correctly. - - ##################################################################### */ - /*}}}*/ -// Include Files /*{{{*/ -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - /*}}}*/ - -const char *Prog; - -class Bzip2Method : public pkgAcqMethod -{ - virtual bool Fetch(FetchItem *Itm); - - public: - - Bzip2Method() : pkgAcqMethod("1.1",SingleInstance | SendConfig) {}; -}; - - -// Bzip2Method::Fetch - Decompress the passed URI /*{{{*/ -// --------------------------------------------------------------------- -/* */ -bool Bzip2Method::Fetch(FetchItem *Itm) -{ - URI Get = Itm->Uri; - std::string Path = Get.Host + Get.Path; // To account for relative paths - - std::string GzPathOption = "Dir::bin::" + std::string(Prog); - - FetchResult Res; - Res.Filename = Itm->DestFile; - URIStart(Res); - - // Open the source and destination files - FileFd From(Path,FileFd::ReadOnly); - - if(From.FileSize() == 0) - return _error->Error(_("Empty files can't be valid archives")); - - int GzOut[2]; - if (pipe(GzOut) < 0) - return _error->Errno("pipe",_("Couldn't open pipe for %s"),Prog); - - // Fork bzip2 - pid_t Process = ExecFork(); - if (Process == 0) - { - close(GzOut[0]); - dup2(From.Fd(),STDIN_FILENO); - dup2(GzOut[1],STDOUT_FILENO); - From.Close(); - close(GzOut[1]); - SetCloseExec(STDIN_FILENO,false); - SetCloseExec(STDOUT_FILENO,false); - - const char *Args[3]; - std::string Tmp = _config->Find(GzPathOption,Prog); - Args[0] = Tmp.c_str(); - Args[1] = "-d"; - Args[2] = 0; - execvp(Args[0],(char **)Args); - _exit(100); - } - From.Close(); - close(GzOut[1]); - - FileFd FromGz(GzOut[0]); // For autoclose - FileFd To(Itm->DestFile,FileFd::WriteAtomic); - To.EraseOnFailure(); - if (_error->PendingError() == true) - return false; - - // Read data from bzip2, generate checksums and write - Hashes Hash; - bool Failed = false; - while (1) - { - unsigned char Buffer[4*1024]; - - ssize_t Count = read(GzOut[0],Buffer,sizeof(Buffer)); - if (Count < 0 && errno == EINTR) - continue; - - if (Count < 0) - { - _error->Errno("read", _("Read error from %s process"),Prog); - Failed = true; - break; - } - - if (Count == 0) - break; - - Hash.Add(Buffer,Count); - if (To.Write(Buffer,Count) == false) - { - Failed = true; - FromGz.Close(); - break; - } - } - - // Wait for bzip2 to finish - if (ExecWait(Process,_config->Find(GzPathOption,Prog).c_str(),false) == false) - { - To.OpFail(); - return false; - } - - To.Close(); - - if (Failed == true) - return false; - - // Transfer the modification times - struct stat Buf; - if (stat(Path.c_str(),&Buf) != 0) - return _error->Errno("stat",_("Failed to stat")); - - struct utimbuf TimeBuf; - TimeBuf.actime = Buf.st_atime; - TimeBuf.modtime = Buf.st_mtime; - if (utime(Itm->DestFile.c_str(),&TimeBuf) != 0) - return _error->Errno("utime",_("Failed to set modification time")); - - if (stat(Itm->DestFile.c_str(),&Buf) != 0) - return _error->Errno("stat",_("Failed to stat")); - - // Return a Done response - Res.LastModified = Buf.st_mtime; - Res.Size = Buf.st_size; - Res.TakeHashes(Hash); - - URIDone(Res); - - return true; -} - /*}}}*/ - -int main(int argc, char *argv[]) -{ - setlocale(LC_ALL, ""); - - Bzip2Method Mth; - - Prog = strrchr(argv[0],'/'); - Prog++; - - return Mth.Run(); -} diff --git a/methods/gzip.cc b/methods/gzip.cc index 6ab6548ef..48c8e9892 100644 --- a/methods/gzip.cc +++ b/methods/gzip.cc @@ -25,6 +25,8 @@ #include /*}}}*/ +const char *Prog; + class GzipMethod : public pkgAcqMethod { virtual bool Fetch(FetchItem *Itm); @@ -46,9 +48,18 @@ bool GzipMethod::Fetch(FetchItem *Itm) FetchResult Res; Res.Filename = Itm->DestFile; URIStart(Res); - + + std::vector const compressors = APT::Configuration::getCompressors(); + std::vector::const_iterator compressor = compressors.begin(); + for (; compressor != compressors.end(); ++compressor) + if (compressor->Name == Prog) + break; + if (compressor == compressors.end()) + return _error->Error("Extraction of file %s requires unknown compressor %s", Path.c_str(), Prog); + // Open the source and destination files - FileFd From(Path,FileFd::ReadOnly, FileFd::Gzip); + FileFd From; + From.Open(Path, FileFd::ReadOnly, *compressor); if(From.FileSize() == 0) return _error->Error(_("Empty files can't be valid archives")); @@ -117,6 +128,9 @@ int main(int argc, char *argv[]) { setlocale(LC_ALL, ""); + Prog = strrchr(argv[0],'/'); + ++Prog; + GzipMethod Mth; return Mth.Run(); } diff --git a/methods/makefile b/methods/makefile index 6fe95f29a..a271aff5e 100644 --- a/methods/makefile +++ b/methods/makefile @@ -86,16 +86,9 @@ LIB_MAKES = apt-pkg/makefile SOURCE = mirror.cc http.cc rfc2553emu.cc connect.cc include $(PROGRAM_H) -# The gzip method -PROGRAM=bzip2 -SLIBS = -lapt-pkg $(INTLLIBS) -LIB_MAKES = apt-pkg/makefile -SOURCE = bzip2.cc -include $(PROGRAM_H) - -# SSH and lzma method symlink -binary: $(BIN)/ssh $(BIN)/lzma $(BIN)/xz -veryclean: clean-$(BIN)/ssh clean-$(BIN)/lzma clean-$(BIN)/xz +# SSH method symlink +binary: $(BIN)/ssh +veryclean: clean-$(BIN)/ssh $(BIN)/ssh: echo "Installing ssh method link" @@ -103,14 +96,15 @@ $(BIN)/ssh: clean-$(BIN)/ssh: -rm $(BIN)/ssh -$(BIN)/lzma: - echo "Installing lzma method link" - ln -fs bzip2 $(BIN)/lzma -clean-$(BIN)/lzma: - -rm $(BIN)/lzma - -$(BIN)/xz: - echo "Installing xz method link" - ln -fs bzip2 $(BIN)/xz -clean-$(BIN)/xz: - -rm $(BIN)/xz +# create links for all other compressors +COMPRESSORS=bzip2 lzma xz + +binary: $(addprefix $(BIN)/,$(COMPRESSORS)) +veryclean: $(addprefix clean-$(BIN)/,$(COMPRESSORS)) + +$(addprefix $(BIN)/,$(COMPRESSORS)): $(BIN)/gzip + echo "Installing $(notdir $@) method link" + ln -fs gzip $@ + +$(addprefix clean-$(BIN)/,$(COMPRESSORS)): + -rm $(BIN)/$(notdir $@) -- cgit v1.2.3 From 8dd623dbd616ee23dc96a2c99a4415b153dd7290 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 5 Apr 2012 19:02:08 +0200 Subject: if we have zlib builtin insert add a dummy gzip compressor for FileFD --- apt-pkg/aptconfiguration.cc | 4 ++++ apt-pkg/contrib/fileutl.cc | 1 - debian/changelog | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index 2fdb837c5..f00852775 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -477,6 +477,10 @@ const Configuration::getCompressors(bool const Cached) { compressors.push_back(Compressor(".", "", "", "", "", 1)); if (_config->Exists("Dir::Bin::gzip") == false || FileExists(_config->FindFile("Dir::Bin::gzip")) == true) compressors.push_back(Compressor("gzip",".gz","gzip","-9n","-d",2)); +#ifdef HAVE_ZLIB + else + compressors.push_back(Compressor("gzip",".gz","/bin/false", "", "", 2)); +#endif if (_config->Exists("Dir::Bin::bzip2") == false || FileExists(_config->FindFile("Dir::Bin::bzip2")) == true) compressors.push_back(Compressor("bzip2",".bz2","bzip2","-9","-d",3)); if (_config->Exists("Dir::Bin::xz") == false || FileExists(_config->FindFile("Dir::Bin::xz")) == true) diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 691657cb4..30d0b6662 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -829,7 +829,6 @@ bool FileFd::Open(string FileName,unsigned int const Mode,CompressMode Compress, if (Compress == Auto && (Mode & WriteOnly) == WriteOnly) return _error->Error("Autodetection on %s only works in ReadOnly openmode!", FileName.c_str()); - // FIXME: Denote inbuilt compressors somehow - as we don't need to have the binaries for them std::vector const compressors = APT::Configuration::getCompressors(); std::vector::const_iterator compressor = compressors.begin(); if (Compress == Auto) diff --git a/debian/changelog b/debian/changelog index 8e7b41796..f40b425f8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -61,6 +61,7 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low which can be translated to apt.ent * apt-pkg/aptconfiguration.cc: - if present, prefer xz binary over lzma + - if we have zlib builtin insert add a dummy gzip compressor for FileFD * methods/bzip2.cc: - remove it as the functionality for all compressors can be provided by gzip.cc now with the usage of FileFD @@ -73,7 +74,7 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low number of auto-removed packages both before and after the list of packages (Closes: #665833) - -- David Kalnischkies Thu, 05 Apr 2012 18:49:35 +0200 + -- David Kalnischkies Thu, 05 Apr 2012 19:00:43 +0200 apt (0.8.16~exp13) experimental; urgency=low -- cgit v1.2.3 From c4997486bffc76e2581e9072bff05eba0feeb29c Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 5 Apr 2012 20:51:36 +0200 Subject: - add libbz2-dev as new build-dependency - remove the libz-dev alternative from zlib1g-dev build-dependency - do the same for bz2 builtin if available * apt-pkg/contrib/fileutl.cc: - use libz2 library for (de)compression instead of the bzip2 binary as the first is a dependency of dpkg and the later just priority:optional so we gain 'easier' access to bz2-compressed Translation files this way --- apt-pkg/aptconfiguration.cc | 6 ++- apt-pkg/contrib/fileutl.cc | 107 ++++++++++++++++++++++++++++++++++++++++---- apt-pkg/makefile | 8 +++- buildlib/config.h.in | 3 ++ buildlib/environment.mak.in | 3 +- configure.in | 14 +++++- debian/changelog | 9 +++- debian/control | 2 +- 8 files changed, 137 insertions(+), 15 deletions(-) diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index f00852775..d6691e392 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -479,10 +479,14 @@ const Configuration::getCompressors(bool const Cached) { compressors.push_back(Compressor("gzip",".gz","gzip","-9n","-d",2)); #ifdef HAVE_ZLIB else - compressors.push_back(Compressor("gzip",".gz","/bin/false", "", "", 2)); + compressors.push_back(Compressor("gzip",".gz","false", "", "", 2)); #endif if (_config->Exists("Dir::Bin::bzip2") == false || FileExists(_config->FindFile("Dir::Bin::bzip2")) == true) compressors.push_back(Compressor("bzip2",".bz2","bzip2","-9","-d",3)); +#ifdef HAVE_BZ2 + else + compressors.push_back(Compressor("bzip2",".bz2","false", "", "", 3)); +#endif if (_config->Exists("Dir::Bin::xz") == false || FileExists(_config->FindFile("Dir::Bin::xz")) == true) compressors.push_back(Compressor("xz",".xz","xz","-6","-d",4)); if (_config->Exists("Dir::Bin::lzma") == false || FileExists(_config->FindFile("Dir::Bin::lzma")) == true) diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 30d0b6662..536571fee 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -47,6 +47,9 @@ #ifdef HAVE_ZLIB #include #endif +#ifdef HAVE_BZ2 + #include +#endif #ifdef WORDS_BIGENDIAN #include @@ -63,6 +66,11 @@ class FileFdPrivate { gzFile gz; #else void* gz; +#endif +#ifdef HAVE_BZ2 + BZFILE* bz2; +#else + void* bz2; #endif int compressed_fd; pid_t compressor_pid; @@ -70,7 +78,8 @@ class FileFdPrivate { APT::Configuration::Compressor compressor; unsigned int openmode; unsigned long long seekpos; - FileFdPrivate() : gz(NULL), compressed_fd(-1), compressor_pid(-1), pipe(false), + FileFdPrivate() : gz(NULL), bz2(NULL), + compressed_fd(-1), compressor_pid(-1), pipe(false), openmode(0), seekpos(0) {}; }; @@ -1017,13 +1026,29 @@ bool FileFd::OpenInternDescriptor(unsigned int const Mode, APT::Configuration::C else if ((Mode & WriteOnly) == WriteOnly) d->gz = gzdopen(iFd, "w"); else - d->gz = gzdopen (iFd, "r"); + d->gz = gzdopen(iFd, "r"); if (d->gz == NULL) return false; Flags |= Compressed; return true; } #endif +#ifdef HAVE_BZ2 + else if (compressor.Name == "bzip2") + { + if ((Mode & ReadWrite) == ReadWrite) + d->bz2 = BZ2_bzdopen(iFd, "r+"); + else if ((Mode & WriteOnly) == WriteOnly) + d->bz2 = BZ2_bzdopen(iFd, "w"); + else + d->bz2 = BZ2_bzdopen(iFd, "r"); + if (d->bz2 == NULL) + return false; + Flags |= Compressed; + return true; + } +#endif + if ((Mode & ReadWrite) == ReadWrite) return _error->Error("ReadWrite mode is not supported for file %s", FileName.c_str()); @@ -1132,7 +1157,12 @@ bool FileFd::Read(void *To,unsigned long long Size,unsigned long long *Actual) { #ifdef HAVE_ZLIB if (d->gz != NULL) - Res = gzread(d->gz,To,Size); + Res = gzread(d->gz,To,Size); + else +#endif +#ifdef HAVE_BZ2 + if (d->bz2 != NULL) + Res = BZ2_bzread(d->bz2,To,Size); else #endif Res = read(iFd,To,Size); @@ -1150,6 +1180,15 @@ bool FileFd::Read(void *To,unsigned long long Size,unsigned long long *Actual) if (err != Z_ERRNO) return _error->Error("gzread: %s (%d: %s)", _("Read error"), err, errmsg); } +#endif +#ifdef HAVE_BZ2 + if (d->bz2 != NULL) + { + int err; + char const * const errmsg = BZ2_bzerror(d->bz2, &err); + if (err != BZ_IO_ERROR) + return _error->Error("BZ2_bzread: %s (%d: %s)", _("Read error"), err, errmsg); + } #endif return _error->Errno("read",_("Read error")); } @@ -1218,6 +1257,11 @@ bool FileFd::Write(const void *From,unsigned long long Size) if (d->gz != NULL) Res = gzwrite(d->gz,From,Size); else +#endif +#ifdef HAVE_BZ2 + if (d->bz2 != NULL) + Res = BZ2_bzwrite(d->bz2,(void*)From,Size); + else #endif Res = write(iFd,From,Size); if (Res < 0 && errno == EINTR) @@ -1225,6 +1269,24 @@ bool FileFd::Write(const void *From,unsigned long long Size) if (Res < 0) { Flags |= Fail; +#ifdef HAVE_ZLIB + if (d->gz != NULL) + { + int err; + char const * const errmsg = gzerror(d->gz, &err); + if (err != Z_ERRNO) + return _error->Error("gzwrite: %s (%d: %s)", _("Write error"), err, errmsg); + } +#endif +#ifdef HAVE_BZ2 + if (d->bz2 != NULL) + { + int err; + char const * const errmsg = BZ2_bzerror(d->bz2, &err); + if (err != BZ_IO_ERROR) + return _error->Error("BZ2_bzwrite: %s (%d: %s)", _("Write error"), err, errmsg); + } +#endif return _error->Errno("write",_("Write error")); } @@ -1246,7 +1308,11 @@ bool FileFd::Write(const void *From,unsigned long long Size) /* */ bool FileFd::Seek(unsigned long long To) { - if (d->pipe == true) + if (d->pipe == true +#ifdef HAVE_BZ2 + || d->bz2 != NULL +#endif + ) { // Our poor man seeking in pipes is costly, so try to avoid it unsigned long long seekpos = Tell(); @@ -1257,6 +1323,10 @@ bool FileFd::Seek(unsigned long long To) if ((d->openmode & ReadOnly) != ReadOnly) return _error->Error("Reopen is only implemented for read-only files!"); +#ifdef HAVE_BZ2 + if (d->bz2 != NULL) + BZ2_bzclose(d->bz2); +#endif close(iFd); iFd = 0; if (TemporaryFileName.empty() == false) @@ -1303,7 +1373,11 @@ bool FileFd::Seek(unsigned long long To) /* */ bool FileFd::Skip(unsigned long long Over) { - if (d->pipe == true) + if (d->pipe == true +#ifdef HAVE_BZ2 + || d->bz2 != NULL +#endif + ) { d->seekpos += Over; char buffer[1024]; @@ -1339,11 +1413,13 @@ bool FileFd::Skip(unsigned long long Over) /* */ bool FileFd::Truncate(unsigned long long To) { - if (d->gz != NULL) +#if defined HAVE_ZLIB || defined HAVE_BZ2 + if (d->gz != NULL || d->bz2 != NULL) { Flags |= Fail; - return _error->Error("Truncating gzipped files is not implemented (%s)", FileName.c_str()); + return _error->Error("Truncating compressed files is not implemented (%s)", FileName.c_str()); } +#endif if (ftruncate(iFd,To) != 0) { Flags |= Fail; @@ -1362,7 +1438,11 @@ unsigned long long FileFd::Tell() // seeking around, but not all users of FileFd use always Seek() and co // so d->seekpos isn't always true and we can just use it as a hint if // we have nothing else, but not always as an authority… - if (d->pipe == true) + if (d->pipe == true +#ifdef HAVE_BZ2 + || d->bz2 != NULL +#endif + ) return d->seekpos; off_t Res; @@ -1409,7 +1489,11 @@ unsigned long long FileFd::Size() // for compressor pipes st_size is undefined and at 'best' zero, // so we 'read' the content and 'seek' back - see there - if (d->pipe == true) + if (d->pipe == true +#ifdef HAVE_BZ2 + || (d->bz2 && size > 0) +#endif + ) { unsigned long long const oldSeek = Tell(); char ignore[1000]; @@ -1500,6 +1584,11 @@ bool FileFd::Close() if (e != 0 && e != Z_BUF_ERROR) Res &= _error->Errno("close",_("Problem closing the gzip file %s"), FileName.c_str()); } else +#endif +#ifdef HAVE_BZ2 + if (d != NULL && d->bz2 != NULL) + BZ2_bzclose(d->bz2); + else #endif if (iFd > 0 && close(iFd) != 0) Res &= _error->Errno("close",_("Problem closing the file %s"), FileName.c_str()); diff --git a/apt-pkg/makefile b/apt-pkg/makefile index e1f69dd65..27d7ead24 100644 --- a/apt-pkg/makefile +++ b/apt-pkg/makefile @@ -14,7 +14,13 @@ include ../buildlib/libversion.mak LIBRARY=apt-pkg MAJOR=$(LIBAPTPKG_MAJOR) MINOR=$(LIBAPTPKG_RELEASE) -SLIBS=$(PTHREADLIB) $(INTLLIBS) -lutil -ldl -lz +SLIBS=$(PTHREADLIB) $(INTLLIBS) -lutil -ldl +ifeq ($(HAVE_ZLIB),yes) +SLIBS+= -lz +endif +ifeq ($(HAVE_BZ2),yes) +SLIBS+= -lbz2 +endif APT_DOMAIN:=libapt-pkg$(LIBAPTPKG_MAJOR) # Source code for the contributed non-core things diff --git a/buildlib/config.h.in b/buildlib/config.h.in index 43d39d304..b07d4f77f 100644 --- a/buildlib/config.h.in +++ b/buildlib/config.h.in @@ -22,6 +22,9 @@ /* Define if we have the zlib library for gzip */ #undef HAVE_ZLIB +/* Define if we have the bz2 library for bzip2 */ +#undef HAVE_BZ2 + /* These two are used by the statvfs shim for glibc2.0 and bsd */ /* Define if we have sys/vfs.h */ #undef HAVE_VFS_H diff --git a/buildlib/environment.mak.in b/buildlib/environment.mak.in index b8ddb34a2..0f0fac095 100644 --- a/buildlib/environment.mak.in +++ b/buildlib/environment.mak.in @@ -55,7 +55,8 @@ INTLLIBS = @INTLLIBS@ # Shim Headerfile control HAVE_C9X = @HAVE_C9X@ HAVE_STATVFS = @HAVE_STATVFS@ -HAVE_TIMEGM = @HAVE_TIMEGM@ +HAVE_ZLIB = @HAVE_ZLIB@ +HAVE_BZ2 = @HAVE_BZ2@ NEED_SOCKLEN_T_DEFINE = @NEED_SOCKLEN_T_DEFINE@ # Shared library things diff --git a/configure.in b/configure.in index ec98ba4ef..b974b9eb9 100644 --- a/configure.in +++ b/configure.in @@ -88,9 +88,21 @@ AC_CHECK_LIB(curl, curl_easy_init, AC_SUBST(BDBLIB) +HAVE_ZLIB=no AC_CHECK_LIB(z, gzopen, - [AC_CHECK_HEADER(zlib.h, [AC_DEFINE(HAVE_ZLIB)], AC_MSG_ERROR([failed: zlib.h not found]))], + [AC_CHECK_HEADER(zlib.h, [HAVE_ZLIB=yes], AC_MSG_ERROR([failed: zlib.h not found]))], AC_MSG_ERROR([failed: Need libz])) +AC_SUBST(HAVE_ZLIB) +if test "x$HAVE_ZLIB" = "xyes"; then + AC_DEFINE(HAVE_ZLIB) +fi + +HAVE_BZ2=no +AC_CHECK_LIB(bz2, BZ2_bzopen,[AC_CHECK_HEADER(bzlib.h, [HAVE_BZ2=yes], [])], []) +AC_SUBST(HAVE_BZ2) +if test "x$HAVE_BZ2" = "xyes"; then + AC_DEFINE(HAVE_BZ2) +fi dnl Converts the ARCH to be something singular for this general CPU family dnl This is often the dpkg architecture string. diff --git a/debian/changelog b/debian/changelog index f40b425f8..01750765e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -49,6 +49,8 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low this transparently now * debian/control: - bump Standards-Version to 3.9.3 (no changes needed) + - add libbz2-dev as new build-dependency + - remove the libz-dev alternative from zlib1g-dev build-dependency * doc/apt-get.8.xml: - typofix: respect → respecting, thanks Mike Erickson! (Closes: #664833) * debian/rules: @@ -62,9 +64,14 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low * apt-pkg/aptconfiguration.cc: - if present, prefer xz binary over lzma - if we have zlib builtin insert add a dummy gzip compressor for FileFD + - do the same for bz2 builtin if available * methods/bzip2.cc: - remove it as the functionality for all compressors can be provided by gzip.cc now with the usage of FileFD + * apt-pkg/contrib/fileutl.cc: + - use libz2 library for (de)compression instead of the bzip2 binary as + the first is a dependency of dpkg and the later just priority:optional + so we gain 'easier' access to bz2-compressed Translation files this way [ Bogdan Purcareata ] * doc/apt-get.8.xml: @@ -74,7 +81,7 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low number of auto-removed packages both before and after the list of packages (Closes: #665833) - -- David Kalnischkies Thu, 05 Apr 2012 19:00:43 +0200 + -- David Kalnischkies Thu, 05 Apr 2012 20:51:01 +0200 apt (0.8.16~exp13) experimental; urgency=low diff --git a/debian/control b/debian/control index 528468c7c..5604bbe55 100644 --- a/debian/control +++ b/debian/control @@ -8,7 +8,7 @@ Uploaders: Michael Vogt , Otavio Salvador , Standards-Version: 3.9.3 Build-Depends: dpkg-dev (>= 1.15.8), debhelper (>= 8.1.3~), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev (>= 7.19.0), - zlib1g-dev | libz-dev, debiandoc-sgml, xsltproc, docbook-xsl, docbook-xml, + zlib1g-dev, libbz2-dev, debiandoc-sgml, xsltproc, docbook-xsl, docbook-xml, po4a (>= 0.34-2), autotools-dev, autoconf, automake, doxygen Build-Conflicts: autoconf2.13, automake1.4 Vcs-Bzr: http://bzr.debian.org/apt/debian-sid/ -- cgit v1.2.3 From de97b0a56e3f454cab76aa475f40b10eed88333c Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Thu, 5 Apr 2012 21:37:57 +0200 Subject: suggest xz-utils instead of bzip2 and lzma --- debian/changelog | 3 ++- debian/control | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 01750765e..85382b6fa 100644 --- a/debian/changelog +++ b/debian/changelog @@ -51,6 +51,7 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low - bump Standards-Version to 3.9.3 (no changes needed) - add libbz2-dev as new build-dependency - remove the libz-dev alternative from zlib1g-dev build-dependency + - suggest xz-utils instead of bzip2 and lzma * doc/apt-get.8.xml: - typofix: respect → respecting, thanks Mike Erickson! (Closes: #664833) * debian/rules: @@ -81,7 +82,7 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low number of auto-removed packages both before and after the list of packages (Closes: #665833) - -- David Kalnischkies Thu, 05 Apr 2012 20:51:01 +0200 + -- David Kalnischkies Thu, 05 Apr 2012 21:36:16 +0200 apt (0.8.16~exp13) experimental; urgency=low diff --git a/debian/control b/debian/control index 5604bbe55..78b10e0f0 100644 --- a/debian/control +++ b/debian/control @@ -19,7 +19,7 @@ Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, debian-archive-keyring, gnupg Replaces: manpages-pl (<< 20060617-3~) Conflicts: python-apt (<< 0.7.93.2~) -Suggests: aptitude | synaptic | wajig, dpkg-dev, apt-doc, bzip2, lzma, python-apt +Suggests: aptitude | synaptic | wajig, dpkg-dev, apt-doc, xz-utils, python-apt Description: commandline package manager This package provides commandline tools for searching and managing as well as querying information about packages @@ -80,7 +80,7 @@ Architecture: any Multi-Arch: same Priority: optional Pre-Depends: ${misc:Pre-Depends} -Depends: ${libapt-pkg-name} (= ${binary:Version}), ${libapt-inst-name} (= ${binary:Version}), ${misc:Depends}, zlib1g-dev | zlib-dev +Depends: ${libapt-pkg-name} (= ${binary:Version}), ${libapt-inst-name} (= ${binary:Version}), ${misc:Depends}, zlib1g-dev Section: libdevel Description: development files for APT's libapt-pkg and libapt-inst This package contains the header files and libraries for @@ -102,6 +102,7 @@ Description: documentation for APT development Package: apt-utils Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} +Suggests: xz-utils Description: package managment related utility programs This package contains some less used commandline utilities related to package managment with APT. -- cgit v1.2.3 From 8bcbc69451bfb00977c16fdb03662c844f6e861e Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 11 Apr 2012 11:57:48 +0200 Subject: use xz-utils in the testcases instead of lzma and ensure that we really ignore the presents (or absence) of lzma if we decided to use xz --- apt-pkg/aptconfiguration.cc | 2 +- test/integration/framework | 2 +- .../test-bug-595691-empty-and-broken-archive-files | 12 ++++++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index d6691e392..d72b0c5ae 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -435,7 +435,7 @@ void Configuration::setDefaultConfigurationForCompressors() { _config->CndSet("Dir::Bin::bzip2", "/bin/bzip2"); _config->CndSet("Dir::Bin::xz", "/usr/bin/xz"); if (FileExists(_config->FindFile("Dir::Bin::xz")) == true) { - _config->CndSet("Dir::Bin::lzma", _config->Find("Dir::Bin::xz")); + _config->Clear("Dir::Bin::lzma"); _config->Set("APT::Compressor::lzma::Binary", "xz"); if (_config->Exists("APT::Compressor::lzma::CompressArg") == false) { _config->Set("APT::Compressor::lzma::CompressArg::", "--format=lzma"); diff --git a/test/integration/framework b/test/integration/framework index fa4a98f58..0670d6a78 100644 --- a/test/integration/framework +++ b/test/integration/framework @@ -558,7 +558,7 @@ buildaptarchivefromfiles() { msgninfo "\t${line} file… " cat ${line} | gzip > ${line}.gz cat ${line} | bzip2 > ${line}.bz2 - cat ${line} | lzma > ${line}.lzma + cat ${line} | xz --format=lzma > ${line}.lzma cat ${line} | xz > ${line}.xz msgdone "info" done diff --git a/test/integration/test-bug-595691-empty-and-broken-archive-files b/test/integration/test-bug-595691-empty-and-broken-archive-files index bb1ac0e54..63883b380 100755 --- a/test/integration/test-bug-595691-empty-and-broken-archive-files +++ b/test/integration/test-bug-595691-empty-and-broken-archive-files @@ -28,10 +28,10 @@ testaptgetupdate() { createemptyarchive() { find aptarchive/ \( -name "Packages*" -o -name "en*" \) -type f -delete if [ "en" = "$1" ]; then - echo -n "" | $COMPRESSOR > aptarchive/Packages.$COMPRESS + echo -n "" | $COMPRESSOR_CMD > aptarchive/Packages.$COMPRESS fi touch aptarchive/Packages - echo -n "" | $COMPRESSOR > aptarchive/${1}.$COMPRESS + echo -n "" | $COMPRESSOR_CMD > aptarchive/${1}.$COMPRESS generatereleasefiles signreleasefiles rm -f aptarchive/Packages @@ -40,7 +40,7 @@ createemptyarchive() { createemptyfile() { find aptarchive/ \( -name "Packages*" -o -name "en*" \) -type f -delete if [ "en" = "$1" ]; then - echo -n "" | $COMPRESSOR > aptarchive/Packages.$COMPRESS + echo -n "" | $COMPRESSOR_CMD > aptarchive/Packages.$COMPRESS fi touch aptarchive/Packages aptarchive/${1}.$COMPRESS generatereleasefiles @@ -50,6 +50,7 @@ createemptyfile() { setupcompressor() { COMPRESSOR="$1" + COMPRESSOR_CMD="$1" case $COMPRESSOR in gzip) COMPRESS="gz";; bzip2) COMPRESS="bz2";; @@ -66,10 +67,13 @@ Dir::Bin::xz \"/does/not/exist\";" > rootdir/etc/apt/apt.conf.d/00compressor echo "Dir::Bin::${COMPRESSOR} \"/bin/${COMPRESSOR}\";" >> rootdir/etc/apt/apt.conf.d/00compressor elif [ -e "/usr/bin/${COMPRESSOR}" ]; then echo "Dir::Bin::${COMPRESSOR} \"/usr/bin/${COMPRESSOR}\";" >> rootdir/etc/apt/apt.conf.d/00compressor + elif [ "${COMPRESSOR}" = 'lzma' ]; then + echo "Dir::Bin::xz \"/usr/bin/xz\";" >> rootdir/etc/apt/apt.conf.d/00compressor + COMPRESSOR_CMD='xz --format=lzma' else msgtest "Test for availability of compressor" "${COMPRESSOR}" msgfail - exit 1 + #exit 1 fi } -- cgit v1.2.3 From fdfdba56b128acf59b40edfdde0dd95fdd9c4439 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 11 Apr 2012 12:12:24 +0200 Subject: * cmdline/apt-get.cc: - print list of autoremoves in alphabetical order (Closes: #639008) --- cmdline/apt-get.cc | 36 +++++++++++----------- debian/changelog | 4 ++- .../test-bug-613420-new-garbage-dependency | 2 +- 3 files changed, 22 insertions(+), 20 deletions(-) diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 52618ae28..6d7f80202 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1711,12 +1711,13 @@ bool DoAutomaticRemove(CacheFile &Cache) bool smallList = (hideAutoRemove == false && strcasecmp(_config->Find("APT::Get::HideAutoRemove","").c_str(),"small") == 0); - string autoremovelist, autoremoveversions; unsigned long autoRemoveCount = 0; APT::PackageSet tooMuch; + APT::PackageList autoRemoveList; // look over the cache to see what can be removed - for (pkgCache::PkgIterator Pkg = Cache->PkgBegin(); ! Pkg.end(); ++Pkg) + for (unsigned J = 0; J < Cache->Head().PackageCount; ++J) { + pkgCache::PkgIterator Pkg(Cache,Cache.List[J]); if (Cache[Pkg].Garbage) { if(Pkg.CurrentVer() != 0 || Cache[Pkg].Install()) @@ -1733,6 +1734,8 @@ bool DoAutomaticRemove(CacheFile &Cache) } else { + if (hideAutoRemove == false && Cache[Pkg].Delete() == false) + autoRemoveList.insert(Pkg); // if the package is a new install and already garbage we don't need to // install it in the first place, so nuke it instead of show it if (Cache[Pkg].Install() == true && Pkg.CurrentVer() == 0) @@ -1742,16 +1745,8 @@ bool DoAutomaticRemove(CacheFile &Cache) Cache->MarkDelete(Pkg, false); } // only show stuff in the list that is not yet marked for removal - else if(hideAutoRemove == false && Cache[Pkg].Delete() == false) - { + else if(hideAutoRemove == false && Cache[Pkg].Delete() == false) ++autoRemoveCount; - // we don't need to fill the strings if we don't need them - if (smallList == false) - { - autoremovelist += Pkg.FullName(true) + " "; - autoremoveversions += string(Cache[Pkg].CandVersion) + "\n"; - } - } } } } @@ -1786,14 +1781,7 @@ bool DoAutomaticRemove(CacheFile &Cache) std::clog << "Save " << Pkg << " as another installed garbage package depends on it" << std::endl; Cache->MarkInstall(Pkg, false); if (hideAutoRemove == false) - { ++autoRemoveCount; - if (smallList == false) - { - autoremovelist += Pkg.FullName(true) + " "; - autoremoveversions += string(Cache[Pkg].CandVersion) + "\n"; - } - } tooMuch.erase(Pkg); Changed = true; break; @@ -1803,6 +1791,18 @@ bool DoAutomaticRemove(CacheFile &Cache) } while (Changed == true); } + std::string autoremovelist, autoremoveversions; + if (smallList == false && autoRemoveCount != 0) + { + for (APT::PackageList::const_iterator Pkg = autoRemoveList.begin(); Pkg != autoRemoveList.end(); ++Pkg) + { + if (Cache[Pkg].Garbage == false) + continue; + autoremovelist += Pkg.FullName(true) + " "; + autoremoveversions += string(Cache[Pkg].CandVersion) + "\n"; + } + } + // Now see if we had destroyed anything (if we had done anything) if (Cache->BrokenCount() != 0) { diff --git a/debian/changelog b/debian/changelog index 85382b6fa..4e337df48 100644 --- a/debian/changelog +++ b/debian/changelog @@ -73,6 +73,8 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low - use libz2 library for (de)compression instead of the bzip2 binary as the first is a dependency of dpkg and the later just priority:optional so we gain 'easier' access to bz2-compressed Translation files this way + * cmdline/apt-get.cc: + - print list of autoremoves in alphabetical order (Closes: #639008) [ Bogdan Purcareata ] * doc/apt-get.8.xml: @@ -82,7 +84,7 @@ apt (0.8.16~exp14) UNRELEASED; urgency=low number of auto-removed packages both before and after the list of packages (Closes: #665833) - -- David Kalnischkies Thu, 05 Apr 2012 21:36:16 +0200 + -- David Kalnischkies Wed, 11 Apr 2012 12:09:33 +0200 apt (0.8.16~exp13) experimental; urgency=low diff --git a/test/integration/test-bug-613420-new-garbage-dependency b/test/integration/test-bug-613420-new-garbage-dependency index 34cf38cbc..7a08871ca 100755 --- a/test/integration/test-bug-613420-new-garbage-dependency +++ b/test/integration/test-bug-613420-new-garbage-dependency @@ -22,7 +22,7 @@ testequal "Reading package lists... Building dependency tree... Reading state information... The following packages were automatically installed and are no longer required: - openoffice.org-officebean libreoffice-officebean + libreoffice-officebean openoffice.org-officebean Use 'apt-get autoremove' to remove them. The following extra packages will be installed: libreoffice-core libreoffice-officebean openoffice.org-officebean -- cgit v1.2.3 From 3b4d8136e78b9f2a70431ece4c850861d90e8bb1 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 11 Apr 2012 12:36:32 +0200 Subject: fix the remaining lzma calls with xz --format=lzma in the testcases --- test/integration/test-hashsum-verification | 2 +- test/integration/test-pdiff-usage | 2 +- test/integration/test-releasefile-verification | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/integration/test-hashsum-verification b/test/integration/test-hashsum-verification index 3ac9eccfb..99ea8bffa 100755 --- a/test/integration/test-hashsum-verification +++ b/test/integration/test-hashsum-verification @@ -23,7 +23,7 @@ prepare() { find aptarchive -name 'Release' -delete cat aptarchive/Packages | gzip > aptarchive/Packages.gz cat aptarchive/Packages | bzip2 > aptarchive/Packages.bz2 - cat aptarchive/Packages | lzma > aptarchive/Packages.lzma + cat aptarchive/Packages | xz --format=lzma > aptarchive/Packages.lzma # create Release file with incorret checksums cat > aptarchive/Release < aptarchive/Packages.gz cat aptarchive/Packages | bzip2 > aptarchive/Packages.bz2 -cat aptarchive/Packages | lzma > aptarchive/Packages.lzma +cat aptarchive/Packages | xz --format=lzma > aptarchive/Packages.lzma rm -rf aptarchive/Packages.diff mkdir -p aptarchive/Packages.diff PATCHFILE="aptarchive/Packages.diff/$(date +%Y-%m-%d-%H%M.%S)" diff --git a/test/integration/test-releasefile-verification b/test/integration/test-releasefile-verification index 4f65cfa3b..d3ea91de5 100755 --- a/test/integration/test-releasefile-verification +++ b/test/integration/test-releasefile-verification @@ -24,7 +24,7 @@ prepare() { find aptarchive -name 'Release' -delete cat aptarchive/Packages | gzip > aptarchive/Packages.gz cat aptarchive/Packages | bzip2 > aptarchive/Packages.bz2 - cat aptarchive/Packages | lzma > aptarchive/Packages.lzma + cat aptarchive/Packages | xz --format=lzma > aptarchive/Packages.lzma generatereleasefiles "$DATE" } -- cgit v1.2.3 From d68d65ad637526e46ea77ab83e07470d26df15fc Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 11 Apr 2012 13:25:28 +0200 Subject: use a static FileFd::Write overload to reduce duplication of write()-retry code --- apt-pkg/acquire-worker.cc | 27 +++------------------------ apt-pkg/acquire.cc | 16 +--------------- apt-pkg/contrib/fileutl.cc | 22 ++++++++++++++++++++++ apt-pkg/contrib/fileutl.h | 1 + apt-pkg/deb/dpkgpm.cc | 34 +++++++--------------------------- debian/libapt-pkg4.12.symbols | 1 + 6 files changed, 35 insertions(+), 66 deletions(-) diff --git a/apt-pkg/acquire-worker.cc b/apt-pkg/acquire-worker.cc index d79b2b16d..77e2fc311 100644 --- a/apt-pkg/acquire-worker.cc +++ b/apt-pkg/acquire-worker.cc @@ -433,21 +433,7 @@ bool pkgAcquire::Worker::MediaChange(string Message) << endl; std::string const dlstatus = status.str(); - size_t done = 0; - size_t todo = dlstatus.size(); - errno = 0; - int res = 0; - do - { - res = write(status_fd, dlstatus.c_str() + done, todo); - if (res < 0 && errno == EINTR) - continue; - if (res < 0) - break; - done += res; - todo -= res; - } - while (res > 0 && todo > 0); + FileFd::Write(status_fd, dlstatus.c_str(), dlstatus.size()); } if (Log == 0 || Log->MediaChange(LookupTag(Message,"Media"), @@ -546,17 +532,10 @@ bool pkgAcquire::Worker::QueueItem(pkgAcquire::Queue::QItem *Item) /* */ bool pkgAcquire::Worker::OutFdReady() { - int Res; - do - { - Res = write(OutFd,OutQueue.c_str(),OutQueue.length()); - } - while (Res < 0 && errno == EINTR); - - if (Res <= 0) + if (FileFd::Write(OutFd,OutQueue.c_str(),OutQueue.length()) == false) return MethodFailure(); - OutQueue.erase(0,Res); + OutQueue.clear(); if (OutQueue.empty() == true) OutReady = false; diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc index 19bcca8a1..5e1419056 100644 --- a/apt-pkg/acquire.cc +++ b/apt-pkg/acquire.cc @@ -874,21 +874,7 @@ bool pkgAcquireStatus::Pulse(pkgAcquire *Owner) << endl; std::string const dlstatus = status.str(); - size_t done = 0; - size_t todo = dlstatus.size(); - errno = 0; - int res = 0; - do - { - res = write(fd, dlstatus.c_str() + done, todo); - if (res < 0 && errno == EINTR) - continue; - if (res < 0) - break; - done += res; - todo -= res; - } - while (res > 0 && todo > 0); + FileFd::Write(fd, dlstatus.c_str(), dlstatus.size()); } return true; diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index 536571fee..9e3611b26 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -1301,6 +1301,28 @@ bool FileFd::Write(const void *From,unsigned long long Size) Flags |= Fail; return _error->Error(_("write, still have %llu to write but couldn't"), Size); +} +bool FileFd::Write(int Fd, const void *From, unsigned long long Size) +{ + int Res; + errno = 0; + do + { + Res = write(Fd,From,Size); + if (Res < 0 && errno == EINTR) + continue; + if (Res < 0) + return _error->Errno("write",_("Write error")); + + From = (char *)From + Res; + Size -= Res; + } + while (Res > 0 && Size > 0); + + if (Size == 0) + return true; + + return _error->Error(_("write, still have %llu to write but couldn't"), Size); } /*}}}*/ // FileFd::Seek - Seek in the file /*{{{*/ diff --git a/apt-pkg/contrib/fileutl.h b/apt-pkg/contrib/fileutl.h index 1ca41cb7d..426664d3a 100644 --- a/apt-pkg/contrib/fileutl.h +++ b/apt-pkg/contrib/fileutl.h @@ -78,6 +78,7 @@ class FileFd bool Read(void *To,unsigned long long Size,unsigned long long *Actual = 0); char* ReadLine(char *To, unsigned long long const Size); bool Write(const void *From,unsigned long long Size); + bool static Write(int Fd, const void *From, unsigned long long Size); bool Seek(unsigned long long To); bool Skip(unsigned long long To); bool Truncate(unsigned long long To); diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 1a21c03eb..496daf1df 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -163,26 +163,6 @@ pkgCache::VerIterator FindNowVersion(const pkgCache::PkgIterator &Pkg) return Ver; } /*}}}*/ -static ssize_t -retry_write(int fd, const void *buf, size_t count) -{ - int Res; - ssize_t i = 0; - errno = 0; - do - { - Res = write(fd, buf, count); - if (Res < 0 && errno == EINTR) - continue; - if (Res < 0) - break; - buf = (char *)buf + Res; - count -= Res; - i += Res; - } - while (Res > 0 && count > 0); - return i; -} // DPkgPM::pkgDPkgPM - Constructor /*{{{*/ // --------------------------------------------------------------------- @@ -445,7 +425,7 @@ void pkgDPkgPM::DoStdin(int master) unsigned char input_buf[256] = {0,}; ssize_t len = read(0, input_buf, sizeof(input_buf)); if (len) - retry_write(master, input_buf, len); + FileFd::Write(master, input_buf, len); else d->stdin_is_dev_null = true; } @@ -471,7 +451,7 @@ void pkgDPkgPM::DoTerminalPty(int master) } if(len <= 0) return; - retry_write(1, term_buf, len); + FileFd::Write(1, term_buf, len); if(d->term_out) fwrite(term_buf, len, sizeof(char), d->term_out); } @@ -546,7 +526,7 @@ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line) << ":" << s << endl; if(OutStatusFd > 0) - retry_write(OutStatusFd, status.str().c_str(), status.str().size()); + FileFd::Write(OutStatusFd, status.str().c_str(), status.str().size()); if (Debug == true) std::clog << "send: '" << status.str() << "'" << endl; @@ -570,7 +550,7 @@ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line) << ":" << list[3] << endl; if(OutStatusFd > 0) - retry_write(OutStatusFd, status.str().c_str(), status.str().size()); + FileFd::Write(OutStatusFd, status.str().c_str(), status.str().size()); if (Debug == true) std::clog << "send: '" << status.str() << "'" << endl; pkgFailures++; @@ -584,7 +564,7 @@ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line) << ":" << list[3] << endl; if(OutStatusFd > 0) - retry_write(OutStatusFd, status.str().c_str(), status.str().size()); + FileFd::Write(OutStatusFd, status.str().c_str(), status.str().size()); if (Debug == true) std::clog << "send: '" << status.str() << "'" << endl; return; @@ -612,7 +592,7 @@ void pkgDPkgPM::ProcessDpkgStatusLine(int OutStatusFd, char *line) << ":" << s << endl; if(OutStatusFd > 0) - retry_write(OutStatusFd, status.str().c_str(), status.str().size()); + FileFd::Write(OutStatusFd, status.str().c_str(), status.str().size()); if (Debug == true) std::clog << "send: '" << status.str() << "'" << endl; } @@ -1257,7 +1237,7 @@ bool pkgDPkgPM::Go(int OutStatusFd) << (PackagesDone/float(PackagesTotal)*100.0) << ":" << _("Running dpkg") << endl; - retry_write(OutStatusFd, status.str().c_str(), status.str().size()); + FileFd::Write(OutStatusFd, status.str().c_str(), status.str().size()); } Child = ExecFork(); diff --git a/debian/libapt-pkg4.12.symbols b/debian/libapt-pkg4.12.symbols index 012617eb6..1abf22899 100644 --- a/debian/libapt-pkg4.12.symbols +++ b/debian/libapt-pkg4.12.symbols @@ -1524,6 +1524,7 @@ libapt-pkg.so.4.12 libapt-pkg4.12 #MINVER# (c++)"GetListOfFilesInDir(std::basic_string, std::allocator > const&, bool)@Base" 0.8.16~exp13 (c++)"pkgCache::DepIterator::IsIgnorable(pkgCache::PkgIterator const&) const@Base" 0.8.16~exp10 (c++)"pkgCache::DepIterator::IsIgnorable(pkgCache::PrvIterator const&) const@Base" 0.8.16~exp10 + (c++)"FileFd::Write(int, void const*, unsigned long long)@Base" 0.8.16~exp14 (c++|optional=private)"pkgCacheGenerator::MergeListGroup(pkgCacheGenerator::ListParser&, std::basic_string, std::allocator > const&)@Base" 0.8.16~exp7 (c++|optional=private)"pkgCacheGenerator::MergeListPackage(pkgCacheGenerator::ListParser&, pkgCache::PkgIterator&)@Base" 0.8.16~exp7 (c++|optional=private)"pkgCacheGenerator::MergeListVersion(pkgCacheGenerator::ListParser&, pkgCache::PkgIterator&, std::basic_string, std::allocator > const&, pkgCache::VerIterator*&)@Base" 0.8.16~exp7 -- cgit v1.2.3