This is the mail archive of the cygwin-apps mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH setup 00/14] Use libsolv, solve all our problems... (WIP)


On 8/29/2017 9:37 AM, Ken Brown wrote:
On 5/31/2017 6:50 AM, Jon Turney wrote:
... solve some problems, perhaps add some new ones, I guess.  I'm not 100%
sure this is the right approach to take, but I wrote it, so here it is.
[...]
- As implemented, selecting "Current" overrides "Keep".  This is wrong, and a
change from current behaviour, but is probably a symptom of some deeper
confusion in the picker UI I'm not sure how to address

I think the problem might be the following lines in the definition of SolverSolution::update:

   if (update)
     queue_push2(&job, SOLVER_UPDATE | SOLVER_SOLVABLE_ALL, 0);

When the prerequisite checker calls SolverSolution::update, doesn't this cause the upgrading of old versions that we want to keep (assuming "Current" has been selected)?  As a quick test, I commented out those lines and found that setup.exe let me keep an old version of a package.

Maybe you need to add a DISABLE_UPDATE command to the solver task list to implement "Keep" for packages that would otherwise be updated.

DISABLE_UPDATE is not a command. But SOLVER_LOCK seems to do the job. Jon, I'm attaching a patch that should apply to the libsolv branch of your github cygwin-setup repo. So far I've only tested it very lightly, enough to verify that it lets me keep an old version of a package.

Ken

Attachment: 0001-Don-t-override-a-Keep-selection.patch
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]