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
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.
Might also want to pull in https://github.com/taglib/taglib/pull/1218 ?
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?
(In reply to Daniel Engberg from comment #2) Probably or just wait for a patch release. More open-source silliness.
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.
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
I'll fix STATIC, my mistake. Thanks for catching that one :)
Created attachment 248073 [details] Patch for taglib v2 Fix STATIC option Pull in upstream PR 1218 Reference: https://github.com/taglib/taglib/pull/1218
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(+)
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(-)
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.
(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
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(-)
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(-)