[Bug]: configure.py and kBuild hardcode 'VBox' Qt library infix (-lQt6CoreVBox) and legacy GTK2 plugins when building with --with-qt-dir on Linux
维护者通常 6 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 52/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 领域
- build-system, devtools
调研方向
Start by reading configure.py and the kBuild rules that select Qt libraries and stage plugins; the report identifies those as the failing paths but does not give specific rule files. Reproduce with the stated Qt 6.8 SDK and --with-qt-dir, then inspect the missing library and GTK2 plugin dependencies. Done when configuration and staging work with upstream Qt 6.8 without the reported missing targets.
由索引模型根据 Issue 内容生成。
描述
Version
7.2.22
Host OS Type
Linux
Host OS name + version
Debian 12 (Bookworm)
Host Architecture
x86
Guest OS Type
other
Guest Architecture
x86
Guest OS name + version
N/A (Host build system: configure.py and kBuild)
Component
Other
What happened?
When building VirtualBox trunk (r113835) on Debian 12 x86_64 using a standard upstream Qt 6.8.0 SDK directory via --with-qt-dir=$HOME/Qt/6.8.0/gcc_64, three build issues occur:
1. configure.py hardcodes -lQt6CoreVBox instead of -lQt6Core
Running:
./configure --disable-hardening --disable-docs --disable-java --with-qt-dir=$HOME/Qt/6.8.0/gcc_64
fails the Qt library check because configure.py links the test binary against Oracle's internal suffixed library name -lQt6CoreVBox:
[WARN]: Compilation of test program for qt failed
[WARN]: g++ -I/usr/include/c++/12 -I/home/adrian/Qt/6.8.0/gcc_64/include -L/home/adrian/Qt/6.8.0/gcc_64/lib /tmp/tmp61yp9ocv/testlib.cpp -fPIC -o /tmp/tmp61yp9ocv/testlib -std=c++17 -Wl,-rpath,/home/adrian/Qt/6.8.0/gcc_64/lib -lQt6CoreVBox
[WARN]: /usr/bin/ld: cannot find -lQt6CoreVBox: No such file or directory
collect2: error: ld returned 1 exit status
2. kBuild still expects the VBox infix on Qt6 libraries and plugins
After patching configure.py (s/Qt6CoreVBox/Qt6Core/g), configure.py succeeds, but kmk fails because the VBox infix is still expected on the libraries and plugins inside --with-qt-dir:
kmk: *** No rule to make target '/home/adrian/Qt/6.8.0/gcc_64/lib/libQt6CoreVBox.so', needed by '/home/adrian/vbox-build/vbox/out/linux.amd64/release/obj/VBoxDbg/VBoxDbg.so'. Stop.
kmk: *** No rule to make target '/home/adrian/Qt/6.8.0/gcc_64/plugins/platforms/libqxcbVBox.so', needed by '/home/adrian/vbox-build/vbox/out/linux.amd64/release/obj/qt-bin/plugins/platforms/libqxcbVBox.so'. Stop.
3. Pass - Staging requires legacy GTK2 Qt plugins removed in Qt 6
During kBuild: Pass - Staging, the build fails looking for libqgtk2VBox.so and libqgtk2styleVBox.so:
kmk: *** No rule to make target '/home/adrian/Qt/6.8.0/gcc_64/plugins/platformthemes/libqgtk2VBox.so', needed by '/home/adrian/vbox-build/vbox/out/linux.amd64/release/obj/qt-bin/plugins/platformthemes/libqgtk2VBox.so'. Stop.
kmk: *** No rule to make target '/home/adrian/Qt/6.8.0/gcc_64/plugins/styles/libqgtk2styleVBox.so', needed by '/home/adrian/vbox-build/vbox/out/linux.amd64/release/obj/qt-bin/plugins/styles/libqgtk2styleVBox.so'. Stop.
In Qt 6.8, GTK2 plugins do not exist (replaced by plugins/platformthemes/libqgtk3.so).
Workaround used to complete the build
- Replace
Qt6CoreVBoxwithQt6Coreinconfigure.py. - Create
*VBox.sosymlinks forlib/libQt6*.so*andplugins/**/*.soin the Qt 6.8 SDK directory. - Symlink
plugins/platformthemes/libqgtk2VBox.soandplugins/styles/libqgtk2styleVBox.so.
How can we reproduce this?
- On Debian 12 (x86_64), check out VirtualBox trunk:
svn co https://www.virtualbox.org/svn/vbox/trunk vbox cd vbox - Install an upstream Qt 6.8.0 SDK (
linux_gcc_64) into$HOME/Qt/6.8.0/gcc_64. - Run
./configurepointing--with-qt-dirto the Qt 6.8.0 directory:
-> Observeexport LD_LIBRARY_PATH="$HOME/Qt/6.8.0/gcc_64/lib:$LD_LIBRARY_PATH" export PATH="$HOME/Qt/6.8.0/gcc_64/bin:$PATH" ./configure --disable-hardening --disable-docs --disable-java --with-qt-dir=$HOME/Qt/6.8.0/gcc_64configure.logfailing with/usr/bin/ld: cannot find -lQt6CoreVBox. - Replace
Qt6CoreVBoxwithQt6Coreinconfigure.py, re-run./configure,source ./env.sh, and runkmk -j$(nproc):
-> Observekmkstopping on missinglibQt6CoreVBox.so,libqxcbVBox.so,libqgtk2VBox.so, andlibqgtk2styleVBox.so.
Did you upload all of your necessary log files, screenshots, etc.?
- Yes, I've uploaded all pertinent files to this issue.
- 主要语言
- C
- 星标
- 1.4k
- 派生
- 219
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
VirtualBox/virtualbox 的其他 Issue
-
enhancement
难度 2/5 1-3 小时 新手友好度 68/100
VirtualBox/virtualbox#979 ·
维护者通常 6 天内回复
-
[Bug]: Guest Additions 7.2.20 vboxvideo fails to build on Linux kernel 6.12.113 (drm_fb_helper_restore_fbdev_mode_unlocked: too few arguments)可能已有人在做 @Berbe 于 11 天前认领。 未关闭bug
难度 2/5 1-3 小时 新手友好度 76/100
VirtualBox/virtualbox#918 · 9 条评论 ·
维护者通常 6 天内回复
-
bug
难度 4/5 3-5 天 新手友好度 12/100
VirtualBox/virtualbox#981 ·
维护者通常 6 天内回复
-
bug
难度 4/5 3-5 天 新手友好度 8/100
VirtualBox/virtualbox#980 ·
维护者通常 6 天内回复
-
bug
难度 4/5 3-5 天 新手友好度 18/100
VirtualBox/virtualbox#977 ·
维护者通常 6 天内回复
查看 VirtualBox/virtualbox 的全部 Issue
相似的 Issue
-
bug good first issue
难度 2/5 1-3 小时 新手友好度 85/100
维护者通常 1 天内回复
-
Status: Opened
难度 2/5 1-3 小时 新手友好度 62/100
-
Status: Opened
难度 2/5 1-3 小时 新手友好度 64/100
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 72/100
FriendsofECCE/ECCE#1018 ·
-
难度 2/5 1-3 小时 新手友好度 62/100
immortalwrt/immortalwrt#2522 ·