commit:     f528815c332f51e266338f65336e9d85d134105b
Author:     Matthew White <mehw.is.me <AT> inventati <DOT> org>
AuthorDate: Tue Aug  1 17:05:54 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Sep 25 00:24:31 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f528815c

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 <AT> inventati.org>
Closes: https://github.com/gentoo/gentoo/pull/32129
Signed-off-by: Sam James <sam <AT> gentoo.org>

 media-sound/audacity/Manifest                      |   1 +
 media-sound/audacity/audacity-3.3.3.ebuild         | 228 +++++++++++++++++++++
 media-sound/audacity/audacity-9999.ebuild          | 212 +++++++++++++++++++
 .../audacity/files/audacity-3.3.3-Findlibmad.patch |  52 +++++
 .../files/audacity-3.3.3-fix-includes.patch        |  55 +++++
 .../audacity/files/audacity-3.3.3-fix-rpaths.patch |  95 +++++++++
 .../files/audacity-3.3.3-gettext-0.22.patch        |  27 +++
 ...audacity-3.3.3-local-threadpool-libraries.patch |  30 +++
 .../audacity-3.3.3-upstream-fix-rapidjson.patch    |  60 ++++++
 9 files changed, 760 insertions(+)

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...@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...@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.dr...@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?= <ar...@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 <dmi...@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 \

Reply via email to