this is just a hook so its safe
without this change:
we build a python3 for buildHost twice instead of only once while the result
of the build is the same
```
nix-repl> pkgsCross.aarch64-multiplatform.python3.pythonForBuild
«derivation /nix/store/5sx1ng86lxzggi33rchvq0z16ywkg11b-python3-3.10.7.drv»
nix-repl> pkgsCross.aarch64-multiplatform.buildPackages.python3
«derivation /nix/store/c5rlaqdfymd3j5v41rh98pjcv3dx3sh7-python3-3.10.7.drv»
```
```
$ nix-diff $(getOutForDrv "/nix/store/5sx1ng86lxzggi33rchvq0z16ywkg11b-python3-3.10.7.drv") $(getOutForDrv "/nix/store/c5rlaqdfymd3j5v41rh98pjcv3dx3sh7-python3-3.10.7.drv") --environment
- /nix/store/3fkwg2pypsxhydgwb9m7f1v5pcgfns6p-python3-3.10.7:{out}
+ /nix/store/wyhbl43ycqn43d08v5fqj1j6ynf7nz73-python3-3.10.7:{out}
• The input derivation named `python-setup-hook.sh` differs
- /nix/store/slvn39rh0l53c9czaf3g6a4awcj63j5r-python-setup-hook.sh.drv:{out}
+ /nix/store/bcjff6dn4gp7pf0knnja9ax4qrll78d5-python-setup-hook.sh.drv:{out}
• The set of input source names do not match:
- cross-file.conf
• The input derivation named `stdenv-linux` differs
- /nix/store/rsxsipgabvny0mc286j3vfpgaaaixdyz-stdenv-linux.drv:{out}
+ /nix/store/46ywpk0p6r22y502gi21xxghminy9lbj-stdenv-linux.drv:{out}
• The set of input derivation names do not match:
- hook
+ acl-2.3.1
+ attr-2.5.1
+ binutils-2.39
+ binutils-wrapper-2.39
+ ed-1.18
+ expand-response-params
+ gcc-11.3.0
+ gcc-wrapper-11.3.0
+ glibc-2.35-163
+ gmp-with-cxx-stage4-6.2.1
+ libidn2-2.3.2
+ libunistring-1.0
+ linux-headers-5.19
+ pcre-8.45
+ zlib-1.2.12
• The set of input derivations named `bzip2-1.0.8` do not match
• The set of input derivations named `xz-5.2.6` do not match
• The environments do not match:
+ allowedRequisites=...
defaultNativeBuildInputs=''
...
''
• The environments do not match:
cmakeFlags=''
-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_SYSTEM_PROCESSOR=aarch64 -DCMAKE_HOST_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_PROCESSOR=x86_64
''
configureFlags=''
--build=x86_64-unknown-linux-gnu --host=aarch64-unknown-linux-gnu
''
mesonFlags=''
--cross-file=/nix/store/0d6bflf42rgrrxhp10visp67scqncd4g-cross-file.conf
''
stdenv=''
/nix/store/6ji09gqw12pnp3ylw3rrsd65f9vhhx89-stdenv-linux/nix/store/ykjm8yzjcwg2xpf640zh6jql5s8yimkp-stdenv-linux
''
• The environments do not match:
setupHook=''
/nix/store/x6rrxsai11kl9gq29ipv0jn455admav3-python-setup-hook.sh/nix/store/h7z4wvlf7n23ir86nngjn9rpk1ygc7di-python-setup-hook.sh
''
```
Investigating the build failures of CBQN on i686 and aarch64, turns up
that CBQN is broken on these platforms only with gcc. In the case of
i686 due to a codegen bug, on aarch64 gcc doesn't like some CPP macros
CBQN uses.
The deeper reason for this is that CBQN primarily is developed for and
tested with clang, so it probably saves us trouble just using clang, as
it is no real problem for us to do so (clangStdenv is quite
unproblematic for pure C builds). This should also yield faster
binaries, since CBQN apparently uses some clang-specific tricks to get
quicker code generation.
The actual p4 command is open-source software released under the
2-clause BSD license, so we can build it here (for pretty much every
architecture we support!) and include it in the cache.
This change removes the server-side commands from this package, but they
are now available as part of a separate p4d package instead. (The server
package remains unfree.)
As an added bonus, we can also include the libraries and headers for the
C/C++ API, which will allow us to package any software that uses
Perforce as a library in the future.
The package fails t install as it requires x86_64-linux, but it's
dependency requires i686 linux:
$ nix build --no-link -f. timedoctor --show-trace
error: unsupported CPU i686
… while evaluating the attribute 'version'
at pkgs/development/compilers/adoptopenjdk-bin/jdk-linux-base.nix:40:3:
39|
40| version = sourcePerArch.${cpuName}.version or (throw "unsupported CPU ${cpuName}");
| ^
I only onticed it because it uses `xorg.libXaw3d` while nothing else does.
Let's remove it.