summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew White <mehw.is.me@inventati.org>2023-08-01 17:05:54 +0000
committerSam James <sam@gentoo.org>2023-09-25 01:24:31 +0100
commitf528815c332f51e266338f65336e9d85d134105b (patch)
tree71e0ba8c326d4195d8ec944876a6d59c80901d96
parentsys-devel/crosstool-ng: add 1.26.0, drop 1.26.0_rc2-r1 (diff)
downloadgentoo-f528815c332f51e266338f65336e9d85d134105b.tar.gz
gentoo-f528815c332f51e266338f65336e9d85d134105b.tar.bz2
gentoo-f528815c332f51e266338f65336e9d85d134105b.zip
media-sound/audacity-3.3.3: version bump and new 9999 ebuild
NOTE: Upstream planned the removal of libmad support with the merge of the https://github.com/audacity/audacity/pull/4384 PR. Closes: https://bugs.gentoo.org/906959 Closes: https://bugs.gentoo.org/910398 Package-Manager: portage-3.0.49-r1 Signed-off-by: Matteo Bianco <mehw.is.me@inventati.org> Closes: https://github.com/gentoo/gentoo/pull/32129 Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r--media-sound/audacity/Manifest1
-rw-r--r--media-sound/audacity/audacity-3.3.3.ebuild228
-rw-r--r--media-sound/audacity/audacity-9999.ebuild212
-rw-r--r--media-sound/audacity/files/audacity-3.3.3-Findlibmad.patch52
-rw-r--r--media-sound/audacity/files/audacity-3.3.3-fix-includes.patch55
-rw-r--r--media-sound/audacity/files/audacity-3.3.3-fix-rpaths.patch95
-rw-r--r--media-sound/audacity/files/audacity-3.3.3-gettext-0.22.patch27
-rw-r--r--media-sound/audacity/files/audacity-3.3.3-local-threadpool-libraries.patch30
-rw-r--r--media-sound/audacity/files/audacity-3.3.3-upstream-fix-rapidjson.patch60
9 files changed, 760 insertions, 0 deletions
diff --git a/media-sound/audacity/Manifest b/media-sound/audacity/Manifest
index 4c36f4db70da..6af378802534 100644
--- a/media-sound/audacity/Manifest
+++ b/media-sound/audacity/Manifest
@@ -2,4 +2,5 @@ DIST Audacity-2.4.2.tar.gz 61248430 BLAKE2B bb7e31e22d2a09c38767b019ed5c2c2be317
DIST Audacity-3.2.5.tar.gz 57017533 BLAKE2B b8e48cab1c89cadb343a17fcb1d811a7363231152867f842ffff6dd8329103c9a407beb3f0b587e35e711070230c5c86d5aa97578b5a7c08bdbb029570677a24 SHA512 850ce4dc27e2c6d0b63bf0c0186deb417febc49b561e572a697f0e7ae2a7b2b3f39816b7beeacf9cbfb9525de85923e2ce6d06486fcf1855e34e2ecd1b7e3582
DIST audacity-manual-2.4.2.zip 22459298 BLAKE2B 001ca56f73c3c48f9b49b3b6478c6de6fb4c305fb869b11d93e41d5aee7ee45133bd7047c4d281fed4859d6c6061352dfaeb995e7b2602e42e09ab04e05e00dc SHA512 8afc7faffb0da87efe0c2cb64f8593777357252b4893ae0522ec7b37b4f7806ad9582ca9e4b751d085c2598aba6b580dacd805daa00b236a4ff8f6663a80135c
DIST audacity-manual-3.2.5.tar.gz 22260237 BLAKE2B e3c96282b5eeffe5854781cfe316fb40c10212c9bc07a081433cf947363f79892e7397b53a31aa33337b5d0b6a00e14bd420d6f064515455055233a45f5ebf47 SHA512 9bd2f2b3268ff7259f1fa0957ab3f15e7b58d72a3199be4e271bac67d9d0b44967b2b783ea36f9392ed1bdf004274754468b3902c3a72a204d08333a5c07894c
+DIST Audacity-3.3.3.tar.gz 57120215 BLAKE2B 566aa2529f2708c80eb8e2887c3f3b2a1477d0825133b960f824d0697716d5b5e3a3ba0bcb14a20afc2eba7ac544da154339d1cd37261225b06326e8ee3f730c SHA512 c484e747f5207785b1872d031be2c3c50e7bbce087909c41930e593e2ab5777e0ab527a2770d90d89854bdd131e3f1f7afe3696b30420e3d8370e9f95527c937
DIST progschj-ThreadPool-20140926.h 2612 BLAKE2B 54d050ad443512e60e5c99449dd7133f3884c1067288cfc36b96c06855537b83d9b599cd8b8fb7f24e20cbc4898585b11d98d3a33dc7571a886b57c806ad3b14 SHA512 f927489de9afe0217bb0552c45bea238693f9f183a062cb12a48e19576dc50a4d0ba449a12397012ae790cc5ebd741decc08128b66f795310dba4778122e9f3d
diff --git a/media-sound/audacity/audacity-3.3.3.ebuild b/media-sound/audacity/audacity-3.3.3.ebuild
new file mode 100644
index 000000000000..986fcd8fb4bb
--- /dev/null
+++ b/media-sound/audacity/audacity-3.3.3.ebuild
@@ -0,0 +1,228 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+WX_GTK_VER="3.2-gtk3"
+
+inherit cmake wxwidgets xdg
+
+DESCRIPTION="Free crossplatform audio editor"
+HOMEPAGE="https://www.audacityteam.org/"
+
+# A header-only thread pool library, without a build system, about 100
+# lines of code. Probably not worth packaging individually. Check
+# cmake-proxies/CMakeLists.txt and search for "ThreadPool".
+MY_THREADPOOL_DATE=20140926
+MY_THREADPOOL="https://raw.githubusercontent.com/progschj/ThreadPool/9a42ec1329f259a5f4881a291db1dcb8f2ad9040/ThreadPool.h -> progschj-ThreadPool-${MY_THREADPOOL_DATE}.h"
+
+if [[ ${PV} = 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/audacity/audacity.git"
+else
+ KEYWORDS="~amd64 ~riscv"
+ MY_P="Audacity-${PV}"
+ S="${WORKDIR}/${PN}-${MY_P}"
+ SRC_URI="https://github.com/audacity/audacity/archive/${MY_P}.tar.gz"
+fi
+
+SRC_URI+=$'\n'"audiocom? ( ${MY_THREADPOOL} )"
+
+# GPL-2+, GPL-3 - Audacity itself
+# ZLIB - The ThreadPool single-header library
+# CC-BY-3.0 - Documentation
+LICENSE="GPL-2+
+ GPL-3
+ audiocom? ( ZLIB )
+"
+SLOT="0"
+IUSE="alsa audiocom ffmpeg +flac id3tag +ladspa +lv2 mad mpg123 ogg
+ opus +portmixer sbsms twolame vamp +vorbis wavpack"
+
+# The testsuite consists of two tests, 50% of which fail.
+RESTRICT="test"
+
+# dev-db/sqlite:3 hard dependency.
+# dev-libs/glib:2, x11-libs/gtk+:3 hard dependency, from
+# cmake-proxies/cmake-modules/dependencies/wxwidgets.cmake
+# sys-apps/util-linux hard dependency, from cmake-proxies/CMakeLists.txt
+# for libuuid
+# portmidi became non-optional: building without it results in build
+# failures, even with some of the Debian patches. It's probably not
+# in our best interest to fix that as a patch series.
+# glib, gtk and gdk are all directly relied on in the source, not just
+
+# Libraries used at runtime via dlopen:
+# - dev-libs/{serd,sord} - for LV2 support
+# - media-libs/{opus,sratom} :: For Opus and LV2 respectively
+# - media-sound/lame :: For MP3 export
+# - media-video/ffmpeg :: For generic FFMPEG export
+# This one has the interesting property of many versions being
+# supported at runtime. See: libraries/lib-ffmpeg-support/impl
+# Current support grid:
+# - Lavf - 5[789]
+# - Lavc - 5[789]
+# - Lavu - 5[2567]
+
+RDEPEND="dev-db/sqlite:3
+ dev-libs/expat
+ dev-libs/glib:2
+ media-libs/libsndfile
+ media-libs/libsoundtouch:=
+ media-libs/portaudio[alsa?]
+ media-libs/portmidi
+ media-libs/portsmf:=
+ media-libs/soxr
+ media-sound/lame
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3
+ x11-libs/wxGTK:${WX_GTK_VER}[X]
+ sys-apps/util-linux
+ alsa? ( media-libs/alsa-lib )
+ audiocom? (
+ dev-libs/rapidjson
+ net-misc/curl
+ )
+ ffmpeg? ( media-video/ffmpeg )
+ flac? ( media-libs/flac:=[cxx] )
+ id3tag? ( media-libs/libid3tag:= )
+ lv2? (
+ dev-libs/serd
+ dev-libs/sord
+ media-libs/lilv
+ media-libs/lv2
+ media-libs/sratom
+ media-libs/suil
+ )
+ mad? ( media-libs/libmad )
+ mpg123? ( media-sound/mpg123 )
+ ogg? ( media-libs/libogg )
+ opus? ( media-libs/opus )
+ sbsms? ( media-libs/libsbsms )
+ twolame? ( media-sound/twolame )
+ vamp? ( media-libs/vamp-plugin-sdk )
+ vorbis? ( media-libs/libvorbis )
+ wavpack? ( media-sound/wavpack )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="app-arch/unzip
+ sys-devel/gettext
+ virtual/pkgconfig
+"
+
+REQUIRED_USE="
+ mad? ( !mpg123 )
+"
+
+PATCHES=(
+ # Equivalent to previous versions
+ "${FILESDIR}/${PN}-3.2.3-disable-ccache.patch"
+ # From Debian
+ "${FILESDIR}/${PN}-3.3.3-fix-rpaths.patch"
+
+ # Disables some header-based detection
+ "${FILESDIR}/${PN}-3.2.3-allow-overriding-alsa-jack.patch"
+
+ # For has_networking
+ "${FILESDIR}/${PN}-3.3.3-local-threadpool-libraries.patch"
+ "${FILESDIR}/${PN}-3.3.3-upstream-fix-rapidjson.patch"
+
+ # Add Findlibmad.cmake
+ "${FILESDIR}/${PN}-3.3.3-Findlibmad.patch"
+
+ # Fix includes
+ "${FILESDIR}/${PN}-3.3.3-fix-includes.patch"
+
+ # gettext 0.22
+ "${FILESDIR}/${PN}-3.3.3-gettext-0.22.patch"
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ local header_subs="${S}/lib-src/header-substitutes"
+ cat <<-EOF >"${header_subs}/allegro.h" || die
+ /* Hack the allegro.h header substitute to use system headers. */
+ #include <portsmf/allegro.h>
+ EOF
+
+ # Keep in sync with has_networking and the ThreadPool.h SRC_URI.
+ if use audiocom; then
+ mkdir -p "${S}/"/lib-src/threadpool/ThreadPool/ || die
+ cp "${DISTDIR}"/progschj-ThreadPool-"${MY_THREADPOOL_DATE}".h \
+ "${S}"/lib-src/threadpool/ThreadPool/ThreadPool.h || die
+ fi
+}
+
+src_configure() {
+ setup-wxwidgets
+
+ # * always use system libraries if possible
+ # * options listed roughly in the order specified in
+ # cmake-proxies/CMakeLists.txt
+ # * USE_VST was omitted, it appears to no longer have dependencies
+ # (this is different from VST3)
+ local mycmakeargs=(
+ # Tell the CMake-based build system it's building a release.
+ -DAUDACITY_BUILD_LEVEL=2
+ -Daudacity_use_nyquist=local
+ #-Daudacity_use_pch leaving it to the default behavior
+ -Daudacity_use_portmixer=$(usex portmixer system off)
+ -Daudacity_use_soxr=system
+
+ -Daudacity_conan_enabled=OFF
+
+ -Daudacity_has_networking=$(usex audiocom on off)
+ # Not useful on Gentoo.
+ -Daudacity_has_updates_check=OFF
+ -Daudacity_has_audiocom_upload=$(usex audiocom on off)
+
+ # The VST3 SDK is unpackaged, and it appears to be under a breed
+ # of a proprietary license and the GPL.
+ -Daudacity_has_vst3=OFF
+ -Daudacity_lib_preference=system
+ -Daudacity_obey_system_dependencies=ON
+ -Daudacity_use_expat=system
+ -Daudacity_use_ffmpeg=$(usex ffmpeg loaded off)
+ -Daudacity_use_libid3tag=$(usex id3tag system off)
+ -Daudacity_use_ladspa=$(usex ladspa)
+ -Daudacity_use_lame=system
+ -Daudacity_use_wxwidgets=system
+ -Daudacity_use_libmp3lame=system
+ -Daudacity_use_libmpg123=$(usex mpg123 system off)
+ -Daudacity_use_libmad=$(usex mad system off)
+ -Daudacity_use_wavpack=$(usex wavpack system off)
+ -Daudacity_use_libogg=$(usex ogg system off)
+ -Daudacity_use_libflac=$(usex flac system off)
+ -Daudacity_use_libopus=$(usex flac system off)
+ -Daudacity_use_libvorbis=$(usex vorbis system off)
+ -Daudacity_use_libsndfile=system
+ -Daudacity_use_portaudio=system
+ -Daudacity_use_midi=system
+ -Daudacity_use_vamp=$(usex vamp system off)
+ -Daudacity_use_lv2=$(usex lv2 system off)
+ -Daudacity_use_portsmf=system
+ -Daudacity_use_sbsms=$(usex sbsms system off)
+ -Daudacity_use_soundtouch=system
+ -Daudacity_use_twolame=$(usex twolame system off)
+
+ # Disable telemetry features.
+ -Daudacity_has_sentry_reporting=off
+ -Daudacity_has_crashreports=off
+
+ # See the allow-overriding-alsa-jack.patch patch
+ -DPA_HAS_ALSA=$(usex alsa on off)
+ ## Keep watch of PA_HAS_OSS in lib-src/portmixer/CMakeLists.txt;
+ ## AFAICT it introduces no deps as-is, but that could change.
+ ## Similar goes for PA_HAS_JACK.
+ )
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ # Remove bad doc install
+ rm -r "${ED}"/usr/share/doc || die
+}
diff --git a/media-sound/audacity/audacity-9999.ebuild b/media-sound/audacity/audacity-9999.ebuild
new file mode 100644
index 000000000000..55d1545cfcb8
--- /dev/null
+++ b/media-sound/audacity/audacity-9999.ebuild
@@ -0,0 +1,212 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+WX_GTK_VER="3.2-gtk3"
+
+inherit cmake wxwidgets xdg
+
+DESCRIPTION="Free crossplatform audio editor"
+HOMEPAGE="https://www.audacityteam.org/"
+
+# A header-only thread pool library, without a build system, about 100
+# lines of code. Probably not worth packaging individually. Check
+# cmake-proxies/CMakeLists.txt and search for "ThreadPool".
+MY_THREADPOOL_DATE=20140926
+MY_THREADPOOL="https://raw.githubusercontent.com/progschj/ThreadPool/9a42ec1329f259a5f4881a291db1dcb8f2ad9040/ThreadPool.h -> progschj-ThreadPool-${MY_THREADPOOL_DATE}.h"
+
+if [[ ${PV} = 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/audacity/audacity.git"
+else
+ KEYWORDS="~amd64 ~riscv"
+ MY_P="Audacity-${PV}"
+ S="${WORKDIR}/${PN}-${MY_P}"
+ SRC_URI="https://github.com/audacity/audacity/archive/${MY_P}.tar.gz"
+fi
+
+SRC_URI+=$'\n'"audiocom? ( ${MY_THREADPOOL} )"
+
+# GPL-2+, GPL-3 - Audacity itself
+# ZLIB - The ThreadPool single-header library
+# CC-BY-3.0 - Documentation
+LICENSE="GPL-2+
+ GPL-3
+ audiocom? ( ZLIB )
+"
+SLOT="0"
+IUSE="alsa audiocom ffmpeg +flac id3tag +ladspa +lv2 mpg123 ogg
+ opus +portmixer sbsms twolame vamp +vorbis wavpack"
+
+# The testsuite consists of two tests, 50% of which fail.
+RESTRICT="test"
+
+# dev-db/sqlite:3 hard dependency.
+# dev-libs/glib:2, x11-libs/gtk+:3 hard dependency, from
+# cmake-proxies/cmake-modules/dependencies/wxwidgets.cmake
+# sys-apps/util-linux hard dependency, from cmake-proxies/CMakeLists.txt
+# for libuuid
+# portmidi became non-optional: building without it results in build
+# failures, even with some of the Debian patches. It's probably not
+# in our best interest to fix that as a patch series.
+# glib, gtk and gdk are all directly relied on in the source, not just
+
+# Libraries used at runtime via dlopen:
+# - dev-libs/{serd,sord} - for LV2 support
+# - media-libs/{opus,sratom} :: For Opus and LV2 respectively
+# - media-sound/lame :: For MP3 export
+# - media-video/ffmpeg :: For generic FFMPEG export
+# This one has the interesting property of many versions being
+# supported at runtime. See: libraries/lib-ffmpeg-support/impl
+# Current support grid:
+# - Lavf - 5[789]
+# - Lavc - 5[789]
+# - Lavu - 5[2567]
+
+RDEPEND="dev-db/sqlite:3
+ dev-libs/expat
+ dev-libs/glib:2
+ media-libs/libsndfile
+ media-libs/libsoundtouch:=
+ media-libs/portaudio[alsa?]
+ media-libs/portmidi
+ media-libs/portsmf:=
+ media-libs/soxr
+ media-sound/lame
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:3
+ x11-libs/wxGTK:${WX_GTK_VER}[X]
+ sys-apps/util-linux
+ alsa? ( media-libs/alsa-lib )
+ audiocom? (
+ dev-libs/rapidjson
+ net-misc/curl
+ )
+ ffmpeg? ( media-video/ffmpeg )
+ flac? ( media-libs/flac:=[cxx] )
+ id3tag? ( media-libs/libid3tag:= )
+ lv2? (
+ dev-libs/serd
+ dev-libs/sord
+ media-libs/lilv
+ media-libs/lv2
+ media-libs/sratom
+ media-libs/suil
+ )
+ mpg123? ( media-sound/mpg123 )
+ ogg? ( media-libs/libogg )
+ opus? ( media-libs/opus )
+ sbsms? ( media-libs/libsbsms )
+ twolame? ( media-sound/twolame )
+ vamp? ( media-libs/vamp-plugin-sdk )
+ vorbis? ( media-libs/libvorbis )
+ wavpack? ( media-sound/wavpack )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="app-arch/unzip
+ sys-devel/gettext
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ # Equivalent to previous versions
+ "${FILESDIR}/${PN}-3.2.3-disable-ccache.patch"
+ # From Debian
+ "${FILESDIR}/${PN}-3.3.3-fix-rpaths.patch"
+
+ # Disables some header-based detection
+ "${FILESDIR}/${PN}-3.2.3-allow-overriding-alsa-jack.patch"
+
+ # For has_networking
+ "${FILESDIR}/${PN}-3.3.3-local-threadpool-libraries.patch"
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ local header_subs="${S}/lib-src/header-substitutes"
+ cat <<-EOF >"${header_subs}/allegro.h" || die
+ /* Hack the allegro.h header substitute to use system headers. */
+ #include <portsmf/allegro.h>
+ EOF
+
+ # Keep in sync with has_networking and the ThreadPool.h SRC_URI.
+ if use audiocom; then
+ mkdir -p "${S}/"/lib-src/threadpool/ThreadPool/ || die
+ cp "${DISTDIR}"/progschj-ThreadPool-"${MY_THREADPOOL_DATE}".h \
+ "${S}"/lib-src/threadpool/ThreadPool/ThreadPool.h || die
+ fi
+}
+
+src_configure() {
+ setup-wxwidgets
+
+ # * always use system libraries if possible
+ # * options listed roughly in the order specified in
+ # cmake-proxies/CMakeLists.txt
+ # * USE_VST was omitted, it appears to no longer have dependencies
+ # (this is different from VST3)
+ local mycmakeargs=(
+ # Tell the CMake-based build system it's building a release.
+ -DAUDACITY_BUILD_LEVEL=2
+ -Daudacity_use_nyquist=local
+ #-Daudacity_use_pch leaving it to the default behavior
+ -Daudacity_use_portmixer=$(usex portmixer system off)
+ -Daudacity_use_soxr=system
+
+ -Daudacity_conan_enabled=OFF
+
+ -Daudacity_has_networking=$(usex audiocom on off)
+ # Not useful on Gentoo.
+ -Daudacity_has_updates_check=OFF
+ -Daudacity_has_audiocom_upload=$(usex audiocom on off)
+
+ # The VST3 SDK is unpackaged, and it appears to be under a breed
+ # of a proprietary license and the GPL.
+ -Daudacity_has_vst3=OFF
+ -Daudacity_lib_preference=system
+ -Daudacity_obey_system_dependencies=ON
+ -Daudacity_use_expat=system
+ -Daudacity_use_ffmpeg=$(usex ffmpeg loaded off)
+ -Daudacity_use_libid3tag=$(usex id3tag system off)
+ -Daudacity_use_ladspa=$(usex ladspa)
+ -Daudacity_use_lame=system
+ -Daudacity_use_wxwidgets=system
+ -Daudacity_use_libmp3lame=system
+ -Daudacity_use_libmpg123=$(usex mpg123 system off)
+ -Daudacity_use_wavpack=$(usex wavpack system off)
+ -Daudacity_use_libogg=$(usex ogg system off)
+ -Daudacity_use_libflac=$(usex flac system off)
+ -Daudacity_use_libopus=$(usex flac system off)
+ -Daudacity_use_libvorbis=$(usex vorbis system off)
+ -Daudacity_use_libsndfile=system
+ -Daudacity_use_portaudio=system
+ -Daudacity_use_midi=system
+ -Daudacity_use_vamp=$(usex vamp system off)
+ -Daudacity_use_lv2=$(usex lv2 system off)
+ -Daudacity_use_portsmf=system
+ -Daudacity_use_sbsms=$(usex sbsms system off)
+ -Daudacity_use_soundtouch=system
+ -Daudacity_use_twolame=$(usex twolame system off)
+
+ # Disable telemetry features.
+ -Daudacity_has_sentry_reporting=off
+ -Daudacity_has_crashreports=off
+
+ # See the allow-overriding-alsa-jack.patch patch
+ -DPA_HAS_ALSA=$(usex alsa on off)
+ ## Keep watch of PA_HAS_OSS in lib-src/portmixer/CMakeLists.txt;
+ ## AFAICT it introduces no deps as-is, but that could change.
+ ## Similar goes for PA_HAS_JACK.
+ )
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ # Remove bad doc install
+ rm -r "${ED}"/usr/share/doc || die
+}
diff --git a/media-sound/audacity/files/audacity-3.3.3-Findlibmad.patch b/media-sound/audacity/files/audacity-3.3.3-Findlibmad.patch
new file mode 100644
index 000000000000..9bf4176a39e0
--- /dev/null
+++ b/media-sound/audacity/files/audacity-3.3.3-Findlibmad.patch
@@ -0,0 +1,52 @@
+From b42dfbe2be1994ccfeff449b5c5cbe49994ffb38 Mon Sep 17 00:00:00 2001
+From: Matthew White <mehw.is.me@inventati.org>
+Date: Fri, 14 Jul 2023 21:17:45 +0000
+Subject: [PATCH] Add missing Findlibmad.cmake file
+
+This fixes compiling against the system installed libmad.
+---
+ cmake-proxies/cmake-modules/Findlibmad.cmake | 35 ++++++++++++++++++++
+ 1 file changed, 35 insertions(+)
+ create mode 100644 cmake-proxies/cmake-modules/Findlibmad.cmake
+
+diff --git a/cmake-proxies/cmake-modules/Findlibmad.cmake b/cmake-proxies/cmake-modules/Findlibmad.cmake
+new file mode 100644
+index 000000000000..0858c2d93e24
+--- /dev/null
++++ b/cmake-proxies/cmake-modules/Findlibmad.cmake
+@@ -0,0 +1,35 @@
++#[[
++A module to look for libmad
++]]
++
++if( NOT libmad_FOUND )
++ find_path( libmad_INCLUDE_DIR mad.h )
++ find_library( libmad_LIBRARIES NAMES mad )
++
++ if( libmad_INCLUDE_DIR AND libmad_LIBRARIES )
++ set( libmad_FOUND Yes )
++ endif()
++
++ if( libmad_FOUND )
++ if( NOT libmad_FIND_QUIETLY )
++ message( STATUS "Found mad: \n\tlibmad_INCLUDE_DIR: ${libmad_INCLUDE_DIR}\n\tlibmad_LIBRARIES: ${libmad_LIBRARIES}" )
++ endif()
++
++ if( NOT TARGET libmad::libmad )
++ add_library( libmad::libmad INTERFACE IMPORTED GLOBAL)
++
++ target_include_directories( libmad::libmad INTERFACE ${libmad_INCLUDE_DIR} )
++ target_link_libraries( libmad::libmad INTERFACE ${libmad_LIBRARIES} )
++ endif()
++ else()
++ if( libmad_FIND_REQUIRED )
++ message( FATAL_ERROR "Could not find libmad")
++ endif()
++ endif()
++
++ mark_as_advanced(
++ libmad_FOUND
++ libmad_INCLUDE_DIR
++ libmad_LIBRARIES
++ )
++endif()
diff --git a/media-sound/audacity/files/audacity-3.3.3-fix-includes.patch b/media-sound/audacity/files/audacity-3.3.3-fix-includes.patch
new file mode 100644
index 000000000000..2e8685a09a3f
--- /dev/null
+++ b/media-sound/audacity/files/audacity-3.3.3-fix-includes.patch
@@ -0,0 +1,55 @@
+From 78ef36996c348b1c47f75e9885a56ac46b0aeec1 Mon Sep 17 00:00:00 2001
+From: Matthew White <mehw.is.me@inventati.org>
+Date: Fri, 14 Jul 2023 21:08:52 +0000
+Subject: [PATCH] Fix ImportMP3_MAD and ImportQT include directives
+
+This fixes 'file not found' errors.
+---
+ src/import/ImportMP3_MAD.cpp | 6 +++---
+ src/import/ImportQT.cpp | 8 ++++----
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/src/import/ImportMP3_MAD.cpp b/src/import/ImportMP3_MAD.cpp
+index fa26eaca49dd..9e6dfdf3a534 100644
+--- a/src/import/ImportMP3_MAD.cpp
++++ b/src/import/ImportMP3_MAD.cpp
+@@ -62,10 +62,10 @@ static Importer::RegisteredUnusableImportPlugin registered
+ #include <wx/file.h>
+
+ #include "Prefs.h"
+-#include "../Tags.h"
++#include "Tags.h"
+ #include "WaveTrack.h"
+-#include "../widgets/AudacityMessageBox.h"
+-#include "../widgets/ProgressDialog.h"
++#include "AudacityMessageBox.h"
++#include "ProgressDialog.h"
+
+ // PRL: include these last,
+ // and correct some preprocessor namespace pollution from wxWidgets that
+diff --git a/src/import/ImportQT.cpp b/src/import/ImportQT.cpp
+index f931b5a63fc1..5b49c1630b7f 100644
+--- a/src/import/ImportQT.cpp
++++ b/src/import/ImportQT.cpp
+@@ -17,8 +17,8 @@
+
+ #include "Import.h"
+ #include "ImportPlugin.h"
+-#include "../widgets/AudacityMessageBox.h"
+-#include "../widgets/ProgressDialog.h"
++#include "AudacityMessageBox.h"
++#include "ProgressDialog.h"
+
+ #define DESC XO("QuickTime files")
+
+@@ -76,8 +76,8 @@ static Importer::RegisteredUnusableImportPlugin registered{
+ // There's a name collision between our Track and QuickTime's...workaround it
+ #undef Track
+
+-#include "../Tags.h"
+-#include "../WaveTrack.h"
++#include "Tags.h"
++#include "WaveTrack.h"
+
+ #define kQTAudioPropertyID_MaxAudioSampleSize 'mssz'
+
diff --git a/media-sound/audacity/files/audacity-3.3.3-fix-rpaths.patch b/media-sound/audacity/files/audacity-3.3.3-fix-rpaths.patch
new file mode 100644
index 000000000000..b3fcdb85b022
--- /dev/null
+++ b/media-sound/audacity/files/audacity-3.3.3-fix-rpaths.patch
@@ -0,0 +1,95 @@
+This is an adapted version of:
+
+From: Benjamin Drung <benjamin.drung@canonical.com>
+Date: Thu, 22 Sep 2022 19:52:43 +0200
+Subject: Fix rpath for private libraries on Linux
+
+Fixes: https://github.com/audacity/audacity/issues/3289
+Forwarded: https://github.com/audacity/audacity/pull/3671
+[1] https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling#caveats
+
+diff -Nuar a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt 2023-06-08 15:17:02.000000000 +0200
++++ b/CMakeLists.txt 2023-07-14 01:18:46.452163033 +0200
+@@ -412,6 +412,7 @@
+ set( _LIBDIR "${CMAKE_INSTALL_LIBDIR}" )
+ set( _DATADIR "${CMAKE_INSTALL_DATADIR}" )
+ set( _PKGLIB "${_LIBDIR}/audacity" )
++set( _PKGMODULE "${_PKGLIB}/modules" )
+ set( _PKGDATA "${_DATADIR}/audacity/" )
+ set( _MANDIR "${CMAKE_INSTALL_MANDIR}" )
+ set( _MODDIR "${_PKGLIB}/modules" )
+diff -Nuar a/cmake-proxies/cmake-modules/AudacityFunctions.cmake b/cmake-proxies/cmake-modules/AudacityFunctions.cmake
+--- a/cmake-proxies/cmake-modules/AudacityFunctions.cmake 2023-06-08 15:17:02.000000000 +0200
++++ b/cmake-proxies/cmake-modules/AudacityFunctions.cmake 2023-07-14 01:23:42.025628702 +0200
+@@ -338,6 +338,17 @@
+ set( "${var}" "${node}" PARENT_SCOPE )
+ endfunction()
+
++# Call install(TARGETS...) only on Linux systems (i.e. exclude MacOS and Windows)
++macro( install_target_linux target destination )
++ if( NOT "${CMAKE_GENERATOR}" MATCHES "Xcode|Visual Studio*" AND NOT CMAKE_SYSTEM_NAME MATCHES "Darwin" )
++ install( TARGETS "${target}" DESTINATION "${destination}" )
++ endif()
++endmacro()
++
++macro( install_audacity_module target )
++ install_target_linux( "${target}" "${_PKGMODULE}" )
++endmacro()
++
+ define_property(TARGET PROPERTY AUDACITY_GRAPH_DEPENDENCIES
+ BRIEF_DOCS
+ "Propagates information used in generating a target dependency diagram"
+@@ -420,6 +431,13 @@
+ list( APPEND GRAPH_EDGES "\"${TARGET}\" -> \"${IMPORT}\" ${attributes}" )
+ endforeach()
+ set( GRAPH_EDGES "${GRAPH_EDGES}" PARENT_SCOPE )
++
++ # Note: Some modules set EXCLUDE_FROM_ALL afterwards to not be installed.
++ # Therefore only install libraries, but not modules here.
++ if( NOT REAL_LIBTYPE STREQUAL "MODULE" )
++ install_target_linux( "${TARGET}" "${_PKGLIB}" )
++ endif()
++
+ endfunction()
+
+ function ( make_interface_alias TARGET REAL_LIBTYTPE )
+@@ -487,6 +505,7 @@
+ PROPERTIES
+ PREFIX ""
+ FOLDER "modules" # for IDE organization
++ INSTALL_RPATH "$ORIGIN/.."
+ )
+
+ if( NOT CMAKE_SYSTEM_NAME MATCHES "Windows|Darwin" )
+@@ -501,6 +520,7 @@
+ PROPERTIES
+ PREFIX ""
+ FOLDER "libraries" # for IDE organization
++ INSTALL_RPATH "$ORIGIN"
+ )
+
+ if( NOT CMAKE_SYSTEM_NAME MATCHES "Windows|Darwin" )
+diff -Nuar a/modules/mod-script-pipe/CMakeLists.txt b/modules/mod-script-pipe/CMakeLists.txt
+--- a/modules/mod-script-pipe/CMakeLists.txt 2023-06-08 15:17:02.000000000 +0200
++++ b/modules/mod-script-pipe/CMakeLists.txt 2023-07-14 01:25:10.730068564 +0200
+@@ -15,3 +15,4 @@
+ )
+ audacity_module( mod-script-pipe "${SOURCES}" "Audacity"
+ "${DEFINES}" "" )
++install_audacity_module( mod-script-pipe )
+diff -Nuar a/src/CMakeLists.txt b/src/CMakeLists.txt
+--- a/src/CMakeLists.txt 2023-06-08 15:17:02.000000000 +0200
++++ b/src/CMakeLists.txt 2023-07-14 01:26:23.098427419 +0200
+@@ -1557,11 +1557,6 @@
+ RUNTIME
+ RESOURCE DESTINATION "${_PKGDATA}" )
+
+- install( DIRECTORY "${_DEST}/${_LIBDIR}/"
+- DESTINATION "${_LIBDIR}"
+- USE_SOURCE_PERMISSIONS
+- FILES_MATCHING PATTERN "*.so*" )
+-
+ install( FILES "${_INTDIR}/audacity.desktop"
+ DESTINATION "${_DATADIR}/applications" )
+ install( FILES "${topdir}/LICENSE.txt" "${topdir}/README.md"
diff --git a/media-sound/audacity/files/audacity-3.3.3-gettext-0.22.patch b/media-sound/audacity/files/audacity-3.3.3-gettext-0.22.patch
new file mode 100644
index 000000000000..9dad40d3e9e1
--- /dev/null
+++ b/media-sound/audacity/files/audacity-3.3.3-gettext-0.22.patch
@@ -0,0 +1,27 @@
+This is an adapted version of:
+
+https://bugs.gentoo.org/909201
+upstream fix: https://github.com/audacity/audacity/pull/4866
+
+--- a/locale/be.po
++++ b/locale/be.po
+@@ -3097,7 +3097,7 @@
+ #: src/FileFormats.cpp
+ #, c-format
+ msgid "Error (file may not have been written): %s"
+-msgstr "Памылка (магчыма, файл не запісаны): %hs"
++msgstr "Памылка (магчыма, файл не запісаны): %s"
+
+ #: src/FileFormats.cpp
+ #, fuzzy
+--- a/locale/fa.po
++++ b/locale/fa.po
+@@ -3053,7 +3053,7 @@
+ #: src/FileFormats.cpp
+ #, c-format
+ msgid "Error (file may not have been written): %s"
+-msgstr "خطا (ممکن است در پرونده نوشته شده باشد) : %hs"
++msgstr "خطا (ممکن است در پرونده نوشته شده باشد) : %s"
+
+ #: src/FileFormats.cpp
+ msgid "&Copy uncompressed files into the project (safer)"
diff --git a/media-sound/audacity/files/audacity-3.3.3-local-threadpool-libraries.patch b/media-sound/audacity/files/audacity-3.3.3-local-threadpool-libraries.patch
new file mode 100644
index 000000000000..a3ef6cf3859d
--- /dev/null
+++ b/media-sound/audacity/files/audacity-3.3.3-local-threadpool-libraries.patch
@@ -0,0 +1,30 @@
+This is an adapted version of:
+
+From 7b5f56ec441fb472b61bae14e1efa353db4d7aca Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Arsen=20Arsenovi=C4=87?= <arsen@aarsen.me>
+Date: Sun, 18 Dec 2022 13:37:35 +0100
+Subject: [PATCH] Allow using local dependency for threadpool
+
+diff -Nuar a/cmake-proxies/cmake-modules/DependenciesList.cmake b/cmake-proxies/cmake-modules/DependenciesList.cmake
+--- a/cmake-proxies/cmake-modules/DependenciesList.cmake 2023-07-14 03:40:22.518292749 +0200
++++ b/cmake-proxies/cmake-modules/DependenciesList.cmake 2023-07-14 03:40:43.790398232 +0200
+@@ -56,7 +56,6 @@
+ audacity_find_package(PortAudio REQUIRED)
+
+ if( ${_OPT}has_networking )
+- audacity_find_package(ThreadPool REQUIRED)
+ audacity_find_package(CURL REQUIRED CONAN_PACKAGE_NAME libcurl)
+ endif()
+
+diff -Nuar a/libraries/lib-network-manager/CMakeLists.txt b/libraries/lib-network-manager/CMakeLists.txt
+--- a/libraries/lib-network-manager/CMakeLists.txt 2023-07-14 03:38:42.061794613 +0200
++++ b/libraries/lib-network-manager/CMakeLists.txt 2023-07-14 03:38:27.913724456 +0200
+@@ -43,4 +43,8 @@
+
+ set ( DEFINES INTERFACE "HAS_NETWORKING" )
+
++add_library ( threadpool::threadpool INTERFACE IMPORTED GLOBAL )
++target_include_directories ( threadpool::threadpool INTERFACE
++ ${CMAKE_SOURCE_DIR}/lib-src/threadpool
++)
+ audacity_library( ${TARGET} "${SOURCES}" "${LIBRARIES}" "${DEFINES}" "" )
diff --git a/media-sound/audacity/files/audacity-3.3.3-upstream-fix-rapidjson.patch b/media-sound/audacity/files/audacity-3.3.3-upstream-fix-rapidjson.patch
new file mode 100644
index 000000000000..cb9da30bf423
--- /dev/null
+++ b/media-sound/audacity/files/audacity-3.3.3-upstream-fix-rapidjson.patch
@@ -0,0 +1,60 @@
+From 6edaa3f26b34adc65c109c1a5a85923e04330e2d Mon Sep 17 00:00:00 2001
+From: Dmitry Vedenko <dmitry@crsib.me>
+Date: Mon, 7 Aug 2023 17:12:49 +0300
+Subject: [PATCH] Fixes RapidJSON missing from Linux builds
+
+---
+ .../cmake-modules/dependencies/rapidjson.cmake | 15 +++++++++++++--
+ linux/packages/arch/dependencies.sh | 1 +
+ linux/packages/fedora34/dependencies.sh | 1 +
+ 3 files changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/cmake-proxies/cmake-modules/dependencies/rapidjson.cmake b/cmake-proxies/cmake-modules/dependencies/rapidjson.cmake
+index c44aad81b8e4..ba95962a6eb6 100644
+--- a/cmake-proxies/cmake-modules/dependencies/rapidjson.cmake
++++ b/cmake-proxies/cmake-modules/dependencies/rapidjson.cmake
+@@ -1,7 +1,18 @@
+ # CCI pakage appears to set the wrong value for the `cmake_target_name`
+
+-if(${_OPT}use_rapidjson STREQUAL "local")
++if(NOT ${_OPT}use_rapidjson STREQUAL "off")
+ if(NOT TARGET rapidjson::rapidjson)
+- add_library( rapidjson::rapidjson ALIAS rapidjson )
++ if(TARGET rapidjson)
++ add_library( rapidjson::rapidjson ALIAS rapidjson )
++ else()
++ # At least on Arch RapidJSONConfig.cmake does not define a target at all
++ # so we have to do it ourselves
++ add_library( rapidjson::rapidjson INTERFACE IMPORTED GLOBAL)
++ if (RAPIDJSON_INCLUDE_DIRS )
++ target_include_directories( rapidjson::rapidjson INTERFACE ${RAPIDJSON_INCLUDE_DIRS} )
++ elseif(RapidJSON_INCLUDE_DIR)
++ target_include_directories( rapidjson::rapidjson INTERFACE ${RapidJSON_INCLUDE_DIR} )
++ endif()
++ endif()
+ endif()
+ endif()
+diff --git a/linux/packages/arch/dependencies.sh b/linux/packages/arch/dependencies.sh
+index d34012442efd..8aa8792057d4 100755
+--- a/linux/packages/arch/dependencies.sh
++++ b/linux/packages/arch/dependencies.sh
+@@ -44,6 +44,7 @@ deps=(
+ wavpack
+ wxwidgets-gtk3
+ vst3sdk
++ rapidjson
+ )
+
+ pacman -Syu --noconfirm \
+diff --git a/linux/packages/fedora34/dependencies.sh b/linux/packages/fedora34/dependencies.sh
+index 8f6ce8ff2eb8..1e039612b095 100755
+--- a/linux/packages/fedora34/dependencies.sh
++++ b/linux/packages/fedora34/dependencies.sh
+@@ -54,6 +54,7 @@ deps=(
+ mesa-libEGL-devel
+ mpg123-devel
+ wavpack-devel
++ rapidjson
+ )
+
+ dnf install -y \