17 Star 1 Fork 3

openKylin / packaging-tools

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

packaging-tools

该仓库用于存放一些packaging sig 组的常用工具

源码反向构建工具 source-packing

  1. 安装依赖
sudo apt-get install python3-magic git-buildpackage python3-debian pristine-tar
  1. 使用说明
  • 源码重新打包

用于对已有的debian格式的源码包重新打包,主要是用于修改源码包的格式为quilt,替换源码包的版本号修订信息等

./source-packing.py rebuild-source -h
--suite                 系列名称如yangtze,若为空将使用原有的名称
--dsc-file              源码dsc文件地址
--source-path           源码解压目录
--save-old-changes      是否保留以前旧的changelog信息
--new-revisions         是否使用新的版本修订号用于替换原有的修订版本号

如:假设源码包名称 sqlite3

需要先使用rebuild-source子命令对源码包重新打包

(1)指定修订版本号 --new-revisions

source-packing rebuild-source --dsc-file sqlite3_3.31.1-4kylin0.3.dsc --new-revisions ok1

执行成功之后,那么将生成 sqlite3_3.31.1-ok1.dsc

如果没有指定--new-revisions参数

那么对于quilt格式的包,那么其生成的dsc名称还是原来的

那么对于native格式的包,那么会默认将修订版本包设为1,最终生成sqlite3_3.31.1-1.dsc

  • 反向构建出git仓库
./source-packing.py import-to-git -h
--packaging-branch  打包分支名称,默认是 openkylin/yangtze 分支名
--dsc-file          源码dsc文件地址

如:假设源码包名称 sqlite3

source-packing import-to-git --dsc-file sqlite3_3.31.1-ok1.dsc --packaging-branch yhkylin/v101

脚本执行完成之后,会创建一个同源码名的目录,并创建好了对应的分支,如

$ git branch -a
  packaging/yhkylin/v101
  pristine-tar
  upstream
* yhkylin/v101

后续需要设置远端仓库之后,就可以推送到对应的托管平台上,如

git remote add origin git@gitee.com:openkylin/sqlte3.git
git push --tags && git push --all
  • 导入不同分支代码import-branch

假如需要构建的包为dpkg

  1. 部分分支公用一套代码

例如,v101系列和v101-2203系列共用一套代码。

假定v101系列的源码已经通过源码重新打包反向构建出git仓库两个步骤在本地生成了一个git仓库,其源码目录为dpkg

./source-packing.py import-branch --derived-branch yhkylin/v101 --packaging-branch yhkylin/v101-2203 --repo-path dpkg

参数说明:

--derived-branch:指定需要继承的来源分支

--packaging-branch:需要生成的目标分支

--repo-path:git仓库源码目录

注: 如果git仓库源码目录还未克隆到本地,那么可以通过指定 --git-url "git仓库url", 如 --git-url "git@gitlab2.kylin.com:kylinos-src/base-files.git" 来将远端仓库克隆到本地

此时,会新生成yhkylin/v101-2203packaging/yhkylin/v101-2203两个分支,后续需要推送这两个分支到远端仓库上。

  1. 不同分支使用不同代码

如果是不同分支分别使用不同来源的代码,例如:

在v101系列上使用的版本是 dpkg_1.18.4kord1.7+esm1k2-1.dsc

在v101-2203系列上使用的版本是 dpkg_1.18.4kord1.7+esm1k2-10.dsc

假定v101系列的源码已经通过2.1和2.2小节两个步骤在本地生成了一个git仓库,并推送到远端仓库。

./source-packing.py import-branch  --packaging-branch yhkylin/v101-2203 --git-url git@gitee.com:openkylin/dpkg.git --dsc-file dpkg_1.18.4kord1.7+esm1k2-10.dsc 

参数说明:

--packaging-branch:需要生成的目标分支

--git-url:git远端仓库url地址,用于克隆代码到本地

--dsc-file: 需要导入的debian源码的dsc文件

此时,会新生成yhkylin/v101-2203packaging/yhkylin/v101-2203两个分支,后续需要推送这两个分支到远端仓库上。

软件源仓库依赖检查apt-depends

用于检查软件源仓库中软件包的依赖关系是否满足

安装依赖

sudo apt install python3-apt

使用方法

  • 检查单个包的依赖关系
./apt-depends.py --package apt
  • 检查整个仓库的依赖关系
./apt-depends.py

已支持的功能

  • 支持单包检查(默认是candidate的版本)
  • 支持单包检查时指定版本
  • 支持整个仓库的所有软件包检查
  • 支持conflictbreak字段的依赖关系检查

TODO

  • 支持指定特定的sources.list仓库,特定架构
  • 优化输出显示
  • 支持反向依赖检查

空文件

简介

暂无描述 展开 收起
Python
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/openkylin/packaging-tools.git
git@gitee.com:openkylin/packaging-tools.git
openkylin
packaging-tools
packaging-tools
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891