This is the mail archive of the
cygwin-apps
mailing list for the Cygwin project.
collecting information for versioned dependencies (was Re: setup -g ???)
- From: Jon Turney <jon dot turney at dronecode dot org dot uk>
- To: "cygwin-apps at cygwin dot com" <cygwin-apps at cygwin dot com>
- Date: Mon, 9 Jul 2018 19:38:07 +0100
- Subject: collecting information for versioned dependencies (was Re: setup -g ???)
- References: <CAD8GWstM+H9_FBFvCF44vv1PMOgndLEgy3GvXon5UDDon9qZ6A@mail.gmail.com> <E51C5B015DBD1348A1D85763337FB6D90189B4A99A@Remus.metastack.local> <b86906c9-784a-6bda-73b3-08c77b1d00e0@dronecode.org.uk> <15aa3220-c49d-9de9-3147-e817951fa88f@cornell.edu>
On 02/04/2018 18:03, Ken Brown wrote:
[Redirected to cygwin-apps from
https://cygwin.com/ml/cygwin/2018-03/msg00365.html.]
On 3/22/2018 6:46 PM, Jon Turney wrote:
[...]
This is basically correct.
setup is now capable of being told about dependencies where upgrading
an already installed package is required, but this information isn't
currently collected
(For example, some packages now exist (e.g. vim [1]), which were built
with gcc 6.4.0-5 and cygport 0.31.0-1. These packages almost
certainly use ssp/fortify functions in the cygwin DLL, and so require
a cygwin package >=2.10.0-1 (technically, the requirement is cygwin
API >=0.320), but the dependency recorded is only on the cygwin
package at any version)
(The example given is kind of incomplete, in that we could define an
additional provides: to record that API version.)
That's something someone could usefully work on, if they were so
inclined.
The attached cygport patch attempts to address this by requiring, for
each dependency of a package, a version >= the version installed at the
time the package was built. It treats only dependencies found by
Thanks. This is an interesting approach to automatically collecting
this information I hadn't considered.
Problems are that (i) it makes package builds less reproducible (as
these dependencies will depend on the currently installed version of
them, which might well change over time), and (ii) it will tend of
over-estimate the version required.
I don't know how these problems are solved in other distros, but that's
probably worth looking at...
cygport, not those added via REQUIRES in the cygport file. My thinking
is that the cygport user should be in control of added dependencies;
s/he can add version numbers if desired.
mksetupini would need to be updated to parse versioned dependencies. (Or
maybe it's expecting a different syntax; I didn't check.)