refind: fix runtime errors
In newer versions, instead of using $PWD to locate its ressource files, Refind now refers to the dir containing $0. This causes runtime errors due to missing ressources. In lieu a wrapper binary, we now simply patch the variable 'RefindDir' which stores the path to the ressource dir.
This commit is contained in:
parent
b45ef79b74
commit
adce6bf638
@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
|
|||||||
install -D -m0644 gptsync/gptsync_${efiPlatform}.efi $out/share/refind/tools_${efiPlatform}/gptsync_${efiPlatform}.efi
|
install -D -m0644 gptsync/gptsync_${efiPlatform}.efi $out/share/refind/tools_${efiPlatform}/gptsync_${efiPlatform}.efi
|
||||||
|
|
||||||
# helper scripts
|
# helper scripts
|
||||||
install -D -m0755 refind-install $out/share/refind/refind-install
|
install -D -m0755 refind-install $out/bin/refind-install
|
||||||
install -D -m0755 mkrlconf $out/bin/refind-mkrlconf
|
install -D -m0755 mkrlconf $out/bin/refind-mkrlconf
|
||||||
install -D -m0755 mvrefind $out/bin/refind-mvrefind
|
install -D -m0755 mvrefind $out/bin/refind-mvrefind
|
||||||
install -D -m0755 fonts/mkfont.sh $out/bin/refind-mkfont
|
install -D -m0755 fonts/mkfont.sh $out/bin/refind-mkfont
|
||||||
@ -86,21 +86,13 @@ stdenv.mkDerivation rec {
|
|||||||
# keys
|
# keys
|
||||||
install -D -m0644 keys/* $out/share/refind/keys/
|
install -D -m0644 keys/* $out/share/refind/keys/
|
||||||
|
|
||||||
# The refind-install script assumes that all resource files are
|
# Fix variable definition of 'RefindDir' which is used to locate ressource files.
|
||||||
# installed under the same directory as the script itself. To avoid
|
sed -i "s,\bRefindDir=.*,RefindDir=$out/share/refind,g" $out/bin/refind-install
|
||||||
# having to patch around this assumption, generate a wrapper that
|
|
||||||
# cds into $out/share/refind and executes the real script from
|
|
||||||
# there.
|
|
||||||
cat >$out/bin/refind-install <<EOF
|
|
||||||
#! ${stdenv.shell}
|
|
||||||
cd $out/share/refind && exec -a $out/bin/refind-install ./refind-install \$*
|
|
||||||
EOF
|
|
||||||
chmod +x $out/bin/refind-install
|
|
||||||
|
|
||||||
# Patch uses of `which`. We could patch in calls to efibootmgr,
|
# Patch uses of `which`. We could patch in calls to efibootmgr,
|
||||||
# openssl, convert, and openssl, but that would greatly enlarge
|
# openssl, convert, and openssl, but that would greatly enlarge
|
||||||
# refind's closure (from ca 28MB to over 400MB).
|
# refind's closure (from ca 28MB to over 400MB).
|
||||||
sed -i 's,`which \(.*\)`,`type -p \1`,g' $out/share/refind/refind-install
|
sed -i 's,`which \(.*\)`,`type -p \1`,g' $out/bin/refind-install
|
||||||
sed -i 's,`which \(.*\)`,`type -p \1`,g' $out/bin/refind-mvrefind
|
sed -i 's,`which \(.*\)`,`type -p \1`,g' $out/bin/refind-mvrefind
|
||||||
sed -i 's,`which \(.*\)`,`type -p \1`,g' $out/bin/refind-mkfont
|
sed -i 's,`which \(.*\)`,`type -p \1`,g' $out/bin/refind-mkfont
|
||||||
'';
|
'';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user