diff --git a/.devenv/gc/shell b/.devenv/gc/shell
index b807600..b616743 120000
--- a/.devenv/gc/shell
+++ b/.devenv/gc/shell
@@ -1 +1 @@
-/nix/store/kap8myx3a7djmgsaaspb46azzkhyrnmn-devenv-shell
\ No newline at end of file
+/nix/store/9dswnx96sj7qpqvah77lx8g25hsl1z1x-devenv-shell
\ No newline at end of file
diff --git a/.devenv/gc/task-config-devenv-config-task-config b/.devenv/gc/task-config-devenv-config-task-config
index fad364b..ed611cf 120000
--- a/.devenv/gc/task-config-devenv-config-task-config
+++ b/.devenv/gc/task-config-devenv-config-task-config
@@ -1 +1 @@
-/nix/store/2f9x4skfyh2x0rkfacr2w0v3c2vm405w-tasks.json
\ No newline at end of file
+/nix/store/gj888l55lxj0brzhkjrdcald7zw7pskj-tasks.json
\ No newline at end of file
diff --git a/.devenv/shell-env.sh b/.devenv/shell-env.sh
index 99feab6..e183724 100644
--- a/.devenv/shell-env.sh
+++ b/.devenv/shell-env.sh
@@ -2,123 +2,100 @@ PATH=${PATH:-}
nix_saved_PATH="$PATH"
XDG_DATA_DIRS=${XDG_DATA_DIRS:-}
nix_saved_XDG_DATA_DIRS="$XDG_DATA_DIRS"
-DEVENV_RUNTIME='/run/user/1000/devenv-3f21a4e'
-export DEVENV_RUNTIME
-SIZE='size'
-export SIZE
-declare -a postFixupHooks=('noBrokenSymlinksInAllOutputs' '_makeSymlinksRelative' '_multioutPropagateDev' )
-declare -a pkgsBuildBuild=()
-NIX_PKG_CONFIG_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1'
-export NIX_PKG_CONFIG_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu
-SOURCE_DATE_EPOCH='315532800'
-export SOURCE_DATE_EPOCH
-depsBuildTarget=''
-export depsBuildTarget
-NIX_LDFLAGS='-rpath /nix/store/ri1qpz22jmpid9xdlwjwwjv972rdl7rn-devenv-shell-env/lib '
-export NIX_LDFLAGS
-NIX_BUILD_CORES='4'
-export NIX_BUILD_CORES
-OSTYPE='linux-gnu'
-pkg='/nix/store/788mx070y81zjlg5ipcl0cra3afviw9k-gcc-wrapper-15.2.0'
-preConfigurePhases=' updateAutotoolsGnuConfigScriptsPhase'
-declare -a propagatedBuildDepFiles=('propagated-build-build-deps' 'propagated-native-build-inputs' 'propagated-build-target-deps' )
-declare -a pkgsHostHost=()
-NIX_BINTOOLS='/nix/store/mbyy19mdwnfvfwmdi0gqgggx0njvpl1w-binutils-wrapper-2.46'
-export NIX_BINTOOLS
-out='/nix/store/ri1qpz22jmpid9xdlwjwwjv972rdl7rn-devenv-shell-env'
-export out
-declare -a propagatedTargetDepFiles=('propagated-target-target-deps' )
-outputMan='out'
-NIX_HARDENING_ENABLE='bindnow format fortify fortify3 libcxxhardeningfast pic relro stackclashprotection stackprotector strictflexarrays1 strictoverflow zerocallusedregs'
-export NIX_HARDENING_ENABLE
-declare -a pkgsBuildTarget=()
-NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1'
-export NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu
-PATH='/nix/store/cgjr3kj3hs7ngznyws5qfg16c8scpys0-bash-interactive-5.3p9/bin:/nix/store/1njx7nq9qkcslk0qaririipi1qpdv7vx-typescript-5.9.3/bin:/nix/store/0fm002iw8wq367lmwp520ml62ag5pq56-typescript-language-server-5.3.0/bin:/nix/store/z1cxjx705fswwjjns0sw2ysbd5jqxfgm-bun-1.3.13/bin:/nix/store/gq0svahwy1bvlfz07kimykr6qlalcjz5-eslint_d-15.0.2/bin:/nix/store/1m05k7xgfnw6jc21xxk5681ni3ar97wf-pkg-config-wrapper-0.29.2/bin:/nix/store/ilblcn1dkvzghcr2yk3av6jxn5rk1iqw-patchelf-0.15.2/bin:/nix/store/788mx070y81zjlg5ipcl0cra3afviw9k-gcc-wrapper-15.2.0/bin:/nix/store/qxaq7jz61a6zkr2mq49i0zvqip2m2jj8-gcc-15.2.0/bin:/nix/store/bsh7n2nx8ndmm1mmww6v2h4851nalj13-glibc-2.42-61-bin/bin:/nix/store/9ypz3flqsrl5xl495mm8h645gadjsxi1-coreutils-9.11/bin:/nix/store/mbyy19mdwnfvfwmdi0gqgggx0njvpl1w-binutils-wrapper-2.46/bin:/nix/store/s2946bl9ciwzhafd66jhansrmxq9xhqm-binutils-2.46/bin:/nix/store/9ypz3flqsrl5xl495mm8h645gadjsxi1-coreutils-9.11/bin:/nix/store/c1cjgg6p8m8fssivzrc2p13mwwml3p3v-findutils-4.10.0/bin:/nix/store/ww555mznia5v7sz2w85lblg4amvhkhv1-diffutils-3.12/bin:/nix/store/kgxafhycw2kybbqih759ykc2043qyi5j-gnused-4.9/bin:/nix/store/gn94gpcp5q08x4v6g8mvw8v4r65rcjzk-gnugrep-3.12/bin:/nix/store/wp1cshqv98i8abs8rcx91s54igqgll0f-gawk-5.4.0/bin:/nix/store/k5akwnrn9x2afaj2va7g4a2zpdim8l43-gnutar-1.35/bin:/nix/store/ndpbjk6jhw0da5h272dqqnyxa35a9gmx-gzip-1.14/bin:/nix/store/3y3kzc5njlj7nwj1s78am0yzjnpicv9x-bzip2-1.0.8-bin/bin:/nix/store/vlq7nnw39j7rwk0pp68w1fcwzpxahm9h-gnumake-4.4.1/bin:/nix/store/gik3rh1vz2jlgnifb9dh6vc6sxwwz9jj-bash-5.3p9/bin:/nix/store/wgvplwp0faqhqr92w0ma8bxaxk202ama-patch-2.8/bin:/nix/store/csra6zhdjw7rjzv98fycz7qjalyv55k2-xz-5.8.3-bin/bin:/nix/store/kyz3mm5snbb8998kbkm28jps1phk9509-file-5.47/bin'
-export PATH
-DEVENV_STATE='/home/user01/Projects/score-system/.devenv/state'
-export DEVENV_STATE
-outputLib='out'
-propagatedNativeBuildInputs=''
-export propagatedNativeBuildInputs
-NIX_STORE='/nix/store'
-export NIX_STORE
-phases='buildPhase'
-export phases
declare -a propagatedHostDepFiles=('propagated-host-host-deps' 'propagated-build-inputs' )
-initialPath='/nix/store/9ypz3flqsrl5xl495mm8h645gadjsxi1-coreutils-9.11 /nix/store/c1cjgg6p8m8fssivzrc2p13mwwml3p3v-findutils-4.10.0 /nix/store/ww555mznia5v7sz2w85lblg4amvhkhv1-diffutils-3.12 /nix/store/kgxafhycw2kybbqih759ykc2043qyi5j-gnused-4.9 /nix/store/gn94gpcp5q08x4v6g8mvw8v4r65rcjzk-gnugrep-3.12 /nix/store/wp1cshqv98i8abs8rcx91s54igqgll0f-gawk-5.4.0 /nix/store/k5akwnrn9x2afaj2va7g4a2zpdim8l43-gnutar-1.35 /nix/store/ndpbjk6jhw0da5h272dqqnyxa35a9gmx-gzip-1.14 /nix/store/3y3kzc5njlj7nwj1s78am0yzjnpicv9x-bzip2-1.0.8-bin /nix/store/vlq7nnw39j7rwk0pp68w1fcwzpxahm9h-gnumake-4.4.1 /nix/store/gik3rh1vz2jlgnifb9dh6vc6sxwwz9jj-bash-5.3p9 /nix/store/wgvplwp0faqhqr92w0ma8bxaxk202ama-patch-2.8 /nix/store/csra6zhdjw7rjzv98fycz7qjalyv55k2-xz-5.8.3-bin /nix/store/kyz3mm5snbb8998kbkm28jps1phk9509-file-5.47'
-STRIP='strip'
-export STRIP
-DEVENV_ROOT='/home/user01/Projects/score-system'
-export DEVENV_ROOT
-strictDeps=''
-export strictDeps
-outputBin='out'
-preferLocalBuild='1'
-export preferLocalBuild
-depsBuildTargetPropagated=''
-export depsBuildTargetPropagated
-nativeBuildInputs='/nix/store/bvsy09r85z0q1m30p87s1bf4ikb0s84i-bash-interactive-5.3p9-dev /nix/store/1njx7nq9qkcslk0qaririipi1qpdv7vx-typescript-5.9.3 /nix/store/0fm002iw8wq367lmwp520ml62ag5pq56-typescript-language-server-5.3.0 /nix/store/z1cxjx705fswwjjns0sw2ysbd5jqxfgm-bun-1.3.13 /nix/store/gq0svahwy1bvlfz07kimykr6qlalcjz5-eslint_d-15.0.2 /nix/store/1m05k7xgfnw6jc21xxk5681ni3ar97wf-pkg-config-wrapper-0.29.2'
-export nativeBuildInputs
-configureFlags=''
-export configureFlags
-declare -a preFixupHooks=('_moveToShare' '_multioutDocs' '_multioutDevs' )
-AR='ar'
-export AR
-shell='/nix/store/gik3rh1vz2jlgnifb9dh6vc6sxwwz9jj-bash-5.3p9/bin/bash'
-export shell
stdenv='/nix/store/jci7gw90lh2vdjaxkb6pzf9xp4v08wzs-stdenv-linux'
export stdenv
-declare -a envBuildHostHooks=()
-outputDev='out'
-propagatedBuildInputs=''
-export propagatedBuildInputs
-buildInputs=''
-export buildInputs
-LD='ld'
-export LD
-declare -a preConfigureHooks=('_multioutConfig' )
-OBJDUMP='objdump'
-export OBJDUMP
-patches=''
-export patches
-DEVENV_TASK_FILE='/nix/store/gj888l55lxj0brzhkjrdcald7zw7pskj-tasks.json'
-export DEVENV_TASK_FILE
-__structuredAttrs=''
-export __structuredAttrs
+MACHTYPE='x86_64-pc-linux-gnu'
outputDevdoc='REMOVE'
-_substituteStream_has_warned_replace_deprecation='false'
-READELF='readelf'
-export READELF
-defaultNativeBuildInputs='/nix/store/ilblcn1dkvzghcr2yk3av6jxn5rk1iqw-patchelf-0.15.2 /nix/store/xknj6c33cc197s60ry0i69vdkmaizrs1-update-autotools-gnu-config-scripts-hook /nix/store/0y5xmdb7qfvimjwbq7ibg1xdgkgjwqng-no-broken-symlinks.sh /nix/store/cv1d7p48379km6a85h4zp6kr86brh32q-audit-tmpdir.sh /nix/store/85clx3b0xkdf58jn161iy80y5223ilbi-compress-man-pages.sh /nix/store/p3l1a5y7nllfyrjn2krlwgcc3z0cd3fq-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/cmzya9irvxzlkh7lfy6i82gbp0saxqj3-multiple-outputs.sh /nix/store/x8c40nfigps493a07sdr2pm5s9j1cdc0-patch-shebangs.sh /nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh /nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh /nix/store/z7k98578dfzi6l3hsvbivzm7hfqlk0zc-set-source-date-epoch-to-latest.sh /nix/store/pilsssjjdxvdphlg2h19p0bfx5q0jzkn-strip.sh /nix/store/788mx070y81zjlg5ipcl0cra3afviw9k-gcc-wrapper-15.2.0'
-NIX_CFLAGS_COMPILE=' -frandom-seed=ri1qpz22jm -isystem /nix/store/bvsy09r85z0q1m30p87s1bf4ikb0s84i-bash-interactive-5.3p9-dev/include -isystem /nix/store/bvsy09r85z0q1m30p87s1bf4ikb0s84i-bash-interactive-5.3p9-dev/include'
-export NIX_CFLAGS_COMPILE
-outputs='out'
-export outputs
-NM='nm'
-export NM
-STRINGS='strings'
-export STRINGS
-IFS='
-'
-declare -a envBuildTargetHooks=()
-declare -a pkgsHostTarget=()
-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' )
-PKG_CONFIG_PATH='/nix/store/bvsy09r85z0q1m30p87s1bf4ikb0s84i-bash-interactive-5.3p9-dev/lib/pkgconfig'
-export PKG_CONFIG_PATH
-OBJCOPY='objcopy'
-export OBJCOPY
+preferLocalBuild='1'
+export preferLocalBuild
+NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1'
+export NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu
+DEVENV_ROOT='/home/user01/Projects/score-system'
+export DEVENV_ROOT
+declare -a postFixupHooks=('noBrokenSymlinksInAllOutputs' '_makeSymlinksRelative' '_multioutPropagateDev' )
name='devenv-shell-env'
export name
-OPTERR='1'
-RANLIB='ranlib'
-export RANLIB
+IFS='
+'
+READELF='readelf'
+export READELF
CXX='g++'
export CXX
-outputInfo='out'
-HOST_PATH='/nix/store/9ypz3flqsrl5xl495mm8h645gadjsxi1-coreutils-9.11/bin:/nix/store/c1cjgg6p8m8fssivzrc2p13mwwml3p3v-findutils-4.10.0/bin:/nix/store/ww555mznia5v7sz2w85lblg4amvhkhv1-diffutils-3.12/bin:/nix/store/kgxafhycw2kybbqih759ykc2043qyi5j-gnused-4.9/bin:/nix/store/gn94gpcp5q08x4v6g8mvw8v4r65rcjzk-gnugrep-3.12/bin:/nix/store/wp1cshqv98i8abs8rcx91s54igqgll0f-gawk-5.4.0/bin:/nix/store/k5akwnrn9x2afaj2va7g4a2zpdim8l43-gnutar-1.35/bin:/nix/store/ndpbjk6jhw0da5h272dqqnyxa35a9gmx-gzip-1.14/bin:/nix/store/3y3kzc5njlj7nwj1s78am0yzjnpicv9x-bzip2-1.0.8-bin/bin:/nix/store/vlq7nnw39j7rwk0pp68w1fcwzpxahm9h-gnumake-4.4.1/bin:/nix/store/gik3rh1vz2jlgnifb9dh6vc6sxwwz9jj-bash-5.3p9/bin:/nix/store/wgvplwp0faqhqr92w0ma8bxaxk202ama-patch-2.8/bin:/nix/store/csra6zhdjw7rjzv98fycz7qjalyv55k2-xz-5.8.3-bin/bin:/nix/store/kyz3mm5snbb8998kbkm28jps1phk9509-file-5.47/bin'
-export HOST_PATH
+outputBin='out'
+DEVENV_DOTFILE='/home/user01/Projects/score-system/.devenv'
+export DEVENV_DOTFILE
+shell='/nix/store/gik3rh1vz2jlgnifb9dh6vc6sxwwz9jj-bash-5.3p9/bin/bash'
+export shell
+NIX_LDFLAGS='-rpath /nix/store/r1k9z5ywad327dbsjyzngyv4zbja6hmp-devenv-shell-env/lib '
+export NIX_LDFLAGS
+prefix='/nix/store/r1k9z5ywad327dbsjyzngyv4zbja6hmp-devenv-shell-env'
+declare -a envHostTargetHooks=('pkgConfigWrapper_addPkgConfigPath' 'ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' )
+depsBuildBuild=''
+export depsBuildBuild
+DEVENV_PROFILE='/nix/store/z7jz33yvsqvfv3qxpy2r9mp3mh0ngcvg-devenv-profile'
+export DEVENV_PROFILE
+declare -a postUnpackHooks=('_updateSourceDateEpochFromSourceRoot' )
+doInstallCheck=''
+export doInstallCheck
+outputDoc='out'
declare -a envBuildBuildHooks=()
+declare -a pkgsBuildBuild=()
+__structuredAttrs=''
+export __structuredAttrs
+STRINGS='strings'
+export STRINGS
+NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1'
+export NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu
+buildInputs=''
+export buildInputs
+pkg='/nix/store/788mx070y81zjlg5ipcl0cra3afviw9k-gcc-wrapper-15.2.0'
+NIX_BINTOOLS='/nix/store/mbyy19mdwnfvfwmdi0gqgggx0njvpl1w-binutils-wrapper-2.46'
+export NIX_BINTOOLS
+builder='/nix/store/gik3rh1vz2jlgnifb9dh6vc6sxwwz9jj-bash-5.3p9/bin/bash'
+export builder
+SIZE='size'
+export SIZE
+out='/nix/store/r1k9z5ywad327dbsjyzngyv4zbja6hmp-devenv-shell-env'
+export out
+XDG_DATA_DIRS='/nix/store/cgjr3kj3hs7ngznyws5qfg16c8scpys0-bash-interactive-5.3p9/share:/nix/store/z1cxjx705fswwjjns0sw2ysbd5jqxfgm-bun-1.3.13/share:/nix/store/1m05k7xgfnw6jc21xxk5681ni3ar97wf-pkg-config-wrapper-0.29.2/share:/nix/store/ilblcn1dkvzghcr2yk3av6jxn5rk1iqw-patchelf-0.15.2/share'
+export XDG_DATA_DIRS
+NM='nm'
+export NM
+OBJCOPY='objcopy'
+export OBJCOPY
+outputMan='out'
+cmakeFlags=''
+export cmakeFlags
+DEVENV_RUNTIME='/run/user/1000/devenv-3f21a4e'
+export DEVENV_RUNTIME
+NIX_PKG_CONFIG_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1'
+export NIX_PKG_CONFIG_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu
+initialPath='/nix/store/9ypz3flqsrl5xl495mm8h645gadjsxi1-coreutils-9.11 /nix/store/c1cjgg6p8m8fssivzrc2p13mwwml3p3v-findutils-4.10.0 /nix/store/ww555mznia5v7sz2w85lblg4amvhkhv1-diffutils-3.12 /nix/store/kgxafhycw2kybbqih759ykc2043qyi5j-gnused-4.9 /nix/store/gn94gpcp5q08x4v6g8mvw8v4r65rcjzk-gnugrep-3.12 /nix/store/wp1cshqv98i8abs8rcx91s54igqgll0f-gawk-5.4.0 /nix/store/k5akwnrn9x2afaj2va7g4a2zpdim8l43-gnutar-1.35 /nix/store/ndpbjk6jhw0da5h272dqqnyxa35a9gmx-gzip-1.14 /nix/store/3y3kzc5njlj7nwj1s78am0yzjnpicv9x-bzip2-1.0.8-bin /nix/store/vlq7nnw39j7rwk0pp68w1fcwzpxahm9h-gnumake-4.4.1 /nix/store/gik3rh1vz2jlgnifb9dh6vc6sxwwz9jj-bash-5.3p9 /nix/store/wgvplwp0faqhqr92w0ma8bxaxk202ama-patch-2.8 /nix/store/csra6zhdjw7rjzv98fycz7qjalyv55k2-xz-5.8.3-bin /nix/store/kyz3mm5snbb8998kbkm28jps1phk9509-file-5.47'
+declare -a envTargetTargetHooks=()
+IN_NIX_SHELL='impure'
+export IN_NIX_SHELL
+depsHostHost=''
+export depsHostHost
+CONFIG_SHELL='/nix/store/gik3rh1vz2jlgnifb9dh6vc6sxwwz9jj-bash-5.3p9/bin/bash'
+export CONFIG_SHELL
+propagatedNativeBuildInputs=''
+export propagatedNativeBuildInputs
+NIX_CFLAGS_COMPILE=' -frandom-seed=r1k9z5ywad -isystem /nix/store/bvsy09r85z0q1m30p87s1bf4ikb0s84i-bash-interactive-5.3p9-dev/include -isystem /nix/store/bvsy09r85z0q1m30p87s1bf4ikb0s84i-bash-interactive-5.3p9-dev/include'
+export NIX_CFLAGS_COMPILE
+patches=''
+export patches
+depsTargetTargetPropagated=''
+export depsTargetTargetPropagated
+BASH='/nix/store/gik3rh1vz2jlgnifb9dh6vc6sxwwz9jj-bash-5.3p9/bin/bash'
+outputDevman='out'
+PS4='+ '
+hardeningDisable=''
+export hardeningDisable
+depsTargetTarget=''
+export depsTargetTarget
+preConfigurePhases=' updateAutotoolsGnuConfigScriptsPhase'
+declare -a pkgsHostTarget=()
shellHook='
@@ -128,7 +105,7 @@ shellHook='
# `devenv processes wait`) compute the same runtime directory.
for var in TMP TMPDIR TEMP TEMPDIR; do
if [ -n "${!var-}" ] && [ "${!var}" = "${NIX_BUILD_TOP-}" ]; then
- export "$var"=/tmp/nix-shell-28554-2490132097
+ export "$var"=/tmp
fi
done
if [ -n "${NIX_BUILD_TOP-}" ]; then
@@ -202,55 +179,13 @@ ln -snf /run/user/1000/devenv-3f21a4e /home/user01/Projects/score-system/.devenv
'
export shellHook
-prefix='/nix/store/ri1qpz22jmpid9xdlwjwwjv972rdl7rn-devenv-shell-env'
-DEVENV_PROFILE='/nix/store/z7jz33yvsqvfv3qxpy2r9mp3mh0ngcvg-devenv-profile'
-export DEVENV_PROFILE
-depsBuildBuild=''
-export depsBuildBuild
-NIX_NO_SELF_RPATH='1'
-CONFIG_SHELL='/nix/store/gik3rh1vz2jlgnifb9dh6vc6sxwwz9jj-bash-5.3p9/bin/bash'
-export CONFIG_SHELL
-dontAddDisableDepTrack='1'
-export dontAddDisableDepTrack
-HOSTTYPE='x86_64'
-NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1'
-export NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu
-DEVENV_DOTFILE='/home/user01/Projects/score-system/.devenv'
-export DEVENV_DOTFILE
+declare -a propagatedTargetDepFiles=('propagated-target-target-deps' )
depsBuildBuildPropagated=''
export depsBuildBuildPropagated
+declare -a pkgsBuildHost=('/nix/store/bvsy09r85z0q1m30p87s1bf4ikb0s84i-bash-interactive-5.3p9-dev' '/nix/store/cgjr3kj3hs7ngznyws5qfg16c8scpys0-bash-interactive-5.3p9' '/nix/store/1njx7nq9qkcslk0qaririipi1qpdv7vx-typescript-5.9.3' '/nix/store/0fm002iw8wq367lmwp520ml62ag5pq56-typescript-language-server-5.3.0' '/nix/store/z1cxjx705fswwjjns0sw2ysbd5jqxfgm-bun-1.3.13' '/nix/store/gq0svahwy1bvlfz07kimykr6qlalcjz5-eslint_d-15.0.2' '/nix/store/1m05k7xgfnw6jc21xxk5681ni3ar97wf-pkg-config-wrapper-0.29.2' '/nix/store/ilblcn1dkvzghcr2yk3av6jxn5rk1iqw-patchelf-0.15.2' '/nix/store/xknj6c33cc197s60ry0i69vdkmaizrs1-update-autotools-gnu-config-scripts-hook' '/nix/store/0y5xmdb7qfvimjwbq7ibg1xdgkgjwqng-no-broken-symlinks.sh' '/nix/store/cv1d7p48379km6a85h4zp6kr86brh32q-audit-tmpdir.sh' '/nix/store/85clx3b0xkdf58jn161iy80y5223ilbi-compress-man-pages.sh' '/nix/store/p3l1a5y7nllfyrjn2krlwgcc3z0cd3fq-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/cmzya9irvxzlkh7lfy6i82gbp0saxqj3-multiple-outputs.sh' '/nix/store/x8c40nfigps493a07sdr2pm5s9j1cdc0-patch-shebangs.sh' '/nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh' '/nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh' '/nix/store/z7k98578dfzi6l3hsvbivzm7hfqlk0zc-set-source-date-epoch-to-latest.sh' '/nix/store/pilsssjjdxvdphlg2h19p0bfx5q0jzkn-strip.sh' '/nix/store/788mx070y81zjlg5ipcl0cra3afviw9k-gcc-wrapper-15.2.0' '/nix/store/mbyy19mdwnfvfwmdi0gqgggx0njvpl1w-binutils-wrapper-2.46' )
+NIX_CC='/nix/store/788mx070y81zjlg5ipcl0cra3afviw9k-gcc-wrapper-15.2.0'
+export NIX_CC
LINENO='79'
-hardeningDisable=''
-export hardeningDisable
-depsHostHost=''
-export depsHostHost
-XDG_DATA_DIRS='/nix/store/cgjr3kj3hs7ngznyws5qfg16c8scpys0-bash-interactive-5.3p9/share:/nix/store/z1cxjx705fswwjjns0sw2ysbd5jqxfgm-bun-1.3.13/share:/nix/store/1m05k7xgfnw6jc21xxk5681ni3ar97wf-pkg-config-wrapper-0.29.2/share:/nix/store/ilblcn1dkvzghcr2yk3av6jxn5rk1iqw-patchelf-0.15.2/share'
-export XDG_DATA_DIRS
-PKG_CONFIG='pkg-config'
-export PKG_CONFIG
-depsTargetTarget=''
-export depsTargetTarget
-declare -a unpackCmdHooks=('_defaultUnpack' )
-outputInclude='out'
-BASH='/nix/store/gik3rh1vz2jlgnifb9dh6vc6sxwwz9jj-bash-5.3p9/bin/bash'
-declare -a envHostHostHooks=('pkgConfigWrapper_addPkgConfigPath' 'ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' )
-system='x86_64-linux'
-export system
-cmakeFlags=''
-export cmakeFlags
-AS='as'
-export AS
-depsHostHostPropagated=''
-export depsHostHostPropagated
-depsTargetTargetPropagated=''
-export depsTargetTargetPropagated
-DEVENV_TASKS=''
-export DEVENV_TASKS
-doInstallCheck=''
-export doInstallCheck
-declare -a envHostTargetHooks=('pkgConfigWrapper_addPkgConfigPath' 'ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' )
-outputDoc='out'
-PS4='+ '
buildPhase='{ echo "------------------------------------------------------------";
echo " WARNING: the existence of this path is not guaranteed.";
echo " It is an internal implementation detail for pkgs.mkShell.";
@@ -261,822 +196,188 @@ buildPhase='{ echo "------------------------------------------------------------
} >> "$out"
'
export buildPhase
-builder='/nix/store/gik3rh1vz2jlgnifb9dh6vc6sxwwz9jj-bash-5.3p9/bin/bash'
-export builder
-declare -a pkgsTargetTarget=()
-NIX_CC='/nix/store/788mx070y81zjlg5ipcl0cra3afviw9k-gcc-wrapper-15.2.0'
-export NIX_CC
-NIX_ENFORCE_NO_NATIVE='1'
-export NIX_ENFORCE_NO_NATIVE
-defaultBuildInputs=''
-DEVSHELL_NAME=' devenv/#fab387| Bun/yellow'
-export DEVSHELL_NAME
-doCheck=''
-export doCheck
-declare -a postUnpackHooks=('_updateSourceDateEpochFromSourceRoot' )
-IN_NIX_SHELL='impure'
-export IN_NIX_SHELL
-declare -a pkgsBuildHost=('/nix/store/bvsy09r85z0q1m30p87s1bf4ikb0s84i-bash-interactive-5.3p9-dev' '/nix/store/cgjr3kj3hs7ngznyws5qfg16c8scpys0-bash-interactive-5.3p9' '/nix/store/1njx7nq9qkcslk0qaririipi1qpdv7vx-typescript-5.9.3' '/nix/store/0fm002iw8wq367lmwp520ml62ag5pq56-typescript-language-server-5.3.0' '/nix/store/z1cxjx705fswwjjns0sw2ysbd5jqxfgm-bun-1.3.13' '/nix/store/gq0svahwy1bvlfz07kimykr6qlalcjz5-eslint_d-15.0.2' '/nix/store/1m05k7xgfnw6jc21xxk5681ni3ar97wf-pkg-config-wrapper-0.29.2' '/nix/store/ilblcn1dkvzghcr2yk3av6jxn5rk1iqw-patchelf-0.15.2' '/nix/store/xknj6c33cc197s60ry0i69vdkmaizrs1-update-autotools-gnu-config-scripts-hook' '/nix/store/0y5xmdb7qfvimjwbq7ibg1xdgkgjwqng-no-broken-symlinks.sh' '/nix/store/cv1d7p48379km6a85h4zp6kr86brh32q-audit-tmpdir.sh' '/nix/store/85clx3b0xkdf58jn161iy80y5223ilbi-compress-man-pages.sh' '/nix/store/p3l1a5y7nllfyrjn2krlwgcc3z0cd3fq-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/cmzya9irvxzlkh7lfy6i82gbp0saxqj3-multiple-outputs.sh' '/nix/store/x8c40nfigps493a07sdr2pm5s9j1cdc0-patch-shebangs.sh' '/nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh' '/nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh' '/nix/store/z7k98578dfzi6l3hsvbivzm7hfqlk0zc-set-source-date-epoch-to-latest.sh' '/nix/store/pilsssjjdxvdphlg2h19p0bfx5q0jzkn-strip.sh' '/nix/store/788mx070y81zjlg5ipcl0cra3afviw9k-gcc-wrapper-15.2.0' '/nix/store/mbyy19mdwnfvfwmdi0gqgggx0njvpl1w-binutils-wrapper-2.46' )
-MACHTYPE='x86_64-pc-linux-gnu'
-outputDevman='out'
-mesonFlags=''
-export mesonFlags
+PATH='/nix/store/cgjr3kj3hs7ngznyws5qfg16c8scpys0-bash-interactive-5.3p9/bin:/nix/store/1njx7nq9qkcslk0qaririipi1qpdv7vx-typescript-5.9.3/bin:/nix/store/0fm002iw8wq367lmwp520ml62ag5pq56-typescript-language-server-5.3.0/bin:/nix/store/z1cxjx705fswwjjns0sw2ysbd5jqxfgm-bun-1.3.13/bin:/nix/store/gq0svahwy1bvlfz07kimykr6qlalcjz5-eslint_d-15.0.2/bin:/nix/store/1m05k7xgfnw6jc21xxk5681ni3ar97wf-pkg-config-wrapper-0.29.2/bin:/nix/store/ilblcn1dkvzghcr2yk3av6jxn5rk1iqw-patchelf-0.15.2/bin:/nix/store/788mx070y81zjlg5ipcl0cra3afviw9k-gcc-wrapper-15.2.0/bin:/nix/store/qxaq7jz61a6zkr2mq49i0zvqip2m2jj8-gcc-15.2.0/bin:/nix/store/bsh7n2nx8ndmm1mmww6v2h4851nalj13-glibc-2.42-61-bin/bin:/nix/store/9ypz3flqsrl5xl495mm8h645gadjsxi1-coreutils-9.11/bin:/nix/store/mbyy19mdwnfvfwmdi0gqgggx0njvpl1w-binutils-wrapper-2.46/bin:/nix/store/s2946bl9ciwzhafd66jhansrmxq9xhqm-binutils-2.46/bin:/nix/store/9ypz3flqsrl5xl495mm8h645gadjsxi1-coreutils-9.11/bin:/nix/store/c1cjgg6p8m8fssivzrc2p13mwwml3p3v-findutils-4.10.0/bin:/nix/store/ww555mznia5v7sz2w85lblg4amvhkhv1-diffutils-3.12/bin:/nix/store/kgxafhycw2kybbqih759ykc2043qyi5j-gnused-4.9/bin:/nix/store/gn94gpcp5q08x4v6g8mvw8v4r65rcjzk-gnugrep-3.12/bin:/nix/store/wp1cshqv98i8abs8rcx91s54igqgll0f-gawk-5.4.0/bin:/nix/store/k5akwnrn9x2afaj2va7g4a2zpdim8l43-gnutar-1.35/bin:/nix/store/ndpbjk6jhw0da5h272dqqnyxa35a9gmx-gzip-1.14/bin:/nix/store/3y3kzc5njlj7nwj1s78am0yzjnpicv9x-bzip2-1.0.8-bin/bin:/nix/store/vlq7nnw39j7rwk0pp68w1fcwzpxahm9h-gnumake-4.4.1/bin:/nix/store/gik3rh1vz2jlgnifb9dh6vc6sxwwz9jj-bash-5.3p9/bin:/nix/store/wgvplwp0faqhqr92w0ma8bxaxk202ama-patch-2.8/bin:/nix/store/csra6zhdjw7rjzv98fycz7qjalyv55k2-xz-5.8.3-bin/bin:/nix/store/kyz3mm5snbb8998kbkm28jps1phk9509-file-5.47/bin'
+export PATH
+declare -a preConfigureHooks=('_multioutConfig' )
+NIX_STORE='/nix/store'
+export NIX_STORE
CC='gcc'
export CC
+phases='buildPhase'
+export phases
+declare -a pkgsBuildTarget=()
+NIX_NO_SELF_RPATH='1'
+DEVENV_TASKS=''
+export DEVENV_TASKS
+DEVENV_TASK_FILE='/nix/store/gj888l55lxj0brzhkjrdcald7zw7pskj-tasks.json'
+export DEVENV_TASK_FILE
+HOSTTYPE='x86_64'
+OSTYPE='linux-gnu'
+OPTERR='1'
+outputLib='out'
+PKG_CONFIG='pkg-config'
+export PKG_CONFIG
+PKG_CONFIG_PATH='/nix/store/bvsy09r85z0q1m30p87s1bf4ikb0s84i-bash-interactive-5.3p9-dev/lib/pkgconfig'
+export PKG_CONFIG_PATH
+defaultBuildInputs=''
+defaultNativeBuildInputs='/nix/store/ilblcn1dkvzghcr2yk3av6jxn5rk1iqw-patchelf-0.15.2 /nix/store/xknj6c33cc197s60ry0i69vdkmaizrs1-update-autotools-gnu-config-scripts-hook /nix/store/0y5xmdb7qfvimjwbq7ibg1xdgkgjwqng-no-broken-symlinks.sh /nix/store/cv1d7p48379km6a85h4zp6kr86brh32q-audit-tmpdir.sh /nix/store/85clx3b0xkdf58jn161iy80y5223ilbi-compress-man-pages.sh /nix/store/p3l1a5y7nllfyrjn2krlwgcc3z0cd3fq-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/cmzya9irvxzlkh7lfy6i82gbp0saxqj3-multiple-outputs.sh /nix/store/x8c40nfigps493a07sdr2pm5s9j1cdc0-patch-shebangs.sh /nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh /nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh /nix/store/z7k98578dfzi6l3hsvbivzm7hfqlk0zc-set-source-date-epoch-to-latest.sh /nix/store/pilsssjjdxvdphlg2h19p0bfx5q0jzkn-strip.sh /nix/store/788mx070y81zjlg5ipcl0cra3afviw9k-gcc-wrapper-15.2.0'
+doCheck=''
+export doCheck
+RANLIB='ranlib'
+export RANLIB
+declare -a envBuildTargetHooks=()
+declare -a envHostHostHooks=('pkgConfigWrapper_addPkgConfigPath' 'ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' )
+mesonFlags=''
+export mesonFlags
+outputInfo='out'
+declare -a envBuildHostHooks=()
+declare -a preFixupHooks=('_moveToShare' '_multioutDocs' '_multioutDevs' )
+declare -a pkgsTargetTarget=()
+strictDeps=''
+export strictDeps
+configureFlags=''
+export configureFlags
+NIX_ENFORCE_NO_NATIVE='1'
+export NIX_ENFORCE_NO_NATIVE
+depsBuildTarget=''
+export depsBuildTarget
+depsBuildTargetPropagated=''
+export depsBuildTargetPropagated
+outputDev='out'
+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' )
+OBJDUMP='objdump'
+export OBJDUMP
+NIX_HARDENING_ENABLE='bindnow format fortify fortify3 libcxxhardeningfast pic relro stackclashprotection stackprotector strictflexarrays1 strictoverflow zerocallusedregs'
+export NIX_HARDENING_ENABLE
+SOURCE_DATE_EPOCH='315532800'
+export SOURCE_DATE_EPOCH
OLDPWD=''
export OLDPWD
-declare -a envTargetTargetHooks=()
-getHostRole ()
+system='x86_64-linux'
+export system
+STRIP='strip'
+export STRIP
+NIX_BUILD_CORES='4'
+export NIX_BUILD_CORES
+DEVENV_STATE='/home/user01/Projects/score-system/.devenv/state'
+export DEVENV_STATE
+outputInclude='out'
+declare -a pkgsHostHost=()
+propagatedBuildInputs=''
+export propagatedBuildInputs
+dontAddDisableDepTrack='1'
+export dontAddDisableDepTrack
+HOST_PATH='/nix/store/9ypz3flqsrl5xl495mm8h645gadjsxi1-coreutils-9.11/bin:/nix/store/c1cjgg6p8m8fssivzrc2p13mwwml3p3v-findutils-4.10.0/bin:/nix/store/ww555mznia5v7sz2w85lblg4amvhkhv1-diffutils-3.12/bin:/nix/store/kgxafhycw2kybbqih759ykc2043qyi5j-gnused-4.9/bin:/nix/store/gn94gpcp5q08x4v6g8mvw8v4r65rcjzk-gnugrep-3.12/bin:/nix/store/wp1cshqv98i8abs8rcx91s54igqgll0f-gawk-5.4.0/bin:/nix/store/k5akwnrn9x2afaj2va7g4a2zpdim8l43-gnutar-1.35/bin:/nix/store/ndpbjk6jhw0da5h272dqqnyxa35a9gmx-gzip-1.14/bin:/nix/store/3y3kzc5njlj7nwj1s78am0yzjnpicv9x-bzip2-1.0.8-bin/bin:/nix/store/vlq7nnw39j7rwk0pp68w1fcwzpxahm9h-gnumake-4.4.1/bin:/nix/store/gik3rh1vz2jlgnifb9dh6vc6sxwwz9jj-bash-5.3p9/bin:/nix/store/wgvplwp0faqhqr92w0ma8bxaxk202ama-patch-2.8/bin:/nix/store/csra6zhdjw7rjzv98fycz7qjalyv55k2-xz-5.8.3-bin/bin:/nix/store/kyz3mm5snbb8998kbkm28jps1phk9509-file-5.47/bin'
+export HOST_PATH
+AR='ar'
+export AR
+_substituteStream_has_warned_replace_deprecation='false'
+outputs='out'
+export outputs
+depsHostHostPropagated=''
+export depsHostHostPropagated
+AS='as'
+export AS
+nativeBuildInputs='/nix/store/bvsy09r85z0q1m30p87s1bf4ikb0s84i-bash-interactive-5.3p9-dev /nix/store/1njx7nq9qkcslk0qaririipi1qpdv7vx-typescript-5.9.3 /nix/store/0fm002iw8wq367lmwp520ml62ag5pq56-typescript-language-server-5.3.0 /nix/store/z1cxjx705fswwjjns0sw2ysbd5jqxfgm-bun-1.3.13 /nix/store/gq0svahwy1bvlfz07kimykr6qlalcjz5-eslint_d-15.0.2 /nix/store/1m05k7xgfnw6jc21xxk5681ni3ar97wf-pkg-config-wrapper-0.29.2'
+export nativeBuildInputs
+declare -a unpackCmdHooks=('_defaultUnpack' )
+DEVSHELL_NAME=' devenv/#fab387| Bun/yellow'
+export DEVSHELL_NAME
+LD='ld'
+export LD
+declare -a propagatedBuildDepFiles=('propagated-build-build-deps' 'propagated-native-build-inputs' 'propagated-build-target-deps' )
+concatStringsSep ()
{
- getRole "$hostOffset"
-}
-_callImplicitHook ()
-{
-
- local def="$1";
- local hookName="$2";
- if declare -F "$hookName" > /dev/null; then
- nixTalkativeLog "calling implicit '$hookName' function hook";
- "$hookName";
- else
- if type -p "$hookName" > /dev/null; then
- nixTalkativeLog "sourcing implicit '$hookName' script hook";
- source "$hookName";
- else
- if [ -n "${!hookName:-}" ]; then
- nixTalkativeLog "evaling implicit '$hookName' string hook";
- eval "${!hookName}";
- else
- return "$def";
- fi;
- fi;
- fi
-}
-_moveToShare ()
-{
-
- if [ -n "$__structuredAttrs" ]; then
- if [ -z "${forceShare-}" ]; then
- forceShare=(man doc info);
- fi;
- else
- forceShare=(${forceShare:-man doc info});
- fi;
- if [[ -z "$out" ]]; then
- return;
- fi;
- for d in "${forceShare[@]}";
- do
- if [ -d "$out/$d" ]; then
- if [ -d "$out/share/$d" ]; then
- echo "both $d/ and share/$d/ exist!";
- else
- echo "moving $out/$d to $out/share/$d";
- mkdir -p $out/share;
- mv $out/$d $out/share/;
- fi;
- fi;
- done
-}
-activatePackage ()
-{
-
- local pkg="$1";
- local -r hostOffset="$2";
- local -r targetOffset="$3";
- (( hostOffset <= targetOffset )) || exit 1;
- if [ -f "$pkg" ]; then
- nixTalkativeLog "sourcing setup hook '$pkg'";
- source "$pkg";
- fi;
- if [[ -z "${strictDeps-}" || "$hostOffset" -le -1 ]]; then
- addToSearchPath _PATH "$pkg/bin";
- fi;
- if (( hostOffset <= -1 )); then
- addToSearchPath _XDG_DATA_DIRS "$pkg/share";
- fi;
- if [[ "$hostOffset" -eq 0 && -d "$pkg/bin" ]]; then
- addToSearchPath _HOST_PATH "$pkg/bin";
- fi;
- if [[ -f "$pkg/nix-support/setup-hook" ]]; then
- nixTalkativeLog "sourcing setup hook '$pkg/nix-support/setup-hook'";
- source "$pkg/nix-support/setup-hook";
- fi
-}
-addToSearchPathWithCustomDelimiter ()
-{
-
- local delimiter="$1";
- local varName="$2";
- local dir="$3";
- if [[ -d "$dir" && "${!varName:+${delimiter}${!varName}${delimiter}}" != *"${delimiter}${dir}${delimiter}"* ]]; then
- export "${varName}=${!varName:+${!varName}${delimiter}}${dir}";
- fi
-}
-getAllOutputNames ()
-{
-
- if [ -n "$__structuredAttrs" ]; then
- echo "${!outputs[*]}";
- else
- echo "$outputs";
- fi
-}
-getRole ()
-{
-
- case $1 in
- -1)
- role_post='_FOR_BUILD'
- ;;
- 0)
- role_post=''
- ;;
- 1)
- role_post='_FOR_TARGET'
- ;;
- *)
- echo "binutils-wrapper-2.46: used as improper sort of dependency" 1>&2;
- return 1
- ;;
- esac
-}
-fixupPhase ()
-{
-
- local output;
- for output in $(getAllOutputNames);
- do
- if [ -e "${!output}" ]; then
- chmod -R u+w,u-s,g-s "${!output}";
- fi;
- done;
- runHook preFixup;
- local output;
- for output in $(getAllOutputNames);
- do
- prefix="${!output}" runHook fixupOutput;
- done;
- recordPropagatedDependencies;
- if [ -n "${setupHook:-}" ]; then
- mkdir -p "${!outputDev}/nix-support";
- substituteAll "$setupHook" "${!outputDev}/nix-support/setup-hook";
- fi;
- if [ -n "${setupHooks:-}" ]; then
- mkdir -p "${!outputDev}/nix-support";
- local hook;
- for hook in ${setupHooks[@]};
- do
- local content;
- consumeEntire content < "$hook";
- substituteAllStream content "file '$hook'" >> "${!outputDev}/nix-support/setup-hook";
- unset -v content;
- done;
- unset -v hook;
- fi;
- if [ -n "${propagatedUserEnvPkgs[*]:-}" ]; then
- mkdir -p "${!outputBin}/nix-support";
- printWords "${propagatedUserEnvPkgs[@]}" > "${!outputBin}/nix-support/propagated-user-env-packages";
- fi;
- runHook postFixup
-}
-_addToEnv ()
-{
-
- local depHostOffset depTargetOffset;
- local pkg;
- for depHostOffset in "${allPlatOffsets[@]}";
- do
- local hookVar="${pkgHookVarVars[depHostOffset + 1]}";
- local pkgsVar="${pkgAccumVarVars[depHostOffset + 1]}";
- for depTargetOffset in "${allPlatOffsets[@]}";
- do
- (( depHostOffset <= depTargetOffset )) || continue;
- local hookRef="${hookVar}[$depTargetOffset - $depHostOffset]";
- if [[ -z "${strictDeps-}" ]]; then
- local visitedPkgs="";
- for pkg in "${pkgsBuildBuild[@]}" "${pkgsBuildHost[@]}" "${pkgsBuildTarget[@]}" "${pkgsHostHost[@]}" "${pkgsHostTarget[@]}" "${pkgsTargetTarget[@]}";
- do
- if [[ "$visitedPkgs" = *"$pkg"* ]]; then
- continue;
- fi;
- runHook "${!hookRef}" "$pkg";
- visitedPkgs+=" $pkg";
- done;
- else
- local pkgsRef="${pkgsVar}[$depTargetOffset - $depHostOffset]";
- local pkgsSlice="${!pkgsRef}[@]";
- for pkg in ${!pkgsSlice+"${!pkgsSlice}"};
- do
- runHook "${!hookRef}" "$pkg";
- done;
- fi;
- done;
- done
-}
-consumeEntire ()
-{
-
- if IFS='' read -r -d '' "$1"; then
- echo "consumeEntire(): ERROR: Input null bytes, won't process" 1>&2;
- return 1;
- fi
-}
-getTargetRoleEnvHook ()
-{
-
- getRole "$depTargetOffset"
-}
-getTargetRoleWrapper ()
-{
-
- case $targetOffset in
- -1)
- export NIX_BINTOOLS_WRAPPER_TARGET_BUILD_x86_64_unknown_linux_gnu=1
- ;;
- 0)
- export NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu=1
- ;;
- 1)
- export NIX_BINTOOLS_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu=1
- ;;
- *)
- echo "binutils-wrapper-2.46: used as improper sort of dependency" 1>&2;
- return 1
- ;;
- esac
-}
-nixVomitLog ()
-{
-
- _nixLogWithLevel 7 "$*"
-}
-isScript ()
-{
-
- local fn="$1";
- local fd;
- local magic;
- exec {fd}< "$fn";
- LANG=C read -r -n 2 -u "$fd" magic;
- exec {fd}>&-;
- if [[ "$magic" =~ \#! ]]; then
- return 0;
- else
- return 1;
- fi
-}
-auditTmpdir ()
-{
-
- local dir="$1";
- [ -e "$dir" ] || return 0;
- echo "checking for references to $TMPDIR/ in $dir...";
- local tmpdir elf_fifo script_fifo;
- tmpdir="$(mktemp -d)";
- elf_fifo="$tmpdir/elf";
- script_fifo="$tmpdir/script";
- mkfifo "$elf_fifo" "$script_fifo";
- ( find "$dir" -type f -not -path '*/.build-id/*' -print0 | while IFS= read -r -d '' file; do
- if isELF "$file"; then
- printf '%s\0' "$file" 1>&3;
- else
- if isScript "$file"; then
- filename=${file##*/};
- dir=${file%/*};
- if [ -e "$dir/.$filename-wrapped" ]; then
- printf '%s\0' "$file" 1>&4;
- fi;
- fi;
- fi;
- done;
- exec 3>&- 4>&- ) 3> "$elf_fifo" 4> "$script_fifo" & ( xargs -0 -r -P "$NIX_BUILD_CORES" -n 1 sh -c '
- if { printf :; patchelf --print-rpath "$1"; } | grep -q -F ":$TMPDIR/"; then
- echo "RPATH of binary $1 contains a forbidden reference to $TMPDIR/"
- exit 1
- fi
- ' _ < "$elf_fifo" ) & local pid_elf=$!;
- local pid_script;
- ( xargs -0 -r -P "$NIX_BUILD_CORES" -n 1 sh -c '
- if grep -q -F "$TMPDIR/" "$1"; then
- echo "wrapper script $1 contains a forbidden reference to $TMPDIR/"
- exit 1
- fi
- ' _ < "$script_fifo" ) & local pid_script=$!;
- wait "$pid_elf" || {
- echo "Some binaries contain forbidden references to $TMPDIR/. Check the error above!";
- exit 1
- };
- wait "$pid_script" || {
- echo "Some scripts contain forbidden references to $TMPDIR/. Check the error above!";
- exit 1
- };
- rm -r "$tmpdir"
-}
-pkgConfigWrapper_addPkgConfigPath ()
-{
-
- local role_post;
- getHostRoleEnvHook;
- addToSearchPath "PKG_CONFIG_PATH${role_post}" "$1/lib/pkgconfig";
- addToSearchPath "PKG_CONFIG_PATH${role_post}" "$1/share/pkgconfig"
-}
-prependToVar ()
-{
-
- local -n nameref="$1";
- local useArray type;
- if [ -n "$__structuredAttrs" ]; then
- useArray=true;
- else
- useArray=false;
- fi;
- if type=$(declare -p "$1" 2> /dev/null); then
+ 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 "prependToVar(): ERROR: trying to use prependToVar on an associative array." 1>&2;
+ echo "concatStringsSep(): ERROR: trying to use concatStringsSep on an associative array." 1>&2;
return 1
;;
-a*)
- useArray=true
+ local IFS="$(printf '\036')"
;;
*)
- useArray=false
+ local IFS=" "
;;
esac;
- fi;
- shift;
- if $useArray; then
- nameref=("$@" ${nameref+"${nameref[@]}"});
- else
- nameref="$* ${nameref-}";
+ local ifs_separated="${nameref[*]}";
+ echo -n "${ifs_separated//"$IFS"/"$sep"}";
fi
}
-runHook ()
+distPhase ()
{
- local hookName="$1";
- shift;
- local hooksSlice="${hookName%Hook}Hooks[@]";
- local hook;
- for hook in "_callImplicitHook 0 $hookName" ${!hooksSlice+"${!hooksSlice}"};
- do
- _logHook "$hookName" "$hook" "$@";
- _eval "$hook" "$@";
- done;
- return 0
-}
-exitHandler ()
-{
-
- exitCode="$?";
- set +e;
- if [ -n "${showBuildStats:-}" ]; then
- read -r -d '' -a buildTimes < <(times);
- echo "build times:";
- echo "user time for the shell ${buildTimes[0]}";
- echo "system time for the shell ${buildTimes[1]}";
- echo "user time for all child processes ${buildTimes[2]}";
- echo "system time for all child processes ${buildTimes[3]}";
- fi;
- if (( "$exitCode" != 0 )); then
- runHook failureHook;
- if [ -n "${succeedOnFailure:-}" ]; then
- echo "build failed with exit code $exitCode (ignored)";
- mkdir -p "$out/nix-support";
- printf "%s" "$exitCode" > "$out/nix-support/failed";
- exit 0;
- fi;
- else
- runHook exitHook;
- fi;
- return "$exitCode"
-}
-runOneHook ()
-{
-
- local hookName="$1";
- shift;
- local hooksSlice="${hookName%Hook}Hooks[@]";
- local hook ret=1;
- for hook in "_callImplicitHook 1 $hookName" ${!hooksSlice+"${!hooksSlice}"};
- do
- _logHook "$hookName" "$hook" "$@";
- if _eval "$hook" "$@"; then
- ret=0;
- break;
- fi;
- done;
- return "$ret"
-}
-showPhaseHeader ()
-{
-
- local phase="$1";
- echo "Running phase: $phase";
- if [[ -z ${NIX_LOG_FD-} ]]; then
- return;
- fi;
- printf "@nix { \"action\": \"setPhase\", \"phase\": \"%s\" }\n" "$phase" >&"$NIX_LOG_FD"
-}
-recordPropagatedDependencies ()
-{
-
- declare -ra flatVars=(depsBuildBuildPropagated propagatedNativeBuildInputs depsBuildTargetPropagated depsHostHostPropagated propagatedBuildInputs depsTargetTargetPropagated);
- declare -ra flatFiles=("${propagatedBuildDepFiles[@]}" "${propagatedHostDepFiles[@]}" "${propagatedTargetDepFiles[@]}");
- local propagatedInputsIndex;
- for propagatedInputsIndex in "${!flatVars[@]}";
- do
- local propagatedInputsSlice="${flatVars[$propagatedInputsIndex]}[@]";
- local propagatedInputsFile="${flatFiles[$propagatedInputsIndex]}";
- [[ -n "${!propagatedInputsSlice}" ]] || continue;
- mkdir -p "${!outputDev}/nix-support";
- printWords ${!propagatedInputsSlice} > "${!outputDev}/nix-support/$propagatedInputsFile";
- done
-}
-runPhase ()
-{
-
- local curPhase="$*";
- if [[ "$curPhase" = unpackPhase && -n "${dontUnpack:-}" ]]; then
- return;
- fi;
- if [[ "$curPhase" = patchPhase && -n "${dontPatch:-}" ]]; then
- return;
- fi;
- if [[ "$curPhase" = configurePhase && -n "${dontConfigure:-}" ]]; then
- return;
- fi;
- if [[ "$curPhase" = buildPhase && -n "${dontBuild:-}" ]]; then
- return;
- fi;
- if [[ "$curPhase" = checkPhase && -z "${doCheck:-}" ]]; then
- return;
- fi;
- if [[ "$curPhase" = installPhase && -n "${dontInstall:-}" ]]; then
- return;
- fi;
- if [[ "$curPhase" = fixupPhase && -n "${dontFixup:-}" ]]; then
- return;
- fi;
- if [[ "$curPhase" = installCheckPhase && -z "${doInstallCheck:-}" ]]; then
- return;
- fi;
- if [[ "$curPhase" = distPhase && -z "${doDist:-}" ]]; then
- return;
- fi;
- showPhaseHeader "$curPhase";
- dumpVars;
- local startTime endTime;
- startTime=$(date +"%s");
- eval "${!curPhase:-$curPhase}";
- endTime=$(date +"%s");
- showPhaseFooter "$curPhase" "$startTime" "$endTime";
- if [ "$curPhase" = unpackPhase ]; then
- [ -n "${sourceRoot:-}" ] && chmod +x -- "${sourceRoot}";
- cd -- "${sourceRoot:-.}";
- fi
-}
-substitute ()
-{
-
- local input="$1";
- local output="$2";
- shift 2;
- if [ ! -f "$input" ]; then
- echo "substitute(): ERROR: file '$input' does not exist" 1>&2;
- return 1;
- fi;
- local content;
- consumeEntire content < "$input";
- if [ -e "$output" ]; then
- chmod +w "$output";
- fi;
- substituteStream content "file '$input'" "$@" > "$output"
-}
-patchELF ()
-{
-
- local dir="$1";
- [ -e "$dir" ] || return 0;
- echo "shrinking RPATHs of ELF executables and libraries in $dir";
- local i;
- while IFS= read -r -d '' i; do
- if [[ "$i" =~ .build-id ]]; then
- continue;
- fi;
- if ! isELF "$i"; then
- continue;
- fi;
- echo "shrinking $i";
- patchelf --shrink-rpath "$i" || true;
- done < <(find "$dir" -type f -print0)
-}
-updateAutotoolsGnuConfigScriptsPhase ()
-{
-
- if [ -n "${dontUpdateAutotoolsGnuConfigScripts-}" ]; then
- return;
- fi;
- for script in config.sub config.guess;
- do
- for f in $(find . -type f -name "$script");
- do
- echo "Updating Autotools / GNU config script to a newer upstream version: $f";
- cp -f "/nix/store/zmvllxxx62iys7vpyg020rni3v29bcxi-gnu-config-2024-01-01/$script" "$f";
- done;
- done
-}
-updateSourceDateEpoch ()
-{
-
- 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 time="${res[0]//\.[0-9]*/}";
- local newestFile="${res[1]}";
- if [ "${time:-0}" -gt "$SOURCE_DATE_EPOCH" ]; then
- echo "setting SOURCE_DATE_EPOCH to timestamp $time of file $newestFile";
- export SOURCE_DATE_EPOCH="$time";
- local now="$(date +%s)";
- if [ "$time" -gt $((now - 60)) ]; then
- echo "warning: file $newestFile may be generated; SOURCE_DATE_EPOCH may be non-deterministic";
- fi;
- fi
-}
-fixLibtool ()
-{
-
- local search_path;
- for flag in $NIX_LDFLAGS;
- do
- case $flag in
- -L*)
- search_path+=" ${flag#-L}"
- ;;
- esac;
- done;
- sed -i "$1" -e "s^eval \(sys_lib_search_path=\).*^\1'${search_path:-}'^" -e 's^eval sys_lib_.+search_path=.*^^'
-}
-_eval ()
-{
-
- if declare -F "$1" > /dev/null 2>&1; then
- "$@";
- else
- eval "$1";
- fi
-}
-buildPhase ()
-{
-
- runHook preBuild;
- if [[ -z "${makeFlags-}" && -z "${makefile:-}" && ! ( -e Makefile || -e makefile || -e GNUmakefile ) ]]; then
- echo "no Makefile or custom buildPhase, doing nothing";
- else
- foundMakefile=1;
- local flagsArray=(${enableParallelBuilding:+-j${NIX_BUILD_CORES}} SHELL="$SHELL");
- concatTo flagsArray makeFlags makeFlagsArray buildFlags buildFlagsArray;
- echoCmd 'build flags' "${flagsArray[@]}";
- make ${makefile:+-f $makefile} "${flagsArray[@]}";
- unset flagsArray;
- fi;
- runHook postBuild
-}
-noBrokenSymlinksInAllOutputs ()
-{
-
- if [[ -z ${dontCheckForBrokenSymlinks-} ]]; then
- for output in $(getAllOutputNames);
- do
- noBrokenSymlinks "${!output}";
- done;
- fi
-}
-substituteStream ()
-{
-
- local var=$1;
- local description=$2;
- shift 2;
- while (( "$#" )); do
- local replace_mode="$1";
- case "$1" in
- --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";
- replacement="$3";
- shift 3;
- if ! [[ "${!var}" == *"$pattern"* ]]; then
- 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;
- eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'
- ;;
- --subst-var)
- local varName="$2";
- shift 2;
- if ! [[ "$varName" =~ ^[a-zA-Z_][a-zA-Z0-9_]*$ ]]; then
- echo "substituteStream() in derivation $name: ERROR: substitution variables must be valid Bash names, \"$varName\" isn't." 1>&2;
- return 1;
- fi;
- if [ -z ${!varName+x} ]; then
- echo "substituteStream() in derivation $name: ERROR: variable \$$varName is unset" 1>&2;
- return 1;
- fi;
- pattern="@$varName@";
- replacement="${!varName}";
- eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'
- ;;
- --subst-var-by)
- pattern="@$2@";
- replacement="$3";
- eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}';
- shift 3
- ;;
- *)
- echo "substituteStream() in derivation $name: ERROR: Invalid command line argument: $1" 1>&2;
- return 1
- ;;
- esac;
- done;
- printf "%s" "${!var}"
-}
-_moveLib64 ()
-{
-
- if [ "${dontMoveLib64-}" = 1 ]; then
- return;
- fi;
- if [ ! -e "$prefix/lib64" -o -L "$prefix/lib64" ]; then
- return;
- fi;
- echo "moving $prefix/lib64/* to $prefix/lib";
- mkdir -p $prefix/lib;
- shopt -s dotglob;
- for i in $prefix/lib64/*;
- do
- mv --no-clobber "$i" $prefix/lib;
- done;
- shopt -u dotglob;
- rmdir $prefix/lib64;
- ln -s lib $prefix/lib64
-}
-genericBuild ()
-{
-
- export GZIP_NO_TIMESTAMPS=1;
- if [ -f "${buildCommandPath:-}" ]; then
- source "$buildCommandPath";
- return;
- fi;
- if [ -n "${buildCommand:-}" ]; then
- eval "$buildCommand";
- return;
- fi;
- definePhases;
- for curPhase in ${phases[*]};
- do
- runPhase "$curPhase";
- done
-}
-_nixLogWithLevel ()
-{
-
- [[ -z ${NIX_LOG_FD-} || ${NIX_DEBUG:-0} -lt ${1:?} ]] && return 0;
- local logLevel;
- case "${1:?}" in
- 0)
- logLevel=ERROR
- ;;
- 1)
- logLevel=WARN
- ;;
- 2)
- logLevel=NOTICE
- ;;
- 3)
- logLevel=INFO
- ;;
- 4)
- logLevel=TALKATIVE
- ;;
- 5)
- logLevel=CHATTY
- ;;
- 6)
- logLevel=DEBUG
- ;;
- 7)
- logLevel=VOMIT
- ;;
- *)
- echo "_nixLogWithLevel: called with invalid log level: ${1:?}" >&"$NIX_LOG_FD";
- return 1
- ;;
- esac;
- local callerName="${FUNCNAME[2]}";
- if [[ $callerName == "_callImplicitHook" ]]; then
- callerName="${hookName:?}";
- fi;
- printf "%s: %s: %s\n" "$logLevel" "$callerName" "${2:?}" >&"$NIX_LOG_FD"
-}
-installPhase ()
-{
-
- runHook preInstall;
- if [[ -z "${makeFlags-}" && -z "${makefile:-}" && ! ( -e Makefile || -e makefile || -e GNUmakefile ) ]]; then
- echo "no Makefile or custom installPhase, doing nothing";
- runHook postInstall;
- return;
- else
- foundMakefile=1;
- fi;
- if [ -n "$prefix" ]; then
- mkdir -p "$prefix";
- fi;
- local flagsArray=(${enableParallelInstalling:+-j${NIX_BUILD_CORES}} SHELL="$SHELL");
- concatTo flagsArray makeFlags makeFlagsArray installFlags installFlagsArray installTargets=install;
- echoCmd 'install flags' "${flagsArray[@]}";
+ runHook preDist;
+ local flagsArray=();
+ concatTo flagsArray distFlags distFlagsArray distTarget=dist;
+ echo 'dist flags: %q' "${flagsArray[@]}";
make ${makefile:+-f $makefile} "${flagsArray[@]}";
- unset flagsArray;
- runHook postInstall
+ if [ "${dontCopyDist:-0}" != 1 ]; then
+ mkdir -p "$out/tarballs";
+ cp -pvd ${tarballs[*]:-*.tar.gz} "$out/tarballs";
+ fi;
+ runHook postDist
}
-isMachO ()
+_assignFirst ()
{
- local fn="$1";
- local fd;
- local magic;
- exec {fd}< "$fn";
- LANG=C read -r -n 4 -u "$fd" magic;
- exec {fd}>&-;
- if [[ "$magic" = $(echo -ne "\xfe\xed\xfa\xcf") || "$magic" = $(echo -ne "\xcf\xfa\xed\xfe") ]]; then
- return 0;
- else
- if [[ "$magic" = $(echo -ne "\xfe\xed\xfa\xce") || "$magic" = $(echo -ne "\xce\xfa\xed\xfe") ]]; then
- return 0;
- else
- if [[ "$magic" = $(echo -ne "\xca\xfe\xba\xbe") || "$magic" = $(echo -ne "\xbe\xba\xfe\xca") ]]; then
- return 0;
- else
- return 1;
- fi;
- fi;
- fi
-}
-_overrideFirst ()
-{
-
- if [ -z "${!1-}" ]; then
- _assignFirst "$@";
- fi
-}
-addEnvHooks ()
-{
-
- local depHostOffset="$1";
+ local varName="$1";
+ local _var;
+ local REMOVE=REMOVE;
shift;
- local pkgHookVarsSlice="${pkgHookVarVars[$depHostOffset + 1]}[@]";
- local pkgHookVar;
- for pkgHookVar in "${!pkgHookVarsSlice}";
+ for _var in "$@";
do
- eval "${pkgHookVar}s"'+=("$@")';
- done
+ if [ -n "${!_var-}" ]; then
+ eval "${varName}"="${_var}";
+ return;
+ fi;
+ done;
+ echo;
+ echo "error: _assignFirst: could not find a non-empty variable whose name to assign to ${varName}.";
+ echo " The following variables were all unset or empty:";
+ echo " $*";
+ if [ -z "${out:-}" ]; then
+ echo ' If you do not want an "out" output in your derivation, make sure to define';
+ echo ' the other specific required outputs. This can be achieved by picking one';
+ echo " of the above as an output.";
+ echo ' You do not have to remove "out" if you want to have a different default';
+ echo ' output, because the first output is taken as a default.';
+ echo;
+ fi;
+ return 1
}
-_moveSystemdUserUnits ()
+_makeSymlinksRelative ()
{
- if [ "${dontMoveSystemdUserUnits:-0}" = 1 ]; then
- return;
- fi;
- if [ ! -e "${prefix:?}/lib/systemd/user" ]; then
- return;
- fi;
- local source="$prefix/lib/systemd/user";
- local target="$prefix/share/systemd/user";
- echo "moving $source/* to $target";
- mkdir -p "$target";
- ( shopt -s dotglob;
- for i in "$source"/*;
+ local prefixes;
+ prefixes=();
+ for output in $(getAllOutputNames);
do
- mv "$i" "$target";
- done );
- rmdir "$source";
- ln -s "$target" "$source"
+ [ ! -e "${!output}" ] && continue;
+ prefixes+=("${!output}");
+ done;
+ find "${prefixes[@]}" -type l -printf '%H\0%p\0' | xargs -0 -n2 -r -P "$NIX_BUILD_CORES" sh -c '
+ output="$1"
+ link="$2"
+
+ linkTarget=$(readlink "$link")
+
+ # only touch links that point inside the same output tree
+ [[ $linkTarget == "$output"/* ]] || exit 0
+
+ if [ ! -e "$linkTarget" ]; then
+ echo "the symlink $link is broken, it points to $linkTarget (which is missing)"
+ fi
+
+ echo "making symlink relative: $link"
+ ln -snrf "$linkTarget" "$link"
+ ' _
}
concatTo ()
{
@@ -1115,100 +416,6 @@ concatTo ()
fi;
done
}
-unpackPhase ()
-{
-
- runHook preUnpack;
- if [ -z "${srcs:-}" ]; then
- if [ -z "${src:-}" ]; then
- echo 'variable $src or $srcs should point to the source';
- exit 1;
- fi;
- srcs="$src";
- fi;
- local -a srcsArray;
- concatTo srcsArray srcs;
- local dirsBefore="";
- for i in *;
- do
- if [ -d "$i" ]; then
- dirsBefore="$dirsBefore $i ";
- fi;
- done;
- for i in "${srcsArray[@]}";
- do
- unpackFile "$i";
- done;
- : "${sourceRoot=}";
- if [ -n "${setSourceRoot:-}" ]; then
- runOneHook setSourceRoot;
- else
- if [ -z "$sourceRoot" ]; then
- for i in *;
- do
- if [ -d "$i" ]; then
- case $dirsBefore in
- *\ $i\ *)
-
- ;;
- *)
- if [ -n "$sourceRoot" ]; then
- echo "unpacker produced multiple directories";
- exit 1;
- fi;
- sourceRoot="$i"
- ;;
- esac;
- fi;
- done;
- fi;
- fi;
- if [ -z "$sourceRoot" ]; then
- echo "unpacker appears to have produced no directories";
- exit 1;
- fi;
- echo "source root is $sourceRoot";
- if [ "${dontMakeSourcesWritable:-0}" != 1 ]; then
- chmod -R u+w -- "$sourceRoot";
- fi;
- runHook postUnpack
-}
-nixErrorLog ()
-{
-
- _nixLogWithLevel 0 "$*"
-}
-nixWarnLog ()
-{
-
- _nixLogWithLevel 1 "$*"
-}
-_allFlags ()
-{
-
- export system pname name version;
- while IFS='' read -r varName; do
- nixTalkativeLog "@${varName}@ -> ${!varName}";
- args+=("--subst-var" "$varName");
- done < <(awk 'BEGIN { for (v in ENVIRON) if (v ~ /^[a-z][a-zA-Z0-9_]*$/) print v }')
-}
-compressManPages ()
-{
-
- local dir="$1";
- if [ -L "$dir"/share ] || [ -L "$dir"/share/man ] || [ ! -d "$dir/share/man" ]; then
- return;
- fi;
- echo "gzipping man pages under $dir/share/man/";
- find "$dir"/share/man/ -type f -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 | xargs -0 -n1 -P "$NIX_BUILD_CORES" gzip -n -f;
- find "$dir"/share/man/ -type l -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 | sort -z | while IFS= read -r -d '' f; do
- local target;
- target="$(readlink -f "$f")";
- if [ -f "$target".gz ]; then
- ln -sf "$target".gz "$f".gz && rm "$f";
- fi;
- done
-}
findInputs ()
{
@@ -1269,13 +476,112 @@ findInputs ()
done;
done
}
-_updateSourceDateEpochFromSourceRoot ()
+getAllOutputNames ()
{
- if [ -n "$sourceRoot" ]; then
- updateSourceDateEpoch "$sourceRoot";
+ if [ -n "$__structuredAttrs" ]; then
+ echo "${!outputs[*]}";
+ else
+ echo "$outputs";
fi
}
+ccWrapper_addCVars ()
+{
+
+ local role_post;
+ getHostRoleEnvHook;
+ local found=;
+ if [ -d "$1/include" ]; then
+ export NIX_CFLAGS_COMPILE${role_post}+=" -isystem $1/include";
+ found=1;
+ fi;
+ if [ -d "$1/Library/Frameworks" ]; then
+ export NIX_CFLAGS_COMPILE${role_post}+=" -iframework $1/Library/Frameworks";
+ found=1;
+ fi;
+ if [[ -n "" && -n ${NIX_STORE:-} && -n $found ]]; then
+ local scrubbed="$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${1#"$NIX_STORE"/*-}";
+ export NIX_CFLAGS_COMPILE${role_post}+=" -fmacro-prefix-map=$1=$scrubbed";
+ fi
+}
+patchPhase ()
+{
+
+ runHook prePatch;
+ local -a patchesArray;
+ concatTo patchesArray patches;
+ local -a flagsArray;
+ concatTo flagsArray patchFlags=-p1;
+ for i in "${patchesArray[@]}";
+ do
+ echo "applying patch $i";
+ local uncompress=cat;
+ case "$i" in
+ *.gz)
+ uncompress="gzip -d"
+ ;;
+ *.bz2)
+ uncompress="bzip2 -d"
+ ;;
+ *.xz)
+ uncompress="xz -d"
+ ;;
+ *.lzma)
+ uncompress="lzma -d"
+ ;;
+ esac;
+ $uncompress < "$i" 2>&1 | patch "${flagsArray[@]}";
+ done;
+ runHook postPatch
+}
+_addToEnv ()
+{
+
+ local depHostOffset depTargetOffset;
+ local pkg;
+ for depHostOffset in "${allPlatOffsets[@]}";
+ do
+ local hookVar="${pkgHookVarVars[depHostOffset + 1]}";
+ local pkgsVar="${pkgAccumVarVars[depHostOffset + 1]}";
+ for depTargetOffset in "${allPlatOffsets[@]}";
+ do
+ (( depHostOffset <= depTargetOffset )) || continue;
+ local hookRef="${hookVar}[$depTargetOffset - $depHostOffset]";
+ if [[ -z "${strictDeps-}" ]]; then
+ local visitedPkgs="";
+ for pkg in "${pkgsBuildBuild[@]}" "${pkgsBuildHost[@]}" "${pkgsBuildTarget[@]}" "${pkgsHostHost[@]}" "${pkgsHostTarget[@]}" "${pkgsTargetTarget[@]}";
+ do
+ if [[ "$visitedPkgs" = *"$pkg"* ]]; then
+ continue;
+ fi;
+ runHook "${!hookRef}" "$pkg";
+ visitedPkgs+=" $pkg";
+ done;
+ else
+ local pkgsRef="${pkgsVar}[$depTargetOffset - $depHostOffset]";
+ local pkgsSlice="${!pkgsRef}[@]";
+ for pkg in ${!pkgsSlice+"${!pkgsSlice}"};
+ do
+ runHook "${!hookRef}" "$pkg";
+ done;
+ fi;
+ done;
+ done
+}
+fixLibtool ()
+{
+
+ local search_path;
+ for flag in $NIX_LDFLAGS;
+ do
+ case $flag in
+ -L*)
+ search_path+=" ${flag#-L}"
+ ;;
+ esac;
+ done;
+ sed -i "$1" -e "s^eval \(sys_lib_search_path=\).*^\1'${search_path:-}'^" -e 's^eval sys_lib_.+search_path=.*^^'
+}
echoCmd ()
{
@@ -1284,6 +590,439 @@ echoCmd ()
printf ' %q' "$@";
echo
}
+printPhases ()
+{
+
+ definePhases;
+ local phase;
+ for phase in ${phases[*]};
+ do
+ printf '%s\n' "$phase";
+ done
+}
+auditTmpdir ()
+{
+
+ local dir="$1";
+ [ -e "$dir" ] || return 0;
+ echo "checking for references to $TMPDIR/ in $dir...";
+ local tmpdir elf_fifo script_fifo;
+ tmpdir="$(mktemp -d)";
+ elf_fifo="$tmpdir/elf";
+ script_fifo="$tmpdir/script";
+ mkfifo "$elf_fifo" "$script_fifo";
+ ( find "$dir" -type f -not -path '*/.build-id/*' -print0 | while IFS= read -r -d '' file; do
+ if isELF "$file"; then
+ printf '%s\0' "$file" 1>&3;
+ else
+ if isScript "$file"; then
+ filename=${file##*/};
+ dir=${file%/*};
+ if [ -e "$dir/.$filename-wrapped" ]; then
+ printf '%s\0' "$file" 1>&4;
+ fi;
+ fi;
+ fi;
+ done;
+ exec 3>&- 4>&- ) 3> "$elf_fifo" 4> "$script_fifo" & ( xargs -0 -r -P "$NIX_BUILD_CORES" -n 1 sh -c '
+ if { printf :; patchelf --print-rpath "$1"; } | grep -q -F ":$TMPDIR/"; then
+ echo "RPATH of binary $1 contains a forbidden reference to $TMPDIR/"
+ exit 1
+ fi
+ ' _ < "$elf_fifo" ) & local pid_elf=$!;
+ local pid_script;
+ ( xargs -0 -r -P "$NIX_BUILD_CORES" -n 1 sh -c '
+ if grep -q -F "$TMPDIR/" "$1"; then
+ echo "wrapper script $1 contains a forbidden reference to $TMPDIR/"
+ exit 1
+ fi
+ ' _ < "$script_fifo" ) & local pid_script=$!;
+ wait "$pid_elf" || {
+ echo "Some binaries contain forbidden references to $TMPDIR/. Check the error above!";
+ exit 1
+ };
+ wait "$pid_script" || {
+ echo "Some scripts contain forbidden references to $TMPDIR/. Check the error above!";
+ exit 1
+ };
+ rm -r "$tmpdir"
+}
+addToSearchPath ()
+{
+
+ addToSearchPathWithCustomDelimiter ":" "$@"
+}
+fixupPhase ()
+{
+
+ local output;
+ for output in $(getAllOutputNames);
+ do
+ if [ -e "${!output}" ]; then
+ chmod -R u+w,u-s,g-s "${!output}";
+ fi;
+ done;
+ runHook preFixup;
+ local output;
+ for output in $(getAllOutputNames);
+ do
+ prefix="${!output}" runHook fixupOutput;
+ done;
+ recordPropagatedDependencies;
+ if [ -n "${setupHook:-}" ]; then
+ mkdir -p "${!outputDev}/nix-support";
+ substituteAll "$setupHook" "${!outputDev}/nix-support/setup-hook";
+ fi;
+ if [ -n "${setupHooks:-}" ]; then
+ mkdir -p "${!outputDev}/nix-support";
+ local hook;
+ for hook in ${setupHooks[@]};
+ do
+ local content;
+ consumeEntire content < "$hook";
+ substituteAllStream content "file '$hook'" >> "${!outputDev}/nix-support/setup-hook";
+ unset -v content;
+ done;
+ unset -v hook;
+ fi;
+ if [ -n "${propagatedUserEnvPkgs[*]:-}" ]; then
+ mkdir -p "${!outputBin}/nix-support";
+ printWords "${propagatedUserEnvPkgs[@]}" > "${!outputBin}/nix-support/propagated-user-env-packages";
+ fi;
+ runHook postFixup
+}
+printWords ()
+{
+
+ (( "$#" > 0 )) || return 0;
+ printf '%s ' "$@"
+}
+nixErrorLog ()
+{
+
+ _nixLogWithLevel 0 "$*"
+}
+runOneHook ()
+{
+
+ local hookName="$1";
+ shift;
+ local hooksSlice="${hookName%Hook}Hooks[@]";
+ local hook ret=1;
+ for hook in "_callImplicitHook 1 $hookName" ${!hooksSlice+"${!hooksSlice}"};
+ do
+ _logHook "$hookName" "$hook" "$@";
+ if _eval "$hook" "$@"; then
+ ret=0;
+ break;
+ fi;
+ done;
+ return "$ret"
+}
+runPhase ()
+{
+
+ local curPhase="$*";
+ if [[ "$curPhase" = unpackPhase && -n "${dontUnpack:-}" ]]; then
+ return;
+ fi;
+ if [[ "$curPhase" = patchPhase && -n "${dontPatch:-}" ]]; then
+ return;
+ fi;
+ if [[ "$curPhase" = configurePhase && -n "${dontConfigure:-}" ]]; then
+ return;
+ fi;
+ if [[ "$curPhase" = buildPhase && -n "${dontBuild:-}" ]]; then
+ return;
+ fi;
+ if [[ "$curPhase" = checkPhase && -z "${doCheck:-}" ]]; then
+ return;
+ fi;
+ if [[ "$curPhase" = installPhase && -n "${dontInstall:-}" ]]; then
+ return;
+ fi;
+ if [[ "$curPhase" = fixupPhase && -n "${dontFixup:-}" ]]; then
+ return;
+ fi;
+ if [[ "$curPhase" = installCheckPhase && -z "${doInstallCheck:-}" ]]; then
+ return;
+ fi;
+ if [[ "$curPhase" = distPhase && -z "${doDist:-}" ]]; then
+ return;
+ fi;
+ showPhaseHeader "$curPhase";
+ dumpVars;
+ local startTime endTime;
+ startTime=$(date +"%s");
+ eval "${!curPhase:-$curPhase}";
+ endTime=$(date +"%s");
+ showPhaseFooter "$curPhase" "$startTime" "$endTime";
+ if [ "$curPhase" = unpackPhase ]; then
+ [ -n "${sourceRoot:-}" ] && chmod +x -- "${sourceRoot}";
+ cd -- "${sourceRoot:-.}";
+ fi
+}
+stripDirs ()
+{
+
+ local cmd="$1";
+ local ranlibCmd="$2";
+ local paths="$3";
+ local stripFlags="$4";
+ local excludeFlags=();
+ local pathsNew=;
+ [ -z "$cmd" ] && echo "stripDirs: Strip command is empty" 1>&2 && exit 1;
+ [ -z "$ranlibCmd" ] && echo "stripDirs: Ranlib command is empty" 1>&2 && exit 1;
+ local pattern;
+ if [ -n "${stripExclude:-}" ]; then
+ for pattern in "${stripExclude[@]}";
+ do
+ excludeFlags+=(-a '!' '(' -name "$pattern" -o -wholename "$prefix/$pattern" ')');
+ done;
+ fi;
+ local p;
+ for p in ${paths};
+ do
+ if [ -e "$prefix/$p" ]; then
+ pathsNew="${pathsNew} $prefix/$p";
+ fi;
+ done;
+ paths=${pathsNew};
+ if [ -n "${paths}" ]; then
+ echo "stripping (with command $cmd and flags $stripFlags) in $paths";
+ local striperr;
+ striperr="$(mktemp --tmpdir="$TMPDIR" 'striperr.XXXXXX')";
+ 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 );
+ rm "$striperr";
+ find $paths -name '*.a' -type f -exec $ranlibCmd '{}' \; 2> /dev/null;
+ fi
+}
+_multioutDevs ()
+{
+
+ if [ "$(getAllOutputNames)" = "out" ] || [ -z "${moveToDev-1}" ]; then
+ return;
+ fi;
+ moveToOutput include "${!outputInclude}";
+ moveToOutput lib/pkgconfig "${!outputDev}";
+ moveToOutput share/pkgconfig "${!outputDev}";
+ moveToOutput lib/cmake "${!outputDev}";
+ moveToOutput share/aclocal "${!outputDev}";
+ for f in "${!outputDev}"/{lib,share}/pkgconfig/*.pc;
+ do
+ echo "Patching '$f' includedir to output ${!outputInclude}";
+ sed -i "/^includedir=/s,=\${prefix},=${!outputInclude}," "$f";
+ done
+}
+_multioutPropagateDev ()
+{
+
+ if [ "$(getAllOutputNames)" = "out" ]; then
+ return;
+ fi;
+ local outputFirst;
+ for outputFirst in $(getAllOutputNames);
+ do
+ break;
+ done;
+ local propagaterOutput="$outputDev";
+ if [ -z "$propagaterOutput" ]; then
+ propagaterOutput="$outputFirst";
+ fi;
+ if [ -z "${propagatedBuildOutputs+1}" ]; then
+ local po_dirty="$outputBin $outputInclude $outputLib";
+ set +o pipefail;
+ propagatedBuildOutputs=`echo "$po_dirty" | tr -s ' ' '\n' | grep -v -F "$propagaterOutput" | sort -u | tr '\n' ' ' `;
+ set -o pipefail;
+ fi;
+ if [ -z "$propagatedBuildOutputs" ]; then
+ return;
+ fi;
+ mkdir -p "${!propagaterOutput}"/nix-support;
+ for output in $propagatedBuildOutputs;
+ do
+ echo -n " ${!output}" >> "${!propagaterOutput}"/nix-support/propagated-build-inputs;
+ done
+}
+substituteAllStream ()
+{
+
+ local -a args=();
+ _allFlags;
+ substituteStream "$1" "$2" "${args[@]}"
+}
+getHostRole ()
+{
+
+ getRole "$hostOffset"
+}
+_multioutConfig ()
+{
+
+ if [ "$(getAllOutputNames)" = "out" ] || [ -z "${setOutputFlags-1}" ]; then
+ return;
+ fi;
+ if [ -z "${shareDocName:-}" ]; then
+ local confScript="${configureScript:-}";
+ if [ -z "$confScript" ] && [ -x ./configure ]; then
+ confScript=./configure;
+ fi;
+ if [ -f "$confScript" ]; then
+ local shareDocName="$(sed -n "s/^PACKAGE_TARNAME='\(.*\)'$/\1/p" < "$confScript")";
+ fi;
+ if [ -z "$shareDocName" ] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_-]'; then
+ shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')";
+ fi;
+ fi;
+ prependToVar configureFlags --bindir="${!outputBin}"/bin --sbindir="${!outputBin}"/sbin --includedir="${!outputInclude}"/include --mandir="${!outputMan}"/share/man --infodir="${!outputInfo}"/share/info --docdir="${!outputDoc}"/share/doc/"${shareDocName}" --libdir="${!outputLib}"/lib --libexecdir="${!outputLib}"/libexec --localedir="${!outputLib}"/share/locale;
+ prependToVar installFlags pkgconfigdir="${!outputDev}"/lib/pkgconfig m4datadir="${!outputDev}"/share/aclocal aclocaldir="${!outputDev}"/share/aclocal
+}
+showPhaseFooter ()
+{
+
+ local phase="$1";
+ local startTime="$2";
+ local endTime="$3";
+ local delta=$(( endTime - startTime ));
+ (( delta < 30 )) && return;
+ local H=$((delta/3600));
+ local M=$((delta%3600/60));
+ local S=$((delta%60));
+ echo -n "$phase completed in ";
+ (( H > 0 )) && echo -n "$H hours ";
+ (( M > 0 )) && echo -n "$M minutes ";
+ echo "$S seconds"
+}
+_addRpathPrefix ()
+{
+
+ if [ "${NIX_NO_SELF_RPATH:-0}" != 1 ]; then
+ export NIX_LDFLAGS="-rpath $1/lib ${NIX_LDFLAGS-}";
+ fi
+}
+_moveLib64 ()
+{
+
+ if [ "${dontMoveLib64-}" = 1 ]; then
+ return;
+ fi;
+ if [ ! -e "$prefix/lib64" -o -L "$prefix/lib64" ]; then
+ return;
+ fi;
+ echo "moving $prefix/lib64/* to $prefix/lib";
+ mkdir -p $prefix/lib;
+ shopt -s dotglob;
+ for i in $prefix/lib64/*;
+ do
+ mv --no-clobber "$i" $prefix/lib;
+ done;
+ shopt -u dotglob;
+ rmdir $prefix/lib64;
+ ln -s lib $prefix/lib64
+}
+substituteAllInPlace ()
+{
+
+ local fileName="$1";
+ shift;
+ substituteAll "$fileName" "$fileName" "$@"
+}
+installCheckPhase ()
+{
+
+ runHook preInstallCheck;
+ if [[ -z "${foundMakefile:-}" ]]; then
+ echo "no Makefile or custom installCheckPhase, doing nothing";
+ else
+ if [[ -z "${installCheckTarget:-}" ]] && ! make -n ${makefile:+-f $makefile} "${installCheckTarget:-installcheck}" > /dev/null 2>&1; then
+ echo "no installcheck target in ${makefile:-Makefile}, doing nothing";
+ else
+ local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL="$SHELL");
+ concatTo flagsArray makeFlags makeFlagsArray installCheckFlags installCheckFlagsArray installCheckTarget=installcheck;
+ echoCmd 'installcheck flags' "${flagsArray[@]}";
+ make ${makefile:+-f $makefile} "${flagsArray[@]}";
+ unset flagsArray;
+ fi;
+ fi;
+ runHook postInstallCheck
+}
+configurePhase ()
+{
+
+ runHook preConfigure;
+ : "${configureScript=}";
+ if [[ -z "$configureScript" && -x ./configure ]]; then
+ configureScript=./configure;
+ fi;
+ if [ -z "${dontFixLibtool:-}" ]; then
+ export lt_cv_deplibs_check_method="${lt_cv_deplibs_check_method-pass_all}";
+ local i;
+ find . -iname "ltmain.sh" -print0 | while IFS='' read -r -d '' i; do
+ echo "fixing libtool script $i";
+ fixLibtool "$i";
+ done;
+ CONFIGURE_MTIME_REFERENCE=$(mktemp configure.mtime.reference.XXXXXX);
+ find . -executable -type f -name configure -exec grep -l 'GNU Libtool is free software; you can redistribute it and/or modify' {} \; -exec touch -r {} "$CONFIGURE_MTIME_REFERENCE" \; -exec sed -i s_/usr/bin/file_file_g {} \; -exec touch -r "$CONFIGURE_MTIME_REFERENCE" {} \;;
+ rm -f "$CONFIGURE_MTIME_REFERENCE";
+ fi;
+ if [[ -z "${dontAddPrefix:-}" && -n "$prefix" ]]; then
+ local -r prefixKeyOrDefault="${prefixKey:---prefix=}";
+ if [ "${prefixKeyOrDefault: -1}" = " " ]; then
+ prependToVar configureFlags "$prefix";
+ prependToVar configureFlags "${prefixKeyOrDefault::-1}";
+ else
+ prependToVar configureFlags "$prefixKeyOrDefault$prefix";
+ fi;
+ fi;
+ if [[ -f "$configureScript" ]]; then
+ if [ -z "${dontAddDisableDepTrack:-}" ]; then
+ if grep -q dependency-tracking "$configureScript"; then
+ prependToVar configureFlags --disable-dependency-tracking;
+ fi;
+ fi;
+ if [ -z "${dontDisableStatic:-}" ]; then
+ if grep -q enable-static "$configureScript"; then
+ prependToVar configureFlags --disable-static;
+ fi;
+ fi;
+ if [ -z "${dontPatchShebangsInConfigure:-}" ]; then
+ patchShebangs --build "$configureScript";
+ fi;
+ fi;
+ if [ -n "$configureScript" ]; then
+ local -a flagsArray;
+ concatTo flagsArray configureFlags configureFlagsArray;
+ echoCmd 'configure flags' "${flagsArray[@]}";
+ $configureScript "${flagsArray[@]}";
+ unset flagsArray;
+ else
+ echo "no configure script, doing nothing";
+ fi;
+ runHook postConfigure
+}
+_callImplicitHook ()
+{
+
+ local def="$1";
+ local hookName="$2";
+ if declare -F "$hookName" > /dev/null; then
+ nixTalkativeLog "calling implicit '$hookName' function hook";
+ "$hookName";
+ else
+ if type -p "$hookName" > /dev/null; then
+ nixTalkativeLog "sourcing implicit '$hookName' script hook";
+ source "$hookName";
+ else
+ if [ -n "${!hookName:-}" ]; then
+ nixTalkativeLog "evaling implicit '$hookName' string hook";
+ eval "${!hookName}";
+ else
+ return "$def";
+ fi;
+ fi;
+ fi
+}
moveToOutput ()
{
@@ -1326,35 +1065,6 @@ moveToOutput ()
done;
done
}
-ccWrapper_addCVars ()
-{
-
- local role_post;
- getHostRoleEnvHook;
- local found=;
- if [ -d "$1/include" ]; then
- export NIX_CFLAGS_COMPILE${role_post}+=" -isystem $1/include";
- found=1;
- fi;
- if [ -d "$1/Library/Frameworks" ]; then
- export NIX_CFLAGS_COMPILE${role_post}+=" -iframework $1/Library/Frameworks";
- found=1;
- fi;
- if [[ -n "" && -n ${NIX_STORE:-} && -n $found ]]; then
- local scrubbed="$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-${1#"$NIX_STORE"/*-}";
- export NIX_CFLAGS_COMPILE${role_post}+=" -fmacro-prefix-map=$1=$scrubbed";
- fi
-}
-nixLog ()
-{
-
- [[ -z ${NIX_LOG_FD-} ]] && return 0;
- local callerName="${FUNCNAME[1]}";
- if [[ $callerName == "_callImplicitHook" ]]; then
- callerName="${hookName:?}";
- fi;
- printf "%s: %s\n" "$callerName" "$*" >&"$NIX_LOG_FD"
-}
substituteInPlace ()
{
@@ -1376,10 +1086,500 @@ substituteInPlace ()
substitute "$file" "$file" "$@";
done
}
-nixDebugLog ()
+definePhases ()
{
- _nixLogWithLevel 6 "$*"
+ if [ -z "${phases[*]:-}" ]; then
+ phases="${prePhases[*]:-} unpackPhase patchPhase ${preConfigurePhases[*]:-} configurePhase ${preBuildPhases[*]:-} buildPhase checkPhase ${preInstallPhases[*]:-} installPhase ${preFixupPhases[*]:-} fixupPhase installCheckPhase ${preDistPhases[*]:-} distPhase ${postPhases[*]:-}";
+ fi
+}
+_pruneLibtoolFiles ()
+{
+
+ if [ "${dontPruneLibtoolFiles-}" ] || [ ! -e "$prefix" ]; then
+ return;
+ fi;
+ find "$prefix" -type f -name '*.la' -exec grep -q '^# Generated by .*libtool' {} \; -exec grep -q "^old_library=''" {} \; -exec sed -i {} -e "/^dependency_libs='[^']/ c dependency_libs='' #pruned" \;
+}
+_moveSystemdUserUnits ()
+{
+
+ if [ "${dontMoveSystemdUserUnits:-0}" = 1 ]; then
+ return;
+ fi;
+ if [ ! -e "${prefix:?}/lib/systemd/user" ]; then
+ return;
+ fi;
+ local source="$prefix/lib/systemd/user";
+ local target="$prefix/share/systemd/user";
+ echo "moving $source/* to $target";
+ mkdir -p "$target";
+ ( shopt -s dotglob;
+ for i in "$source"/*;
+ do
+ mv "$i" "$target";
+ done );
+ rmdir "$source";
+ ln -s "$target" "$source"
+}
+activatePackage ()
+{
+
+ local pkg="$1";
+ local -r hostOffset="$2";
+ local -r targetOffset="$3";
+ (( hostOffset <= targetOffset )) || exit 1;
+ if [ -f "$pkg" ]; then
+ nixTalkativeLog "sourcing setup hook '$pkg'";
+ source "$pkg";
+ fi;
+ if [[ -z "${strictDeps-}" || "$hostOffset" -le -1 ]]; then
+ addToSearchPath _PATH "$pkg/bin";
+ fi;
+ if (( hostOffset <= -1 )); then
+ addToSearchPath _XDG_DATA_DIRS "$pkg/share";
+ fi;
+ if [[ "$hostOffset" -eq 0 && -d "$pkg/bin" ]]; then
+ addToSearchPath _HOST_PATH "$pkg/bin";
+ fi;
+ if [[ -f "$pkg/nix-support/setup-hook" ]]; then
+ nixTalkativeLog "sourcing setup hook '$pkg/nix-support/setup-hook'";
+ source "$pkg/nix-support/setup-hook";
+ fi
+}
+getTargetRole ()
+{
+
+ getRole "$targetOffset"
+}
+getHostRoleEnvHook ()
+{
+
+ getRole "$depHostOffset"
+}
+mapOffset ()
+{
+
+ local -r inputOffset="$1";
+ local -n outputOffset="$2";
+ if (( inputOffset <= 0 )); then
+ outputOffset=$((inputOffset + hostOffset));
+ else
+ outputOffset=$((inputOffset - 1 + targetOffset));
+ fi
+}
+stripHash ()
+{
+
+ local strippedName casematchOpt=0;
+ strippedName="$(basename -- "$1")";
+ shopt -q nocasematch && casematchOpt=1;
+ shopt -u nocasematch;
+ if [[ "$strippedName" =~ ^[a-z0-9]{32}- ]]; then
+ echo "${strippedName:33}";
+ else
+ echo "$strippedName";
+ fi;
+ if (( casematchOpt )); then
+ shopt -s nocasematch;
+ fi
+}
+_moveToShare ()
+{
+
+ if [ -n "$__structuredAttrs" ]; then
+ if [ -z "${forceShare-}" ]; then
+ forceShare=(man doc info);
+ fi;
+ else
+ forceShare=(${forceShare:-man doc info});
+ fi;
+ if [[ -z "$out" ]]; then
+ return;
+ fi;
+ for d in "${forceShare[@]}";
+ do
+ if [ -d "$out/$d" ]; then
+ if [ -d "$out/share/$d" ]; then
+ echo "both $d/ and share/$d/ exist!";
+ else
+ echo "moving $out/$d to $out/share/$d";
+ mkdir -p $out/share;
+ mv $out/$d $out/share/;
+ fi;
+ fi;
+ done
+}
+runHook ()
+{
+
+ local hookName="$1";
+ shift;
+ local hooksSlice="${hookName%Hook}Hooks[@]";
+ local hook;
+ for hook in "_callImplicitHook 0 $hookName" ${!hooksSlice+"${!hooksSlice}"};
+ do
+ _logHook "$hookName" "$hook" "$@";
+ _eval "$hook" "$@";
+ done;
+ return 0
+}
+checkPhase ()
+{
+
+ runHook preCheck;
+ if [[ -z "${foundMakefile:-}" ]]; then
+ echo "no Makefile or custom checkPhase, doing nothing";
+ runHook postCheck;
+ return;
+ fi;
+ if [[ -z "${checkTarget:-}" ]]; then
+ if make -n ${makefile:+-f $makefile} check > /dev/null 2>&1; then
+ checkTarget="check";
+ else
+ if make -n ${makefile:+-f $makefile} test > /dev/null 2>&1; then
+ checkTarget="test";
+ fi;
+ fi;
+ fi;
+ if [[ -z "${checkTarget:-}" ]]; then
+ echo "no check/test target in ${makefile:-Makefile}, doing nothing";
+ else
+ local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL="$SHELL");
+ concatTo flagsArray makeFlags makeFlagsArray checkFlags=VERBOSE=y checkFlagsArray checkTarget;
+ echoCmd 'check flags' "${flagsArray[@]}";
+ make ${makefile:+-f $makefile} "${flagsArray[@]}";
+ unset flagsArray;
+ fi;
+ runHook postCheck
+}
+_nixLogWithLevel ()
+{
+
+ [[ -z ${NIX_LOG_FD-} || ${NIX_DEBUG:-0} -lt ${1:?} ]] && return 0;
+ local logLevel;
+ case "${1:?}" in
+ 0)
+ logLevel=ERROR
+ ;;
+ 1)
+ logLevel=WARN
+ ;;
+ 2)
+ logLevel=NOTICE
+ ;;
+ 3)
+ logLevel=INFO
+ ;;
+ 4)
+ logLevel=TALKATIVE
+ ;;
+ 5)
+ logLevel=CHATTY
+ ;;
+ 6)
+ logLevel=DEBUG
+ ;;
+ 7)
+ logLevel=VOMIT
+ ;;
+ *)
+ echo "_nixLogWithLevel: called with invalid log level: ${1:?}" >&"$NIX_LOG_FD";
+ return 1
+ ;;
+ esac;
+ local callerName="${FUNCNAME[2]}";
+ if [[ $callerName == "_callImplicitHook" ]]; then
+ callerName="${hookName:?}";
+ fi;
+ printf "%s: %s: %s\n" "$logLevel" "$callerName" "${2:?}" >&"$NIX_LOG_FD"
+}
+nixLog ()
+{
+
+ [[ -z ${NIX_LOG_FD-} ]] && return 0;
+ local callerName="${FUNCNAME[1]}";
+ if [[ $callerName == "_callImplicitHook" ]]; then
+ callerName="${hookName:?}";
+ fi;
+ printf "%s: %s\n" "$callerName" "$*" >&"$NIX_LOG_FD"
+}
+_updateSourceDateEpochFromSourceRoot ()
+{
+
+ if [ -n "$sourceRoot" ]; then
+ updateSourceDateEpoch "$sourceRoot";
+ fi
+}
+buildPhase ()
+{
+
+ runHook preBuild;
+ if [[ -z "${makeFlags-}" && -z "${makefile:-}" && ! ( -e Makefile || -e makefile || -e GNUmakefile ) ]]; then
+ echo "no Makefile or custom buildPhase, doing nothing";
+ else
+ foundMakefile=1;
+ local flagsArray=(${enableParallelBuilding:+-j${NIX_BUILD_CORES}} SHELL="$SHELL");
+ concatTo flagsArray makeFlags makeFlagsArray buildFlags buildFlagsArray;
+ echoCmd 'build flags' "${flagsArray[@]}";
+ make ${makefile:+-f $makefile} "${flagsArray[@]}";
+ unset flagsArray;
+ fi;
+ runHook postBuild
+}
+appendToVar ()
+{
+
+ local -n nameref="$1";
+ local useArray type;
+ if [ -n "$__structuredAttrs" ]; then
+ useArray=true;
+ else
+ useArray=false;
+ fi;
+ if type=$(declare -p "$1" 2> /dev/null); then
+ case "${type#* }" in
+ -A*)
+ echo "appendToVar(): ERROR: trying to use appendToVar on an associative array, use variable+=([\"X\"]=\"Y\") instead." 1>&2;
+ return 1
+ ;;
+ -a*)
+ useArray=true
+ ;;
+ *)
+ useArray=false
+ ;;
+ esac;
+ fi;
+ shift;
+ if $useArray; then
+ nameref=(${nameref+"${nameref[@]}"} "$@");
+ else
+ nameref="${nameref-} $*";
+ fi
+}
+bintoolsWrapper_addLDVars ()
+{
+
+ local role_post;
+ getHostRoleEnvHook;
+ if [[ -d "$1/lib64" && ! -L "$1/lib64" ]]; then
+ export NIX_LDFLAGS${role_post}+=" -L$1/lib64";
+ fi;
+ if [[ -d "$1/lib" ]]; then
+ local -a glob=($1/lib/lib*);
+ if [ "${#glob[*]}" -gt 0 ]; then
+ export NIX_LDFLAGS${role_post}+=" -L$1/lib";
+ fi;
+ fi
+}
+_activatePkgs ()
+{
+
+ local hostOffset targetOffset;
+ local pkg;
+ for hostOffset in "${allPlatOffsets[@]}";
+ do
+ local pkgsVar="${pkgAccumVarVars[hostOffset + 1]}";
+ for targetOffset in "${allPlatOffsets[@]}";
+ do
+ (( hostOffset <= targetOffset )) || continue;
+ local pkgsRef="${pkgsVar}[$targetOffset - $hostOffset]";
+ local pkgsSlice="${!pkgsRef}[@]";
+ for pkg in ${!pkgsSlice+"${!pkgsSlice}"};
+ do
+ activatePackage "$pkg" "$hostOffset" "$targetOffset";
+ done;
+ done;
+ done
+}
+nixInfoLog ()
+{
+
+ _nixLogWithLevel 3 "$*"
+}
+showPhaseHeader ()
+{
+
+ local phase="$1";
+ echo "Running phase: $phase";
+ if [[ -z ${NIX_LOG_FD-} ]]; then
+ return;
+ fi;
+ printf "@nix { \"action\": \"setPhase\", \"phase\": \"%s\" }\n" "$phase" >&"$NIX_LOG_FD"
+}
+_multioutDocs ()
+{
+
+ local REMOVE=REMOVE;
+ moveToOutput share/info "${!outputInfo}";
+ moveToOutput share/doc "${!outputDoc}";
+ moveToOutput share/gtk-doc "${!outputDevdoc}";
+ moveToOutput share/devhelp/books "${!outputDevdoc}";
+ moveToOutput share/man "${!outputMan}";
+ moveToOutput share/man/man3 "${!outputDevman}"
+}
+substitute ()
+{
+
+ local input="$1";
+ local output="$2";
+ shift 2;
+ if [ ! -f "$input" ]; then
+ echo "substitute(): ERROR: file '$input' does not exist" 1>&2;
+ return 1;
+ fi;
+ local content;
+ consumeEntire content < "$input";
+ if [ -e "$output" ]; then
+ chmod +w "$output";
+ fi;
+ substituteStream content "file '$input'" "$@" > "$output"
+}
+updateAutotoolsGnuConfigScriptsPhase ()
+{
+
+ if [ -n "${dontUpdateAutotoolsGnuConfigScripts-}" ]; then
+ return;
+ fi;
+ for script in config.sub config.guess;
+ do
+ for f in $(find . -type f -name "$script");
+ do
+ echo "Updating Autotools / GNU config script to a newer upstream version: $f";
+ cp -f "/nix/store/zmvllxxx62iys7vpyg020rni3v29bcxi-gnu-config-2024-01-01/$script" "$f";
+ done;
+ done
+}
+installPhase ()
+{
+
+ runHook preInstall;
+ if [[ -z "${makeFlags-}" && -z "${makefile:-}" && ! ( -e Makefile || -e makefile || -e GNUmakefile ) ]]; then
+ echo "no Makefile or custom installPhase, doing nothing";
+ runHook postInstall;
+ return;
+ else
+ foundMakefile=1;
+ fi;
+ if [ -n "$prefix" ]; then
+ mkdir -p "$prefix";
+ fi;
+ local flagsArray=(${enableParallelInstalling:+-j${NIX_BUILD_CORES}} SHELL="$SHELL");
+ concatTo flagsArray makeFlags makeFlagsArray installFlags installFlagsArray installTargets=install;
+ echoCmd 'install flags' "${flagsArray[@]}";
+ make ${makefile:+-f $makefile} "${flagsArray[@]}";
+ unset flagsArray;
+ runHook postInstall
+}
+updateSourceDateEpoch ()
+{
+
+ 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 time="${res[0]//\.[0-9]*/}";
+ local newestFile="${res[1]}";
+ if [ "${time:-0}" -gt "$SOURCE_DATE_EPOCH" ]; then
+ echo "setting SOURCE_DATE_EPOCH to timestamp $time of file $newestFile";
+ export SOURCE_DATE_EPOCH="$time";
+ local now="$(date +%s)";
+ if [ "$time" -gt $((now - 60)) ]; then
+ echo "warning: file $newestFile may be generated; SOURCE_DATE_EPOCH may be non-deterministic";
+ fi;
+ fi
+}
+prependToVar ()
+{
+
+ local -n nameref="$1";
+ local useArray type;
+ if [ -n "$__structuredAttrs" ]; then
+ useArray=true;
+ else
+ useArray=false;
+ fi;
+ if type=$(declare -p "$1" 2> /dev/null); then
+ case "${type#* }" in
+ -A*)
+ echo "prependToVar(): ERROR: trying to use prependToVar on an associative array." 1>&2;
+ return 1
+ ;;
+ -a*)
+ useArray=true
+ ;;
+ *)
+ useArray=false
+ ;;
+ esac;
+ fi;
+ shift;
+ if $useArray; then
+ nameref=("$@" ${nameref+"${nameref[@]}"});
+ else
+ nameref="$* ${nameref-}";
+ fi
+}
+substituteStream ()
+{
+
+ local var=$1;
+ local description=$2;
+ shift 2;
+ while (( "$#" )); do
+ local replace_mode="$1";
+ case "$1" in
+ --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";
+ replacement="$3";
+ shift 3;
+ if ! [[ "${!var}" == *"$pattern"* ]]; then
+ 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;
+ eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'
+ ;;
+ --subst-var)
+ local varName="$2";
+ shift 2;
+ if ! [[ "$varName" =~ ^[a-zA-Z_][a-zA-Z0-9_]*$ ]]; then
+ echo "substituteStream() in derivation $name: ERROR: substitution variables must be valid Bash names, \"$varName\" isn't." 1>&2;
+ return 1;
+ fi;
+ if [ -z ${!varName+x} ]; then
+ echo "substituteStream() in derivation $name: ERROR: variable \$$varName is unset" 1>&2;
+ return 1;
+ fi;
+ pattern="@$varName@";
+ replacement="${!varName}";
+ eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'
+ ;;
+ --subst-var-by)
+ pattern="@$2@";
+ replacement="$3";
+ eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}';
+ shift 3
+ ;;
+ *)
+ echo "substituteStream() in derivation $name: ERROR: Invalid command line argument: $1" 1>&2;
+ return 1
+ ;;
+ esac;
+ done;
+ printf "%s" "${!var}"
}
noBrokenSymlinks ()
{
@@ -1436,237 +1636,6 @@ noBrokenSymlinks ()
fi;
return 0
}
-dumpVars ()
-{
-
- if [[ "${noDumpEnvVars:-0}" != 1 && -d "$NIX_BUILD_TOP" ]]; then
- local old_umask;
- old_umask=$(umask);
- umask 0077;
- export 2> /dev/null > "$NIX_BUILD_TOP/env-vars";
- umask "$old_umask";
- fi
-}
-showPhaseFooter ()
-{
-
- local phase="$1";
- local startTime="$2";
- local endTime="$3";
- local delta=$(( endTime - startTime ));
- (( delta < 30 )) && return;
- local H=$((delta/3600));
- local M=$((delta%3600/60));
- local S=$((delta%60));
- echo -n "$phase completed in ";
- (( H > 0 )) && echo -n "$H hours ";
- (( M > 0 )) && echo -n "$M minutes ";
- echo "$S seconds"
-}
-_defaultUnpack ()
-{
-
- local fn="$1";
- local destination;
- if [ -d "$fn" ]; then
- destination="$(stripHash "$fn")";
- if [ -e "$destination" ]; then
- echo "Cannot copy $fn to $destination: destination already exists!";
- echo "Did you specify two \"srcs\" with the same \"name\"?";
- return 1;
- fi;
- cp -r --preserve=timestamps --reflink=auto -- "$fn" "$destination";
- else
- case "$fn" in
- *.tar.xz | *.tar.lzma | *.txz)
- ( XZ_OPT="--threads=$NIX_BUILD_CORES" xz -d < "$fn";
- true ) | tar xf - --mode=+w --warning=no-timestamp
- ;;
- *.tar | *.tar.* | *.tgz | *.tbz2 | *.tbz)
- tar xf "$fn" --mode=+w --warning=no-timestamp
- ;;
- *)
- return 1
- ;;
- esac;
- fi
-}
-_moveSbin ()
-{
-
- if [ "${dontMoveSbin-}" = 1 ]; then
- return;
- fi;
- if [ ! -e "$prefix/sbin" -o -L "$prefix/sbin" ]; then
- return;
- fi;
- echo "moving $prefix/sbin/* to $prefix/bin";
- mkdir -p $prefix/bin;
- shopt -s dotglob;
- for i in $prefix/sbin/*;
- do
- mv "$i" $prefix/bin;
- done;
- shopt -u dotglob;
- rmdir $prefix/sbin;
- ln -s bin $prefix/sbin
-}
-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="$(printf '\036')"
- ;;
- *)
- local IFS=" "
- ;;
- esac;
- local ifs_separated="${nameref[*]}";
- echo -n "${ifs_separated//"$IFS"/"$sep"}";
- fi
-}
-mapOffset ()
-{
-
- local -r inputOffset="$1";
- local -n outputOffset="$2";
- if (( inputOffset <= 0 )); then
- outputOffset=$((inputOffset + hostOffset));
- else
- outputOffset=$((inputOffset - 1 + targetOffset));
- fi
-}
-checkPhase ()
-{
-
- runHook preCheck;
- if [[ -z "${foundMakefile:-}" ]]; then
- echo "no Makefile or custom checkPhase, doing nothing";
- runHook postCheck;
- return;
- fi;
- if [[ -z "${checkTarget:-}" ]]; then
- if make -n ${makefile:+-f $makefile} check > /dev/null 2>&1; then
- checkTarget="check";
- else
- if make -n ${makefile:+-f $makefile} test > /dev/null 2>&1; then
- checkTarget="test";
- fi;
- fi;
- fi;
- if [[ -z "${checkTarget:-}" ]]; then
- echo "no check/test target in ${makefile:-Makefile}, doing nothing";
- else
- local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL="$SHELL");
- concatTo flagsArray makeFlags makeFlagsArray checkFlags=VERBOSE=y checkFlagsArray checkTarget;
- echoCmd 'check flags' "${flagsArray[@]}";
- make ${makefile:+-f $makefile} "${flagsArray[@]}";
- unset flagsArray;
- fi;
- runHook postCheck
-}
-definePhases ()
-{
-
- if [ -z "${phases[*]:-}" ]; then
- phases="${prePhases[*]:-} unpackPhase patchPhase ${preConfigurePhases[*]:-} configurePhase ${preBuildPhases[*]:-} buildPhase checkPhase ${preInstallPhases[*]:-} installPhase ${preFixupPhases[*]:-} fixupPhase installCheckPhase ${preDistPhases[*]:-} distPhase ${postPhases[*]:-}";
- fi
-}
-nixChattyLog ()
-{
-
- _nixLogWithLevel 5 "$*"
-}
-substituteAll ()
-{
-
- local input="$1";
- local output="$2";
- local -a args=();
- _allFlags;
- substitute "$input" "$output" "${args[@]}"
-}
-bintoolsWrapper_addLDVars ()
-{
-
- local role_post;
- getHostRoleEnvHook;
- if [[ -d "$1/lib64" && ! -L "$1/lib64" ]]; then
- export NIX_LDFLAGS${role_post}+=" -L$1/lib64";
- fi;
- if [[ -d "$1/lib" ]]; then
- local -a glob=($1/lib/lib*);
- if [ "${#glob[*]}" -gt 0 ]; then
- export NIX_LDFLAGS${role_post}+=" -L$1/lib";
- fi;
- fi
-}
-_pruneLibtoolFiles ()
-{
-
- if [ "${dontPruneLibtoolFiles-}" ] || [ ! -e "$prefix" ]; then
- return;
- fi;
- find "$prefix" -type f -name '*.la' -exec grep -q '^# Generated by .*libtool' {} \; -exec grep -q "^old_library=''" {} \; -exec sed -i {} -e "/^dependency_libs='[^']/ c dependency_libs='' #pruned" \;
-}
-printLines ()
-{
-
- (( "$#" > 0 )) || return 0;
- printf '%s\n' "$@"
-}
-patchPhase ()
-{
-
- runHook prePatch;
- local -a patchesArray;
- concatTo patchesArray patches;
- local -a flagsArray;
- concatTo flagsArray patchFlags=-p1;
- for i in "${patchesArray[@]}";
- do
- echo "applying patch $i";
- local uncompress=cat;
- case "$i" in
- *.gz)
- uncompress="gzip -d"
- ;;
- *.bz2)
- uncompress="bzip2 -d"
- ;;
- *.xz)
- uncompress="xz -d"
- ;;
- *.lzma)
- uncompress="lzma -d"
- ;;
- esac;
- $uncompress < "$i" 2>&1 | patch "${flagsArray[@]}";
- done;
- runHook postPatch
-}
-addToSearchPath ()
-{
-
- addToSearchPathWithCustomDelimiter ":" "$@"
-}
-substituteAllStream ()
-{
-
- local -a args=();
- _allFlags;
- substituteStream "$1" "$2" "${args[@]}"
-}
_logHook ()
{
@@ -1701,42 +1670,15 @@ _logHook ()
fi;
fi
}
-_multioutDocs ()
+unpackFile ()
{
- local REMOVE=REMOVE;
- moveToOutput share/info "${!outputInfo}";
- moveToOutput share/doc "${!outputDoc}";
- moveToOutput share/gtk-doc "${!outputDevdoc}";
- moveToOutput share/devhelp/books "${!outputDevdoc}";
- moveToOutput share/man "${!outputMan}";
- moveToOutput share/man/man3 "${!outputDevman}"
-}
-getHostRoleEnvHook ()
-{
-
- getRole "$depHostOffset"
-}
-_multioutConfig ()
-{
-
- if [ "$(getAllOutputNames)" = "out" ] || [ -z "${setOutputFlags-1}" ]; then
- return;
- fi;
- if [ -z "${shareDocName:-}" ]; then
- local confScript="${configureScript:-}";
- if [ -z "$confScript" ] && [ -x ./configure ]; then
- confScript=./configure;
- fi;
- if [ -f "$confScript" ]; then
- local shareDocName="$(sed -n "s/^PACKAGE_TARNAME='\(.*\)'$/\1/p" < "$confScript")";
- fi;
- if [ -z "$shareDocName" ] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_-]'; then
- shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')";
- fi;
- fi;
- prependToVar configureFlags --bindir="${!outputBin}"/bin --sbindir="${!outputBin}"/sbin --includedir="${!outputInclude}"/include --mandir="${!outputMan}"/share/man --infodir="${!outputInfo}"/share/info --docdir="${!outputDoc}"/share/doc/"${shareDocName}" --libdir="${!outputLib}"/lib --libexecdir="${!outputLib}"/libexec --localedir="${!outputLib}"/share/locale;
- prependToVar installFlags pkgconfigdir="${!outputDev}"/lib/pkgconfig m4datadir="${!outputDev}"/share/aclocal aclocaldir="${!outputDev}"/share/aclocal
+ curSrc="$1";
+ echo "unpacking source archive $curSrc";
+ if ! runOneHook unpackCmd "$curSrc"; then
+ echo "do not know how to unpack source archive $curSrc";
+ exit 1;
+ fi
}
patchShebangsAuto ()
{
@@ -1749,6 +1691,24 @@ patchShebangsAuto ()
fi;
fi
}
+_eval ()
+{
+
+ if declare -F "$1" > /dev/null 2>&1; then
+ "$@";
+ else
+ eval "$1";
+ fi
+}
+substituteAll ()
+{
+
+ local input="$1";
+ local output="$2";
+ local -a args=();
+ _allFlags;
+ substitute "$input" "$output" "${args[@]}"
+}
_doStrip ()
{
@@ -1776,19 +1736,236 @@ _doStrip ()
stripDirs "$stripCmd" "$ranlibCmd" "$allDirList" "${stripAllFlags[*]:--s -p}";
done
}
-distPhase ()
+_moveSbin ()
{
- runHook preDist;
- local flagsArray=();
- concatTo flagsArray distFlags distFlagsArray distTarget=dist;
- echo 'dist flags: %q' "${flagsArray[@]}";
- make ${makefile:+-f $makefile} "${flagsArray[@]}";
- if [ "${dontCopyDist:-0}" != 1 ]; then
- mkdir -p "$out/tarballs";
- cp -pvd ${tarballs[*]:-*.tar.gz} "$out/tarballs";
+ if [ "${dontMoveSbin-}" = 1 ]; then
+ return;
fi;
- runHook postDist
+ if [ ! -e "$prefix/sbin" -o -L "$prefix/sbin" ]; then
+ return;
+ fi;
+ echo "moving $prefix/sbin/* to $prefix/bin";
+ mkdir -p $prefix/bin;
+ shopt -s dotglob;
+ for i in $prefix/sbin/*;
+ do
+ mv "$i" $prefix/bin;
+ done;
+ shopt -u dotglob;
+ rmdir $prefix/sbin;
+ ln -s bin $prefix/sbin
+}
+_overrideFirst ()
+{
+
+ if [ -z "${!1-}" ]; then
+ _assignFirst "$@";
+ fi
+}
+consumeEntire ()
+{
+
+ if IFS='' read -r -d '' "$1"; then
+ echo "consumeEntire(): ERROR: Input null bytes, won't process" 1>&2;
+ return 1;
+ fi
+}
+exitHandler ()
+{
+
+ exitCode="$?";
+ set +e;
+ if [ -n "${showBuildStats:-}" ]; then
+ read -r -d '' -a buildTimes < <(times);
+ echo "build times:";
+ echo "user time for the shell ${buildTimes[0]}";
+ echo "system time for the shell ${buildTimes[1]}";
+ echo "user time for all child processes ${buildTimes[2]}";
+ echo "system time for all child processes ${buildTimes[3]}";
+ fi;
+ if (( "$exitCode" != 0 )); then
+ runHook failureHook;
+ if [ -n "${succeedOnFailure:-}" ]; then
+ echo "build failed with exit code $exitCode (ignored)";
+ mkdir -p "$out/nix-support";
+ printf "%s" "$exitCode" > "$out/nix-support/failed";
+ exit 0;
+ fi;
+ else
+ runHook exitHook;
+ fi;
+ return "$exitCode"
+}
+genericBuild ()
+{
+
+ export GZIP_NO_TIMESTAMPS=1;
+ if [ -f "${buildCommandPath:-}" ]; then
+ source "$buildCommandPath";
+ return;
+ fi;
+ if [ -n "${buildCommand:-}" ]; then
+ eval "$buildCommand";
+ return;
+ fi;
+ definePhases;
+ for curPhase in ${phases[*]};
+ do
+ runPhase "$curPhase";
+ done
+}
+addToSearchPathWithCustomDelimiter ()
+{
+
+ local delimiter="$1";
+ local varName="$2";
+ local dir="$3";
+ if [[ -d "$dir" && "${!varName:+${delimiter}${!varName}${delimiter}}" != *"${delimiter}${dir}${delimiter}"* ]]; then
+ export "${varName}=${!varName:+${!varName}${delimiter}}${dir}";
+ fi
+}
+nixVomitLog ()
+{
+
+ _nixLogWithLevel 7 "$*"
+}
+recordPropagatedDependencies ()
+{
+
+ declare -ra flatVars=(depsBuildBuildPropagated propagatedNativeBuildInputs depsBuildTargetPropagated depsHostHostPropagated propagatedBuildInputs depsTargetTargetPropagated);
+ declare -ra flatFiles=("${propagatedBuildDepFiles[@]}" "${propagatedHostDepFiles[@]}" "${propagatedTargetDepFiles[@]}");
+ local propagatedInputsIndex;
+ for propagatedInputsIndex in "${!flatVars[@]}";
+ do
+ local propagatedInputsSlice="${flatVars[$propagatedInputsIndex]}[@]";
+ local propagatedInputsFile="${flatFiles[$propagatedInputsIndex]}";
+ [[ -n "${!propagatedInputsSlice}" ]] || continue;
+ mkdir -p "${!outputDev}/nix-support";
+ printWords ${!propagatedInputsSlice} > "${!outputDev}/nix-support/$propagatedInputsFile";
+ done
+}
+compressManPages ()
+{
+
+ local dir="$1";
+ if [ -L "$dir"/share ] || [ -L "$dir"/share/man ] || [ ! -d "$dir/share/man" ]; then
+ return;
+ fi;
+ echo "gzipping man pages under $dir/share/man/";
+ find "$dir"/share/man/ -type f -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 | xargs -0 -n1 -P "$NIX_BUILD_CORES" gzip -n -f;
+ find "$dir"/share/man/ -type l -a '!' -regex '.*\.\(bz2\|gz\|xz\)$' -print0 | sort -z | while IFS= read -r -d '' f; do
+ local target;
+ target="$(readlink -f "$f")";
+ if [ -f "$target".gz ]; then
+ ln -sf "$target".gz "$f".gz && rm "$f";
+ fi;
+ done
+}
+unpackPhase ()
+{
+
+ runHook preUnpack;
+ if [ -z "${srcs:-}" ]; then
+ if [ -z "${src:-}" ]; then
+ echo 'variable $src or $srcs should point to the source';
+ exit 1;
+ fi;
+ srcs="$src";
+ fi;
+ local -a srcsArray;
+ concatTo srcsArray srcs;
+ local dirsBefore="";
+ for i in *;
+ do
+ if [ -d "$i" ]; then
+ dirsBefore="$dirsBefore $i ";
+ fi;
+ done;
+ for i in "${srcsArray[@]}";
+ do
+ unpackFile "$i";
+ done;
+ : "${sourceRoot=}";
+ if [ -n "${setSourceRoot:-}" ]; then
+ runOneHook setSourceRoot;
+ else
+ if [ -z "$sourceRoot" ]; then
+ for i in *;
+ do
+ if [ -d "$i" ]; then
+ case $dirsBefore in
+ *\ $i\ *)
+
+ ;;
+ *)
+ if [ -n "$sourceRoot" ]; then
+ echo "unpacker produced multiple directories";
+ exit 1;
+ fi;
+ sourceRoot="$i"
+ ;;
+ esac;
+ fi;
+ done;
+ fi;
+ fi;
+ if [ -z "$sourceRoot" ]; then
+ echo "unpacker appears to have produced no directories";
+ exit 1;
+ fi;
+ echo "source root is $sourceRoot";
+ if [ "${dontMakeSourcesWritable:-0}" != 1 ]; then
+ chmod -R u+w -- "$sourceRoot";
+ fi;
+ runHook postUnpack
+}
+getTargetRoleWrapper ()
+{
+
+ case $targetOffset in
+ -1)
+ export NIX_BINTOOLS_WRAPPER_TARGET_BUILD_x86_64_unknown_linux_gnu=1
+ ;;
+ 0)
+ export NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu=1
+ ;;
+ 1)
+ export NIX_BINTOOLS_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu=1
+ ;;
+ *)
+ echo "binutils-wrapper-2.46: used as improper sort of dependency" 1>&2;
+ return 1
+ ;;
+ esac
+}
+getTargetRoleEnvHook ()
+{
+
+ getRole "$depTargetOffset"
+}
+_allFlags ()
+{
+
+ export system pname name version;
+ while IFS='' read -r varName; do
+ nixTalkativeLog "@${varName}@ -> ${!varName}";
+ args+=("--subst-var" "$varName");
+ done < <(awk 'BEGIN { for (v in ENVIRON) if (v ~ /^[a-z][a-zA-Z0-9_]*$/) print v }')
+}
+pkgConfigWrapper_addPkgConfigPath ()
+{
+
+ local role_post;
+ getHostRoleEnvHook;
+ addToSearchPath "PKG_CONFIG_PATH${role_post}" "$1/lib/pkgconfig";
+ addToSearchPath "PKG_CONFIG_PATH${role_post}" "$1/share/pkgconfig"
+}
+printLines ()
+{
+
+ (( "$#" > 0 )) || return 0;
+ printf '%s\n' "$@"
}
patchShebangs ()
{
@@ -1891,137 +2068,95 @@ patchShebangs ()
fi;
done < <(find "$@" -type f -perm -0100 -print0)
}
-printPhases ()
+nixChattyLog ()
{
- definePhases;
- local phase;
- for phase in ${phases[*]};
- do
- printf '%s\n' "$phase";
- done
+ _nixLogWithLevel 5 "$*"
}
-unpackFile ()
+patchELF ()
{
- curSrc="$1";
- echo "unpacking source archive $curSrc";
- if ! runOneHook unpackCmd "$curSrc"; then
- echo "do not know how to unpack source archive $curSrc";
- exit 1;
+ local dir="$1";
+ [ -e "$dir" ] || return 0;
+ echo "shrinking RPATHs of ELF executables and libraries in $dir";
+ local i;
+ while IFS= read -r -d '' i; do
+ if [[ "$i" =~ .build-id ]]; then
+ continue;
+ fi;
+ if ! isELF "$i"; then
+ continue;
+ fi;
+ echo "shrinking $i";
+ patchelf --shrink-rpath "$i" || true;
+ done < <(find "$dir" -type f -print0)
+}
+isMachO ()
+{
+
+ local fn="$1";
+ local fd;
+ local magic;
+ exec {fd}< "$fn";
+ LANG=C read -r -n 4 -u "$fd" magic;
+ exec {fd}>&-;
+ if [[ "$magic" = $(echo -ne "\xfe\xed\xfa\xcf") || "$magic" = $(echo -ne "\xcf\xfa\xed\xfe") ]]; then
+ return 0;
+ else
+ if [[ "$magic" = $(echo -ne "\xfe\xed\xfa\xce") || "$magic" = $(echo -ne "\xce\xfa\xed\xfe") ]]; then
+ return 0;
+ else
+ if [[ "$magic" = $(echo -ne "\xca\xfe\xba\xbe") || "$magic" = $(echo -ne "\xbe\xba\xfe\xca") ]]; then
+ return 0;
+ else
+ return 1;
+ fi;
+ fi;
fi
}
-appendToVar ()
+nixDebugLog ()
{
- local -n nameref="$1";
- local useArray type;
- if [ -n "$__structuredAttrs" ]; then
- useArray=true;
+ _nixLogWithLevel 6 "$*"
+}
+nixNoticeLog ()
+{
+
+ _nixLogWithLevel 2 "$*"
+}
+nixWarnLog ()
+{
+
+ _nixLogWithLevel 1 "$*"
+}
+_defaultUnpack ()
+{
+
+ local fn="$1";
+ local destination;
+ if [ -d "$fn" ]; then
+ destination="$(stripHash "$fn")";
+ if [ -e "$destination" ]; then
+ echo "Cannot copy $fn to $destination: destination already exists!";
+ echo "Did you specify two \"srcs\" with the same \"name\"?";
+ return 1;
+ fi;
+ cp -r --preserve=timestamps --reflink=auto -- "$fn" "$destination";
else
- useArray=false;
- fi;
- if type=$(declare -p "$1" 2> /dev/null); then
- case "${type#* }" in
- -A*)
- echo "appendToVar(): ERROR: trying to use appendToVar on an associative array, use variable+=([\"X\"]=\"Y\") instead." 1>&2;
- return 1
+ case "$fn" in
+ *.tar.xz | *.tar.lzma | *.txz)
+ ( XZ_OPT="--threads=$NIX_BUILD_CORES" xz -d < "$fn";
+ true ) | tar xf - --mode=+w --warning=no-timestamp
;;
- -a*)
- useArray=true
+ *.tar | *.tar.* | *.tgz | *.tbz2 | *.tbz)
+ tar xf "$fn" --mode=+w --warning=no-timestamp
;;
*)
- useArray=false
+ return 1
;;
esac;
- fi;
- shift;
- if $useArray; then
- nameref=(${nameref+"${nameref[@]}"} "$@");
- else
- nameref="${nameref-} $*";
fi
}
-_multioutDevs ()
-{
-
- if [ "$(getAllOutputNames)" = "out" ] || [ -z "${moveToDev-1}" ]; then
- return;
- fi;
- moveToOutput include "${!outputInclude}";
- moveToOutput lib/pkgconfig "${!outputDev}";
- moveToOutput share/pkgconfig "${!outputDev}";
- moveToOutput lib/cmake "${!outputDev}";
- moveToOutput share/aclocal "${!outputDev}";
- for f in "${!outputDev}"/{lib,share}/pkgconfig/*.pc;
- do
- echo "Patching '$f' includedir to output ${!outputInclude}";
- sed -i "/^includedir=/s,=\${prefix},=${!outputInclude}," "$f";
- done
-}
-_makeSymlinksRelative ()
-{
-
- local prefixes;
- prefixes=();
- for output in $(getAllOutputNames);
- do
- [ ! -e "${!output}" ] && continue;
- prefixes+=("${!output}");
- done;
- find "${prefixes[@]}" -type l -printf '%H\0%p\0' | xargs -0 -n2 -r -P "$NIX_BUILD_CORES" sh -c '
- output="$1"
- link="$2"
-
- linkTarget=$(readlink "$link")
-
- # only touch links that point inside the same output tree
- [[ $linkTarget == "$output"/* ]] || exit 0
-
- if [ ! -e "$linkTarget" ]; then
- echo "the symlink $link is broken, it points to $linkTarget (which is missing)"
- fi
-
- echo "making symlink relative: $link"
- ln -snrf "$linkTarget" "$link"
- ' _
-}
-printWords ()
-{
-
- (( "$#" > 0 )) || return 0;
- printf '%s ' "$@"
-}
-_multioutPropagateDev ()
-{
-
- if [ "$(getAllOutputNames)" = "out" ]; then
- return;
- fi;
- local outputFirst;
- for outputFirst in $(getAllOutputNames);
- do
- break;
- done;
- local propagaterOutput="$outputDev";
- if [ -z "$propagaterOutput" ]; then
- propagaterOutput="$outputFirst";
- fi;
- if [ -z "${propagatedBuildOutputs+1}" ]; then
- local po_dirty="$outputBin $outputInclude $outputLib";
- set +o pipefail;
- propagatedBuildOutputs=`echo "$po_dirty" | tr -s ' ' '\n' | grep -v -F "$propagaterOutput" | sort -u | tr '\n' ' ' `;
- set -o pipefail;
- fi;
- if [ -z "$propagatedBuildOutputs" ]; then
- return;
- fi;
- mkdir -p "${!propagaterOutput}"/nix-support;
- for output in $propagatedBuildOutputs;
- do
- echo -n " ${!output}" >> "${!propagaterOutput}"/nix-support/propagated-build-inputs;
- done
-}
isELF ()
{
@@ -2037,212 +2172,77 @@ isELF ()
return 1;
fi
}
-installCheckPhase ()
+isScript ()
{
- runHook preInstallCheck;
- if [[ -z "${foundMakefile:-}" ]]; then
- echo "no Makefile or custom installCheckPhase, doing nothing";
+ local fn="$1";
+ local fd;
+ local magic;
+ exec {fd}< "$fn";
+ LANG=C read -r -n 2 -u "$fd" magic;
+ exec {fd}>&-;
+ if [[ "$magic" =~ \#! ]]; then
+ return 0;
else
- if [[ -z "${installCheckTarget:-}" ]] && ! make -n ${makefile:+-f $makefile} "${installCheckTarget:-installcheck}" > /dev/null 2>&1; then
- echo "no installcheck target in ${makefile:-Makefile}, doing nothing";
- else
- local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL="$SHELL");
- concatTo flagsArray makeFlags makeFlagsArray installCheckFlags installCheckFlagsArray installCheckTarget=installcheck;
- echoCmd 'installcheck flags' "${flagsArray[@]}";
- make ${makefile:+-f $makefile} "${flagsArray[@]}";
- unset flagsArray;
- fi;
- fi;
- runHook postInstallCheck
-}
-nixNoticeLog ()
-{
-
- _nixLogWithLevel 2 "$*"
-}
-_activatePkgs ()
-{
-
- local hostOffset targetOffset;
- local pkg;
- for hostOffset in "${allPlatOffsets[@]}";
- do
- local pkgsVar="${pkgAccumVarVars[hostOffset + 1]}";
- for targetOffset in "${allPlatOffsets[@]}";
- do
- (( hostOffset <= targetOffset )) || continue;
- local pkgsRef="${pkgsVar}[$targetOffset - $hostOffset]";
- local pkgsSlice="${!pkgsRef}[@]";
- for pkg in ${!pkgsSlice+"${!pkgsSlice}"};
- do
- activatePackage "$pkg" "$hostOffset" "$targetOffset";
- done;
- done;
- done
-}
-_addRpathPrefix ()
-{
-
- if [ "${NIX_NO_SELF_RPATH:-0}" != 1 ]; then
- export NIX_LDFLAGS="-rpath $1/lib ${NIX_LDFLAGS-}";
+ return 1;
fi
}
-nixInfoLog ()
+noBrokenSymlinksInAllOutputs ()
{
- _nixLogWithLevel 3 "$*"
-}
-_assignFirst ()
-{
-
- local varName="$1";
- local _var;
- local REMOVE=REMOVE;
- shift;
- for _var in "$@";
- do
- if [ -n "${!_var-}" ]; then
- eval "${varName}"="${_var}";
- return;
- fi;
- done;
- echo;
- echo "error: _assignFirst: could not find a non-empty variable whose name to assign to ${varName}.";
- echo " The following variables were all unset or empty:";
- echo " $*";
- if [ -z "${out:-}" ]; then
- echo ' If you do not want an "out" output in your derivation, make sure to define';
- echo ' the other specific required outputs. This can be achieved by picking one';
- echo " of the above as an output.";
- echo ' You do not have to remove "out" if you want to have a different default';
- echo ' output, because the first output is taken as a default.';
- echo;
- fi;
- return 1
+ if [[ -z ${dontCheckForBrokenSymlinks-} ]]; then
+ for output in $(getAllOutputNames);
+ do
+ noBrokenSymlinks "${!output}";
+ done;
+ fi
}
nixTalkativeLog ()
{
_nixLogWithLevel 4 "$*"
}
-stripDirs ()
+getRole ()
{
- local cmd="$1";
- local ranlibCmd="$2";
- local paths="$3";
- local stripFlags="$4";
- local excludeFlags=();
- local pathsNew=;
- [ -z "$cmd" ] && echo "stripDirs: Strip command is empty" 1>&2 && exit 1;
- [ -z "$ranlibCmd" ] && echo "stripDirs: Ranlib command is empty" 1>&2 && exit 1;
- local pattern;
- if [ -n "${stripExclude:-}" ]; then
- for pattern in "${stripExclude[@]}";
- do
- excludeFlags+=(-a '!' '(' -name "$pattern" -o -wholename "$prefix/$pattern" ')');
- done;
- fi;
- local p;
- for p in ${paths};
- do
- if [ -e "$prefix/$p" ]; then
- pathsNew="${pathsNew} $prefix/$p";
- fi;
- done;
- paths=${pathsNew};
- if [ -n "${paths}" ]; then
- echo "stripping (with command $cmd and flags $stripFlags) in $paths";
- local striperr;
- striperr="$(mktemp --tmpdir="$TMPDIR" 'striperr.XXXXXX')";
- 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 );
- rm "$striperr";
- find $paths -name '*.a' -type f -exec $ranlibCmd '{}' \; 2> /dev/null;
+ case $1 in
+ -1)
+ role_post='_FOR_BUILD'
+ ;;
+ 0)
+ role_post=''
+ ;;
+ 1)
+ role_post='_FOR_TARGET'
+ ;;
+ *)
+ echo "binutils-wrapper-2.46: used as improper sort of dependency" 1>&2;
+ return 1
+ ;;
+ esac
+}
+dumpVars ()
+{
+
+ if [[ "${noDumpEnvVars:-0}" != 1 && -d "$NIX_BUILD_TOP" ]]; then
+ local old_umask;
+ old_umask=$(umask);
+ umask 0077;
+ export 2> /dev/null > "$NIX_BUILD_TOP/env-vars";
+ umask "$old_umask";
fi
}
-stripHash ()
+addEnvHooks ()
{
- local strippedName casematchOpt=0;
- strippedName="$(basename -- "$1")";
- shopt -q nocasematch && casematchOpt=1;
- shopt -u nocasematch;
- if [[ "$strippedName" =~ ^[a-z0-9]{32}- ]]; then
- echo "${strippedName:33}";
- else
- echo "$strippedName";
- fi;
- if (( casematchOpt )); then
- shopt -s nocasematch;
- fi
-}
-getTargetRole ()
-{
-
- getRole "$targetOffset"
-}
-substituteAllInPlace ()
-{
-
- local fileName="$1";
+ local depHostOffset="$1";
shift;
- substituteAll "$fileName" "$fileName" "$@"
-}
-configurePhase ()
-{
-
- runHook preConfigure;
- : "${configureScript=}";
- if [[ -z "$configureScript" && -x ./configure ]]; then
- configureScript=./configure;
- fi;
- if [ -z "${dontFixLibtool:-}" ]; then
- export lt_cv_deplibs_check_method="${lt_cv_deplibs_check_method-pass_all}";
- local i;
- find . -iname "ltmain.sh" -print0 | while IFS='' read -r -d '' i; do
- echo "fixing libtool script $i";
- fixLibtool "$i";
- done;
- CONFIGURE_MTIME_REFERENCE=$(mktemp configure.mtime.reference.XXXXXX);
- find . -executable -type f -name configure -exec grep -l 'GNU Libtool is free software; you can redistribute it and/or modify' {} \; -exec touch -r {} "$CONFIGURE_MTIME_REFERENCE" \; -exec sed -i s_/usr/bin/file_file_g {} \; -exec touch -r "$CONFIGURE_MTIME_REFERENCE" {} \;;
- rm -f "$CONFIGURE_MTIME_REFERENCE";
- fi;
- if [[ -z "${dontAddPrefix:-}" && -n "$prefix" ]]; then
- local -r prefixKeyOrDefault="${prefixKey:---prefix=}";
- if [ "${prefixKeyOrDefault: -1}" = " " ]; then
- prependToVar configureFlags "$prefix";
- prependToVar configureFlags "${prefixKeyOrDefault::-1}";
- else
- prependToVar configureFlags "$prefixKeyOrDefault$prefix";
- fi;
- fi;
- if [[ -f "$configureScript" ]]; then
- if [ -z "${dontAddDisableDepTrack:-}" ]; then
- if grep -q dependency-tracking "$configureScript"; then
- prependToVar configureFlags --disable-dependency-tracking;
- fi;
- fi;
- if [ -z "${dontDisableStatic:-}" ]; then
- if grep -q enable-static "$configureScript"; then
- prependToVar configureFlags --disable-static;
- fi;
- fi;
- if [ -z "${dontPatchShebangsInConfigure:-}" ]; then
- patchShebangs --build "$configureScript";
- fi;
- fi;
- if [ -n "$configureScript" ]; then
- local -a flagsArray;
- concatTo flagsArray configureFlags configureFlagsArray;
- echoCmd 'configure flags' "${flagsArray[@]}";
- $configureScript "${flagsArray[@]}";
- unset flagsArray;
- else
- echo "no configure script, doing nothing";
- fi;
- runHook postConfigure
+ local pkgHookVarsSlice="${pkgHookVarVars[$depHostOffset + 1]}[@]";
+ local pkgHookVar;
+ for pkgHookVar in "${!pkgHookVarsSlice}";
+ do
+ eval "${pkgHookVar}s"'+=("$@")';
+ done
}
PATH="$PATH${nix_saved_PATH:+:$nix_saved_PATH}"
XDG_DATA_DIRS="$XDG_DATA_DIRS${nix_saved_XDG_DATA_DIRS:+:$nix_saved_XDG_DATA_DIRS}"
diff --git a/.devenv/state/tasks.db-shm b/.devenv/state/tasks.db-shm
deleted file mode 100644
index 4f46d49..0000000
Binary files a/.devenv/state/tasks.db-shm and /dev/null differ
diff --git a/.devenv/state/tasks.db-wal b/.devenv/state/tasks.db-wal
deleted file mode 100644
index 50ac375..0000000
Binary files a/.devenv/state/tasks.db-wal and /dev/null differ
diff --git a/.devenv/zsh/.zshrc b/.devenv/zsh/.zshrc
index 1b6f5e5..95840b0 100644
--- a/.devenv/zsh/.zshrc
+++ b/.devenv/zsh/.zshrc
@@ -23,7 +23,7 @@ autoload -Uz add-zsh-hook
__devenv_reload_apply() {
# Source new environment if a reload is pending
- if [ -f "/tmp/nix-shell-28554-2490132097/devenv-reload-30583.sh" ]; then
+ if [ -f "/tmp/devenv-reload-274471.sh" ]; then
# Shell out to bash to handle the env diff (bash syntax)
local reload_output
reload_output=$(bash -c '
@@ -158,8 +158,8 @@ _before=$(mktemp)
__devenv_capture_env > "$_before"
# Source new devenv environment
-source "/tmp/nix-shell-28554-2490132097/devenv-reload-30583.sh"
-rm -f "/tmp/nix-shell-28554-2490132097/devenv-reload-30583.sh"
+source "/tmp/devenv-reload-274471.sh"
+rm -f "/tmp/devenv-reload-274471.sh"
# Compute new diff
__devenv_compute_diff "$_before"
diff --git a/.gitignore b/.gitignore
index 91b5d86..02de56d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,4 @@ vite.config.ts.timestamp-*
.session
local.db
+/.devenv
diff --git a/scripts/data/eventTypes.csv b/scripts/data/eventTypes.csv
index c31716d..0f25743 100644
--- a/scripts/data/eventTypes.csv
+++ b/scripts/data/eventTypes.csv
@@ -4,7 +4,8 @@ event_name,preset,resultPreset
500m Relay,1,race
750m Race,1,race
1000m Long Distance,1,race
-Javelin, 2,default
-Shotput, 2,default
-Long Jump, 2,three
-Triple Jump, 2,default
+Javelin, 1,three
+Shotput, 1,three
+Long Jump, 1,three
+High Jump, 1,three
+Triple Jump, 1,three
diff --git a/scripts/data/scoringPresets.csv b/scripts/data/scoringPresets.csv
index db62b81..5e19894 100644
--- a/scripts/data/scoringPresets.csv
+++ b/scripts/data/scoringPresets.csv
@@ -4,6 +4,3 @@ preset,placement,points
1,3,3
1,4,2
1,5,1
-2,1,50
-2,2,30
-2,3,10
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index bb5aa60..526ec34 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -7,11 +7,16 @@
No account? Sign up
+