Summary: | audio/taglib: Update to 2.0.1 | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Ports & Packages | Reporter: | Daniel Engberg <diizzy> | ||||||||
Component: | Individual Port(s) | Assignee: | Jason E. Hale <jhale> | ||||||||
Status: | Closed FIXED | ||||||||||
Severity: | Affects Only Me | CC: | acm, diizzy, kbowling, nivit | ||||||||
Priority: | --- | Flags: | jhale:
maintainer-feedback+
|
||||||||
Version: | Latest | ||||||||||
Hardware: | Any | ||||||||||
OS: | Any | ||||||||||
URL: | https://github.com/taglib/taglib/releases/tag/v2.0 | ||||||||||
Bug Depends on: | 276722, 277040, 279462 | ||||||||||
Bug Blocks: | |||||||||||
Attachments: |
|
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(-) 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. 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. 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(+) 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(+) 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(+) 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(-) 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(+) Created attachment 251259 [details]
v2
Update to taglib 2.0.1
(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. 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(-) 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(-) 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(+) Thanks for working on this! (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. |
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