eb84586cad
Currently, a self-extracting archive created by makeself will fail to properly execute on NixOS because the boilerplate Bash code it uses to clean up the temporary directory it extracted its contents into assumes that the `rm` command is installed at `/bin/rm`, which is not the case on NixOS. This commit, a backport of a pull request I made to the upstream repository at megastep/makeself#142, fixes the issue by causing the boilerplate code to call `rm` without specifying an absolute path, which allows the version of `rm` from one's current Nix environment to be used instead.
36 lines
1 KiB
Nix
36 lines
1 KiB
Nix
{ stdenv, fetchFromGitHub }:
|
|
|
|
stdenv.mkDerivation rec {
|
|
version = "2.4.0";
|
|
name = "makeself-${version}";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "megastep";
|
|
repo = "makeself";
|
|
rev = "release-${version}";
|
|
sha256 = "1lw3gx1zpzp2wmzrw5v7k31vfsrdzadqha9ni309fp07g8inrr9n";
|
|
};
|
|
|
|
# backported from https://github.com/megastep/makeself/commit/77156e28ff21231c400423facc7049d9c60fd1bd
|
|
patches = [ ./Use-rm-from-PATH.patch ];
|
|
|
|
postPatch = ''
|
|
sed -e "s|^HEADER=.*|HEADER=$out/share/${name}/makeself-header.sh|" -i makeself.sh
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/{bin,share/{${name},man/man1}}
|
|
cp makeself.lsm README.md $out/share/${name}
|
|
cp makeself.sh $out/bin/makeself
|
|
cp makeself.1 $out/share/man/man1/
|
|
cp makeself-header.sh $out/share/${name}
|
|
'';
|
|
|
|
meta = with stdenv.lib; {
|
|
homepage = http://megastep.org/makeself;
|
|
description = "Utility to create self-extracting packages";
|
|
license = licenses.gpl2;
|
|
maintainers = [ maintainers.wmertens ];
|
|
platforms = platforms.all;
|
|
};
|
|
}
|