nixpkgs/pkgs/applications/misc/makeself/default.nix
Keshav Kini eb84586cad makeself: backport megastep/makeself#142
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.
2018-10-03 10:31:58 -07:00

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;
};
}