aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker/0001-Remove-coherency-checks.patch52
-rw-r--r--infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker/default.nix72
2 files changed, 124 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker/0001-Remove-coherency-checks.patch b/infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker/0001-Remove-coherency-checks.patch
new file mode 100644
index 000000000000..3cabd2a2c56c
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker/0001-Remove-coherency-checks.patch
@@ -0,0 +1,52 @@
+From 2e1e9b3ffce9d1069fca0b27b8011f85c7547c3b Mon Sep 17 00:00:00 2001
+From: Francesco Gazzetta <fgaz@fgaz.me>
+Date: Wed, 19 Aug 2020 15:06:19 +0200
+Subject: [PATCH 1/2] Remove coherency checks >:)
+
+As far as I can see, they are just to make sure that the types can fit
+in the word length, but this check was written when 64 bits weren't a
+possibility and didn't take that into account,
+so although the types do fit, the checks fail.
+Indeed, the program seems to work well on 64 bits.
+More info here:
+https://github.com/Mdashdotdashn/LittleGPTracker/issues/4
+---
+ sources/Externals/Soundfont/DATATYPE.H | 22 ----------------------
+ 1 file changed, 22 deletions(-)
+
+diff --git a/sources/Externals/Soundfont/DATATYPE.H b/sources/Externals/Soundfont/DATATYPE.H
+index 762a724..f6b031f 100644
+--- a/sources/Externals/Soundfont/DATATYPE.H
++++ b/sources/Externals/Soundfont/DATATYPE.H
+@@ -123,28 +123,6 @@ typedef short SHORT; /* 16 bit signed value was: INT */
+ ********************************************************************/
+ typedef unsigned short EMUSTAT;
+
+-/********************************************************************
+-* Compare <limits.h> values with SoundFont Enabler limits. Fail compile
+-* if discrepency. If compile fails due to one of these errors, then
+-* the SoundFont enabler will not work with your system or the state of your
+-* development environment.
+-********************************************************************/
+-#if (SCHAR_MAX != CHAR_MAXVAL) || (UCHAR_MAX != BYTE_MAXVAL)
+- #error <datatype.h>: char is out of range!
+-#endif
+-
+-#if (SHRT_MAX != SHRT_MAXVAL)
+- #error <datatype.h>: short is out of range!
+-#endif
+-
+-#if (LONG_MAX != LONG_MAXVAL)
+- #error <datatype.h>: long is out of range!
+-#endif
+-
+-#if (ULONG_MAX != DWORD_MAXVAL)
+- #error <datatype.h>: unsigned long is out of range!
+-#endif
+-
+ #ifdef __BYTE_COHERENT
+
+ /********************************************************************
+--
+2.25.4
+
diff --git a/infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker/default.nix b/infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker/default.nix
new file mode 100644
index 000000000000..2fb453cf19c5
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/applications/audio/littlegptracker/default.nix
@@ -0,0 +1,72 @@
+{ stdenv
+, fetchFromGitHub
+, unstableGitUpdater
+, SDL
+, jack2
+, Foundation
+}:
+
+stdenv.mkDerivation rec {
+ pname = "littlegptracker";
+ version = "unstable-2020-11-26";
+
+ src = fetchFromGitHub {
+ owner = "Mdashdotdashn";
+ repo = "littlegptracker";
+ rev = "4aca8cd765e1ad586da62decd019e66cb64b45b8";
+ sha256 = "0f2ip8z5wxk8fvlw47mczsbcrzh4nh1hgw1fwf5gjrqnzm8v111x";
+ };
+
+ buildInputs = [
+ SDL
+ ]
+ ++ stdenv.lib.optional stdenv.isDarwin Foundation
+ ++ stdenv.lib.optional stdenv.isLinux jack2;
+
+ patches = [
+ # Remove outdated (pre-64bit) checks that would fail on modern platforms
+ # (see description in patch file)
+ ./0001-Remove-coherency-checks.patch
+ ];
+
+ preBuild = "cd projects";
+
+ makeFlags = [ "CXX=${stdenv.cc.targetPrefix}c++" ]
+ ++ stdenv.lib.optionals stdenv.isLinux [ "PLATFORM=DEB" ]
+ ++ stdenv.lib.optionals stdenv.isDarwin [ "PLATFORM=OSX" ];
+
+ NIX_CFLAGS_COMPILE = [ "-fpermissive" ] ++
+ stdenv.lib.optional stdenv.hostPlatform.isAarch64 "-Wno-error=narrowing";
+
+ NIX_LDFLAGS = stdenv.lib.optional stdenv.isDarwin "-framework Foundation";
+
+ installPhase = let extension = if stdenv.isDarwin then "app" else "deb-exe";
+ in "install -Dm555 lgpt.${extension} $out/bin/lgpt";
+
+ passthru.updateScript = unstableGitUpdater { };
+
+ meta = with stdenv.lib; {
+ description = "A music tracker similar to lsdj optimised to run on portable game consoles";
+ longDescription = ''
+ LittleGPTracker (a.k.a 'The piggy', 'lgpt') is a music tracker optimised
+ to run on portable game consoles. It is currently running on Game Park's
+ GP2x & Caanoo, PSP, Dingoo, Windows, Mac OSX (intel/ppc) & Linux (Debian).
+
+ It implements the user interface of littlesounddj, a very famous tracker
+ for the Gameboy platform that has been tried and tested by many users over
+ the years, leading to a little complex but yet extremely efficent way of
+ working.
+
+ Piggy currently supports 8 monophonic 16Bit/44.1Khz stereo sample playback
+ channels. Additionally, the program can drive MIDI instruments (with the
+ gp32 and gp2x a custom MIDI interface is required).
+ '';
+ homepage = "http://www.littlegptracker.com/";
+ downloadPage = "http://www.littlegptracker.com/download.php";
+ license = licenses.bsd3;
+ maintainers = with maintainers; [ fgaz ];
+ platforms = platforms.all;
+ # https://github.com/NixOS/nixpkgs/pull/91766#issuecomment-688751821
+ broken = stdenv.isDarwin;
+ };
+}