archlinuxcn / lilac

Lilac is the build bot for archlinuxcn
GNU General Public License v3.0
114 stars 40 forks source link

find lilac directories recursively #159

Closed petronny closed 2 years ago

petronny commented 4 years ago

如题。目标是能够同时检测出如下结构

x86_64/yay
armv6h/yay
armv7h/yay
aarch64/yay

这样获得的pkgbase就一致了

lilydjwg commented 4 years ago

不能这么递归地找的,会非常费力。

petronny commented 4 years ago

呃,好像是啊。。。

我一开始假设是这个已经独立出去了。。。没有那堆临时文件了。。。

我去改成读git ls-files的结果吧。。。

petronny commented 4 years ago

好了

lilydjwg commented 4 years ago

嗯这样可以,不过我需要检查一下它与其它部分的兼容性。一直以来 lilac 都是假设一个平坦的结构的。

petronny commented 4 years ago

要不要再查一下有没有PKGBUILD? 另外我其实打算抽象出一个LilacDirectory类把这堆检查都集中一下的

lilydjwg commented 4 years ago

要不要再查一下有没有PKGBUILD?

不要。没有 PKGBUILD 是正常的(初次添加,PKGBUILD 尚未生成)。

petronny commented 4 years ago

没有 PKGBUILD 是正常的(初次添加,PKGBUILD 尚未生成)。

Hmmmm 原来是某些pre_build会崩。。。总之这里有点顾虑

不过我需要检查一下它与其它部分的兼容性。

https://github.com/archlinuxcn/misc_scripts/blob/master/repocleaner#L23

这里应该是不行了

顺便把repo_cleaner的其他改进也做了? 比如从lilac.yaml读package.list 还有并入lilac的repo,读config.ini,但仍然是一个独立的文件,最后lilacrun_cmd['repo_cleaner']一下?

lilydjwg commented 4 years ago

有个问题:为什么需要一致的 pkgbase 呢?

petronny commented 4 years ago

有个问题:为什么需要一致的 pkgbase 呢?

呃主要是维护不方便。。。update_on的aur需要传参数,aur_pre_build也需要传参数,package.list也要加上,否则就被删没了。 都不传的话这些都可以软连接到同一个lilac.py/yaml上,之后要改就能一块改了(比如统一上github actions,迁移lilac.yaml新配置等等),然后这些package.list也都能删了

就是所有简单的x86_64包link到同一个文件上,所有简单的aarch64包link到另一个文件上。 但aarch64的现在每个都有独特参数,做不了这个

lilydjwg commented 4 years ago

现在不能都链接到同一个 lilac.{py,yaml} 上么?

petronny commented 4 years ago

不能啊,现在是

yay-aarch64/lilac.py
dummy-aarch64//lilac.yaml

然而yay-aarch64/lilac.py的内容是

update_on = [{'aur': 'yay'}]
def pre_build():
  aur_pre_build('yay')

dummy-aarch64/lilac.py

update_on = [{'aur': 'dummy'}]
def pre_build():
  aur_pre_build('dummy')
lilydjwg commented 4 years ago

dummy 是啥?

petronny commented 4 years ago

呃就是随便某个无依赖的AUR包,比如libsearpc什么的

lilydjwg commented 4 years ago

你是说不同的包用同一套 lilac.{py,yaml}?这听上去就有问题啊……

petronny commented 4 years ago

简单的包还是可以的。出了问题就link改copy然后再修改就好。 总之可以把一些重复的lilac.{py,yaml}统一成一个,要改一块改了

petronny commented 3 years ago

nvchecker的部分跟这个会冲突,如果出现同名文件夹nvchecker.toml中就会覆盖。