Bug 276677 - audio/taglib: Update to 2.0.1
Summary: audio/taglib: Update to 2.0.1
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: Jason E. Hale
URL: https://github.com/taglib/taglib/rele...
Keywords:
Depends on: 276722 277040 279462
Blocks:
  Show dependency treegraph
 
Reported: 2024-01-28 08:35 UTC by Daniel Engberg
Modified: 2024-06-14 05:44 UTC (History)
4 users (show)

See Also:
jhale: maintainer-feedback+


Attachments
Patch for taglib (25.66 KB, patch)
2024-01-28 08:35 UTC, Daniel Engberg
no flags Details | Diff
Patch for taglib v2 (25.92 KB, patch)
2024-01-29 23:57 UTC, Daniel Engberg
no flags Details | Diff
v2 (26.08 KB, patch)
2024-06-07 04:04 UTC, Jason E. Hale
jhale: maintainer-approval+
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Engberg freebsd_committer freebsd_triage 2024-01-28 08:35:09 UTC
Created attachment 248026 [details]
Patch for taglib

Drop the RCC patch, it's 2024 and I think we can expect people to have moved on to proper ID3v2 tagging by now.

Compile and runtime tested on FreeBSD 14.0-RELEASE (amd64) (make, make check-plist, make test)

Poudriere testport OK 13.2-RELEASE (amd64)
Poudriere testport OK 14.0-RELEASE (amd64)

Following consumers needs patching:
devel/kf5-kfilemetadata
multimedia/qmmp-qt5
multimedia/qmmp-qt6
audio/taglib-extras
audio/py-tagpy
audio/gonic
multimedia/vlc
audio/ncmpcpp
multimedia/musikcube
multimedia/musique
audio/quimup
audio/easytag
audio/ardour
audio/kid3
audio/juk
multimedia/kodi
converters/gbsdconv
audio/gogglesmm
audio/mixxx
audio/mp3unicode
Comment 1 Daniel Engberg freebsd_committer freebsd_triage 2024-01-28 08:36:09 UTC
At least Arch Linux have already imported 2.0 so we can have a look at their repo for patches and use this as a meta PR.
Comment 2 Daniel Engberg freebsd_committer freebsd_triage 2024-01-29 21:32:51 UTC
Might also want to pull in https://github.com/taglib/taglib/pull/1218 ?
Comment 3 Jason E. Hale freebsd_committer freebsd_triage 2024-01-29 22:51:43 UTC
Thanks for working on this, but as you stated there is still some work to do. Probably best to let the dust to settle a bit, but most of the failed projects you listed appear to have already caught up and I would expect actively maintained projects like mixxx and vlc to not be far behind. Probably should do an exp-run after the fixes are in. It's also possible to suffix the taglib 2.x port and install alongside the 1.x port as a transitional step, but I'm not sure that's necessary or useful.

While I respect non-ISO-8859-1 character sets and can read Cyrillic, I agree that the RCC patch should be ditched. Never was a fan of it in the first place since it has been a maintenance burden for the past 15 years, but I understand it was needed to overcome the shortcomings of the ID3v1 standard. ID3v2 has been around for 25+ years and hopefully users will have retagged their collections by now. Either way, we have a few great taggers like picard and kid3 that can do just that. There may still be a niche retro market that depends on the ID3v1 tag, so I'm open to reinstating the patch if someone really has a use-case for it and wants to update it, but I'm kind of over doing it myself.

devel/kf5-kfilemetadata: Fixed upstream - https://invent.kde.org/frameworks/kfilemetadata/-/commit/0d1606612aca206a122aa376045ec8871d50de59
multimedia/qmmp-qt5: Fixed upstream - https://sourceforge.net/p/qmmp-dev/code/11257/
multimedia/qmmp-qt6: Fixed upstream - https://sourceforge.net/p/qmmp-dev/code/11256/
audio/taglib-extras: Hasn't been updated for years and should be removed. Its only consumer, audio/cantata, doesn't even use it. I'll remove the unused dep in cantata and mark taglib-extras for removal.
audio/ncmpcpp: Has an open pull request - https://github.com/ncmpcpp/ncmpcpp/pull/590
audio/quimup: Pretty dead project - last release was in 2018
audio/kid3: Fixed upstream (multiple commits). Author is one of the main taglib devs and I would expect a new release soon.
audio/juk: Fixed upstream (multiple commits)
multimedia/kodi: Fixed upstream - https://github.com/xbmc/xbmc/commit/c0e81cc4cf563b62c29a910070c90ce1f098695f
converters/gbsdconv: Last release was 10 years ago. Is this worth fixing/keeping?
audio/mp3unicode: Last release was 8 years ago. Is this worth fixing/keeping?
Comment 4 Jason E. Hale freebsd_committer freebsd_triage 2024-01-29 23:06:19 UTC
(In reply to Daniel Engberg from comment #2)
Probably or just wait for a patch release. More open-source silliness.
Comment 5 Jason E. Hale freebsd_committer freebsd_triage 2024-01-29 23:39:45 UTC
It also seems like the STATIC option was untested or is now ineffective. The %%STATIC%% and %%NO_STATIC%% replacements are gone from pkg-plist, but the STATIC option still remains and I see that BUILD_SHARED_LIBS is still a viable argument in CMakeLists.txt.
Comment 6 Daniel Engberg freebsd_committer freebsd_triage 2024-01-29 23:48:14 UTC
devel/kf5-kfilemetadata still fails after applying patch

/wrkdirs/usr/ports/devel/kf5-kfilemetadata/work/kfilemetadata-5.114.0/src/extractors/taglibextractor.cpp:587:38: error: no matching function for call to 'extractId3Cover'
                result->addImageData(extractId3Cover(file.tag(), imageTypes));
                                     ^~~~~~~~~~~~~~~
/wrkdirs/usr/ports/devel/kf5-kfilemetadata/work/kfilemetadata-5.114.0/src/extractors/taglibextractor.cpp:352:1: note: candidate function not viable: cannot convert from base class pointer 'TagLib::Tag *' to derived class pointer 'const TagLib::ID3v2::Tag *' for 1st argument
extractId3Cover(const TagLib::ID3v2::Tag* Id3Tags,
^
/wrkdirs/usr/ports/devel/kf5-kfilemetadata/work/kfilemetadata-5.114.0/src/extractors/taglibextractor.cpp:588:17: error: no matching function for call to 'extractId3Tags'
                extractId3Tags(file.tag(), result);
                ^~~~~~~~~~~~~~
/wrkdirs/usr/ports/devel/kf5-kfilemetadata/work/kfilemetadata-5.114.0/src/extractors/taglibextractor.cpp:250:6: note: candidate function not viable: cannot convert from base class pointer 'TagLib::Tag *' to derived class pointer 'TagLib::ID3v2::Tag *' for 1st argument
void extractId3Tags(TagLib::ID3v2::Tag* Id3Tags, ExtractionResult* result)
     ^

multimedia/vlc also fails using the patch from Arch Linux
https://gitlab.archlinux.org/archlinux/packaging/packages/vlc/-/blob/main/taglib-2.patch?ref_type=heads

Feel free to remove audio/taglib-extras if it's not needed

audio/py-tagpy: Active(?) repo is located here: https://github.com/palfrey/tagpy 
No issue / PR

audio/gonic: Also seem to be active upstream, https://github.com/sentriz/gonic
No issue / PR

multimedia/musikcube: Also seems to be active
No issue / PR

multimedia/musique: Still active
No issue / PR

audio/quimup: Kill it, no public repo or fork as far as I can tell

audio/easytag: Active fork https://github.com/maazl/easytag
Haven't tried to compile yet

converters/gbsdconv: Abandonware, kill it https://github.com/buganini/gbsdconv

audio/mp3unicode: Abandonware, probably not worth keeping in the end
Comment 7 Daniel Engberg freebsd_committer freebsd_triage 2024-01-29 23:49:20 UTC
I'll fix STATIC, my mistake. Thanks for catching that one :)
Comment 8 Daniel Engberg freebsd_committer freebsd_triage 2024-01-29 23:57:18 UTC
Created attachment 248073 [details]
Patch for taglib v2

Fix STATIC option
Pull in upstream PR 1218

Reference: https://github.com/taglib/taglib/pull/1218
Comment 9 commit-hook freebsd_committer freebsd_triage 2024-01-31 20:09:37 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=667023598899a8bc250fbf4f76588f4892e18679

commit 667023598899a8bc250fbf4f76588f4892e18679
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-01-30 01:53:07 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-01-31 19:49:34 +0000

    audio/taglib-extras: Mark DEPRECATED

    Mark DEPRECATED and set EXPIRATION_DATE to 2024-02-14. This is a leaf
    library and for the sake of progressing the audio/taglib update, it's
    not worth keeping around for the typical 4 weeks.

    PR:             276677

 audio/taglib-extras/Makefile | 3 +++
 1 file changed, 3 insertions(+)
Comment 10 commit-hook freebsd_committer freebsd_triage 2024-01-31 20:09:40 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9b8c80c0c083f9c34abee27c5c422482e758247b

commit 9b8c80c0c083f9c34abee27c5c422482e758247b
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-01-30 01:18:43 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-01-31 19:49:33 +0000

    audio/cantata: Remove long unused dependency

    audio/taglib-extras hasn't been used since 2018. [1]

    [1] https://github.com/CDrummond/cantata/commit/db82c57772301e83d592e9e22d72d49db065b231

    PR:             276677

 audio/cantata/Makefile | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)
Comment 11 Daniel Engberg freebsd_committer freebsd_triage 2024-01-31 21:18:07 UTC
The fork of easytag depends on utilities we've deprecated years ago and also fails to compile so I think we can scrap this one too.
Comment 12 Jason E. Hale freebsd_committer freebsd_triage 2024-01-31 21:47:46 UTC
(In reply to Daniel Engberg from comment #11)
While no other ports in the FreeBSD ports tree currently depend on it, easytag is still part of the GNOME ecosystem with commits as soon as 2 months ago [1]. Which deprecated utilities does it depend on? This is something I'd be more inclined to fix than ditch since upstream is obviously still active.

[1] https://gitlab.gnome.org/GNOME/easytag/-/commit/e7586fc9332ce66eb9bef222a490aeded0365e47
Comment 13 commit-hook freebsd_committer freebsd_triage 2024-02-04 00:04:15 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=332680fcb2d9804c5ac02f2669dd080afd40fb53

commit 332680fcb2d9804c5ac02f2669dd080afd40fb53
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-02-03 23:59:35 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-02-04 00:03:36 +0000

    audio/gogglesmm: Update to 1.2.5

    Changes:
    - taglib: add support for taglib 2.0 [1]
    - ui: update FOX to 1.7.83 (already addressed locally)
    - ui: remove workaround for buggy window behaviour under wayland gnome introduced in 1.2.4

    https://github.com/gogglesmm/gogglesmm/releases/tag/1.2.5

    PR:             276677 [1]

 audio/gogglesmm/Makefile | 6 +-----
 audio/gogglesmm/distinfo | 8 +++-----
 2 files changed, 4 insertions(+), 10 deletions(-)
Comment 14 commit-hook freebsd_committer freebsd_triage 2024-02-25 23:31:00 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=beb9bf57ccec83337966e5a82e0fea6317374e6c

commit beb9bf57ccec83337966e5a82e0fea6317374e6c
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-02-25 23:08:32 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-02-25 23:30:14 +0000

    audio/kid3: Update to 3.9.5

    Drop legacy qt5 flavor, add kf6 flavor, and make qt6 the default.

    Changes:
    - added keyboard shortcuts for the audio player
    - added preference option to fix the audio output used
    - code has been modernized for C++17
    - added support for TagLib 2.0 [1]

    PR:             276677 [1]

 MOVED                |  3 ++-
 audio/kid3/Makefile  | 38 ++++++++++++++++++++------------------
 audio/kid3/distinfo  |  6 +++---
 audio/kid3/pkg-plist | 42 +++++++++++++++++++++---------------------
 4 files changed, 46 insertions(+), 43 deletions(-)
Comment 15 Jason E. Hale freebsd_committer freebsd_triage 2024-06-06 20:55:22 UTC
I've been working my way through the failure list using taglib 2.0.1 and have fixes for everything except:

audio/mixxx: Upstream has fixes for taglib 2.x (it builds), but they have an open issue that could lead to data loss with taglib 2.x (https://github.com/mixxxdj/mixxx/issues/12790).

audio/py-tagpy: Since this is a wrapper to taglib, it would take a larger porting effort than I would be interested in or have time for, especially since it has no consumers in the ports tree and was abandoned by the original author. Should ask the maintainer if this could be removed.

I was considering making a taglib1 port, but since there are only 2 consumers with issues left, it's probably not worth it.
Comment 16 Daniel Engberg freebsd_committer freebsd_triage 2024-06-06 21:31:57 UTC
Open PRs for both ports, mark as BROKEN if there's no response within the timeout? It'll be more messy than it's worth having two ports of taglib as they can't co-exist.
Comment 17 commit-hook freebsd_committer freebsd_triage 2024-06-07 01:23:47 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=7dd9ce8f770fca5e970d3c2e968b054d4569f7e3

commit 7dd9ce8f770fca5e970d3c2e968b054d4569f7e3
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-06-06 22:19:07 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-06-07 00:21:32 +0000

    audio/easytag: Prepare for Taglib 2.x

    PR:             276677
    Obtained from:  Arch Linux (with some tweaks)

 .../files/patch-src_tags_gio__wrapper.cc (new)     | 105 +++++++++++++++++++++
 .../files/patch-src_tags_gio__wrapper.h (new)      |  45 +++++++++
 .../files/patch-src_tags_mp4__header.cc (new)      |  13 +++
 .../easytag/files/patch-src_tags_mp4__tag.cc (new) |  57 +++++++++++
 4 files changed, 220 insertions(+)
Comment 18 commit-hook freebsd_committer freebsd_triage 2024-06-07 01:23:48 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=c3fbd9e607364a20f141c4dc8dac7334f93a4a94

commit c3fbd9e607364a20f141c4dc8dac7334f93a4a94
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-06-06 21:29:17 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-06-06 23:01:06 +0000

    multimedia/musikcube: Prepare for Taglib 2.x

    PR:             276677

 ...lugins_taglib__plugin_TaglibMetadataReader.cpp (new) | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
Comment 19 commit-hook freebsd_committer freebsd_triage 2024-06-07 01:23:49 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=2f83aa02c6c9ce25f10577e2f67f5fa588112908

commit 2f83aa02c6c9ce25f10577e2f67f5fa588112908
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-06-06 21:13:11 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-06-06 23:00:24 +0000

    audio/mp3unicode: Prepare for Taglib 2.x

    PR:             276677

 audio/mp3unicode/files/patch-mp3unicode.cpp (new) | 13 +++++++++++++
 1 file changed, 13 insertions(+)
Comment 20 commit-hook freebsd_committer freebsd_triage 2024-06-07 01:23:50 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=eda5553deae8571894acbd0775439b9a58df74e9

commit eda5553deae8571894acbd0775439b9a58df74e9
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-06-04 21:16:26 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-06-06 22:54:12 +0000

    multimedia/vlc: Prepare for Taglib 2.x

    Backport several upstream commits to fix the build with taglib 2.x. [1]

    Disable some compiler warnings that bloat the build log to the point
    where it is barely readable.

    Toggle the svgdec plugin in the LIBRSVG2 option to fix dependency issues
    on live systems if it is set to off and the required dependencies are
    auto-detected.

    PR:             276677 [1]

 multimedia/vlc/Makefile                            |   5 +-
 .../patch-modules_meta__engine_taglib.cpp (new)    | 159 +++++++++++++++++++++
 2 files changed, 162 insertions(+), 2 deletions(-)
Comment 21 commit-hook freebsd_committer freebsd_triage 2024-06-07 01:23:51 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d7e2af190e56f36661230d12c86cbf4adfd76e51

commit d7e2af190e56f36661230d12c86cbf4adfd76e51
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-06-06 21:54:39 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-06-06 23:05:02 +0000

    multimedia/musique: Prepare for Taglib 2.x

    PR:             276677
    Obtained from:  upstream

 .../musique/files/patch-src_coverutils.cpp (new)   | 16 ++++++++++++++
 .../musique/files/patch-src_mainwindow.cpp (new)   | 17 +++++++++++++++
 .../musique/files/patch-src_tags_mp4utils.h (new)  | 25 ++++++++++++++++++++++
 .../files/patch-src_tags_tagutils.cpp (new)        | 13 +++++++++++
 4 files changed, 71 insertions(+)
Comment 22 Jason E. Hale freebsd_committer freebsd_triage 2024-06-07 04:04:55 UTC
Created attachment 251259 [details]
v2

Update to taglib 2.0.1
Comment 23 Jason E. Hale freebsd_committer freebsd_triage 2024-06-07 04:59:25 UTC
(In reply to Daniel Engberg from comment #16)

I agree that it would be somewhat messy, which is why I really don't want to go down that path, but it's technically very possible for taglib 1.x and 2.x to co-exist. I just don't think it's worth the effort to make this so since audio/mixxx has workable patches and audio/py-tagpy is pretty much a write-off at this point. (CC-ing maintainers of both ports, now that most of the groundwork has been laid).

acm: audio/mixxx has patches that I can apply to make this so.
https://github.com/mixxxdj/mixxx/pull/12854/commits

nivit: audio/py-tagpy, WADR and IMHO, we should drop this port. There are no consumers in the ports tree and porting to taglib 2.x is probably not worth the effort at this point in time.
Comment 24 commit-hook freebsd_committer freebsd_triage 2024-06-14 05:30:43 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=13b6ffc52c687a5cfae752a46c384755550580a9

commit 13b6ffc52c687a5cfae752a46c384755550580a9
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-06-06 22:23:06 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-06-14 05:29:26 +0000

    converters/gbsdconv: Fix build with Taglib 2.x

    PR:             276677

 converters/gbsdconv/Makefile                       |   2 +-
 converters/gbsdconv/files/patch-gbsdconv (new)     |  30 +
 .../gbsdconv/files/patch-taglib_tag__c.cpp (new)   | 873 +++++++++++++++++++++
 .../gbsdconv/files/patch-taglib_tag__c.h (new)     | 428 ++++++++++
 4 files changed, 1332 insertions(+), 1 deletion(-)
Comment 25 commit-hook freebsd_committer freebsd_triage 2024-06-14 05:30:44 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=332610a71684775970ee344020b8ca9a28ff717b

commit 332610a71684775970ee344020b8ca9a28ff717b
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-06-04 20:20:53 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-06-14 05:29:25 +0000

    audio/taglib: Update to 2.0.1

    Remove RCC patches which have been an ongoing maintainence burden. Most
    applications support ID3v2 tags these days.

    PR:             276677

 audio/taglib/Makefile                    |  30 +-
 audio/taglib/distinfo                    |   6 +-
 audio/taglib/files/extrapatch-rcc (gone) | 668 -------------------------------
 audio/taglib/pkg-plist                   |  24 +-
 4 files changed, 28 insertions(+), 700 deletions(-)
Comment 26 commit-hook freebsd_committer freebsd_triage 2024-06-14 05:30:46 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=fd0b4ac035e7072949ad93e008eebd27c312082f

commit fd0b4ac035e7072949ad93e008eebd27c312082f
Author:     Jason E. Hale <jhale@FreeBSD.org>
AuthorDate: 2024-06-14 04:53:00 +0000
Commit:     Jason E. Hale <jhale@FreeBSD.org>
CommitDate: 2024-06-14 05:29:26 +0000

    */*: Mark audio/py-tagpy and consumer as BROKEN

    audio/py-tagpy is an abandoned wrapper to audio/taglib and is not
    compatible with TagLib 2.x. Singular potential consumer audio/sonata is
    also abandoned software, but the TAGLIB option is non-default.

    PR:             276677

 audio/py-tagpy/Makefile | 2 ++
 audio/sonata/Makefile   | 1 +
 2 files changed, 3 insertions(+)
Comment 27 Daniel Engberg freebsd_committer freebsd_triage 2024-06-14 05:35:17 UTC
Thanks for working on this!
Comment 28 Jason E. Hale freebsd_committer freebsd_triage 2024-06-14 05:44:53 UTC
(In reply to Daniel Engberg from comment #27)

Sure thing! Been meaning to check this off my TODO list for a while, but it was more involved than I really would have liked.