Subject: [bug#72657] [PATCH] Add drops package

From: Apoorv <[email-masked]>
Date: Fri, 16 Aug 2024 12:37:48 +0200 (CEST)

This is a patch to add a new package, `drops` to `gnu/packages/music.scm`.

-- 
 Sent with Tuta; enjoy secure & ad-free emails: 
 https://tuta.com
>From 411195885d2853b4bb61c71e8ba4900e66066d2d Mon Sep 17 00:00:00 2001
From: apoorv569 <[email-masked]>
Date: Fri, 16 Aug 2024 15:31:08 +0530
Subject: [PATCH 04/13] Add drops package

---
 gnu/packages/music.scm | 62 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index f827c5b605..bb03f3d532 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -8118,6 +8118,68 @@ (define-public gxplugins-lv2
 Each plugin exists as its own submodule under this repository.")
      (license license:gpl3))))
 
+(define-public drops
+  (let ((commit "185cf4bb9852acb3b92dadb2caf8cc1a3e0369aa")
+        (revision "0"))
+    (package
+     (name "drops")
+     (version (git-version "1.0-beta.2" revision commit))
+     (source
+      (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/clearly-broken-software/drops")
+             (commit commit)
+             ;; Bundles a specific commit of the DISTRHO plugin framework.
+             (recursive? #t)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "17yf8rqn7y5598f44q3w8drzg663yl32dc9qw1dkf2cgscyrvhw6"))))
+     (build-system gnu-build-system)
+     (arguments
+      `(#:tests? #f ;no tests
+        #:make-flags
+        (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+              (string-append "CC=" ,(cc-for-target)))
+        #:phases
+        (modify-phases %standard-phases
+                       (delete 'configure) ;no configure target
+                       (replace 'install
+                                ;; no install target
+                                (lambda* (#:key outputs #:allow-other-keys)
+                                  (let* ((out (assoc-ref outputs "out"))
+                                         (bin (string-append out "/bin"))
+                                         (lv2 (string-append out "/lib/lv2")))
+                                    ;; Install LV2.
+                                    (for-each
+                                     (lambda (file)
+                                       (copy-recursively file
+                                                         (string-append lv2 "/" (basename file))))
+                                     (find-files "bin" "\\.lv2$"
+                                                 #:directories? #t))
+                                    ;; Install executables.
+                                    (for-each
+                                     (lambda (file)
+                                       (install-file file bin))
+                                     (find-files "bin"
+                                                 (lambda (name stat)
+                                                   (and
+                                                    (equal? (dirname name) "bin")
+                                                    (not (string-suffix? ".so" name))
+                                                    (not (string-suffix? ".lv2" name))))))
+                                    #t))))))
+     (inputs (list libx11
+                   jack-1 ;; for the standalone JACK application
+                   mesa
+                   libsndfile))
+     (native-inputs (list pkg-config))
+     (synopsis "Drops Really Only Plays Samples")
+     (description
+      "Drops is a single audio file sample player plugin in lv2 and vst format for linux.
+Load an audio file, play it, loop it, pitch shift it, and make it into something entirely new.")
+     (home-page "https://github.com/clearly-broken-software/drops")
+     (license license:gpl3+))))
+
 ;;;
 ;;; Avoid adding new packages to the end of this file. To reduce the chances
 ;;; of a merge conflict, place them above by existing packages with similar
-- 
2.45.2