| 13 Oct 2025 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | that's better | 12:26:49 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | https://github.com/NixOS/nixpkgs/pull/451665 | 12:52:29 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | Next! | 13:15:36 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | https://cache.nixos.org/azkr6fkw861j987imi4k5y0abvqi1b7c.narinfo
https://cache.nixos.org/8ggn6daw4hjxdlbcna9q2535890ykjii.narinfo
https://cache.nixos.org/azkr6fkw861j987imi4k5y0abvqi1b7c.narinfo
https://cache.nixos.org/8ggn6daw4hjxdlbcna9q2535890ykjii.narinfo
Sourcing python-remove-tests-dir-hook
Sourcing python-catch-conflicts-hook.sh
Sourcing python-remove-bin-bytecode-hook.sh
Sourcing setuptools-build-hook
Using setuptoolsBuildPhase
Sourcing pypa-install-hook
Using pypaInstallPhase
Sourcing python-imports-check-hook.sh
Using pythonImportsCheckPhase
Sourcing python-namespaces-hook
Sourcing python-catch-conflicts-hook.sh
Running phase: unpackPhase
@nix {"action":"setPhase","phase":"unpackPhase"}
unpacking source archive /nix/store/1y46kvp3g2w9lvgjwm16anbgj1fbxhw6-fb-re2-1.0.7.tar.gz
source root is fb-re2-1.0.7
setting SOURCE_DATE_EPOCH to timestamp 1549563635 of file "fb-re2-1.0.7/setup.cfg"
Running phase: patchPhase
@nix {"action":"setPhase","phase":"patchPhase"}
applying patch /nix/store/2ynhdqagqhhgiwwp42vs2k1rbzg4hk16-08fb06ec3ccd412ca69483d27234684a04cb91a0.patch
patching file setup.py
Hunk #1 succeeded at 21 (offset -1 lines).
Running phase: updateAutotoolsGnuConfigScriptsPhase
@nix {"action":"setPhase","phase":"updateAutotoolsGnuConfigScriptsPhase"}
Running phase: configurePhase
@nix {"action":"setPhase","phase":"configurePhase"}
no configure script, doing nothing
Running phase: buildPhase
@nix {"action":"setPhase","phase":"buildPhase"}
Executing setuptoolsBuildPhase
setup.py build flags: ''
/nix/store/i8dj359n8kpcqnf8smx04i2w79pdswpd-python3.13-setuptools-80.9.0/lib/python3.13/site-packages/setuptools/_distutils/dist.py:289: UserWarning: Unknown distribution option: 'test_suite'
warnings.warn(msg)
/nix/store/i8dj359n8kpcqnf8smx04i2w79pdswpd-python3.13-setuptools-80.9.0/lib/python3.13/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!
********************************************************************************
Please consider removing the following classifiers in favor of a SPDX license expression:
License :: OSI Approved :: BSD License
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
!!
self._finalize_license_expression()
running bdist_wheel
running build
running build_py
creating build/lib.linux-aarch64-cpython-313
copying re2.py -> build/lib.linux-aarch64-cpython-313
running build_ext
building '_re2' extension
creating build/temp.linux-aarch64-cpython-313
g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/5grqzcflpanpjl31siiz168y8mwmv9jl-python3-3.13.8/include/python3.13 -c _re2.cc -o build/temp.linux-aarch64-cpython-313/_re2.o -std=c++17
_re2.cc:252:1: error: cannot convert ‘std::nullptr_t’ to ‘Py_ssize_t’ {aka ‘long int’} in initialization
252 | };
| ^
_re2.cc:296:1: error: cannot convert ‘std::nullptr_t’ to ‘Py_ssize_t’ {aka ‘long int’} in initialization
296 | };
| ^
_re2.cc:340:1: error: cannot convert ‘std::nullptr_t’ to ‘Py_ssize_t’ {aka ‘long int’} in initialization
340 | };
| ^
_re2.cc:870:1: warning: ‘PyObject* regexp_set_new(PyTypeObject*, PyObject*, PyObject*)’ defined but not used [-Wunused-function]
870 | regexp_set_new(PyTypeObject* type, PyObject* args, PyObject* kwds)
| ^~~~~~~~~~~~~~
_re2.cc:195:1: warning: ‘int _no_setattr(PyObject*, PyObject*, PyObject*)’ defined but not used [-Wunused-function]
195 | _no_setattr(PyObject* obj, PyObject* name, PyObject* v) {
| ^~~~~~~~~~~
error: command '/nix/store/hfiszd1qvqa0mbpj176s5ym4wpmk4nwx-gcc-wrapper-14.3.0/bin/g++' failed with exit code 1
| 13:15:38 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | Ihar Hrachyshka: Do you know why musl static might fail with llvm now? | 13:55:24 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | Like this https://hercules-ci.com/accounts/github/MatthewCroughan/derivations/%2Fnix%2Fstore%2Fqk942ikx3lr5wvkwycizc4xvhj8pykwf-musl-static-aarch64-unknown-linux-musl-1.2.5.drv/log?via-job=bfdba484-5299-4137-89f5-0a94331faf96 | 13:55:53 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | collect2: fatal error: cannot find 'ld' | 13:56:00 |
Ihar Hrachyshka | no idea. I'm not really a cross expert... :) | 13:56:35 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | this isn't cross | 13:56:41 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | this is native | 13:56:42 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | cross works fine | 13:56:56 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | I have a full pkgs.nixos {} building with cross, both llvm/musl, but now I'm tackling the native case | 13:57:18 |
Ihar Hrachyshka | I think musl is cross in a way - you cross build musl binaries with glibc build packages. It's just not arch cross.
(maybe I'm using terms incorrectly though)
| 13:57:30 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | Untrue in this case | 13:57:40 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | I've already done the cross case | 13:57:44 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | pkgsMusl is musl -> musl | 13:57:51 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | nixosConfigurations.gnu-musl = nixosConfigurations.base.extendModules {
modules = [
./musl.nix
{
nixpkgs.buildPlatform = (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-gnu");
nixpkgs.hostPlatform = inputs.nixpkgs.lib.recursiveUpdate (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl") {};
}
];
};
nixosConfigurations.gnu-musl-llvm = nixosConfigurations.base.extendModules {
modules = [
./musl-llvm.nix
{
nixpkgs.buildPlatform = (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-gnu");
nixpkgs.hostPlatform = inputs.nixpkgs.lib.recursiveUpdate (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl") {
useLLVM = true;
linker = "lld";
config = "aarch64-unknown-linux-musl";
};
}
];
};
nixosConfigurations.musl = nixosConfigurations.base.extendModules {
modules = [
./musl.nix
{
nixpkgs.buildPlatform = (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl");
nixpkgs.hostPlatform = inputs.nixpkgs.lib.recursiveUpdate (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl") {};
}
];
};
nixosConfigurations.musl-llvm = nixosConfigurations.base.extendModules {
modules = [
./musl-llvm.nix
{
nixpkgs.buildPlatform = (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl");
nixpkgs.hostPlatform = inputs.nixpkgs.lib.recursiveUpdate (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl") {
useLLVM = true;
linker = "lld";
config = "aarch64-unknown-linux-musl";
};
}
];
};
| 13:58:08 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | * nixosConfigurations.gnu-musl = nixosConfigurations.base.extendModules {
modules = [
./musl.nix
{
nixpkgs.buildPlatform = (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-gnu");
nixpkgs.hostPlatform = inputs.nixpkgs.lib.recursiveUpdate (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl") {};
}
];
};
nixosConfigurations.gnu-musl-llvm = nixosConfigurations.base.extendModules {
modules = [
./musl-llvm.nix
{
nixpkgs.buildPlatform = (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-gnu");
nixpkgs.hostPlatform = inputs.nixpkgs.lib.recursiveUpdate (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl") {
useLLVM = true;
linker = "lld";
config = "aarch64-unknown-linux-musl";
};
}
];
};
nixosConfigurations.musl = nixosConfigurations.base.extendModules {
modules = [
./musl.nix
{
nixpkgs.buildPlatform = (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl");
nixpkgs.hostPlatform = inputs.nixpkgs.lib.recursiveUpdate (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl") {};
}
];
};
nixosConfigurations.musl-llvm = nixosConfigurations.base.extendModules {
modules = [
./musl-llvm.nix
{
nixpkgs.buildPlatform = (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl");
nixpkgs.hostPlatform = inputs.nixpkgs.lib.recursiveUpdate (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl") {
useLLVM = true;
linker = "lld";
config = "aarch64-unknown-linux-musl";
};
}
];
};
| 13:58:14 |
Ihar Hrachyshka | ah I see. I haven't looked at non-static musl, only pkgsStatic (which I believe is glibc->musl cross). anyway, I'm not of help. | 13:58:34 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | well musl-static is the thing that's failing | 13:59:13 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | so is that not related to pkgsStatic? | 13:59:19 |
Ihar Hrachyshka | pkgsStatic is musl static. (I'm confused.) | 13:59:36 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | The name of the derivation that is failing is musl-static-aarch64-unknown-linux-musl | 14:00:01 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | musl-static | 14:00:05 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | pkgsMusl.pkgsStatic.musl is the reproducer | 14:00:54 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | IDK why this ends up in the dependency graph | 14:01:33 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) |  Download image.png | 14:02:48 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | looks like somehow the gcc-wrapper needs it | 14:03:02 |
matthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) | pkgsStatic.pkgsLLVM.musl builds just fine | 14:06:19 |
rosssmyth | While the APIs that are being used for ${program}.withPackages pattern is very nice and egronomic, it does have a downside of not using a spliced package. So for example recently I needed Python with a package in nativeBuildInputs, but then when cross-compiled it only has Python from pkgsHostTarget, leading to an invalid executable being used at build time and then either manually using pkgsBuildBuild.python or using the spliced Python and package separately.
I wonder if there is a good way to solve this? Meaning a way to use the spliced package, as for folks not in the know of splicing it is probably confusing to see a package operate differently based upon whether you use the helpers or not. But many of these helpers are implemented with finalAttrs.finalPackage, which isn't spliced.
| 18:00:49 |