为了方便更多的人知道怎么去解决构建失败的问题,这里我倡议大家共同维护本issue,完成构建失败问题分类及解决思路的整理。
1、怎么去维护本issue?
按照构建失败的原因和解决方法进行分类,贴出以下信息:
要求简短,不重复。主要目的是为了快速通过issue检索出同类型错误的包
暂定以上这些信息,有需要的大家一起补充完善。
2、什么时候更新本issue;
当出现了一类本issue中没有总结到的构建错误类型时,可以在解决了问题之后,将自己成功的经验和分析方法再次记录分享。
3、有哪些已知失败原因的包未解决?
对于了解失败原因,但是无时间解决的,可以在本issue的评论中通过回复的方式,将报名列举出来。
此外,补充说明一下:构建失败包问题解决采用认领模式,大家自行选择要解决的包。
第一步:在obs网站上,对构建失败的包通过日志分析(问题的分析和解决可参考本issue分享的原因和解决办法 ),选择一个计划去认领的包。
第二步:在issue中搜索包名,看包是否已经被认领。(主要避免重复工作,如果确有需要对该包进展进行了解的,与issue创建人进行沟通)
第三步:创建一个issue,标题为:[构建失败][失败分类标签] Packagename
[构建失败] Packagename 是标题必须填写的信息,失败分类标签不清楚的时候,可暂时不写,后续修改或者专人维护;
第四步:分析问题并解决,并在Packagename issue中贴出问题原因、错误分析等信息。
Hey xijing666, Welcome to openEuler Community.
All of the projects in openEuler Community are maintained by @openeuler-ci-bot.
That means the developers can comment below every pull request or issue to trigger Bot Commands.
Please follow instructions at https://gitee.com/openeuler/community/blob/master/en/sig-infrastructure/command.md to find the details.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
解决的包名:tss2
失败分类名:找不到/usr/lib64/libibmtssutils.so.1
失败分类标签:File not found
问题原因:RPM build errors:File not found: /home/abuild/rpmbuild/BUILDROOT/tss2-1470-1.oe1.riscv64/usr/lib64/libibmtssutils.so.1
错误类型:初步判断是spec文件中的路径错误。
解决办法:#I45BM6:[构建失败]【待合并】【已解决】tss2
失败分类名:找不到/usr/lib64/libqrencode.so.3*
失败分类标签:File not found
解决的包:qrencode
解决的包名:zip、unzip
失败分类名:自动构建未成功
失败分类标签:未同步更新Gitee仓库
问题原因:可能是由于OBS worker的环境改变导致改包已经可以成功,但是OBS尚未触发自动构建。因此像这一类的包在OBS上直接branch到自己的工程名下,修改_service文件为自己的Gitee仓库地址就可以成功构建。
错误类型:未触发自动构建
解决办法:#I45ORW:【构建失败】【已解决】zip、unzip
失败分类名:自动构建未成功
失败分类标签:未同步更新Gitee仓库
解决的包: python-urwid
失败分类名:自动构建未成功
失败分类标签:未同步更新Gitee仓库
解决的包: python-mistune
解决的包名:colord 和 libxcb
失败分类名:依赖的包在依赖源中版本低
失败分类标签:依赖的包在依赖源中版本低
问题原因:colord: meson.build:1:0: ERROR: Meson version is 0.51.1 but project requires >=0.52.0
libcxb: [ 1557s] Package dependency requirement 'xcb-proto >= 1.14' could not be satisfied.
[ 1557s] Package 'xcb-proto' has version '1.13', required version is '>= 1.14'
错误类型:依赖的包在依赖源中版本低
解决办法:[构建失败]【已解决】colord 和 libxcb
涉及的包名:ComputeLibrary
失败分类名:服务器环境中的Python SCons编译器暂不支持riscv64,相关配置信息缺失
失败分类标签:Python SCons编译不支持riscv64
问题原因:scons: *** Invalid value for option arch: riscv64. Valid values are: ('armv7a', 'arm64-v8a', 'arm64-v8.2-a', 'arm64-v8.2-a-sve', 'x86_32', 'x86_64', 'armv8a', 'armv8.2-a', 'armv8.2-a-sve', 'armv8.6-a', 'x86')
错误类型:依赖项Python SCons未成功构建,SConstruct需要改写配置使兼容riscv64
解决办法:ComputeLibrary.spec文件中修改
- ExclusiveArch: aarch64 x86_64
+ ExclusiveArch: aarch64 x86_64 riscv64
在SConstruct中修改
vars.AddVariables(
BoolVariable("debug", "Debug", False),
BoolVariable("asserts", "Enable asserts (this flag is forced to 1 for debug=1)", False),
BoolVariable("logging", "Logging (this flag is forced to 1 for debug=1)", False),
EnumVariable("arch", "Target Architecture", "armv7a",
- allowed_values=("armv7a", "arm64-v8a", "arm64-v8.2-a", "arm64-v8.2-a-sve", "x86_32", "x86_64", "armv8a", "armv8.2-a", "armv8.2-a-sve", "armv8.6-a", "x86")),
+ allowed_values=("armv7a", "arm64-v8a", "arm64-v8.2-a", "arm64-v8.2-a-sve", "x86_32", "x86_64", "armv8a", "armv8.2-a", "armv8.2-a-sve", "armv8.6-a", "x86", "riscv64")),
还需要添加riscv64编译指令配置内容,需要等待SCons构建成功后验证
对当前要解决构建失败问题的软件包优先级的原则建议
背景:
两个构建工程进度不同并且分别承载着不同的功能,
openEuler-Mainline-RISC-V:支撑短期内 发布一个能够运行界面 的openEuler RISC-V系统镜像;
baseOS:是支撑22.03LTS正规版本发布,软件包版本保持最新,从最小系统开始构建,达成自举构建目的。
对于两个工程中的软件包,软件版本选型和解决失败问题的优先级取决于上述两个工程的角色定位,即:
看了下当前失败的软件包,按照一些比较初步的分析,界面相关的包可以优先解决,然后下面这些软件包我看了下应该属于被用到比较多的包,也可以参考优先解决:
failed:
alsa-tools
apr
apr-util
chrony
ck
colord-gtk
crash
gcr
PackageKit
gnome-autoar
gnome-calculator
gnome-online-account
gnome-session
gnulib
gspell
gtk*
gnome*
http-parser
httpd
kexec-tools
isomd5sum
ldns
libappindicator
libmodulemd
pulseaudio
unresolvable:
mozjs
对于这个 界面相关的软件包,建议可以安排同学写一个工具自动分析下,包含的功能包括:
另外,对于main工程的软件包范围,也可以按照上面的思路来精简一下:当前main工程的软件包有4000+,触发构建时有很多包处于阻塞状态,若对于运行界面的构建任务无帮助,则可以去掉相应软件包,这样也有助于减少触发构建时对构建资源的占用和阻塞时间。
这个之前考虑过这个思路:
- https://gitee.com/xijing666/rv-oe_work/blob/master/doc/xfce-desktop.log
- https://gitee.com/xijing666/rv-oe_work/blob/master/doc/lxde-desktop.log
- https://gitee.com/xijing666/rv-oe_work/blob/master/doc/gnome.log
后来俊强说找到了更加简单的方法,然后就没有继续后续的比对
@phoebe
这样看就xfce少一些,那就可以瞄准xfce 的依赖来搞~
登录 后才可以发表评论