!OqhvaDMJdKYUicLDiE:nixos.org

Nixpkgs Stdenv

221 Members
70 Servers

Load older messages


SenderMessageTime
26 Dec 2025
@zimward:zimward.moezimward changed their display name from zimward to zimward @ 39c3.15:49:28
@jappie:jappie.devjasper changed their display name from jappie to jappie @ 39c3.15:49:41
@mdaniels5757:matrix.orgmdaniels5757 joined the room.22:04:57
27 Dec 2025
@zimward:zimward.moezimward changed their display name from zimward @ 39c3 to zimward @ 39c3 ☎️ 75947.10:44:10
@jappie:jappie.devjasper changed their display name from jappie @ 39c3 to jasper @ 39c3 ☎️ 62749.13:30:50
29 Dec 2025
@grimmauld:m.grimmauld.deGrimmauld (any/all)

Okay. gnu gettext vendors libxml2. The following patch drops the dependency on gettext for libxml:

diff --git a/pkgs/development/libraries/libxml2/common.nix b/pkgs/development/libraries/libxml2/common.nix
index bc43cfd9d6e3..f16656b0798b 100644
--- a/pkgs/development/libraries/libxml2/common.nix
+++ b/pkgs/development/libraries/libxml2/common.nix
@@ -3,7 +3,9 @@
   darwin,
   lib,
   pkg-config,
-  autoreconfHook,
+  autoconf,
+  automake,
+  libtool,
   python3,
   doxygen,
   ncurses,
@@ -55,7 +57,9 @@ stdenv'.mkDerivation (finalAttrs: {
 
   nativeBuildInputs = [
     pkg-config
-    autoreconfHook
+    autoconf
+    automake
+    libtool
   ]
   ++ lib.optionals pythonSupport [
     doxygen
@@ -112,7 +116,11 @@ stdenv'.mkDerivation (finalAttrs: {
       ln -s cygxml2mod.dll python/.libs/libxml2mod.dll
     '';
 
-  preConfigure = lib.optionalString (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") ''
+  # Uses `autoreconf -i` instead of autoreconfHook to avoid gettext dependency
+  preConfigure = ''
+    autoreconf -i
+  ''
+  + lib.optionalString (lib.versionAtLeast stdenv.hostPlatform.darwinMinVersion "11") ''
     MACOSX_DEPLOYMENT_TARGET=10.16
   '';
 

However, adding libxml2 to gettext buildInputs (to make it use thedynamic lib) throws obscure splicing errors, and i am not sure where to even start fixing it. I can fix builds, but eval in splicing and stdenv bootstrap is painful. Ideas welcome.

12:07:41
@grimmauld:m.grimmauld.deGrimmauld (any/all)the libxml2 version it vendors is from 2019 and i rather wouldn't want that mess of CVEs12:10:47
@mdaniels5757:matrix.orgmdaniels5757Redacted or Malformed Event23:26:10
@mdaniels5757:matrix.orgmdaniels5757

Looks like you can't use fetchFromGitLab in the bootstrap process (like fetchpatch)? With this patch, it evals (I haven't built):

diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix
index 41d2b1f953f0..43df6360ade5 100644
--- a/pkgs/development/libraries/libxml2/default.nix
+++ b/pkgs/development/libraries/libxml2/default.nix
@@ -2,6 +2,7 @@
   lib,
   callPackage,
   fetchFromGitLab,
+  fetchurl,
   fetchpatch,
 }:

@@ -49,14 +50,12 @@ let
         ];
       };
     };
-    libxml2 = callPackage ./common.nix {
+    libxml2 = callPackage ./common.nix rec {
       version = "2.15.1";
-      src = fetchFromGitLab {
-        domain = "gitlab.gnome.org";
-        owner = "GNOME";
-        repo = "libxml2";
-        tag = "v${packages.libxml2.version}";
-        hash = "sha256-FUfYMq5xT2i88JdIw9OtSofraUL3yjsyOVund+mfJKQ=";
+      src = fetchurl {
+        name = "libxml2-${version}-source.tar.gz";
+        url = "https://gitlab.gnome.org/api/v4/projects/GNOME%2Flibxml2/repository/archive.tar.gz?sha=refs/tags/v${packages.libxml2.version}";
+        hash = "sha256-2py4DlRIlD4h1x8379d+whzsNbh8ofHpNAad/QFsTuw=";
       };
       extraMeta = {
         maintainers = with lib.maintainers; [
23:26:28
@grimmauld:m.grimmauld.deGrimmauld (any/all)Ah, nice! I'll give that another shot tomorrow then!23:28:08
30 Dec 2025
@grimmauld:m.grimmauld.deGrimmauld (any/all)okay, i give up. I got gettext to build with devendored libxml2, bu doesn't seem to work. The check for working c compiler in binutils fails, and didn't before10:34:17
@grimmauld:m.grimmauld.deGrimmauld (any/all)oh wait hold on, now it is going? One more attempt, i just meant to clean up the patches before dumping my progress here, but 🤷10:42:02
@grimmauld:m.grimmauld.deGrimmauld (any/all)https://github.com/NixOS/nixpkgs/pull/475301 there, have fun. After seeing how much pain his was, i am no longer completely convinced this is a good idea, but have a PR anyways12:43:09
@grimmauld:m.grimmauld.deGrimmauld (any/all)oh crap, darwin12:43:41
@grimmauld:m.grimmauld.deGrimmauld (any/all)AAA12:43:42
@grimmauld:m.grimmauld.deGrimmauld (any/all)painful12:43:51
@grimmauld:m.grimmauld.deGrimmauld (any/all)and musl too... UGH12:49:02
@grimmauld:m.grimmauld.deGrimmauld (any/all)yeah...12:49:06
@zimward:zimward.moezimward changed their display name from zimward @ 39c3 ☎️ 75947 to zimward.23:39:05
@jappie:jappie.devjasper changed their display name from jasper @ 39c3 ☎️ 62749 to jasper.23:38:40
@jappie:jappie.devjasper 23:40:10
1 Jan 2026
@amadaluzia:unredacted.orgamadaluzia changed their display name from amadaluzia to amadaluzia (happy new year!).00:15:47
@reckenrode:matrix.orgRandy EckenrodeWhat’s painful about Darwin?11:38:02
@reckenrode:matrix.orgRandy EckenrodeDarwin already has to deal with libxml2 in the bootstrap.11:38:33
2 Jan 2026
@amadaluzia:unredacted.orgamadaluzia changed their display name from amadaluzia (happy new year!) to amadaluzia.04:46:56
4 Aug 2022
@winterqt:nixos.devWinter (she/her) joined the room.03:27:09
@0x4a6f:matrix.org[0x4A6F] joined the room.22:08:01
6 Aug 2022
@winterqt:nixos.devWinter (she/her)

Does anyone know where the fact that the Darwin stdenv builds CMake twice comes from? As far as I can tell, it's from stage 0, and then just gets used in the other stages from there. Am I missing something here, is it something with the overrides? It looks like it might be, but then the fact that those are only allowed in the final stage (per booter.nix) (when that doesn't seem true, since then they wouldn't be defined...?) comes up.

(Isn't this the same pattern (defining in one stage and referencing in the others) that makes Glibc only build a limited number of times in the Linux stdenv?)

08:00:17
@trofi:matrix.org@trofi:matrix.org

You think cmake should be rebuild less? Or more?

glibc's is probably a bit different as it's a part of stdenv.cc.libc and mainly used by that I would guess. Also, if depends if the package is used or not by other packages in the derivation would affect rebuild count as well.

14:59:09
@trofi:matrix.org@trofi:matrix.org Looking at stdenv's dep tree I see 2 cmake-boot hashes and one cmake hash: https://dpaste.com/8GGM6P9BF.txt 15:03:11

Show newer messages


Back to Room ListRoom Version: 9