summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-plugins/mda-lv2')
-rw-r--r--media-plugins/mda-lv2/files/mda-lv2-1.2.10-autoship-disable.patch38
-rw-r--r--media-plugins/mda-lv2/files/mda-lv2-1.2.10-strict-aliasing.patch37
-rw-r--r--media-plugins/mda-lv2/mda-lv2-1.2.10-r1.ebuild47
-rw-r--r--media-plugins/mda-lv2/mda-lv2-1.2.10.ebuild19
-rw-r--r--media-plugins/mda-lv2/metadata.xml3
5 files changed, 125 insertions, 19 deletions
diff --git a/media-plugins/mda-lv2/files/mda-lv2-1.2.10-autoship-disable.patch b/media-plugins/mda-lv2/files/mda-lv2-1.2.10-autoship-disable.patch
new file mode 100644
index 000000000000..c358416ffd85
--- /dev/null
+++ b/media-plugins/mda-lv2/files/mda-lv2-1.2.10-autoship-disable.patch
@@ -0,0 +1,38 @@
+https://gitlab.com/drobilla/mda-lv2/-/commit/e85a6c7fc8e0bccbe23691a6bf10bbbd2ce048bf
+
+From e85a6c7fc8e0bccbe23691a6bf10bbbd2ce048bf Mon Sep 17 00:00:00 2001
+From: David Robillard <d@drobilla.net>
+Date: Mon, 22 Aug 2022 10:50:10 -0400
+Subject: [PATCH] Only run autoship test in strict mode
+
+--- a/meson.build
++++ b/meson.build
+@@ -61,15 +61,17 @@ subdir('mda.lv2')
+ #########
+
+ if not get_option('tests').disabled() and not meson.is_subproject()
+- # Check release metadata
+- autoship = find_program('autoship', required: get_option('tests'))
+- if autoship.found()
+- test(
+- 'autoship',
+- autoship,
+- args: ['test', meson.current_source_dir()],
+- suite: 'data',
+- )
++ if get_option('strict')
++ # Check release metadata
++ autoship = find_program('autoship', required: get_option('tests'))
++ if autoship.found()
++ test(
++ 'autoship',
++ autoship,
++ args: ['test', meson.current_source_dir()],
++ suite: 'data',
++ )
++ endif
+ endif
+
+ # Check licensing metadata
+--
+GitLab
diff --git a/media-plugins/mda-lv2/files/mda-lv2-1.2.10-strict-aliasing.patch b/media-plugins/mda-lv2/files/mda-lv2-1.2.10-strict-aliasing.patch
new file mode 100644
index 000000000000..d8e6c8e605aa
--- /dev/null
+++ b/media-plugins/mda-lv2/files/mda-lv2-1.2.10-strict-aliasing.patch
@@ -0,0 +1,37 @@
+https://gitlab.com/drobilla/mda-lv2/-/commit/ac0590c5a8f84f9edcd6817e44976ad75fccb252
+
+From ac0590c5a8f84f9edcd6817e44976ad75fccb252 Mon Sep 17 00:00:00 2001
+From: David Robillard <d@drobilla.net>
+Date: Tue, 16 Aug 2022 17:04:16 -0400
+Subject: [PATCH] Fix strict aliasing violation
+
+Generally, I maintain this as a faithful port with minimal changes, but in this
+case, it's just filling a float up with garbage anyway, so the worst case can't
+be that bad.
+--- a/meson/suppressions/meson.build
++++ b/meson/suppressions/meson.build
+@@ -82,11 +82,5 @@ if is_variable('cpp')
+ endif
+ endif
+
+- if cpp.get_id() == 'gcc'
+- cpp_suppressions += [
+- '-Wno-strict-aliasing',
+- ]
+- endif
+-
+ cpp_suppressions = cpp.get_supported_arguments(cpp_suppressions)
+ endif
+--- a/src/mdaJX10.cpp
++++ b/src/mdaJX10.cpp
+@@ -468,7 +468,7 @@ void mdaJX10::processReplacing(float **inputs, float **outputs, int32_t sampleFr
+
+ noise = (noise * 196314165) + 907633515;
+ r = (noise & 0x7FFFFF) + 0x40000000; //generate noise + fast convert to float
+- w = *(float *)&r;
++ memcpy(&w, &r, sizeof(float));
+ w = ww * (w - 3.0f);
+
+ if(--k<0)
+--
+GitLab
diff --git a/media-plugins/mda-lv2/mda-lv2-1.2.10-r1.ebuild b/media-plugins/mda-lv2/mda-lv2-1.2.10-r1.ebuild
new file mode 100644
index 000000000000..f2887da2410b
--- /dev/null
+++ b/media-plugins/mda-lv2/mda-lv2-1.2.10-r1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+DESCRIPTION="LV2 port of the MDA plugins by Paul Kellett"
+HOMEPAGE="https://drobilla.net/software/mda-lv2.html"
+SRC_URI="https://download.drobilla.net/${P}.tar.xz"
+
+# See README
+LICENSE="|| ( GPL-2+ MIT )"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86"
+IUSE="test"
+# Tests fail because of lvz_new_audioeffectx symbol in plugins, check
+# on new lv2lint release (>0.16.2). See https://gitlab.com/drobilla/mda-lv2/-/issues/2.
+RESTRICT="!test? ( test ) test"
+
+DEPEND="media-libs/lv2"
+RDEPEND="${DEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+ test? ( dev-util/lv2lint )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-strict-aliasing.patch
+ "${FILESDIR}"/${P}-autoship-disable.patch
+)
+
+src_prepare() {
+ default
+
+ # reuse isn't packaged right now, but it's only for licencing
+ # i.e. it's essentially a lint check so not relevant for us downstream.
+ sed -i -e "/reuse = find_program('reuse', required/s:get_option('tests'):false:" meson.build || die
+}
+
+src_configure() {
+ local emesonargs=(
+ $(meson_feature test tests)
+ )
+
+ meson_src_configure
+}
diff --git a/media-plugins/mda-lv2/mda-lv2-1.2.10.ebuild b/media-plugins/mda-lv2/mda-lv2-1.2.10.ebuild
deleted file mode 100644
index faf6618f6de4..000000000000
--- a/media-plugins/mda-lv2/mda-lv2-1.2.10.ebuild
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit meson
-
-DESCRIPTION="LV2 port of the MDA plugins by Paul Kellett"
-HOMEPAGE="https://drobilla.net/software/mda-lv2.html"
-SRC_URI="https://download.drobilla.net/${P}.tar.xz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 x86"
-
-BDEPEND="
- virtual/pkgconfig
-"
-RDEPEND="media-libs/lv2"
diff --git a/media-plugins/mda-lv2/metadata.xml b/media-plugins/mda-lv2/metadata.xml
index 6ba8ddc33e95..f5ccf86599e1 100644
--- a/media-plugins/mda-lv2/metadata.xml
+++ b/media-plugins/mda-lv2/metadata.xml
@@ -14,4 +14,7 @@
The instrument plugins make use of the new atom:AtomPort to receive MIDI. Apologies for any inconvenience, but this means they will only work in modern hosts which have implemented atom-based MIDI. The effects should work fine in any LV2 host.
</longdescription>
+<upstream>
+ <remote-id type="gitlab">drobilla/mda-lv2</remote-id>
+</upstream>
</pkgmetadata>