mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-01 15:11:25 +00:00
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.
This commit is contained in:
parent
fe5d78a1f2
commit
eb84586cad
43
pkgs/applications/misc/makeself/Use-rm-from-PATH.patch
Normal file
43
pkgs/applications/misc/makeself/Use-rm-from-PATH.patch
Normal file
@ -0,0 +1,43 @@
|
||||
From 81cf57e4653360af7f1718391e424fa05d8ea000 Mon Sep 17 00:00:00 2001
|
||||
From: Keshav Kini <keshav.kini@gmail.com>
|
||||
Date: Thu, 9 Aug 2018 18:36:15 -0700
|
||||
Subject: [PATCH] Use `rm` from PATH
|
||||
|
||||
On NixOS (a Linux distribution), there is no `/bin/rm`, but an `rm`
|
||||
command will generally be available in one's path when running shell
|
||||
scripts. Here, I change a couple of invocations of `/bin/rm` into
|
||||
invocations of `rm` to deal with this issue.
|
||||
|
||||
Since `rm` is already called elsewhere in the script without an
|
||||
absolute path, I assume this change will not cause any
|
||||
regressions. Still, I've tested this on a CentOS machine and a NixOS
|
||||
machine, though not other platforms.
|
||||
---
|
||||
makeself-header.sh | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/makeself-header.sh b/makeself-header.sh
|
||||
index 4d2c005..2babf34 100755
|
||||
--- a/makeself-header.sh
|
||||
+++ b/makeself-header.sh
|
||||
@@ -515,7 +515,7 @@ if test x"\$quiet" = xn; then
|
||||
fi
|
||||
res=3
|
||||
if test x"\$keep" = xn; then
|
||||
- trap 'echo Signal caught, cleaning up >&2; cd \$TMPROOT; /bin/rm -rf "\$tmpdir"; eval \$finish; exit 15' 1 2 3 15
|
||||
+ trap 'echo Signal caught, cleaning up >&2; cd \$TMPROOT; rm -rf "\$tmpdir"; eval \$finish; exit 15' 1 2 3 15
|
||||
fi
|
||||
|
||||
if test x"\$nodiskspace" = xn; then
|
||||
@@ -581,7 +581,7 @@ if test x"\$script" != x; then
|
||||
fi
|
||||
if test x"\$keep" = xn; then
|
||||
cd "\$TMPROOT"
|
||||
- /bin/rm -rf "\$tmpdir"
|
||||
+ rm -rf "\$tmpdir"
|
||||
fi
|
||||
eval \$finish; exit \$res
|
||||
EOF
|
||||
--
|
||||
2.14.1
|
||||
|
@ -11,7 +11,10 @@ stdenv.mkDerivation rec {
|
||||
sha256 = "1lw3gx1zpzp2wmzrw5v7k31vfsrdzadqha9ni309fp07g8inrr9n";
|
||||
};
|
||||
|
||||
patchPhase = ''
|
||||
# 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
|
||||
'';
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user