Higan - a quick&dirty workaround

Higan uses a lot of hardcoded paths when it looks for runtime files
as shaders, icons and mainly BIOS files. So, we made a q&d wrapper
script: it copies all these files to $HOME/.config/higan in the 1st
invocation.
This commit is contained in:
AndersonTorres 2014-08-30 23:48:45 -03:00
parent efdb6ecb0c
commit 0847250505
2 changed files with 24 additions and 1 deletions

@ -18,3 +18,25 @@ install -m 644 ananke/libananke.so $out/lib/libananke.so.1
(cd $out/lib && ln -s libananke.so.1 libananke.so) (cd $out/lib && ln -s libananke.so.1 libananke.so)
oldRPath=$(patchelf --print-rpath $out/bin/higan) oldRPath=$(patchelf --print-rpath $out/bin/higan)
patchelf --set-rpath $oldRPath:$out/lib $out/bin/higan patchelf --set-rpath $oldRPath:$out/lib $out/bin/higan
# A dirty workaround, suggested by @cpages:
# we create a wrapper script to set up
# $HOME local configuration before higan runs
mv $out/bin/higan $out/bin/.higan-wrapped
cat <<EOF > $out/bin/higan
#!/bin/bash
if [ ! -e \$HOME/.config/higan/.was_configured ]
then
cp --update --recursive $out/share/higan \$HOME/.config
chmod --recursive u+w \$HOME/.config/higan
touch \$HOME/.config/higan/.was_configured
fi
# LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:$out/lib
$out/bin/.higan-wrapped "\$@"
EOF
patchShebangs $out/bin/higan
chmod +x $out/bin/higan

@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
# TODO: # TODO:
# - options to choose profiles (accuracy, balanced, performance) # - options to choose profiles (accuracy, balanced, performance)
# and different GUIs (gtk2, qt4) # and different GUIs (gtk2, qt4)
# - fix the BML and BIOS paths - maybe a custom patch to Higan project? # - fix the BML and BIOS paths - maybe submitting
# a custom patch to Higan project would not be a bad idea...
# #