uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
84
pkgs/development/interpreters/octave/build-env.nix
Normal file
84
pkgs/development/interpreters/octave/build-env.nix
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
{ lib, stdenv, octave, buildEnv
|
||||
, makeWrapper, texinfo
|
||||
, octavePackages
|
||||
, wrapOctave
|
||||
, computeRequiredOctavePackages
|
||||
, extraLibs ? []
|
||||
, extraOutputsToInstall ? []
|
||||
, postBuild ? ""
|
||||
, ignoreCollisions ? false
|
||||
}:
|
||||
|
||||
# Create an octave executable that knows about additional packages
|
||||
let
|
||||
packages = computeRequiredOctavePackages extraLibs;
|
||||
|
||||
in buildEnv {
|
||||
name = "${octave.name}-env";
|
||||
paths = extraLibs ++ [ octave ];
|
||||
|
||||
inherit ignoreCollisions;
|
||||
extraOutputsToInstall = [ "out" ] ++ extraOutputsToInstall;
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
buildInputs = [ texinfo wrapOctave ];
|
||||
|
||||
# During "build" we must first unlink the /share symlink to octave's /share
|
||||
# Then, we can re-symlink the all of octave/share, except for /share/octave
|
||||
# in env/share/octave, re-symlink everything from octave/share/octave and then
|
||||
# perform the pkg install.
|
||||
postBuild = ''
|
||||
if [ -L "$out/bin" ]; then
|
||||
unlink $out/bin
|
||||
mkdir -p "$out/bin"
|
||||
cd "${octave}/bin"
|
||||
for prg in *; do
|
||||
if [ -x $prg ]; then
|
||||
makeWrapper "${octave}/bin/$prg" "$out/bin/$prg" --set OCTAVE_SITE_INITFILE "$out/share/octave/site/m/startup/octaverc"
|
||||
fi
|
||||
done
|
||||
cd $out
|
||||
fi
|
||||
|
||||
# Remove symlinks to the input tarballs, they aren't needed, use -f so it
|
||||
# will not fail if no .tar.gz symlinks are there - for example if
|
||||
# sommething which is not a tarball used as a package
|
||||
rm -f $out/*.tar.gz
|
||||
|
||||
createOctavePackagesPath $out ${octave}
|
||||
|
||||
# Create the file even if the loop afterwards has no packages to run over
|
||||
touch $out/.octave_packages
|
||||
for path in ${lib.concatStringsSep " " packages}; do
|
||||
if [ -e $path/*.tar.gz ]; then
|
||||
$out/bin/octave-cli --eval "pkg local_list $out/.octave_packages; \
|
||||
pkg prefix $out/${octave.octPkgsPath} $out/${octave.octPkgsPath}; \
|
||||
pfx = pkg (\"prefix\"); \
|
||||
pkg install -nodeps -local $path/*.tar.gz"
|
||||
fi
|
||||
done
|
||||
|
||||
# Re-write the octave-wide startup file (share/octave/site/m/startup/octaverc)
|
||||
# To point to the new local_list in $out
|
||||
addPkgLocalList $out ${octave}
|
||||
|
||||
wrapOctavePrograms "${lib.concatStringsSep " " packages}"
|
||||
'' + postBuild;
|
||||
|
||||
inherit (octave) meta;
|
||||
|
||||
passthru = octave.passthru // {
|
||||
interpreter = "$out/bin/octave";
|
||||
inherit octave;
|
||||
env = stdenv.mkDerivation {
|
||||
name = "interactive-${octave.name}-environment";
|
||||
|
||||
buildCommand = ''
|
||||
echo >&2 ""
|
||||
echo >&2 "*** octave 'env' attributes are intended for interactive nix-shell sessions, not for building! ***"
|
||||
echo >&2 ""
|
||||
exit 1
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue