Summary: | media-video/qmplay2-24.06.16 automagic depend on media-libs/rubberband | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Duncan <1i5t5.duncan> |
Component: | Current packages | Assignee: | Arthur Zamarin <arthurzam> |
Status: | UNCONFIRMED --- | ||
Severity: | normal | CC: | vmikhailikov |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: |
Rubberband-4.0/GLSLang patch 1 of 3
Rubberband-4.0/GLSLang patch 2 of 3 Rubberband-4.0/GLSLang patch 3 of 3 |
Description
Duncan
2024-10-27 06:23:42 UTC
Thought maybe I should do the same grep on the build log when rubberband was /not/ installed: -- Checking for module 'rubberband>=3.0.0' -- Package 'rubberband' not found ... And obviously now under "Disabled features:" * RubberBand, Build with RubberBand support Meanwhile, checked the github homepage. The README.md says nothing about rubberband (search finds nothing), but the root CMakeLists.txt (both github master and from the version tarball) has: if(NOT DEFINED USE_RUBBERBAND) pkg_check_modules(RUBBERBAND rubberband>=3.0.0) endif() option(USE_RUBBERBAND "Build with RubberBand support" ${RUBBERBAND_FOUND}) add_feature_info(RubberBand USE_RUBBERBAND "Build with RubberBand support") ... and src/qmplay2/CMakeLists.txt has: if(USE_RUBBERBAND) add_definitions(-DQMPLAY2_RUBBERBAND) pkg_check_modules(RUBBERBAND REQUIRED rubberband>=3.0.0) include_directories(${RUBBERBAND_INCLUDE_DIRS}) link_directories(${RUBBERBAND_LIBRARY_DIRS}) list(APPEND LIBQMPLAY2_LIBS ${RUBBERBAND_LIBRARIES}) endif() So the -DQMPLAY2_RUBBERBAND in comment #0 comes from the latter but is controlled by the root CMakeLists.txt USE_RUBBERBAND ... despite the README.md document saying /nothing/ about rubberband in its optional deps discussion, presumably why the gentoo ebuild says nothing about it either... Created attachment 907483 [details, diff]
Rubberband-4.0/GLSLang patch 1 of 3
Created attachment 907484 [details, diff]
Rubberband-4.0/GLSLang patch 2 of 3
Created attachment 907485 [details, diff]
Rubberband-4.0/GLSLang patch 3 of 3
Found the same issue, dig it for a while and make the fix. Now it builds with rubberband-4.0 and glslang-1.3.296.0-r1. For immediate solution put the patches into /etc/portage/patches/media-video/qmplay2 and rebuild qmplay2. (In reply to Vladislav Mikhailikov from comment #5) > Found the same issue, dig it for a while and make the fix. Now it builds > with rubberband-4.0 and glslang-1.3.296.0-r1. For immediate solution put the > patches into /etc/portage/patches/media-video/qmplay2 and rebuild qmplay2. ?? The effort is appreciated, but something isn't adding up. I believe your bug is a different bug. Those are the rubberband/glslang versions I have and it builds fine for me without patches. Are you saying it wasn't building for you or am I reading that wrong? (If it's not building for you as-is, compare USE flags at a first guess. Mine are at the bottom of comment #0. Maybe I'm not building the affected component due to having a flag off you have on?) Rather, what this bug is about is that the rubberband dep (glslang isn't declared as a dep either but shaderc is; I'd guess it uses that instead, shaderc-2024.3 here, FWIW) is "automagic", that is, it's detected by the configure step and built against if found, without that dependency declared in the ebuild (AFAIK upstream sources are fine and don't need patched, it's the ebuild that doesn't declare the dep, but should) and either hard-coded on or off, or controlled via USE flag. It builds fine here against either rubberband version or without any; the ebuild just doesn't declare the dep, so if it finds it and builds against it, and rubberband is unmerged or a version providing a different so version (2 vs. 3) is merged, because portage doesn't know about that dep it doesn't automatically rebuild qmplay2 after the rubberband change, leaving qmplay2 broken until it's rebuilt, either manually, or due to something like revdep-rebuild being run to detect the broken qmplay2 and rebuild it so it works again. That would be a problem with the ebuild not declaring the dep and not setting the configure-time option for it appropriately, so the ebuild must be fixed. While the upstream sources /could/ need patched if the option is there (it is) but broken (untested, since the ebuild never sets it either way), for sure the ebuild needs patched. But I don't see an ebuild patch in the three you provided (and your given /etc/portage/patches instructions only work for upstream patches in any case), they're all three upstream sources patches, and your comment seems to indicate that it wasn't building for you with the same versions it built fine with for me, so whatever problem you had and the patches are supposed to fix, I don't see here and it wasn't what I filed the bug about. (In reply to Duncan from comment #6) > (In reply to Vladislav Mikhailikov from comment #5) > > Found the same issue, dig it for a while and make the fix. Now it builds > > with rubberband-4.0 and glslang-1.3.296.0-r1. For immediate solution put the > > patches into /etc/portage/patches/media-video/qmplay2 and rebuild qmplay2. > > ?? The effort is appreciated, but something isn't adding up. I believe > your bug is a different bug. > > Those are the rubberband/glslang versions I have and it builds fine for me > without patches. Are you saying it wasn't building for you or am I reading > that wrong? (If it's not building for you as-is, compare USE flags at a > first guess. Mine are at the bottom of comment #0. Maybe I'm not building > the affected component due to having a flag off you have on?) > > Rather, what this bug is about is that the rubberband dep (glslang isn't > declared as a dep either but shaderc is; I'd guess it uses that instead, > shaderc-2024.3 here, FWIW) is "automagic", that is, it's detected by the > configure step and built against if found, without that dependency declared > in the ebuild (AFAIK upstream sources are fine and don't need patched, it's > the ebuild that doesn't declare the dep, but should) and either hard-coded > on or off, or controlled via USE flag. > > It builds fine here against either rubberband version or without any; the > ebuild just doesn't declare the dep, so if it finds it and builds against > it, and rubberband is unmerged or a version providing a different so version > (2 vs. 3) is merged, because portage doesn't know about that dep it doesn't > automatically rebuild qmplay2 after the rubberband change, leaving qmplay2 > broken until it's rebuilt, either manually, or due to something like > revdep-rebuild being run to detect the broken qmplay2 and rebuild it so it > works again. > > That would be a problem with the ebuild not declaring the dep and not > setting the configure-time option for it appropriately, so the ebuild must > be fixed. While the upstream sources /could/ need patched if the option is > there (it is) but broken (untested, since the ebuild never sets it either > way), for sure the ebuild needs patched. > > But I don't see an ebuild patch in the three you provided (and your given > /etc/portage/patches instructions only work for upstream patches in any > case), they're all three upstream sources patches, and your comment seems to > indicate that it wasn't building for you with the same versions it built > fine with for me, so whatever problem you had and the patches are supposed > to fix, I don't see here and it wasn't what I filed the bug about. Ok. Got that. Thank you for suggestion. |