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: per-version hints proposal


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


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