diff options
author | David Kalnischkies <david@kalnischkies.de> | 2015-07-09 21:10:53 +0200 |
---|---|---|
committer | David Kalnischkies <david@kalnischkies.de> | 2015-08-10 17:27:17 +0200 |
commit | 0d5b9da9f597fecae9b912d37d4e58bc903bdd4f (patch) | |
tree | 091475cd19cb6530e6f7ec2a941fd6e69d3ca3e1 /apt-private | |
parent | a4b8112b19763cbd2c12b81d55bc7d43a591d610 (diff) |
disable locking even for root in --simulate
Six years ago in 55a5a46c235a30bf024fb2301066553953701cc5 apt-get
learned to disable locking if run as normal user and show a message.
Helmut Grohne rightly suggests on IRC now that there isn't much point in
getting the locks for root either as the output isn't in any way more
authoritive than without locking given that after this call the lock is
freed and any action can sneak in before we make the next call. So we
exchange no benefit for the disavantage of blocking real calls. This can
be especially confusing with the aliases --no-act and --just-print.
We do not print the message we print for users through as the non-root
users can be confronted with a lot more difference via unreadable files.
Diffstat (limited to 'apt-private')
-rw-r--r-- | apt-private/private-main.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/apt-private/private-main.cc b/apt-private/private-main.cc index 668b1733a..3886c7df6 100644 --- a/apt-private/private-main.cc +++ b/apt-private/private-main.cc @@ -22,13 +22,15 @@ void InitSignals() void CheckSimulateMode(CommandLine &CmdL) { - // simulate user-friendly if apt-get has no root privileges - if (getuid() != 0 && _config->FindB("APT::Get::Simulate") == true && + // disable locking in simulation, but show the message only for users + // as root hasn't the same problems like unreadable files which can heavily + // distort the simulation. + if (_config->FindB("APT::Get::Simulate") == true && (CmdL.FileSize() == 0 || (strcmp(CmdL.FileList[0], "source") != 0 && strcmp(CmdL.FileList[0], "download") != 0 && strcmp(CmdL.FileList[0], "changelog") != 0))) { - if (_config->FindB("APT::Get::Show-User-Simulation-Note",true) == true) + if (getuid() != 0 && _config->FindB("APT::Get::Show-User-Simulation-Note",true) == true) std::cout << _("NOTE: This is only a simulation!\n" " apt-get needs root privileges for real execution.\n" " Keep also in mind that locking is deactivated,\n" |