]> git.saurik.com Git - apt.git/commitdiff
* tasksupport (apt-get installtask lala) added
authorMichael Vogt <michael.vogt@ubuntu.com>
Tue, 19 Sep 2006 12:02:53 +0000 (14:02 +0200)
committerMichael Vogt <michael.vogt@ubuntu.com>
Tue, 19 Sep 2006 12:02:53 +0000 (14:02 +0200)
Makefile
cmdline/apt-get.cc
po/apt-all.pot

index 72cac61b5ec7f5833e401956be4364fae4eb2654..b35ad4a0d02dde2c4d4194d04a96e1e593f8e07c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -17,8 +17,8 @@ all headers library clean veryclean binary program doc dirs:
        $(MAKE) -C cmdline $@
        $(MAKE) -C ftparchive $@
        $(MAKE) -C dselect $@
        $(MAKE) -C cmdline $@
        $(MAKE) -C ftparchive $@
        $(MAKE) -C dselect $@
-       $(MAKE) -C doc $@
-       $(MAKE) -C po $@
+#      $(MAKE) -C doc $@
+#      $(MAKE) -C po $@
 
 # Some very common aliases
 .PHONY: maintainer-clean dist-clean distclean pristine sanity 
 
 # Some very common aliases
 .PHONY: maintainer-clean dist-clean distclean pristine sanity 
index 64882e3e8875ad58672ae0c14f3f80964f207584..9705f84dc6f047f429066bec9297392d66a0f317 100644 (file)
@@ -1406,6 +1406,61 @@ bool DoUpgrade(CommandLine &CmdL)
    return InstallPackages(Cache,true);
 }
                                                                        /*}}}*/
    return InstallPackages(Cache,true);
 }
                                                                        /*}}}*/
+// DoInstallTask - Install task from the command line                  /*{{{*/
+// ---------------------------------------------------------------------
+/* Install named task */
+bool DoInstallTask(CommandLine &CmdL)
+{
+   const char *start, *end;
+   pkgCache::PkgIterator Pkg;
+
+   CacheFile Cache;
+   if (Cache.OpenForInstall() == false || 
+       Cache.CheckDeps(CmdL.FileSize() != 1) == false)
+      return false;
+
+   // create the records parser
+   pkgRecords Recs(Cache);
+   
+   unsigned int ExpectedInst = 0;
+   unsigned int Packages = 0;
+   pkgProblemResolver Fix(Cache);
+   char buf[64*1024];
+
+   for (const char **I = CmdL.FileList + 1; *I != 0; I++)
+   {
+      regex_t Pattern;
+      int Res;
+
+      // build regexp for the task
+      char S[300];
+      snprintf(S, sizeof(S), "^Task:.*%s.*\n", *I);
+      regcomp(&Pattern,S, REG_EXTENDED | REG_NOSUB | REG_NEWLINE);
+
+      for (Pkg = Cache->PkgBegin(); Pkg.end() == false; Pkg++)
+      {
+        pkgCache::VerIterator ver = (*Cache)[Pkg].CandidateVerIter(*Cache);
+        if(ver.end())
+           continue;
+        pkgRecords::Parser &parser = Recs.Lookup(ver.FileList());
+        parser.GetRec(start,end);
+        strncpy(buf, start, end-start);
+        buf[end-start] = 0x0;
+        if (regexec(&Pattern,buf,0,0,0) != 0)
+           continue;
+        TryToInstall(Pkg,Cache,Fix,false,false,ExpectedInst);
+      }
+   }
+
+   // Call the scored problem resolver
+   Fix.InstallProtect();
+   if (Fix.Resolve(true) == false)
+      _error->Discard();
+   
+   // prompt for install
+   return InstallPackages(Cache,false,true);
+}
+
 // DoInstall - Install packages from the command line                  /*{{{*/
 // ---------------------------------------------------------------------
 /* Install named packages */
 // DoInstall - Install packages from the command line                  /*{{{*/
 // ---------------------------------------------------------------------
 /* Install named packages */
@@ -2546,6 +2601,7 @@ int main(int argc,const char *argv[])
    CommandLine::Dispatch Cmds[] = {{"update",&DoUpdate},
                                    {"upgrade",&DoUpgrade},
                                    {"install",&DoInstall},
    CommandLine::Dispatch Cmds[] = {{"update",&DoUpdate},
                                    {"upgrade",&DoUpgrade},
                                    {"install",&DoInstall},
+                                   {"installtask",&DoInstallTask},
                                    {"remove",&DoInstall},
                                    {"dist-upgrade",&DoDistUpgrade},
                                    {"dselect-upgrade",&DoDSelectUpgrade},
                                    {"remove",&DoInstall},
                                    {"dist-upgrade",&DoDistUpgrade},
                                    {"dselect-upgrade",&DoDSelectUpgrade},
index 352f2f5a6ee8c4c9da0ef88fb8798e815f349ef3..006a07bfc8d528df72fe27e23e0c68ad05d23e5d 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-09-12 11:18+0200\n"
+"POT-Creation-Date: 2006-09-19 13:29+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -148,7 +148,7 @@ msgstr ""
 
 #: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550
 
 #: cmdline/apt-cache.cc:1652 cmdline/apt-cdrom.cc:138 cmdline/apt-config.cc:70
 #: cmdline/apt-extracttemplates.cc:225 ftparchive/apt-ftparchive.cc:550
-#: cmdline/apt-get.cc:2387 cmdline/apt-sortpkgs.cc:144
+#: cmdline/apt-get.cc:2430 cmdline/apt-sortpkgs.cc:144
 #, c-format
 msgid "%s %s for %s %s compiled on %s %s\n"
 msgstr ""
 #, c-format
 msgid "%s %s for %s %s compiled on %s %s\n"
 msgstr ""
@@ -546,7 +546,7 @@ msgstr ""
 msgid "Y"
 msgstr ""
 
 msgid "Y"
 msgstr ""
 
-#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1506
+#: cmdline/apt-get.cc:142 cmdline/apt-get.cc:1549
 #, c-format
 msgid "Regex compilation error - %s"
 msgstr ""
 #, c-format
 msgid "Regex compilation error - %s"
 msgstr ""
@@ -705,11 +705,11 @@ msgstr ""
 msgid "Internal error, Ordering didn't finish"
 msgstr ""
 
 msgid "Internal error, Ordering didn't finish"
 msgstr ""
 
-#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1818 cmdline/apt-get.cc:1851
+#: cmdline/apt-get.cc:791 cmdline/apt-get.cc:1861 cmdline/apt-get.cc:1894
 msgid "Unable to lock the download directory"
 msgstr ""
 
 msgid "Unable to lock the download directory"
 msgstr ""
 
-#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1899 cmdline/apt-get.cc:2135
+#: cmdline/apt-get.cc:801 cmdline/apt-get.cc:1942 cmdline/apt-get.cc:2178
 #: apt-pkg/cachefile.cc:67
 msgid "The list of sources could not be read."
 msgstr ""
 #: apt-pkg/cachefile.cc:67
 msgid "The list of sources could not be read."
 msgstr ""
@@ -738,7 +738,7 @@ msgstr ""
 msgid "After unpacking %sB disk space will be freed.\n"
 msgstr ""
 
 msgid "After unpacking %sB disk space will be freed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:1989
+#: cmdline/apt-get.cc:846 cmdline/apt-get.cc:2032
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr ""
 #, c-format
 msgid "Couldn't determine free space in %s"
 msgstr ""
@@ -772,7 +772,7 @@ msgstr ""
 msgid "Do you want to continue [Y/n]? "
 msgstr ""
 
 msgid "Do you want to continue [Y/n]? "
 msgstr ""
 
-#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2032
+#: cmdline/apt-get.cc:961 cmdline/apt-get.cc:1365 cmdline/apt-get.cc:2075
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr ""
 #, c-format
 msgid "Failed to fetch %s  %s\n"
 msgstr ""
@@ -781,7 +781,7 @@ msgstr ""
 msgid "Some files failed to download"
 msgstr ""
 
 msgid "Some files failed to download"
 msgstr ""
 
-#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2041
+#: cmdline/apt-get.cc:980 cmdline/apt-get.cc:2084
 msgid "Download complete and in download only mode"
 msgstr ""
 
 msgid "Download complete and in download only mode"
 msgstr ""
 
@@ -891,27 +891,27 @@ msgstr ""
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr ""
 
 msgid "Internal error, AllUpgrade broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1493 cmdline/apt-get.cc:1529
+#: cmdline/apt-get.cc:1536 cmdline/apt-get.cc:1572
 #, c-format
 msgid "Couldn't find package %s"
 msgstr ""
 
 #, c-format
 msgid "Couldn't find package %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:1516
+#: cmdline/apt-get.cc:1559
 #, c-format
 msgid "Note, selecting %s for regex '%s'\n"
 msgstr ""
 
 #, c-format
 msgid "Note, selecting %s for regex '%s'\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1546
+#: cmdline/apt-get.cc:1589
 msgid "You might want to run `apt-get -f install' to correct these:"
 msgstr ""
 
 msgid "You might want to run `apt-get -f install' to correct these:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1549
+#: cmdline/apt-get.cc:1592
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
 msgstr ""
 
 msgid ""
 "Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a "
 "solution)."
 msgstr ""
 
-#: cmdline/apt-get.cc:1561
+#: cmdline/apt-get.cc:1604
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
 msgid ""
 "Some packages could not be installed. This may mean that you have\n"
 "requested an impossible situation or if you are using the unstable\n"
@@ -919,163 +919,163 @@ msgid ""
 "or been moved out of Incoming."
 msgstr ""
 
 "or been moved out of Incoming."
 msgstr ""
 
-#: cmdline/apt-get.cc:1569
+#: cmdline/apt-get.cc:1612
 msgid ""
 "Since you only requested a single operation it is extremely likely that\n"
 "the package is simply not installable and a bug report against\n"
 "that package should be filed."
 msgstr ""
 
 msgid ""
 "Since you only requested a single operation it is extremely likely that\n"
 "the package is simply not installable and a bug report against\n"
 "that package should be filed."
 msgstr ""
 
-#: cmdline/apt-get.cc:1574
+#: cmdline/apt-get.cc:1617
 msgid "The following information may help to resolve the situation:"
 msgstr ""
 
 msgid "The following information may help to resolve the situation:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1577
+#: cmdline/apt-get.cc:1620
 msgid "Broken packages"
 msgstr ""
 
 msgid "Broken packages"
 msgstr ""
 
-#: cmdline/apt-get.cc:1603
+#: cmdline/apt-get.cc:1646
 msgid "The following extra packages will be installed:"
 msgstr ""
 
 msgid "The following extra packages will be installed:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1692
+#: cmdline/apt-get.cc:1735
 msgid "Suggested packages:"
 msgstr ""
 
 msgid "Suggested packages:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1693
+#: cmdline/apt-get.cc:1736
 msgid "Recommended packages:"
 msgstr ""
 
 msgid "Recommended packages:"
 msgstr ""
 
-#: cmdline/apt-get.cc:1713
+#: cmdline/apt-get.cc:1756
 msgid "Calculating upgrade... "
 msgstr ""
 
 msgid "Calculating upgrade... "
 msgstr ""
 
-#: cmdline/apt-get.cc:1716 methods/ftp.cc:702 methods/connect.cc:101
+#: cmdline/apt-get.cc:1759 methods/ftp.cc:702 methods/connect.cc:101
 msgid "Failed"
 msgstr ""
 
 msgid "Failed"
 msgstr ""
 
-#: cmdline/apt-get.cc:1721
+#: cmdline/apt-get.cc:1764
 msgid "Done"
 msgstr ""
 
 msgid "Done"
 msgstr ""
 
-#: cmdline/apt-get.cc:1786 cmdline/apt-get.cc:1794
+#: cmdline/apt-get.cc:1829 cmdline/apt-get.cc:1837
 msgid "Internal error, problem resolver broke stuff"
 msgstr ""
 
 msgid "Internal error, problem resolver broke stuff"
 msgstr ""
 
-#: cmdline/apt-get.cc:1894
+#: cmdline/apt-get.cc:1937
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 
 msgid "Must specify at least one package to fetch source for"
 msgstr ""
 
-#: cmdline/apt-get.cc:1924 cmdline/apt-get.cc:2153
+#: cmdline/apt-get.cc:1967 cmdline/apt-get.cc:2196
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr ""
 
 #, c-format
 msgid "Unable to find a source package for %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:1968
+#: cmdline/apt-get.cc:2011
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr ""
 
 #, c-format
 msgid "Skipping already downloaded file '%s'\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:1992
+#: cmdline/apt-get.cc:2035
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr ""
 
 #, c-format
 msgid "You don't have enough free space in %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:1997
+#: cmdline/apt-get.cc:2040
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr ""
 
 #, c-format
 msgid "Need to get %sB/%sB of source archives.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2000
+#: cmdline/apt-get.cc:2043
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr ""
 
 #, c-format
 msgid "Need to get %sB of source archives.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2006
+#: cmdline/apt-get.cc:2049
 #, c-format
 msgid "Fetch source %s\n"
 msgstr ""
 
 #, c-format
 msgid "Fetch source %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2037
+#: cmdline/apt-get.cc:2080
 msgid "Failed to fetch some archives."
 msgstr ""
 
 msgid "Failed to fetch some archives."
 msgstr ""
 
-#: cmdline/apt-get.cc:2065
+#: cmdline/apt-get.cc:2108
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr ""
 
 #, c-format
 msgid "Skipping unpack of already unpacked source in %s\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2077
+#: cmdline/apt-get.cc:2120
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr ""
 
 #, c-format
 msgid "Unpack command '%s' failed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2078
+#: cmdline/apt-get.cc:2121
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr ""
 
 #, c-format
 msgid "Check if the 'dpkg-dev' package is installed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2095
+#: cmdline/apt-get.cc:2138
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr ""
 
 #, c-format
 msgid "Build command '%s' failed.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2114
+#: cmdline/apt-get.cc:2157
 msgid "Child process failed"
 msgstr ""
 
 msgid "Child process failed"
 msgstr ""
 
-#: cmdline/apt-get.cc:2130
+#: cmdline/apt-get.cc:2173
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 
 msgid "Must specify at least one package to check builddeps for"
 msgstr ""
 
-#: cmdline/apt-get.cc:2158
+#: cmdline/apt-get.cc:2201
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr ""
 
 #, c-format
 msgid "Unable to get build-dependency information for %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2178
+#: cmdline/apt-get.cc:2221
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr ""
 
 #, c-format
 msgid "%s has no build depends.\n"
 msgstr ""
 
-#: cmdline/apt-get.cc:2230
+#: cmdline/apt-get.cc:2273
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr ""
 
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because the package %s cannot be "
 "found"
 msgstr ""
 
-#: cmdline/apt-get.cc:2282
+#: cmdline/apt-get.cc:2325
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because no available versions of "
 "package %s can satisfy version requirements"
 msgstr ""
 
 #, c-format
 msgid ""
 "%s dependency for %s cannot be satisfied because no available versions of "
 "package %s can satisfy version requirements"
 msgstr ""
 
-#: cmdline/apt-get.cc:2317
+#: cmdline/apt-get.cc:2360
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
 msgstr ""
 
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: Installed package %s is too new"
 msgstr ""
 
-#: cmdline/apt-get.cc:2342
+#: cmdline/apt-get.cc:2385
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr ""
 
 #, c-format
 msgid "Failed to satisfy %s dependency for %s: %s"
 msgstr ""
 
-#: cmdline/apt-get.cc:2356
+#: cmdline/apt-get.cc:2399
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr ""
 
 #, c-format
 msgid "Build-dependencies for %s could not be satisfied."
 msgstr ""
 
-#: cmdline/apt-get.cc:2360
+#: cmdline/apt-get.cc:2403
 msgid "Failed to process build dependencies"
 msgstr ""
 
 msgid "Failed to process build dependencies"
 msgstr ""
 
-#: cmdline/apt-get.cc:2392
+#: cmdline/apt-get.cc:2435
 msgid "Supported modules:"
 msgstr ""
 
 msgid "Supported modules:"
 msgstr ""
 
-#: cmdline/apt-get.cc:2433
+#: cmdline/apt-get.cc:2476
 msgid ""
 "Usage: apt-get [options] command\n"
 "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
 msgid ""
 "Usage: apt-get [options] command\n"
 "       apt-get [options] install|remove pkg1 [pkg2 ...]\n"
@@ -2112,12 +2112,12 @@ msgstr ""
 msgid "Dependency generation"
 msgstr ""
 
 msgid "Dependency generation"
 msgstr ""
 
-#: apt-pkg/tagfile.cc:85 apt-pkg/tagfile.cc:92
+#: apt-pkg/tagfile.cc:73
 #, c-format
 msgid "Unable to parse package file %s (1)"
 msgstr ""
 
 #, c-format
 msgid "Unable to parse package file %s (1)"
 msgstr ""
 
-#: apt-pkg/tagfile.cc:186
+#: apt-pkg/tagfile.cc:160
 #, c-format
 msgid "Unable to parse package file %s (2)"
 msgstr ""
 #, c-format
 msgid "Unable to parse package file %s (2)"
 msgstr ""