From 937961e4e7c6c47a62937b6e9eb18b312960e57f Mon Sep 17 00:00:00 2001 From: Stephen Sherratt Date: Tue, 13 Jul 2021 22:13:39 +1000 Subject: [PATCH 1/2] maintainers: add stevebob --- maintainers/maintainer-list.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 9ba85483ccd2..18b9d2867bf9 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -10074,6 +10074,12 @@ githubId = 1829294; name = "Steve Chávez"; }; + stevebob = { + email = "stephen@sherra.tt"; + github = "stevebob"; + githubId = 417118; + name = "Stephen Sherratt"; + }; steveej = { email = "mail@stefanjunker.de"; github = "steveej"; From 5ffb7c850046c94ec9ae58fb57b6ad9abe269013 Mon Sep 17 00:00:00 2001 From: Stephen Sherratt Date: Tue, 13 Jul 2021 22:08:23 +1000 Subject: [PATCH 2/2] bsnes-hd: init at 10.6-beta --- pkgs/misc/emulators/bsnes-hd/default.nix | 55 +++++++++++++++++++ .../bsnes-hd/macos-copy-app-to-prefix.patch | 18 ++++++ .../macos-replace-sips-with-png2icns.patch | 13 +++++ pkgs/top-level/all-packages.nix | 5 ++ 4 files changed, 91 insertions(+) create mode 100644 pkgs/misc/emulators/bsnes-hd/default.nix create mode 100644 pkgs/misc/emulators/bsnes-hd/macos-copy-app-to-prefix.patch create mode 100644 pkgs/misc/emulators/bsnes-hd/macos-replace-sips-with-png2icns.patch diff --git a/pkgs/misc/emulators/bsnes-hd/default.nix b/pkgs/misc/emulators/bsnes-hd/default.nix new file mode 100644 index 000000000000..6494185958c2 --- /dev/null +++ b/pkgs/misc/emulators/bsnes-hd/default.nix @@ -0,0 +1,55 @@ +{ lib, stdenv, fetchFromGitHub +, pkg-config +, libX11, libXv +, udev +, SDL2 +, gtk2, gtksourceview +, alsa-lib, libao, openal, libpulseaudio +, libicns, Cocoa, OpenAL +}: + +stdenv.mkDerivation { + pname = "bsnes-hd"; + version = "10.6-beta"; + + src = fetchFromGitHub { + owner = "DerKoun"; + repo = "bsnes-hd"; + rev = "beta_10_6"; + sha256 = "0f3cd89fd0lqskzj98cc1pzmdbscq0psdjckp86w94rbchx7iw4h"; + }; + + patches = [ + # Replace invocation of `sips` with an equivalent invocation of `png2icns` + # while assembling the .app directory hierarchy in the macos build. The + # `sips` executable isn't in our environment during the build, but + # `png2icns` is available by way of the dependency on libicns. + ./macos-replace-sips-with-png2icns.patch + + # During `make install` on macos the Makefile wants to move the .app into + # the current user's home directory. This patches the Makefile such that + # the .app ends up in $(prefix)/Applications. The $(prefix) variable will + # be set to $out, so this will result in the .app ending up in the + # Applications directory in the current nix profile. + ./macos-copy-app-to-prefix.patch + ]; + + nativeBuildInputs = [ pkg-config ] + ++ lib.optionals stdenv.isDarwin [ libicns ]; + + buildInputs = [ SDL2 libao ] + ++ lib.optionals stdenv.isLinux [ libX11 libXv udev gtk2 gtksourceview alsa-lib openal libpulseaudio ] + ++ lib.optionals stdenv.isDarwin [ Cocoa OpenAL ]; + + enableParallelBuilding = true; + + makeFlags = [ "-C" "bsnes" "prefix=$(out)" ]; + + meta = with lib; { + description = "A fork of bsnes that adds HD video features"; + homepage = "https://github.com/DerKoun/bsnes-hd"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ stevebob ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/misc/emulators/bsnes-hd/macos-copy-app-to-prefix.patch b/pkgs/misc/emulators/bsnes-hd/macos-copy-app-to-prefix.patch new file mode 100644 index 000000000000..d38efbc99bce --- /dev/null +++ b/pkgs/misc/emulators/bsnes-hd/macos-copy-app-to-prefix.patch @@ -0,0 +1,18 @@ +diff --git a/bsnes/target-bsnes/GNUmakefile b/bsnes/target-bsnes/GNUmakefile +index 7a3ab9f..ec8a1a4 100644 +--- a/bsnes/target-bsnes/GNUmakefile ++++ b/bsnes/target-bsnes/GNUmakefile +@@ -43,11 +43,8 @@ ifeq ($(platform),windows) + else ifeq ($(shell id -un),root) + $(error "make install should not be run as root") + else ifeq ($(platform),macos) +- mkdir -p ~/Library/Application\ Support/$(name)/ +- mkdir -p ~/Library/Application\ Support/$(name)/Database/ +- mkdir -p ~/Library/Application\ Support/$(name)/Firmware/ +- mkdir -p ~/Library/Application\ Support/$(name)/Shaders/ +- cp -R out/$(name).app /Applications/$(name).app ++ mkdir -p $(prefix)/Applications ++ cp -R out/$(name).app $(prefix)/Applications + else ifneq ($(filter $(platform),linux bsd),) + mkdir -p $(prefix)/bin/ + mkdir -p $(prefix)/share/applications/ diff --git a/pkgs/misc/emulators/bsnes-hd/macos-replace-sips-with-png2icns.patch b/pkgs/misc/emulators/bsnes-hd/macos-replace-sips-with-png2icns.patch new file mode 100644 index 000000000000..85adb33e3ab4 --- /dev/null +++ b/pkgs/misc/emulators/bsnes-hd/macos-replace-sips-with-png2icns.patch @@ -0,0 +1,13 @@ +diff --git a/bsnes/target-bsnes/GNUmakefile b/bsnes/target-bsnes/GNUmakefile +index 4c67bde..7a3ab9f 100644 +--- a/bsnes/target-bsnes/GNUmakefile ++++ b/bsnes/target-bsnes/GNUmakefile +@@ -33,7 +33,7 @@ ifeq ($(platform),macos) + cp Database/* out/$(name).app/Contents/MacOS/Database/ + cp -r ../shaders/* out/$(name).app/Contents/macOS/Shaders/ + cp $(ui)/resource/$(name).plist out/$(name).app/Contents/Info.plist +- sips -s format icns $(ui)/resource/$(name).png --out out/$(name).app/Contents/Resources/$(name).icns ++ png2icns out/$(name).app/Contents/Resources/$(name).icns $(ui)/resource/$(name).png + endif + + verbose: hiro.verbose ruby.verbose nall.verbose all; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a1dd7beb83a3..93333c8e3a5b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -32074,6 +32074,11 @@ in inherit (darwin.apple_sdk.frameworks) Carbon Cocoa OpenGL OpenAL; }; + bsnes-hd = callPackage ../misc/emulators/bsnes-hd { + inherit (gnome2) gtksourceview; + inherit (darwin.apple_sdk.frameworks) Cocoa OpenAL; + }; + yapesdl = callPackage ../misc/emulators/yapesdl { }; x16-emulator = callPackage ../misc/emulators/commanderx16/emulator.nix { };