This release is perhaps one of the biggest releases of the library ever since 0.16.0. Some issues that were present in the library for over a decade, maybe almost two at this point, have finally been fixed. This includes fixes for some picture frames, mojibake with UTF-16 encoded text, and plenty of other issues that have been around for a long while (maybe even longer than I have!).
Per the usual, please either email us via our mailing list, ~tenacity/tenacity-discuss@lists.sr.ht, or make an issue here if you have any questions, comments, or concerns, especially if there's any compatibility that's been broken. We will fix any issues as soon as we can.
This release remains fully API and ABI compatible with previous 0.16.x releases. API compatibility with 0.15.1b is also kept, but ABI compatibility may vary depending on your libid3tag distribution (particularly, if it was patched or not). There is one notable behavior change in id3_tag_parse(), however, that should be generally compatible but should also be inspected by developers of dependent programs. See the full changelog below for more details.
Note: significant changes are highlighted in bold for emphasis.
New
- Source packages can now be generated using CPack or by building the
package_sourcetarget. - We now provide our own source packages instead of using Codeberg's pre-generated sources, guaranteeing that the hash won't change.
Changes
id3_tag_parse()now returns the number of frames parsed so far after encountering a bad frame rather than discarding the whole tag.- Some source files are now generated when the build system is being generated. Consequently, libid3tag now needs gperf installed at build time. This was done to help reduce the maintenance burden on maintaining gperf-generated files. Thanks @mitchblank!
- The source tree has been reorganized to be a lot cleaner and easier to understand (#17 and #37). Thanks @mitchblank for the help!
- To allow building with CMake 4.0 and later, along with fixing a deprecation warning, the minimum required version of CMake to build libid3tag is now 3.10 (#16). Thanks @heitbaum!
- Refactor some code and fix some warnings (#13, #15, #23, #24). Thanks @heitbaum and @mitchblank for helping out!
- Files greater than 2 GiB are now properly supported on 32-bit UNIX-based/UNIX-like systems (64-bit builds remain unaffected). Thanks @mitchblank!
- libid3tag can now be properly built without a C++ toolchain again. Thanks @bkuhls!
- ID3v1 Genre list changes:
- libid3tag now supports genres found in Winamp 5.60. This originates from a FreeBSD patch.
- The genre list code is now automatically generated by CMake at build-time and no longer needs to be manually regenerated. Thanks @mitchblank!
- Introduce "Afro-Punk" to replace its previous offensively-named counterpart.
Fixes
- Applied some patches from Audio::Scan (#12):
- Improved iTunes compatibility.
- Fix PIC frame support.
- Fix MIME type for ID3v2.2 PIC frames (#33). Thanks @mitchblank!
- Fix mojibake issues with UTF-16LE encoded ID3v2 tags without a BOM (#19; thanks @briancarnold and Joel Buchat!)
SHA256 Hashes
8b6bc96016f6ab3a52b753349ed442e15181de9db1df01884f829e3d4f3d1e78 id3tag-0.16.4-source.tar.gz