[PATCH setup] Allow setup to parse more than 3 versions from the setup.ini file

Jon Turney jon.turney@dronecode.org.uk
Mon Oct 9 19:32:00 GMT 2017


On 06/12/2016 18:43, Corinna Vinschen wrote:
> On Dec  6 17:21, Jon Turney wrote:
>>  From 35ecf968425762c72076059464dfb6c8b21a9331 Mon Sep 17 00:00:00 2001
>> From: Jon Turney <jon.turney-GrJqePx9RPPAJUdA+FbntA@public.gmane.org>
>> Date: Wed, 31 Aug 2016 11:31:22 +0100
>> Subject: [PATCH setup] Allow setup to parse more than 3 versions from the
>>   setup.ini file
>>
>> 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 necessary sorting in version order etc. to use
>> these additional versions.
>>
>> The value of <foo> carries no meaning, but the setup.ini specification
>> mandates the use of "[ver<digits>]".
>>
>> 	* PackageTrust.h (trusts): Add TRUST_OTHER.
>> 	* inilex.ll: tokenize any other [version] as the T_OTHER token.
>> 	* iniparse.yy: Add T_OTHER token and set package trust
>> 	to TRUST_OTHER when it is used.

So, thinking about this change some more, I realize that there is a 
another way to do this, which doesn't break backwards compatibility with 
setup, by having multiple [prev] and [test] sections.

[1] doesn't say that these section names are unique, and setup doesn't 
require that, I'm going to claim that it's valid :)

Because of the way setup works, the last [test] section is the version 
which is selected when 'test' is selected, so a specific ordering of the 
sections would be required.  The calm change to implement this is at [1].

So, for example we could have:

@foo
...
version: 250-0
...
[prev]
version: 241-0
...
[prev]
version: 243-0
...
[test]
version: 251-0
...
[test]
version: 252-0
...

250-0 would be current, 252-0 would be test, and the other versions 
would also be available to install.

[1] https://sourceware.org/cygwin-apps/setup.ini.html
[2] 
https://github.com/jon-turney/calm/commit/c21cfdc8f8c94f615ff97000428c6e542d335dca



More information about the Cygwin-apps mailing list