[PATCH] gnu: Add distrho-ports.

  • Open
  • quality assurance status badge
Details
2 participants
  • Alexandros Theodotou
  • Marius Bakke
Owner
unassigned
Submitted by
Alexandros Theodotou
Severity
normal
A
A
Alexandros Theodotou wrote on 8 Jul 2020 23:27
(name . Guix patches)(address . guix-patches@gnu.org)
ccaac6730e03d4c7719c480c6d6711d6bc9e14f8.camel@zrythm.org
Hi,

This patch adds distrho-ports, a collection of LV2 plugins ported from
other platforms/frameworks.

The meson build system was recently added and not released yet (it used
an old version of premake before and failed to build on guix).

Thanks,
Alex
From 162c01597dac51a1a2152ea88abe7fa917039d67 Mon Sep 17 00:00:00 2001
From: Alexandros Theodotou <alex@zrythm.org>
Date: Wed, 8 Jul 2020 22:24:53 +0100
Subject: [PATCH] gnu: Add distrho-ports.

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

Toggle diff (59 lines)
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 7f1f3f3e9a..490f010c4a 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1076,6 +1076,52 @@ Guile.")
;; more than an hour of silence, so double the max silent time.
(properties `((max-silent-time . 7200)))))
+(define-public distrho-ports
+ ;; the previous release required a version of premake not present
+ ;; in guix. it has now been ported to meson but not released yet
+ (let ((commit "a953bed05844d4a0ba349f75c75b56a430c8b11a")
+ (revision "1"))
+ (package
+ (name "distrho-ports")
+ (version (git-version "2018-04-16" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri
+ (git-reference
+ (url "https://github.com/DISTRHO/DISTRHO-Ports.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "03ji41i6dpknws1vjwfxnl8c8bgisv2ng8xa4vqy2473k7wgdw4v"))))
+ (build-system meson-build-system)
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("freetype" ,freetype)
+ ("mesa" ,mesa)
+ ("libxrender" ,libxrender)
+ ("libxcursor" ,libxcursor)
+ ("xorgproto" ,xorgproto)
+ ("libx11" ,libx11)))
+ (native-inputs
+ `(("lv2" ,lv2)
+ ("pkg-config" ,pkg-config)))
+ (synopsis "Collection of audio plugins and LV2 ports")
+ (description
+ "DISTRHO is a project with the goal of making cross-platform audio
+ plugins and GNU/Linux ports.
+ This package includes HiReSam, LUFSMeter-Multi, LUFSMeter, Arctican Function,
+ Arctican Pilgrim, Dexed, dRowAudio Distortion, dRowAudio Distortion Shaper,
+ dRowAudio Flanger, dRowAudioReverb, dRowAudio Tremolo, DrumSynth, easySSP,
+ EQuinox, JUCE Demo Plugin, JUCE OPL, Klangfalter, Luftikus, Obxd, Pitched
+ Delay, Refine, Stereo Source Separation, TAL Dub 3, TAL Noise Maker, TAL
+ Reverb 2, TAL Reverb 3, TAL Reverb, TAL Vocoder 2, Temper, Vex and
+ Wolpertinger.")
+ (home-page "http://distrho.sourceforge.net/ports")
+ (license (list license:gpl2 ; found in doc directory
+ license:lgpl3+ ; found in doc directory
+ license:gpl3))))) ; mentioned in meson file
+
(define-public non-sequencer
;; The latest tagged release is three years old and uses a custom build
;; system, so we take the last commit.
--
2.27.0
-----BEGIN PGP SIGNATURE-----

iQEzBAABCAAdFiEESBMjhK0999huJUuDAi6uQjE9cPMFAl8GOjkACgkQAi6uQjE9
cPPgbAf8D5Bf1WP5d57MMgBgChAw+kFAcEcv83P/QNOcopXOwebhT+hBQN6B2GDl
BkeTb1y8klaFYuEY/y/rF7KduHsSaUT7c73xCPo8eWcUd218C1WHEWg1tz/BJpLr
wAWr0PilzIUE+urBLILvX8Zc6UbROeUts3mq3p0TJJuQkLGorakKZ+UUP9xJC+4n
Bmhr5nojWPl8RTBwtgCiGvwkg4ArYvcz0/YpPeb55jRP3SN/oABUpVoGZuIA2NL/
asLWd9sXwG0YwsO1eN55+cKJPNQ6f1PbKgw+WTW0zwcYi1bvMNdVrPKTB1tpnxro
BPEHqVRHYKNAR6YFMP5P4oSWFsYaBg==
=ehsn
-----END PGP SIGNATURE-----


M
M
Marius Bakke wrote on 21 Jul 2020 00:07
87eep5hmc2.fsf@gnu.org
Alexandros Theodotou <alex@zrythm.org> writes:

Toggle quote (8 lines)
> Hi,
>
> This patch adds distrho-ports, a collection of LV2 plugins ported from
> other platforms/frameworks.
>
> The meson build system was recently added and not released yet (it used
> an old version of premake before and failed to build on guix).

[...]

Toggle quote (2 lines)
> * gnu/packages/music.scm (distrho-ports): New variable.

[...]
Toggle quote (4 lines)
> +(define-public distrho-ports
> + ;; the previous release required a version of premake not present
> + ;; in guix. it has now been ported to meson but not released yet

Please use capitalizations like in normal sentences, and for names such
as Guix and Meson.

Actually it seems to be released now:


Toggle quote (16 lines)
> + (synopsis "Collection of audio plugins and LV2 ports")
> + (description
> + "DISTRHO is a project with the goal of making cross-platform audio
> + plugins and GNU/Linux ports.
> + This package includes HiReSam, LUFSMeter-Multi, LUFSMeter, Arctican Function,
> + Arctican Pilgrim, Dexed, dRowAudio Distortion, dRowAudio Distortion Shaper,
> + dRowAudio Flanger, dRowAudioReverb, dRowAudio Tremolo, DrumSynth, easySSP,
> + EQuinox, JUCE Demo Plugin, JUCE OPL, Klangfalter, Luftikus, Obxd, Pitched
> + Delay, Refine, Stereo Source Separation, TAL Dub 3, TAL Noise Maker, TAL
> + Reverb 2, TAL Reverb 3, TAL Reverb, TAL Vocoder 2, Temper, Vex and
> + Wolpertinger.")
> + (home-page "http://distrho.sourceforge.net/ports")
> + (license (list license:gpl2 ; found in doc directory
> + license:lgpl3+ ; found in doc directory
> + license:gpl3))))) ; mentioned in meson file

This is a problem: GPL3 is famously incompatible with GPL2. If these
plugins are licensed separately it would be good to list the license for
each and take it from there.

Even better (I think?) is to package each plugin separately. Then users
can choose whether to combine these incompatibly-licensed plugins, but
we as a distribution can not (and probably not DISTRHO either).

Not sure what to do about it. Ideas?
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl8WFa0ACgkQoqBt8qM6
VPqa5wgAlhbkKOInXYZmeItvgdlLPX5cXjVRB4Iw9OEmCMgmoGGF/ro0N+hKD1nU
lQWiExseaYJaqiRZW0PyKCudxSxScomyQsIvsGqHnFCwkRrNzZUuzEO7iUYHLeWH
O/ZvDLhnSx2AzbyCEwrC9O6ubjJ8g4+sX/m0zMpffz2FZZEpV71JaRiuUc/cDjLd
LycuAjg1m+OWbIfPYd06ZxQtF8ogic4TZ9EwMiEsxE/I61ONhzi2yeZ+1PdFbzWQ
Ch4N3ieDyMQ/t5M2ykMcxZbOnbmg7nSAEyIKRs46vyMoMHtykOlg92PyhpfGlYNZ
/+gDK3cLTYWTqBcKQmQMx+mwub54wA==
=bEuC
-----END PGP SIGNATURE-----

A
A
Alexandros Theodotou wrote on 21 Jul 2020 00:24
86aadb3670706e4645ee98b2455b18c57bba48cd.camel@zrythm.org
Hi,

Thanks for the review.

On Tue, 2020-07-21 at 00:07 +0200, Marius Bakke wrote:
Toggle quote (19 lines)
> > + Wolpertinger.")
> > + (home-page "http://distrho.sourceforge.net/ports")
> > + (license (list license:gpl2 ; found in doc directory
> > + license:lgpl3+ ; found in doc directory
> > + license:gpl3))))) ; mentioned in meson file
>
> This is a problem: GPL3 is famously incompatible with GPL2. If these
> plugins are licensed separately it would be good to list the license
> for
> each and take it from there.
>
> Even better (I think?) is to package each plugin separately. Then
> users
> can choose whether to combine these incompatibly-licensed plugins,
> but
> we as a distribution can not (and probably not DISTRHO either).
>
> Not sure what to do about it. Ideas?

Why is it a problem? It's only a problem if you link them together
afaik. The plugins that this project produces are all separate
binaries, each under its own license.

I think we should just list the license for each included plugin. I'm a
bit against making separate packages - it would be a pain to maintain
and the plugins don't take up much disk space.

Thanks,
Alex
-----BEGIN PGP SIGNATURE-----

iQEzBAABCAAdFiEESBMjhK0999huJUuDAi6uQjE9cPMFAl8WGYEACgkQAi6uQjE9
cPNR0wf/QwMX+U6ySV0IZp03aQnj5YcrgfQbZ/2j1x+TSMOpfRVg0jyHWpc6ek4w
2F9bcB57YTHFxkRpIhKP5qOOGKz7G+tmJdvC3+xjbEONpx1p9YtG6xPU/pw1Cz7/
cslIATXxnUdnvdZV9DpY+akSndLQ2UibHko6krhR+gonYQ4ne6ZvOPhvmB8Y/ASv
91JT7pZilWAVNi50vXnxrqLUoSMUFu0sJEGEe7Ldc8YT11uqE5lVUtQMMwOflNvS
Qlhc9f++tghtDJy+1P6nfViz1iid/SN2tEZzWBZnMvN875jAvqlgwsJkLYNglSAU
nQJwN0ZDgVxeFomR5pIB/kTAA5rx6A==
=fv+j
-----END PGP SIGNATURE-----


M
M
Marius Bakke wrote on 21 Jul 2020 00:59
87zh7tg5dx.fsf@gnu.org
Alexandros Theodotou <alex@zrythm.org> writes:

Toggle quote (28 lines)
> Hi,
>
> Thanks for the review.
>
> On Tue, 2020-07-21 at 00:07 +0200, Marius Bakke wrote:
>> > + Wolpertinger.")
>> > + (home-page "http://distrho.sourceforge.net/ports")
>> > + (license (list license:gpl2 ; found in doc directory
>> > + license:lgpl3+ ; found in doc directory
>> > + license:gpl3))))) ; mentioned in meson file
>>
>> This is a problem: GPL3 is famously incompatible with GPL2. If these
>> plugins are licensed separately it would be good to list the license
>> for
>> each and take it from there.
>>
>> Even better (I think?) is to package each plugin separately. Then
>> users
>> can choose whether to combine these incompatibly-licensed plugins,
>> but
>> we as a distribution can not (and probably not DISTRHO either).
>>
>> Not sure what to do about it. Ideas?
>
> Why is it a problem? It's only a problem if you link them together
> afaik. The plugins that this project produces are all separate
> binaries, each under its own license.

Right. If they don't share code it's probably okay.

Toggle quote (4 lines)
> I think we should just list the license for each included plugin. I'm a
> bit against making separate packages - it would be a pain to maintain
> and the plugins don't take up much disk space.

Listing the license of each plugin sounds good to me.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl8WIboACgkQoqBt8qM6
VPoAPgf/d56F8laRnzfmXnFhdl3knvxXgzYFheWY1KyuXxoEHThL6xCXi+h/GUpX
TX0KbIEALcRoZXA7s3fVBgnfmdlcUe1OUo38lKvXyzyEz9ed2pmHVlpmyhccs27j
CPX9Uis3WGjBrKhRqoB8qrS+jo7ULKNniqm4feNYlcK6wueS4dnBjTj5je3dTKhA
01wWqyY+3EKAeeO/jSdU8oBIMjvYA1TYaeKdPaRHWfVdbpVvMyXKMCwYkdRB4KCL
mkN3ynxRGvmMPm14xGoCD5cvjKxw1DE+4Rpu+S2v2KYezqUA08g16SBe2+AelKdL
1qNwAorDw3tvJjVjxGSqvjVkMvsktA==
=T+FI
-----END PGP SIGNATURE-----

A
A
Alexandros Theodotou wrote on 4 Jan 2021 12:30
(address . 42279@debbugs.gnu.org)
65a446475932b55cbfe98b5f12dcb4a46ce8d1ce.camel@zrythm.org
Hi,

I'm trying to build the latest version but I'm running into issues with
fonts not showing (same issues as before, I just didn't bother until
now). Attaching the current package definition.

After building, I am running the plugins like:
`LV2_PATH=/gnu/store/z2xjjfpaybyv1byal7nxrvqxd7b1hjqh-distrho-ports-
2020-12-27/lib/lv2 jalv.gtk3 urn:juce:TalFilter2`
This requires JACK to be running and jalv to be installed. I'm not sure
if there's an easier way to test.

The problem I am having is described here, with a screenshot:

Strace log is included in that issue.

How can I fix this?

Thanks,
Alex
(define fontconfig/font-dejavu (package (inherit fontconfig) (inputs ;; XXX: Reuse the name to avoid having to override the configure flags. `(("gs-fonts" ,font-dejavu))))) (define-public distrho-ports (package (name "distrho-ports") (version "2020-12-27") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/DISTRHO/DISTRHO-Ports.git") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 "0gc0cgbl160vzy3iain5yzzj1ygpc5kinnhkvhrrcngg1ai5qlv3")))) (build-system meson-build-system) (inputs `(("alsa-lib" ,alsa-lib) ("fontconfig/font-dejavu", fontconfig/font-dejavu) ("freetype" ,freetype) ("mesa" ,mesa) ("libxrender" ,libxrender) ("libxcursor" ,libxcursor) ("xorgproto" ,xorgproto) ("libx11" ,libx11))) (native-inputs `(("lv2" ,lv2) ("pkg-config" ,pkg-config))) (synopsis "Collection of audio plugins and LV2 ports") (description "DISTRHO is a project with the goal of making cross-platform audio plugins and GNU/Linux ports. This package includes HiReSam, LUFSMeter-Multi, LUFSMeter, Arctican Function, Arctican Pilgrim, Dexed, dRowAudio Distortion, dRowAudio Distortion Shaper, dRowAudio Flanger, dRowAudioReverb, dRowAudio Tremolo, DrumSynth, easySSP, EQuinox, JUCE Demo Plugin, JUCE OPL, Klangfalter, Luftikus, Obxd, Pitched Delay, Refine, Stereo Source Separation, TAL Dub 3, TAL Noise Maker, TAL Reverb 2, TAL Reverb 3, TAL Reverb, TAL Vocoder 2, Temper, Vex and Wolpertinger.") (home-page "http://distrho.sourceforge.net/ports") (license (list license:gpl2 ; found in doc directory license:lgpl3+ ; found in doc directory license:gpl3)))) ; mentioned in meson file
?