Bug 276677 - audio/taglib: Update to 2.0
Summary: audio/taglib: Update to 2.0
Status: Open
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: 276721 276722 277040
Blocks:
  Show dependency treegraph
 
Reported: 2024-01-28 08:35 UTC by Daniel Engberg
Modified: 2024-05-06 05:13 UTC (History)
2 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

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(-)