summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorSughosha <Sughosha@proton.me>2022-12-30 20:28:27 +0000
committerLudovic Courtès <ludo@gnu.org>2023-01-19 17:54:50 +0100
commit3846ceec4e5016394f8f9ae122e7c092ab0c0bf3 (patch)
tree80293648bc929d1e98db5af4144a6f478d573477 /gnu/packages
parentf59df2f488061c68bb828470aef5c14811df4c4a (diff)
downloadguix-3846ceec4e5016394f8f9ae122e7c092ab0c0bf3.tar.gz
gnu: Add petri-foo.
* gnu/packages/music.scm (petri-foo): New public variable.
* gnu/packages/patches/petri-foo-0.1.87-fix-recent-file-not-exist.patch
* gnu/local.mk (GNU_SYSTEM_MODULES): Add the new patch file.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/music.scm41
-rw-r--r--gnu/packages/patches/petri-foo-0.1.87-fix-recent-file-not-exist.patch24
2 files changed, 65 insertions, 0 deletions
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;
+     }
+