有一个简单的控制文件:
Source: my-package
Section: non-free
Priority: extra
Maintainer: Some one <someone@gmail.com>
Uploaders: Some one <someone@gmail.com>
Build-Depends: dh-autoreconf, pkg-config, debhelper, autotools-dev, dh-buildinfo,
dh-systemd,
packageA (>= 1.42),
libpackage-dev (>= 1.5-32), libpackage-dev (<= 1.5-999),
Standards-Version: 1.0.0
Homepage: http://www.google.com
Package: my-package
Section: non-free
Architecture: any
Depends: lib-bla
Description: my awesome package
另外,我有一个 Map<> 包含:
package : version
我需要修改此文件的Build-Depends属性(通过 groovy/Jenkins/shell)并替换每个完全不包含版本限制的构建依赖项(例如 pkg-config)以包含特定版本:(= 1.0)
版本应取自地图
修改后的文件应该是这样的:
..
..
Build-Depends: dh-autoreconf (= 1.0), pkg-config (= 2.0-10), debhelper(= 10.0-9),
autotools-dev (= 7.2.3-1), dh-buildinfo(= 3.0),
..
..
归根结底,需要一些方法来遍历 Build-Depends 检查是否包含版本限制,如果没有,则将版本从 Map
任何想法?我可以使用文本处理方法来做到这一点,但我会寻找更官方的方式来处理 Debian 的控制文件修改