From 9a230738b2287dc5316f601ff0b4765eff9d898d Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 13 Feb 2010 00:39:10 +0100 Subject: Add a more or less useful README file for everything related to MultiArch and install it in the apt-doc package. --- debian/apt-doc.docs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'debian') diff --git a/debian/apt-doc.docs b/debian/apt-doc.docs index a7507f4e7..86aa69ceb 100644 --- a/debian/apt-doc.docs +++ b/debian/apt-doc.docs @@ -1 +1,2 @@ -README.progress-reporting \ No newline at end of file +README.progress-reporting +README.MultiArch -- cgit v1.2.3-70-g09d2 From 4cc6f8dc52144f773b96ee99070d1be0821b984e Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 13 Feb 2010 01:59:22 +0100 Subject: * apt-pkg/deb/dpkgpm.cc: - stdin redirected to /dev/null takes all CPU (Closes: #569488) Thanks to Aurelien Jarno for providing (again) a patch! --- apt-pkg/deb/dpkgpm.cc | 2 +- debian/changelog | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'debian') diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index 565f01b84..3dca2b209 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -1005,7 +1005,7 @@ bool pkgDPkgPM::Go(int OutStatusFd) // wait for input or output here FD_ZERO(&rfds); - if (!stdin_is_dev_null) + if (master >= 0 && !stdin_is_dev_null) FD_SET(0, &rfds); FD_SET(_dpkgin, &rfds); if(master >= 0) diff --git a/debian/changelog b/debian/changelog index a81a2abd0..5d2527cbd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -21,6 +21,9 @@ apt (0.7.26) UNRELEASED; urgency=low - add APT::FTPArchive::AlwaysStat to disable the too aggressive caching if versions are build multiply times (not recommend) Patch by Christoph Goehre, thanks! (Closes: #463260) + * apt-pkg/deb/dpkgpm.cc: + - stdin redirected to /dev/null takes all CPU (Closes: #569488) + Thanks to Aurelien Jarno for providing (again) a patch! [ Ivan Masár ] * Slovak translation update. Closes: #568294 -- cgit v1.2.3-70-g09d2 From 584fb392715b4e6f6c08b0c59352b1c20de8ff99 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sat, 13 Feb 2010 17:22:34 +0100 Subject: - add --arch option for apt-ftparchive packages and contents commands - if an arch is given accept only *_all.deb and *_arch.deb instead of *.deb. Thanks Stephan Bosch for the patch! (Closes: #319710) --- debian/changelog | 3 +++ doc/apt-ftparchive.1.xml | 12 ++++++++++-- ftparchive/apt-ftparchive.cc | 7 ++++--- ftparchive/writer.cc | 30 ++++++++++++++---------------- ftparchive/writer.h | 6 +++--- 5 files changed, 34 insertions(+), 24 deletions(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index 5d2527cbd..addee11cd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -18,6 +18,9 @@ apt (0.7.26) UNRELEASED; urgency=low - allow also to skip the last patch if target is reached, thanks Bernhard R. Link! (Closes: #545699) * ftparchive/writer.{cc,h}: + - add --arch option for packages and contents commands + - if an arch is given accept only *_all.deb and *_arch.deb instead + of *.deb. Thanks Stephan Bosch for the patch! (Closes: #319710) - add APT::FTPArchive::AlwaysStat to disable the too aggressive caching if versions are build multiply times (not recommend) Patch by Christoph Goehre, thanks! (Closes: #463260) diff --git a/doc/apt-ftparchive.1.xml b/doc/apt-ftparchive.1.xml index eb61eae51..f88dbe631 100644 --- a/doc/apt-ftparchive.1.xml +++ b/doc/apt-ftparchive.1.xml @@ -39,6 +39,7 @@ + @@ -542,11 +543,18 @@ for i in Sections do Make the caching databases read only. Configuration Item: APT::FTPArchive::ReadOnlyDB. - + + + + Accept in the packages and contents + commands only package files matching *_arch.deb or + *_all.deb instead of all package files in the given path. + Configuration Item: APT::FTPArchive::Architecture. + - &apt-ftparchive; caches as much as possible of metadata in it is cachedb. If packages + &apt-ftparchive; caches as much as possible of metadata in a cachedb. If packages are recompiled and/or republished with the same version again, this will lead to problems as the now outdated cached metadata like size and checksums will be used. With this option enabled this will no longer happen as it will be checked if the file was changed. diff --git a/ftparchive/apt-ftparchive.cc b/ftparchive/apt-ftparchive.cc index 5b6b3940c..f1a182e52 100644 --- a/ftparchive/apt-ftparchive.cc +++ b/ftparchive/apt-ftparchive.cc @@ -333,7 +333,7 @@ bool PackageMap::GenContents(Configuration &Setup, gettimeofday(&StartTime,0); // Create a package writer object. - ContentsWriter Contents(""); + ContentsWriter Contents("", Arch); if (PkgExt.empty() == false && Contents.SetExts(PkgExt) == false) return _error->Error(_("Package extension list is too long")); if (_error->PendingError() == true) @@ -606,7 +606,7 @@ bool SimpleGenPackages(CommandLine &CmdL) // Create a package writer object. PackagesWriter Packages(_config->Find("APT::FTPArchive::DB"), - Override, ""); + Override, "", _config->Find("APT::FTPArchive::Architecture")); if (_error->PendingError() == true) return false; @@ -629,7 +629,7 @@ bool SimpleGenContents(CommandLine &CmdL) return ShowHelp(CmdL); // Create a package writer object. - ContentsWriter Contents(_config->Find("APT::FTPArchive::DB")); + ContentsWriter Contents(_config->Find("APT::FTPArchive::DB"), _config->Find("APT::FTPArchive::Architecture")); if (_error->PendingError() == true) return false; @@ -910,6 +910,7 @@ int main(int argc, const char *argv[]) {0,"delink","APT::FTPArchive::DeLinkAct",0}, {0,"readonly","APT::FTPArchive::ReadOnlyDB",0}, {0,"contents","APT::FTPArchive::Contents",0}, + {'a',"arch","APT::FTPArchive::Architecture",CommandLine::HasArg}, {'c',"config-file",0,CommandLine::ConfigFile}, {'o',"option",0,CommandLine::ArbItem}, {0,0,0,0}}; diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc index 18a3de0c2..9e5b7d4f3 100644 --- a/ftparchive/writer.cc +++ b/ftparchive/writer.cc @@ -54,7 +54,7 @@ inline void SetTFRewriteData(struct TFRewriteData &tfrd, // FTWScanner::FTWScanner - Constructor /*{{{*/ // --------------------------------------------------------------------- /* */ -FTWScanner::FTWScanner() +FTWScanner::FTWScanner(string const &Arch): Arch(Arch) { ErrorPrinted = false; NoLinkAct = !_config->FindB("APT::FTPArchive::DeLinkAct",true); @@ -299,12 +299,11 @@ bool FTWScanner::Delink(string &FileName,const char *OriginalPath, // --------------------------------------------------------------------- /* */ PackagesWriter::PackagesWriter(string const &DB,string const &Overrides,string const &ExtOverrides, - string const &aArch) : - Db(DB),Stats(Db.Stats), Arch(aArch) + string const &Arch) : + FTWScanner(Arch), Db(DB), Stats(Db.Stats) { Output = stdout; - SetExts(".deb .udeb .foo .bar .baz"); - AddPattern("*.deb"); + SetExts(".deb .udeb"); DeLinkLimit = 0; // Process the command line options @@ -340,17 +339,16 @@ bool FTWScanner::SetExts(string const &Vals) string::size_type Start = 0; while (Start <= Vals.length()-1) { - string::size_type Space = Vals.find(' ',Start); - string::size_type Length; - if (Space == string::npos) + string::size_type const Space = Vals.find(' ',Start); + string::size_type const Length = ((Space == string::npos) ? Vals.length() : Space) - Start; + if ( Arch.empty() == false ) { - Length = Vals.length()-Start; + AddPattern(string("*_") + Arch + Vals.substr(Start, Length)); + AddPattern(string("*_all") + Vals.substr(Start, Length)); } else - { - Length = Space-Start; - } - AddPattern(string("*") + Vals.substr(Start, Length)); + AddPattern(string("*") + Vals.substr(Start, Length)); + Start += Length + 1; } @@ -767,11 +765,11 @@ bool SourcesWriter::DoPackage(string FileName) // ContentsWriter::ContentsWriter - Constructor /*{{{*/ // --------------------------------------------------------------------- /* */ -ContentsWriter::ContentsWriter(string const &DB) : - Db(DB), Stats(Db.Stats) +ContentsWriter::ContentsWriter(string const &DB, string const &Arch) : + FTWScanner(Arch), Db(DB), Stats(Db.Stats) { - AddPattern("*.deb"); + SetExts(".deb"); Output = stdout; } /*}}}*/ diff --git a/ftparchive/writer.h b/ftparchive/writer.h index 520e91dd6..af7ba4edd 100644 --- a/ftparchive/writer.h +++ b/ftparchive/writer.h @@ -34,6 +34,7 @@ class FTWScanner { protected: vector Patterns; + string Arch; const char *OriginalPath; bool ErrorPrinted; @@ -68,7 +69,7 @@ class FTWScanner void AddPattern(string const &Pattern) { Patterns.push_back(Pattern); }; bool SetExts(string const &Vals); - FTWScanner(); + FTWScanner(string const &Arch = string()); }; class PackagesWriter : public FTWScanner @@ -92,7 +93,6 @@ class PackagesWriter : public FTWScanner string DirStrip; FILE *Output; struct CacheDB::Stats &Stats; - string Arch; inline bool ReadOverride(string const &File) {return Over.ReadOverride(File);}; inline bool ReadExtraOverride(string const &File) @@ -125,7 +125,7 @@ class ContentsWriter : public FTWScanner void Finish() {Gen.Print(Output);}; inline bool ReadyDB(string const &DB) {return Db.ReadyDB(DB);}; - ContentsWriter(string const &DB); + ContentsWriter(string const &DB, string const &Arch = string()); virtual ~ContentsWriter() {}; }; -- cgit v1.2.3-70-g09d2 From af3f8112590edf58cab36e72bca6d5f8e161fbc3 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 15 Feb 2010 00:01:36 +0100 Subject: Activate support of :any and stuff in apt-get build-dep as we have now support for MultiArch, so Multi-Arch: allowed packages should already provide package:any --- cmdline/apt-get.cc | 2 +- debian/changelog | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'debian') diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 5ef5533e2..216383bc6 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -2458,7 +2458,7 @@ bool DoBuildDep(CommandLine &CmdL) // Process the build-dependencies vector BuildDeps; - if (Last->BuildDepends(BuildDeps, _config->FindB("APT::Get::Arch-Only",false)) == false) + if (Last->BuildDepends(BuildDeps, _config->FindB("APT::Get::Arch-Only",true)) == false) return _error->Error(_("Unable to get build-dependency information for %s"),Src.c_str()); // Also ensure that build-essential packages are present diff --git a/debian/changelog b/debian/changelog index addee11cd..948846a6c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,9 +8,10 @@ apt (0.7.26) UNRELEASED; urgency=low but we support the usage of the new ABI so libapt users can start to prepare for MultiArch (Closes: #536029) * Ignore :qualifiers after package name in build dependencies - for now as long we don't understand them (Closes: #558103) + in the library by default, but try to honour them in apt-get + as we have some sort of MultiArch support ready (Closes: #558103) * apt-pkg/contrib/mmap.{cc,h}: - - extend it to have a growable flag - unused now but maybe... + - extend it to have a growable flag - unused now but maybe… * apt-pkg/pkgcache.h: - use long instead of short for {Ver,Desc}File size, patch from Víctor Manuel Jáquez Leal, thanks! (Closes: #538917) -- cgit v1.2.3-70-g09d2 From d44b437bd2897bf7fbfbde07a4511c6f7b9ef6a2 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 15 Feb 2010 13:02:27 +0100 Subject: * buildlib/apti18n.h.in, po/makefile: - add ngettext support with P_() --- buildlib/apti18n.h.in | 3 +++ cmdline/apt-get.cc | 12 +++++++----- debian/changelog | 2 ++ po/makefile | 1 + 4 files changed, 13 insertions(+), 5 deletions(-) (limited to 'debian') diff --git a/buildlib/apti18n.h.in b/buildlib/apti18n.h.in index e7beceb09..6928d626c 100644 --- a/buildlib/apti18n.h.in +++ b/buildlib/apti18n.h.in @@ -11,8 +11,10 @@ # include # ifdef APT_DOMAIN # define _(x) dgettext(APT_DOMAIN,x) +# define P_(msg,plural,n) dngettext(APT_DOMAIN,msg,plural,n) # else # define _(x) gettext(x) +# define P_(msg,plural,n) ngettext(msg,plural,n) # endif # define N_(x) x #else @@ -21,5 +23,6 @@ # define textdomain(a) # define bindtextdomain(a, b) # define _(x) x +# define P_(msg,plural,n) (n == 1 ? msg : plural) # define N_(x) x #endif diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index 216383bc6..c8c733716 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -1526,10 +1526,9 @@ bool DoAutomaticRemove(CacheFile &Cache) // only show stuff in the list that is not yet marked for removal if(Cache[Pkg].Delete() == false) { + ++autoRemoveCount; // we don't need to fill the strings if we don't need them - if (smallList == true) - ++autoRemoveCount; - else + if (smallList == false) { autoremovelist += string(Pkg.Name()) + " "; autoremoveversions += string(Cache[Pkg].CandVersion) + "\n"; @@ -1542,9 +1541,12 @@ bool DoAutomaticRemove(CacheFile &Cache) if (doAutoRemove == false && (autoremovelist.empty() == false || autoRemoveCount != 0)) { if (smallList == false) - ShowList(c1out, _("The following packages were automatically installed and are no longer required:"), autoremovelist, autoremoveversions); + ShowList(c1out, P_("The following package is automatically installed and is no longer required:", + "The following packages were automatically installed and are no longer required:", + autoRemoveCount), autoremovelist, autoremoveversions); else - ioprintf(c1out, _("%lu packages were automatically installed and are no longer required.\n"), autoRemoveCount); + 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; } // Now see if we had destroyed anything (if we had done anything) diff --git a/debian/changelog b/debian/changelog index 948846a6c..f328b11a7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -28,6 +28,8 @@ apt (0.7.26) UNRELEASED; urgency=low * apt-pkg/deb/dpkgpm.cc: - stdin redirected to /dev/null takes all CPU (Closes: #569488) Thanks to Aurelien Jarno for providing (again) a patch! + * buildlib/apti18n.h.in, po/makefile: + - add ngettext support with P_() [ Ivan Masár ] * Slovak translation update. Closes: #568294 diff --git a/po/makefile b/po/makefile index 07dc51c07..9f8b7b22e 100644 --- a/po/makefile +++ b/po/makefile @@ -37,6 +37,7 @@ $(POTFILES) : $(PO)/%.pot : cat $(PO)/domains/$*/*.srclist > $(PO)/POTFILES_$*.in $(XGETTEXT) --default-domain=$* --directory=$(BASE) \ --add-comments --foreign --keyword=_ --keyword=N_ \ + --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=$@ -- cgit v1.2.3-70-g09d2 From 1a31359bfe4fdbf9ac1a25ab0b9f013d37099ac4 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Mon, 15 Feb 2010 13:05:53 +0100 Subject: * aptconfiguration.cc: - include all existing Translation files in the Cache (Closes: 564137) Previously if APT was executed with a different LC_* all these invocations needed to rebuild the Cache as too many files were included or missing: Now the lists-directory is checked for Translation-files and all these included in getLanguages() regardless of the environment setting (after a "none" so APT will not use them for displaying information). --- apt-pkg/aptconfiguration.cc | 78 ++++++++++++++++++++++++++++++++++++---- apt-pkg/deb/debmetaindex.cc | 5 ++- debian/changelog | 2 ++ test/libapt/getlanguages_test.cc | 22 ++++++++++-- test/libapt/run-tests.sh | 7 ++++ 5 files changed, 105 insertions(+), 9 deletions(-) (limited to 'debian') diff --git a/apt-pkg/aptconfiguration.cc b/apt-pkg/aptconfiguration.cc index f1989599b..429219cbd 100644 --- a/apt-pkg/aptconfiguration.cc +++ b/apt-pkg/aptconfiguration.cc @@ -14,9 +14,12 @@ #include #include -#include -#include +#include +#include + #include +#include +#include /*}}}*/ namespace APT { // getCompressionTypes - Return Vector of usbale compressiontypes /*{{{*/ @@ -119,6 +122,37 @@ std::vector const Configuration::getLanguages(bool const &All, } } + // Include all Language codes we have a Translation file for in /var/lib/apt/lists + // so they will be all included in the Cache. + std::vector builtin; + DIR *D = opendir(_config->FindDir("Dir::State::lists").c_str()); + if (D != 0) { + builtin.push_back("none"); + for (struct dirent *Ent = readdir(D); Ent != 0; Ent = readdir(D)) { + string const name = Ent->d_name; + size_t const foundDash = name.rfind("-"); + size_t const foundUnderscore = name.rfind("_"); + if (foundDash == string::npos || foundUnderscore == string::npos || + foundDash <= foundUnderscore || + name.substr(foundUnderscore+1, foundDash-(foundUnderscore+1)) != "Translation") + continue; + string const c = name.substr(foundDash+1); + if (unlikely(c.empty() == true) || c == "en") + continue; + // Skip unusual files, like backups or that alike + string::const_iterator s = c.begin(); + for (;s != c.end(); ++s) { + if (isalpha(*s) == 0) + break; + } + if (s != c.end()) + continue; + if (std::find(builtin.begin(), builtin.end(), c) != builtin.end()) + continue; + builtin.push_back(c); + } + } + // get the environment language codes: LC_MESSAGES (and later LANGUAGE) // we extract both, a long and a short code and then we will // check if we actually need both (rare) or if the short is enough @@ -134,7 +168,11 @@ std::vector const Configuration::getLanguages(bool const &All, if (envLong == "C") { codes.push_back("en"); allCodes = codes; - return codes; + allCodes.insert(allCodes.end(), builtin.begin(), builtin.end()); + if (All == true) + return allCodes; + else + return codes; } // to save the servers from unneeded queries, we only try also long codes @@ -159,8 +197,16 @@ std::vector const Configuration::getLanguages(bool const &All, if (oldAcquire.empty() == false && oldAcquire != "environment") { if (oldAcquire != "none") codes.push_back(oldAcquire); + codes.push_back("en"); allCodes = codes; - return codes; + for (std::vector::const_iterator b = builtin.begin(); + b != builtin.end(); ++b) + if (std::find(allCodes.begin(), allCodes.end(), *b) == allCodes.end()) + allCodes.push_back(*b); + if (All == true) + return allCodes; + else + return codes; } // It is very likely we will need to environment codes later, @@ -207,7 +253,14 @@ std::vector const Configuration::getLanguages(bool const &All, } else if (forceLang != "none") codes.push_back(forceLang); allCodes = codes; - return codes; + for (std::vector::const_iterator b = builtin.begin(); + b != builtin.end(); ++b) + if (std::find(allCodes.begin(), allCodes.end(), *b) == allCodes.end()) + allCodes.push_back(*b); + if (All == true) + return allCodes; + else + return codes; } std::vector const lang = _config->FindVector("Acquire::Languages"); @@ -217,7 +270,14 @@ std::vector const Configuration::getLanguages(bool const &All, if (envShort != "en") codes.push_back("en"); allCodes = codes; - return codes; + for (std::vector::const_iterator b = builtin.begin(); + b != builtin.end(); ++b) + if (std::find(allCodes.begin(), allCodes.end(), *b) == allCodes.end()) + allCodes.push_back(*b); + if (All == true) + return allCodes; + else + return codes; } // the configs define the order, so add the environment @@ -245,6 +305,12 @@ std::vector const Configuration::getLanguages(bool const &All, codes.push_back(*l); allCodes.push_back(*l); } + + for (std::vector::const_iterator b = builtin.begin(); + b != builtin.end(); ++b) + if (std::find(allCodes.begin(), allCodes.end(), *b) == allCodes.end()) + allCodes.push_back(*b); + if (All == true) return allCodes; else diff --git a/apt-pkg/deb/debmetaindex.cc b/apt-pkg/deb/debmetaindex.cc index eb01a0156..0e4e6df9e 100644 --- a/apt-pkg/deb/debmetaindex.cc +++ b/apt-pkg/deb/debmetaindex.cc @@ -214,6 +214,7 @@ bool debReleaseIndex::GetIndexes(pkgAcquire *Owner, bool const &GetAll) const s != sections.end(); ++s) for (set::const_iterator l = s->second.begin(); l != s->second.end(); l++) { + if (*l == "none") continue; debTranslationsIndex i = debTranslationsIndex(URI,Dist,s->first,(*l).c_str()); i.GetIndexes(Owner); } @@ -268,8 +269,10 @@ vector *debReleaseIndex::GetIndexFiles() { for (map >::const_iterator s = sections.begin(); s != sections.end(); ++s) for (set::const_iterator l = s->second.begin(); - l != s->second.end(); l++) + l != s->second.end(); l++) { + if (*l == "none") continue; Indexes->push_back(new debTranslationsIndex(URI,Dist,s->first,(*l).c_str())); + } return Indexes; } diff --git a/debian/changelog b/debian/changelog index f328b11a7..fdce01098 100644 --- a/debian/changelog +++ b/debian/changelog @@ -30,6 +30,8 @@ apt (0.7.26) UNRELEASED; urgency=low Thanks to Aurelien Jarno for providing (again) a patch! * buildlib/apti18n.h.in, po/makefile: - add ngettext support with P_() + * aptconfiguration.cc: + - include all existing Translation files in the Cache (Closes: 564137) [ Ivan Masár ] * Slovak translation update. Closes: #568294 diff --git a/test/libapt/getlanguages_test.cc b/test/libapt/getlanguages_test.cc index fb7afb4ef..0db190b50 100644 --- a/test/libapt/getlanguages_test.cc +++ b/test/libapt/getlanguages_test.cc @@ -16,9 +16,15 @@ void dumpVector(std::vector vec) { int main(int argc,char *argv[]) { + if (argc != 2) { + std::cout << "One parameter expected - given " << argc << std::endl; + return 100; + } + char const* env[2]; env[0] = "de_DE.UTF-8"; env[1] = ""; + std::vector vec = APT::Configuration::getLanguages(false, false, env); equals(vec.size(), 2); equals(vec[0], "de"); @@ -87,6 +93,16 @@ int main(int argc,char *argv[]) equals(vec[0], "de"); equals(vec[1], "en"); + _config->Set("Dir::State::lists", argv[1]); + vec = APT::Configuration::getLanguages(true, false, env); + equals(vec.size(), 5); + equals(vec[0], "de"); + equals(vec[1], "en"); + equals(vec[2], "none"); + equals(vec[3], "pt"); + equals(vec[4], "tr"); + + _config->Set("Dir::State::lists", "/non-existing-dir"); _config->Set("Acquire::Languages::1", "none"); env[0] = "de_DE.UTF-8"; vec = APT::Configuration::getLanguages(false, false, env); @@ -113,12 +129,14 @@ int main(int argc,char *argv[]) _config->Set("APT::Acquire::Translation", "ast_DE"); env[0] = "de_DE.UTF-8"; vec = APT::Configuration::getLanguages(true, false, env); - equals(vec.size(), 1); + equals(vec.size(), 2); equals(vec[0], "ast_DE"); + equals(vec[1], "en"); _config->Set("APT::Acquire::Translation", "none"); env[0] = "de_DE.UTF-8"; vec = APT::Configuration::getLanguages(true, false, env); - equals(vec.size(), 0); + equals(vec.size(), 1); + equals(vec[0], "en"); return 0; } diff --git a/test/libapt/run-tests.sh b/test/libapt/run-tests.sh index 1fcfb6861..f9df1af5f 100755 --- a/test/libapt/run-tests.sh +++ b/test/libapt/run-tests.sh @@ -39,6 +39,13 @@ do "${tmppath}/01invalíd" ln -s "${tmppath}/anormalfile" "${tmppath}/linkedfile.list" ln -s "${tmppath}/non-existing-file" "${tmppath}/brokenlink.list" + elif [ $name = "getLanguages${EXT}" ]; then + echo "Prepare Testarea for \033[1;35m$name\033[0m ..." + tmppath=$(mktemp -d) + touch "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-tr" \ + "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-pt" \ + "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-se~" \ + "${tmppath}/ftp.de.debian.org_debian_dists_sid_main_i18n_Translation-st.bak" fi echo -n "Testing with \033[1;35m${name}\033[0m ... " -- cgit v1.2.3-70-g09d2 From d6b69b51004b9418478c8d5d5a5c59d5813f1289 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Tue, 16 Feb 2010 22:05:10 +0100 Subject: * debian/control: - update with no changes to debian policy 3.8.4 --- debian/changelog | 2 ++ debian/control | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index fdce01098..9cc632c37 100644 --- a/debian/changelog +++ b/debian/changelog @@ -32,6 +32,8 @@ apt (0.7.26) UNRELEASED; urgency=low - add ngettext support with P_() * aptconfiguration.cc: - include all existing Translation files in the Cache (Closes: 564137) + * debian/control: + - update with no changes to debian policy 3.8.4 [ Ivan Masár ] * Slovak translation update. Closes: #568294 diff --git a/debian/control b/debian/control index d756871d1..de2bf6544 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,7 @@ Maintainer: APT Development Team Uploaders: Michael Vogt , Otavio Salvador , Christian Perrier , Daniel Burrows , Luca Bruno , Julian Andres Klode -Standards-Version: 3.8.3 +Standards-Version: 3.8.4 Build-Depends: debhelper (>= 5.0), libdb-dev, gettext (>= 0.12), libcurl4-gnutls-dev | libcurl3-gnutls-dev (>= 7.15.5), debiandoc-sgml, xsltproc, docbook-xsl, po4a (>= 0.34-2), autotools-dev Vcs-Bzr: http://bzr.debian.org/apt/debian-sid/ -- cgit v1.2.3-70-g09d2 From a1af1f3b1b7700d1108ee7648bce7b9d2c2c506b Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Wed, 17 Feb 2010 22:09:02 +0100 Subject: * doc/apt_preferences.5.xml: - explicitly warn against careless use (Closes: #567669) --- debian/changelog | 2 ++ doc/apt_preferences.5.xml | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'debian') diff --git a/debian/changelog b/debian/changelog index 9cc632c37..8a4e2ac20 100644 --- a/debian/changelog +++ b/debian/changelog @@ -34,6 +34,8 @@ apt (0.7.26) UNRELEASED; urgency=low - include all existing Translation files in the Cache (Closes: 564137) * debian/control: - update with no changes to debian policy 3.8.4 + * doc/apt_preferences.5.xml: + - explicitly warn against careless use (Closes: #567669) [ Ivan Masár ] * Slovak translation update. Closes: #568294 diff --git a/doc/apt_preferences.5.xml b/doc/apt_preferences.5.xml index 9a4791c08..3d7896226 100644 --- a/doc/apt_preferences.5.xml +++ b/doc/apt_preferences.5.xml @@ -14,7 +14,7 @@ &apt-email; &apt-product; - 04 May 2009 + 16 February 2010 @@ -53,6 +53,14 @@ earliest in the &sources-list; file. The APT preferences file does not affect the choice of instance, only the choice of version. +Preferences are a strong power in the hands of a system administrator +but they can become also their biggest nightmare if used without care! +APT will not questioning the preferences so wrong settings will therefore +lead to uninstallable packages or wrong decisions while upgrading packages. +Even more problems will arise if multiply distribution releases are mixed +without a good understanding of the following paragraphs. +You have been warned. + Note that the files in the /etc/apt/preferences.d directory are parsed in alphanumeric ascending order and need to obey the following naming convention: The files have no or "pref" -- cgit v1.2.3-70-g09d2