asciidoc: support cross-compilation

Be explicit in patchShebangs by suggestion of SuperSandro2000.
Enable strictDeps to enforce better support in the future.
This commit is contained in:
Rick van Schijndel 2021-07-15 22:19:54 +02:00
parent 2165de1758
commit 2e36e8ad73

View file

@ -40,6 +40,8 @@
# java is problematic on some platforms, where it is unfree # java is problematic on some platforms, where it is unfree
, enableJava ? true , enableJava ? true
, buildPackages
}: }:
assert enableStandardFeatures -> assert enableStandardFeatures ->
@ -157,7 +159,9 @@ stdenv.mkDerivation rec {
sha256 = "1clf1axkns23wfmh48xfspzsnw04pjh4mq1pshpzvj0cwxhz0yaq"; sha256 = "1clf1axkns23wfmh48xfspzsnw04pjh4mq1pshpzvj0cwxhz0yaq";
}; };
strictDeps = true;
nativeBuildInputs = [ python3 unzip autoreconfHook ]; nativeBuildInputs = [ python3 unzip autoreconfHook ];
buildInputs = [ python3 ];
# install filters early, so their shebangs are patched too # install filters early, so their shebangs are patched too
postPatch = with lib; '' postPatch = with lib; ''
@ -262,7 +266,20 @@ stdenv.mkDerivation rec {
-e "s|^XMLLINT =.*|XMLLINT = '${libxml2.bin}/bin/xmllint'|" \ -e "s|^XMLLINT =.*|XMLLINT = '${libxml2.bin}/bin/xmllint'|" \
-i a2x.py -i a2x.py
'') + '' '') + ''
patchShebangs . patchShebangs --host \
asciidoc.py \
a2x.py \
tests/testasciidoc.py \
filters/code/code-filter.py \
filters/latex/latex2img.py \
filters/music/music2png.py \
filters/unwraplatex.py \
filters/graphviz/graphviz2png.py
# Hardcode the path to its own asciidoc.
# This helps with cross-compilation.
substituteInPlace a2x.py \
--replace "find_executable(ASCIIDOC)" "'${placeholder "out"}/bin/asciidoc'"
# Note: this substitution will not work in the planned 10.0.0 release: # Note: this substitution will not work in the planned 10.0.0 release:
# #
@ -273,6 +290,10 @@ stdenv.mkDerivation rec {
# --replace "python3 -m asciidoc.a2x" "python3 -m asciidoc.a2x -a revdate=01/01/1980" # --replace "python3 -m asciidoc.a2x" "python3 -m asciidoc.a2x -a revdate=01/01/1980"
substituteInPlace Makefile.in \ substituteInPlace Makefile.in \
--replace "python3 a2x.py" "python3 a2x.py -a revdate=01/01/1980" --replace "python3 a2x.py" "python3 a2x.py -a revdate=01/01/1980"
'' + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
# We want to use asciidoc from the build platform to build the documentation.
substituteInPlace Makefile.in \
--replace "python3 a2x.py" "python3 ${buildPackages.asciidoc}/bin/a2x.py"
''; '';
preInstall = "mkdir -p $out/etc/vim"; preInstall = "mkdir -p $out/etc/vim";