sentriz / gonic

music streaming server / free-software subsonic server API implementation
ircs://irc.libera.chat/#gonic
GNU General Public License v3.0
1.49k stars 105 forks source link

chore: update to Alpine 3.19 #502

Closed lomereiter closed 1 month ago

lomereiter commented 1 month ago

Installing taglib2 is now doubly painful, because Alpine 3.19 packages utfcpp 4.0.2-r0, which results in this:

ninja: job failed: /usr/bin/g++ -DHAVE_CONFIG_H -DMAKE_TAGLIB_LIB -I/tmp/src/taglib-2.0.1/build/taglib -I/tmp/src/taglib-2.0.1/taglib -I/tmp/src/taglib-2.0.1/build -I/tmp/src/taglib-2.0.1/taglib/toolkit -I/tmp/src/taglib-2.0.1/taglib/asf -I/tmp/src/taglib-2.0.1/taglib/mpeg -I/tmp/src/taglib-2.0.1/taglib/ogg -I/tmp/src/taglib-2.0.1/taglib/ogg/flac -I/tmp/src/taglib-2.0.1/taglib/flac -I/tmp/src/taglib-2.0.1/taglib/mpc -I/tmp/src/taglib-2.0.1/taglib/mp4 -I/tmp/src/taglib-2.0.1/taglib/ogg/vorbis -I/tmp/src/taglib-2.0.1/taglib/ogg/speex -I/tmp/src/taglib-2.0.1/taglib/ogg/opus -I/tmp/src/taglib-2.0.1/taglib/mpeg/id3v2 -I/tmp/src/taglib-2.0.1/taglib/mpeg/id3v2/frames -I/tmp/src/taglib-2.0.1/taglib/mpeg/id3v1 -I/tmp/src/taglib-2.0.1/taglib/ape -I/tmp/src/taglib-2.0.1/taglib/wavpack -I/tmp/src/taglib-2.0.1/taglib/trueaudio -I/tmp/src/taglib-2.0.1/taglib/riff -I/tmp/src/taglib-2.0.1/taglib/riff/aiff -I/tmp/src/taglib-2.0.1/taglib/riff/wav -I/tmp/src/taglib-2.0.1/taglib/mod -I/tmp/src/taglib-2.0.1/taglib/s3m -I/tmp/src/taglib-2.0.1/taglib/it -I/tmp/src/taglib-2.0.1/taglib/xm -I/tmp/src/taglib-2.0.1/taglib/dsf -I/tmp/src/taglib-2.0.1/taglib/dsdiff -Os -fstack-clash-protection -Wformat -Werror=format-security -D_GLIBCXX_ASSERTIONS=1 -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D_LIBCPP_ENABLE_HARDENED_MODE=1 -fno-plt -flto=auto -Wall -Os -DNDEBUG -std=gnu++17 -fPIC -fvisibility=hidden -MD -MT taglib/CMakeFiles/tag.dir/toolkit/tstring.cpp.o -MF taglib/CMakeFiles/tag.dir/toolkit/tstring.cpp.o.d -o taglib/CMakeFiles/tag.dir/toolkit/tstring.cpp.o -c /tmp/src/taglib-2.0.1/taglib/toolkit/tstring.cpp /tmp/src/taglib-2.0.1/taglib/toolkit/tstring.cpp:31:10: fatal error: utf8.h: No such file or directory 31 | #include | ^~~~ compilation terminated. ninja: subcommand failed >>> ERROR: taglib2: build failed

sentriz commented 1 month ago

thanks! not home currently but will check it out later

cc @lxea who is in the middle of taglib v2 for alpine https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/63362

sentriz commented 1 month ago

do you have a link to some docs/release notes about the utfcpp requirements?

sentriz commented 1 month ago

also looks like they recommend a git submodule update --init to clone the repo instead of manually doing it

https://github.com/taglib/taglib/blob/f3fb4d83a469fea7e23491a1dfbac14c728ac968/.gitmodules#L1 https://github.com/taglib/taglib/blob/master/INSTALL.md#dependencies

lomereiter commented 1 month ago

The submodule points to https://github.com/nemtrif/utfcpp/tree/df857efc5bbc2aa84012d865f7d7e9cccdc08562, which corresponds to v3.2.4, which is almost the same as v3.2.5, the latter just had a bug fix. I can't do git submodule update --init because taglib is downloaded as a tarball, but the end result is the same.

sentriz commented 1 month ago

not sure where the tarball comes from, the git submodules are setup such that it clones to 3rdparty/utfcpp

doesn't seem like there's a functional difference there. it should just populate the folder that you're cloning to

lomereiter commented 1 month ago

Had another look in the morning, the issue is not the library version but bloody CMake (I love the world of C++ library packaging! /s), which btw is explicitly not recommended to be used for utfcpp: https://github.com/nemtrif/utfcpp/compare/v4.0.3...v4.0.4

sentriz commented 1 month ago

seems to build, thanks!