per-version hints proposal

Jon Turney jon.turney@dronecode.org.uk
Tue Aug 30 12:24:00 GMT 2016


On 20/06/2016 16:28, Jon Turney wrote:
> Currently, the setup.hint file is shared between all versions.
>
> This means that manual intervention (by the package maintainer, or on
> sourceware) is needed when versions have different dependencies.
>
> To automate this problem out of existence, I suggest replacing the
> setup.hint file in an upload with a package-version-release.hint file.

I deployed an update to calm today which adds support for this proposal, 
with some minor adjustments noted below.

Nobody can actually use this until a cygport with the corresponding 
changes is released, which still needs some testing, after which I will 
update the website documentation.

> This will be basically identical to the existing setup.hint, with the
> advantage that it can't be trampled on by a future version, with the
> following changes:
>
> * 'skip' doesn't seem meaningful on a per-version basis.  Since it seems
> we can automatically detect packages which should have this applied
> anyhow (see the discussion in [1]), I'd suggest ignoring this hint, to
> be retired at some future date.

skip is honoured, if present, but not required.

> * 'curr', 'prev' and 'test' don't make sense on a per-version basis.  So
> I suggest a separate file for these version overrides (versions.hint?)

This file is called override.hint.

> cygport will be updated to create a pvr.hint rather than setup.hint

I'll send a patch to update cygport separately.

> calm will be changed so that:
>
> * The requires: line written in setup.ini will contain the union of the
> requires: from each pvr.hint
>
> * The sdesc:, ldesc:, category: and message: lines in setup.ini will be
> taken from the pvr.hint for the curr version
>
> * While it's already effectively mandatory that a package has a curr
> version, this requirement will be documented and enforced.

calm will issue a warning, not an error, when a package doesn't have a 
current version.  For the purpose above, information from the highest 
version will be used in place of information from the curr version.

per the discussion [1], it's possibly useful in mksetupini, so the 
warning can be suppressed there.

[1] https://cygwin.com/ml/cygwin-apps/2016-07/msg00052.html

> * The source: line in setup.ini for a package version will consider any
> external-source: from the corresponding pvr.hint
>
> * Uploads with a setup.hint will continue to work as before, for a
> transitional period.
>
>
> No setup changes are required.
>
>
> Immediately, this avoids the need for manual intervention when versions
> have different dependencies, and going forward, this is lays some
> groundwork for supporting per-version dependencies.
>
>
> [1] https://cygwin.com/ml/cygwin-apps/2016-02/msg00017.html



More information about the Cygwin-apps mailing list