diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2016-04-18 08:50:34 +0200 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2016-04-20 16:36:10 +0200 |
commit | 9f8751528cd89d343258dd718afa56f8590917bb (patch) | |
tree | c16d8e656dbf03c0372176cc9849e4342d6c491d /pkgs/build-support/setup-hooks | |
parent | 908aac3ca73ac0b7dbcd3933329fa13c21416506 (diff) | |
download | nixlib-9f8751528cd89d343258dd718afa56f8590917bb.tar nixlib-9f8751528cd89d343258dd718afa56f8590917bb.tar.gz nixlib-9f8751528cd89d343258dd718afa56f8590917bb.tar.bz2 nixlib-9f8751528cd89d343258dd718afa56f8590917bb.tar.lz nixlib-9f8751528cd89d343258dd718afa56f8590917bb.tar.xz nixlib-9f8751528cd89d343258dd718afa56f8590917bb.tar.zst nixlib-9f8751528cd89d343258dd718afa56f8590917bb.zip |
stdenv multiple-outputs: fix #14782 --docdir location
- the default --docdir is typically DATAROOTDIR/doc/pkgName - I saw no other way than to employ some magic to guess this `pkgName` - user can override it by setting $shareDocName
Diffstat (limited to 'pkgs/build-support/setup-hooks')
-rw-r--r-- | pkgs/build-support/setup-hooks/multiple-outputs.sh | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/pkgs/build-support/setup-hooks/multiple-outputs.sh b/pkgs/build-support/setup-hooks/multiple-outputs.sh index 2cf08d42ae04..c49ea4b09a7f 100644 --- a/pkgs/build-support/setup-hooks/multiple-outputs.sh +++ b/pkgs/build-support/setup-hooks/multiple-outputs.sh @@ -47,11 +47,28 @@ _overrideFirst outputInfo "info" "doc" "$outputMan" _multioutConfig() { if [ "$outputs" = "out" ] || [ -z "${setOutputFlags-1}" ]; then return; fi; + # try to detect share/doc/${shareDocName} + # Note: sadly, $configureScript detection comes later in configurePhase, + # and reordering would cause more trouble than worth. + 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 + # PACKAGE_TARNAME sometimes contains garbage. + if [ -n "$shareDocName" ] || echo "$shareDocName" | grep -q '[^a-zA-Z-_0-9]'; then + shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')" + fi + fi + configureFlags="\ --bindir=${!outputBin}/bin --sbindir=${!outputBin}/sbin \ --includedir=${!outputInclude}/include --oldincludedir=${!outputInclude}/include \ --mandir=${!outputMan}/share/man --infodir=${!outputInfo}/share/info \ - --docdir=${!outputDoc}/share/doc \ + --docdir=${!outputDoc}/share/doc/${shareDocName} \ --libdir=${!outputLib}/lib --libexecdir=${!outputLib}/libexec \ --localedir=${!outputLib}/share/locale \ $configureFlags" @@ -62,6 +79,7 @@ _multioutConfig() { $installFlags" } + # Add rpath prefixes to library paths, and avoid stdenv doing it for $out. _addRpathPrefix "${!outputLib}" NIX_NO_SELF_RPATH=1 |