summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/music.scm41
-rw-r--r--gnu/packages/patches/petri-foo-0.1.87-fix-recent-file-not-exist.patch24
3 files changed, 66 insertions, 0 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 408f7c376b..3da47858ff 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1629,6 +1629,7 @@ dist_patch_DATA = \
%D%/packages/patches/password-store-tree-compat.patch \
%D%/packages/patches/pciutils-hurd-configure.patch \
%D%/packages/patches/pciutils-hurd-fix.patch \
+ %D%/packages/patches/petri-foo-0.1.87-fix-recent-file-not-exist.patch \
%D%/packages/patches/plasma-framework-fix-KF5PlasmaMacros.cmake.patch \
%D%/packages/patches/pocketfft-cpp-prefer-preprocessor-if.patch \
%D%/packages/patches/pokerth-boost.patch \
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index aeb86a4799..65bb6d29f7 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -2178,6 +2178,47 @@ Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.")
users to select LV2 plugins and run them with jalv.")
(license license:public-domain)))
+(define-public petri-foo
+ (package
+ (name "petri-foo")
+ (version "0.1.87")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/petri-foo/Source"
+ "/petri-foo-" version ".tar.bz2"))
+ (sha256
+ (base32
+ "0b25iicgn8c42487fdw32ycfrll1pm2zjgy5djvgw6mfcaa4gizh"))
+ (modules '((guix build utils)))
+ ;; https://github.com/petri-foo/Petri-Foo/pull/43
+ (snippet '(begin
+ (substitute* "gui/gui.c"
+ (("#include \\\"waveform\\.h\\\"")
+ (string-append
+ "#include \"waveform.h\""
+ "\n\nGtkRecentManager *recent_manager;")))
+ (substitute* "gui/gui.h"
+ (("GtkRecentManager \\*recent_manager;")
+ "extern GtkRecentManager *recent_manager;"))))))
+ (build-system cmake-build-system)
+ (arguments (list #:tests? #f)) ;no test target
+ (native-inputs (list pkg-config))
+ (inputs (list alsa-lib
+ glib
+ jack-1
+ libgnomecanvas
+ liblo
+ libsamplerate
+ libsndfile
+ libxml2
+ openssl))
+ (home-page "https://petri-foo.sourceforge.net/")
+ (synopsis "Audio sampler for JACK")
+ (description
+ "Petri-Foo is a fork of the Specimen sampler project intended to run under
+a JACK session.")
+ (license license:gpl2)))
+
(define-public mixxx
(package
(name "mixxx")
diff --git a/gnu/packages/patches/petri-foo-0.1.87-fix-recent-file-not-exist.patch b/gnu/packages/patches/petri-foo-0.1.87-fix-recent-file-not-exist.patch
new file mode 100644
index 0000000000..3e88487b07
--- /dev/null
+++ b/gnu/packages/patches/petri-foo-0.1.87-fix-recent-file-not-exist.patch
@@ -0,0 +1,24 @@
+diff -Naur a/gui/bank-ops.c b/gui/bank-ops.c
+--- a/gui/bank-ops.c 2012-08-06 05:33:34.000000000 +0200
++++ b/gui/bank-ops.c 2012-08-07 17:57:28.580145691 +0200
+@@ -393,6 +393,8 @@
+ g_signal_connect_swapped(G_OBJECT(msg), "response",
+ G_CALLBACK(gtk_widget_destroy), msg);
+ gtk_widget_show (msg);
++
++ gtk_recent_manager_remove_item(recent_manager, filename, NULL);
+ }
+ else
+ {
+diff -Naur a/libpetrifui/dish_file.c b/libpetrifui/dish_file.c
+--- a/libpetrifui/dish_file.c 2012-08-06 05:33:34.000000000 +0200
++++ b/libpetrifui/dish_file.c 2012-08-07 17:56:09.063909801 +0200
+@@ -1440,7 +1440,7 @@
+
+ if (stat(path, &st) != 0)
+ {
+- msg_log(MSG_ERROR, "file '%s' does not exist\n");
++ msg_log(MSG_ERROR, "file '%s' does not exist\n", path);
+ return -1;
+ }
+