-
Notifications
You must be signed in to change notification settings - Fork 391
lilac 常见问题
在社区编译机上 lilac 的日志存放目录为 /home/lilydjwg/.lilac. 共有两种日志可以查看:
-
build.log: 全量的打包结果日志, 信息为某一个包打包是否成功, 时间戳,以及打包用时. -
log/<TIMESTAMP>: 每一次 lilac 运行的详细打包日志,有详细的错误信息, dependency resolve 结果等. 文件名由时间戳表示 如: 2018-11-10T09:13:01 表示 UTC+8 2018-11-10 09:13:01 执行的打包任务的日志信息
因打包失败的主要原因为 maintainer 的配置有误, 而重新打包浪费编译机资源且大多是无用功, 因而 lilac 目前在包没有更新的时候, 即使该包上次打包失败了, 也不会进行 repackage, 这时候需要 maintainer 对包进行更新, 如編輯 PKGBUILD, 修改 lilac.py 等操作后进行提交, lilac 就会在下一次打包作业运行时进行打包。如果觉得不需要修改任何东西,比如打包错误表明是由于临时性网络故障,可以参考下面的方式手动触发 lilac 打包。
可以在 lilac.yaml 的 update_on 字段增加一节 manual 的更新条件,并修改 manual 条件的参数。更新条件可以并列多条,manual 条件可列在其余更新条件之下。
你需要编写 pre_build 函数, 在 pre_build 里对 PKGBUILD 进行修改, 可以通过 sed 或者推荐使用 lilac 内置的 edit_file 功能.
具体例子可以在 repo 内通过 git grep edit_file 来查看,通过使用 lines 对 PKGBUILD 按行读入, 后通过 print 函数写入 PKGBUILD, 详见 archlinuxcn/repo 内.
不建议在本机上运行全量的 lilac, 可以在本机运行 lilac 对单个包进行调试,配置 lilac 的方式见 archlinuxcn/lilac. 以下是一些注意事项:
-
single_main不会读取配置的build_prefix,single_main默认的第一个参数是makepkg, 如果想要使用其他如extra-x86_64-build则需要传递build_prefix参数给single_main. -
single_main不会做 dependency resolution, 因而如果要测试的包在 lilac.py / lilac.yaml 里指定了 dependency 的话是无法构建的.
以打包者账户 ssh 到 build.archlinuxcn.org 上,可以 sudo cleanup-package-files <pkgbase> 方式确认 lilac 历史打包过程中缓存着的文件,确认后可以 sudo cleanup-package-files --real <pkgbase> 方式删除那些文件.
很多包需要在 Python、Ruby、boost-libs、icu 等官方包升级之后重新构建。这时可以在 lilac.yaml 的 update_on 字段里添加项目,如:
- archpkg: python
from_pattern: '^(\d+\.\d+)\..*'
to_pattern: '\1'考虑到很多包都会有类似的需求,此字段支持别名。比如上述配置可以使用名为 python 的别名:
- alias: python当前已定义的别名可以看 lilac2/aliases.yaml。
注意:别名是 lilac.yaml 在加载时被解释的。nvchecker 并不支持,在 lilac.py 中也读取不到。