| 16 Dec 2025 |
dish [Fox/It/She] | thats what I was thinking of doing, that way we don't have to rebuild yet another GCC, and instead can just make a wrapper that passes the appropriate gcc flags to link to glibc instead. Plus, this gcc wouldn't be used in actual stdenv, its just used to build the stdenv tools, so using musl or gcc in bootstrap shouldn't matter, since the whole point of the early stdenv stages is to not have any bootstrap tools leaking into stdenv proper | 17:51:38 |
| 17 Dec 2025 |
aleksi | Ok, I think here's a gcc that targets glibc: https://github.com/NixOS/nixpkgs/pull/471642/changes/1f77d59c3450ac97333d9048dc13185ede164788 | 12:02:55 |
aleksi | It's not very thoroughly tested, but gcc and g++ both seemed to work with simple programs | 12:03:19 |
dish [Fox/It/She] | as much as I don't like doing this, we probably want to build all the bootstrap tools into a tarball at the end of it, that way we have a single blessed bootstrap path where all platforms get a tarball and busybox and go from there, and we're not special-casing platforms that use minimal-bootstrap into a different code path. | 17:45:32 |
dish [Fox/It/She] | Simplicity is the way to go here, after all | 17:45:38 |
K900 | Actually kinda disagree, I think it makes sense to cross-bootstrap the other platforms | 17:46:19 |
K900 | And then we can just have Nix handle caching | 17:46:27 |
dish [Fox/It/She] | sounds good to me | 17:46:40 |
dish [Fox/It/She] | as long as we have a single code path then that makes everyone's life better(even if that involves cross-building on non-minimal platforms) | 17:47:02 |
dish [Fox/It/She] | since stdenv doesn't need more complexity | 17:47:17 |
dish [Fox/It/She] | frankly it hurts my head sometimes lol | 17:47:22 |
| 18 Dec 2025 |
aleksi | Can we cross-bootstrap even the darwin platforms from Linux? | 08:58:00 |
K900 | No, Darwin needs its own bootstrap chain I think | 09:10:11 |
emily | that would also make Darwin development a pain | 11:37:05 |
Alex | Is it not already? | 12:05:38 |
Randy Eckenrode | Maybe once Darwin is switched to LLVM/LLD bintools. | 12:37:14 |
Randy Eckenrode | But it would still be painful without some way to emulate the Linux part. | 12:37:36 |
| 20 Dec 2025 |
陈浩南 | I fixed a bug in binutils wrapper and bootstraping https://github.com/NixOS/nixpkgs/pull/472652
But I am not confident with complex bash scripts. Could anyone check the pr if I miss any edge cases? | 10:12:25 |
| 23 Dec 2025 |
ris_ | https://github.com/NixOS/nixpkgs/pull/473648 | 19:15:01 |
| 24 Dec 2025 |
| amadaluzia changed their profile picture. | 16:53:37 |
| 26 Dec 2025 |
| zimward changed their display name from zimward to zimward @ 39c3. | 15:49:28 |
| jappie changed their display name from jappie to jappie @ 39c3. | 15:49:41 |
| mdaniels5757 joined the room. | 22:04:57 |
| 27 Dec 2025 |
| zimward changed their display name from zimward @ 39c3 to zimward @ 39c3 ☎️ 75947. | 10:44:10 |
| jappie changed their display name from jappie @ 39c3 to jasper @ 39c3 ☎️ 62749. | 13:30:50 |
| 29 Dec 2025 |
Grimmauld (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 (any/all) | the libxml2 version it vendors is from 2019 and i rather wouldn't want that mess of CVEs | 12:10:47 |
mdaniels5757 | Redacted or Malformed Event | 23:26:10 |
mdaniels5757 | 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 (any/all) | Ah, nice! I'll give that another shot tomorrow then! | 23:28:08 |