commit: fd23dea40355b04be6d6eaad559a03bc0c4a48a4 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Tue Feb 18 21:52:25 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Tue Feb 18 21:53:16 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fd23dea4
media-sound/easytag: fix up for id3lib bool changes This is a temporary bandaid. I've concluded my previous approach isn't going to work and will revisit it tomorrow, but this is good enough for now. Bug: https://bugs.gentoo.org/949086 Bug: https://bugs.gentoo.org/949814 Signed-off-by: Sam James <sam <AT> gentoo.org> media-sound/easytag/easytag-2.4.3-r8.ebuild | 86 +++++++++++++++++++++++ media-sound/easytag/files/easytag-2.4.3-c23.patch | 56 +++++++++++++++ 2 files changed, 142 insertions(+) diff --git a/media-sound/easytag/easytag-2.4.3-r8.ebuild b/media-sound/easytag/easytag-2.4.3-r8.ebuild new file mode 100644 index 000000000000..c455422cab3b --- /dev/null +++ b/media-sound/easytag/easytag-2.4.3-r8.ebuild @@ -0,0 +1,86 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +GNOME2_EAUTORECONF="yes" +inherit flag-o-matic gnome2 + +DESCRIPTION="GTK+ utility for editing MP2, MP3, MP4, FLAC, Ogg and other media tags" +HOMEPAGE="https://wiki.gnome.org/Apps/EasyTAG" + +LICENSE="GPL-2 GPL-2+ LGPL-2 LGPL-2+ LGPL-2.1+" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~ppc-macos" +IUSE="flac mp3 mp4 opus speex test vorbis wavpack" +# Disable nautilus support until https://gitlab.gnome.org/GNOME/easytag/-/issues/78 +# is solved +RESTRICT="!test? ( test )" +REQUIRED_USE=" + opus? ( vorbis ) + speex? ( vorbis )" + +RDEPEND=" + >=dev-libs/glib-2.38:2 + || ( + media-libs/libcanberra-gtk3 + media-libs/libcanberra[gtk3(-)] + ) + >=x11-libs/gtk+-3.10:3 + flac? ( >=media-libs/flac-1.3:= ) + mp3? ( + >=media-libs/id3lib-3.8.3-r8 + >=media-libs/libid3tag-0.15.1b-r4:= + ) + mp4? ( media-libs/taglib:=[mp4(+)] ) + opus? ( + >=media-libs/opus-1.1 + >=media-libs/opusfile-0.4 + ) + speex? ( >=media-libs/speex-1.2_rc1 ) + vorbis? ( + >=media-libs/libogg-1.3.1 + >=media-libs/libvorbis-1.3.4 + ) + wavpack? ( >=media-sound/wavpack-4.70 )" +DEPEND="${RDEPEND}" +BDEPEND=" + app-text/docbook-xml-dtd:4.4 + app-text/yelp-tools + dev-util/glib-utils + dev-libs/appstream-glib + dev-libs/libxml2 + dev-libs/libxslt + >=dev-util/intltool-0.50 + >=sys-devel/gettext-0.18.3.2 + virtual/pkgconfig + test? ( + >=dev-util/desktop-file-utils-0.22 + )" + +PATCHES=( + "${FILESDIR}"/${P}-ogg-corruption.patch + "${FILESDIR}"/${P}-fix-build-taglib2.patch + "${FILESDIR}"/${P}-fix-check-id3.patch + "${FILESDIR}"/${P}-fix-appdata.patch + "${FILESDIR}"/${P}-c23.patch +) + +src_configure() { + # bug #949814 + filter-lto + + gnome2_src_configure \ + --disable-Werror \ + --disable-nautilus-actions \ + $(use_enable test appdata-validate) \ + $(use_enable test tests) \ + $(use_enable mp3) \ + $(use_enable mp3 id3v23) \ + $(use_enable vorbis ogg) \ + $(use_enable opus) \ + $(use_enable speex) \ + $(use_enable flac) \ + $(use_enable mp4) \ + $(use_enable wavpack) +} diff --git a/media-sound/easytag/files/easytag-2.4.3-c23.patch b/media-sound/easytag/files/easytag-2.4.3-c23.patch new file mode 100644 index 000000000000..431ee20da064 --- /dev/null +++ b/media-sound/easytag/files/easytag-2.4.3-c23.patch @@ -0,0 +1,56 @@ +The C23 patch we added to media-libs/id3lib for https://bugs.gentoo.org/949086 +means that 'bool' isn't exposed by the id3lib headers anymore (see +commit 5b0d1e373dcd8c4f79735d033d205a6f36698c59 for the details on why) +so we need to use 'my_bool' which *is* exposed by them instead when +apparently making up our own interfaces here in easytag. + +See https://bugs.gentoo.org/949814. +--- a/src/tags/id3lib/id3_bugfix.h ++++ b/src/tags/id3lib/id3_bugfix.h +@@ -29,13 +29,13 @@ + G_BEGIN_DECLS + + #if !HAVE_DECL_ID3FIELD_SETENCODING +-ID3_C_EXPORT bool CCONV ID3Field_SetEncoding (ID3Field *field, ID3_TextEnc enc); ++ID3_C_EXPORT my_bool CCONV ID3Field_SetEncoding (ID3Field *field, ID3_TextEnc enc); + #endif /* !HAVE_DECL_ID3FIELD_SETENCODING */ + #if !HAVE_DECL_ID3FIELD_GETENCODING + ID3_C_EXPORT ID3_TextEnc CCONV ID3Field_GetEncoding (const ID3Field *field); + #endif /* !HAVE_DECL_ID3FIELD_GETENCODING */ + #if !HAVE_DECL_ID3FIELD_ISENCODABLE +-ID3_C_EXPORT bool CCONV ID3Field_IsEncodable (const ID3Field *field); ++ID3_C_EXPORT my_bool CCONV ID3Field_IsEncodable (const ID3Field *field); + #endif /* !HAVE_DECL_ID3FIELD_ISENCODABLE */ + ID3_C_EXPORT ID3_FieldType CCONV ID3Field_GetType (const ID3Field *field); + //ID3_C_EXPORT ID3_FieldID CCONV ID3Field_GetID (const ID3Field *field); +diff --git a/src/tags/id3lib/c_wrapper.cpp b/src/tags/id3lib/c_wrapper.cpp +index ace7442..d7ad422 100644 +--- a/src/tags/id3lib/c_wrapper.cpp ++++ b/src/tags/id3lib/c_wrapper.cpp +@@ -39,7 +39,7 @@ extern "C" + // Tag wrappers + // + +- ID3_C_EXPORT bool CCONV ++ ID3_C_EXPORT my_bool CCONV + ID3Field_SetEncoding(ID3Field *field, ID3_TextEnc enc) + { + bool changed = false; +@@ -61,7 +61,7 @@ extern "C" + return enc; + } + +- ID3_C_EXPORT bool CCONV ++ ID3_C_EXPORT my_bool CCONV + ID3Field_IsEncodable(const ID3Field *field) + { + bool isEncodable = false; +@@ -116,7 +116,7 @@ extern "C" + // Call with : + // Mp3_Headerinfo* headerInfo = malloc(sizeof(Mp3_Headerinfo)); + // ID3Tag_GetMp3HeaderInfo(tag, headerInfo); +- /*ID3_C_EXPORT bool CCONV ++ /*ID3_C_EXPORT my_bool CCONV + ID3Tag_GetMp3HeaderInfo(ID3Tag *tag, Mp3_Headerinfo* headerInfo) + { + const Mp3_Headerinfo* rem_headerInfo = NULL;
