aboutsummaryrefslogtreecommitdiff
path: root/build-aux/compile-all.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2021-10-17 21:47:11 +0300
committerEfraim Flashner <efraim@flashner.co.il>2021-10-17 21:48:56 +0300
commit52e9ce3adcc61081ced07b88aa2125e8697866d4 (patch)
tree0f1effef63f5863622f63ae25034dc797b718811 /build-aux/compile-all.scm
parent23b216f12246acc5243f8cdc237a06fe759b598d (diff)
downloadguix-52e9ce3adcc61081ced07b88aa2125e8697866d4.tar.gz
guix-52e9ce3adcc61081ced07b88aa2125e8697866d4.zip
gnu: deja-dup: Sort inputs alphabetically.
* gnu/packages/gnome.scm (deja-dup)[inputs]: Sort alphabetically. [native-inputs]: Same.
Diffstat (limited to 'build-aux/compile-all.scm')
0 files changed, 0 insertions, 0 deletions
st_directory/Bin/sed" --version > "$test_directory/output" grep 'GNU sed' "$test_directory/output" # Now with fakechroot. run_without_store GUIX_EXECUTION_ENGINE="fakechroot" \ "$test_directory/Bin/sed" --version > "$test_directory/output" grep 'GNU sed' "$test_directory/output" unset GUIX_EXECUTION_ENGINE chmod -Rf +w "$test_directory"; rm -rf "$test_directory"/* if unshare -r true then # Check whether the store contains everything it should. Check # once when erasing $STORE_PARENT ("/gnu") and once when erasing # $NIX_STORE_DIR ("/gnu/store"). tarball="`guix pack -RR -S /bin=bin bash-minimal`" (cd "$test_directory"; tar xf "$tarball") STORE_PARENT="`dirname $NIX_STORE_DIR`" export STORE_PARENT for engine in userns proot fakechroot do for i in $(guix gc -R $(guix build bash-minimal | grep -v -e '-doc$')) do unshare -mrf sh -c "mount -t tmpfs none \"$NIX_STORE_DIR\"; GUIX_EXECUTION_ENGINE=$engine $test_directory/bin/sh -c 'echo $NIX_STORE_DIR/*'" | grep $(basename $i) unshare -mrf sh -c "mount -t tmpfs none \"$STORE_PARENT\"; GUIX_EXECUTION_ENGINE=$engine $test_directory/bin/sh -c 'echo $NIX_STORE_DIR/*'" | grep $(basename $i) done done chmod -Rf +w "$test_directory"; rm -rf "$test_directory"/* fi ;; *) echo "skipping PRoot and Fakechroot tests" >&2 ;; esac if unshare -r true then # Check what happens if the wrapped binary forks and leaves child # processes behind, like a daemon. The root file system should remain # available to those child processes. See <https://bugs.gnu.org/44261>. cat > "$test_directory/manifest.scm" <<EOF (use-modules (guix)) (define daemon (program-file "daemon" #~(begin (use-modules (ice-9 match) (ice-9 ftw)) (call-with-output-file "parent-store" (lambda (port) (write (scandir (ungexp (%store-prefix))) port))) (match (primitive-fork) (0 (sigaction SIGHUP (const #t)) (call-with-output-file "pid" (lambda (port) (display (getpid) port))) (pause) (call-with-output-file "child-store" (lambda (port) (write (scandir (ungexp (%store-prefix))) port)))) (_ #t))))) (define package (computed-file "package" #~(let ((out (ungexp output))) (mkdir out) (mkdir (string-append out "/bin")) (symlink (ungexp daemon) (string-append out "/bin/daemon"))))) (manifest (list (manifest-entry (name "daemon") (version "0") (item package)))) EOF tarball="$(guix pack -S /bin=bin -R -m "$test_directory/manifest.scm")" (cd "$test_directory"; tar xf "$tarball") # Run '/bin/daemon', which forks, then wait for the child, send it SIGHUP # so that it dumps its view of the store, and make sure the child and # parent both see the same store contents. chmod +w "$test_directory" (cd "$test_directory"; run_without_store ./bin/daemon) wait_for_file "$test_directory/pid" kill -HUP $(cat "$test_directory/pid") wait_for_file "$test_directory/child-store" diff -u "$test_directory/parent-store" "$test_directory/child-store" chmod -Rf +w "$test_directory"; rm -rf "$test_directory"/* fi # Ensure '-R' works with outputs other than "out". tarball="`guix pack -R -S /share=share groff:doc`" (cd "$test_directory"; tar xf "$tarball") test -d "$test_directory/share/doc/groff/html" chmod -Rf +w "$test_directory"; rm -rf "$test_directory"/* # Ensure '-R' applies to propagated inputs. Failing to do that, it would fail # with a profile collision error in this case because 'python-scipy' # propagates 'python-numpy'. See <https://bugs.gnu.org/42510>. guix pack -RR python-numpy python-scipy --no-grafts -n # Check that packages that mix executable and support files (e.g. git) in the # "binary" directories still work after wrapped. cat >"$test_directory/manifest.scm" <<'EOF' (use-modules (guix) (guix profiles) (guix search-paths) (gnu packages bootstrap)) (manifest (list (manifest-entry (name "test") (version "0") (item (file-union "test" `(("bin/hello" ,(program-file "hello" #~(begin (add-to-load-path (getenv "HELLO_EXEC_PATH")) (display (load-from-path "msg"))(newline)) #:guile %bootstrap-guile)) ("libexec/hello/msg" ,(plain-file "msg" "42"))))) (search-paths (list (search-path-specification (variable "HELLO_EXEC_PATH") (files '("libexec/hello")) (separator #f))))))) EOF tarball="`guix pack -RR -S /opt= -m $test_directory/manifest.scm`" (cd "$test_directory"; tar xvf "$tarball") chmod +w "$test_directory" ( export GUIX_PROFILE=$test_directory/opt . $GUIX_PROFILE/etc/profile run_without_store "$test_directory/opt/bin/hello" > "$test_directory/output" ) cat "$test_directory/output" test "`cat $test_directory/output`" = "42"