tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
kega-fusion: init at 3.63x
Nikolay Amiantov
7 years ago
bef8321f
5ed883a4
+80
2 changed files
expand all
collapse all
unified
split
pkgs
misc
emulators
kega-fusion
default.nix
top-level
all-packages.nix
+78
pkgs/misc/emulators/kega-fusion/default.nix
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
{ stdenv, lib, writeText, fetchurl, upx, libGLU, glib, gtk2, alsaLib, libSM, libX11, gdk_pixbuf, pango, libXinerama, mpg123 }:
2
+
3
+
let
4
+
libPath = lib.makeLibraryPath [ stdenv.cc.cc libGLU glib gtk2 alsaLib libSM libX11 gdk_pixbuf pango libXinerama ];
5
+
6
+
in stdenv.mkDerivation rec {
7
+
name = "kega-fusion-${version}";
8
+
version = "3.63x";
9
+
10
+
src = fetchurl {
11
+
url = "http://www.carpeludum.com/download/Fusion363x.tar.gz";
12
+
sha256 = "14s6czy20h5khyy7q95hd7k77v17ssafv9l6lafkiysvj2nmw94g";
13
+
};
14
+
15
+
plugins = fetchurl {
16
+
url = "http://www.carpeludum.com/download/PluginsLinux.tar.gz";
17
+
sha256 = "0d623cvh6n5ijj3wb64g93mxx2xbichsn7hj7brbb0ndw5cs70qj";
18
+
};
19
+
20
+
runner = writeText "kega-fusion" ''
21
+
#!${stdenv.shell} -ex
22
+
23
+
kega_libdir="@out@/lib/kega-fusion"
24
+
kega_localdir="$HOME/.Kega Fusion"
25
+
26
+
# create local plugins directory if not present
27
+
mkdir -p "$kega_localdir/Plugins"
28
+
29
+
# create links for every included plugin
30
+
if [ $(ls -1A $kega_libdir/plugins | wc -l) -gt 0 ]; then
31
+
for i in $kega_libdir/plugins/*; do
32
+
if [ ! -e "$kega_localdir/Plugins/$(basename "$i")" ]; then
33
+
ln -sf "$i" "$kega_localdir/Plugins/"
34
+
fi
35
+
done
36
+
fi
37
+
38
+
# copy configuration file if not present
39
+
if ! [ -f "$kega_localdir/Fusion.ini" ]; then
40
+
cat > "$kega_localdir/Fusion.ini" <<EOF
41
+
ALSADeviceName=default
42
+
libmpg123path=${lib.getLib mpg123}/lib/libmpg123.so.0
43
+
EOF
44
+
else
45
+
sed -i 's,^\(libmpg123path=\).*,\1${lib.getLib mpg123}/lib/libmpg123.so.0,' "$kega_localdir/Fusion.ini"
46
+
fi
47
+
48
+
# here we go!
49
+
exec "$kega_libdir/Fusion" "$@"
50
+
'';
51
+
52
+
dontStrip = true;
53
+
dontPatchELF = true;
54
+
55
+
nativeBuildInputs = [ upx ];
56
+
57
+
installPhase = ''
58
+
upx -d Fusion
59
+
install -Dm755 Fusion "$out/lib/kega-fusion/Fusion"
60
+
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" --set-rpath "${libPath}" "$out/lib/kega-fusion/Fusion"
61
+
62
+
tar -xaf $plugins
63
+
mkdir -p "$out/lib/kega-fusion/plugins"
64
+
cp -r Plugins/*.rpi "$out/lib/kega-fusion/plugins"
65
+
66
+
mkdir -p "$out/bin"
67
+
substitute "$runner" "$out/bin/kega-fusion" --subst-var out
68
+
chmod +x "$out/bin/kega-fusion"
69
+
'';
70
+
71
+
meta = with stdenv.lib; {
72
+
description = "Sega SG1000, SC3000, SF7000, Master System, Game Gear, Genesis/Megadrive, SVP, Pico, SegaCD/MegaCD and 32X emulator";
73
+
homepage = http://www.carpeludum.com/kega-fusion/;
74
+
maintainers = with maintainers; [ abbradar ];
75
+
license = licenses.unfreeRedistributable;
76
+
platforms = [ "i686-linux" ];
77
+
};
78
+
}
+2
pkgs/top-level/all-packages.nix
···
16235
16236
keepnote = callPackage ../applications/office/keepnote { };
16237
0
0
16238
kermit = callPackage ../tools/misc/kermit { };
16239
16240
kexi = libsForQt5.callPackage ../applications/office/kexi { };
···
16235
16236
keepnote = callPackage ../applications/office/keepnote { };
16237
16238
+
kega-fusion = callPackage_i686 ../misc/emulators/kega-fusion { };
16239
+
16240
kermit = callPackage ../tools/misc/kermit { };
16241
16242
kexi = libsForQt5.callPackage ../applications/office/kexi { };