diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2010-05-04 10:06:57 +0200 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2010-05-04 10:06:57 +0200 |
commit | af8a8da9c1aa6506d230a0df8abc670661176ba3 (patch) | |
tree | 343935c56f2294c835082233398fdef5d5d5e2eb | |
parent | 549edd163e34a50091623b47881f2eefbdc53aca (diff) | |
parent | edde664d0cc5fe46f572696c605832700c553b9e (diff) |
merged from davids branch
-rw-r--r-- | apt-pkg/acquire-item.cc | 28 | ||||
-rw-r--r-- | apt-pkg/acquire.cc | 98 | ||||
-rw-r--r-- | apt-pkg/acquire.h | 31 | ||||
-rw-r--r-- | apt-pkg/algorithms.cc | 4 | ||||
-rw-r--r-- | apt-pkg/contrib/configuration.cc | 2 | ||||
-rw-r--r-- | apt-pkg/contrib/fileutl.cc | 57 | ||||
-rw-r--r-- | apt-pkg/contrib/fileutl.h | 8 | ||||
-rw-r--r-- | apt-pkg/deb/dpkgpm.cc | 17 | ||||
-rw-r--r-- | apt-pkg/depcache.cc | 117 | ||||
-rw-r--r-- | apt-pkg/depcache.h | 3 | ||||
-rw-r--r-- | apt-pkg/packagemanager.cc | 14 | ||||
-rw-r--r-- | apt-pkg/pkgcachegen.cc | 15 | ||||
-rw-r--r-- | apt-pkg/sourcelist.cc | 7 | ||||
-rw-r--r-- | cmdline/apt-cache.cc | 12 | ||||
-rw-r--r-- | cmdline/apt-get.cc | 84 | ||||
-rw-r--r-- | debian/changelog | 50 | ||||
-rw-r--r-- | doc/apt.ent | 4 | ||||
-rw-r--r-- | doc/examples/configure-index | 1 | ||||
-rw-r--r-- | doc/po/de.po | 8 | ||||
-rwxr-xr-x | dselect/install | 18 | ||||
-rw-r--r-- | ftparchive/writer.cc | 40 | ||||
-rw-r--r-- | po/apt-all.pot | 4 | ||||
-rw-r--r-- | po/ar.po | 8 | ||||
-rw-r--r-- | po/ast.po | 8 | ||||
-rw-r--r-- | po/bg.po | 4 | ||||
-rw-r--r-- | po/bs.po | 4 | ||||
-rw-r--r-- | po/ca.po | 12 | ||||
-rw-r--r-- | po/cs.po | 4 | ||||
-rw-r--r-- | po/cy.po | 8 | ||||
-rw-r--r-- | po/da.po | 6 | ||||
-rw-r--r-- | po/de.po | 4 | ||||
-rw-r--r-- | po/dz.po | 8 | ||||
-rw-r--r-- | po/el.po | 4 | ||||
-rw-r--r-- | po/en_GB.po | 4 | ||||
-rw-r--r-- | po/es.po | 12 | ||||
-rw-r--r-- | po/eu.po | 8 | ||||
-rw-r--r-- | po/fi.po | 4 | ||||
-rw-r--r-- | po/fr.po | 4 | ||||
-rw-r--r-- | po/gl.po | 4 | ||||
-rw-r--r-- | po/he.po | 4 | ||||
-rw-r--r-- | po/hu.po | 4 | ||||
-rw-r--r-- | po/it.po | 4 | ||||
-rw-r--r-- | po/ja.po | 4 | ||||
-rw-r--r-- | po/km.po | 8 | ||||
-rw-r--r-- | po/ko.po | 8 | ||||
-rw-r--r-- | po/ku.po | 4 | ||||
-rw-r--r-- | po/lt.po | 4 | ||||
-rw-r--r-- | po/mr.po | 8 | ||||
-rw-r--r-- | po/nb.po | 4 | ||||
-rw-r--r-- | po/ne.po | 8 | ||||
-rw-r--r-- | po/nl.po | 4 | ||||
-rw-r--r-- | po/nn.po | 4 | ||||
-rw-r--r-- | po/pl.po | 4 | ||||
-rw-r--r-- | po/pt.po | 14 | ||||
-rw-r--r-- | po/pt_BR.po | 8 | ||||
-rw-r--r-- | po/ro.po | 4 | ||||
-rw-r--r-- | po/ru.po | 4 | ||||
-rw-r--r-- | po/sk.po | 4 | ||||
-rw-r--r-- | po/sl.po | 4 | ||||
-rw-r--r-- | po/sv.po | 4 | ||||
-rw-r--r-- | po/th.po | 8 | ||||
-rw-r--r-- | po/tl.po | 8 | ||||
-rw-r--r-- | po/uk.po | 4 | ||||
-rw-r--r-- | po/vi.po | 4 | ||||
-rw-r--r-- | po/zh_CN.po | 4 | ||||
-rw-r--r-- | po/zh_TW.po | 8 | ||||
-rw-r--r-- | test/makefile | 8 |
67 files changed, 593 insertions, 293 deletions
diff --git a/apt-pkg/acquire-item.cc b/apt-pkg/acquire-item.cc index 6d4336425..1f253bb81 100644 --- a/apt-pkg/acquire-item.cc +++ b/apt-pkg/acquire-item.cc @@ -1327,7 +1327,8 @@ pkgAcqArchive::pkgAcqArchive(pkgAcquire *Owner,pkgSourceList *Sources, the archive is already available in the cache and stashs the MD5 for checking later. */ bool pkgAcqArchive::QueueNext() -{ +{ + string const ForceHash = _config->Find("Acquire::ForceHash"); for (; Vf.end() == false; Vf++) { // Ignore not source sources @@ -1350,12 +1351,25 @@ bool pkgAcqArchive::QueueNext() return false; string PkgFile = Parse.FileName(); - if(Parse.SHA256Hash() != "") - ExpectedHash = HashString("SHA256", Parse.SHA256Hash()); - else if (Parse.SHA1Hash() != "") - ExpectedHash = HashString("SHA1", Parse.SHA1Hash()); - else - ExpectedHash = HashString("MD5Sum", Parse.MD5Hash()); + if (ForceHash.empty() == false) + { + if(stringcasecmp(ForceHash, "sha256") == 0) + ExpectedHash = HashString("SHA256", Parse.SHA256Hash()); + else if (stringcasecmp(ForceHash, "sha1") == 0) + ExpectedHash = HashString("SHA1", Parse.SHA1Hash()); + else + ExpectedHash = HashString("MD5Sum", Parse.MD5Hash()); + } + else + { + string Hash; + if ((Hash = Parse.SHA256Hash()).empty() == false) + ExpectedHash = HashString("SHA256", Hash); + else if ((Hash = Parse.SHA1Hash()).empty() == false) + ExpectedHash = HashString("SHA1", Hash); + else + ExpectedHash = HashString("MD5Sum", Parse.MD5Hash()); + } if (PkgFile.empty() == true) return _error->Error(_("The package index files are corrupted. No Filename: " "field for package %s."), diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc index 74510ae21..832eaa02c 100644 --- a/apt-pkg/acquire.cc +++ b/apt-pkg/acquire.cc @@ -19,6 +19,7 @@ #include <apt-pkg/configuration.h> #include <apt-pkg/error.h> #include <apt-pkg/strutl.h> +#include <apt-pkg/fileutl.h> #include <apti18n.h> @@ -29,7 +30,6 @@ #include <dirent.h> #include <sys/time.h> #include <errno.h> -#include <sys/stat.h> /*}}}*/ using namespace std; @@ -37,32 +37,81 @@ using namespace std; // Acquire::pkgAcquire - Constructor /*{{{*/ // --------------------------------------------------------------------- /* We grab some runtime state from the configuration space */ -pkgAcquire::pkgAcquire(pkgAcquireStatus *Log) : Log(Log) +pkgAcquire::pkgAcquire() : Queues(0), Workers(0), Configs(0), Log(NULL), ToFetch(0), + Debug(_config->FindB("Debug::pkgAcquire",false)), + Running(false), LockFD(-1) { - Queues = 0; - Configs = 0; - Workers = 0; - ToFetch = 0; - Running = false; - - string Mode = _config->Find("Acquire::Queue-Mode","host"); + string const Mode = _config->Find("Acquire::Queue-Mode","host"); if (strcasecmp(Mode.c_str(),"host") == 0) QueueMode = QueueHost; if (strcasecmp(Mode.c_str(),"access") == 0) - QueueMode = QueueAccess; + QueueMode = QueueAccess; +} +pkgAcquire::pkgAcquire(pkgAcquireStatus *Progress) : Queues(0), Workers(0), + Configs(0), Log(Progress), ToFetch(0), + Debug(_config->FindB("Debug::pkgAcquire",false)), + Running(false), LockFD(-1) +{ + string const Mode = _config->Find("Acquire::Queue-Mode","host"); + if (strcasecmp(Mode.c_str(),"host") == 0) + QueueMode = QueueHost; + if (strcasecmp(Mode.c_str(),"access") == 0) + QueueMode = QueueAccess; + Setup(Progress, ""); +} + /*}}}*/ +// Acquire::Setup - Delayed Constructor /*{{{*/ +// --------------------------------------------------------------------- +/* Do everything needed to be a complete Acquire object and report the + success (or failure) back so the user knows that something is wrong… */ +bool pkgAcquire::Setup(pkgAcquireStatus *Progress, string const &Lock) +{ + Log = Progress; - Debug = _config->FindB("Debug::pkgAcquire",false); - - // This is really a stupid place for this - struct stat St; - if (stat((_config->FindDir("Dir::State::lists") + "partial/").c_str(),&St) != 0 || - S_ISDIR(St.st_mode) == 0) - _error->Error(_("Lists directory %spartial is missing."), - _config->FindDir("Dir::State::lists").c_str()); - if (stat((_config->FindDir("Dir::Cache::Archives") + "partial/").c_str(),&St) != 0 || - S_ISDIR(St.st_mode) == 0) - _error->Error(_("Archive directory %spartial is missing."), - _config->FindDir("Dir::Cache::Archives").c_str()); + // check for existence and possibly create auxiliary directories + string const listDir = _config->FindDir("Dir::State::lists"); + string const partialListDir = listDir + "partial/"; + string const archivesDir = _config->FindDir("Dir::Cache::Archives"); + string const partialArchivesDir = archivesDir + "partial/"; + + if (CheckDirectory(_config->FindDir("Dir::State"), partialListDir) == false && + CheckDirectory(listDir, partialListDir) == false) + return _error->Errno("Acquire", _("List directory %spartial is missing."), listDir.c_str()); + + if (CheckDirectory(_config->FindDir("Dir::Cache"), partialArchivesDir) == false && + CheckDirectory(archivesDir, partialArchivesDir) == false) + return _error->Errno("Acquire", _("Archives directory %spartial is missing."), archivesDir.c_str()); + + if (Lock.empty() == true || _config->FindB("Debug::NoLocking", false) == true) + return true; + + // Lock the directory this acquire object will work in + LockFD = GetLock(flCombine(Lock, "lock")); + if (LockFD == -1) + return _error->Error(_("Unable to lock directory %s"), Lock.c_str()); + + return true; +} + /*}}}*/ +// Acquire::CheckDirectory - ensure that the given directory exists /*{{{*/ +// --------------------------------------------------------------------- +/* a small wrapper around CreateDirectory to check if it exists and to + remove the trailing "/apt/" from the parent directory if needed */ +bool pkgAcquire::CheckDirectory(string const &Parent, string const &Path) const +{ + if (DirectoryExists(Path) == true) + return true; + + size_t const len = Parent.size(); + if (len > 5 && Parent.find("/apt/", len - 6, 5) == len - 5) + { + if (CreateDirectory(Parent.substr(0,len-5), Path) == true) + return true; + } + else if (CreateDirectory(Parent, Path) == true) + return true; + + return false; } /*}}}*/ // Acquire::~pkgAcquire - Destructor /*{{{*/ @@ -71,7 +120,10 @@ pkgAcquire::pkgAcquire(pkgAcquireStatus *Log) : Log(Log) pkgAcquire::~pkgAcquire() { Shutdown(); - + + if (LockFD != -1) + close(LockFD); + while (Configs != 0) { MethodConfig *Jnk = Configs; diff --git a/apt-pkg/acquire.h b/apt-pkg/acquire.h index 6c130c1b3..9e91a9f67 100644 --- a/apt-pkg/acquire.h +++ b/apt-pkg/acquire.h @@ -66,6 +66,8 @@ #ifndef PKGLIB_ACQUIRE_H #define PKGLIB_ACQUIRE_H +#include <apt-pkg/macros.h> + #include <vector> #include <string> @@ -161,7 +163,7 @@ class pkgAcquire QueueAccess} QueueMode; /** \brief If \b true, debugging information will be dumped to std::clog. */ - bool Debug; + bool const Debug; /** \brief If \b true, a download is currently in progress. */ bool Running; @@ -332,15 +334,22 @@ class pkgAcquire */ double PartialPresent(); - /** \brief Construct a new pkgAcquire. + /** \brief Delayed constructor * - * \param Log The progress indicator associated with this - * download, or \b NULL for none. This object is not owned by the + * \param Progress indicator associated with this download or + * \b NULL for none. This object is not owned by the * download process and will not be deleted when the pkgAcquire * object is destroyed. Naturally, it should live for at least as * long as the pkgAcquire object does. + * \param Lock defines a lock file that should be acquired to ensure + * only one Acquire class is in action at the time or an empty string + * if no lock file should be used. */ - pkgAcquire(pkgAcquireStatus *Log = 0); + bool Setup(pkgAcquireStatus *Progress = NULL, string const &Lock = ""); + + /** \brief Construct a new pkgAcquire. */ + pkgAcquire(pkgAcquireStatus *Log) __deprecated; + pkgAcquire(); /** \brief Destroy this pkgAcquire object. * @@ -348,6 +357,18 @@ class pkgAcquire * this download. */ virtual ~pkgAcquire(); + + private: + /** \brief FD of the Lock file we acquire in Setup (if any) */ + int LockFD; + + /** \brief Ensure the existence of the given Path + * + * \param Parent directory of the Path directory - a trailing + * /apt/ will be removed before CreateDirectory call. + * \param Path which should exist after (successful) call + */ + bool CheckDirectory(string const &Parent, string const &Path) const; }; /** \brief Represents a single download source from which an item diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index f8a9e210c..f1e51131a 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -1398,7 +1398,9 @@ bool ListUpdate(pkgAcquireStatus &Stat, int PulseInterval) { pkgAcquire::RunResult res; - pkgAcquire Fetcher(&Stat); + pkgAcquire Fetcher; + if (Fetcher.Setup(&Stat, _config->FindDir("Dir::State::Lists")) == false) + return false; // Populate it with the source selection if (List.GetIndexes(&Fetcher) == false) diff --git a/apt-pkg/contrib/configuration.cc b/apt-pkg/contrib/configuration.cc index 7588b041c..9129d92f0 100644 --- a/apt-pkg/contrib/configuration.cc +++ b/apt-pkg/contrib/configuration.cc @@ -773,6 +773,8 @@ bool ReadConfigFile(Configuration &Conf,const string &FName,bool const &AsSectio else return _error->Error(_("Syntax error %s:%u: Unsupported directive '%s'"),FName.c_str(),CurLine,Tag.c_str()); } + else if (Tag.empty() == true && NoWord == false && Word == "#clear") + return _error->Error(_("Syntax error %s:%u: clear directive requires an option tree as argument"),FName.c_str(),CurLine); else { // Set the item in the configuration class diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index da32983f1..16f7ce929 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -18,6 +18,7 @@ /*}}}*/ // Include Files /*{{{*/ #include <apt-pkg/fileutl.h> +#include <apt-pkg/strutl.h> #include <apt-pkg/error.h> #include <apt-pkg/sptr.h> #include <apt-pkg/configuration.h> @@ -197,16 +198,62 @@ bool FileExists(string File) return true; } /*}}}*/ +// DirectoryExists - Check if a directory exists and is really one /*{{{*/ +// --------------------------------------------------------------------- +/* */ +bool DirectoryExists(string const &Path) +{ + struct stat Buf; + if (stat(Path.c_str(),&Buf) != 0) + return false; + return ((Buf.st_mode & S_IFDIR) != 0); +} + /*}}}*/ +// CreateDirectory - poor man's mkdir -p guarded by a parent directory /*{{{*/ +// --------------------------------------------------------------------- +/* This method will create all directories needed for path in good old + mkdir -p style but refuses to do this if Parent is not a prefix of + this Path. Example: /var/cache/ and /var/cache/apt/archives are given, + so it will create apt/archives if /var/cache exists - on the other + hand if the parent is /var/lib the creation will fail as this path + is not a parent of the path to be generated. */ +bool CreateDirectory(string const &Parent, string const &Path) +{ + if (Parent.empty() == true || Path.empty() == true) + return false; + + if (DirectoryExists(Path) == true) + return true; + + if (DirectoryExists(Parent) == false) + return false; + + // we are not going to create directories "into the blue" + if (Path.find(Parent, 0) != 0) + return false; + + vector<string> const dirs = VectorizeString(Path.substr(Parent.size()), '/'); + string progress = Parent; + for (vector<string>::const_iterator d = dirs.begin(); d != dirs.end(); ++d) + { + if (d->empty() == true) + continue; + + progress.append("/").append(*d); + if (DirectoryExists(progress) == true) + continue; + + if (mkdir(progress.c_str(), 0755) != 0) + return false; + } + return true; +} + /*}}}*/ // GetListOfFilesInDir - returns a vector of files in the given dir /*{{{*/ // --------------------------------------------------------------------- /* If an extension is given only files with this extension are included in the returned vector, otherwise every "normal" file is included. */ std::vector<string> GetListOfFilesInDir(string const &Dir, string const &Ext, - bool const &SortList) -{ - return GetListOfFilesInDir(Dir, Ext, SortList, false); -} -std::vector<string> GetListOfFilesInDir(string const &Dir, string const &Ext, bool const &SortList, bool const &AllowNoExt) { std::vector<string> ext; diff --git a/apt-pkg/contrib/fileutl.h b/apt-pkg/contrib/fileutl.h index 85a94898c..003bd9b83 100644 --- a/apt-pkg/contrib/fileutl.h +++ b/apt-pkg/contrib/fileutl.h @@ -21,6 +21,7 @@ #ifndef PKGLIB_FILEUTL_H #define PKGLIB_FILEUTL_H +#include <apt-pkg/macros.h> #include <string> #include <vector> @@ -82,11 +83,10 @@ bool RunScripts(const char *Cnf); bool CopyFile(FileFd &From,FileFd &To); int GetLock(string File,bool Errors = true); bool FileExists(string File); -// FIXME: next ABI-Break: merge the two method-headers +bool DirectoryExists(string const &Path) __attrib_const; +bool CreateDirectory(string const &Parent, string const &Path); std::vector<string> GetListOfFilesInDir(string const &Dir, string const &Ext, - bool const &SortList); -std::vector<string> GetListOfFilesInDir(string const &Dir, string const &Ext, - bool const &SortList, bool const &AllowNoExt); + bool const &SortList, bool const &AllowNoExt=false); std::vector<string> GetListOfFilesInDir(string const &Dir, std::vector<string> const &Ext, bool const &SortList); string SafeGetCWD(); diff --git a/apt-pkg/deb/dpkgpm.cc b/apt-pkg/deb/dpkgpm.cc index c0efa7b59..ca8faa8a5 100644 --- a/apt-pkg/deb/dpkgpm.cc +++ b/apt-pkg/deb/dpkgpm.cc @@ -105,7 +105,7 @@ ionice(int PID) /* */ pkgDPkgPM::pkgDPkgPM(pkgDepCache *Cache) : pkgPackageManager(Cache), dpkgbuf_pos(0), - term_out(NULL), PackagesDone(0), PackagesTotal(0) + term_out(NULL), history_out(NULL), PackagesDone(0), PackagesTotal(0) { } /*}}}*/ @@ -124,7 +124,19 @@ bool pkgDPkgPM::Install(PkgIterator Pkg,string File) if (File.empty() == true || Pkg.end() == true) return _error->Error("Internal Error, No file name for %s",Pkg.Name()); - List.push_back(Item(Item::Install,Pkg,File)); + // If the filename string begins with DPkg::Chroot-Directory, return the + // substr that is within the chroot so dpkg can access it. + string const chrootdir = _config->FindDir("DPkg::Chroot-Directory","/"); + if (chrootdir != "/" && File.find(chrootdir) == 0) + { + size_t len = chrootdir.length(); + if (chrootdir.at(len - 1) == '/') + len--; + List.push_back(Item(Item::Install,Pkg,File.substr(len))); + } + else + List.push_back(Item(Item::Install,Pkg,File)); + return true; } /*}}}*/ @@ -651,6 +663,7 @@ bool pkgDPkgPM::CloseLog() fprintf(history_out, "End-Date: %s\n", timestr); fclose(history_out); } + history_out = NULL; return true; } diff --git a/apt-pkg/depcache.cc b/apt-pkg/depcache.cc index 2c7cdd5c2..423161b13 100644 --- a/apt-pkg/depcache.cc +++ b/apt-pkg/depcache.cc @@ -841,42 +841,15 @@ void pkgDepCache::Update(OpProgress *Prog) if (installed == false) recheck.insert(G.Index()); } - std::vector<std::string> Archs = APT::Configuration::getArchitectures(); - bool checkChanged = false; - do { - for(std::set<unsigned long>::const_iterator g = recheck.begin(); - g != recheck.end(); ++g) { - GrpIterator G = GrpIterator(*Cache, Cache->GrpP + *g); - VerIterator allV = G.FindPkg("all").CurrentVer(); - for (std::vector<std::string>::const_iterator a = Archs.begin(); - a != Archs.end(); ++a) - { - PkgIterator P = G.FindPkg(*a); - if (P.end() == true) continue; - for (VerIterator V = P.VersionList(); V.end() != true; ++V) - { - // FIXME: String comparison isn't a save indicator! - if (strcmp(allV.VerStr(),V.VerStr()) != 0) - continue; - unsigned char const CurDepState = VersionState(V.DependsList(),DepInstall,DepInstMin,DepInstPolicy); - if ((CurDepState & DepInstMin) != DepInstMin) - break; // we found the correct version, but it is broken. Better try another arch or later again - P->CurrentVer = V.Index(); - AddStates(P); - Update(P); - AddSizes(P); - checkChanged = true; - break; - } - } - recheck.erase(g); - } - } while (checkChanged == true && recheck.empty() == false); - if (_config->FindB("Debug::MultiArchKiller", false) == true) - for(std::set<unsigned long>::const_iterator g = recheck.begin(); - g != recheck.end(); ++g) - std::cout << "No pseudo package for »" << GrpIterator(*Cache, Cache->GrpP + *g).Name() << "« installed" << std::endl; + while (recheck.empty() != true) + { + std::set<unsigned long>::const_iterator g = recheck.begin(); + unsigned long const G = *g; + recheck.erase(g); + if (unlikely(ReInstallPseudoForGroup(G, recheck) == false)) + _error->Warning(_("Internal error, group »%s« has no installable pseudo package"), GrpIterator(*Cache, Cache->GrpP + *g).Name()); + } } if (Prog != 0) @@ -885,6 +858,80 @@ void pkgDepCache::Update(OpProgress *Prog) readStateFile(Prog); } /*}}}*/ +// DepCache::ReInstallPseudoForGroup - MultiArch helper for Update() /*{{{*/ +// --------------------------------------------------------------------- +/* RemovePseudoInstalledPkg() is very successful. It even kills packages + to an amount that no pseudo package is left, but we need a pseudo package + for upgrading senarios so we need to reinstall one pseudopackage which + doesn't break everything. Thankfully we can't have architecture depending + negative dependencies so this problem is already eliminated */ +bool pkgDepCache::ReInstallPseudoForGroup(pkgCache::PkgIterator const &P, std::set<unsigned long> &recheck) +{ + if (P->CurrentVer != 0) + return true; + // recursive call for packages which provide this package + for (pkgCache::PrvIterator Prv = P.ProvidesList(); Prv.end() != true; ++Prv) + ReInstallPseudoForGroup(Prv.OwnerPkg(), recheck); + // check if we actually need to look at this group + unsigned long const G = P->Group; + std::set<unsigned long>::const_iterator Pi = recheck.find(G); + if (Pi == recheck.end()) + return true; + recheck.erase(Pi); // remove here, so we can't fall into an endless loop + if (unlikely(ReInstallPseudoForGroup(G, recheck) == false)) + { + recheck.insert(G); + return false; + } + return true; +} +bool pkgDepCache::ReInstallPseudoForGroup(unsigned long const &G, std::set<unsigned long> &recheck) +{ + std::vector<std::string> static const Archs = APT::Configuration::getArchitectures(); + pkgCache::GrpIterator Grp(*Cache, Cache->GrpP + G); + if (unlikely(Grp.end() == true)) + return false; + for (std::vector<std::string>::const_iterator a = Archs.begin(); + a != Archs.end(); ++a) + { + pkgCache::PkgIterator P = Grp.FindPkg(*a); + if (P.end() == true) + continue; + pkgCache::VerIterator allV = Grp.FindPkg("all").CurrentVer(); + for (VerIterator V = P.VersionList(); V.end() != true; ++V) + { + // search for the same version as the all package + if (allV->Hash != V->Hash || strcmp(allV.VerStr(),V.VerStr()) != 0) + continue; + unsigned char const CurDepState = VersionState(V.DependsList(),DepInstall,DepInstMin,DepInstPolicy); + // If it is broken, try to install dependencies first before retry + if ((CurDepState & DepInstMin) != DepInstMin) + { + for (pkgCache::DepIterator D = V.DependsList(); D.end() != true; ++D) + { + if (D->Type != pkgCache::Dep::PreDepends && D->Type != pkgCache::Dep::Depends) + continue; + ReInstallPseudoForGroup(D.TargetPkg(), recheck); + } + unsigned char const CurDepState = VersionState(V.DependsList(),DepInstall,DepInstMin,DepInstPolicy); + // if package ist still broken… try another arch + if ((CurDepState & DepInstMin) != DepInstMin) + break; + } + // dependencies satisfied: reinstall the package + RemoveSizes(P); + RemoveStates(P); + P->CurrentVer = V.Index(); + PkgState[P->ID].InstallVer = V; + AddStates(P); + Update(P); + AddSizes(P); + return true; + } + } + return false; +} + /*}}}*/ // DepCache::Update - Update the deps list of a package /*{{{*/ // --------------------------------------------------------------------- /* This is a helper for update that only does the dep portion of the scan. diff --git a/apt-pkg/depcache.h b/apt-pkg/depcache.h index 6765d3e7c..3decc7a5f 100644 --- a/apt-pkg/depcache.h +++ b/apt-pkg/depcache.h @@ -331,6 +331,7 @@ class pkgDepCache : protected pkgCache::Namespace // Legacy.. We look like a pkgCache inline operator pkgCache &() {return *Cache;}; inline Header &Head() {return *Cache->HeaderP;}; + inline GrpIterator GrpBegin() {return Cache->GrpBegin();}; inline PkgIterator PkgBegin() {return Cache->PkgBegin();}; inline GrpIterator FindGrp(string const &Name) {return Cache->FindGrp(Name);}; inline PkgIterator FindPkg(string const &Name) {return Cache->FindPkg(Name);}; @@ -469,6 +470,8 @@ class pkgDepCache : protected pkgCache::Namespace private: // Helper for Update(OpProgress) to remove pseudoinstalled arch all packages bool RemovePseudoInstalledPkg(PkgIterator &Pkg, std::set<unsigned long> &recheck); + bool ReInstallPseudoForGroup(unsigned long const &Grp, std::set<unsigned long> &recheck); + bool ReInstallPseudoForGroup(pkgCache::PkgIterator const &P, std::set<unsigned long> &recheck); }; #endif diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc index 034cc8339..eef79cccd 100644 --- a/apt-pkg/packagemanager.cc +++ b/apt-pkg/packagemanager.cc @@ -596,9 +596,17 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg) { if(Install(Pkg,FileNames[Pkg->ID]) == false) return false; - } else if (SmartUnPack(Pkg.Group().FindPkg("all")) == false) - return false; - + } else { + // Pseudo packages will not be unpacked - instead we will do this + // for the "real" package, but only once and if it is already + // configured we don't need to unpack it again… + PkgIterator const P = Pkg.Group().FindPkg("all"); + if (List->IsFlag(P,pkgOrderList::UnPacked) != true && + List->IsFlag(P,pkgOrderList::Configured) != true) { + if (SmartUnPack(P) == false) + return false; + } + } List->Flag(Pkg,pkgOrderList::UnPacked,pkgOrderList::States); // Perform immedate configuration of the package. diff --git a/apt-pkg/pkgcachegen.cc b/apt-pkg/pkgcachegen.cc index 21240b951..114c9d5ed 100644 --- a/apt-pkg/pkgcachegen.cc +++ b/apt-pkg/pkgcachegen.cc @@ -1003,7 +1003,20 @@ bool pkgMakeStatusCache(pkgSourceList &List,OpProgress &Progress, // Decide if we can write to the files.. string const CacheFile = _config->FindFile("Dir::Cache::pkgcache"); string const SrcCacheFile = _config->FindFile("Dir::Cache::srcpkgcache"); - + + // ensure the cache directory exists + if (CacheFile.empty() == false || SrcCacheFile.empty() == false) + { + string dir = _config->FindDir("Dir::Cache"); + size_t const len = dir.size(); + if (len > 5 && dir.find("/apt/", len - 6, 5) == len - 5) + dir = dir.substr(0, len - 5); + if (CacheFile.empty() == false) + CreateDirectory(dir, flNotFile(CacheFile)); + if (SrcCacheFile.empty() == false) + CreateDirectory(dir, flNotFile(SrcCacheFile)); + } + // Decide if we can write to the cache bool Writeable = false; if (CacheFile.empty() == false) diff --git a/apt-pkg/sourcelist.cc b/apt-pkg/sourcelist.cc index a860c7eac..e13472fa6 100644 --- a/apt-pkg/sourcelist.cc +++ b/apt-pkg/sourcelist.cc @@ -94,6 +94,13 @@ bool pkgSourceList::Type::ParseLine(vector<metaIndex *> &List, if (option.length() < 3) return _error->Error(_("Malformed line %lu in source list %s ([option] too short)"),CurLine,File.c_str()); + // accept options even if the last has no space before the ]-end marker + if (option.at(option.length()-1) == ']') + { + for (; *Buffer != ']'; --Buffer); + option.resize(option.length()-1); + } + size_t const needle = option.find('='); if (needle == string::npos) return _error->Error(_("Malformed line %lu in source list %s ([%s] is not an assignment)"),CurLine,File.c_str(), option.c_str()); diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc index 07b95e3ca..b0034bf6d 100644 --- a/cmdline/apt-cache.cc +++ b/cmdline/apt-cache.cc @@ -1585,6 +1585,14 @@ bool Policy(CommandLine &CmdL) } string const myArch = _config->Find("APT::Architecture"); + char const * const msgInstalled = _(" Installed: "); + char const * const msgCandidate = _(" Candidate: "); + short const InstalledLessCandidate = + mbstowcs(NULL, msgInstalled, 0) - mbstowcs(NULL, msgCandidate, 0); + short const deepInstalled = + (InstalledLessCandidate < 0 ? (InstalledLessCandidate*-1) : 0) - 1; + short const deepCandidate = + (InstalledLessCandidate > 0 ? (InstalledLessCandidate) : 0) - 1; // Print out detailed information for each package for (const char **I = CmdL.FileList + 1; *I != 0; I++) @@ -1604,14 +1612,14 @@ bool Policy(CommandLine &CmdL) cout << Pkg.FullName(true) << ":" << endl; // Installed version - cout << _(" Installed: "); + cout << msgInstalled << OutputInDepth(deepInstalled, " "); if (Pkg->CurrentVer == 0) cout << _("(none)") << endl; else cout << Pkg.CurrentVer().VerStr() << endl; // Candidate Version - cout << _(" Candidate: "); + cout << msgCandidate << OutputInDepth(deepCandidate, " "); pkgCache::VerIterator V = Plcy.GetCandidateVer(Pkg); if (V.end() == true) cout << _("(none)") << endl; diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc index cd450b27a..26c731978 100644 --- a/cmdline/apt-get.cc +++ b/cmdline/apt-get.cc @@ -692,7 +692,7 @@ bool CacheFile::CheckDeps(bool AllowBroken) } else { - c1out << _("You might want to run `apt-get -f install' to correct these.") << endl; + c1out << _("You might want to run 'apt-get -f install' to correct these.") << endl; ShowBroken(c1out,*this,true); return _error->Error(_("Unmet dependencies. Try using -f.")); @@ -811,20 +811,19 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask = true, pkgRecords Recs(Cache); if (_error->PendingError() == true) return false; - - // Lock the archive directory - FileFd Lock; - if (_config->FindB("Debug::NoLocking",false) == false && - _config->FindB("APT::Get::Print-URIs") == false) - { - Lock.Fd(GetLock(_config->FindDir("Dir::Cache::Archives") + "lock")); - if (_error->PendingError() == true) - return _error->Error(_("Unable to lock the download directory")); - } - + // Create the download object + pkgAcquire Fetcher; AcqTextStatus Stat(ScreenWidth,_config->FindI("quiet",0)); - pkgAcquire Fetcher(&Stat); + if (_config->FindB("APT::Get::Print-URIs", false) == true) + { + // force a hashsum for compatibility reasons + _config->CndSet("Acquire::ForceHash", "md5sum"); + if (Fetcher.Setup(&Stat, "") == false) + return false; + } + else if (Fetcher.Setup(&Stat, _config->FindDir("Dir::Cache::Archives")) == false) + return false; // Read the source list pkgSourceList List; @@ -1148,20 +1147,27 @@ bool TryToInstall(pkgCache::PkgIterator Pkg,pkgDepCache &Cache, Pkg.FullName(true).c_str()); pkgCache::PrvIterator I = Pkg.ProvidesList(); + unsigned short provider = 0; for (; I.end() == false; I++) { pkgCache::PkgIterator Pkg = I.OwnerPkg(); if (Cache[Pkg].CandidateVerIter(Cache) == I.OwnerVer()) { + c1out << " " << Pkg.FullName(true) << " " << I.OwnerVer().VerStr(); if (Cache[Pkg].Install() == true && Cache[Pkg].NewInstall() == false) - c1out << " " << Pkg.FullName(true) << " " << I.OwnerVer().VerStr() << - _(" [Installed]") << endl; - else - c1out << " " << Pkg.FullName(true) << " " << I.OwnerVer().VerStr() << endl; - } + c1out << _(" [Installed]"); + c1out << endl; + ++provider; + } } - c1out << _("You should explicitly select one to install.") << endl; + // if we found no candidate which provide this package, show non-candidates + if (provider == 0) + for (I = Pkg.ProvidesList(); I.end() == false; I++) + c1out << " " << I.OwnerPkg().FullName(true) << " " << I.OwnerVer().VerStr() + << _(" [Not candidate version]") << endl; + else + c1out << _("You should explicitly select one to install.") << endl; } else { @@ -1258,6 +1264,11 @@ bool TryToChangeVer(pkgCache::PkgIterator Pkg,pkgDepCache &Cache, } Cache.SetCandidateVersion(Ver); + + // Set the all package to the same candidate + if (Ver.Pseudo() == true) + Cache.SetCandidateVersion(Match.Find(Pkg.Group().FindPkg("all"))); + return true; } /*}}}*/ @@ -1446,23 +1457,19 @@ bool DoUpdate(CommandLine &CmdL) if (List.ReadMainList() == false) return false; - // Lock the list directory - FileFd Lock; - if (_config->FindB("Debug::NoLocking",false) == false) - { - Lock.Fd(GetLock(_config->FindDir("Dir::State::Lists") + "lock")); - if (_error->PendingError() == true) - return _error->Error(_("Unable to lock the list directory")); - } - // Create the progress AcqTextStatus Stat(ScreenWidth,_config->FindI("quiet",0)); // Just print out the uris an exit if the --print-uris flag was used if (_config->FindB("APT::Get::Print-URIs") == true) { + // force a hashsum for compatibility reasons + _config->CndSet("Acquire::ForceHash", "md5sum"); + // get a fetcher - pkgAcquire Fetcher(&Stat); + pkgAcquire Fetcher; + if (Fetcher.Setup(&Stat) == false) + return false; // Populate it with the source selection and get all Indexes // (GetAll=true) @@ -1781,11 +1788,14 @@ bool DoInstall(CommandLine &CmdL) // Run over the matches bool Hit = false; - for (Pkg = Cache->PkgBegin(); Pkg.end() == false; Pkg++) + for (pkgCache::GrpIterator Grp = Cache->GrpBegin(); Grp.end() == false; ++Grp) { - if (regexec(&Pattern,Pkg.Name(),0,0,0) != 0) + if (regexec(&Pattern,Grp.Name(),0,0,0) != 0) continue; - + Pkg = Grp.FindPkg("native"); + if (unlikely(Pkg.end() == true)) + continue; + ioprintf(c1out,_("Note, selecting %s for regex '%s'\n"), Pkg.Name(),S); @@ -1832,7 +1842,7 @@ bool DoInstall(CommandLine &CmdL) packages */ if (BrokenFix == true && Cache->BrokenCount() != 0) { - c1out << _("You might want to run `apt-get -f install' to correct these:") << endl; + c1out << _("You might want to run 'apt-get -f install' to correct these:") << endl; ShowBroken(c1out,Cache,false); return _error->Error(_("Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).")); @@ -2211,7 +2221,9 @@ bool DoSource(CommandLine &CmdL) // Create the download object AcqTextStatus Stat(ScreenWidth,_config->FindI("quiet",0)); - pkgAcquire Fetcher(&Stat); + pkgAcquire Fetcher; + if (Fetcher.Setup(&Stat) == false) + return false; DscFile *Dsc = new DscFile[CmdL.FileSize()]; @@ -2468,7 +2480,9 @@ bool DoBuildDep(CommandLine &CmdL) // Create the download object AcqTextStatus Stat(ScreenWidth,_config->FindI("quiet",0)); - pkgAcquire Fetcher(&Stat); + pkgAcquire Fetcher; + if (Fetcher.Setup(&Stat) == false) + return false; unsigned J = 0; for (const char **I = CmdL.FileList + 1; *I != 0; I++, J++) diff --git a/debian/changelog b/debian/changelog index 2c2b038b6..97e15326c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,53 @@ apt (0.7.26~exp4) UNRELEASEDexperimental; urgency=low + [ David Kalnischkies ] + * apt-pkg/depcache.cc: + - rewrite the pseudo package reinstaller to be more intelligent + in his package choices + * apt-pkg/packagemanager.cc: + - don't try to "unpack" pseudo packages twice + * apt-pkg/contrib/fileutl.cc: + - add a parent-guarded "mkdir -p" as CreateDirectory() + * apt-pkg/acquire.{cc,h}: + - add a delayed constructor with Setup() for success reporting + - check for and create directories in Setup if needed instead of + error out unfriendly in the Constructor (Closes: #523920, #525783) + - optional handle a lock file in Setup() + * apt-pkg/acquire-item.cc: + - Acquire::ForceHash to force method for expected hash + * cmdline/apt-get.cc: + - remove the lock file handling and let Acquire take care of it instead + - display MD5Sum in --print-uris if not forced to use another method + instead of displaying the strongest available (Closes: #576420) + - regex for package names executed on Grp- not PkgIterator + - show non-candidates as fallback for virtual packages (Closes: #578385) + - set also "all" to this version for pseudo packages in TryToChangeVer + * apt-pkg/deb/dpkgpm.cc: + - remove Chroot-Directory from files passed to install commands. + Thanks to Kel Modderman for report & patch! (Closes: #577226) + * ftparchive/writer.cc: + - remove 999 chars Files and Checksums rewrite limit (Closes: #577759) + * cmdline/apt-cache.cc: + - align Installed and Candidate Version in policy so they can be compared + easier, thanks Ralf Gesellensetter for the pointer! (Closes: #578657) + * doc/apt.ent: + - Add a note about APT_CONFIG in the -c description (Closes: #578267) + * doc/po/de.po: + - correct typos in german apt_preferences manpage, thanks Chris Leick! + * apt-pkg/sourcelist.cc: + - be less strict and accept [option=value] as well + * apt-pkg/contrib/configuration.cc: + - error out if #clear directive has no argument + + [ Jari Aalto ] + * cmdline/apt-get.cc: + - replace backticks with single quotes around fix-broken command + in the broken packages message. (Closes: #577168) + * dselect/install: + - modernize if-statements not to use 'x' (Closes: #577117) + - replace backticks with POSIX $() (Closes: #577116) + + [ Michael Vogt ] * [ Abi break ] apt-pkg/acquire-item.{cc,h}: - add "IsIndexFile" to constructor of pkgAcqFile so that it sends the right cache control headers @@ -11,7 +59,7 @@ apt (0.7.26~exp4) UNRELEASEDexperimental; urgency=low - Add test for Esperanto that has nocounty associated with them (LP: #560956) - -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 04 May 2010 09:55:08 +0200 + -- David Kalnischkies <kalnischkies@gmail.com> Sat, 03 Apr 2010 14:58:39 +0200 apt (0.7.26~exp3) experimental; urgency=low diff --git a/doc/apt.ent b/doc/apt.ent index 19da4429e..c463f7811 100644 --- a/doc/apt.ent +++ b/doc/apt.ent @@ -261,7 +261,9 @@ <term><option>--config-file</option></term> <listitem><para>Configuration File; Specify a configuration file to use. The program will read the default configuration file and then this - configuration file. See &apt-conf; for syntax information. + configuration file. If configuration settings need to be set before the + default configuration files are parsed specify a file with the <envar>APT_CONFIG</envar> + environment variable. See &apt-conf; for syntax information. </para> </listitem> </varlistentry> diff --git a/doc/examples/configure-index b/doc/examples/configure-index index 3167e46da..d168417d8 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -169,6 +169,7 @@ Acquire Queue-Mode "host"; // host|access Retries "0"; Source-Symlinks "true"; + ForceHash "sha256"; // hashmethod used for expected hash: sha256, sha1 or md5sum PDiffs "true"; // try to get the IndexFile diffs PDiffs::FileLimit "4"; // don't use diffs if we would need more than 4 diffs diff --git a/doc/po/de.po b/doc/po/de.po index 9270ecef3..5664eb780 100644 --- a/doc/po/de.po +++ b/doc/po/de.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: apt-doc 0.7.24\n" "Report-Msgid-Bugs-To: APT Development Team <deity@lists.debian.org>\n" "POT-Creation-Date: 2010-03-19 11:14+0100\n" -"PO-Revision-Date: 2010-03-22 07:41+0100\n" +"PO-Revision-Date: 2010-04-21 14:04+0200\n" "Last-Translator: Chris Leick <c.leick@vollbio.de>\n" "Language-Team: German <debian-l10n-german@lists.debian.org>\n" "MIME-Version: 1.0\n" @@ -1120,7 +1120,7 @@ msgid "" msgstr "" "<!ENTITY translation-holder \"\n" " Die deutsche Übersetzung wurde 2009 von Chris Leick <email>c.leick@vollbio.de</email> angefertigt\n" -" in Zusammenarbeit mit dem Debian German-l10n-Team <email>debian-l10n-german@lists.debian.org</email>.\n" +" in Zusammenarbeit mit dem Deutschen l10n-Team von Debian <email>debian-l10n-german@lists.debian.org</email>.\n" "\">\n" #. type: Plain text @@ -8683,7 +8683,7 @@ msgid "" msgstr "" "Eine Version eines Pakets, dessen Ursprung nicht das lokale System ist, aber " "ein anderer in &sources-list; aufgelisteter Ort und der zu einer " -"<literal>unstable</literal>-Distribution gehört. wird nur installiert, falls " +"<literal>unstable</literal>-Distribution gehört, wird nur installiert, falls " "es zur Installation ausgewählt wurde und nicht bereits eine Version des " "Pakets installiert ist." @@ -9023,7 +9023,7 @@ msgstr "" "Paketversionen eine höhere Priorität als die Vorgabe (500) zu geben, die zu " "einer <literal>stable</literal>-Distribution gehören und eine ungeheuer " "niedrige Priorität Paketversionen, die zu anderen <literal>Debian</literal>-" -"Distribution gehören. <placeholder type=\"programlisting\" id=\"0\"/>" +"Distributionen gehören. <placeholder type=\"programlisting\" id=\"0\"/>" #. type: Content of: <refentry><refsect1><refsect2><para><programlisting> #: apt_preferences.5.xml:507 apt_preferences.5.xml:553 diff --git a/dselect/install b/dselect/install index 6779698e0..3ef213550 100755 --- a/dselect/install +++ b/dselect/install @@ -12,11 +12,11 @@ DPKG_OPTS="--admindir=$1" APT_OPT0="-oDir::State::status=$1/status" APT_OPT1="-oDPkg::Options::=$DPKG_OPTS" set -e -RES=`apt-config shell CLEAN DSelect::Clean OPTS DSelect::Options \ +RES=$(apt-config shell CLEAN DSelect::Clean OPTS DSelect::Options \ DPKG Dir::Bin::dpkg/f APTGET Dir::Bin::apt-get/f \ ARCHIVES Dir::Cache::Archives/d \ WAIT DSelect::WaitAfterDownload/b \ - CHECKDIR DSelect::CheckDir/b` + CHECKDIR DSelect::CheckDir/b) eval $RES set +e @@ -46,7 +46,7 @@ yesno() { echo $ans | tr YN yn } -if [ x$WAIT = "xtrue" ]; then +if [ "$WAIT" = "true" ]; then $APTGET $OPTS "$APT_OPT0" "$APT_OPT1" -d dselect-upgrade echo $"Press enter to continue." && read RES $APTGET $OPTS "$APT_OPT0" "$APT_OPT1" dselect-upgrade @@ -64,20 +64,20 @@ fi # Finished OK if [ $RES -eq 0 ]; then - if [ `ls $ARCHIVES $ARCHIVES/partial | egrep -v "^lock$|^partial$" | wc -l` \ + if [ $(ls $ARCHIVES $ARCHIVES/partial | egrep -v "^lock$|^partial$" | wc -l) \ -eq 0 ]; then exit 0 fi - NEWLS=`ls -ld $ARCHIVES` - if [ x$CHECKDIR = "xtrue" ]; then - if [ "x$OLDLS" = "x$NEWLS" ]; then + NEWLS=$(ls -ld $ARCHIVES) + if [ "$CHECKDIR" = "true" ]; then + if [ "$OLDLS" = "$NEWLS" ]; then exit 0 fi fi # Check the cleaning mode - case `echo $CLEAN | tr '[:upper:]' '[:lower:]'` in + case $(echo $CLEAN | tr '[:upper:]' '[:lower:]') in auto) $APTGET "$APT_OPT0" "$APT_OPT1" autoclean && echo $"Press enter to continue." && read RES && exit 0; @@ -89,7 +89,7 @@ if [ $RES -eq 0 ]; then prompt) exec 3>&1 echo -n $"Do you want to erase any previously downloaded .deb files?" - if [ `yesno "" y` = y ]; then + if [ $(yesno "" y) = y ]; then $APTGET "$APT_OPT0" "$APT_OPT1" clean && echo $"Press enter to continue." && read RES && exit 0; fi diff --git a/ftparchive/writer.cc b/ftparchive/writer.cc index 45a8d212b..6cda29b21 100644 --- a/ftparchive/writer.cc +++ b/ftparchive/writer.cc @@ -28,6 +28,7 @@ #include <ftw.h> #include <fnmatch.h> #include <iostream> +#include <sstream> #include <memory> #include "cachedb.h" @@ -706,23 +707,20 @@ bool SourcesWriter::DoPackage(string FileName) // Add the dsc to the files hash list string const strippedName = flNotDir(FileName); - char Files[1000]; - snprintf(Files,sizeof(Files),"\n %s %lu %s\n %s", - string(MD5.Result()).c_str(),St.st_size, - strippedName.c_str(), - Tags.FindS("Files").c_str()); - - char ChecksumsSha1[1000]; - snprintf(ChecksumsSha1,sizeof(ChecksumsSha1),"\n %s %lu %s\n %s", - string(SHA1.Result()).c_str(),St.st_size, - strippedName.c_str(), - Tags.FindS("Checksums-Sha1").c_str()); - - char ChecksumsSha256[1000]; - snprintf(ChecksumsSha256,sizeof(ChecksumsSha256),"\n %s %lu %s\n %s", - string(SHA256.Result()).c_str(),St.st_size, - strippedName.c_str(), - Tags.FindS("Checksums-Sha256").c_str()); + std::ostringstream ostreamFiles; + ostreamFiles << "\n " << string(MD5.Result()) << " " << St.st_size << " " + << strippedName << "\n " << Tags.FindS("Files"); + string const Files = ostreamFiles.str(); + + std::ostringstream ostreamSha1; + ostreamSha1 << "\n " << string(SHA1.Result()) << " " << St.st_size << " " + << strippedName << "\n " << Tags.FindS("Checksums-Sha1"); + string const ChecksumsSha1 = ostreamSha1.str(); + + std::ostringstream ostreamSha256; + ostreamSha256 << "\n " << string(SHA256.Result()) << " " << St.st_size << " " + << strippedName << "\n " << Tags.FindS("Checksums-Sha256"); + string const ChecksumsSha256 = ostreamSha256.str(); // Strip the DirStrip prefix from the FileName and add the PathPrefix string NewFileName; @@ -740,7 +738,7 @@ bool SourcesWriter::DoPackage(string FileName) // Perform the delinking operation over all of the files string ParseJnk; - const char *C = Files; + const char *C = Files.c_str(); char *RealPath = NULL; for (;isspace(*C); C++); while (*C != 0) @@ -773,9 +771,9 @@ bool SourcesWriter::DoPackage(string FileName) unsigned int End = 0; SetTFRewriteData(Changes[End++],"Source",Package.c_str(),"Package"); - SetTFRewriteData(Changes[End++],"Files",Files); - SetTFRewriteData(Changes[End++],"Checksums-Sha1",ChecksumsSha1); - SetTFRewriteData(Changes[End++],"Checksums-Sha256",ChecksumsSha256); + SetTFRewriteData(Changes[End++],"Files",Files.c_str()); + SetTFRewriteData(Changes[End++],"Checksums-Sha1",ChecksumsSha1.c_str()); + SetTFRewriteData(Changes[End++],"Checksums-Sha256",ChecksumsSha256.c_str()); if (Directory != "./") SetTFRewriteData(Changes[End++],"Directory",Directory.c_str()); SetTFRewriteData(Changes[End++],"Priority",BestPrio.c_str()); diff --git a/po/apt-all.pot b/po/apt-all.pot index ae0a7c375..41b46aeff 100644 --- a/po/apt-all.pot +++ b/po/apt-all.pot @@ -670,7 +670,7 @@ msgid " Done" msgstr "" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "" #: cmdline/apt-get.cc:687 @@ -981,7 +981,7 @@ msgid "%s set to manually installed.\n" msgstr "" #: cmdline/apt-get.cc:1808 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "" #: cmdline/apt-get.cc:1811 @@ -672,8 +672,8 @@ msgid " Done" msgstr " تم" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." -msgstr "قد ترغب بتنفيذ الأمر `apt-get -f install' لتصحيح هذه." +msgid "You might want to run 'apt-get -f install' to correct these." +msgstr "قد ترغب بتنفيذ الأمر 'apt-get -f install' لتصحيح هذه." #: cmdline/apt-get.cc:687 msgid "Unmet dependencies. Try using -f." @@ -979,8 +979,8 @@ msgid "%s set to manually installed.\n" msgstr "إلا أنه سيتم تثبيت %s" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "قد ترغب بتشغيل `apt-get -f install' لتصحيح هذه:" +msgid "You might want to run 'apt-get -f install' to correct these:" +msgstr "قد ترغب بتشغيل 'apt-get -f install' لتصحيح هذه:" #: cmdline/apt-get.cc:1797 msgid "" @@ -766,8 +766,8 @@ msgid " Done" msgstr " Fecho" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." -msgstr "Habres d'executar `apt-get -f install' para igualo." +msgid "You might want to run 'apt-get -f install' to correct these." +msgstr "Habres d'executar 'apt-get -f install' para igualo." #: cmdline/apt-get.cc:687 msgid "Unmet dependencies. Try using -f." @@ -1080,8 +1080,8 @@ msgid "%s set to manually installed.\n" msgstr "%s axustu como instalu manualmente.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "Habres d'executar `apt-get -f install' para iguar estos:" +msgid "You might want to run 'apt-get -f install' to correct these:" +msgstr "Habres d'executar 'apt-get -f install' para iguar estos:" #: cmdline/apt-get.cc:1797 msgid "" @@ -779,7 +779,7 @@ msgid " Done" msgstr " Готово" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "" "Възможно е да изпълните „apt-get -f install“, за да коригирате тези " "неизправности." @@ -1098,7 +1098,7 @@ msgid "%s set to manually installed.\n" msgstr "%s е отбелязан като ръчно инсталиран.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Възможно е да изпълните „apt-get -f install“, за да коригирате:" #: cmdline/apt-get.cc:1797 @@ -679,7 +679,7 @@ msgid " Done" msgstr " Urađeno" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "" #: cmdline/apt-get.cc:687 @@ -982,7 +982,7 @@ msgid "%s set to manually installed.\n" msgstr "ali se %s treba instalirati" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "" #: cmdline/apt-get.cc:1797 @@ -769,8 +769,8 @@ msgid " Done" msgstr " Fet" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." -msgstr "Potser voldreu executar `apt-get -f install' per a corregir-ho." +msgid "You might want to run 'apt-get -f install' to correct these." +msgstr "Potser voldreu executar 'apt-get -f install' per a corregir-ho." #: cmdline/apt-get.cc:687 msgid "Unmet dependencies. Try using -f." @@ -1089,8 +1089,8 @@ msgid "%s set to manually installed.\n" msgstr "S'ha marcat %s com instal·lat manualment.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "Potser voldreu executar `apt-get -f install' per a corregir-ho:" +msgid "You might want to run 'apt-get -f install' to correct these:" +msgstr "Potser voldreu executar 'apt-get -f install' per a corregir-ho:" #: cmdline/apt-get.cc:1797 msgid "" @@ -3153,8 +3153,8 @@ msgstr "La connexió s'ha tancat prematurament" #~ msgid "" #~ "Some broken packages were found while trying to process build-" #~ "dependencies for %s.\n" -#~ "You might want to run `apt-get -f install' to correct these." +#~ "You might want to run 'apt-get -f install' to correct these." #~ msgstr "" #~ "S'han trobat alguns paquets trencats mentre es processaven les\n" #~ "dependències de construcció per a %s.\n" -#~ "Potser voldreu executar `apt-get -f install' per a corregir-ho." +#~ "Potser voldreu executar 'apt-get -f install' per a corregir-ho." @@ -764,7 +764,7 @@ msgid " Done" msgstr " Hotovo" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "Pro opravení můžete spustit „apt-get -f install“." #: cmdline/apt-get.cc:687 @@ -1077,7 +1077,7 @@ msgid "%s set to manually installed.\n" msgstr "%s nastaven jako instalovaný ručně.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Pro opravení následujících můžete spustit „apt-get -f install“:" #: cmdline/apt-get.cc:1797 @@ -797,8 +797,8 @@ msgid " Done" msgstr " Wedi Gorffen" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." -msgstr "Efallai hoffech rhedeg `apt-get -f install' er mwyn cywiro'r rhain." +msgid "You might want to run 'apt-get -f install' to correct these." +msgstr "Efallai hoffech rhedeg 'apt-get -f install' er mwyn cywiro'r rhain." #: cmdline/apt-get.cc:687 msgid "Unmet dependencies. Try using -f." @@ -1116,8 +1116,8 @@ msgid "%s set to manually installed.\n" msgstr "ond mae %s yn mynd i gael ei sefydlu" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "Efallai hoffech rhedeg `apt-get -f install' er mwyn cywiro'r rhain:" +msgid "You might want to run 'apt-get -f install' to correct these:" +msgstr "Efallai hoffech rhedeg 'apt-get -f install' er mwyn cywiro'r rhain:" # FIXME #: cmdline/apt-get.cc:1797 @@ -773,7 +773,7 @@ msgid " Done" msgstr " Frdig" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "Du kan muligvis rette dette ved at kre 'apt-get -f install'." #: cmdline/apt-get.cc:687 @@ -1087,7 +1087,7 @@ msgid "%s set to manually installed.\n" msgstr "%s sat til manuelt installeret.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Du kan muligvis rette det ved at kre 'apt-get -f install':" #: cmdline/apt-get.cc:1797 @@ -3142,7 +3142,7 @@ msgstr "Forbindelsen lukkedes for hurtigt" #~ msgid "" #~ "Some broken packages were found while trying to process build-" #~ "dependencies.\n" -#~ "You might want to run `apt-get -f install' to correct these." +#~ "You might want to run 'apt-get -f install' to correct these." #~ msgstr "" #~ "Det blev fundet delagte pakker under behandlingen af " #~ "opbygningsafhngighederne.\n" @@ -785,7 +785,7 @@ msgid " Done" msgstr " Fertig" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "Probieren Sie »apt-get -f install«, um dies zu korrigieren." #: cmdline/apt-get.cc:687 @@ -1107,7 +1107,7 @@ msgid "%s set to manually installed.\n" msgstr "%s wurde als manuell installiert festgelegt.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Probieren Sie »apt-get -f install«, um dies zu korrigieren:" #: cmdline/apt-get.cc:1797 @@ -778,8 +778,8 @@ msgid " Done" msgstr "འབད་ཚར་ཡི།" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." -msgstr "འ་ནི་འདི་ཚུ་ནོར་བཅོས་འབད་ནི་ལུ་ཁྱོད་ཀྱི་`apt-get -f install'དེ་གཡོག་བཀོལ་དགོཔ་འོང་།" +msgid "You might want to run 'apt-get -f install' to correct these." +msgstr "འ་ནི་འདི་ཚུ་ནོར་བཅོས་འབད་ནི་ལུ་ཁྱོད་ཀྱི་'apt-get -f install'དེ་གཡོག་བཀོལ་དགོཔ་འོང་།" #: cmdline/apt-get.cc:687 msgid "Unmet dependencies. Try using -f." @@ -1094,8 +1094,8 @@ msgid "%s set to manually installed.\n" msgstr "འདི་འབདཝ་ད་%sའདི་གཞི་བཙུགས་འབད་ནི་ཨིན།" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "འདི་ཚུ་ནོར་བཅོས་འབད་ནིའི་དོན་ལུ་ཁྱོད་ཀྱི་`apt-get -f install'དེ་གཡོག་བཀོལ་དགོཔ་འོང་:" +msgid "You might want to run 'apt-get -f install' to correct these:" +msgstr "འདི་ཚུ་ནོར་བཅོས་འབད་ནིའི་དོན་ལུ་ཁྱོད་ཀྱི་'apt-get -f install'དེ་གཡོག་བཀོལ་དགོཔ་འོང་:" #: cmdline/apt-get.cc:1797 msgid "" @@ -786,7 +786,7 @@ msgid " Done" msgstr " Ετοιμο" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "" "Ίσως να πρέπει να τρέξετε apt-get -f install για να διορθώσετε αυτά τα " "προβλήματα." @@ -1108,7 +1108,7 @@ msgid "%s set to manually installed.\n" msgstr "το %s έχει εγκατασταθεί με το χέρι\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Aν τρέξετε 'apt-get -f install' ίσως να διορθώσετε αυτά τα προβλήματα:" #: cmdline/apt-get.cc:1797 diff --git a/po/en_GB.po b/po/en_GB.po index 39163a47e..fa67efa0b 100644 --- a/po/en_GB.po +++ b/po/en_GB.po @@ -765,7 +765,7 @@ msgid " Done" msgstr "Done" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "You might want to run ‘apt-get -f install’ to correct these." #: cmdline/apt-get.cc:687 @@ -1079,7 +1079,7 @@ msgid "%s set to manually installed.\n" msgstr "%s set to manually installed.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "You might want to run 'apt-get -f install' to correct these:" #: cmdline/apt-get.cc:1797 @@ -780,8 +780,8 @@ msgid " Done" msgstr " Listo" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." -msgstr "Tal vez quiera ejecutar `apt-get -f install' para corregirlo." +msgid "You might want to run 'apt-get -f install' to correct these." +msgstr "Tal vez quiera ejecutar 'apt-get -f install' para corregirlo." #: cmdline/apt-get.cc:687 msgid "Unmet dependencies. Try using -f." @@ -1098,8 +1098,8 @@ msgid "%s set to manually installed.\n" msgstr "fijado %s como instalado manualmente.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "Tal vez quiera ejecutar `apt-get -f install' para corregirlo:" +msgid "You might want to run 'apt-get -f install' to correct these:" +msgstr "Tal vez quiera ejecutar 'apt-get -f install' para corregirlo:" #: cmdline/apt-get.cc:1797 msgid "" @@ -3180,11 +3180,11 @@ msgstr "La conexin se cerr prematuramente" #~ msgid "" #~ "Some broken packages were found while trying to process build-" #~ "dependencies.\n" -#~ "You might want to run `apt-get -f install' to correct these." +#~ "You might want to run 'apt-get -f install' to correct these." #~ msgstr "" #~ "Se encontraron algunos paquetes rotos mientras se intentaba procesar\n" #~ "las dependencies de construccin. Tal vez quiera ejecutar \n" -#~ "`apt-get -f install' para corregirlos." +#~ "'apt-get -f install' para corregirlos." #~ msgid "" #~ "Usage: apt-cache [options] command\n" @@ -768,8 +768,8 @@ msgid " Done" msgstr " Eginda" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." -msgstr "Beharbada `apt-get -f install' exekutatu nahiko duzu zuzentzeko." +msgid "You might want to run 'apt-get -f install' to correct these." +msgstr "Beharbada 'apt-get -f install' exekutatu nahiko duzu zuzentzeko." #: cmdline/apt-get.cc:687 msgid "Unmet dependencies. Try using -f." @@ -1084,8 +1084,8 @@ msgid "%s set to manually installed.\n" msgstr "%s eskuz instalatua bezala ezarri.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "Beharbada `apt-get -f install' exekutatu nahiko duzu hauek zuzentzeko:" +msgid "You might want to run 'apt-get -f install' to correct these:" +msgstr "Beharbada 'apt-get -f install' exekutatu nahiko duzu hauek zuzentzeko:" #: cmdline/apt-get.cc:1797 msgid "" @@ -769,7 +769,7 @@ msgid " Done" msgstr " Valmis" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "Halunnet suorittaa \"apt-get -f install\" korjaamaan nämä." #: cmdline/apt-get.cc:687 @@ -1086,7 +1086,7 @@ msgid "%s set to manually installed.\n" msgstr "%s on merkitty käyttäjän toimesta asennetuksi.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Saatat haluta suorittaa \"apt-get -f install\" korjaamaan nämä:" #: cmdline/apt-get.cc:1797 @@ -778,7 +778,7 @@ msgid " Done" msgstr " Fait" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "Vous pouvez lancer « apt-get -f install » pour corriger ces problèmes." #: cmdline/apt-get.cc:687 @@ -1107,7 +1107,7 @@ msgid "%s set to manually installed.\n" msgstr "%s passé en « installé manuellement ».\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Vous pouvez lancer « apt-get -f install » pour corriger ces problèmes :" #: cmdline/apt-get.cc:1797 @@ -780,7 +780,7 @@ msgid " Done" msgstr " Rematado" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "Pode querer executar \"apt-get -f install\" para corrixilos." #: cmdline/apt-get.cc:687 @@ -1097,7 +1097,7 @@ msgid "%s set to manually installed.\n" msgstr "%s cambiouse a instalado manualmente.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Pode querer executar \"apt-get -f install\" corrixir isto:" #: cmdline/apt-get.cc:1797 @@ -667,7 +667,7 @@ msgid " Done" msgstr "סיום" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "אולי תרצה להריץ 'apt-get -f install' כדי לתקן את אלו." #: cmdline/apt-get.cc:687 @@ -971,7 +971,7 @@ msgid "%s set to manually installed.\n" msgstr "אבל %s הולכת להיות מותקנת" #: cmdline/apt-get.cc:1784 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "" #: cmdline/apt-get.cc:1787 @@ -773,7 +773,7 @@ msgid " Done" msgstr " Kész" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "Ezek kijavításához próbáld futtatni az 'apt-get -f install'-t ." #: cmdline/apt-get.cc:687 @@ -1082,7 +1082,7 @@ msgid "%s set to manually installed.\n" msgstr "%s kézi telepítésre állított.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Próbáld futtatni az 'apt-get -f install'-t az alábbiak javításához:" #: cmdline/apt-get.cc:1797 @@ -773,7 +773,7 @@ msgid " Done" msgstr " Fatto" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "" "È utile eseguire \"apt-get -f install\" per correggere questi problemi." @@ -1098,7 +1098,7 @@ msgid "%s set to manually installed.\n" msgstr "È stato impostato %s per l'installazione manuale.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "" "È utile eseguire \"apt-get -f install\" per correggere questi problemi:" @@ -769,7 +769,7 @@ msgid " Done" msgstr " 完了" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "" "これらを直すためには 'apt-get -f install' を実行する必要があるかもしれませ" "ん。" @@ -1087,7 +1087,7 @@ msgid "%s set to manually installed.\n" msgstr "%s は手動でインストールしたと設定されました。\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "" "以下の問題を解決するために 'apt-get -f install' を実行する必要があるかもしれ" "ません:" @@ -773,8 +773,8 @@ msgid " Done" msgstr " ធ្វើរួច" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." -msgstr "អ្នកប្រហែលជាចង់រត់ `apt-get -f install' ដើម្បីកែវាទាំងនេះហើយ ។" +msgid "You might want to run 'apt-get -f install' to correct these." +msgstr "អ្នកប្រហែលជាចង់រត់ 'apt-get -f install' ដើម្បីកែវាទាំងនេះហើយ ។" #: cmdline/apt-get.cc:687 msgid "Unmet dependencies. Try using -f." @@ -1083,8 +1083,8 @@ msgid "%s set to manually installed.\n" msgstr "ប៉ុន្តែ %s នឹងត្រូវបានដំឡើង" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "អ្នកប្រហែលជាចង់រត់ `apt-get -f install' ដើម្បីកែពួកវាទាំងនេះ ៖" +msgid "You might want to run 'apt-get -f install' to correct these:" +msgstr "អ្នកប្រហែលជាចង់រត់ 'apt-get -f install' ដើម្បីកែពួកវាទាំងនេះ ៖" #: cmdline/apt-get.cc:1797 msgid "" @@ -766,9 +766,9 @@ msgid " Done" msgstr " 완료" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "" -"이 상황을 바로잡으려면 `apt-get -f install'을 실행해야 할 수도 있습니다." +"이 상황을 바로잡으려면 'apt-get -f install'을 실행해야 할 수도 있습니다." #: cmdline/apt-get.cc:687 msgid "Unmet dependencies. Try using -f." @@ -1083,8 +1083,8 @@ msgid "%s set to manually installed.\n" msgstr "%s 패키지 수동설치로 지정합니다.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "다음을 바로잡으려면 `apt-get -f install'을 실행해 보십시오:" +msgid "You might want to run 'apt-get -f install' to correct these:" +msgstr "다음을 바로잡으려면 'apt-get -f install'을 실행해 보십시오:" # FIXME: specify a solution? 무슨 솔루션? #: cmdline/apt-get.cc:1797 @@ -682,7 +682,7 @@ msgid " Done" msgstr " Temam" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "" #: cmdline/apt-get.cc:687 @@ -983,7 +983,7 @@ msgid "%s set to manually installed.\n" msgstr "lê %s dê were sazkirin" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "" #: cmdline/apt-get.cc:1797 @@ -741,7 +741,7 @@ msgid " Done" msgstr " Įvykdyta" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "Įvykdykite „apt-get -f install“, jei norite ištaisyti šias klaidas." #: cmdline/apt-get.cc:687 @@ -1050,7 +1050,7 @@ msgid "%s set to manually installed.\n" msgstr "%s nustatytas kaip įdiegtas rankiniu būdu\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Jūs galite norėti paleisti 'apt-get -f install\" klaidų taisymui:" #: cmdline/apt-get.cc:1797 @@ -766,7 +766,7 @@ msgid " Done" msgstr "झाले" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "हे बरोबर करण्यासाठी तुम्हाला `apt-get -f संस्थापना' प्रोग्राम चालू करावा लागेल." #: cmdline/apt-get.cc:687 @@ -1077,9 +1077,9 @@ msgid "%s set to manually installed.\n" msgstr "%s स्वहस्ते संस्थापित करायचे आहे.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "" -"तुम्हाला कदाचित `apt-get -f install'(एपीटी-गेट -एफ संस्थापन') प्रोग्राम चालू करावा " +"तुम्हाला कदाचित 'apt-get -f install'(एपीटी-गेट -एफ संस्थापन') प्रोग्राम चालू करावा " "लागेल'यात बदल करण्यासाठी:" #: cmdline/apt-get.cc:1797 @@ -1087,7 +1087,7 @@ msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." msgstr "" -"अनमेट डिपेंडन्सीज.एपीटी-गेट -एफ संस्थापन (`apt-get -f install') पॅकेजशिवाय प्रयत्न करा " +"अनमेट डिपेंडन्सीज.एपीटी-गेट -एफ संस्थापन ('apt-get -f install') पॅकेजशिवाय प्रयत्न करा " "(किंवा पर्याय सांगा)." #: cmdline/apt-get.cc:1809 @@ -776,7 +776,7 @@ msgid " Done" msgstr " Utfrt" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "Du vil kanskje kjre apt-get -f install for rette p dette." #: cmdline/apt-get.cc:687 @@ -1090,7 +1090,7 @@ msgid "%s set to manually installed.\n" msgstr "%s satt til manuell installasjon.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Du vil kanskje utfre apt-get -f install for rette p disse:" #: cmdline/apt-get.cc:1797 @@ -770,8 +770,8 @@ msgid " Done" msgstr "काम भयो" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." -msgstr "यी सुधार गर्न तपाईँले `apt-get -f install' चलाउन पर्छ ।" +msgid "You might want to run 'apt-get -f install' to correct these." +msgstr "यी सुधार गर्न तपाईँले 'apt-get -f install' चलाउन पर्छ ।" #: cmdline/apt-get.cc:687 msgid "Unmet dependencies. Try using -f." @@ -1080,8 +1080,8 @@ msgid "%s set to manually installed.\n" msgstr "तर %s स्थापना हुनुपर्यो" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "तपाईँ यसलाई सुधार गर्न `apt-get -f install' चलाउन चाहनुहुन्छ:" +msgid "You might want to run 'apt-get -f install' to correct these:" +msgstr "तपाईँ यसलाई सुधार गर्न 'apt-get -f install' चलाउन चाहनुहुन्छ:" #: cmdline/apt-get.cc:1797 msgid "" @@ -775,7 +775,7 @@ msgid " Done" msgstr " Klaar" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "U kunt 'apt-get -f install' uitvoeren om dit op te lossen." #: cmdline/apt-get.cc:687 @@ -1094,7 +1094,7 @@ msgid "%s set to manually installed.\n" msgstr "%s is ingesteld voor handmatige installatie.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "" "U wilt waarschijnlijk 'apt-get -f install' uitvoeren om volgende op te " "lossen:" @@ -772,7 +772,7 @@ msgid " Done" msgstr " Ferdig" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "Du vil kanskje prva retta p desse ved kyra apt-get -f install." #: cmdline/apt-get.cc:687 @@ -1086,7 +1086,7 @@ msgid "%s set to manually installed.\n" msgstr "men %s skal installerast" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Du vil kanskje prva retta p desse ved kyra apt-get -f install." #: cmdline/apt-get.cc:1797 @@ -775,7 +775,7 @@ msgid " Done" msgstr " Gotowe" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +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:687 @@ -1093,7 +1093,7 @@ msgid "%s set to manually installed.\n" msgstr "%s zaznaczony jako zainstalowany ręcznie.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +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:1797 @@ -771,8 +771,8 @@ msgid " Done" msgstr " Feito" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." -msgstr "Você pode querer executar `apt-get -f install' para corrigir isso." +msgid "You might want to run 'apt-get -f install' to correct these." +msgstr "Você pode querer executar 'apt-get -f install' para corrigir isso." #: cmdline/apt-get.cc:687 msgid "Unmet dependencies. Try using -f." @@ -1089,15 +1089,15 @@ msgid "%s set to manually installed.\n" msgstr "%s está definido para ser instalado manualmente.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "Você deve querer executar `apt-get -f install' para corrigir estes:" +msgid "You might want to run 'apt-get -f install' to correct these:" +msgstr "Você deve querer executar 'apt-get -f install' para corrigir estes:" #: cmdline/apt-get.cc:1797 msgid "" "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a " "solution)." msgstr "" -"Dependências não satisfeitas. Tente `apt-get -f install' sem nenhum pacote " +"Dependências não satisfeitas. Tente 'apt-get -f install' sem nenhum pacote " "(ou especifique uma solução)." #: cmdline/apt-get.cc:1809 @@ -3202,12 +3202,12 @@ msgstr "Ligação encerrada prematuramente" #~ msgid "" #~ "Some broken packages were found while trying to process build-" #~ "dependencies.\n" -#~ "You might want to run `apt-get -f install' to correct these." +#~ "You might want to run 'apt-get -f install' to correct these." #~ msgstr "" #~ "Alguns pacotes quebrados foram encontrados enquanto se tentava " #~ "processar \n" #~ "as dependências de construção.\n" -#~ "Você pode querer rodar `apt-get -f install' para corrigí-los." +#~ "Você pode querer rodar 'apt-get -f install' para corrigí-los." #~ msgid "Sorry, you don't have enough free space in %s to hold all the .debs." #~ msgstr "" diff --git a/po/pt_BR.po b/po/pt_BR.po index b02214a9b..967707e99 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -777,7 +777,7 @@ msgid " Done" msgstr " Pronto" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "Você pode querer executar 'apt-get -f install' para corrigí-los." #: cmdline/apt-get.cc:687 @@ -1094,7 +1094,7 @@ msgid "%s set to manually installed.\n" msgstr "%s configurado para instalar manualmente.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Você deve querer executar 'apt-get -f install' para corrigí-los:" #: cmdline/apt-get.cc:1797 @@ -3172,12 +3172,12 @@ msgstr "Conexão encerrada prematuramente" #~ msgid "" #~ "Some broken packages were found while trying to process build-" #~ "dependencies.\n" -#~ "You might want to run `apt-get -f install' to correct these." +#~ "You might want to run 'apt-get -f install' to correct these." #~ msgstr "" #~ "Alguns pacotes quebrados foram encontrados enquanto se tentava " #~ "processar \n" #~ "as dependências de construção.\n" -#~ "Você pode querer rodar `apt-get -f install' para corrigí-los." +#~ "Você pode querer rodar 'apt-get -f install' para corrigí-los." #~ msgid "Sorry, you don't have enough free space in %s to hold all the .debs." #~ msgstr "" @@ -778,7 +778,7 @@ msgid " Done" msgstr " Terminat" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "Ați putea să porniți 'apt-get -f install' pentru a corecta acestea." #: cmdline/apt-get.cc:687 @@ -1092,7 +1092,7 @@ msgid "%s set to manually installed.\n" msgstr "%s este marcat ca fiind instalat manual.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Ați putea porni 'apt-get -f install' pentru a corecta acestea:" #: cmdline/apt-get.cc:1797 @@ -781,7 +781,7 @@ msgid " Done" msgstr " Готово" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "" "Возможно, для исправления этих ошибок вы захотите воспользоваться `apt-get -" "f install'." @@ -1101,7 +1101,7 @@ msgid "%s set to manually installed.\n" msgstr "%s установлен вручную.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "" "Возможно, для исправления этих ошибок вы захотите воспользоваться `apt-get -" "f install':" @@ -768,7 +768,7 @@ msgid " Done" msgstr " Hotovo" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "Opravu môžete spustiť pomocu „apt-get -f install“." #: cmdline/apt-get.cc:687 @@ -1081,7 +1081,7 @@ msgid "%s set to manually installed.\n" msgstr "%s je nastavený na manuálnu inštaláciu.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Na opravu nasledovných môžete spustiť „apt-get -f install“:" #: cmdline/apt-get.cc:1797 @@ -767,7 +767,7 @@ msgid " Done" msgstr " Opravljeno" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "e elite popraviti napake, poskusite pognati 'apt-get -f install'." #: cmdline/apt-get.cc:687 @@ -1078,7 +1078,7 @@ msgid "%s set to manually installed.\n" msgstr "vendar bo paket %s nameen" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Poskusite zagnati 'apt-get -f install', e elite popraviti:" #: cmdline/apt-get.cc:1797 @@ -772,7 +772,7 @@ msgid " Done" msgstr " Färdig" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "" "Du kan möjligen rätta till dessa genom att köra \"apt-get -f install\"." @@ -1091,7 +1091,7 @@ msgid "%s set to manually installed.\n" msgstr "%s är satt till manuellt installerad.\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "" "Du kan möjligen rätta till detta genom att köra \"apt-get -f install\":" @@ -762,8 +762,8 @@ msgid " Done" msgstr " เสร็จแล้ว" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." -msgstr "คุณอาจต้องเรียก `apt-get -f install' เพื่อแก้ปัญหาเหล่านี้" +msgid "You might want to run 'apt-get -f install' to correct these." +msgstr "คุณอาจต้องเรียก 'apt-get -f install' เพื่อแก้ปัญหาเหล่านี้" #: cmdline/apt-get.cc:687 msgid "Unmet dependencies. Try using -f." @@ -1071,8 +1071,8 @@ msgid "%s set to manually installed.\n" msgstr "กำหนด %s ให้เป็นการติดตั้งแบบเลือกเองแล้ว\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "คุณอาจเรียก `apt-get -f install' เพื่อแก้ปัญหานี้ได้:" +msgid "You might want to run 'apt-get -f install' to correct these:" +msgstr "คุณอาจเรียก 'apt-get -f install' เพื่อแก้ปัญหานี้ได้:" #: cmdline/apt-get.cc:1797 msgid "" @@ -780,8 +780,8 @@ msgid " Done" msgstr " Tapos" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." -msgstr "Maaari ninyong patakbuhin ang `apt-get -f install' upang ayusin ito." +msgid "You might want to run 'apt-get -f install' to correct these." +msgstr "Maaari ninyong patakbuhin ang 'apt-get -f install' upang ayusin ito." #: cmdline/apt-get.cc:687 msgid "Unmet dependencies. Try using -f." @@ -1099,9 +1099,9 @@ msgid "%s set to manually installed.\n" msgstr "ngunit ang %s ay iluluklok" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "" -"Maaaring patakbuhin niyo ang `apt-get -f install' upang ayusin ang mga ito:" +"Maaaring patakbuhin niyo ang 'apt-get -f install' upang ayusin ang mga ito:" #: cmdline/apt-get.cc:1797 msgid "" @@ -778,7 +778,7 @@ msgid " Done" msgstr " Виконано" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "" "Можливо, для виправлення цих помилок ви захочете скористатися 'apt-get -f " "install'." @@ -1100,7 +1100,7 @@ msgid "%s set to manually installed.\n" msgstr "але %s буде встановлений" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "" "Можливо, для виправлення цих помилок Ви захочете скористатися 'apt-get -f " "install':" @@ -796,7 +796,7 @@ msgid " Done" msgstr " Đã xong" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "Có lẽ bạn hãy chay lệnh « apt-get -f install » để sửa hết." #: cmdline/apt-get.cc:687 @@ -1114,7 +1114,7 @@ msgid "%s set to manually installed.\n" msgstr "%s được đặt thành « được cài đặt bằng tay ».\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "Có lẽ bạn hãy chạy lênh « apt-get -f install » để sửa hết:" #: cmdline/apt-get.cc:1797 diff --git a/po/zh_CN.po b/po/zh_CN.po index 56c64e451..87dfe051f 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -765,7 +765,7 @@ msgid " Done" msgstr " 完成" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." +msgid "You might want to run 'apt-get -f install' to correct these." msgstr "您也许需要运行“apt-get -f install”来修正上面的错误。" #: cmdline/apt-get.cc:687 @@ -1073,7 +1073,7 @@ msgid "%s set to manually installed.\n" msgstr "%s 被设置为手动安装。\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" +msgid "You might want to run 'apt-get -f install' to correct these:" msgstr "您可能需要运行“apt-get -f install”来纠正下列错误:" #: cmdline/apt-get.cc:1797 diff --git a/po/zh_TW.po b/po/zh_TW.po index 7033d8d7b..4ebdf64fc 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -764,8 +764,8 @@ msgid " Done" msgstr " 完成" #: cmdline/apt-get.cc:684 -msgid "You might want to run `apt-get -f install' to correct these." -msgstr "您也許得執行 `apt-get -f install' 以修正這些問題。" +msgid "You might want to run 'apt-get -f install' to correct these." +msgstr "您也許得執行 'apt-get -f install' 以修正這些問題。" #: cmdline/apt-get.cc:687 msgid "Unmet dependencies. Try using -f." @@ -1073,8 +1073,8 @@ msgid "%s set to manually installed.\n" msgstr "%s 被設定為手動安裝。\n" #: cmdline/apt-get.cc:1794 -msgid "You might want to run `apt-get -f install' to correct these:" -msgstr "您也許得執行 `apt-get -f install' 以修正這些問題:" +msgid "You might want to run 'apt-get -f install' to correct these:" +msgstr "您也許得執行 'apt-get -f install' 以修正這些問題:" #: cmdline/apt-get.cc:1797 msgid "" diff --git a/test/makefile b/test/makefile index b8c104eae..52adb96a2 100644 --- a/test/makefile +++ b/test/makefile @@ -68,7 +68,7 @@ SOURCE = test_udevcdrom.cc include $(PROGRAM_H) # Program for checking rpm versions -PROGRAM=rpmver -SLIBS = -lapt-pkg -lrpm -SOURCE = rpmver.cc -include $(PROGRAM_H) +#PROGRAM=rpmver +#SLIBS = -lapt-pkg -lrpm +#SOURCE = rpmver.cc +#include $(PROGRAM_H) |