On 2025-07-02 15:06, Jon Turney via Cygwin-apps wrote:

So, to follow on from the points raised in the thread ending [1], and perhaps start a discussion: Having developers build executable packages locally and then upload them doesn't really meet contemporary standards. Given my druthers, I'd just disable sftp package uploads right now, and make you all use the janky "build service" I hacked together in a few spare weekends.
Amongst the advantages this has:
* Ensures that the packaging git repo is updated when the package is.
* Ensures that the source package is complete; and that the build works and is repeatable.
* Ensures that the package is built in a sterile environment.
* Ensures that the package is serially developed in the git main branch (so when someone does a NMU, they don't also need to remember to explicitly communicate any changes made to the maintainer so they don't drop off again in the next release...) * Transparency about, and some degree of auditability on how, the contents of the install package are generated. * The way we provide a chrooted sftp session for uploads is weird and non- standard and this means sourceware no longer has to support it. (A related consideration is that this probably also helps if/when we want to start providing arm64 packages (which will otherwise entail all the problems we had when x86_64 started being a thing - but at least in that case, most maintainers had the necessary hardware, if not the needed OS) - The alternative seems to be providing numerous cross-build packages, which doesn't seem like a good use of anyone's time...)
Unfortunately, there are some issues with my half-assed replacement:
* It relies on free CI services (GitHub and AppVeyor) to do the actual builds, which might be withdrawn or start charging. * In particular, github requires an account to view the logs, which is a sticking point for some people. * There's a number of problems with the current implementation: For a start it's a synchronous daisy-chain of actions, which isn't tolerant of intermittent connectivity or other transient problems. * The "tokens" which can specified to control options in it are an ad-hoc mess. Idk what the ideal solution is, but the names of those options all need rethinking for a start... * If you want to rebuild A and then B which requires the new B, you have to guess when to submit the build for B. (perhaps it needs private access to the repo rather than using a mirror, to ensure the copy it's looking at is up to date, but even then...) * Some packages have circular dependencies, requiring some bootstrapping build of package A, using that to build B, before returning to rebuild package A properly with B available. This is completely unaccounted for in the current model of doing things. * There are a couple of packagers using their own handcrafted packaging rather than cygport. I'll be reaching out the those soon to discuss what can (reasonably) be done to accommodate them.
Any questions/thoughts/concerns?
[1] https://cygwin.com/pipermail/cygwin-apps/2025-June/044388.html

I have often thought why are we not leveraging Sourceware Infrastructure Services and/or SFC Services more?

Does Sourceware Infrastructure support any BuildBots with Windows builders for other (GNU?) projects, or could we get Windows containers/VMs added, and Scallywag running under those, getting off the GitHub and Appveyor servers?

Under the Mission web page they do say "others - just ask!" so should we?

--
Take care. Thanks, Brian Inglis              Calgary, Alberta, Canada

La perfection est atteinte                   Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter  not when there is no more to add
mais lorsqu'il n'y a plus rien à retrancher  but when there is no more to cut
                                -- Antoine de Saint-Exupéry

Reply via email to