On 08/06/2015 14:43, Corinna Vinschen wrote:
On Jun 3 17:30, Jon TURNEY wrote:
Reminded by a recent request as to how to install xorg-server-1.17.1-2, which
has disappeared beyond setup's ken (in order to determine if there was a
regression in the curent version), this is a re-send of a patch I originally
submitted back in 2011 [1], which received an ambiguous response then.
[1] https://cygwin.com/ml/cygwin-apps/2011-04/msg00053.html
This recognizes any "[foo]" line as introducing the information for another
version, which doesn't have one of the trust levels [curr], [prev] or [test],
and so isn't automatically selected when setup is told to install all packages
at that trust level (by default, [curr]).
Setup already does all the neccessary sorting in version order etc. to use these
additional versions.
Since the value of <foo> carries no meaning, it might make sense to update the
setup.ini specification to mandate the use of specific strings like "[also]" or
"[other]", or perhaps "[prev-1]", "[prev-2]", etc.
I have written a corresponding patch to genini.
I'm not sure what expiry policy is currently used by upset for old packages, but
presumably that would need to be made more sophisticated, along with the changes
needed to generate setup.ini entries for other versions.
Upset does not handle expiry of packages at all. Versions are mentioned
in setup.hint as test, curr, prev, or exp (yes, really) and those are
handled, everything else throws an error message. Package versions not
mentioned in setup.hint are simply ignored.
Yes, upset doesn't (didn't) explicitly handle expiry, but the fact that
a package version is not mentioned in setup.ini causes it to be removed
by stalepkgs, when that is next run.
After the corresponding change to setup.ini generation, it will list all
versions, so none would ever be eligible for expiry under that policy.
Anyhow, improving that is close to the top of my hit-list for calm.
I'm not against adding some functionality along these lines (provided
you also fix upset), but I'm not so sure about the broad definition of
the version state pattern. It feels as generating problems down the
road. Think setup.hint. Your patch would requite to recognize more or
less any string as version state:
category: [...]
requires: [...]
sdesc: [...]
ldesc: [...]
prev: 1.2.3-1
curr: 1.2.4-1
test: 1.2.5-1
blub: 1.2.6-1
fwexf3efx24x: 1.2.7-1
I wasn't envisioning these labels appearing in setup.hint at all, since
that only gives the information 'this version exists', which is already
apparent from the existence of the package file.
(In fact, even 'prev' has no real meaning any more since the removal of
the 'prev' stability selector in setup [1], apart from 'don't expire me')
Nevertheless, you are correct, so (by specification) let's restrict the
label to 'ver<digits>'.
I should also have mentioned that existing versions of setup cannot
parse setup.ini with these extra labels (reporting an error and asking
'do you have the latest setup?'), so it would be nice to get this into
setup sooner rather than later, if possible.
[1]
https://sourceware.org/git/?p=cygwin-setup.git;a=commit;h=ec9c1d708418e05c4ba02b58a9869f1e232ad381