diff options
author | Thiago Kenji Okada <thiagokokada@gmail.com> | 2022-10-29 18:35:51 +0100 |
---|---|---|
committer | ehmry <ehmry@posteo.net> | 2022-10-31 08:48:08 -0500 |
commit | b28f6cc8a34598ba7b9528f07c2ba814aef4ec82 (patch) | |
tree | 84d10831038fadb6994525bdf089c13eebe7aa20 /pkgs/applications/emulators/mame | |
parent | 7e5af95176894a256613b887731d5b7ca9cff84f (diff) |
mame: general improvements
- Fix desktop item
- Remove hardeningDisable
- Add icon
- Add pre/postInstall hooks
- Use libsForQt5 instead of libsForQt514
- Unmark broken in aarch64-linux
Diffstat (limited to 'pkgs/applications/emulators/mame')
-rw-r--r-- | pkgs/applications/emulators/mame/default.nix | 48 |
1 files changed, 34 insertions, 14 deletions
diff --git a/pkgs/applications/emulators/mame/default.nix b/pkgs/applications/emulators/mame/default.nix index 1b6703cb6702..aaa4077015ee 100644 --- a/pkgs/applications/emulators/mame/default.nix +++ b/pkgs/applications/emulators/mame/default.nix @@ -1,9 +1,11 @@ { lib , stdenv , alsa-lib +, copyDesktopItems , CoreAudioKit , expat , fetchFromGitHub +, fetchurl , flac , fontconfig , ForceFeedback @@ -33,14 +35,11 @@ }: let - desktopItem = makeDesktopItem { - name = "MAME"; - exec = "mame${lib.optionalString stdenv.is64bit "64"}"; - desktopName = "MAME"; - genericName = "MAME is a multi-purpose emulation framework"; - categories = [ "System" "Emulator" ]; + # Get icon from Arch Linux package + icon = fetchurl { + url = "https://raw.githubusercontent.com/archlinux/svntogit-community/614b24ef3856cb52b5cafc386b0f77923cbc9156/trunk/mame.svg"; + sha256 = "sha256-F8RCyTPXZBdeTOHeUKgMDC3dXXM8rwnDzV5rppesQ/Q="; }; - dest = "$out/opt/mame"; in stdenv.mkDerivation rec { @@ -54,8 +53,6 @@ stdenv.mkDerivation rec { sha256 = "sha256-im6y/E0pQxruX2kNXZLE3fHq+zXfsstnOoC1QvH4fd4="; }; - hardeningDisable = [ "fortify" ]; - makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "CXX=${stdenv.cc.targetPrefix}c++" @@ -97,7 +94,14 @@ stdenv.mkDerivation rec { ++ lib.optionals stdenv.isLinux [ alsa-lib libpulseaudio libXinerama libXi fontconfig ] ++ lib.optionals stdenv.isDarwin [ libpcap CoreAudioKit ForceFeedback ]; - nativeBuildInputs = [ python3 pkg-config which makeWrapper installShellFiles ]; + nativeBuildInputs = [ + copyDesktopItems + installShellFiles + makeWrapper + pkg-config + python3 + which + ]; patches = [ # MAME is now generating the PDF documentation on its release script since commit: @@ -116,7 +120,23 @@ stdenv.mkDerivation rec { --subst-var-by mame ${dest} ''; + desktopItems = [ + (makeDesktopItem { + name = "MAME"; + desktopName = "MAME"; + exec = "mame"; + icon = "mame"; + type = "Application"; + genericName = "MAME is a multi-purpose emulation framework"; + comment = "Play vintage games using the MAME emulator"; + categories = [ "Game" "Emulator" ]; + keywords = [ "Game" "Emulator" "Arcade" ]; + }) + ]; + installPhase = '' + runHook preInstall + make -f dist.mak PTR64=${lib.optionalString stdenv.is64bit "1"} mkdir -p ${dest} mv build/release/*/Release/mame/* ${dest} @@ -126,11 +146,11 @@ stdenv.mkDerivation rec { install -Dm755 src/osd/sdl/taputil.sh $out/bin/taputil.sh installManPage ${dest}/docs/man/*.1 ${dest}/docs/man/*.6 + install -Dm644 ${icon} $out/share/icons/hicolor/scalable/apps/mame.svg mv artwork plugins samples ${dest} - '' + lib.optionalString stdenv.isLinux '' - mkdir -p $out/share - ln -s ${desktopItem}/share/applications $out/share + + runHook postInstall ''; enableParallelBuilding = true; @@ -146,7 +166,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { - broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin; + broken = stdenv.isDarwin; description = "Is a multi-purpose emulation framework"; homepage = "https://www.mamedev.org/"; license = with licenses; [ bsd3 gpl2Plus ]; |