media-sound/tenacity: add 1.3.4-r4, drop 1.3.4, 1.3.4-r1, 1.3.4-r3

Bug: https://bugs.gentoo.org/961756
Signed-off-by: Bryce Copeland (truffle) <truffle074@gmail.com>
This commit is contained in:
Bryce Copeland (truffle)
2025-09-04 00:06:02 +10:00
parent 1137e2d25c
commit 3d547c6720
4 changed files with 32 additions and 264 deletions

View File

@@ -0,0 +1,26 @@
disables lto for only the lib-ffmpeg-support, without affecting the rest of the
build. lib-ffmpeg-support has a large number of -Wodr violations due to it
overloading dynmically imported function/struct names for different ffmpeg
versions, with different declarations. the actual types get resolved at runtime
but cause violations at building with LTO.
there is a fix in progress upstream, which should resolve the issue in future
versions: https://codeberg.org/tenacityteam/tenacity/pulls/418
was reported in bug #961756, other revisions (r2 & r3) will still compile but
this fix is cleaner, has less impact, and stops the problematic code from
compiling with LTO at all.
diff --git a/libraries/lib-ffmpeg-support/CMakeLists.txt b/libraries/lib-ffmpeg-support/CMakeLists.txt
index 7e76ab997..7c1037a60 100644
--- a/libraries/lib-ffmpeg-support/CMakeLists.txt
+++ b/libraries/lib-ffmpeg-support/CMakeLists.txt
@@ -117,6 +117,8 @@ if (USE_FFMPEG)
list(APPEND DEFINITIONS PRIVATE _DARWIN_C_SOURCE )
endif()
+ add_compile_options(-fno-lto)
+ add_link_options(-fno-lto)
tenacity_library( lib-ffmpeg-support "${SOURCES}" "${LIBRARIES}"
"${DEFINITIONS}" ""
)

View File

@@ -1,135 +0,0 @@
# Copyright 2025 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 virtualx toolchain-funcs flag-o-matic
# libnyquist doesn't have tags, instead use the specific submodule commit tenacity does
LIBNYQUIST_COMMIT="d4fe08b079538a2fd79277ef1a83434663562f04"
DESCRIPTION="Easy-to-use, privacy-friendly, FLOSS, cross-platform multi-track audio editor"
HOMEPAGE="https://tenacityaudio.org/"
SRC_URI="https://codeberg.org/tenacityteam/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
https://codeberg.org/tenacityteam/libnyquist/archive/${LIBNYQUIST_COMMIT}.tar.gz -> ${PN}-libnyquist-${PV}.tar.gz"
# codeberg doesn't append tag
S="${WORKDIR}/${PN}"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64"
IUSE="ffmpeg +midi +lame +id3tag +mp3 mp2 +flac matroska +ogg +vorbis +sbsms +soundtouch +ladspa +lv2 vamp +vst2"
REQUIRED_USE="
id3tag? ( mp3 )
lame? ( mp3 )
"
DEPEND="
sys-libs/zlib
dev-libs/expat
media-sound/lame
media-libs/libsndfile
media-libs/soxr
dev-db/sqlite:3
media-libs/portaudio
dev-libs/glib:2
x11-libs/gtk+:3
x11-libs/wxGTK:${WX_GTK_VER}=[X]
midi? (
media-libs/portmidi
media-libs/portsmf
)
id3tag? ( media-libs/libid3tag )
mp3? ( media-libs/libmad )
mp2? ( media-sound/twolame )
matroska? ( media-libs/libmatroska )
ogg? ( media-libs/libogg )
vorbis? ( media-libs/libvorbis )
flac? ( media-libs/flac )
sbsms? ( media-libs/libsbsms )
soundtouch? ( media-libs/libsoundtouch )
ffmpeg? ( media-video/ffmpeg )
vamp? ( media-libs/vamp-plugin-sdk )
lv2? (
media-libs/lv2
media-libs/lilv
media-libs/suil
)
sys-devel/gettext
dev-libs/serd
dev-libs/sord
media-libs/sratom
media-libs/taglib
"
RDEPEND="${DEPEND}"
PATCHES=(
"${FILESDIR}/${PN}-1.3.4-fix-rpath-handling.patch"
"${FILESDIR}/${PN}-1.3.4-fix-hardcoded-docdir.patch"
"${FILESDIR}/${PN}-1.3.4-odr-and-aliasing-fixes.patch"
)
src_unpack() {
default
# otherwise build will try to run git --submodule --init
rmdir "${S}/lib-src/libnyquist" || die
ln -s "${WORKDIR}/libnyquist" "${S}/lib-src/libnyquist"
}
src_configure() {
# the lib-ffmpeg-support module violates -Wodr when using GCC,
# so LTO builds will fail when it's enabled (bug #961756)
if use ffmpeg && tc-is-gcc; then
filter-lto
fi
setup-wxwidgets
local mycmakeargs=(
-DVCPKG=OFF
-DPERFORM_CODESIGN=OFF
# portage handles this, specify off to stop autodetect
-DSCCACHE=OFF
-DCCACHE=OFF
# Pre-Compiled Headers needs to stay off, even with ccache installed
# otherwise a bunch of preprocessor variables will be missing
-DPCH=OFF
-DMIDI=$(usex midi ON OFF)
-DID3TAG=$(usex id3tag ON OFF)
-DMP3_DECODING=$(usex mp3 ON OFF)
-DMP2=$(usex mp2 ON OFF)
-DMATROSKA=$(usex matroska ON OFF)
-DOGG=$(usex ogg ON OFF)
-DVORBIS=$(usex vorbis ON OFF)
-DFLAC=$(usex flac ON OFF)
-DSBSMS=$(usex sbsms ON OFF)
-DSOUNDTOUCH=$(usex soundtouch ON OFF)
-DFFMPEG=$(usex ffmpeg ON OFF)
-DLADSPA=$(usex ladspa ON OFF)
#-DAUDIO_UNITS=OFF # option only exists on MacOS
-DLV2=$(usex lv2 ON OFF)
-DVAMP=$(usex vamp ON OFF)
-DVST2=$(usex vst2 ON OFF)
# this flag is misleading, when not "" the flag only has an effect
# when CMAKE_GENERATOR is "Visual Studio*" or "XCode" (i.e. not us)
# man pages will be installed regardless on linux
-DMANUAL_PATH=""
)
cmake_src_configure
}
src_test() {
virtx cmake_src_test
}

View File

@@ -70,8 +70,12 @@ DEPEND="
RDEPEND="${DEPEND}"
PATCHES=(
"${FILESDIR}/tenacity-1.3.4-fix-rpath-handling.patch"
"${FILESDIR}/tenacity-1.3.4-fix-hardcoded-docdir.patch"
"${FILESDIR}/${PN}-1.3.4-fix-rpath-handling.patch"
"${FILESDIR}/${PN}-1.3.4-fix-hardcoded-docdir.patch"
# bug #961756
"${FILESDIR}/${PN}-1.3.4-odr-and-aliasing-fixes.patch"
"${FILESDIR}/${PN}-1.3.4-ffmpeg-disable-lto.patch"
)
src_unpack() {

View File

@@ -1,127 +0,0 @@
# Copyright 2025 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 virtualx
# libnyquist doesn't have tags, instead use the specific submodule commit tenacity does
LIBNYQUIST_COMMIT="d4fe08b079538a2fd79277ef1a83434663562f04"
DESCRIPTION="Easy-to-use, privacy-friendly, FLOSS, cross-platform multi-track audio editor"
HOMEPAGE="https://tenacityaudio.org/"
SRC_URI="https://codeberg.org/tenacityteam/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
https://codeberg.org/tenacityteam/libnyquist/archive/${LIBNYQUIST_COMMIT}.tar.gz -> ${PN}-libnyquist-${PV}.tar.gz"
# codeberg doesn't append tag
S="${WORKDIR}/${PN}"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64"
IUSE="alsa ffmpeg +midi +lame +id3tag +mp3 +mp2 +flac +ogg +vorbis +sbsms +soundtouch +ladspa +lv2 vamp +vst2"
REQUIRED_USE="
id3tag? ( mp3 )
lame? ( mp3 )
vorbis? ( ogg )
"
DEPEND="
dev-libs/glib:2
x11-libs/gtk+:3
x11-libs/wxGTK:${WX_GTK_VER}=[X]
media-libs/alsa-lib
dev-libs/expat
flac? ( media-libs/flac )
sys-devel/gettext
media-sound/lame
id3tag? ( media-libs/libid3tag )
mp3? ( media-libs/libmad )
ogg? ( media-libs/libogg )
media-libs/libsndfile
vorbis? ( media-libs/libvorbis )
lv2? (
media-libs/lilv
media-libs/lv2
)
midi? (
media-libs/portaudio
media-libs/portmidi
)
dev-libs/serd
dev-libs/sord
soundtouch? ( media-libs/libsoundtouch )
media-libs/soxr
dev-db/sqlite
media-libs/sratom
media-libs/suil
media-libs/taglib
mp2? ( media-sound/twolame )
media-libs/vamp-plugin-sdk
x11-libs/wxGTK
sys-libs/zlib
ffmpeg? ( media-video/ffmpeg )
sbsms? ( media-libs/libsbsms )
vamp? ( media-libs/vamp-plugin-sdk )
"
RDEPEND="${DEPEND}"
PATCHES=(
"${FILESDIR}/tenacity-1.3.4-fix-rpath-handling.patch"
"${FILESDIR}/tenacity-1.3.4-fix-hardcoded-docdir.patch"
)
src_unpack() {
default
# otherwise build will try to run git --submodule --init
rmdir "${S}/lib-src/libnyquist" || die
ln -s "${WORKDIR}/libnyquist" "${S}/lib-src/libnyquist"
}
src_configure() {
setup-wxwidgets
local mycmakeargs=(
-DVCPKG=OFF
-DPERFORM_CODESIGN=OFF
# portage handles this, specify off to stop autodetect
-DSCCACHE=OFF
-DCCACHE=OFF
# Pre-Compiled Headers needs to stay off, even with ccache installed
# otherwise a bunch of preprocessor variables will be missing
-DPCH=OFF
-DMIDI=$(usex midi ON OFF)
-DID3TAG=$(usex id3tag ON OFF)
-DMP3_DECODING=$(usex mp3 ON OFF)
-DMP2=$(usex mp2 ON OFF)
-DOGG=$(usex ogg ON OFF)
-DVORBIS=$(usex vorbis ON OFF)
-DFLAC=$(usex flac ON OFF)
-DSBSMS=$(usex sbsms ON OFF)
-DSOUNDTOUCH=$(usex soundtouch ON OFF)
-DFFMPEG=$(usex ffmpeg ON OFF)
-DLADSPA=$(usex ladspa ON OFF)
#-DAUDIO_UNITS=OFF # option only exists on MacOS
-DLV2=$(usex lv2 ON OFF)
-DVAMP=$(usex vamp ON OFF)
-DVST2=$(usex vst2 ON OFF)
# this flag is misleading, when not "" the flag only has an effect
# when CMAKE_GENERATOR is "Visual Studio*" or "XCode" (i.e. not us)
# man pages will be installed regardless on linux
-DMANUAL_PATH=""
)
cmake_src_configure
}
src_test() {
virtx cmake_src_test
}