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;

Reply via email to