public inbox for cygwin-apps-cvs@sourceware.org help / color / mirror / Atom feed
From: jturney@sourceware.org To: cygwin-apps-cvs@sourceware.org Subject: [setup - the official Cygwin setup program] branch master, updated. release_2.900 Date: Fri, 03 Jan 2020 18:00:00 -0000 [thread overview] Message-ID: <20200103180001.119248.qmail@sourceware.org> (raw) https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=d997f4cfe147d5ee6aa886aa6bda066204f734ad commit d997f4cfe147d5ee6aa886aa6bda066204f734ad Author: Jon Turney <jon.turney@dronecode.org.uk> Date: Thu Jan 2 16:26:46 2020 +0000 Ignore reinstall action when the package isn't installed '--packages X --remove-packages X' is interpreted by applyCommandLinePackageSelection() as a request to reinstall X (and similarly with --category X --remove-categories X). If X isn't actually already installed, this leads to bogus 'erase/install no-package' tasks appearing in the task list. https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=4938eeae36da8c6570b6abedeeb9960c6f9eea64 commit 4938eeae36da8c6570b6abedeeb9960c6f9eea64 Author: Jon Turney <jon.turney@dronecode.org.uk> Date: Thu Jan 2 15:37:12 2020 +0000 Dynamically size columns in transaction list log https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=080aca57ed93ee055eee9ca030f34257bd3225df commit 080aca57ed93ee055eee9ca030f34257bd3225df Author: Jon Turney <jon.turney@dronecode.org.uk> Date: Thu Jan 2 14:56:07 2020 +0000 Ignore install action when no current package exists This isn't ideal as a command line to install a package which only has a test version will do nothing. But I think we don't want installing by category to install packages in that category which only have a test version. Unfortunately, both cases are currently identical by the time we get to applyCommandLinePackageSelection(). https://sourceware.org/git/gitweb.cgi?p=cygwin-apps/setup.git;h=849c42ad876d68f32516e01a1a9e7ee13b3ef632 commit 849c42ad876d68f32516e01a1a9e7ee13b3ef632 Author: Jon Turney <jon.turney@dronecode.org.uk> Date: Thu Jan 2 14:51:04 2020 +0000 Revert "Fix cases where incorrect action is stored by set_action()" This reverts commit e435a212a6e85169616a67c08eab1d9a387c6cfc. I'd forgotten that action = Install_action, desired = empty version is how we represent 'install any version of this package'. Converting that to NoChange_action leaves us back mishandling obsolete packges specified on the command line, fixing which was the whole point of this change. So let's try to fix this a different way... Diff: --- libsolv.cc | 25 +++++++++++++++++++------ package_meta.cc | 55 ++++++++++++++++++++++++++++++------------------------- 2 files changed, 49 insertions(+), 31 deletions(-) diff --git a/libsolv.cc b/libsolv.cc index d7a9d01..a2f3f4c 100644 --- a/libsolv.cc +++ b/libsolv.cc @@ -21,7 +21,8 @@ #include "solv/evr.h" #include "LogSingleton.h" -#include <iomanip> +#include <iomanip> +#include <algorithm> // --------------------------------------------------------------------------- // Utility functions for mapping between Operators and Relation Ids @@ -655,7 +656,7 @@ SolverTasks::setTasks() case packagemeta::Install_action: if (pkg->desired) add(pkg->desired, taskInstall); // install/upgrade - else + else if (pkg->curr) add(pkg->curr, taskInstallAny); // install break; @@ -948,7 +949,7 @@ SolverSolution::augmentTasks(SolverTasks &tasks) { const SolvableVersion &sv = (*i).first; - if (((*i).second) == SolverTasks::taskReinstall) + if (sv && (((*i).second) == SolverTasks::taskReinstall)) { trans.push_back(SolverTransaction(SolvableVersion(sv.id, pool.pool), SolverTransaction::transErase)); @@ -986,15 +987,27 @@ SolverSolution::dumpTransactionList() const { if (trans.size()) { + size_t width_name = 0; + size_t width_version = 0; + + for (SolverTransactionList::const_iterator i = trans.begin (); + i != trans.end (); + ++i) + { + width_name = std::max(width_name, i->version.Name().length()+1); + width_version = std::max(width_version, i->version.Canonical_version().length()+1); + } + Log (LOG_PLAIN) << "Augmented Transaction List:" << endLog; for (SolverTransactionList::const_iterator i = trans.begin (); i != trans.end (); ++i) { Log (LOG_PLAIN) << std::setw(4) << std::distance(trans.begin(), i) - << std::setw(8) << i->type - << std::setw(48) << i->version.Name() - << std::setw(20) << i->version.Canonical_version() << endLog; + << std::setw(8) << i->type << " " + << std::left + << std::setw(width_name) << i->version.Name() + << std::setw(width_version) << i->version.Canonical_version() << endLog; } } else diff --git a/package_meta.cc b/package_meta.cc index 1f6ab16..121fc70 100644 --- a/package_meta.cc +++ b/package_meta.cc @@ -549,31 +549,30 @@ packagemeta::set_action (_actions action, packageversion const &default_version, else if (action == Install_action) { desired = default_version; - if (desired != installed) - if (desired.accessible ()) - { - /* Memorize the fact that the user picked to install this package at least once. */ - if (useraction) - user_picked = true; - - pick (true); - srcpick (false); - - /* Install no version is Uninstall */ - if (!desired) - action = Uninstall_action; - } - else - { - pick (false); - srcpick (true); - } - else - { - action = NoChange_action; - pick (false); - srcpick (false); - } + if (desired) + { + if (desired != installed) + if (desired.accessible ()) + { + /* Memorize the fact that the user picked to install this package at least once. */ + if (useraction) + user_picked = true; + + pick (true); + srcpick (false); + } + else + { + pick (false); + srcpick (true); + } + else + { + action = NoChange_action; + pick (false); + srcpick (false); + } + } } else if (action == Reinstall_action) { @@ -583,6 +582,12 @@ packagemeta::set_action (_actions action, packageversion const &default_version, pick (true); srcpick (false); } + else + { + action = NoChange_action; + pick (false); + srcpick (false); + } } else if (action == Uninstall_action) {
reply other threads:[~2020-01-03 18:00 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200103180001.119248.qmail@sourceware.org \ --to=jturney@sourceware.org \ --cc=cygwin-apps-cvs@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).