Finding cygport/cygwin source repositories not listed at https://cygwin.org/packages/package_list.html

Adam Dinwoodie adam@dinwoodie.org
Wed Dec 16 21:44:23 GMT 2020


On Wed, 16 Dec 2020 at 20:31, Hamish McIntyre-Bhatty wrote:
> I have several packages I need the Cygwin source repositories for, but
> there is no link from https://cygwin.org/packages/package_list.html to
> the cygwin source.
>
> In a few cases the repositories are also out of date (mostly Python
> stuff, probably your packages adopted from Yaakov, Marco Atzeri?).
>
> I was wondering if there's a good way to find these/if someone might
> know of the top of their head if I list them?
>
> It's quite a lot of packages, so it's likely better if I can be given
> pointers.
>
> Full disclaimer: I specifically need the source repos and not just the
> source packages because I'm using them for an automated source bundling
> tool for my DDRescue-GUI Windows bundle (which is open source but
> commercial). I've spent ages writing the script and I'd rather not do it
> over again / make lots of modifications and break it.
>
> Any ideas?

Yes, but I don't think you'll like it: use the source packages, not
the repositories. There's no obligation or expectation that package
maintainers make their source code available in any way other than
through providing a source package. Some do provide a public
repository and make it readily available, but I would not be at all
surprised if some maintainers – particularly for packages that don't
get many upstream updates – don't use version control at all.

Further, remember for GPL-like licenses you need to provide *all* the
source code that's used to create the binaries you're distributing,
including both the upstream source code and any Cygwin-specific
patches or modifications. Those will normally be in two separate
repositories, and there's no guarantee it'll be easy to find one from
the other. Taking Git as an easy example, since it's a package I
maintain and am familiar with: you'd need to find both
https://github.com/me-and/Cygwin-Git/ and
https://git.kernel.org/pub/scm/git/git.git if you wanted the
underlying repositories, and I can't think of any way to get from one
to the other that's not incredibly fragile. And, as I say, I suspect
there are a bunch of packages in Cygwin where it's much more
difficult, if not impossible.

I think a much better route here would be to parse the setup.ini files
(e.g. https://mirrorservice.org/sites/sourceware.org/pub/cygwin/x86_64/setup.ini)
to work out the paths of the source packages that correspond to each
of the release packages you're using, and to use those. That's going
to be less work and also less fragile than trying to hunt down
repositories that may not even exist.

Adam


More information about the Cygwin mailing list