commit: 72e8c24fcd0beb997a88f7d185a02a212abafe37 Author: Aliaksei Urbanski <aliaksei.urbanski <AT> gmail <DOT> com> AuthorDate: Tue Apr 16 19:03:31 2024 +0000 Commit: Yixun Lan <dlan <AT> gentoo <DOT> org> CommitDate: Tue Apr 16 22:53:49 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=72e8c24f
media-sound/audacity: fix various issues The flac USE flag was mistakenly used instead of the opus USE flag for configuring. Also, Audacity 3.4.2 introduced a brand new USE_OPUSFILE option which must be set properly. These changes: - fix the opus USE flag - add proper REQUIRED_USE - replace media-sound/mpg123 with media-sound/mpg123-base - move dev-libs/rapidjson from RDEPEND to DEPEND - fix missing `#include <limits>` for 2.4.2-r4 - limit media-video/ffmpeg to <5 for 2.4.2-r4 - add x11-base/xorg-proto to DEPEND - add some ASM to BDEPEND - add audacity-3.4.2-audiocom-std-string.patch to PATCHES for 3.3.3-r1 - add audacity-2.4.2-fix-libflac-undefined-references.patch to PATCHES for 2.4.2-r4 - reset KEYWORDS for 2.4.2-r4 and 3.3.3-r1 Closes: https://bugs.gentoo.org/741969 Closes: https://bugs.gentoo.org/884747 Closes: https://bugs.gentoo.org/910723 Closes: https://bugs.gentoo.org/922595 Closes: https://bugs.gentoo.org/927659 Closes: https://github.com/gentoo/gentoo/pull/35903 Co-authored-by: Matthew White <mehw.is.me <AT> inventati.org> Signed-off-by: Aliaksei Urbanski <aliaksei.urbanski <AT> gmail.com> Signed-off-by: Yixun Lan <dlan <AT> gentoo.org> media-sound/audacity/audacity-2.4.2-r4.ebuild | 135 +++++++++++++++++++++ ...acity-3.3.3.ebuild => audacity-3.3.3-r1.ebuild} | 33 ++--- ...acity-3.4.2.ebuild => audacity-3.4.2-r1.ebuild} | 24 ++-- media-sound/audacity/audacity-9999.ebuild | 24 ++-- ...audacity-2.4.2-add-missing-include-limits.patch | 10 ++ ...ty-2.4.2-fix-libflac-undefined-references.patch | 61 ++++++++++ media-sound/audacity/metadata.xml | 4 +- 7 files changed, 258 insertions(+), 33 deletions(-) diff --git a/media-sound/audacity/audacity-2.4.2-r4.ebuild b/media-sound/audacity/audacity-2.4.2-r4.ebuild new file mode 100644 index 000000000000..b29bbbcdba5e --- /dev/null +++ b/media-sound/audacity/audacity-2.4.2-r4.ebuild @@ -0,0 +1,135 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 +WX_GTK_VER="3.0-gtk3" + +inherit cmake flag-o-matic wxwidgets xdg + +MY_P="Audacity-${PV}" +DOC_PV="${PV}" +DESCRIPTION="Free crossplatform audio editor" +HOMEPAGE="https://www.audacityteam.org/" +# wget doesn't seem to work on FossHub links, so we mirror +SRC_URI="https://github.com/audacity/audacity/archive/${MY_P}.tar.gz + doc? ( https://dev.gentoo.org/~fordfrog/distfiles/${PN}-manual-${DOC_PV}.zip )" +S="${WORKDIR}/${PN}-${MY_P}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~ppc ~ppc64 ~riscv ~x86" +IUSE="alsa doc ffmpeg +flac id3tag jack +ladspa +lv2 mad ogg oss + portmidi +portmixer portsmf sbsms twolame vamp +vorbis +vst" + +RESTRICT="test" + +RDEPEND="dev-libs/expat + media-libs/libsndfile + media-libs/libsoundtouch:= + media-libs/portaudio[alsa?] + media-libs/soxr + >=media-sound/lame-3.100-r3 + x11-libs/wxGTK:${WX_GTK_VER}[X] + alsa? ( media-libs/alsa-lib ) + ffmpeg? ( <media-video/ffmpeg-5:= ) + flac? ( media-libs/flac:=[cxx] ) + id3tag? ( media-libs/libid3tag:= ) + jack? ( virtual/jack ) + lv2? ( + dev-libs/serd + dev-libs/sord + >=media-libs/lilv-0.24.6-r2 + media-libs/lv2 + media-libs/sratom + media-libs/suil + ) + mad? ( >=media-libs/libmad-0.15.1b ) + ogg? ( media-libs/libogg ) + portmidi? ( media-libs/portmidi ) + sbsms? ( media-libs/libsbsms ) + twolame? ( media-sound/twolame ) + vamp? ( media-libs/vamp-plugin-sdk ) + vorbis? ( media-libs/libvorbis ) +" +DEPEND="${RDEPEND} + x11-base/xorg-proto" +BDEPEND="app-arch/unzip + || ( dev-lang/nasm dev-lang/yasm ) + sys-devel/gettext + virtual/pkgconfig" + +REQUIRED_USE="portmidi? ( portsmf )" + +PATCHES=( + "${FILESDIR}"/${PN}-2.3.3-Fix-building-against-system-portaudio.patch + "${FILESDIR}/${P}-fix-vertical-track-resizing.patch" + "${FILESDIR}/${P}-fix-gettimeofday.patch" + "${FILESDIR}/${P}-fix-metainfo.patch" + "${FILESDIR}/${P}-add-missing-include-limits.patch" + "${FILESDIR}/${P}-add-missing-include-portaudio.patch" + "${FILESDIR}/${P}-disable-ccache.patch" + "${FILESDIR}/${P}-fix-libflac-undefined-references.patch" +) + +src_prepare() { + cmake_src_prepare +} + +src_configure() { + setup-wxwidgets + append-cxxflags -std=gnu++14 + + # * always use system libraries if possible + # * options listed in the order that cmake-gui lists them + local mycmakeargs=( +# --disable-dynamic-loading + -Daudacity_lib_preference=system + -Daudacity_use_expat=system + -Daudacity_use_ffmpeg=$(usex ffmpeg loaded off) + -Daudacity_use_flac=$(usex flac system off) + -Daudacity_use_id3tag=$(usex id3tag system off) + -Daudacity_use_ladspa=$(usex ladspa) + -Daudacity_use_lame=system + -Daudacity_use_lv2=$(usex lv2 system off) + -Daudacity_use_mad=$(usex mad system off) + -Daudacity_use_midi=$(usex portmidi system off) + -Daudacity_use_nyquist=local + -Daudacity_use_ogg=$(usex ogg system off) + -Daudacity_use_pa_alsa=$(usex alsa) + -Daudacity_use_pa_jack=$(usex jack linked off) + -Daudacity_use_pa_oss=$(usex oss) + -Daudacity_use_pch=OFF + -Daudacity_use_portaudio=local # only 'local' option is present + -Daudacity_use_portmixer=$(usex portmixer local off) + -Daudacity_use_portsmf=$(usex portsmf local off) + -Daudacity_use_sbsms=$(usex sbsms local off) # no 'system' option in configuration? + -Daudacity_use_sndfile=system + -Daudacity_use_soundtouch=system + -Daudacity_use_soxr=system + -Daudacity_use_twolame=$(usex twolame system off) + -Daudacity_use_vamp=$(usex vamp system off) + -Daudacity_use_vorbis=$(usex vorbis system off) + -Daudacity_use_vst=$(usex vst) + -Daudacity_use_wxwidgets=system + ) + + cmake_src_configure + + # if git is not installed, this (empty) file is not being created and the compilation fails + # so we create it manually + touch "${BUILD_DIR}/src/private/RevisionIdent.h" || die "failed to create file" +} + +src_install() { + cmake_src_install + + # Remove bad doc install + rm -r "${ED}"/usr/share/doc || die + + if use doc ; then + docinto html + dodoc -r "${WORKDIR}"/help/manual/{m,man,manual} + dodoc "${WORKDIR}"/help/manual/{favicon.ico,index.html,quick_help.html} + dosym ../../doc/${PF}/html /usr/share/${PN}/help/manual + fi +} diff --git a/media-sound/audacity/audacity-3.3.3.ebuild b/media-sound/audacity/audacity-3.3.3-r1.ebuild similarity index 94% rename from media-sound/audacity/audacity-3.3.3.ebuild rename to media-sound/audacity/audacity-3.3.3-r1.ebuild index 2cba5da71a87..82c770a5849d 100644 --- a/media-sound/audacity/audacity-3.3.3.ebuild +++ b/media-sound/audacity/audacity-3.3.3-r1.ebuild @@ -20,7 +20,7 @@ if [[ ${PV} = 9999* ]]; then inherit git-r3 EGIT_REPO_URI="https://github.com/audacity/audacity.git" else - KEYWORDS="amd64 ~arm64 ppc64 ~riscv ~x86" + KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86" MY_P="Audacity-${PV}" S="${WORKDIR}/${PN}-${MY_P}" SRC_URI="https://github.com/audacity/audacity/archive/${MY_P}.tar.gz" @@ -36,8 +36,13 @@ LICENSE="GPL-2+ audiocom? ( ZLIB ) " SLOT="0" -IUSE="alsa audiocom ffmpeg +flac id3tag +ladspa +lv2 mad mpg123 ogg +IUSE="alsa audiocom ffmpeg +flac id3tag +ladspa +lv2 mad mpg123 +ogg opus +portmixer sbsms test twolame vamp +vorbis wavpack" +REQUIRED_USE=" + mad? ( !mpg123 ) + opus? ( ogg ) + vorbis? ( ogg ) +" RESTRICT="!test? ( test )" # dev-db/sqlite:3 hard dependency. @@ -77,10 +82,7 @@ RDEPEND="dev-db/sqlite:3 x11-libs/wxGTK:${WX_GTK_VER}[X] sys-apps/util-linux alsa? ( media-libs/alsa-lib ) - audiocom? ( - dev-libs/rapidjson - net-misc/curl - ) + audiocom? ( net-misc/curl ) ffmpeg? ( media-video/ffmpeg ) flac? ( media-libs/flac:=[cxx] ) id3tag? ( media-libs/libid3tag:= ) @@ -93,7 +95,7 @@ RDEPEND="dev-db/sqlite:3 media-libs/suil ) mad? ( media-libs/libmad ) - mpg123? ( media-sound/mpg123 ) + mpg123? ( media-sound/mpg123-base ) ogg? ( media-libs/libogg ) opus? ( media-libs/opus ) sbsms? ( media-libs/libsbsms ) @@ -103,15 +105,13 @@ RDEPEND="dev-db/sqlite:3 wavpack? ( media-sound/wavpack ) " DEPEND="${RDEPEND} + audiocom? ( dev-libs/rapidjson ) + x11-base/xorg-proto test? ( <dev-cpp/catch-3:0 )" BDEPEND="app-arch/unzip + || ( dev-lang/nasm dev-lang/yasm ) sys-devel/gettext - virtual/pkgconfig -" - -REQUIRED_USE=" - mad? ( !mpg123 ) -" + virtual/pkgconfig" PATCHES=( # Equivalent to previous versions @@ -137,6 +137,9 @@ PATCHES=( # Allows running tests without conan "${FILESDIR}/${PN}-3.3.3-remove-conan-test-dependency.patch" + + # #920363 + "${FILESDIR}/${PN}-3.4.2-audiocom-std-string.patch" ) src_prepare() { @@ -203,9 +206,9 @@ src_configure() { -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_libopus=$(usex opus system off) -Daudacity_use_libsndfile=system + -Daudacity_use_libvorbis=$(usex vorbis system off) -Daudacity_use_portaudio=system -Daudacity_use_midi=system -Daudacity_use_vamp=$(usex vamp system off) diff --git a/media-sound/audacity/audacity-3.4.2.ebuild b/media-sound/audacity/audacity-3.4.2-r1.ebuild similarity index 94% rename from media-sound/audacity/audacity-3.4.2.ebuild rename to media-sound/audacity/audacity-3.4.2-r1.ebuild index 69a039bc866a..f88c0660d2e3 100644 --- a/media-sound/audacity/audacity-3.4.2.ebuild +++ b/media-sound/audacity/audacity-3.4.2-r1.ebuild @@ -36,8 +36,12 @@ LICENSE="GPL-2+ audiocom? ( ZLIB ) " SLOT="0" -IUSE="alsa audiocom ffmpeg +flac id3tag +ladspa +lv2 mpg123 ogg +IUSE="alsa audiocom ffmpeg +flac id3tag +ladspa +lv2 mpg123 +ogg opus +portmixer sbsms test twolame vamp +vorbis wavpack" +REQUIRED_USE=" + opus? ( ogg ) + vorbis? ( ogg ) +" RESTRICT="!test? ( test )" # dev-db/sqlite:3 hard dependency. @@ -65,7 +69,6 @@ RESTRICT="!test? ( test )" RDEPEND="dev-db/sqlite:3 dev-libs/expat dev-libs/glib:2 - dev-libs/rapidjson:= media-libs/libjpeg-turbo:= media-libs/libpng:= media-libs/libsndfile @@ -95,9 +98,12 @@ RDEPEND="dev-db/sqlite:3 media-libs/sratom media-libs/suil ) - mpg123? ( media-sound/mpg123 ) + mpg123? ( media-sound/mpg123-base ) ogg? ( media-libs/libogg ) - opus? ( media-libs/opus ) + opus? ( + media-libs/opus + media-libs/opusfile + ) sbsms? ( media-libs/libsbsms ) twolame? ( media-sound/twolame ) vamp? ( media-libs/vamp-plugin-sdk ) @@ -105,11 +111,12 @@ RDEPEND="dev-db/sqlite:3 wavpack? ( media-sound/wavpack ) " DEPEND="${RDEPEND} + dev-libs/rapidjson + x11-base/xorg-proto test? ( <dev-cpp/catch-3:0 )" -BDEPEND=" +BDEPEND="|| ( dev-lang/nasm dev-lang/yasm ) sys-devel/gettext - virtual/pkgconfig -" + virtual/pkgconfig" PATCHES=( # Equivalent to previous versions @@ -188,12 +195,13 @@ src_configure() { -Daudacity_use_libmp3lame=system -Daudacity_use_libmpg123=$(usex mpg123 system off) -Daudacity_use_libogg=$(usex ogg system off) - -Daudacity_use_libopus=$(usex flac system off) + -Daudacity_use_libopus=$(usex opus system off) -Daudacity_use_libsndfile=system -Daudacity_use_libvorbis=$(usex vorbis system off) -Daudacity_use_lv2=$(usex lv2 system off) -Daudacity_use_midi=system -Daudacity_use_nyquist=local + -Daudacity_use_opusfile=$(usex opus system off) -Daudacity_use_pch=off -Daudacity_use_portaudio=system -Daudacity_use_portmixer=$(usex portmixer system off) diff --git a/media-sound/audacity/audacity-9999.ebuild b/media-sound/audacity/audacity-9999.ebuild index 9246a3ee4e7c..470b89e1cfce 100644 --- a/media-sound/audacity/audacity-9999.ebuild +++ b/media-sound/audacity/audacity-9999.ebuild @@ -36,8 +36,12 @@ LICENSE="GPL-2+ audiocom? ( ZLIB ) " SLOT="0" -IUSE="alsa audiocom ffmpeg +flac id3tag +ladspa +lv2 mpg123 ogg +IUSE="alsa audiocom ffmpeg +flac id3tag +ladspa +lv2 mpg123 +ogg opus +portmixer sbsms test twolame vamp +vorbis wavpack" +REQUIRED_USE=" + opus? ( ogg ) + vorbis? ( ogg ) +" RESTRICT="!test? ( test )" # dev-db/sqlite:3 hard dependency. @@ -65,7 +69,6 @@ RESTRICT="!test? ( test )" RDEPEND="dev-db/sqlite:3 dev-libs/expat dev-libs/glib:2 - dev-libs/rapidjson:= media-libs/libjpeg-turbo:= media-libs/libpng:= media-libs/libsndfile @@ -95,9 +98,12 @@ RDEPEND="dev-db/sqlite:3 media-libs/sratom media-libs/suil ) - mpg123? ( media-sound/mpg123 ) + mpg123? ( media-sound/mpg123-base ) ogg? ( media-libs/libogg ) - opus? ( media-libs/opus ) + opus? ( + media-libs/opus + media-libs/opusfile + ) sbsms? ( media-libs/libsbsms ) twolame? ( media-sound/twolame ) vamp? ( media-libs/vamp-plugin-sdk ) @@ -105,11 +111,12 @@ RDEPEND="dev-db/sqlite:3 wavpack? ( media-sound/wavpack ) " DEPEND="${RDEPEND} + dev-libs/rapidjson + x11-base/xorg-proto test? ( <dev-cpp/catch-3:0 )" -BDEPEND=" +BDEPEND="|| ( dev-lang/nasm dev-lang/yasm ) sys-devel/gettext - virtual/pkgconfig -" + virtual/pkgconfig" PATCHES=( # Equivalent to previous versions @@ -192,12 +199,13 @@ src_configure() { -Daudacity_use_libmp3lame=system -Daudacity_use_libmpg123=$(usex mpg123 system off) -Daudacity_use_libogg=$(usex ogg system off) - -Daudacity_use_libopus=$(usex flac system off) + -Daudacity_use_libopus=$(usex opus system off) -Daudacity_use_libsndfile=system -Daudacity_use_libvorbis=$(usex vorbis system off) -Daudacity_use_lv2=$(usex lv2 system off) -Daudacity_use_midi=system -Daudacity_use_nyquist=local + -Daudacity_use_opusfile=$(usex opus system off) -Daudacity_use_pch=off -Daudacity_use_portaudio=system -Daudacity_use_portmixer=$(usex portmixer system off) diff --git a/media-sound/audacity/files/audacity-2.4.2-add-missing-include-limits.patch b/media-sound/audacity/files/audacity-2.4.2-add-missing-include-limits.patch new file mode 100644 index 000000000000..09fb42ad2026 --- /dev/null +++ b/media-sound/audacity/files/audacity-2.4.2-add-missing-include-limits.patch @@ -0,0 +1,10 @@ +--- a/include/audacity/Types.h ++++ b/include/audacity/Types.h +@@ -44,6 +44,7 @@ + + #include <algorithm> + #include <functional> ++#include <limits> + #include <type_traits> + #include <vector> + #include <wx/debug.h> // for wxASSERT diff --git a/media-sound/audacity/files/audacity-2.4.2-fix-libflac-undefined-references.patch b/media-sound/audacity/files/audacity-2.4.2-fix-libflac-undefined-references.patch new file mode 100644 index 000000000000..0500f7621e45 --- /dev/null +++ b/media-sound/audacity/files/audacity-2.4.2-fix-libflac-undefined-references.patch @@ -0,0 +1,61 @@ +From be29286502be6c41b76e652b02862fe987c1f49b Mon Sep 17 00:00:00 2001 +From: Matthew White <mehw.is...@inventati.org> +Date: Sun, 14 Apr 2024 04:03:34 +0000 +Subject: [PATCH] libflac: fix undefined references when libflac is disabled + +In the upstream master branch: + - future commit 2fbfd3e0a5ab803e2072cbac1b2be685c3adcf05 disabled + ondemand (aka OD) in CMakeLists.txt. + - future commit cbf1bb558e094e24cbb54c3bbd2bd45a1abbfb2a expunged + ondemand fully. + +Closes: https://bugs.gentoo.org/741969 +Closes: https://bugs.gentoo.org/884747 +--- + src/CMakeLists.txt | 6 ++++-- + src/ProjectFileManager.cpp | 4 +++- + 2 files changed, 7 insertions(+), 3 deletions(-) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 93dc50c82..b2c4496ab 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -702,8 +702,10 @@ list( APPEND SOURCES + ondemand/ODComputeSummaryTask.h + ondemand/ODDecodeFFmpegTask.cpp + ondemand/ODDecodeFFmpegTask.h +- ondemand/ODDecodeFlacTask.cpp +- ondemand/ODDecodeFlacTask.h ++ $<$<BOOL:${USE_LIBFLAC}>: ++ ondemand/ODDecodeFlacTask.cpp ++ ondemand/ODDecodeFlacTask.h ++ > + ondemand/ODDecodeTask.cpp + ondemand/ODDecodeTask.h + ondemand/ODManager.cpp +diff --git a/src/ProjectFileManager.cpp b/src/ProjectFileManager.cpp +index de5eeee98..106c52c31 100644 +--- a/src/ProjectFileManager.cpp ++++ b/src/ProjectFileManager.cpp +@@ -51,7 +51,9 @@ Paul Licameli split from AudacityProject.cpp + #include "import/ImportMIDI.h" + #include "commands/CommandContext.h" + #include "ondemand/ODComputeSummaryTask.h" ++#ifdef USE_LIBFLAC + #include "ondemand/ODDecodeFlacTask.h" ++#endif + #include "ondemand/ODManager.h" + #include "ondemand/ODTask.h" + #include "toolbars/SelectionBar.h" +@@ -276,7 +278,7 @@ void ProjectFileManager::EnqueueODTasks() + while((odFlags|createdODTasks) != createdODTasks) + { + std::unique_ptr<ODTask> newTask; +-#ifdef EXPERIMENTAL_OD_FLAC ++#if defined(EXPERIMENTAL_OD_FLAC) && defined(USE_LIBFLAC) + if(!(createdODTasks&ODTask::eODFLAC) && (odFlags & ODTask::eODFLAC)) { + newTask = std::make_unique<ODDecodeFlacTask>(); + createdODTasks = createdODTasks | ODTask::eODFLAC; +-- +2.44.0 + diff --git a/media-sound/audacity/metadata.xml b/media-sound/audacity/metadata.xml index 63566f7f9050..e17276dd00ed 100644 --- a/media-sound/audacity/metadata.xml +++ b/media-sound/audacity/metadata.xml @@ -21,8 +21,8 @@ <flag name="audiocom">Enable integrated uploading to audio.com</flag> <flag name="id3tag">Enables ID3 tagging with id3tag library</flag> <flag name="lv2">Add support for Ladspa V2</flag> - <flag name="mpg123">Use <pkg>media-sound/mpg123</pkg> instead of - <pkg>media-libs/libmad</pkg> for decoding MPEG decoding</flag> + <flag name="mpg123">Use <pkg>media-sound/mpg123-base</pkg> instead of + <pkg>media-libs/libmad</pkg> for MPEG decoding</flag> <flag name="portmidi">Enable support for MIDI via <pkg>media-libs/portmidi</pkg></flag> <flag name="portmixer">Enable the internal portmixer feature</flag> <flag name="portsmf">Enable support for Portable Standard Midi File Library</flag>