summaryrefslogtreecommitdiff
path: root/cmdline
diff options
context:
space:
mode:
Diffstat (limited to 'cmdline')
-rw-r--r--cmdline/apt-cache.cc2
-rw-r--r--cmdline/apt-get.cc8
-rw-r--r--cmdline/apt-helper.cc3
-rw-r--r--cmdline/apt-internal-solver.cc36
-rw-r--r--cmdline/apt.cc1
5 files changed, 30 insertions, 20 deletions
diff --git a/cmdline/apt-cache.cc b/cmdline/apt-cache.cc
index 84b775390..1414617eb 100644
--- a/cmdline/apt-cache.cc
+++ b/cmdline/apt-cache.cc
@@ -507,7 +507,7 @@ static bool DumpAvail(CommandLine &)
break;
}
- FileFd PkgF(File.FileName(),FileFd::ReadOnly);
+ FileFd PkgF(File.FileName(),FileFd::ReadOnly, FileFd::Extension);
if (_error->PendingError() == true)
break;
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc
index a24a1b45a..05785ec54 100644
--- a/cmdline/apt-get.cc
+++ b/cmdline/apt-get.cc
@@ -756,6 +756,7 @@ static bool DoSource(CommandLine &CmdL)
// Load the requestd sources into the fetcher
unsigned J = 0;
+ std::string UntrustedList;
for (const char **I = CmdL.FileList + 1; *I != 0; I++, J++)
{
string Src;
@@ -764,6 +765,9 @@ static bool DoSource(CommandLine &CmdL)
if (Last == 0) {
return _error->Error(_("Unable to find a source package for %s"),Src.c_str());
}
+
+ if (Last->Index().IsTrusted() == false)
+ UntrustedList += Src + " ";
string srec = Last->AsStr();
string::size_type pos = srec.find("\nVcs-");
@@ -847,6 +851,10 @@ static bool DoSource(CommandLine &CmdL)
Last->Index().SourceInfo(*Last,*I),Src);
}
}
+
+ // check authentication status of the source as well
+ if (UntrustedList != "" && !AuthPrompt(UntrustedList, false))
+ return false;
// Display statistics
unsigned long long FetchBytes = Fetcher.FetchNeeded();
diff --git a/cmdline/apt-helper.cc b/cmdline/apt-helper.cc
index 2c1107d90..b0edafcbd 100644
--- a/cmdline/apt-helper.cc
+++ b/cmdline/apt-helper.cc
@@ -43,7 +43,8 @@ static bool DoDownloadFile(CommandLine &CmdL)
std::string hash;
if (CmdL.FileSize() > 3)
hash = CmdL.FileList[3];
- new pkgAcqFile(&Fetcher, download_uri, hash, 0, "desc", "short-desc",
+ // we use download_uri as descr and targetfile as short-descr
+ new pkgAcqFile(&Fetcher, download_uri, hash, 0, download_uri, targetfile,
"dest-dir-ignored", targetfile);
Fetcher.Run();
bool Failed = false;
diff --git a/cmdline/apt-internal-solver.cc b/cmdline/apt-internal-solver.cc
index b85c07c33..e4cdf6381 100644
--- a/cmdline/apt-internal-solver.cc
+++ b/cmdline/apt-internal-solver.cc
@@ -31,6 +31,7 @@
#include <string>
#include <unistd.h>
#include <cstdio>
+#include <stdlib.h>
#include <apti18n.h>
/*}}}*/
@@ -56,6 +57,12 @@ static bool ShowHelp(CommandLine &) {
return true;
}
/*}}}*/
+APT_NORETURN static void DIE(std::string const &message) { /*{{{*/
+ std::cerr << "ERROR: " << message << std::endl;
+ _error->DumpErrors(std::cerr);
+ exit(EXIT_FAILURE);
+}
+ /*}}}*/
int main(int argc,const char *argv[]) /*{{{*/
{
CommandLine::Args Args[] = {
@@ -115,34 +122,29 @@ int main(int argc,const char *argv[]) /*{{{*/
EDSP::WriteProgress(0, "Start up solver…", output);
- if (pkgInitSystem(*_config,_system) == false) {
- std::cerr << "System could not be initialized!" << std::endl;
- return 1;
- }
+ if (pkgInitSystem(*_config,_system) == false)
+ DIE("System could not be initialized!");
EDSP::WriteProgress(1, "Read request…", output);
if (WaitFd(input, false, 5) == false)
- std::cerr << "WAIT timed out in the resolver" << std::endl;
+ DIE("WAIT timed out in the resolver");
std::list<std::string> install, remove;
bool upgrade, distUpgrade, autoRemove;
- if (EDSP::ReadRequest(input, install, remove, upgrade, distUpgrade, autoRemove) == false) {
- std::cerr << "Parsing the request failed!" << std::endl;
- return 2;
- }
+ if (EDSP::ReadRequest(input, install, remove, upgrade, distUpgrade, autoRemove) == false)
+ DIE("Parsing the request failed!");
EDSP::WriteProgress(5, "Read scenario…", output);
pkgCacheFile CacheFile;
- CacheFile.Open(NULL, false);
+ if (CacheFile.Open(NULL, false) == false)
+ DIE("Failed to open CacheFile!");
EDSP::WriteProgress(50, "Apply request on scenario…", output);
- if (EDSP::ApplyRequest(install, remove, CacheFile) == false) {
- std::cerr << "Failed to apply request to depcache!" << std::endl;
- return 3;
- }
+ if (EDSP::ApplyRequest(install, remove, CacheFile) == false)
+ DIE("Failed to apply request to depcache!");
pkgProblemResolver Fix(CacheFile);
for (std::list<std::string>::const_iterator i = remove.begin();
@@ -183,10 +185,8 @@ int main(int argc,const char *argv[]) /*{{{*/
EDSP::WriteProgress(95, "Write solution…", output);
- if (EDSP::WriteSolution(CacheFile, output) == false) {
- std::cerr << "Failed to output the solution!" << std::endl;
- return 4;
- }
+ if (EDSP::WriteSolution(CacheFile, output) == false)
+ DIE("Failed to output the solution!");
EDSP::WriteProgress(100, "Done", output);
diff --git a/cmdline/apt.cc b/cmdline/apt.cc
index 72086af14..2cfdf8e8e 100644
--- a/cmdline/apt.cc
+++ b/cmdline/apt.cc
@@ -116,6 +116,7 @@ int main(int argc, const char *argv[]) /*{{{*/
_config->CndSet("DPkg::Progress-Fancy", "1");
_config->CndSet("Apt::Color", "1");
_config->CndSet("APT::Get::Upgrade-Allow-New", true);
+ _config->CndSet("APT::Cmd::Show-Update-Stats", true);
// Parse the command line and initialize the package library
CommandLine CmdL(Args.data(), _config);