diff mbox series

[bug#42283] gnu: Add adlplug.

Message ID 16c9b7c18396f37fd15cc570edb808f08dc8849f.camel@zrythm.org
State New
Headers show
Series [bug#42283] gnu: Add adlplug. | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job

Commit Message

Alexandros Theodotou July 8, 2020, 9:47 p.m. UTC
Hi,

This patch adds the ADLPlug LV2 plugin.

Thanks,
Alex

Comments

Marius Bakke July 20, 2020, 10:55 p.m. UTC | #1
Alexandros Theodotou <alex@zrythm.org> writes:

> Hi,
>
> This patch adds the ADLPlug LV2 plugin.

[...]

> * gnu/packages/music.scm (adlplug): New variable.

[...]
  
> +(define-public adlplug
> +  (package
> +    (name "adlplug")
> +    (version "1.0.1")
> +    (source
> +      (origin
> +        (method git-fetch)
> +        (uri (git-reference
> +               (url "https://github.com/jpcima/ADLplug.git")
> +               (commit (string-append "v" version))
> +               (recursive? #t))) ; uses 3rd party submodules

Is it possible to package these modules separately?

One of the submodules, uses a seemingly non-free license:

  https://juce.com/juce-5-license

Interestingly, it becomes a free license (GPL3) once you exceed a
certain revenue!?

IANAL and only had a cursory look, but am not comfortable adding this
without a larger discussion.  A good first step would be to package JUCE
separately and take it from there.

The other bundled packages seem fine, but it would be comforting to have
them in Guix even if this package needs the bundled versions.  I also
think we should mention their licenses -- especially since vst3sdk is
available as either a proprietary license or GPL3, and taking the latter
implies that this package _also_ becomes GPL3.

(btw, the bundled fmt library is already available)

So, this will be a tricky one.  Do you think you can look into packaging
the bundled components separately?
Alexandros Theodotou July 20, 2020, 11:18 p.m. UTC | #2
Hi,

Thanks for the review.

On Tue, 2020-07-21 at 00:55 +0200, Marius Bakke wrote:
> > +        (uri (git-reference
> > +               (url "https://github.com/jpcima/ADLplug.git")
> > +               (commit (string-append "v" version))
> > +               (recursive? #t))) ; uses 3rd party submodules
> 
> Is it possible to package these modules separately?
> 
> One of the submodules, uses a seemingly non-free license:
> 
>   https://juce.com/juce-5-license
> 
> Interestingly, it becomes a free license (GPL3) once you exceed a
> certain revenue!?
> 
> IANAL and only had a cursory look, but am not comfortable adding this
> without a larger discussion.  A good first step would be to package
> JUCE
> separately and take it from there.
The thing is that this is a fork of JUCE with some extra commits. The
original JUCE doesn't include an LV2 exporter for example (after
ignoring requests and patches to add it for years, it's still not
there. fun thread: https://github.com/juce-framework/JUCE/issues/123 )
so I think this fork adds the LV2 exporter among other things (I also
see various other commits that are not in other JUCE forks I know of).

Re the license: JUCE is dual-licened under a proprietary license and
GPL3+, and some modules are under the ISC license. adlplug has its
source code licensed under boost, but since it includes JUCE it's
essentially covered by the GPL3+

> 
> The other bundled packages seem fine, but it would be comforting to
> have
> them in Guix even if this package needs the bundled versions.  I also
> think we should mention their licenses -- especially since vst3sdk is
> available as either a proprietary license or GPL3, and taking the
> latter
> implies that this package _also_ becomes GPL3.
Yes same as JUCE. I'll send an updated patch that mentions all the
licenses. It would be nice to have the libraries in Guix anyway but I
don't have much time/interest in them at the moment to do that.

> 
> (btw, the bundled fmt library is already available)
> 
> So, this will be a tricky one.  Do you think you can look into
> packaging
> the bundled components separately?
I checked them, and they seem to be fixed to specific commits and not
releases. I am not sure if there's something specific in those commits
that's not included in the releases that the plugin needs. I'd play it
safe and use the submodules here.

Thanks,
Alex
diff mbox series

Patch

From 9fb65e86d7d175b7680777fb74082491642bfe1c Mon Sep 17 00:00:00 2001
From: Alexandros Theodotou <alex@zrythm.org>
Date: Wed, 8 Jul 2020 22:46:38 +0100
Subject: [PATCH] gnu: Add adlplug.

* gnu/packages/music.scm (adlplug): New variable.
---
 gnu/packages/music.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 0b8b8df226..11cd0dc246 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1422,6 +1422,48 @@  sessions.  Solfege is also designed to be extensible so you can easily write
 your own lessons.")
     (license license:gpl3+)))
 
+(define-public adlplug
+  (package
+    (name "adlplug")
+    (version "1.0.1")
+    (source
+      (origin
+        (method git-fetch)
+        (uri (git-reference
+               (url "https://github.com/jpcima/ADLplug.git")
+               (commit (string-append "v" version))
+               (recursive? #t))) ; uses 3rd party submodules
+        (file-name (git-file-name name version))
+        (sha256
+         (base32
+          "0n9srdlgl1j528ap5xmllrqs1w6ibc5yf9sphvl1q9kjnizxrs2c"))))
+    (build-system cmake-build-system)
+   (arguments
+    `(#:tests? #f  ; no tests
+      #:configure-flags `("-DADLplug_VST2=OFF"
+                          "-DADLplug_VST3=OFF"
+                          "-DADLplug_LV2=ON"
+                          "-DADLplug_Standalone=ON"
+                          "-DADLplug_Jack=ON"
+                          "-DADLplug_CHIP=OPL3")))
+   (inputs
+    `(("alsa-lib" ,alsa-lib)
+      ("freetype" ,freetype)
+      ("jack" ,jack-1)
+      ("libx11" ,libx11)
+      ("libxcursor" ,libxcursor)
+      ("libxinerama" ,libxinerama)
+      ("libxrandr" ,libxrandr)))
+   (native-inputs
+    `(("pkg-config" ,pkg-config)))
+    (synopsis "FM chip synthesizer plugin")
+    (description
+      "This package provides FM synthesizer plugins, based on
+OPL3 and OPN2 sound chip emulations.  The emulations and the drivers are
+provided by libADLMIDI and libOPNMIDI.")
+    (home-page "https://github.com/jpcima/ADLplug")
+    (license license:boost1.0)))
+
 (define-public powertabeditor
   (package
     (name "powertabeditor")
-- 
2.27.0