This is the mail archive of the
cygwin-apps
mailing list for the Cygwin project.
Re: per-version hints proposal
- From: Jon Turney <jon dot turney at dronecode dot org dot uk>
- To: cygwin-apps at cygwin dot com
- Date: Tue, 30 Aug 2016 13:24:12 +0100
- Subject: Re: per-version hints proposal
- Authentication-results: sourceware.org; auth=none
- References: <8b4723b2-1bd5-3604-1deb-cfd0a1c7b9d9@dronecode.org.uk>
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