Files
nixpkgs/pkgs/by-name/dr/drum-machine/package.nix
2026-09-18 18:40:10 +02:00

81 lines
1.8 KiB
Nix

{
lib,
appstream,
blueprint-compiler,
desktop-file-utils,
fetchFromGitHub,
glib,
gobject-introspection,
gtk4,
libadwaita,
meson,
ninja,
nix-update-script,
pkg-config,
python3Packages,
wrapGAppsHook4,
ffmpeg-headless,
}:
python3Packages.buildPythonApplication (finalAttrs: {
pname = "drum-machine";
version = "2.2.0";
pyproject = false;
src = fetchFromGitHub {
owner = "Revisto";
repo = "drum-machine";
tag = "v${finalAttrs.version}";
hash = "sha256-CBDRoUD4kvbqkyUzxmPEcbW4UJLycRAYC4s40fZ0xYY=";
};
nativeBuildInputs = [
appstream
blueprint-compiler
desktop-file-utils
glib
gobject-introspection
gtk4 # For `gtk-update-icon-theme`
meson
ninja
pkg-config
wrapGAppsHook4
];
buildInputs = [ libadwaita ];
dependencies = with python3Packages; [
mido
pygame
pygobject3
numpy
];
dontWrapGApps = true;
makeWrapperArgs = [
"\${gappsWrapperArgs[@]}"
"--prefix PATH : ${lib.makeBinPath [ ffmpeg-headless ]}"
];
# NOTE: `postCheck` is intentionally not used here, as the entire checkPhase
# is skipped by `buildPythonApplication`
# https://github.com/NixOS/nixpkgs/blob/9d4343b7b27a3e6f08fc22ead568233ff24bbbde/pkgs/development/interpreters/python/mk-python-derivation.nix#L296
postInstallCheck = ''
mesonCheckPhase
'';
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Modern and intuitive application for creating, playing, and managing drum patterns";
homepage = "https://apps.gnome.org/DrumMachine";
changelog = "https://github.com/Revisto/drum-machine/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.gpl3Plus;
teams = [ lib.teams.gnome-circle ];
platforms = lib.platforms.linux;
};
})