doc: add missing phase hooks

+8
doc/doc-support/package.nix
···
'';
buildPhase = ''
+
runHook preBuild
+
substituteInPlace ./languages-frameworks/python.section.md \
--subst-var-by python-interpreter-table "$(<"${pythonInterpreterTable}")"
···
--section-toc-depth 1 \
manual.md \
out/index.html
+
+
runHook postBuild
'';
installPhase = ''
+
runHook preInstall
+
dest="$out/share/doc/nixpkgs"
mkdir -p "$(dirname "$dest")"
mv out "$dest"
···
mkdir -p $out/nix-support/
echo "doc manual $dest manual.html" >> $out/nix-support/hydra-build-products
echo "doc manual $dest nixpkgs-manual.epub" >> $out/nix-support/hydra-build-products
+
+
runHook postInstall
'';
passthru = {
+1 -1
doc/functions/generators.section.md
···
} ":";
};
-
# the INI file can now be given as plain old nix values
in
+
# the INI file can now be given as plain old nix values
customToINI {
main = {
pushinfo = true;
+4
doc/languages-frameworks/agda.section.md
···
libraryName = "IAL-1.3";
buildPhase = ''
+
runHook preBuild
+
patchShebangs find-deps.sh
make
+
+
runHook postBuild
'';
}
```
+4
doc/languages-frameworks/bower.section.md
···
];
buildPhase = ''
+
runHook preBuild
+
cp --reflink=auto --no-preserve=mode -R $bowerComponents/bower_components . # note 2
${pkgs.nodePackages.gulp}/bin/gulp build # note 4
+
+
runHook postBuild
'';
installPhase = "mv gulpdist $out";
+32
doc/languages-frameworks/emscripten.section.md
···
env = (old.env or { }) // {
NIX_CFLAGS_COMPILE = "";
};
+
configurePhase = ''
# FIXME: Some tests require writing at $HOME
HOME=$TMPDIR
···
runHook postConfigure
'';
+
dontStrip = true;
outputs = [ "out" ];
+
buildPhase = ''
+
runHook preBuild
+
emmake make
+
+
runHook postBuild
'';
+
installPhase = ''
+
runHook preInstall
+
emmake make install
+
+
runHook postInstall
'';
+
checkPhase = ''
+
runHook preCheck
+
echo "================= testing zlib using node ================="
echo "Compiling a custom test"
···
echo "it seems to work! very good."
fi
echo "================= /testing zlib using node ================="
+
+
runHook postCheck
'';
postPatch = pkgs.lib.optionalString pkgs.stdenv.hostPlatform.isDarwin ''
···
openjdk
json_c
];
+
nativeBuildInputs = [
pkg-config
writableTmpDirAsHomeHook
···
};
configurePhase = ''
+
runHook preConfigure
+
rm -f fastXmlLint.js*
# a fix for ERROR:root:For asm.js, TOTAL_MEMORY must be a multiple of 16MB, was 234217728
# https://gitlab.com/odfplugfest/xmlmirror/issues/8
···
sed -e "s/\$(JSONC_LDFLAGS) \$(ZLIB_LDFLAGS) \$(LIBXML20_LDFLAGS)/\$(JSONC_LDFLAGS) \$(LIBXML20_LDFLAGS) \$(ZLIB_LDFLAGS) /g" -i Makefile.emEnv
# https://gitlab.com/odfplugfest/xmlmirror/issues/11
sed -e "s/-o fastXmlLint.js/-s EXTRA_EXPORTED_RUNTIME_METHODS='[\"ccall\", \"cwrap\"]' -o fastXmlLint.js/g" -i Makefile.emEnv
+
+
runHook postConfigure
'';
buildPhase = ''
+
runHook preBuild
+
make -f Makefile.emEnv
+
+
runHook postBuild
'';
outputs = [
···
];
installPhase = ''
+
runHook preInstall
+
mkdir -p $out/share
mkdir -p $doc/share/${name}
···
cp *.json $out/share
cp *.rng $out/share
cp README.md $doc/share/${name}
+
runHook postInstall
'';
+
checkPhase = ''
+
runHook preCheck
+
runHook postCheck
'';
}
```
+4
doc/languages-frameworks/javascript.section.md
···
];
buildPhase = ''
+
runHook preBuild
+
yarn --offline build
+
+
runHook postBuild
'';
}
```
+39 -3
doc/languages-frameworks/maven.section.md
···
nativeBuildInputs = [ makeWrapper ];
installPhase = ''
+
runHook preInstall
+
mkdir -p $out/bin $out/share/jd-cli
install -Dm644 jd-cli/target/jd-cli.jar $out/share/jd-cli
makeWrapper ${jre}/bin/java $out/bin/jd-cli \
--add-flags "-jar $out/share/jd-cli/jd-cli.jar"
+
+
runHook postInstall
'';
meta = {
···
buildInputs = [ maven ];
src = ./.; # or fetchFromGitHub, cleanSourceWith, etc
buildPhase = ''
+
runHook preBuild
+
mvn package -Dmaven.repo.local=$out
+
+
runHook postBuild
'';
# keep only *.{pom,jar,sha1,nbm} and delete all ephemeral files with lastModified timestamps inside
installPhase = ''
+
runHook preInstall
+
find $out -type f \
-name \*.lastUpdated -or \
-name resolver-status.properties -or \
-name _remote.repositories \
-delete
+
+
runHook postInstall
'';
# don't do any fixup
···
maven,
callPackage,
}:
-
# pick a repository derivation, here we will use buildMaven
let
+
# pick a repository derivation, here we will use buildMaven
repository = callPackage ./build-maven-repository.nix { };
in
stdenv.mkDerivation rec {
···
buildInputs = [ maven ];
buildPhase = ''
+
runHook preBuild
+
echo "Using repository ${repository}"
mvn --offline -Dmaven.repo.local=${repository} package;
+
+
runHook postBuild
'';
installPhase = ''
-
install -Dm644 target/${pname}-${version}.jar $out/share/java
+
runHook preInstall
+
+
install -Dm644 target/${finalAttrs.pname}-${finalAttrs.version}.jar $out/share/java
+
+
runHook postInstall
'';
}
```
···
buildInputs = [ maven ];
buildPhase = ''
+
runHook preBuild
+
echo "Using repository ${repository}"
mvn --offline -Dmaven.repo.local=${repository} package;
+
+
runHook postBuild
'';
installPhase = ''
+
runHook preInstall
+
mkdir -p $out/bin
classpath=$(find ${repository} -name "*.jar" -printf ':%h/%f');
···
makeWrapper ${jre}/bin/java $out/bin/${pname} \
--add-flags "-classpath $out/share/java/${pname}-${version}.jar:''${classpath#:}" \
--add-flags "Main"
+
+
runHook postInstall
'';
}
```
···
makeWrapper,
jre,
}:
-
# pick a repository derivation, here we will use buildMaven
let
+
# pick a repository derivation, here we will use buildMaven
repository = callPackage ./build-maven-repository.nix { };
in
stdenv.mkDerivation rec {
···
buildInputs = [ maven ];
buildPhase = ''
+
runHook preBuild
+
echo "Using repository ${repository}"
mvn --offline -Dmaven.repo.local=${repository} package;
+
+
runHook postBuild
'';
installPhase = ''
+
runHook preInstall
+
mkdir -p $out/bin
# create a symbolic link for the repository directory
···
# this should be the paths from the dependency derivation
makeWrapper ${jre}/bin/java $out/bin/${pname} \
--add-flags "-jar $out/share/java/${pname}-${version}.jar"
+
+
runHook postInstall
'';
}
```
+4
doc/languages-frameworks/swift.section.md
···
configurePhase = generated.configure;
installPhase = ''
+
runHook preInstall
+
# This is a special function that invokes swiftpm to find the location
# of the binaries it produced.
binPath="$(swiftpmBinPath)"
# Now perform any installation steps.
mkdir -p $out/bin
cp $binPath/myproject $out/bin/
+
+
runHook postInstall
'';
}
```
+13 -2
doc/stdenv/stdenv.chapter.md
···
stdenv.mkDerivation {
pname = "fnord";
version = "4.5";
+
# ...
+
buildPhase = ''
+
runHook preBuild
+
gcc foo.c -o foo
+
+
runHook postBuild
'';
installPhase = ''
+
runHook preInstall
+
mkdir -p $out/bin
cp foo $out/bin
+
+
runHook postInstall
'';
}
```
···
makeWrapper
pkg-config
];
+
buildInputs = [ libseccomp ];
postInstall = ''
···
util-linux
qemu
];
-
checkPhase = ''[elided] '';
-
}
+
checkPhase = ''[elided]'';
+
})
```
- `makeWrapper` is a setup hook, i.e., a shell script sourced by the generic builder of `stdenv`.