[Bug]: configure.py and kBuild hardcode 'VBox' Qt library infix (-lQt6CoreVBox) and legacy GTK2 plugins when building with --with-qt-dir on Linux
メンテナーはふだん 6 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 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 ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- 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時間 初心者へのやさしさ 64/100
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
FriendsofECCE/ECCE#1018 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
immortalwrt/immortalwrt#2522 ·
-
翻译冲突オープン
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
fw876/helloworld#2089 ·
メンテナーはふだん 1 日以内に返信