xmake-io / xmake

🔥 A cross-platform build utility based on Lua
https://xmake.io
Apache License 2.0
9.87k stars 776 forks source link

xmake无法检测到libqt5multimedia5包 #5315

Open jingkaimori opened 2 months ago

jingkaimori commented 2 months ago

Xmake 版本

v2.9.3+20240624

操作系统版本和架构

Ubuntu 22.04LTS

描述问题

本机已通过apt安装 libqt5multimedia5 包,配置项目时报错说无法安装该包。

期待的结果

可以检测到包,从而跳过安装。

工程配置

            add_requires({
                "apt::qtbase5-dev", "apt::qtdeclarative5-dev", "apt::libqt5webkit5-dev",
                "apt::qttools5-dev-tools", "apt::qtmultimedia5-dev",
                "apt::libqt5multimedia5", "apt::libqt5multimedia5-plugins"
            }, {alias = "qt5widgets"})

附加信息和错误日志

note: try installing libqt5multimedia5 with administrator permission (pass -y or --confirm=y/n/d to skip confirm)?
please input: y (y/n)
y
/usr/bin/sudo env PATH=/home/jingkaimori/.xmake/packages/g/git/latest/725e51fe81b74141ade9efbd3ccaf900/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin XMAKE_STATS= COLORTERM=truecolor /usr/bin/apt install -y libqt5multimedia5
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
libqt5multimedia5 已经是最新版 (5.15.3-1)。
下列软件包是自动安装的并且现在不需要了:
  dh-elpa-helper libjsoncpp25 librhash0 libwpe-1.0-1 libwpebackend-fdo-1.0-1
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 3 个软件包未被升级。
finding libqt5multimedia5 from apt ..
checking for apt::libqt5multimedia5 ... no

error: .../modules/private/action/require/impl/actions/install.lua:430: fetch apt::libqt5multimedia5-latest failed!
stack traceback:
    [C]: in function 'error'
    [@programdir/core/base/os.lua:973]: in function 'raiselevel'
    [@programdir/core/sandbox/modules/utils.lua:143]: in function 'assert'
    [.../modules/private/action/require/impl/actions/install.lua:430]:

  => install apt::libqt5multimedia5 latest .. failed

.../modules/private/action/require/impl/actions/install.lua:430: fetch apt::libqt5multimedia5-latest failed!
stack traceback:
    [C]: in function 'error'
    [@programdir/core/base/os.lua:973]: in function 'raiselevel'
    [@programdir/core/sandbox/modules/utils.lua:143]: in function 'assert'
    [.../modules/private/action/require/impl/actions/install.lua:430]:
if you want to get more verbose errors, please see:
  -> /mnt/source/midieditor/build/.packages/a/apt_libqt5multimedia5/latest/cache/installdir.failed/logs/install.txt
error: @programdir/core/main.lua:329: @programdir/modules/async/runjobs.lua:325: .../modules/private/action/require/impl/actions/install.lua:506: install failed!
stack traceback:
    [C]: in function 'error'
    [@programdir/core/base/os.lua:973]:
    [.../modules/private/action/require/impl/actions/install.lua:506]: in function 'catch'
    [@programdir/core/sandbox/modules/try.lua:123]: in function 'try'
    [.../modules/private/action/require/impl/actions/install.lua:370]:
    [...modules/private/action/require/impl/install_packages.lua:491]: in function 'jobfunc'
    [@programdir/modules/async/runjobs.lua:241]:

stack traceback:
    [C]: in function 'error'
    @programdir/core/base/os.lua:973: in function 'base/os.raiselevel'
    (...tail calls...)
    @programdir/core/main.lua:329: in upvalue 'cotask'
    @programdir/core/base/scheduler.lua:406: in function <@programdir/core/base/scheduler.lua:399>
Issues-translate-bot commented 2 months ago

Bot detected the issue body's language is not English, translate it automatically.


Title: xmake cannot detect libqt5multimedia5 package

waruqi commented 2 months ago

你调下这里,看看为啥没找到 https://github.com/xmake-io/xmake/blob/dev/xmake/modules/package/manager/apt/find_package.lua

Issues-translate-bot commented 2 months ago

Bot detected the issue body's language is not English, translate it automatically.


Go here and see why it is not found https://github.com/xmake-io/xmake/blob/dev/xmake/modules/package/manager/apt/find_package.lua

waruqi commented 2 months ago

这个包,没有头文件,也没有 .so 后缀的动态库,只有 .so.5 。。也没有 pkgconfig files

所以找不到,至少得有个 libxxx.so 才能找到库

$ dpkg --listfiles libqt5multimedia5
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libQt5Multimedia.so.5.15.3
/usr/share
/usr/share/doc
/usr/share/doc/libqt5multimedia5
/usr/share/doc/libqt5multimedia5/changelog.Debian.gz
/usr/share/doc/libqt5multimedia5/copyright
/usr/lib/x86_64-linux-gnu/libQt5Multimedia.so.5
/usr/lib/x86_64-linux-gnu/libQt5Multimedia.so.5.15

https://github.com/xmake-io/xmake/blob/45852e6ffcd3f043d961574e72f40d287a2898ab/xmake/modules/package/manager/apt/find_package.lua#L51

Issues-translate-bot commented 2 months ago

Bot detected the issue body's language is not English, translate it automatically.


This package has no header file and no dynamic library with .so suffix, only .so.5. . There are no pkgconfig files either

So it cannot be found, at least there must be libxxx.so to find the library

$ dpkg --listfiles libqt5multimedia5
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libQt5Multimedia.so.5.15.3
/usr/share
/usr/share/doc
/usr/share/doc/libqt5multimedia5
/usr/share/doc/libqt5multimedia5/changelog.Debian.gz
/usr/share/doc/libqt5multimedia5/copyright
/usr/lib/x86_64-linux-gnu/libQt5Multimedia.so.5
/usr/lib/x86_64-linux-gnu/libQt5Multimedia.so.5.15

https://github.com/xmake-io/xmake/blob/45852e6ffcd3f043d961574e72f40d287a2898ab/xmake/modules/package/manager/apt/find_package.lua#L51