Skip to content

libxml2: 2.14.6 -> 2.15.0#444599

Merged
niklaskorz merged 5 commits intoNixOS:stagingfrom
LordGrimmauld:libxml_2_15
Oct 3, 2025
Merged

libxml2: 2.14.6 -> 2.15.0#444599
niklaskorz merged 5 commits intoNixOS:stagingfrom
LordGrimmauld:libxml_2_15

Conversation

@LordGrimmauld
Copy link
Contributor

@LordGrimmauld LordGrimmauld commented Sep 20, 2025

Rel notes: https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.15.0

closes #444172

Very much untested, here be dragons! These things build, but i expect there to be significant fallout and breakage. Testing done (see #444599 (comment)), but there is a potential security regression. DO NOT MERGE YET!

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.

Add a 👍 reaction to pull requests you find important.

@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin-stdenv This PR causes stdenv to rebuild on Darwin and must target a staging branch. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-linux: 5001+ This PR causes many rebuilds on Linux and must target the staging branches. 6.topic: python Python is a high-level, general-purpose programming language. labels Sep 20, 2025
@LordGrimmauld

This comment was marked as resolved.

@LordGrimmauld
Copy link
Contributor Author

So, to clarify my plans regarding libxml2:

  • libxml2 is seeing a lot of CVEs recently. It requires a lot of maintenance to stay secure.
  • As it stands, we do not have anyone particularly invested in libxml2, I am doing my best to pick up the slack.
  • The upstream maintainer announced they would stop maintaining libxml2 upstream by the end of 2025
  • The libxslt upstream maintainer offered to take over libxml2 maintenance
    • they might not backport security patches to all existing old versions (2.13 got an upstream backport just this week, but this seems not guaranteed)
    • we could piggy-back of gentoo and fetch their patches into our libxml2. I would reserve this as a backup plan, in case we have to back out of the 2.15 update. The other distros are all either on 2.15 already (arch), or on ancient versions they keep patching along.
    • i would personally prefer only supporting the latest (=2.15.x) version for 25.11, which makes this PR important to land before staging feature freeze (2025-10-04)
  • 2.15 API changes are there and do cause breakage, but might be easier to resolve than the 2.13 -> 2.14 bump.
  • If i can help it, i do not want to get stuck back-porting CVE fixes again (as @gepbird and I did for 25.05 to some degree)

cc @vcunat who chimed in about libxml2 things in the staging matrix chat
cc @jopejoe1 @leona-ya for release manager things - you want me to cross-post this in #444721 ?

@gepbird
Copy link
Contributor

gepbird commented Sep 22, 2025

Thanks for the reminder, I see there are 2 new CVEs that probably need backporting to libxml2_13, I'll check it out this week. I don't mind maintaining it during the upcoming 25.11 release, but I understand at most only tens of packages use it, and most of them (if not all) can use a vulnerable vedored libxml2 library.

I'll leave the libxml >=2.14 up to you, I don't have capacity to take new bigger responsibilities in the near future.

@LordGrimmauld
Copy link
Contributor Author

I see there are 2 new CVEs that probably need backporting to libxml2_13

There is a 2.13.9 release which fixes most (if not all) of the CVEs, maybe you don't need manual backports this time

@LordGrimmauld
Copy link
Contributor Author

Things tested:

  • libxml2
  • libxslt
  • python3Packages.lxml
  • xmlsec
  • librsvg
  • perlPackages.XMLLibXML (includes some other perl xml deps)
  • xmlstarlet
  • dvdauthor
  • python3Packages.beautifulsoup4
  • ldc

This is basically all of the things that complained in the libxml2 2.13 -> 2.14 transition. I am reasonably confident this is not going to explode completely, even if merged now.

However, librsvg having a failing test because of the maximum element count is still concerning. I'll need to verify this is not a security-critical regression in libxml2. After that, this should be fine to merge.

@LordGrimmauld
Copy link
Contributor Author

LordGrimmauld commented Oct 2, 2025

librsvg test fails reported upstream, time to wait for what they say.
https://gitlab.gnome.org/GNOME/librsvg/-/issues/1201

@LordGrimmauld LordGrimmauld marked this pull request as ready for review October 3, 2025 08:55
@LordGrimmauld
Copy link
Contributor Author

Okay, i have dug through libxml2 and librsvg, and conclude: the too_many_elements fail is just a case of a different error being thrown, this is not a security-critical regression.

@nixpkgs-ci nixpkgs-ci bot added the 12.approvals: 1 This PR was reviewed and approved by one person. label Oct 3, 2025
libxml 2.15 no longer updates the element count
before throwing an error in case of too many elements.
This makes librsvg unable to report `TooManyLoadedElements`,
instead failing with a generic error.
@niklaskorz niklaskorz merged commit a705c22 into NixOS:staging Oct 3, 2025
27 of 31 checks passed
@wolfgangwalther
Copy link
Contributor

affecting PostgreSQL

Their patch has already been applied for us in #448817

@vcunat
Copy link
Member

vcunat commented Oct 7, 2025

So the libxml2 patch isn't urgent anymore?

@LordGrimmauld
Copy link
Contributor Author

We should still do the patch - from experience, there is a LOT of things that will run into random build failures due to libxml2 changes, postgres isprobably not the only one

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

6.topic: python Python is a high-level, general-purpose programming language. 10.rebuild-darwin: 501+ This PR causes many rebuilds on Darwin and should normally target the staging branches. 10.rebuild-darwin: 5001+ This PR causes many rebuilds on Darwin and must target the staging branches. 10.rebuild-darwin-stdenv This PR causes stdenv to rebuild on Darwin and must target a staging branch. 10.rebuild-linux: 501+ This PR causes many rebuilds on Linux and should normally target the staging branches. 10.rebuild-linux: 5001+ This PR causes many rebuilds on Linux and must target the staging branches. 12.approvals: 1 This PR was reviewed and approved by one person.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants