commit:     0701fdc8e9076e71de7bc4e64f760413028f130b
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri May 12 02:19:40 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri May 12 02:55:37 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0701fdc8

media-plugins/mda-lv2: wire up tests; fix LICENSE; fix strict aliasing

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/mda-lv2-1.2.10-autoship-disable.patch    | 38 +++++++++++++++++
 .../files/mda-lv2-1.2.10-strict-aliasing.patch     | 37 +++++++++++++++++
 media-plugins/mda-lv2/mda-lv2-1.2.10-r1.ebuild     | 47 ++++++++++++++++++++++
 3 files changed, 122 insertions(+)

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 <[email protected]>
+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 <[email protected]>
+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..5bd3984346c9
--- /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"
+IUSE="test"
+# Tests fail because of lvz_new_audioeffectx symbol in plugins, check
+# on new lv2lint release (>0.16.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
+}

Reply via email to