-
-
Notifications
You must be signed in to change notification settings - Fork 817
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
语义版本识别错误 #5503
Comments
Title: Semantic version recognition error Xmake versionxmake v2.9.4+HEAD.e85b001f1 Operating system version and architectureMINGW64_NT-10.0-19045 Describe the problemSemantic version recognition error Expected resultsProject configuration
Additional information and error logs
|
|
|
不可以,或许你并没有仔细看日志。 sqlite3 的语义版本识别是没有问题,我特意贴出来做对比的。 我进行了去除空格的尝试。结果就是,将整个字符串作为了包名
|
No, maybe you didn't read the log carefully. There is no problem with the semantic version recognition of sqlite3. I posted it specifically for comparison. I tried removing spaces. The result is that the entire string is used as the package name
|
sqlite3 正常
这个是由于里面 所以你要提 pr 改这个包,使用
xmake-repo 里面压根没这个包 只有一个 imagemagick https://github.com/xmake-io/xmake-repo/blob/dev/packages/i/imagemagick/xmake.lua 另外,这里面也没有 7.1.1 版本,肯定匹配不到,而且里面的两个版本格式也不对,得改成 所以这个包,也得提 pr 过来改进下。 |
sqlite3 normal
This is because the version configuration of So you need to submit a PR to change this package, just use
There is no such package in xmake-repo at all There is only one imagemagick https://github.com/xmake-io/xmake-repo/blob/dev/packages/i/imagemagick/xmake.lua In addition, there is no version 7.1.1 here, so it will definitely not match, and the format of the two versions inside is not correct, so it must be changed to Therefore, this package needs to be improved through PR. |
那应该如何做? 只因 xrepo 中存在这个包,但是没有这个版本。就断定失败? 不允许将其他寻找方式作为来源? 是否需要改进错误提示? |
So what should be done? Just because this package exists in xrepo, but this version does not exist. Just conclude it failed? Not allowing other search methods as sources? Do you need to improve error messages? |
上面我不是说的很明了了么。提 pr 修复 add_versions 中的版本。
不知道你在说啥,指哪个包? luajit? 哪没这个版本了?都说了是版本号格式不对,得修包
我不知道你说的啥方式。。系统库,其他包仓库的包源 原本就能支持,具体看文档。更多查找方式可以自己提 pr 改进包的 add_extsources 或者 on_fetch ,去定制化系统库查找。
你也没完整给 -vD 的错误,我也没法评估是否提示信息不够。但是紧靠你先给的一行 error line ,我也看个大概。 另外,就算提示在完善,最终多半还是会开 issues ,没啥区别。 |
Didn’t I make it very clear above? Raise pr to fix versions in add_versions.
I don’t know what you are talking about, which bag are you referring to? luajit? Where is this version no longer available? I’ve been told that the format of the version number is wrong and the package needs to be repaired.
I don't know what way you mean it. . System libraries and package sources from other package warehouses are originally supported. Please refer to the documentation for details. For more search methods, you can provide add_extsources or on_fetch of the PR improvement package yourself to customize the system library search.
You didn't give a complete error message for -vD, and I can't evaluate whether the prompt information is insufficient. But next to the error line you gave me first, I can have a rough idea. In addition, even if the prompts are improving, issues will most likely still be opened in the end, there is no difference. |
好的,明白了。这涉及两个不同的问题。 完成的错误日志
xmake-repo 里没有 MagickWand 这个包,但是 pkgconfig 有这个包。
通过观察日志,可以得知 xmake 会寻找多种来源。最终从pkgconfig获得了sqlite3 但是为什么 MagickWand 就不可以走完这个流程? 通过 print 调试得出 (core/package/package.lua:786)
并没有移除 所以当我移除 add_requires 中的
|
找系统库,通常前提都得先有个 xxx package 在 xmake-repo 的定义,然后里面通过 add_extsources + on_fetch 去改进系统库查找。 如果包缺失,尽管也会默认尝试走系统库查找。但这种 fallback 情况,且不可靠。。不推荐这么做。我这也很少维护处理这种情况。 既然没这个包,那就应该显式走系统包源。。 |
他说的是给pkgconfig包指定版本的问题, |
To find system libraries, usually the prerequisite is to have xxx package defined in xmake-repo, and then use add_extsources + on_fetch to improve system library search. If the package is missing, although it will also try to search through the system library by default. But this fallback situation is unreliable. . This is not recommended. I rarely maintain or handle this situation. Since there is no such package, you should explicitly go to the system package source. . |
加了的,除非这个包的 pc file 里本身没提供版本信息。
xmake/xmake/modules/lib/detect/pkgconfig.lua Line 207 in ce3d162
|
这个错误主要由两个原因共同导致:
但是,xmake 内部对第三方包管理,已经系统包,是有对 xmake/xmake/core/package/package.lua Lines 786 to 789 in ce3d162
也就是说,如果规规矩矩用 仅仅到 这个 不行我就干脆严格约束算了,不去 fallback 了。 |
无效路径问题,可以等这个 patch #5511 |
Added, unless the version information is not provided in the pc file of this package.
xmake/xmake/modules/lib/detect/pkgconfig.lua Line 207 in ce3d162
|
目前我放弃使用 >= 这种写法。改用 libsv 支持的 既然 > 不是有效的路径符号,在不用改动其他逻辑的情况下,只需要对路径进行编码就解决了文件创建的问题。 |
For now I give up using >=. Use the Since > is not a valid path symbol, you only need to encode the path to solve the file creation problem without changing other logic. |
|
|
Xmake 版本
xmake v2.9.4+HEAD.e85b001f1
操作系统版本和架构
MINGW64_NT-10.0-19045
描述问题
语义版本识别错误
期待的结果
工程配置
附加信息和错误日志
The text was updated successfully, but these errors were encountered: