]> git.saurik.com Git - apt.git/commitdiff
hide Translation-* in 'apt-cache policy' output
authorDavid Kalnischkies <david@kalnischkies.de>
Fri, 12 Jun 2015 13:48:00 +0000 (15:48 +0200)
committerDavid Kalnischkies <david@kalnischkies.de>
Mon, 15 Jun 2015 12:39:37 +0000 (14:39 +0200)
Translation-* files are internally handled as PackageFiles which isn't
super nice, but giving them their own struct is a bit overkill so let it
be for the moment. They always appeared in the policy output because of
this through and now that they are properly linked to a ReleaseFile they
even display all the pinning information on them, but they don't contain
any packages which could be pinned… No problem, but useless and
potentially confusing output.

Adding a 'NoPackages' flag which can be set on those files and be used
in applications seems like a simple way to fix this display issue.

apt-pkg/deb/debindexfile.cc
apt-pkg/pkgcache.h
cmdline/apt-cache.cc

index f089cda81366a3bbc1de06f57aa7a6b294f43b4b..944cbe0bf20deab08093ede58fc08c9604eb5076 100644 (file)
@@ -203,7 +203,7 @@ bool debTranslationsIndex::Merge(pkgCacheGenerator &Gen,OpProgress *Prog) const
 
      if (Prog != NULL)
        Prog->SubProgress(0, Target.Description);
-     if (Gen.SelectFile(TranslationFile, *this, "", Target.Option(IndexTarget::COMPONENT), pkgCache::Flag::NotSource) == false)
+     if (Gen.SelectFile(TranslationFile, *this, "", Target.Option(IndexTarget::COMPONENT), pkgCache::Flag::NotSource | pkgCache::Flag::NoPackages) == false)
        return _error->Error("Problem with SelectFile %s",TranslationFile.c_str());
 
      // Store the IMS information
index 696b3b94d99f386e13f713b1709e3becf4be58cf..3cc85f1e83d70ec9dcb1053c9c7fc233bc8dd267 100644 (file)
@@ -195,6 +195,7 @@ class pkgCache                                                              /*{{{*/
       enum PkgFFlags {
         NotSource=(1<<0), /*!< packages can't be fetched from here, e.g. dpkg/status file */
         LocalSource=(1<<1), /*!< local sources can't and will not be verified by hashes */
+        NoPackages=(1<<2), /*!< the file includes no package records itself, but additions like Translations */
       };
       enum ReleaseFileFlags {
         NotAutomatic=(1<<0), /*!< archive has a default pin of 1 */
index 3b8ebc96d0b2a2fd2a6f6b453a5c70e1d8b3e41d..c2f6dbd5c8fbd31eeb7149237a7d6a4935eda8fc 100644 (file)
@@ -1638,6 +1638,8 @@ static bool Policy(CommandLine &CmdL)
       cout << _("Package files:") << endl;   
       for (pkgCache::PkgFileIterator F = Cache->FileBegin(); F.end() == false; ++F)
       {
+        if (F.Flagged(pkgCache::Flag::NoPackages))
+           continue;
         // Locate the associated index files so we can derive a description
         pkgIndexFile *Indx;
         if (SrcList->FindIndex(F,Indx) == false &&