This commit is contained in:
Spectre 2024-12-02 23:24:40 +01:00
parent e1ca0d5f61
commit 73e90776ed
9 changed files with 455 additions and 241 deletions

View file

@ -1 +0,0 @@
/nix/store/1xqxr1v6zrnvh22084127343pykvrjbi-source

View file

@ -1 +0,0 @@
/nix/store/4w4b4mxfhdc9lf3rsf4qqa9z8xnijbxl-source

View file

@ -1 +0,0 @@
/nix/store/61gw1axgxrvx0bnxv2dla6zhkgwv45zr-source

View file

@ -1 +0,0 @@
/nix/store/z394vfm4xw2sd40c4qm428qhi4rmpn1s-source

View file

@ -1 +1 @@
/nix/store/9h3sip52v44rmqykfjyirn4ih3sislxw-nix-shell-env /nix/store/3zv4qkyn3yqzksv0kbrbqy73yfpqi152-nix-shell-env

View file

@ -5,25 +5,25 @@ XDG_DATA_DIRS=${XDG_DATA_DIRS:-}
nix_saved_XDG_DATA_DIRS="$XDG_DATA_DIRS" nix_saved_XDG_DATA_DIRS="$XDG_DATA_DIRS"
AR='ar' AR='ar'
export AR export AR
AR_FOR_BUILD='ar' AR_FOR_TARGET='ar'
export AR_FOR_BUILD export AR_FOR_TARGET
AS='as' AS='as'
export AS export AS
AS_FOR_BUILD='as' AS_FOR_TARGET='as'
export AS_FOR_BUILD export AS_FOR_TARGET
BASH='/nix/store/q8qq40xg2grfh9ry1d9x4g7lq4ra7n81-bash-5.2-p21/bin/bash' BASH='/nix/store/0irlcqx2n3qm6b1pc9rsd2i8qpvcccaj-bash-5.2p37/bin/bash'
CC='gcc' CC='gcc'
export CC export CC
CC_FOR_BUILD='gcc' CC_FOR_TARGET='gcc'
export CC_FOR_BUILD export CC_FOR_TARGET
CONFIG_SHELL='/nix/store/q8qq40xg2grfh9ry1d9x4g7lq4ra7n81-bash-5.2-p21/bin/bash' CONFIG_SHELL='/nix/store/0irlcqx2n3qm6b1pc9rsd2i8qpvcccaj-bash-5.2p37/bin/bash'
export CONFIG_SHELL export CONFIG_SHELL
CXX='g++' CXX='g++'
export CXX export CXX
CXX_FOR_BUILD='g++' CXX_FOR_TARGET='g++'
export CXX_FOR_BUILD export CXX_FOR_TARGET
HOSTTYPE='x86_64' HOSTTYPE='x86_64'
HOST_PATH='/nix/store/zx8aqgdy735qzk81glfwil6mbi6ddqb1-coreutils-9.4/bin:/nix/store/sq0w0jchkjqbxl47h52kfwa33qp1adfh-findutils-4.9.0/bin:/nix/store/f3g84l92p0njh0gyk1z7cp2k4qnh91ha-diffutils-3.10/bin:/nix/store/7fqp73ncnbwr5bxxszqicf6r33d9yhkw-gnused-4.9/bin:/nix/store/by6918gg7srjyixqk8kbcdlz82d5pcwx-gnugrep-3.11/bin:/nix/store/1713hchhyzawkxfhk9srxklv03bqj55y-gawk-5.2.2/bin:/nix/store/1y7cqy8y76gsx037mhs3cvb33srj4c7g-gnutar-1.35/bin:/nix/store/21drzcpzpi485f9m6ihspg4kayly5425-gzip-1.13/bin:/nix/store/9gdg43h7zrn651lb1ihv2b2qf59im94b-bzip2-1.0.8-bin/bin:/nix/store/452v8bl3sjaq4kil1d9vqxc5vns4cvpp-gnumake-4.4.1/bin:/nix/store/q8qq40xg2grfh9ry1d9x4g7lq4ra7n81-bash-5.2-p21/bin:/nix/store/l6s9gwsallxxgz3qy7xk6410y842m6dn-patch-2.7.6/bin:/nix/store/pp7yamsghaprdxq94vr2iqx1hd5xn2qf-xz-5.4.5-bin/bin:/nix/store/hnz8p5w9xc0ivsiyrgky6f6h7sjb28a5-file-5.45/bin' HOST_PATH='/nix/store/3ix5h74n7ar9950vwzp4dxmil70pmx0k-gcc-wrapper-13.3.0/bin:/nix/store/9bacph866qhmr2zfib1h49jixq5hhd01-binutils-wrapper-2.43.1/bin:/nix/store/40yym8srkji787nrml52v4v160z41v65-openssl-3.3.2-bin/bin:/nix/store/f1gamyykr0f8n4afy910ass2jx2g9zkv-pkg-config-wrapper-0.29.2/bin:/nix/store/y3swnj6xfbbmjawi524v12j69k9g35ds-cargo-deny-0.16.2/bin:/nix/store/9kw90wqbaj0nz618yy6dar012mpz8ik1-cargo-edit-0.13.0/bin:/nix/store/66kz62g4cd72b44crkqlhsy1p60w9hga-cargo-watch-8.5.3/bin:/nix/store/8ky932dblp2vb2khjyhb92xwsy4ah859-rust-analyzer-2024-11-11/bin:/nix/store/nlrv3m4vd69lw8z6xbwi4yg7z7fqpcka-rust-default-1.85.0-nightly-2024-12-02/bin:/nix/store/k48bha2fjqzarg52picsdfwlqx75aqbb-coreutils-9.5/bin:/nix/store/lfhmpajzgfmgl8xrdvp2r9hdi2rf17wy-findutils-4.10.0/bin:/nix/store/xrpvl6c1pyq7zazqnb41kgshmkr85da1-diffutils-3.10/bin:/nix/store/gvivnz7rb2gz1vy7d9mdxgzj9didz7w2-gnused-4.9/bin:/nix/store/14aswfz6pm8zvyyy927xzmi8x4rnvlc8-gnugrep-3.11/bin:/nix/store/45jb5s18799g8day8zjixrvknj4chp6r-gawk-5.3.1/bin:/nix/store/sdljgkhcmlflr785i4jffg1rvm294i1k-gnutar-1.35/bin:/nix/store/pg1n8f8zlwh4q4bsbnm9gwhx7cbix1m6-gzip-1.13/bin:/nix/store/y59bxw99pbld247dznzv352cqdhlybqi-bzip2-1.0.8-bin/bin:/nix/store/a08385589ajv3ahmp81nml9bh5dsi55n-gnumake-4.4.1/bin:/nix/store/0irlcqx2n3qm6b1pc9rsd2i8qpvcccaj-bash-5.2p37/bin:/nix/store/0knrdpnzi5s4igcvzw8yhkj8daq84a2v-patch-2.7.6/bin:/nix/store/g6rf9zyrz8hrgz4r7sd2hab3j1afxdkr-xz-5.6.3-bin/bin:/nix/store/83jpg0nha0gp1pggdvsk7zh6wn5lgm00-file-5.45/bin'
export HOST_PATH export HOST_PATH
IFS=' IFS='
' '
@ -31,95 +31,96 @@ IN_NIX_SHELL='impure'
export IN_NIX_SHELL export IN_NIX_SHELL
LD='ld' LD='ld'
export LD export LD
LD_FOR_BUILD='ld' LD_FOR_TARGET='ld'
export LD_FOR_BUILD export LD_FOR_TARGET
LINENO='76' LINENO='76'
MACHTYPE='x86_64-pc-linux-gnu' MACHTYPE='x86_64-pc-linux-gnu'
NIX_BINTOOLS='/nix/store/lwqnazddv8037sin49482dnzc9iwgg8l-binutils-wrapper-2.40' NIX_BINTOOLS='/nix/store/9bacph866qhmr2zfib1h49jixq5hhd01-binutils-wrapper-2.43.1'
export NIX_BINTOOLS export NIX_BINTOOLS
NIX_BINTOOLS_FOR_BUILD='/nix/store/lwqnazddv8037sin49482dnzc9iwgg8l-binutils-wrapper-2.40' NIX_BINTOOLS_FOR_TARGET='/nix/store/9bacph866qhmr2zfib1h49jixq5hhd01-binutils-wrapper-2.43.1'
export NIX_BINTOOLS_FOR_BUILD export NIX_BINTOOLS_FOR_TARGET
NIX_BINTOOLS_WRAPPER_TARGET_BUILD_x86_64_unknown_linux_gnu='1'
export NIX_BINTOOLS_WRAPPER_TARGET_BUILD_x86_64_unknown_linux_gnu
NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1' NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1'
export NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu export NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu
NIX_BINTOOLS_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu='1'
export NIX_BINTOOLS_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu
NIX_BUILD_CORES='8' NIX_BUILD_CORES='8'
export NIX_BUILD_CORES export NIX_BUILD_CORES
NIX_CC='/nix/store/sfgnb6rr428bssyrs54d6d0vv2avi95c-gcc-wrapper-12.3.0' NIX_CC='/nix/store/3ix5h74n7ar9950vwzp4dxmil70pmx0k-gcc-wrapper-13.3.0'
export NIX_CC export NIX_CC
NIX_CC_FOR_BUILD='/nix/store/sfgnb6rr428bssyrs54d6d0vv2avi95c-gcc-wrapper-12.3.0' NIX_CC_FOR_TARGET='/nix/store/3ix5h74n7ar9950vwzp4dxmil70pmx0k-gcc-wrapper-13.3.0'
export NIX_CC_FOR_BUILD export NIX_CC_FOR_TARGET
NIX_CC_WRAPPER_TARGET_BUILD_x86_64_unknown_linux_gnu='1'
export NIX_CC_WRAPPER_TARGET_BUILD_x86_64_unknown_linux_gnu
NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1' NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1'
export NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu export NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu
NIX_CFLAGS_COMPILE=' -frandom-seed=9h3sip52v4 -isystem /nix/store/7yx2i1wm89zhypky0l0lmmpl10yf0bh7-openssl-3.0.12-dev/include -isystem /nix/store/7yx2i1wm89zhypky0l0lmmpl10yf0bh7-openssl-3.0.12-dev/include' NIX_CC_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu='1'
export NIX_CC_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu
NIX_CFLAGS_COMPILE=' -frandom-seed=3zv4qkyn3y -isystem /nix/store/4r4ig3y8xm9zwvra4m3kimn133m24dnv-openssl-3.3.2-dev/include -isystem /nix/store/4r4ig3y8xm9zwvra4m3kimn133m24dnv-openssl-3.3.2-dev/include -isystem /nix/store/4r4ig3y8xm9zwvra4m3kimn133m24dnv-openssl-3.3.2-dev/include -isystem /nix/store/4r4ig3y8xm9zwvra4m3kimn133m24dnv-openssl-3.3.2-dev/include'
export NIX_CFLAGS_COMPILE export NIX_CFLAGS_COMPILE
NIX_CFLAGS_COMPILE_FOR_BUILD=' -isystem /nix/store/7yx2i1wm89zhypky0l0lmmpl10yf0bh7-openssl-3.0.12-dev/include -isystem /nix/store/7yx2i1wm89zhypky0l0lmmpl10yf0bh7-openssl-3.0.12-dev/include -isystem /nix/store/7yx2i1wm89zhypky0l0lmmpl10yf0bh7-openssl-3.0.12-dev/include' NIX_CFLAGS_COMPILE_FOR_TARGET=' -isystem /nix/store/4r4ig3y8xm9zwvra4m3kimn133m24dnv-openssl-3.3.2-dev/include'
export NIX_CFLAGS_COMPILE_FOR_BUILD export NIX_CFLAGS_COMPILE_FOR_TARGET
NIX_ENFORCE_NO_NATIVE='1' NIX_ENFORCE_NO_NATIVE='1'
export NIX_ENFORCE_NO_NATIVE export NIX_ENFORCE_NO_NATIVE
NIX_HARDENING_ENABLE='fortify fortify3 stackprotector pic strictoverflow format relro bindnow' NIX_HARDENING_ENABLE='bindnow format fortify fortify3 pic relro stackprotector strictoverflow zerocallusedregs'
export NIX_HARDENING_ENABLE export NIX_HARDENING_ENABLE
NIX_LDFLAGS='-rpath /home/spectre/code/aocrust/outputs/out/lib -L/nix/store/cy82np97iwsqpyavbykkj181q12ffwvb-rust-default-1.71.0/lib -L/nix/store/c7rf6w8xvxc4423m9rsgq5nsqhknshvy-openssl-3.0.12/lib -L/nix/store/cy82np97iwsqpyavbykkj181q12ffwvb-rust-default-1.71.0/lib -L/nix/store/c7rf6w8xvxc4423m9rsgq5nsqhknshvy-openssl-3.0.12/lib' NIX_LDFLAGS='-rpath /home/spectre/code/aocrust/outputs/out/lib -L/nix/store/5dlhinba4wbr5ijy0vcmyzh4i678z94w-openssl-3.3.2/lib -L/nix/store/5dlhinba4wbr5ijy0vcmyzh4i678z94w-openssl-3.3.2/lib -L/nix/store/nlrv3m4vd69lw8z6xbwi4yg7z7fqpcka-rust-default-1.85.0-nightly-2024-12-02/lib -L/nix/store/nlrv3m4vd69lw8z6xbwi4yg7z7fqpcka-rust-default-1.85.0-nightly-2024-12-02/lib -L/nix/store/5dlhinba4wbr5ijy0vcmyzh4i678z94w-openssl-3.3.2/lib -L/nix/store/5dlhinba4wbr5ijy0vcmyzh4i678z94w-openssl-3.3.2/lib -L/nix/store/nlrv3m4vd69lw8z6xbwi4yg7z7fqpcka-rust-default-1.85.0-nightly-2024-12-02/lib -L/nix/store/nlrv3m4vd69lw8z6xbwi4yg7z7fqpcka-rust-default-1.85.0-nightly-2024-12-02/lib'
export NIX_LDFLAGS export NIX_LDFLAGS
NIX_LDFLAGS_FOR_BUILD=' -L/nix/store/cy82np97iwsqpyavbykkj181q12ffwvb-rust-default-1.71.0/lib -L/nix/store/c7rf6w8xvxc4423m9rsgq5nsqhknshvy-openssl-3.0.12/lib -L/nix/store/cy82np97iwsqpyavbykkj181q12ffwvb-rust-default-1.71.0/lib -L/nix/store/c7rf6w8xvxc4423m9rsgq5nsqhknshvy-openssl-3.0.12/lib -L/nix/store/cy82np97iwsqpyavbykkj181q12ffwvb-rust-default-1.71.0/lib -L/nix/store/c7rf6w8xvxc4423m9rsgq5nsqhknshvy-openssl-3.0.12/lib' NIX_LDFLAGS_FOR_TARGET=' -L/nix/store/5dlhinba4wbr5ijy0vcmyzh4i678z94w-openssl-3.3.2/lib -L/nix/store/nlrv3m4vd69lw8z6xbwi4yg7z7fqpcka-rust-default-1.85.0-nightly-2024-12-02/lib'
export NIX_LDFLAGS_FOR_BUILD export NIX_LDFLAGS_FOR_TARGET
NIX_NO_SELF_RPATH='1' NIX_NO_SELF_RPATH='1'
NIX_PKG_CONFIG_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1' NIX_PKG_CONFIG_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu='1'
export NIX_PKG_CONFIG_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu export NIX_PKG_CONFIG_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu
NIX_STORE='/nix/store' NIX_STORE='/nix/store'
export NIX_STORE export NIX_STORE
NM='nm' NM='nm'
export NM export NM
NM_FOR_BUILD='nm' NM_FOR_TARGET='nm'
export NM_FOR_BUILD export NM_FOR_TARGET
OBJCOPY='objcopy' OBJCOPY='objcopy'
export OBJCOPY export OBJCOPY
OBJCOPY_FOR_BUILD='objcopy' OBJCOPY_FOR_TARGET='objcopy'
export OBJCOPY_FOR_BUILD export OBJCOPY_FOR_TARGET
OBJDUMP='objdump' OBJDUMP='objdump'
export OBJDUMP export OBJDUMP
OBJDUMP_FOR_BUILD='objdump' OBJDUMP_FOR_TARGET='objdump'
export OBJDUMP_FOR_BUILD export OBJDUMP_FOR_TARGET
OLDPWD='' OLDPWD=''
export OLDPWD export OLDPWD
OPTERR='1' OPTERR='1'
OSTYPE='linux-gnu' OSTYPE='linux-gnu'
PATH='/nix/store/sfgnb6rr428bssyrs54d6d0vv2avi95c-gcc-wrapper-12.3.0/bin:/nix/store/qfqjymymsd2x29yknsgllfiq1h64s3f4-gcc-12.3.0/bin:/nix/store/bh4lz3c2n3qfbm2hhwjhnqcaxcjs2sm8-glibc-2.38-27-bin/bin:/nix/store/zx8aqgdy735qzk81glfwil6mbi6ddqb1-coreutils-9.4/bin:/nix/store/lwqnazddv8037sin49482dnzc9iwgg8l-binutils-wrapper-2.40/bin:/nix/store/fzlkaj1ax7gl655blfcr6zzvml1vx3bj-binutils-2.40/bin:/nix/store/cy82np97iwsqpyavbykkj181q12ffwvb-rust-default-1.71.0/bin:/nix/store/sr9ka27mzwb3mpvmh1k9180k9rrzlrky-openssl-3.0.12-bin/bin:/nix/store/1nvm1a9a9mlwyy7d0hapkzchxgjgpw19-pkg-config-wrapper-0.29.2/bin:/nix/store/9k9x2l50chwklcnzksr1dsvdakrjyjii-cargo-deny-0.14.3/bin:/nix/store/rvw4mnfpvfl3p6jxv53fh2ns95f8vijd-cargo-edit-0.12.2/bin:/nix/store/dggqys77plh2lv2xkq12973q7g42ay4p-cargo-watch-8.4.1/bin:/nix/store/z7aihjs62zxyi8hkl6pspabhs13lmpr4-rust-analyzer-2023-11-13/bin:/nix/store/pyq6gyhgck1nkfyjs6842ysxkxzjxkaj-patchelf-0.15.0/bin:/nix/store/zx8aqgdy735qzk81glfwil6mbi6ddqb1-coreutils-9.4/bin:/nix/store/sq0w0jchkjqbxl47h52kfwa33qp1adfh-findutils-4.9.0/bin:/nix/store/f3g84l92p0njh0gyk1z7cp2k4qnh91ha-diffutils-3.10/bin:/nix/store/7fqp73ncnbwr5bxxszqicf6r33d9yhkw-gnused-4.9/bin:/nix/store/by6918gg7srjyixqk8kbcdlz82d5pcwx-gnugrep-3.11/bin:/nix/store/1713hchhyzawkxfhk9srxklv03bqj55y-gawk-5.2.2/bin:/nix/store/1y7cqy8y76gsx037mhs3cvb33srj4c7g-gnutar-1.35/bin:/nix/store/21drzcpzpi485f9m6ihspg4kayly5425-gzip-1.13/bin:/nix/store/9gdg43h7zrn651lb1ihv2b2qf59im94b-bzip2-1.0.8-bin/bin:/nix/store/452v8bl3sjaq4kil1d9vqxc5vns4cvpp-gnumake-4.4.1/bin:/nix/store/q8qq40xg2grfh9ry1d9x4g7lq4ra7n81-bash-5.2-p21/bin:/nix/store/l6s9gwsallxxgz3qy7xk6410y842m6dn-patch-2.7.6/bin:/nix/store/pp7yamsghaprdxq94vr2iqx1hd5xn2qf-xz-5.4.5-bin/bin:/nix/store/hnz8p5w9xc0ivsiyrgky6f6h7sjb28a5-file-5.45/bin' PATH='/nix/store/xjlvb8x7z3f5rxxswa3c6ghay74a58jm-patchelf-0.15.0/bin:/nix/store/3ix5h74n7ar9950vwzp4dxmil70pmx0k-gcc-wrapper-13.3.0/bin:/nix/store/xzfmarrq8x8s4ivpya24rrndqsq2ndiz-gcc-13.3.0/bin:/nix/store/26dy2y29fhissya64ygahwpidpvs3bm3-glibc-2.40-36-bin/bin:/nix/store/k48bha2fjqzarg52picsdfwlqx75aqbb-coreutils-9.5/bin:/nix/store/9bacph866qhmr2zfib1h49jixq5hhd01-binutils-wrapper-2.43.1/bin:/nix/store/va7kw1i822h95im4jacci19v0cqajfyf-binutils-2.43.1/bin:/nix/store/40yym8srkji787nrml52v4v160z41v65-openssl-3.3.2-bin/bin:/nix/store/f1gamyykr0f8n4afy910ass2jx2g9zkv-pkg-config-wrapper-0.29.2/bin:/nix/store/y3swnj6xfbbmjawi524v12j69k9g35ds-cargo-deny-0.16.2/bin:/nix/store/9kw90wqbaj0nz618yy6dar012mpz8ik1-cargo-edit-0.13.0/bin:/nix/store/66kz62g4cd72b44crkqlhsy1p60w9hga-cargo-watch-8.5.3/bin:/nix/store/8ky932dblp2vb2khjyhb92xwsy4ah859-rust-analyzer-2024-11-11/bin:/nix/store/nlrv3m4vd69lw8z6xbwi4yg7z7fqpcka-rust-default-1.85.0-nightly-2024-12-02/bin:/nix/store/k48bha2fjqzarg52picsdfwlqx75aqbb-coreutils-9.5/bin:/nix/store/lfhmpajzgfmgl8xrdvp2r9hdi2rf17wy-findutils-4.10.0/bin:/nix/store/xrpvl6c1pyq7zazqnb41kgshmkr85da1-diffutils-3.10/bin:/nix/store/gvivnz7rb2gz1vy7d9mdxgzj9didz7w2-gnused-4.9/bin:/nix/store/14aswfz6pm8zvyyy927xzmi8x4rnvlc8-gnugrep-3.11/bin:/nix/store/45jb5s18799g8day8zjixrvknj4chp6r-gawk-5.3.1/bin:/nix/store/sdljgkhcmlflr785i4jffg1rvm294i1k-gnutar-1.35/bin:/nix/store/pg1n8f8zlwh4q4bsbnm9gwhx7cbix1m6-gzip-1.13/bin:/nix/store/y59bxw99pbld247dznzv352cqdhlybqi-bzip2-1.0.8-bin/bin:/nix/store/a08385589ajv3ahmp81nml9bh5dsi55n-gnumake-4.4.1/bin:/nix/store/0irlcqx2n3qm6b1pc9rsd2i8qpvcccaj-bash-5.2p37/bin:/nix/store/0knrdpnzi5s4igcvzw8yhkj8daq84a2v-patch-2.7.6/bin:/nix/store/g6rf9zyrz8hrgz4r7sd2hab3j1afxdkr-xz-5.6.3-bin/bin:/nix/store/83jpg0nha0gp1pggdvsk7zh6wn5lgm00-file-5.45/bin'
export PATH export PATH
PKG_CONFIG='pkg-config' PKG_CONFIG_FOR_TARGET='pkg-config'
export PKG_CONFIG export PKG_CONFIG_FOR_TARGET
PKG_CONFIG_PATH='/nix/store/7yx2i1wm89zhypky0l0lmmpl10yf0bh7-openssl-3.0.12-dev/lib/pkgconfig' PKG_CONFIG_PATH_FOR_TARGET='/nix/store/4r4ig3y8xm9zwvra4m3kimn133m24dnv-openssl-3.3.2-dev/lib/pkgconfig'
export PKG_CONFIG_PATH export PKG_CONFIG_PATH_FOR_TARGET
PS4='+ ' PS4='+ '
RANLIB='ranlib' RANLIB='ranlib'
export RANLIB export RANLIB
RANLIB_FOR_BUILD='ranlib' RANLIB_FOR_TARGET='ranlib'
export RANLIB_FOR_BUILD export RANLIB_FOR_TARGET
READELF='readelf' READELF='readelf'
export READELF export READELF
READELF_FOR_BUILD='readelf' READELF_FOR_TARGET='readelf'
export READELF_FOR_BUILD export READELF_FOR_TARGET
SIZE='size' SIZE='size'
export SIZE export SIZE
SIZE_FOR_BUILD='size' SIZE_FOR_TARGET='size'
export SIZE_FOR_BUILD export SIZE_FOR_TARGET
SOURCE_DATE_EPOCH='315532800' SOURCE_DATE_EPOCH='315532800'
export SOURCE_DATE_EPOCH export SOURCE_DATE_EPOCH
STRINGS='strings' STRINGS='strings'
export STRINGS export STRINGS
STRINGS_FOR_BUILD='strings' STRINGS_FOR_TARGET='strings'
export STRINGS_FOR_BUILD export STRINGS_FOR_TARGET
STRIP='strip' STRIP='strip'
export STRIP export STRIP
STRIP_FOR_BUILD='strip' STRIP_FOR_TARGET='strip'
export STRIP_FOR_BUILD export STRIP_FOR_TARGET
XDG_DATA_DIRS='/nix/store/cy82np97iwsqpyavbykkj181q12ffwvb-rust-default-1.71.0/share:/nix/store/1nvm1a9a9mlwyy7d0hapkzchxgjgpw19-pkg-config-wrapper-0.29.2/share:/nix/store/pyq6gyhgck1nkfyjs6842ysxkxzjxkaj-patchelf-0.15.0/share' XDG_DATA_DIRS='/nix/store/xjlvb8x7z3f5rxxswa3c6ghay74a58jm-patchelf-0.15.0/share'
export XDG_DATA_DIRS export XDG_DATA_DIRS
__structuredAttrs='' __structuredAttrs=''
export __structuredAttrs export __structuredAttrs
buildInputs='' _substituteStream_has_warned_replace_deprecation='false'
buildInputs='/nix/store/4r4ig3y8xm9zwvra4m3kimn133m24dnv-openssl-3.3.2-dev /nix/store/f1gamyykr0f8n4afy910ass2jx2g9zkv-pkg-config-wrapper-0.29.2 /nix/store/y3swnj6xfbbmjawi524v12j69k9g35ds-cargo-deny-0.16.2 /nix/store/9kw90wqbaj0nz618yy6dar012mpz8ik1-cargo-edit-0.13.0 /nix/store/66kz62g4cd72b44crkqlhsy1p60w9hga-cargo-watch-8.5.3 /nix/store/8ky932dblp2vb2khjyhb92xwsy4ah859-rust-analyzer-2024-11-11 /nix/store/nlrv3m4vd69lw8z6xbwi4yg7z7fqpcka-rust-default-1.85.0-nightly-2024-12-02'
export buildInputs export buildInputs
buildPhase='{ echo "------------------------------------------------------------"; buildPhase='{ echo "------------------------------------------------------------";
echo " WARNING: the existence of this path is not guaranteed."; echo " WARNING: the existence of this path is not guaranteed.";
@ -131,14 +132,14 @@ buildPhase='{ echo "------------------------------------------------------------
} >> "$out" } >> "$out"
' '
export buildPhase export buildPhase
builder='/nix/store/q8qq40xg2grfh9ry1d9x4g7lq4ra7n81-bash-5.2-p21/bin/bash' builder='/nix/store/0irlcqx2n3qm6b1pc9rsd2i8qpvcccaj-bash-5.2p37/bin/bash'
export builder export builder
cmakeFlags='' cmakeFlags=''
export cmakeFlags export cmakeFlags
configureFlags='' configureFlags=''
export configureFlags export configureFlags
defaultBuildInputs='' defaultBuildInputs=''
defaultNativeBuildInputs='/nix/store/pyq6gyhgck1nkfyjs6842ysxkxzjxkaj-patchelf-0.15.0 /nix/store/j0blrlhddcnqgq1v1cd4pfggjr2wah8n-update-autotools-gnu-config-scripts-hook /nix/store/h9lc1dpi14z7is86ffhl3ld569138595-audit-tmpdir.sh /nix/store/m54bmrhj6fqz8nds5zcj97w9s9bckc9v-compress-man-pages.sh /nix/store/wgrbkkaldkrlrni33ccvm3b6vbxzb656-make-symlinks-relative.sh /nix/store/5yzw0vhkyszf2d179m0qfkgxmp5wjjx4-move-docs.sh /nix/store/fyaryjvghbkpfnsyw97hb3lyb37s1pd6-move-lib64.sh /nix/store/kd4xwxjpjxi71jkm6ka0np72if9rm3y0-move-sbin.sh /nix/store/pag6l61paj1dc9sv15l7bm5c17xn5kyk-move-systemd-user-units.sh /nix/store/jivxp510zxakaaic7qkrb7v1dd2rdbw9-multiple-outputs.sh /nix/store/wzdsbnv2ba3nj91aql8jjdddfmkkdh7h-patch-shebangs.sh /nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh /nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh /nix/store/ngg1cv31c8c7bcm2n8ww4g06nq7s4zhm-set-source-date-epoch-to-latest.sh /nix/store/wmknncrif06fqxa16hpdldhixk95nds0-strip.sh /nix/store/sfgnb6rr428bssyrs54d6d0vv2avi95c-gcc-wrapper-12.3.0' defaultNativeBuildInputs='/nix/store/xjlvb8x7z3f5rxxswa3c6ghay74a58jm-patchelf-0.15.0 /nix/store/sjdccq7ywcpfjnmisl0ah60b7rg1cjpf-update-autotools-gnu-config-scripts-hook /nix/store/h9lc1dpi14z7is86ffhl3ld569138595-audit-tmpdir.sh /nix/store/m54bmrhj6fqz8nds5zcj97w9s9bckc9v-compress-man-pages.sh /nix/store/wgrbkkaldkrlrni33ccvm3b6vbxzb656-make-symlinks-relative.sh /nix/store/5yzw0vhkyszf2d179m0qfkgxmp5wjjx4-move-docs.sh /nix/store/fyaryjvghbkpfnsyw97hb3lyb37s1pd6-move-lib64.sh /nix/store/kd4xwxjpjxi71jkm6ka0np72if9rm3y0-move-sbin.sh /nix/store/pag6l61paj1dc9sv15l7bm5c17xn5kyk-move-systemd-user-units.sh /nix/store/jivxp510zxakaaic7qkrb7v1dd2rdbw9-multiple-outputs.sh /nix/store/12lvf0c7xric9cny7slvf9cmhypl1p67-patch-shebangs.sh /nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh /nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh /nix/store/aazf105snicrlvyzzbdj85sx4179rpfp-set-source-date-epoch-to-latest.sh /nix/store/gps9qrh99j7g02840wv5x78ykmz30byp-strip.sh /nix/store/3ix5h74n7ar9950vwzp4dxmil70pmx0k-gcc-wrapper-13.3.0'
depsBuildBuild='' depsBuildBuild=''
export depsBuildBuild export depsBuildBuild
depsBuildBuildPropagated='' depsBuildBuildPropagated=''
@ -161,20 +162,20 @@ doInstallCheck=''
export doInstallCheck export doInstallCheck
dontAddDisableDepTrack='1' dontAddDisableDepTrack='1'
export dontAddDisableDepTrack export dontAddDisableDepTrack
declare -a envBuildBuildHooks=('ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' ) declare -a envBuildBuildHooks=()
declare -a envBuildHostHooks=('ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' ) declare -a envBuildHostHooks=()
declare -a envBuildTargetHooks=('ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' ) declare -a envBuildTargetHooks=()
declare -a envHostHostHooks=('ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' 'pkgConfigWrapper_addPkgConfigPath' ) declare -a envHostHostHooks=('ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' 'ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' )
declare -a envHostTargetHooks=('ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' 'pkgConfigWrapper_addPkgConfigPath' ) declare -a envHostTargetHooks=('ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' 'ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' )
declare -a envTargetTargetHooks=() declare -a envTargetTargetHooks=('pkgConfigWrapper_addPkgConfigPath' 'ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' )
declare -a fixupOutputHooks=('if [ -z "${dontPatchELF-}" ]; then patchELF "$prefix"; fi' 'if [[ -z "${noAuditTmpdir-}" && -e "$prefix" ]]; then auditTmpdir "$prefix"; fi' 'if [ -z "${dontGzipMan-}" ]; then compressManPages "$prefix"; fi' '_moveLib64' '_moveSbin' '_moveSystemdUserUnits' 'patchShebangsAuto' '_pruneLibtoolFiles' '_doStrip' ) declare -a fixupOutputHooks=('if [ -z "${dontPatchELF-}" ]; then patchELF "$prefix"; fi' 'if [[ -z "${noAuditTmpdir-}" && -e "$prefix" ]]; then auditTmpdir "$prefix"; fi' 'if [ -z "${dontGzipMan-}" ]; then compressManPages "$prefix"; fi' '_moveLib64' '_moveSbin' '_moveSystemdUserUnits' 'patchShebangsAuto' '_pruneLibtoolFiles' '_doStrip' )
guess='8' guess='8'
initialPath='/nix/store/zx8aqgdy735qzk81glfwil6mbi6ddqb1-coreutils-9.4 /nix/store/sq0w0jchkjqbxl47h52kfwa33qp1adfh-findutils-4.9.0 /nix/store/f3g84l92p0njh0gyk1z7cp2k4qnh91ha-diffutils-3.10 /nix/store/7fqp73ncnbwr5bxxszqicf6r33d9yhkw-gnused-4.9 /nix/store/by6918gg7srjyixqk8kbcdlz82d5pcwx-gnugrep-3.11 /nix/store/1713hchhyzawkxfhk9srxklv03bqj55y-gawk-5.2.2 /nix/store/1y7cqy8y76gsx037mhs3cvb33srj4c7g-gnutar-1.35 /nix/store/21drzcpzpi485f9m6ihspg4kayly5425-gzip-1.13 /nix/store/9gdg43h7zrn651lb1ihv2b2qf59im94b-bzip2-1.0.8-bin /nix/store/452v8bl3sjaq4kil1d9vqxc5vns4cvpp-gnumake-4.4.1 /nix/store/q8qq40xg2grfh9ry1d9x4g7lq4ra7n81-bash-5.2-p21 /nix/store/l6s9gwsallxxgz3qy7xk6410y842m6dn-patch-2.7.6 /nix/store/pp7yamsghaprdxq94vr2iqx1hd5xn2qf-xz-5.4.5-bin /nix/store/hnz8p5w9xc0ivsiyrgky6f6h7sjb28a5-file-5.45' initialPath='/nix/store/k48bha2fjqzarg52picsdfwlqx75aqbb-coreutils-9.5 /nix/store/lfhmpajzgfmgl8xrdvp2r9hdi2rf17wy-findutils-4.10.0 /nix/store/xrpvl6c1pyq7zazqnb41kgshmkr85da1-diffutils-3.10 /nix/store/gvivnz7rb2gz1vy7d9mdxgzj9didz7w2-gnused-4.9 /nix/store/14aswfz6pm8zvyyy927xzmi8x4rnvlc8-gnugrep-3.11 /nix/store/45jb5s18799g8day8zjixrvknj4chp6r-gawk-5.3.1 /nix/store/sdljgkhcmlflr785i4jffg1rvm294i1k-gnutar-1.35 /nix/store/pg1n8f8zlwh4q4bsbnm9gwhx7cbix1m6-gzip-1.13 /nix/store/y59bxw99pbld247dznzv352cqdhlybqi-bzip2-1.0.8-bin /nix/store/a08385589ajv3ahmp81nml9bh5dsi55n-gnumake-4.4.1 /nix/store/0irlcqx2n3qm6b1pc9rsd2i8qpvcccaj-bash-5.2p37 /nix/store/0knrdpnzi5s4igcvzw8yhkj8daq84a2v-patch-2.7.6 /nix/store/g6rf9zyrz8hrgz4r7sd2hab3j1afxdkr-xz-5.6.3-bin /nix/store/83jpg0nha0gp1pggdvsk7zh6wn5lgm00-file-5.45'
mesonFlags='' mesonFlags=''
export mesonFlags export mesonFlags
name='nix-shell-env' name='nix-shell-env'
export name export name
nativeBuildInputs='/nix/store/cy82np97iwsqpyavbykkj181q12ffwvb-rust-default-1.71.0 /nix/store/7yx2i1wm89zhypky0l0lmmpl10yf0bh7-openssl-3.0.12-dev /nix/store/1nvm1a9a9mlwyy7d0hapkzchxgjgpw19-pkg-config-wrapper-0.29.2 /nix/store/9k9x2l50chwklcnzksr1dsvdakrjyjii-cargo-deny-0.14.3 /nix/store/rvw4mnfpvfl3p6jxv53fh2ns95f8vijd-cargo-edit-0.12.2 /nix/store/dggqys77plh2lv2xkq12973q7g42ay4p-cargo-watch-8.4.1 /nix/store/z7aihjs62zxyi8hkl6pspabhs13lmpr4-rust-analyzer-2023-11-13' nativeBuildInputs=''
export nativeBuildInputs export nativeBuildInputs
out='/home/spectre/code/aocrust/outputs/out' out='/home/spectre/code/aocrust/outputs/out'
export out export out
@ -193,12 +194,12 @@ patches=''
export patches export patches
phases='buildPhase' phases='buildPhase'
export phases export phases
pkg='/nix/store/sfgnb6rr428bssyrs54d6d0vv2avi95c-gcc-wrapper-12.3.0' pkg='/nix/store/3ix5h74n7ar9950vwzp4dxmil70pmx0k-gcc-wrapper-13.3.0'
declare -a pkgsBuildBuild=('/nix/store/sfgnb6rr428bssyrs54d6d0vv2avi95c-gcc-wrapper-12.3.0' '/nix/store/lwqnazddv8037sin49482dnzc9iwgg8l-binutils-wrapper-2.40' ) declare -a pkgsBuildBuild=()
declare -a pkgsBuildHost=('/nix/store/cy82np97iwsqpyavbykkj181q12ffwvb-rust-default-1.71.0' '/nix/store/sfgnb6rr428bssyrs54d6d0vv2avi95c-gcc-wrapper-12.3.0' '/nix/store/lwqnazddv8037sin49482dnzc9iwgg8l-binutils-wrapper-2.40' '/nix/store/7yx2i1wm89zhypky0l0lmmpl10yf0bh7-openssl-3.0.12-dev' '/nix/store/sr9ka27mzwb3mpvmh1k9180k9rrzlrky-openssl-3.0.12-bin' '/nix/store/c7rf6w8xvxc4423m9rsgq5nsqhknshvy-openssl-3.0.12' '/nix/store/1nvm1a9a9mlwyy7d0hapkzchxgjgpw19-pkg-config-wrapper-0.29.2' '/nix/store/9k9x2l50chwklcnzksr1dsvdakrjyjii-cargo-deny-0.14.3' '/nix/store/rvw4mnfpvfl3p6jxv53fh2ns95f8vijd-cargo-edit-0.12.2' '/nix/store/dggqys77plh2lv2xkq12973q7g42ay4p-cargo-watch-8.4.1' '/nix/store/z7aihjs62zxyi8hkl6pspabhs13lmpr4-rust-analyzer-2023-11-13' '/nix/store/pyq6gyhgck1nkfyjs6842ysxkxzjxkaj-patchelf-0.15.0' '/nix/store/j0blrlhddcnqgq1v1cd4pfggjr2wah8n-update-autotools-gnu-config-scripts-hook' '/nix/store/h9lc1dpi14z7is86ffhl3ld569138595-audit-tmpdir.sh' '/nix/store/m54bmrhj6fqz8nds5zcj97w9s9bckc9v-compress-man-pages.sh' '/nix/store/wgrbkkaldkrlrni33ccvm3b6vbxzb656-make-symlinks-relative.sh' '/nix/store/5yzw0vhkyszf2d179m0qfkgxmp5wjjx4-move-docs.sh' '/nix/store/fyaryjvghbkpfnsyw97hb3lyb37s1pd6-move-lib64.sh' '/nix/store/kd4xwxjpjxi71jkm6ka0np72if9rm3y0-move-sbin.sh' '/nix/store/pag6l61paj1dc9sv15l7bm5c17xn5kyk-move-systemd-user-units.sh' '/nix/store/jivxp510zxakaaic7qkrb7v1dd2rdbw9-multiple-outputs.sh' '/nix/store/wzdsbnv2ba3nj91aql8jjdddfmkkdh7h-patch-shebangs.sh' '/nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh' '/nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh' '/nix/store/ngg1cv31c8c7bcm2n8ww4g06nq7s4zhm-set-source-date-epoch-to-latest.sh' '/nix/store/wmknncrif06fqxa16hpdldhixk95nds0-strip.sh' ) declare -a pkgsBuildHost=('/nix/store/xjlvb8x7z3f5rxxswa3c6ghay74a58jm-patchelf-0.15.0' '/nix/store/sjdccq7ywcpfjnmisl0ah60b7rg1cjpf-update-autotools-gnu-config-scripts-hook' '/nix/store/h9lc1dpi14z7is86ffhl3ld569138595-audit-tmpdir.sh' '/nix/store/m54bmrhj6fqz8nds5zcj97w9s9bckc9v-compress-man-pages.sh' '/nix/store/wgrbkkaldkrlrni33ccvm3b6vbxzb656-make-symlinks-relative.sh' '/nix/store/5yzw0vhkyszf2d179m0qfkgxmp5wjjx4-move-docs.sh' '/nix/store/fyaryjvghbkpfnsyw97hb3lyb37s1pd6-move-lib64.sh' '/nix/store/kd4xwxjpjxi71jkm6ka0np72if9rm3y0-move-sbin.sh' '/nix/store/pag6l61paj1dc9sv15l7bm5c17xn5kyk-move-systemd-user-units.sh' '/nix/store/jivxp510zxakaaic7qkrb7v1dd2rdbw9-multiple-outputs.sh' '/nix/store/12lvf0c7xric9cny7slvf9cmhypl1p67-patch-shebangs.sh' '/nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh' '/nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh' '/nix/store/aazf105snicrlvyzzbdj85sx4179rpfp-set-source-date-epoch-to-latest.sh' '/nix/store/gps9qrh99j7g02840wv5x78ykmz30byp-strip.sh' '/nix/store/3ix5h74n7ar9950vwzp4dxmil70pmx0k-gcc-wrapper-13.3.0' '/nix/store/9bacph866qhmr2zfib1h49jixq5hhd01-binutils-wrapper-2.43.1' )
declare -a pkgsBuildTarget=() declare -a pkgsBuildTarget=()
declare -a pkgsHostHost=() declare -a pkgsHostHost=('/nix/store/3ix5h74n7ar9950vwzp4dxmil70pmx0k-gcc-wrapper-13.3.0' '/nix/store/9bacph866qhmr2zfib1h49jixq5hhd01-binutils-wrapper-2.43.1' )
declare -a pkgsHostTarget=() declare -a pkgsHostTarget=('/nix/store/4r4ig3y8xm9zwvra4m3kimn133m24dnv-openssl-3.3.2-dev' '/nix/store/40yym8srkji787nrml52v4v160z41v65-openssl-3.3.2-bin' '/nix/store/5dlhinba4wbr5ijy0vcmyzh4i678z94w-openssl-3.3.2' '/nix/store/f1gamyykr0f8n4afy910ass2jx2g9zkv-pkg-config-wrapper-0.29.2' '/nix/store/y3swnj6xfbbmjawi524v12j69k9g35ds-cargo-deny-0.16.2' '/nix/store/9kw90wqbaj0nz618yy6dar012mpz8ik1-cargo-edit-0.13.0' '/nix/store/66kz62g4cd72b44crkqlhsy1p60w9hga-cargo-watch-8.5.3' '/nix/store/8ky932dblp2vb2khjyhb92xwsy4ah859-rust-analyzer-2024-11-11' '/nix/store/nlrv3m4vd69lw8z6xbwi4yg7z7fqpcka-rust-default-1.85.0-nightly-2024-12-02' '/nix/store/3ix5h74n7ar9950vwzp4dxmil70pmx0k-gcc-wrapper-13.3.0' '/nix/store/9bacph866qhmr2zfib1h49jixq5hhd01-binutils-wrapper-2.43.1' )
declare -a pkgsTargetTarget=() declare -a pkgsTargetTarget=()
declare -a postFixupHooks=('_makeSymlinksRelativeInAllOutputs' '_multioutPropagateDev' ) declare -a postFixupHooks=('_makeSymlinksRelativeInAllOutputs' '_multioutPropagateDev' )
declare -a postUnpackHooks=('_updateSourceDateEpochFromSourceRoot' ) declare -a postUnpackHooks=('_updateSourceDateEpochFromSourceRoot' )
@ -215,42 +216,17 @@ declare -a propagatedHostDepFiles=('propagated-host-host-deps' 'propagated-build
propagatedNativeBuildInputs='' propagatedNativeBuildInputs=''
export propagatedNativeBuildInputs export propagatedNativeBuildInputs
declare -a propagatedTargetDepFiles=('propagated-target-target-deps' ) declare -a propagatedTargetDepFiles=('propagated-target-target-deps' )
shell='/nix/store/q8qq40xg2grfh9ry1d9x4g7lq4ra7n81-bash-5.2-p21/bin/bash' shell='/nix/store/0irlcqx2n3qm6b1pc9rsd2i8qpvcccaj-bash-5.2p37/bin/bash'
export shell export shell
shellHook='' shellHook=''
export shellHook export shellHook
stdenv='/nix/store/d4jf1cbbk494zwgbqz31pxgigpsbh6w2-stdenv-linux' stdenv='/nix/store/gw0swsnbfk9l8d1il70psm8b3r5m33jv-stdenv-linux'
export stdenv export stdenv
strictDeps='' strictDeps=''
export strictDeps export strictDeps
system='x86_64-linux' system='x86_64-linux'
export system export system
declare -a unpackCmdHooks=('_defaultUnpack' ) declare -a unpackCmdHooks=('_defaultUnpack' )
_accumFlagsArray ()
{
local name;
if [ -n "$__structuredAttrs" ]; then
for name in "$@";
do
local -n nameref="$name";
flagsArray+=(${nameref+"${nameref[@]}"});
done;
else
for name in "$@";
do
local -n nameref="$name";
case "$name" in
*Array)
flagsArray+=(${nameref+"${nameref[@]}"})
;;
*)
flagsArray+=(${nameref-})
;;
esac;
done;
fi
}
_activatePkgs () _activatePkgs ()
{ {
@ -316,13 +292,10 @@ _allFlags ()
{ {
export system pname name version; export system pname name version;
for varName in $(awk 'BEGIN { for (v in ENVIRON) if (v ~ /^[a-z][a-zA-Z0-9_]*$/) print v }'); while IFS='' read -r varName; do
do nixTalkativeLog "@${varName}@ -> ${!varName}";
if (( "${NIX_DEBUG:-0}" >= 1 )); then
printf "@%s@ -> %q\n" "${varName}" "${!varName}" 1>&2;
fi;
args+=("--subst-var" "$varName"); args+=("--subst-var" "$varName");
done done < <(awk 'BEGIN { for (v in ENVIRON) if (v ~ /^[a-z][a-zA-Z0-9_]*$/) print v }')
} }
_assignFirst () _assignFirst ()
{ {
@ -358,12 +331,15 @@ _callImplicitHook ()
local def="$1"; local def="$1";
local hookName="$2"; local hookName="$2";
if declare -F "$hookName" > /dev/null; then if declare -F "$hookName" > /dev/null; then
nixTalkativeLog "calling implicit '$hookName' function hook";
"$hookName"; "$hookName";
else else
if type -p "$hookName" > /dev/null; then if type -p "$hookName" > /dev/null; then
nixTalkativeLog "sourcing implicit '$hookName' script hook";
source "$hookName"; source "$hookName";
else else
if [ -n "${!hookName:-}" ]; then if [ -n "${!hookName:-}" ]; then
nixTalkativeLog "evaling implicit '$hookName' string hook";
eval "${!hookName}"; eval "${!hookName}";
else else
return "$def"; return "$def";
@ -387,10 +363,11 @@ _defaultUnpack ()
else else
case "$fn" in case "$fn" in
*.tar.xz | *.tar.lzma | *.txz) *.tar.xz | *.tar.lzma | *.txz)
xz -d < "$fn" | tar xf - --warning=no-timestamp ( XZ_OPT="--threads=$NIX_BUILD_CORES" xz -d < "$fn";
true ) | tar xf - --mode=+w --warning=no-timestamp
;; ;;
*.tar | *.tar.* | *.tgz | *.tbz2 | *.tbz) *.tar | *.tar.* | *.tgz | *.tbz2 | *.tbz)
tar xf "$fn" --warning=no-timestamp tar xf "$fn" --mode=+w --warning=no-timestamp
;; ;;
*) *)
return 1 return 1
@ -434,6 +411,40 @@ _eval ()
eval "$1"; eval "$1";
fi fi
} }
_logHook ()
{
if [[ -z ${NIX_LOG_FD-} ]]; then
return;
fi;
local hookKind="$1";
local hookExpr="$2";
shift 2;
if declare -F "$hookExpr" > /dev/null 2>&1; then
nixTalkativeLog "calling '$hookKind' function hook '$hookExpr'" "$@";
else
if type -p "$hookExpr" > /dev/null; then
nixTalkativeLog "sourcing '$hookKind' script hook '$hookExpr'";
else
if [[ "$hookExpr" != "_callImplicitHook"* ]]; then
local exprToOutput;
if [[ ${NIX_DEBUG:-0} -ge 5 ]]; then
exprToOutput="$hookExpr";
else
local hookExprLine;
while IFS= read -r hookExprLine; do
hookExprLine="${hookExprLine#"${hookExprLine%%[![:space:]]*}"}";
if [[ -n "$hookExprLine" ]]; then
exprToOutput+="$hookExprLine\\n ";
fi;
done <<< "$hookExpr";
exprToOutput="${exprToOutput%%\\n }";
fi;
nixTalkativeLog "evaling '$hookKind' string hook '$exprToOutput'";
fi;
fi;
fi
}
_makeSymlinksRelative () _makeSymlinksRelative ()
{ {
@ -658,6 +669,7 @@ activatePackage ()
local -r targetOffset="$3"; local -r targetOffset="$3";
(( hostOffset <= targetOffset )) || exit 1; (( hostOffset <= targetOffset )) || exit 1;
if [ -f "$pkg" ]; then if [ -f "$pkg" ]; then
nixTalkativeLog "sourcing setup hook '$pkg'";
source "$pkg"; source "$pkg";
fi; fi;
if [[ -z "${strictDeps-}" || "$hostOffset" -le -1 ]]; then if [[ -z "${strictDeps-}" || "$hostOffset" -le -1 ]]; then
@ -670,6 +682,7 @@ activatePackage ()
addToSearchPath _HOST_PATH "$pkg/bin"; addToSearchPath _HOST_PATH "$pkg/bin";
fi; fi;
if [[ -f "$pkg/nix-support/setup-hook" ]]; then if [[ -f "$pkg/nix-support/setup-hook" ]]; then
nixTalkativeLog "sourcing setup hook '$pkg/nix-support/setup-hook'";
source "$pkg/nix-support/setup-hook"; source "$pkg/nix-support/setup-hook";
fi fi
} }
@ -710,18 +723,19 @@ appendToVar ()
else else
useArray=false; useArray=false;
fi; fi;
if declare -p "$1" 2> /dev/null | grep -q '^'; then if type=$(declare -p "$1" 2> /dev/null); then
type="$(declare -p "$1")"; case "${type#* }" in
if [[ "$type" =~ "declare -A" ]]; then -A*)
echo "appendToVar(): ERROR: trying to use appendToVar on an associative array, use variable+=([\"X\"]=\"Y\") instead." 1>&2; echo "appendToVar(): ERROR: trying to use appendToVar on an associative array, use variable+=([\"X\"]=\"Y\") instead." 1>&2;
return 1; return 1
else ;;
if [[ "$type" =~ "declare -a" ]]; then -a*)
useArray=true; useArray=true
else ;;
useArray=false; *)
fi; useArray=false
fi; ;;
esac;
fi; fi;
shift; shift;
if $useArray; then if $useArray; then
@ -783,8 +797,8 @@ buildPhase ()
echo "no Makefile or custom buildPhase, doing nothing"; echo "no Makefile or custom buildPhase, doing nothing";
else else
foundMakefile=1; foundMakefile=1;
local flagsArray=(${enableParallelBuilding:+-j${NIX_BUILD_CORES}} SHELL=$SHELL); local flagsArray=(${enableParallelBuilding:+-j${NIX_BUILD_CORES}} SHELL="$SHELL");
_accumFlagsArray makeFlags makeFlagsArray buildFlags buildFlagsArray; concatTo flagsArray makeFlags makeFlagsArray buildFlags buildFlagsArray;
echoCmd 'build flags' "${flagsArray[@]}"; echoCmd 'build flags' "${flagsArray[@]}";
make ${makefile:+-f $makefile} "${flagsArray[@]}"; make ${makefile:+-f $makefile} "${flagsArray[@]}";
unset flagsArray; unset flagsArray;
@ -814,25 +828,18 @@ checkPhase ()
fi; fi;
if [[ -z "${checkTarget:-}" ]]; then if [[ -z "${checkTarget:-}" ]]; then
if make -n ${makefile:+-f $makefile} check > /dev/null 2>&1; then if make -n ${makefile:+-f $makefile} check > /dev/null 2>&1; then
checkTarget=check; checkTarget="check";
else else
if make -n ${makefile:+-f $makefile} test > /dev/null 2>&1; then if make -n ${makefile:+-f $makefile} test > /dev/null 2>&1; then
checkTarget=test; checkTarget="test";
fi; fi;
fi; fi;
fi; fi;
if [[ -z "${checkTarget:-}" ]]; then if [[ -z "${checkTarget:-}" ]]; then
echo "no check/test target in ${makefile:-Makefile}, doing nothing"; echo "no check/test target in ${makefile:-Makefile}, doing nothing";
else else
local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL=$SHELL); local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL="$SHELL");
_accumFlagsArray makeFlags makeFlagsArray; concatTo flagsArray makeFlags makeFlagsArray checkFlags=VERBOSE=y checkFlagsArray checkTarget;
if [ -n "$__structuredAttrs" ]; then
flagsArray+=("${checkFlags[@]:-VERBOSE=y}");
else
flagsArray+=(${checkFlags:-VERBOSE=y});
fi;
_accumFlagsArray checkFlagsArray;
flagsArray+=(${checkTarget});
echoCmd 'check flags' "${flagsArray[@]}"; echoCmd 'check flags' "${flagsArray[@]}";
make ${makefile:+-f $makefile} "${flagsArray[@]}"; make ${makefile:+-f $makefile} "${flagsArray[@]}";
unset flagsArray; unset flagsArray;
@ -862,6 +869,66 @@ compressManPages ()
fi; fi;
done done
} }
concatStringsSep ()
{
local sep="$1";
local name="$2";
local type oldifs;
if type=$(declare -p "$name" 2> /dev/null); then
local -n nameref="$name";
case "${type#* }" in
-A*)
echo "concatStringsSep(): ERROR: trying to use concatStringsSep on an associative array." 1>&2;
return 1
;;
-a*)
local IFS="$sep";
echo -n "${nameref[*]}"
;;
*)
echo -n "${nameref// /"${sep}"}"
;;
esac;
fi
}
concatTo ()
{
local -;
set -o noglob;
local -n targetref="$1";
shift;
local arg default name type;
for arg in "$@";
do
IFS="=" read -r name default <<< "$arg";
local -n nameref="$name";
if [[ -z "${nameref[*]}" && -n "$default" ]]; then
targetref+=("$default");
else
if type=$(declare -p "$name" 2> /dev/null); then
case "${type#* }" in
-A*)
echo "concatTo(): ERROR: trying to use concatTo on an associative array." 1>&2;
return 1
;;
-a*)
targetref+=("${nameref[@]}")
;;
*)
if [[ "$name" = *"Array" ]]; then
nixErrorLog "concatTo(): $name is not declared as array, treating as a singleton. This will become an error in future";
targetref+=(${nameref+"${nameref[@]}"});
else
targetref+=(${nameref-});
fi
;;
esac;
fi;
fi;
done
}
configurePhase () configurePhase ()
{ {
@ -901,7 +968,7 @@ configurePhase ()
fi; fi;
if [ -n "$configureScript" ]; then if [ -n "$configureScript" ]; then
local -a flagsArray; local -a flagsArray;
_accumFlagsArray configureFlags configureFlagsArray; concatTo flagsArray configureFlags configureFlagsArray;
echoCmd 'configure flags' "${flagsArray[@]}"; echoCmd 'configure flags' "${flagsArray[@]}";
$configureScript "${flagsArray[@]}"; $configureScript "${flagsArray[@]}";
unset flagsArray; unset flagsArray;
@ -923,8 +990,7 @@ distPhase ()
runHook preDist; runHook preDist;
local flagsArray=(); local flagsArray=();
_accumFlagsArray distFlags distFlagsArray; concatTo flagsArray distFlags distFlagsArray distTarget=dist;
flagsArray+=(${distTarget:-dist});
echo 'dist flags: %q' "${flagsArray[@]}"; echo 'dist flags: %q' "${flagsArray[@]}";
make ${makefile:+-f $makefile} "${flagsArray[@]}"; make ${makefile:+-f $makefile} "${flagsArray[@]}";
if [ "${dontCopyDist:-0}" != 1 ]; then if [ "${dontCopyDist:-0}" != 1 ]; then
@ -937,7 +1003,9 @@ dumpVars ()
{ {
if [ "${noDumpEnvVars:-0}" != 1 ]; then if [ "${noDumpEnvVars:-0}" != 1 ]; then
export 2> /dev/null >| "$NIX_BUILD_TOP/env-vars" || true; {
install -m 0600 /dev/null "$NIX_BUILD_TOP/env-vars" && export 2> /dev/null >| "$NIX_BUILD_TOP/env-vars"
} || true;
fi fi
} }
echoCmd () echoCmd ()
@ -1055,7 +1123,7 @@ fixupPhase ()
for output in $(getAllOutputNames); for output in $(getAllOutputNames);
do do
if [ -e "${!output}" ]; then if [ -e "${!output}" ]; then
chmod -R u+w "${!output}"; chmod -R u+w,u-s,g-s "${!output}";
fi; fi;
done; done;
runHook preFixup; runHook preFixup;
@ -1140,7 +1208,7 @@ getRole ()
role_post='_FOR_TARGET' role_post='_FOR_TARGET'
;; ;;
*) *)
echo "pkg-config-wrapper-0.29.2: used as improper sort of dependency" 1>&2; echo "binutils-wrapper-2.43.1: used as improper sort of dependency" 1>&2;
return 1 return 1
;; ;;
esac esac
@ -1160,16 +1228,16 @@ getTargetRoleWrapper ()
case $targetOffset in case $targetOffset in
-1) -1)
export NIX_PKG_CONFIG_WRAPPER_TARGET_BUILD_x86_64_unknown_linux_gnu=1 export NIX_BINTOOLS_WRAPPER_TARGET_BUILD_x86_64_unknown_linux_gnu=1
;; ;;
0) 0)
export NIX_PKG_CONFIG_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu=1 export NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu=1
;; ;;
1) 1)
export NIX_PKG_CONFIG_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu=1 export NIX_BINTOOLS_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu=1
;; ;;
*) *)
echo "pkg-config-wrapper-0.29.2: used as improper sort of dependency" 1>&2; echo "binutils-wrapper-2.43.1: used as improper sort of dependency" 1>&2;
return 1 return 1
;; ;;
esac esac
@ -1184,9 +1252,8 @@ installCheckPhase ()
if [[ -z "${installCheckTarget:-}" ]] && ! make -n ${makefile:+-f $makefile} "${installCheckTarget:-installcheck}" > /dev/null 2>&1; then if [[ -z "${installCheckTarget:-}" ]] && ! make -n ${makefile:+-f $makefile} "${installCheckTarget:-installcheck}" > /dev/null 2>&1; then
echo "no installcheck target in ${makefile:-Makefile}, doing nothing"; echo "no installcheck target in ${makefile:-Makefile}, doing nothing";
else else
local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL=$SHELL); local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL="$SHELL");
_accumFlagsArray makeFlags makeFlagsArray installCheckFlags installCheckFlagsArray; concatTo flagsArray makeFlags makeFlagsArray installCheckFlags installCheckFlagsArray installCheckTarget=installcheck;
flagsArray+=(${installCheckTarget:-installcheck});
echoCmd 'installcheck flags' "${flagsArray[@]}"; echoCmd 'installcheck flags' "${flagsArray[@]}";
make ${makefile:+-f $makefile} "${flagsArray[@]}"; make ${makefile:+-f $makefile} "${flagsArray[@]}";
unset flagsArray; unset flagsArray;
@ -1208,13 +1275,8 @@ installPhase ()
if [ -n "$prefix" ]; then if [ -n "$prefix" ]; then
mkdir -p "$prefix"; mkdir -p "$prefix";
fi; fi;
local flagsArray=(${enableParallelInstalling:+-j${NIX_BUILD_CORES}} SHELL=$SHELL); local flagsArray=(${enableParallelInstalling:+-j${NIX_BUILD_CORES}} SHELL="$SHELL");
_accumFlagsArray makeFlags makeFlagsArray installFlags installFlagsArray; concatTo flagsArray makeFlags makeFlagsArray installFlags installFlagsArray installTargets=install;
if [ -n "$__structuredAttrs" ]; then
flagsArray+=("${installTargets[@]:-install}");
else
flagsArray+=(${installTargets:-install});
fi;
echoCmd 'install flags' "${flagsArray[@]}"; echoCmd 'install flags' "${flagsArray[@]}";
make ${makefile:+-f $makefile} "${flagsArray[@]}"; make ${makefile:+-f $makefile} "${flagsArray[@]}";
unset flagsArray; unset flagsArray;
@ -1326,6 +1388,70 @@ moveToOutput ()
done; done;
done done
} }
nixChattyLog ()
{
if [[ -z ${NIX_LOG_FD-} ]] || [[ ${NIX_DEBUG:-0} -lt 5 ]]; then
return;
fi;
printf "%s\n" "$*" >&"$NIX_LOG_FD"
}
nixDebugLog ()
{
if [[ -z ${NIX_LOG_FD-} ]] || [[ ${NIX_DEBUG:-0} -lt 6 ]]; then
return;
fi;
printf "%s\n" "$*" >&"$NIX_LOG_FD"
}
nixErrorLog ()
{
if [[ -z ${NIX_LOG_FD-} ]] || [[ ${NIX_DEBUG:-0} -lt 0 ]]; then
return;
fi;
printf "%s\n" "$*" >&"$NIX_LOG_FD"
}
nixInfoLog ()
{
if [[ -z ${NIX_LOG_FD-} ]] || [[ ${NIX_DEBUG:-0} -lt 3 ]]; then
return;
fi;
printf "%s\n" "$*" >&"$NIX_LOG_FD"
}
nixNoticeLog ()
{
if [[ -z ${NIX_LOG_FD-} ]] || [[ ${NIX_DEBUG:-0} -lt 2 ]]; then
return;
fi;
printf "%s\n" "$*" >&"$NIX_LOG_FD"
}
nixTalkativeLog ()
{
if [[ -z ${NIX_LOG_FD-} ]] || [[ ${NIX_DEBUG:-0} -lt 4 ]]; then
return;
fi;
printf "%s\n" "$*" >&"$NIX_LOG_FD"
}
nixVomitLog ()
{
if [[ -z ${NIX_LOG_FD-} ]] || [[ ${NIX_DEBUG:-0} -lt 7 ]]; then
return;
fi;
printf "%s\n" "$*" >&"$NIX_LOG_FD"
}
nixWarnLog ()
{
if [[ -z ${NIX_LOG_FD-} ]] || [[ ${NIX_DEBUG:-0} -lt 1 ]]; then
return;
fi;
printf "%s\n" "$*" >&"$NIX_LOG_FD"
}
patchELF () patchELF ()
{ {
@ -1349,11 +1475,7 @@ patchPhase ()
runHook prePatch; runHook prePatch;
local -a patchesArray; local -a patchesArray;
if [ -n "$__structuredAttrs" ]; then concatTo patchesArray patches;
patchesArray=(${patches:+"${patches[@]}"});
else
patchesArray=(${patches:-});
fi;
for i in "${patchesArray[@]}"; for i in "${patchesArray[@]}";
do do
echo "applying patch $i"; echo "applying patch $i";
@ -1373,11 +1495,7 @@ patchPhase ()
;; ;;
esac; esac;
local -a flagsArray; local -a flagsArray;
if [ -n "$__structuredAttrs" ]; then concatTo flagsArray patchFlags=-p1;
flagsArray=("${patchFlags[@]:--p1}");
else
flagsArray=(${patchFlags:--p1});
fi;
$uncompress < "$i" 2>&1 | patch "${flagsArray[@]}"; $uncompress < "$i" 2>&1 | patch "${flagsArray[@]}";
done; done;
runHook postPatch runHook postPatch
@ -1429,7 +1547,7 @@ patchShebangs ()
local f; local f;
while IFS= read -r -d '' f; do while IFS= read -r -d '' f; do
isScript "$f" || continue; isScript "$f" || continue;
read -r oldInterpreterLine < "$f"; read -r oldInterpreterLine < "$f" || [ "$oldInterpreterLine" ];
read -r oldPath arg0 args <<< "${oldInterpreterLine:2}"; read -r oldPath arg0 args <<< "${oldInterpreterLine:2}";
if [[ -z "${pathName:-}" ]]; then if [[ -z "${pathName:-}" ]]; then
if [[ -n $strictDeps && $f == "$NIX_STORE"* ]]; then if [[ -n $strictDeps && $f == "$NIX_STORE"* ]]; then
@ -1442,21 +1560,21 @@ patchShebangs ()
if [[ $arg0 == "-S" ]]; then if [[ $arg0 == "-S" ]]; then
arg0=${args%% *}; arg0=${args%% *};
args=${args#* }; args=${args#* };
newPath="$(PATH="${!pathName}" command -v "env" || true)"; newPath="$(PATH="${!pathName}" type -P "env" || true)";
args="-S $(PATH="${!pathName}" command -v "$arg0" || true) $args"; args="-S $(PATH="${!pathName}" type -P "$arg0" || true) $args";
else else
if [[ $arg0 == "-"* || $arg0 == *"="* ]]; then if [[ $arg0 == "-"* || $arg0 == *"="* ]]; then
echo "$f: unsupported interpreter directive \"$oldInterpreterLine\" (set dontPatchShebangs=1 and handle shebang patching yourself)" 1>&2; echo "$f: unsupported interpreter directive \"$oldInterpreterLine\" (set dontPatchShebangs=1 and handle shebang patching yourself)" 1>&2;
exit 1; exit 1;
else else
newPath="$(PATH="${!pathName}" command -v "$arg0" || true)"; newPath="$(PATH="${!pathName}" type -P "$arg0" || true)";
fi; fi;
fi; fi;
else else
if [[ -z $oldPath ]]; then if [[ -z $oldPath ]]; then
oldPath="/bin/sh"; oldPath="/bin/sh";
fi; fi;
newPath="$(PATH="${!pathName}" command -v "$(basename "$oldPath")" || true)"; newPath="$(PATH="${!pathName}" type -P "$(basename "$oldPath")" || true)";
args="$arg0 $args"; args="$arg0 $args";
fi; fi;
newInterpreterLine="$newPath $args"; newInterpreterLine="$newPath $args";
@ -1501,18 +1619,19 @@ prependToVar ()
else else
useArray=false; useArray=false;
fi; fi;
if declare -p "$1" 2> /dev/null | grep -q '^'; then if type=$(declare -p "$1" 2> /dev/null); then
type="$(declare -p "$1")"; case "${type#* }" in
if [[ "$type" =~ "declare -A" ]]; then -A*)
echo "prependToVar(): ERROR: trying to use prependToVar on an associative array." 1>&2; echo "prependToVar(): ERROR: trying to use prependToVar on an associative array." 1>&2;
return 1; return 1
else ;;
if [[ "$type" =~ "declare -a" ]]; then -a*)
useArray=true; useArray=true
else ;;
useArray=false; *)
fi; useArray=false
fi; ;;
esac;
fi; fi;
shift; shift;
if $useArray; then if $useArray; then
@ -1557,6 +1676,7 @@ runHook ()
local hook; local hook;
for hook in "_callImplicitHook 0 $hookName" ${!hooksSlice+"${!hooksSlice}"}; for hook in "_callImplicitHook 0 $hookName" ${!hooksSlice+"${!hooksSlice}"};
do do
_logHook "$hookName" "$hook" "$@";
_eval "$hook" "$@"; _eval "$hook" "$@";
done; done;
return 0 return 0
@ -1570,6 +1690,7 @@ runOneHook ()
local hook ret=1; local hook ret=1;
for hook in "_callImplicitHook 1 $hookName" ${!hooksSlice+"${!hooksSlice}"}; for hook in "_callImplicitHook 1 $hookName" ${!hooksSlice+"${!hooksSlice}"};
do do
_logHook "$hookName" "$hook" "$@";
if _eval "$hook" "$@"; then if _eval "$hook" "$@"; then
ret=0; ret=0;
break; break;
@ -1608,18 +1729,16 @@ runPhase ()
if [[ "$curPhase" = distPhase && -z "${doDist:-}" ]]; then if [[ "$curPhase" = distPhase && -z "${doDist:-}" ]]; then
return; return;
fi; fi;
if [[ -n $NIX_LOG_FD ]]; then
echo "@nix { \"action\": \"setPhase\", \"phase\": \"$curPhase\" }" >&"$NIX_LOG_FD";
fi;
showPhaseHeader "$curPhase"; showPhaseHeader "$curPhase";
dumpVars; dumpVars;
local startTime=$(date +"%s"); local startTime endTime;
startTime=$(date +"%s");
eval "${!curPhase:-$curPhase}"; eval "${!curPhase:-$curPhase}";
local endTime=$(date +"%s"); endTime=$(date +"%s");
showPhaseFooter "$curPhase" "$startTime" "$endTime"; showPhaseFooter "$curPhase" "$startTime" "$endTime";
if [ "$curPhase" = unpackPhase ]; then if [ "$curPhase" = unpackPhase ]; then
[ -n "${sourceRoot:-}" ] && chmod +x "${sourceRoot}"; [ -n "${sourceRoot:-}" ] && chmod +x -- "${sourceRoot}";
cd "${sourceRoot:-.}"; cd -- "${sourceRoot:-.}";
fi fi
} }
showPhaseFooter () showPhaseFooter ()
@ -1642,7 +1761,11 @@ showPhaseHeader ()
{ {
local phase="$1"; local phase="$1";
echo "Running phase: $phase" echo "Running phase: $phase";
if [[ -z ${NIX_LOG_FD-} ]]; then
return;
fi;
printf "@nix { \"action\": \"setPhase\", \"phase\": \"%s\" }\n" "$phase" >&"$NIX_LOG_FD"
} }
stripDirs () stripDirs ()
{ {
@ -1674,7 +1797,7 @@ stripDirs ()
echo "stripping (with command $cmd and flags $stripFlags) in $paths"; echo "stripping (with command $cmd and flags $stripFlags) in $paths";
local striperr; local striperr;
striperr="$(mktemp --tmpdir="$TMPDIR" 'striperr.XXXXXX')"; striperr="$(mktemp --tmpdir="$TMPDIR" 'striperr.XXXXXX')";
find $paths -type f "${excludeFlags[@]}" -a '!' -path "$prefix/lib/debug/*" -print0 | xargs -r -0 -n1 -- realpath -z | sort -u -z | xargs -r -0 -n1 -P "$NIX_BUILD_CORES" -- $cmd $stripFlags 2> "$striperr" || exit_code=$?; find $paths -type f "${excludeFlags[@]}" -a '!' -path "$prefix/lib/debug/*" -printf '%D-%i,%p\0' | sort -t, -k1,1 -u -z | cut -d, -f2- -z | xargs -r -0 -n1 -P "$NIX_BUILD_CORES" -- $cmd $stripFlags 2> "$striperr" || exit_code=$?;
[[ "$exit_code" = 123 || -z "$exit_code" ]] || ( cat "$striperr" 1>&2 && exit 1 ); [[ "$exit_code" = 123 || -z "$exit_code" ]] || ( cat "$striperr" 1>&2 && exit 1 );
rm "$striperr"; rm "$striperr";
find $paths -name '*.a' -type f -exec $ranlibCmd '{}' \; 2> /dev/null; find $paths -name '*.a' -type f -exec $ranlibCmd '{}' \; 2> /dev/null;
@ -1748,6 +1871,10 @@ substituteInPlace ()
fileNames+=("$arg"); fileNames+=("$arg");
shift; shift;
done; done;
if ! [[ "${#fileNames[@]}" -gt 0 ]]; then
echo "substituteInPlace called without any files to operate on (files must come before options!)" 1>&2;
return 1;
fi;
for file in "${fileNames[@]}"; for file in "${fileNames[@]}";
do do
substitute "$file" "$file" "$@"; substitute "$file" "$file" "$@";
@ -1760,8 +1887,16 @@ substituteStream ()
local description=$2; local description=$2;
shift 2; shift 2;
while (( "$#" )); do while (( "$#" )); do
local replace_mode="$1";
case "$1" in case "$1" in
--replace) --replace)
if ! "$_substituteStream_has_warned_replace_deprecation"; then
echo "substituteStream() in derivation $name: WARNING: '--replace' is deprecated, use --replace-{fail,warn,quiet}. ($description)" 1>&2;
_substituteStream_has_warned_replace_deprecation=true;
fi;
replace_mode='--replace-warn'
;&
--replace-quiet | --replace-warn | --replace-fail)
pattern="$2"; pattern="$2";
replacement="$3"; replacement="$3";
shift 3; shift 3;
@ -1770,7 +1905,14 @@ substituteStream ()
eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'; eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}';
if [ "$pattern" != "$replacement" ]; then if [ "$pattern" != "$replacement" ]; then
if [ "${!var}" == "$savedvar" ]; then if [ "${!var}" == "$savedvar" ]; then
echo "substituteStream(): WARNING: pattern '$pattern' doesn't match anything in $description" 1>&2; if [ "$replace_mode" == --replace-warn ]; then
printf "substituteStream() in derivation $name: WARNING: pattern %q doesn't match anything in %s\n" "$pattern" "$description" 1>&2;
else
if [ "$replace_mode" == --replace-fail ]; then
printf "substituteStream() in derivation $name: ERROR: pattern %q doesn't match anything in %s\n" "$pattern" "$description" 1>&2;
return 1;
fi;
fi;
fi; fi;
fi fi
;; ;;
@ -1778,11 +1920,11 @@ substituteStream ()
local varName="$2"; local varName="$2";
shift 2; shift 2;
if ! [[ "$varName" =~ ^[a-zA-Z_][a-zA-Z0-9_]*$ ]]; then if ! [[ "$varName" =~ ^[a-zA-Z_][a-zA-Z0-9_]*$ ]]; then
echo "substituteStream(): ERROR: substitution variables must be valid Bash names, \"$varName\" isn't." 1>&2; echo "substituteStream() in derivation $name: ERROR: substitution variables must be valid Bash names, \"$varName\" isn't." 1>&2;
return 1; return 1;
fi; fi;
if [ -z ${!varName+x} ]; then if [ -z ${!varName+x} ]; then
echo "substituteStream(): ERROR: variable \$$varName is unset" 1>&2; echo "substituteStream() in derivation $name: ERROR: variable \$$varName is unset" 1>&2;
return 1; return 1;
fi; fi;
pattern="@$varName@"; pattern="@$varName@";
@ -1796,7 +1938,7 @@ substituteStream ()
shift 3 shift 3
;; ;;
*) *)
echo "substituteStream(): ERROR: Invalid command line argument: $1" 1>&2; echo "substituteStream() in derivation $name: ERROR: Invalid command line argument: $1" 1>&2;
return 1 return 1
;; ;;
esac; esac;
@ -1825,11 +1967,7 @@ unpackPhase ()
srcs="$src"; srcs="$src";
fi; fi;
local -a srcsArray; local -a srcsArray;
if [ -n "$__structuredAttrs" ]; then concatTo srcsArray srcs;
srcsArray=("${srcs[@]}");
else
srcsArray=($srcs);
fi;
local dirsBefore=""; local dirsBefore="";
for i in *; for i in *;
do do
@ -1886,7 +2024,7 @@ updateAutotoolsGnuConfigScriptsPhase ()
for f in $(find . -type f -name "$script"); for f in $(find . -type f -name "$script");
do do
echo "Updating Autotools / GNU config script to a newer upstream version: $f"; echo "Updating Autotools / GNU config script to a newer upstream version: $f";
cp -f "/nix/store/y83pz60av31hpr11zlbvc7bb93bk5fkd-gnu-config-2023-09-19/$script" "$f"; cp -f "/nix/store/hi0n0389lgyjp7v95q7wmxrf3db448xp-gnu-config-2024-01-01/$script" "$f";
done; done;
done done
} }
@ -1894,6 +2032,7 @@ updateSourceDateEpoch ()
{ {
local path="$1"; local path="$1";
[[ $path == -* ]] && path="./$path";
local -a res=($(find "$path" -type f -not -newer "$NIX_BUILD_TOP/.." -printf '%T@ %p\0' | sort -n --zero-terminated | tail -n1 --zero-terminated | head -c -1)); local -a res=($(find "$path" -type f -not -newer "$NIX_BUILD_TOP/.." -printf '%T@ %p\0' | sort -n --zero-terminated | tail -n1 --zero-terminated | head -c -1));
local time="${res[0]//\.[0-9]*/}"; local time="${res[0]//\.[0-9]*/}";
local newestFile="${res[1]}"; local newestFile="${res[1]}";

82
flake.lock generated Normal file
View file

@ -0,0 +1,82 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1733015953,
"narHash": "sha256-t4BBVpwG9B4hLgc6GUBuj3cjU7lP/PJfpTHuSqE+crk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "ac35b104800bff9028425fec3b6e8a41de2bbfff",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs",
"rust-overlay": "rust-overlay"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1733106880,
"narHash": "sha256-aJmAIjZfWfPSWSExwrYBLRgXVvgF5LP1vaeUGOOIQ98=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "e66c0d43abf5bdefb664c3583ca8994983c332ae",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

View file

@ -1,7 +1,9 @@
{ {
description = "A Nix-flake-based Rust development environment"; description = "Dev Shell for AdventOfCode by lilith";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
rust-overlay = { rust-overlay = {
url = "github:oxalica/rust-overlay"; url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@ -9,42 +11,35 @@
}; };
outputs = { outputs = {
self,
nixpkgs, nixpkgs,
rust-overlay, rust-overlay,
}: let flake-utils,
overlays = [ ...
rust-overlay.overlays.default }:
(final: prev: { flake-utils.lib.eachDefaultSystem (
rustToolchain = let system: let
rust = prev.rust-bin; overlays = [(import rust-overlay)];
in pkgs = import nixpkgs {
if builtins.pathExists ./rust-toolchain.toml inherit system overlays;
then rust.fromRustupToolchainFile ./rust-toolchain.toml };
else if builtins.pathExists ./rust-toolchain
then rust.fromRustupToolchainFile ./rust-toolchain
else rust.stable.latest.default;
})
];
supportedSystems = ["x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin"];
forEachSupportedSystem = f:
nixpkgs.lib.genAttrs supportedSystems (system:
f {
pkgs = import nixpkgs {inherit overlays system;};
});
in { in {
devShells = forEachSupportedSystem ({pkgs}: { devShells.default = with pkgs;
default = pkgs.mkShell { mkShell {
packages = with pkgs; [ buildInputs = [
rustToolchain
openssl openssl
pkg-config pkg-config
cargo-deny cargo-deny
cargo-edit cargo-edit
cargo-watch cargo-watch
rust-analyzer rust-analyzer
(
rust-bin.selectLatestNightlyWith (toolchain:
toolchain.default.override {
extensions = ["rust-src"];
})
)
]; ];
}; };
}); }
}; );
} }

View file

@ -13,6 +13,8 @@ fn main() {
let year = 2024; let year = 2024;
let day = 2; let day = 2;
fetch_data(year, day).unwrap();
let Ok(data) = load_actual(year, day) let Ok(data) = load_actual(year, day)
else { panic!("No Input Data"); }; else { panic!("No Input Data"); };
@ -33,7 +35,7 @@ fn main() {
} }
fn fetch_data(year, day) -> Result<(), Box<dyn std::error::Error>> { fn fetch_data(year: usize, day: usize) -> Result<(), Box<dyn std::error::Error>> {
let url = format!("https://adventofcode.com/{year}/day/{day}/input"); let url = format!("https://adventofcode.com/{year}/day/{day}/input");
let session_cookie = env::var("ADVENT_TOKEN")?; let session_cookie = env::var("ADVENT_TOKEN")?;
@ -43,8 +45,8 @@ fn fetch_data(year, day) -> Result<(), Box<dyn std::error::Error>> {
.header(COOKIE, session_cookie) .header(COOKIE, session_cookie)
.send()?; .send()?;
let body = response.text()?; let body = response.text();
println!("Response: {}", body); println!("Response: {:?}", body);
Ok(()) Ok(())
} }