| 20 Sep 2025 |
K900 | All I've been merging is patch level bumps | 09:47:06 |
Grimmauld (any/all) | but i'll try to do a PR and do some preliminary testing for libxml 2.15, i'd appreciate if you could throw big computer at it and build up to libreoffice once i do open that PR | 09:47:40 |
Grimmauld (any/all) | (LO has tests that cover most of libxml) | 09:48:01 |
Wolfgang Walther | We'd like to merge haskell-updates for this cycle. We just need to double check & merge the list of newly broken packages in https://github.com/NixOS/nixpkgs/pull/444422. When will staging-next be created? | 09:55:10 |
K900 | Probably tonight or tomorrow | 09:55:57 |
K900 | Depending on how the queue runner decides to behave | 09:56:09 |
Wolfgang Walther | ok, cool. | 09:57:06 |
Grimmauld (any/all) | fuck, libxml2 is now documented via xslt/doxygen | 10:03:11 |
Grimmauld (any/all) | thats a fun cyclic dep... | 10:03:16 |
Grimmauld (any/all) | what the hell man... | 10:03:21 |
Vladimír Čunát | libxml2 doesn't need docs in the main derivation. | 10:03:42 |
Grimmauld (any/all) | --without-doc i guess... | 10:03:40 |
Grimmauld (any/all) | sure, but it'd still be cyclic even if split into its own output | 10:04:26 |
Grimmauld (any/all) | i mean i guess i could do passthru.doc = stdenvNoCC.mkDerivation { ... }; | 10:05:04 |
Grimmauld (any/all) | and "fake" the output | 10:05:12 |
Grimmauld (any/all) | but tbh i'll just disable it for now | 10:05:26 |
Grimmauld (any/all) | worse is the fact it wants doxygen even to just enable --with-python | 10:08:40 |
Grimmauld (any/all) | so thats "fun" | 10:08:45 |
Grimmauld (any/all) | i guess i'll have to add a libxml2Minimal or something | 10:14:05 |
K900 | Yay more bootstrap fun | 10:14:44 |
Alyssa Ross | In reply to @grimmauld:grapevine.grimmauld.de worse is the fact it wants doxygen even to just enable --with-python sounds fixable? | 10:16:51 |
Grimmauld (any/all) | i'd have to disable the python module build by default, and force it enabled in python-packages.nix | 10:17:29 |
Grimmauld (any/all) | which is doable, but ugh | 10:17:37 |
Vladimír Čunát | Main derivation. I'm not talking about outputs. | 10:17:42 |
Grimmauld (any/all) | and we'll be losing devdoc too | 10:17:54 |
Alyssa Ross | I mean it sounded like it didn't need to require doxygen in that case | 10:17:55 |
Alyssa Ross | So make it not require doxygen in that case | 10:18:05 |
Grimmauld (any/all) | diff --git a/pkgs/development/libraries/libxml2/common.nix b/pkgs/development/libraries/libxml2/common.nix
index eb16734eede4..b9ba6c1937cf 100644
--- a/pkgs/development/libraries/libxml2/common.nix
+++ b/pkgs/development/libraries/libxml2/common.nix
@@ -4,20 +4,12 @@
lib,
pkg-config,
autoreconfHook,
- python3,
+ python3Packages,
+ doxygen,
ncurses,
findXMLCatalogs,
libiconv,
- # Python limits cross-compilation to an allowlist of host OSes.
- # https://github.com/python/cpython/blob/dfad678d7024ab86d265d84ed45999e031a03691/configure.ac#L534-L562
- pythonSupport ?
- enableShared
- && (
- stdenv.hostPlatform == stdenv.buildPlatform
- || stdenv.hostPlatform.isCygwin
- || stdenv.hostPlatform.isLinux
- || stdenv.hostPlatform.isWasi
- ),
+ pythonSupport ? false,
icuSupport ? false,
icu,
zlibSupport ? false,
@@ -52,33 +44,28 @@ stdenv'.mkDerivation (finalAttrs: {
"bin"
"dev"
"out"
- "devdoc"
+ # "devdoc"
]
++ lib.optional pythonSupport "py"
++ lib.optional (enableStatic && enableShared) "static";
outputMan = "bin";
- patches = [
- # Unmerged ABI-breaking patch required to fix the following security issues:
- # - https://gitlab.gnome.org/GNOME/libxslt/-/issues/139
- # - https://gitlab.gnome.org/GNOME/libxslt/-/issues/140
- # See also https://gitlab.gnome.org/GNOME/libxml2/-/issues/906
- # Source: https://github.com/chromium/chromium/blob/4fb4ae8ce3daa399c3d8ca67f2dfb9deffcc7007/third_party/libxml/chromium/xml-attr-extra.patch
- ./xml-attr-extra.patch
- ]
- ++ extraPatches;
+ patches = [ ] ++ extraPatches;
strictDeps = true;
nativeBuildInputs = [
pkg-config
autoreconfHook
+ ]
+ ++ lib.optionals pythonSupport [
+ doxygen
];
buildInputs =
lib.optionals pythonSupport [
ncurses
- python3
+ python3Packages.python
]
++ lib.optionals zlibSupport [
zlib
@@ -100,15 +87,15 @@ stdenv'.mkDerivation (finalAttrs: {
(lib.enableFeature enableShared "shared")
(lib.withFeature icuSupport "icu")
(lib.withFeature pythonSupport "python")
- (lib.optionalString pythonSupport "PYTHON=${python3.pythonOnBuildForHost.interpreter}")
- ]
- # avoid rebuilds, can be merged into list in version bumps
- ++ lib.optional enableHttp "--with-http"
- ++ lib.optional zlibSupport "--with-zlib";
+ (lib.optionalString pythonSupport "PYTHON=${python3Packages.python.pythonOnBuildForHost.interpreter}")
+ (lib.withFeature enableHttp "http")
+ (lib.withFeature zlibSupport "zlib")
+ (lib.withFeature false "docs") # docs are built with xsltproc, which would be a cyclic dependency
+ ];
installFlags = lib.optionals pythonSupport [
- "pythondir=\"${placeholder "py"}/${python3.sitePackages}\""
- "pyexecdir=\"${placeholder "py"}/${python3.sitePackages}\""
+ "pythondir=\"${placeholder "py"}/${python3Packages.python.sitePackages}\""
+ "pyexecdir=\"${placeholder "py"}/${python3Packages.python.sitePackages}\""
];
enableParallelBuilding = true;
@@ -123,7 +110,7 @@ stdenv'.mkDerivation (finalAttrs: {
'';
preInstall = lib.optionalString pythonSupport ''
- substituteInPlace python/libxml2mod.la --replace-fail "$dev/${python3.sitePackages}" "$py/${python3.sitePackages}"
+ substituteInPlace python/libxml2mod.la --replace-fail "$dev/${python3Packages.python.sitePackages}" "$py/${python3Packages.sitePackages}"
'';
postFixup = ''
@@ -159,6 +146,19 @@ stdenv'.mkDerivation (finalAttrs: {
license = lib.licenses.mit;
platforms = lib.platforms.all;
pkgConfigModules = [ "libxml-2.0" ];
+ # Python limits cross-compilation to an allowlist of host OSes.
+ # https://github.com/python/cpython/blob/dfad678d7024ab86d265d84ed45999e031a03691/configure.ac#L534-L562
+ broken =
+ pythonSupport
+ && !(
+ enableShared
+ && (
+ stdenv.hostPlatform == stdenv.buildPlatform
+ || stdenv.hostPlatform.isCygwin
+ || stdenv.hostPlatform.isLinux
+ || stdenv.hostPlatform.isWasi
+ )
+ );
}
// extraMeta;
})
diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix
index 08c1cbe5fd03..bcd56ff6e54d 100644
--- a/pkgs/development/libraries/libxml2/default.nix
+++ b/pkgs/development/libraries/libxml2/default.nix
@@ -34,6 +34,13 @@ let
# same as upstream, fixed conflicts
# https://gitlab.gnome.org/GNOME/libxml2/-/commit/c340e419505cf4bf1d9ed7019a87cc00ec200434
./CVE-2025-6170.patch
+
+ # Unmerged ABI-breaking patch required to fix the following security issues:
+ # - https://gitlab.gnome.org/GNOME/libxslt/-/issues/139
+ # - https://gitlab.gnome.org/GNOME/libxslt/-/issues/140
+ # See also https://gitlab.gnome.org/GNOME/libxml2/-/issues/906
+ # Source: https://github.com/chromium/chromium/blob/4fb4ae8ce3daa399c3d8ca67f2dfb9deffcc7007/third_party/libxml/chromium/xml-attr-extra.patch
+ ./xml-attr-extra.patch
];
freezeUpdateScript = true;
extraMeta = {
@@ -43,13 +50,13 @@ let
};
};
libxml2 = callPackage ./common.nix {
- version = "2.14.6";
+ version = "2.15.0";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "GNOME";
repo = "libxml2";
tag = "v${packages.libxml2.version}";
- hash = "sha256-EIcNL5B/o74hyc1N+ShrlKsPL5tHhiGgkCR1D7FcDjw=";
+ hash = "sha256-jumHSiIMDzqG2hvPUdcBP8LsszcU+loOY+vqEh/0Yqo=";
};
extraMeta = {
maintainers = with lib.maintainers; [
this builds, but i am worried...
| 10:20:25 |
Grimmauld (any/all) | * diff --git a/pkgs/development/libraries/libxml2/common.nix b/pkgs/development/libraries/libxml2/common.nix
index eb16734eede4..4b2f04bbc8f0 100644
--- a/pkgs/development/libraries/libxml2/common.nix
+++ b/pkgs/development/libraries/libxml2/common.nix
@@ -5,19 +5,11 @@
pkg-config,
autoreconfHook,
python3,
+ doxygen,
ncurses,
findXMLCatalogs,
libiconv,
- # Python limits cross-compilation to an allowlist of host OSes.
- # https://github.com/python/cpython/blob/dfad678d7024ab86d265d84ed45999e031a03691/configure.ac#L534-L562
- pythonSupport ?
- enableShared
- && (
- stdenv.hostPlatform == stdenv.buildPlatform
- || stdenv.hostPlatform.isCygwin
- || stdenv.hostPlatform.isLinux
- || stdenv.hostPlatform.isWasi
- ),
+ pythonSupport ? false,
icuSupport ? false,
icu,
zlibSupport ? false,
@@ -52,27 +44,21 @@ stdenv'.mkDerivation (finalAttrs: {
"bin"
"dev"
"out"
- "devdoc"
]
++ lib.optional pythonSupport "py"
++ lib.optional (enableStatic && enableShared) "static";
outputMan = "bin";
- patches = [
- # Unmerged ABI-breaking patch required to fix the following security issues:
- # - https://gitlab.gnome.org/GNOME/libxslt/-/issues/139
- # - https://gitlab.gnome.org/GNOME/libxslt/-/issues/140
- # See also https://gitlab.gnome.org/GNOME/libxml2/-/issues/906
- # Source: https://github.com/chromium/chromium/blob/4fb4ae8ce3daa399c3d8ca67f2dfb9deffcc7007/third_party/libxml/chromium/xml-attr-extra.patch
- ./xml-attr-extra.patch
- ]
- ++ extraPatches;
+ patches = [ ] ++ extraPatches;
strictDeps = true;
nativeBuildInputs = [
pkg-config
autoreconfHook
+ ]
+ ++ lib.optionals pythonSupport [
+ doxygen
];
buildInputs =
@@ -101,10 +87,10 @@ stdenv'.mkDerivation (finalAttrs: {
(lib.withFeature icuSupport "icu")
(lib.withFeature pythonSupport "python")
(lib.optionalString pythonSupport "PYTHON=${python3.pythonOnBuildForHost.interpreter}")
- ]
- # avoid rebuilds, can be merged into list in version bumps
- ++ lib.optional enableHttp "--with-http"
- ++ lib.optional zlibSupport "--with-zlib";
+ (lib.withFeature enableHttp "http")
+ (lib.withFeature zlibSupport "zlib")
+ (lib.withFeature false "docs") # docs are built with xsltproc, which would be a cyclic dependency
+ ];
installFlags = lib.optionals pythonSupport [
"pythondir=\"${placeholder "py"}/${python3.sitePackages}\""
@@ -159,6 +145,19 @@ stdenv'.mkDerivation (finalAttrs: {
license = lib.licenses.mit;
platforms = lib.platforms.all;
pkgConfigModules = [ "libxml-2.0" ];
+ # Python limits cross-compilation to an allowlist of host OSes.
+ # https://github.com/python/cpython/blob/dfad678d7024ab86d265d84ed45999e031a03691/configure.ac#L534-L562
+ broken =
+ pythonSupport
+ && !(
+ enableShared
+ && (
+ stdenv.hostPlatform == stdenv.buildPlatform
+ || stdenv.hostPlatform.isCygwin
+ || stdenv.hostPlatform.isLinux
+ || stdenv.hostPlatform.isWasi
+ )
+ );
}
// extraMeta;
})
diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix
index 08c1cbe5fd03..bcd56ff6e54d 100644
--- a/pkgs/development/libraries/libxml2/default.nix
+++ b/pkgs/development/libraries/libxml2/default.nix
@@ -34,6 +34,13 @@ let
# same as upstream, fixed conflicts
# https://gitlab.gnome.org/GNOME/libxml2/-/commit/c340e419505cf4bf1d9ed7019a87cc00ec200434
./CVE-2025-6170.patch
+
+ # Unmerged ABI-breaking patch required to fix the following security issues:
+ # - https://gitlab.gnome.org/GNOME/libxslt/-/issues/139
+ # - https://gitlab.gnome.org/GNOME/libxslt/-/issues/140
+ # See also https://gitlab.gnome.org/GNOME/libxml2/-/issues/906
+ # Source: https://github.com/chromium/chromium/blob/4fb4ae8ce3daa399c3d8ca67f2dfb9deffcc7007/third_party/libxml/chromium/xml-attr-extra.patch
+ ./xml-attr-extra.patch
];
freezeUpdateScript = true;
extraMeta = {
@@ -43,13 +50,13 @@ let
};
};
libxml2 = callPackage ./common.nix {
- version = "2.14.6";
+ version = "2.15.0";
src = fetchFromGitLab {
domain = "gitlab.gnome.org";
owner = "GNOME";
repo = "libxml2";
tag = "v${packages.libxml2.version}";
- hash = "sha256-EIcNL5B/o74hyc1N+ShrlKsPL5tHhiGgkCR1D7FcDjw=";
+ hash = "sha256-jumHSiIMDzqG2hvPUdcBP8LsszcU+loOY+vqEh/0Yqo=";
};
extraMeta = {
maintainers = with lib.maintainers; [
this builds, but i am worried...
| 10:21:54 |
Grimmauld (any/all) | but i mean if i am the only person carrying along i can probably do whatever and anyone that complains has to do it better... | 10:23:06 |