[ 已解决 ]obs 中基础包更新, 会引起依赖它的包自动重新编译么?

如题,

这个我不知道

但是我猜这取决于 ymp 文件的写法

ymp ?

会,你难道没有在 OBS 上看到过 block 这个状态?这个状态就表示你的软件包依赖的基础包正在编译,等解除 block 你的软件包就会进入 schedule 状态,就是要重新编了。要是编译出的 RPM 和原来的一样,你看 buildlog 的时候底下就会有几行,比如 Retried build at Sat Apr 19 10:53:54 2014 returned same result, skipped。意思就是不增加 7.36.0- 118.1 这个释出号了当什么都没发生过。

PS:@torbai .ymp 文件可以手写,但是 s.o.o 上的都是 OBS 自动生成的。.ymp 是一键安装的引导文件,跟编译没有任何关系,它的本质是一个 xml 文件。

1赞

原来是这样, 我一直以为 block 是因为 worker 不够用了, 等有空闲的 worker 了, 才会 schedule . :stuck_out_tongue:

你的意思是说 worker 不够就不排队了?No no no…OBS 不是 Launchpad。

不是的, 我是说原来我以为 block 是因在排队等待空闲的 worker,
刚才听你说才明白, block 是因为它依赖的包正在编译,
如果它依赖的包没有在编译, 碰巧这是 worker 不够了, 它会直接显示 shedule, 而不是 block , 对么?

啊啊啊啊,我又记错了。。。。

其实我想说的是 spec 文件,结果脑子一片混乱,写成 ymp 了。。。。。

spec 里有配置不自动重编的配置选项?

  1. block 只表示我说的那种情况
  2. schedule 只表示你的软件包在排队等待编译。有没有 worker 跟 schedule 不 schedule 无关。
    2.1 有 worker,但你前面还有软件包排队时间比你早,你依然显示 schedule 状态。
    2.2 有 worker,你前面没有软件包排队,你的 schedule 跳一下就变成 building 状态了。
    2.3 没有 worker,那自然一直是 schedule 状态。

你之所以搞乱套,因为你没有考虑过我红字的情况。

1赞

没有,不然你本地怎么编译?

这下明白了, 谢谢女王哈哈!

另外:

弱弱的问一句, s.o.o 是啥的缩写?

弱弱的再问一句, lauchpad 我不熟, 它是提供类似的功能 OBS? 后面这句"OBS 不是 Launchpad" 是说 Launchpad 不用排队?

software.opensuse.org

额, 好吧. thx…

不自动 重新 编译, 不影响本地编译呀, 它只是别的包变化了, 不会引起它重新编译. 好吧, 我明白了, 这样做也不科学, 这样在运行的时候可能会有问题. 状态会不同步. 会导致程序不能运行 ,