On March 21 2024 we had a curl distro meeting where people from at least ten different distros and curl project members had a video meeting and talked curl and distro related topics for a while.
Here is my summary of what we talked about and concluded.
Attendees
We had about 25 persons attending. At least the following organizations had representation:
- curl
- Debian
- Mageia
- RHEL/Fedora
- Windows 10/11
- MacPorts
- Homebrew
- Yocto Project
- AlmaLinux
- Arch Linux
- Rocky Linux
There were also a few interested people present without any particular association.
Agenda
Daniel went through a few slides and talked about vulnerabilities, curl features, testing, issues, long term support etc.
PSL
Be aware: you most probably want PSL support enabled in your curl build if your users ever use cookies.
HTTP/3
We had a discussion around the problems for distros to enable HTTP/3 because of the TLS situation. One way to somewhat untangle the situation would be to support using a different TLS library for QUIC than for everything else, but that is also a lot of work and probably brings its own set of unique problems as well.
curl’s support for OpenSSL’s QUIC (together with nghttp3) and OpenSSL’s upcoming improvements in that area (coming in OpenSSL 3.3) are for many users perhaps the most viable route to HTTP/3.
Tests
Distros seem to mostly run the curl test suite to verify that curl works for them – on each platform that they ship on. It was also noted that some distros’ habit of also running tests on all dependencies help them to catch things.
curl has introduced parallel tests the last few years and we encourage distros to try that out to possibly speed up the tests substantially.
Maintaining old curl versions
(the curl project does not maintain old versions/branches, it only releases new releases off the master branch)
Distributions have long-lived branches with curl versions they stick to for years. We spent a long time brain-storming around what can be done to improve the situation for everyone and to make things easier and more streamlined for distros to do this. A problem is that distros tend to have different priorities, schedules and selection criteria, which make them end up selecting different curl versions to stick to.
Therefore, at any given time, there is a large amount of old curl versions that get security fixes and serious bugfixes bugreported by distros.
That is also a reason for why introducing some sort of long term branch support in the curl project itself might not help much. Since that branch/version might not actually suit very many distros and trying to get everyone to agree on a specific one would be challenging.
But still: a backported fix to curl version N might be easy enough to also make work for version N-1 rather than starting from the beginning with the patch that was done against the latest release. Coordination and awareness around what patches have been made could help everyone.
We discussed the possibility of hosting back-ported (security) patches in repositories managed by upstream to make it easier for distros to share such efforts. To be discussed further on the mailing list. Could be worth trying to see if we can make it work in productive way.
Learning about issues
We also identified that an area for improvements is cross-distro communication when it comes to learning about issues against various curl versions. When a user submits an issue against curl version Y on distro X, sometimes distro Z has already fixed it. Perhaps with backport.
Regressions on latest release
A special kind of issues are regressions on the latest curl version. Sometimes such fixes are done upstream but the distros don’t necessarily notice if they do not trigger a dot release. When the change is small enough to upstream to not be worthy of patch release, but the distro considers it patch worthy.
Communication
Several of the topics touched how things could be improved by better communications between curl and distros and cross-distros about their curl work and related issues.
We are setting up this new mailing list: curl-distros with the sole purpose of facilitating information exchange curl <=> distros and distro <=> distro in curl related questions. Patches, bugfixes, challenges, anything.
Subscribe to the list here:
https://lists.haxx.se/listinfo/curl-distros
Distro pointers
The curl project creates a DISTROS document in the curl git repository that contains pointers to the curl home, curl pataches and curl issues for all distros that we can find information about.
The PR for this: https://github.com/curl/curl/pull/13178
Doing it again
We have a mailing list created now for increased communication, but we discussed perhaps doing this kind of meeting again on an annual schedule.
Maybe do some kind of meetup in association with FOSDEM? We will sync that on the mailing list for sure.
Thanks!
Thanks a lot to everyone who participated! I felt that we got quite a lot of value out of this and I hope this was the beginning of more communication and improved collaboration going forward. For the benefit for curl users.