From d296e58f6dcfbed9589d9e2ed1ff2d480982148f Mon Sep 17 00:00:00 2001 From: gnidorah Date: Wed, 30 Oct 2019 22:29:51 +0300 Subject: [PATCH 1/3] mame: init at 0.215 --- pkgs/misc/emulators/mame/default.nix | 59 ++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 61 insertions(+) create mode 100644 pkgs/misc/emulators/mame/default.nix diff --git a/pkgs/misc/emulators/mame/default.nix b/pkgs/misc/emulators/mame/default.nix new file mode 100644 index 00000000000..499d7dd6c4a --- /dev/null +++ b/pkgs/misc/emulators/mame/default.nix @@ -0,0 +1,59 @@ +{ stdenv, mkDerivation, fetchFromGitHub, makeDesktopItem +, python, pkgconfig, SDL2, SDL2_ttf, alsaLib, which, qtbase, libXinerama }: + +let + majorVersion = "0"; + minorVersion = "215"; + + desktopItem = makeDesktopItem { + name = "MAME"; + exec = "mame${stdenv.lib.optionalString stdenv.is64bit "64"}"; + desktopName = "MAME"; + genericName = "MAME is a multi-purpose emulation framework"; + categories = "System;Emulator;"; + }; +in mkDerivation { + pname = "mame"; + version = "${majorVersion}.${minorVersion}"; + + src = fetchFromGitHub { + owner = "mamedev"; + repo = "mame"; + rev = "mame${majorVersion}${minorVersion}"; + sha256 = "1phz846p3zzgzrbfiq2vn79iqar2dbf7iv6wfkrp32sdkkvp7l3h"; + }; + + hardeningDisable = [ "fortify" ]; + NIX_CFLAGS_COMPILE = [ "-Wno-error=maybe-uninitialized" ]; + + makeFlags = [ "TOOLS=1" ]; + + buildInputs = [ SDL2 SDL2_ttf alsaLib qtbase libXinerama ]; + nativeBuildInputs = [ python pkgconfig which ]; + + installPhase = '' + dest=$out/opt/mame + + make -f dist.mak PTR64=${if stdenv.is64bit then "1" else "0"} + mkdir -p $dest + mv build/release/${if stdenv.is64bit then "x64" else "x32"}/Release/mame/* $dest + + mkdir -p $out/bin + find $dest -maxdepth 1 -executable -type f -exec mv -t $out/bin {} \; + + mkdir -p $out/share/man/man{1,6} + mv $dest/docs/man/*.1 $out/share/man/man1 + mv $dest/docs/man/*.6 $out/share/man/man6 + + mkdir -p $out/share + ln -s ${desktopItem}/share/applications $out/share + ''; + + meta = with stdenv.lib; { + description = "Is a multi-purpose emulation framework"; + homepage = https://www.mamedev.org/; + license = with licenses; [ bsd3 gpl2Plus ]; + platforms = [ "x86_64-linux" "i686-linux" ]; + maintainers = with maintainers; [ gnidorah ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 42203a18847..b5f9cc462ff 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24311,6 +24311,8 @@ in icu = icu58; }; + mame = libsForQt5.callPackage ../misc/emulators/mame { }; + martyr = callPackage ../development/libraries/martyr { }; mess = callPackage ../misc/emulators/mess { From f73694a64a51586b71fd86837592b794c1fc420e Mon Sep 17 00:00:00 2001 From: gnidorah Date: Wed, 30 Oct 2019 22:32:30 +0300 Subject: [PATCH 2/3] mess: drop MAME and MESS are now combined as one distribution as of the 0.162 release and offered as a MAME binary (MESS is included in the build). --- pkgs/misc/emulators/mess/default.nix | 49 ---------------------------- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 4 --- 3 files changed, 1 insertion(+), 53 deletions(-) delete mode 100644 pkgs/misc/emulators/mess/default.nix diff --git a/pkgs/misc/emulators/mess/default.nix b/pkgs/misc/emulators/mess/default.nix deleted file mode 100644 index fc63bf705f4..00000000000 --- a/pkgs/misc/emulators/mess/default.nix +++ /dev/null @@ -1,49 +0,0 @@ -{ stdenv, fetchurl, unzip, pkgconfig, SDL, gtk2, GConf, libGLU_combined -, expat, zlib }: - -let - - version = "139"; - - mameSrc = fetchurl { - url = "https://github.com/mamedev/mame/releases/download/mame0139/mame0${version}s.zip"; - sha256 = "1mpkwxfz38cgxzvlni2y3fxas3b8qmnzj2ik2zzbd8mr622jdp79"; - }; - - messSrc = fetchurl { - url = "http://www.progettosnaps.net/MESS/src/mess0${version}s.zip"; - name = "mess0139s.zip"; - sha256 = "1v892cg6wn8cdwc8pf1gcqqdb1v1v295r6jw2hf58svwx3h27xyy"; - }; - -in - -stdenv.mkDerivation { - name = "mess-0.${version}"; - - unpackPhase = - '' - unzip ${mameSrc} - # Yes, the MAME distribution is a zip file containing a zip file... - unzip mame.zip - unzip -o ${messSrc} - ''; - - makeFlags = "TARGET=mess BUILD_EXPAT= BUILD_ZLIB= NOWERROR=1"; - - buildInputs = - [ unzip pkgconfig SDL gtk2 GConf libGLU_combined expat zlib ]; - - installPhase = - '' - mkdir -p $out/bin - cp mess* $out/bin/mess - ''; - - meta = { - homepage = https://www.mess.org/; - license = "non-commercial"; - description = "Multi Emulator Super System, an emulator of many game consoles and computer systems"; - broken = true; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index d443f81d44b..0b7ccb55873 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -209,6 +209,7 @@ mapAliases ({ man_db = man-db; # added 2016-05 manpages = man-pages; # added 2015-12-06 mariadb-client = hiPrio mariadb.client; #added 2019.07.28 + mess = mame; # added 2019-10-30 mysql-client = hiPrio mariadb.client; memtest86 = memtest86plus; # added 2019-05-08 mesa_noglu = mesa; # added 2019-05-28 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b5f9cc462ff..3e3457589e4 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24315,10 +24315,6 @@ in martyr = callPackage ../development/libraries/martyr { }; - mess = callPackage ../misc/emulators/mess { - inherit (pkgs.gnome2) GConf; - }; - moltengamepad = callPackage ../misc/drivers/moltengamepad { }; openzwave = callPackage ../development/libraries/openzwave { }; From cf17479caa8e7d366af602943c095598773b605b Mon Sep 17 00:00:00 2001 From: gnidorah Date: Wed, 30 Oct 2019 22:35:04 +0300 Subject: [PATCH 3/3] sdlmame: drop There are no longer separate programs called SDLMAME or SDLMESS. Instead, the SDL capability is included in MAME and MESS, and the makefile will auto-detect if you are on a non-Windows system and run accordingly. --- pkgs/games/sdlmame/default.nix | 42 --------------------------------- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 -- 3 files changed, 1 insertion(+), 44 deletions(-) delete mode 100644 pkgs/games/sdlmame/default.nix diff --git a/pkgs/games/sdlmame/default.nix b/pkgs/games/sdlmame/default.nix deleted file mode 100644 index 7811b4b7373..00000000000 --- a/pkgs/games/sdlmame/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ stdenv, fetchurl, alsaLib, qt48, SDL, fontconfig, freetype, SDL_ttf, xorg }: - -stdenv.mkDerivation rec { - version = "0.151.u0-1"; - pname = "sdlmame"; - - src = if stdenv.hostPlatform.system == "x86_64-linux" - then fetchurl { - url = "http://seblu.net/a/archive/packages/s/sdlmame/${pname}-${version}-x86_64.pkg.tar.xz"; - sha256 = "1j9vjxhrhsskrlk5wr7al4wk2hh3983kcva42mqal09bmc8qg3m9"; - } - else fetchurl { - url = "http://seblu.net/a/archive/packages/s/sdlmame/${pname}-${version}-i686.pkg.tar.xz"; - sha256 = "1i38j9ml66pyxzm0zzf1fv4lb40f6w47cdgaw846q91pzakkkqn7"; - }; - - buildPhase = '' - sed -i "s|/usr|$out|" bin/sdlmame - ''; - - installPhase = '' - patchelf \ - --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath "${stdenv.lib.makeLibraryPath [ alsaLib qt48 SDL fontconfig freetype SDL_ttf xorg.libX11 xorg.libXinerama stdenv.cc.cc ]}" \ - share/sdlmame/sdlmame - - mkdir -p "$out/bin" - cp -r bin/sdlmame "$out/bin" - cp -r share "$out" - ''; - - dontPatchELF = true; - dontStrip = true; - - meta = with stdenv.lib; { - homepage = http://sdlmame.lngn.net; - description = "A port of the popular Multiple Arcade Machine Emulator using SDL with OpenGL support"; - license = "MAME"; - maintainers = with maintainers; [ lovek323 ]; - platforms = [ "x86_64-linux" "i686-linux" ]; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 0b7ccb55873..29f14a7754b 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -336,6 +336,7 @@ mapAliases ({ sapic = throw "deprecated 2019-1-19: sapic is bundled with 'tamarin-prover' now"; scim = sc-im; # added 2016-01-22 scollector = bosun; # added 2018-04-25 + sdlmame = mame; # added 2019-10-30 shared_mime_info = shared-mime-info; # added 2018-02-25 skrooge2 = skrooge; # added 2017-02-18 skype = skypeforlinux; # added 2017-07-27 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 3e3457589e4..9e2372ee7b0 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -22739,8 +22739,6 @@ in scrolls = callPackage ../games/scrolls { }; - sdlmame = callPackage ../games/sdlmame { }; - service-wrapper = callPackage ../os-specific/linux/service-wrapper { }; sgtpuzzles = callPackage (callPackage ../games/sgt-puzzles) { };