Repository navigation
Fix libid3tag not being found in SYSTEM mode - #56
Open
Knyllahsyhn wants to merge 1 commit into
Open
Knyllahsyhn wants to merge 1 commit into
Knyllahsyhn wants to merge 1 commit into
Conversation
The libid3tag recipe sets DEP_LIBS to "libid3tag" because Audacity's fork names its CMake target that way, so the bundled build produces liblibid3tag.a. In SYSTEM mode the same name is passed to find_library, which then looks for liblibid3tag.so and never finds the distro library (libid3tag.so). Add DEP_SYSTEM_LIBS to override the library names used in SYSTEM mode, analogous to DEP_LIBS_WINDOWS, and set it to "id3tag" for libid3tag.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ran into this while building the Audacity 4 AUR package (audacity-git) on Arch (and also mentioned by others),
which builds with
EXTDEPS_OVERRIDE_ALL=SYSTEM. Configure fails on libid3tag even withthe distro package installed:
The recipe has
DEP_LIBS libid3tag, so in SYSTEM modefind_libraryends up lookingfor
liblibid3tag.so, while distros shiplibid3tag.so. I couldn't just change it toid3tagthough, because Audacity's fork really does buildliblibid3tag.a(its CMaketarget is called
libid3tag), so the bundled path would break.So this adds a small
DEP_SYSTEM_LIBSoverride for SYSTEM mode, analogous toDEP_LIBS_WINDOWS. If not set,DEP_LIBSis used as before, so no other recipeis affected. I also updated the README to reflect that.
If you'd rather stick to the "no
libprefix" convention inDEP_LIBS, another optionwould be patching the fork to
OUTPUT_NAME id3tag. Happy to rework the PR that wayif you prefer.
Tested on Arch (CMake 4.4.5, libid3tag 0.16.4): configure picks up
/usr/lib/libid3tag.soand the full Audacity build goes through.validate.cmakepasses too.(Distro libid3tag doesn't have the ID3v2.3 option from the fork, but Audacity already
#ifdefs that, so exports just fall back to ID3v2.4.)