From 9e31c66d1b4e71c5e09719931d77c794a9608acb Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Tue, 8 Jul 2014 14:26:35 +0200 Subject: [PATCH] stdenv: Put moving docs to $out/share in a separate setup hook --- pkgs/build-support/setup-hooks/move-docs.sh | 24 +++++++++++++++++++++ pkgs/stdenv/generic/default.nix | 3 ++- pkgs/stdenv/generic/setup.sh | 19 ---------------- 3 files changed, 26 insertions(+), 20 deletions(-) create mode 100644 pkgs/build-support/setup-hooks/move-docs.sh diff --git a/pkgs/build-support/setup-hooks/move-docs.sh b/pkgs/build-support/setup-hooks/move-docs.sh new file mode 100644 index 00000000000..b3b93193550 --- /dev/null +++ b/pkgs/build-support/setup-hooks/move-docs.sh @@ -0,0 +1,24 @@ +# This setup hook automatically moves $out/{man,doc,info} to +# $out/share. + +preFixupHooks+=(_moveDocs) + +_moveDocs() { + forceShare=${forceShare:=man doc info} + if [ -z "$forceShare" ]; then return; fi + + for d in $forceShare; do + if [ -d "$prefix/$d" ]; then + if [ -d "$prefix/share/$d" ]; then + echo "both $d/ and share/$d/ exist!" + else + echo "moving $prefix/$d to $prefix/share/$d" + mkdir -p $prefix/share + if [ -w $prefix/share ]; then + mv $prefix/$d $prefix/share + ln -s share/$d $prefix + fi + fi + fi + done +} diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix index 0ff0bcebbd4..5b3cfdc2c44 100644 --- a/pkgs/stdenv/generic/default.nix +++ b/pkgs/stdenv/generic/default.nix @@ -30,7 +30,8 @@ let unsafeGetAttrPos = builtins.unsafeGetAttrPos or (n: as: null); extraBuildInputs' = extraBuildInputs ++ - [ ../../build-support/setup-hooks/compress-man-pages.sh + [ ../../build-support/setup-hooks/move-docs.sh + ../../build-support/setup-hooks/compress-man-pages.sh ../../build-support/setup-hooks/strip.sh ../../build-support/setup-hooks/patch-shebangs.sh gcc diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh index ebacb9952fc..ea2ea947b50 100644 --- a/pkgs/stdenv/generic/setup.sh +++ b/pkgs/stdenv/generic/setup.sh @@ -701,25 +701,6 @@ fixupPhase() { runHook preFixup - # Put man/doc/info under $out/share. - forceShare=${forceShare:=man doc info} - if [ -n "$forceShare" ]; then - for d in $forceShare; do - if [ -d "$prefix/$d" ]; then - if [ -d "$prefix/share/$d" ]; then - echo "both $d/ and share/$d/ exists!" - else - echo "fixing location of $d/ subdirectory" - mkdir -p $prefix/share - if [ -w $prefix/share ]; then - mv -v $prefix/$d $prefix/share - ln -sv share/$d $prefix - fi - fi - fi - done; - fi - # Apply fixup to each output. local output for output in $outputs; do