summaryrefslogtreecommitdiff
path: root/media-sound/audacity
diff options
context:
space:
mode:
Diffstat (limited to 'media-sound/audacity')
-rw-r--r--media-sound/audacity/Manifest9
-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.patch55
-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.patch63
9 files changed, 774 insertions, 0 deletions
diff --git a/media-sound/audacity/Manifest b/media-sound/audacity/Manifest
index 0ddb6f0df526..01087a7355da 100644
--- a/media-sound/audacity/Manifest
+++ b/media-sound/audacity/Manifest
@@ -11,11 +11,20 @@ AUX audacity-3.2.3-fix-rpaths.patch 5961 BLAKE2B d48471ba4cea8103fd1caef6e3e1335
AUX audacity-3.2.3-remove-conan-threadpool.patch 1681 BLAKE2B d5b32185ae961c1ab49fd28410de857b7e3eddaeebf2435dd77c526912ff06a604500c8af2357dc8c601fc032823c74beec4c207cca58fa074d950de6cace6fb SHA512 4a4ee937be644587114e9e097178859ae369e3519475224ea22095ecf51971215b7873b3d9f05ff4f6dcb12c31741448381621c250e159824c818fa61238f0c1
AUX audacity-3.2.5-gcc13-deux.patch 2531 BLAKE2B 5fbd985902facc87db733c7db3981f67d5232c1a40259eec5831ad7142c065831ec64f5167a587a7a83736225965d2e4159615845c952cb4a6b5f7a46e9218e7 SHA512 45722981858006be507cb2f9212d34626a40554eb75a6397b1073019433ae16689345ce8b4062b18ee61907f5dd9b51e4f250211b16183a0e82ab6ca32f44366
AUX audacity-3.2.5-gettext-0.22.patch 1193 BLAKE2B 9410d92db9b6a4b06e91cbae5ba25ec5dc16ee3421c511468a55e0038ed2db70c9d195f7eca894503c1bec023e0efc1006ac36eada4f1e87567828f4288b23c9 SHA512 f8a3187343f11875840d605da11a021d7e1f25fa5cb361432863d3933a3880a5e8df63d6feb6706e88bdb5e0f0e4e5c77ec8d21806003abf66166fe8a28e02b2
+AUX audacity-3.3.3-Findlibmad.patch 1758 BLAKE2B c1e0ef6734f925127b0be9abc84fb1b6411d15b8b973683f84f54d9c0e557c7b4dcc786baa9962ff039529f9306144008f1f12b1edb8f519df5a0f0c4d06d9de SHA512 0724cabecd37e2c740227fdc6f0144d97d68bd9846609aea25dfaa41289e8eea790487af320e784e1e6e8c3c2e27689af9643bcc2114c9e5f9d09d679f4ed754
+AUX audacity-3.3.3-fix-includes.patch 1764 BLAKE2B ea7f73f60b8b5ffc42218b65d8148273689d2460b97e4728adf878cb3980762375615cf6b29e205945b69dd36f17b760e949d8805f4bd2d867d0b37133290c6e SHA512 d3dd1c39bfda4146b315f923fb6ecda07ad30d77dae7d930e315a4aae8e2a45de04c217b982aa719d8579c3933bd3843ca42095c1ddc161860a204f8d94dcb12
+AUX audacity-3.3.3-fix-rpaths.patch 3819 BLAKE2B 29079fb4fd63b383546b1f82c08fb98b16eba0588da99b936f7de104bcb826fd6a0dc7f63fd379e44ace9d80ea612d86deda9f68980e3cd5c0874f1925b35b91 SHA512 d05868e7adf91c613534aa965059da5e393582bbaee0b49605c2e270d528dfd8fa882ce356e5fed38752afbbb09539165ea566b13c13df4bc949ed8c5f2617e1
+AUX audacity-3.3.3-gettext-0.22.patch 872 BLAKE2B 5de981a0b86606f688ca9fa8f036d58d160d0c98f2f5c980089af076ad37951f4675e4e6d6f40e9b719ffd2793cf747a259fc847a60d72e84d56c89f7349499f SHA512 459092cd0bd192468e55ba7174b1b23a0334fb3186fddbf0d14348c870efad23a7e4baa69a288ca6f2bbe5363e5a4251006b8fb580bdf6035184f3c5205c338d
+AUX audacity-3.3.3-local-threadpool-libraries.patch 1377 BLAKE2B 6031d9e3f9b4e11a2d16fe96dc261254dbba62dcb461d9c395f9e8d61cb46176680f3eb3f63a0bb5b581bcf35e9c6c7ab954177476c08d0118c0f0d41a34b496 SHA512 1d61c9fbeaae67fff1c02bc84c6791abab5fcdd886c729caf4cd87ecd8d1ede58bd634cebce133d3209212939603aba5a05c5b8cee762a8b2c2bda10a2c11888
+AUX audacity-3.3.3-upstream-fix-rapidjson.patch 2461 BLAKE2B d59077e4729aa5702db6181eb3dac9a9c98f6f64c3b4e61c87c6856c76b8ddb2d9f9036db07efe8263619fa5a9b14fd1ae4be380df34a5483f102b2bde809a18 SHA512 67c6760c472c4161335f9c65129a28495ad9e8605a1f17cd1570037fc4767c9d326221598c93e0e1595bd10d6044a1d7b8dcac9b6c29babecee60a526ef6dd92
DIST Audacity-2.4.2.tar.gz 61248430 BLAKE2B bb7e31e22d2a09c38767b019ed5c2c2be31741594715d73452fc4622d171a6209e87009b6f820873cc1cff2f6b85547a3dea0a2d8d4dd7195617509e571ee9b8 SHA512 0d9cdabf5ba2c7207e8d8e4a8bdfc3e7d32277386436ecb480e3ff781720f5449a56b310ba91c78ca67afb752e2ab736abd5b7ce40d19d153bfc4a2067343a3d
DIST Audacity-3.2.5.tar.gz 57017533 BLAKE2B b8e48cab1c89cadb343a17fcb1d811a7363231152867f842ffff6dd8329103c9a407beb3f0b587e35e711070230c5c86d5aa97578b5a7c08bdbb029570677a24 SHA512 850ce4dc27e2c6d0b63bf0c0186deb417febc49b561e572a697f0e7ae2a7b2b3f39816b7beeacf9cbfb9525de85923e2ce6d06486fcf1855e34e2ecd1b7e3582
+DIST Audacity-3.3.3.tar.gz 57120215 BLAKE2B 566aa2529f2708c80eb8e2887c3f3b2a1477d0825133b960f824d0697716d5b5e3a3ba0bcb14a20afc2eba7ac544da154339d1cd37261225b06326e8ee3f730c SHA512 c484e747f5207785b1872d031be2c3c50e7bbce087909c41930e593e2ab5777e0ab527a2770d90d89854bdd131e3f1f7afe3696b30420e3d8370e9f95527c937
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 progschj-ThreadPool-20140926.h 2612 BLAKE2B 54d050ad443512e60e5c99449dd7133f3884c1067288cfc36b96c06855537b83d9b599cd8b8fb7f24e20cbc4898585b11d98d3a33dc7571a886b57c806ad3b14 SHA512 f927489de9afe0217bb0552c45bea238693f9f183a062cb12a48e19576dc50a4d0ba449a12397012ae790cc5ebd741decc08128b66f795310dba4778122e9f3d
EBUILD audacity-2.4.2-r3.ebuild 3964 BLAKE2B c73bf208842798e91b692e24b0eda44574d3de4b5f102146e7e244c180546d52b98bb4fb863852b87da922c6c7e889be42ba21e3a3909dd4ca72d974274a2c63 SHA512 eb08275d0e436beb6474ae7f6a2180eab898209cf70b664f2c12fd52ad257f8cfea3b30d281acdd91c36d896dbe42e163da94232831c6801a1c718d3ee2e92d7
EBUILD audacity-3.2.5-r1.ebuild 7046 BLAKE2B 906b7e9304938233f7ca69af3788fa076bb2b03841efff9c3f68ab4536be265a9c5de661d2390e0858b6357989834956155c9f9eb51d90cbf62e889f486f5d8b SHA512 b5561ac997acc890008de76d4a65cf784ea15fa2fb28ab89d999bd3ec56ac41482cd3805c78007ead30694d9e099749efcea51a7881b34fb307624906bfac975
+EBUILD audacity-3.3.3.ebuild 6848 BLAKE2B 8bbcdd94f569a5f213c03c299bd9014a4710bbbfde759bc03bb37490e82deeb73f3c6edb0b1dfdbdd1f09e1af1f64e1bad064fdc5392a37bd63aa3df9e01743f SHA512 851e1ec1afc80c53775506533c6be9ae4f5d2141c2bca7dc1fa4af843331d55cc2022e084ea32aa28a7db5895ae2298013575759dfb9a78c845e09ca0cfeb241
+EBUILD audacity-9999.ebuild 6482 BLAKE2B fe4873abb391c7c3001f09fa298ce698aade1f1048cb834602f26f9f334fc06c6beb67214b780ed34899a965dd8d4c441b9b8f651066f78132ca0101df823ee7 SHA512 fe7aa76a29e0d44e1780f087161b6d8495abe054118a51e526f08ead995742b8529ccfbf0c78c8f1ddad5b517614f382097f537d9085e0860c310da0378fc111
MISC metadata.xml 1512 BLAKE2B 277533c5356fb9fee5f353c14f43886e2823cf11f50deff855e31b039e197dd9daeab65dd133461e468f6bf2862b72e910ea36f67bceedec00a5e2234a386db5 SHA512 f66ee862c1fa473e825afc68186b1e2ecc3e7f4bb49272fde63b7b52afb2075795632c0690dd37ded5390a180720297d12b33360f34a4050640080b906ea0a28
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..4f1b16d516a1
--- /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+=" 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..82ce039fc3a4
--- /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+=" 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..7237614782b3
--- /dev/null
+++ b/media-sound/audacity/files/audacity-3.3.3-Findlibmad.patch
@@ -0,0 +1,55 @@
+https://github.com/audacity/audacity/pull/4916
+https://github.com/audacity/audacity/pull/4917
+
+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..c95676a18cfe
--- /dev/null
+++ b/media-sound/audacity/files/audacity-3.3.3-upstream-fix-rapidjson.patch
@@ -0,0 +1,63 @@
+https://github.com/audacity/audacity/commit/6edaa3f26b34adc65c109c1a5a85923e04330e2d
+https://github.com/audacity/audacity/pull/4918
+
+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 \