Closed petronny closed 1 year ago
那我那些用 rust-nightly 构建的 rust 包就……
对官方包的依赖也没有自动更新, 所以虽然考虑过这个, 不过是不是用 update_on
手动指定下会好些...
我想了一下,我们需要repo_depends
和repo_makedepends
...
现在的repo_depends
一律迁移为repo_makedepends
其实并不完全是 depends 跟 makedepends 的区别?
要不要重新编译实际上取决于重新编译的结果有没有实质的区别. 即使是运行时需要的 (depends), 对编译的结果也不一定有影响. 即使只是编译时需要的, 编译的结果也可能有变化...
那。。。repo_depends
不变,要rebuild的挪到一个auto_rebuild_repo_depends
?
或者给repo_depends的项加一个auto_rebuild
参数?
我想了一下主要还是解决的是 .so 文件的问题。。。
所以叫 repo_so_depends
也是可以的。。。
然后我想了一个自动检查 repo_so_depends
的流程:
for package_i in all_packages:
so_files = find all `.so*` files in package_i with `pacman -Sl`
for so_file in so_files:
linked_dynamic_libraries = get the linked dynamic libraries of so_file by `ldd`
for linked_dynamic_library in linked_dynamic_libraries:
if linked_dynamic_library matches `.so.pkgver*`:
rebuild_dependency = find which package contains linked_dynamic_library by `pacman -F` (need functools.lru_cache)
print(f"{package_i} should be rebuilt when {rebuild_dependency} is updated.")
自动检测so变化很好,不过还是有很多其他种类的依赖的。。。
已实现为 lilac.yaml 中的 update_on_build
项。
如题。 即在现在的 all_building 基础上,加上类似