diff --git a/pkgs/applications/audio/famistudio/default.nix b/pkgs/applications/audio/famistudio/default.nix new file mode 100644 index 000000000000..f1971ad0216e --- /dev/null +++ b/pkgs/applications/audio/famistudio/default.nix @@ -0,0 +1,66 @@ +{ lib +, stdenv +, fetchzip +, autoPatchelfHook +, makeWrapper +, alsa-lib +, gtk-sharp-2_0 +, glib +, gtk2 +, mono +, openal +}: + +stdenv.mkDerivation rec { + pname = "famistudio"; + version = "3.3.0"; + + src = fetchzip { + url = "https://github.com/BleuBleu/FamiStudio/releases/download/${version}/FamiStudio${lib.strings.concatStrings (lib.splitVersion version)}-LinuxAMD64.zip"; + stripRoot = false; + sha256 = "1r7y7z3s3b0zm7lvdgr9z70iall1swzlr3npx7g5azz6vza00vva"; + }; + + nativeBuildInputs = [ autoPatchelfHook makeWrapper ]; + + buildInputs = [ alsa-lib gtk-sharp-2_0 glib gtk2 mono openal ]; + + dontConfigure = true; + dontBuild = true; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{bin,lib/famistudio} + mv * $out/lib/famistudio + + makeWrapper ${mono}/bin/mono $out/bin/famistudio \ + --add-flags $out/lib/famistudio/FamiStudio.exe \ + --prefix MONO_GAC_PREFIX : ${gtk-sharp-2_0} \ + --prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ glib gtk2 gtk-sharp-2_0 ]} + + # Fails to find openal32.dll on its own, needs abit of help + rm $out/lib/famistudio/libopenal32.so + cat <$out/lib/famistudio/OpenTK.dll.config + + + + EOF + + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://famistudio.org/"; + description = "NES Music Editor"; + longDescription = '' + FamiStudio is very simple music editor for the Nintendo Entertainment System + or Famicom. It is targeted at both chiptune artists and NES homebrewers. + ''; + license = licenses.mit; + # Maybe possible to build from source but I'm not too familiar with C# packaging + sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; + maintainers = with maintainers; [ OPNA2608 ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index abc59d6463aa..b63ba2485832 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -26163,6 +26163,8 @@ with pkgs; faircamp = callPackage ../applications/misc/faircamp { }; + famistudio = callPackage ../applications/audio/famistudio { }; + fasttext = callPackage ../applications/science/machine-learning/fasttext { }; fbmenugen = callPackage ../applications/misc/fbmenugen { };