修补包的正确命名约定是什么?
我正在尝试将 exiv2 版本与补丁程序组合在一起以添加额外的模式。
以下是我目前所做的:
$ sudo apt-get build-dep exiv2
$ cd src/exiv2
$ apt-get source exiv2
$ cd exiv2-0.23-1ubuntu2
... apply patch
$ dpkg-source --commit
$ dch -i
exiv2 (0.23-1ubuntu2-DwC1) trusty; urgency=medium
$ debuild -S -sd -k1230CB40
但随后我收到一条错误消息:
此软件包具有 Debian 修订号,但父目录中似乎没有合适的原始 tar 文件或 .orig 目录;(预期为 exiv2_0.23-1ubuntu2.orig.tar.gz、exiv2_0.23-1ubuntu2.orig.tar.bz2、exiv2_0.23-1ubuntu2.orig.tar.lzma、exiv2_0.23-1ubuntu2.orig.tar.xz 或 exiv2-0.23-1ubuntu2.orig 之一)是否继续?(y/n)y
dpkg-source -b exiv2-0.23-1ubuntu2 dpkg-source: 错误: 无法使用源格式 '3.0 (quilt)' 进行构建: 在 ../exiv2_0.23-1ubuntu2.orig.tar.{bz2,gz,lzma,xz} 处未找到上游 tarball dpkg-buildpackage: 错误: dpkg-source -b exiv2-0.23-1ubuntu2 给出错误退出状态 255 debuild: 第 1364 行出现致命错误: dpkg-buildpackage -rfakeroot -d -us -uc -S -sd 失败
$ ls ..
exiv2-0.23-1ubuntu2 exiv2_0.23-1ubuntu2.debian.tar.gz exiv2_0.23-1ubuntu2.dsc exiv2_0.23-1ubuntu2-DwC1_source.build exiv2_0.23.orig.tar.gz
我需要做什么才能让 debuild 识别原始 tar 文件?
答案1
问题出-DwC1
在你的版本字符串中。每Debian 政策上游版本可以包含,. + - : ~
但 Debian 修订版只能包含+ . ~
,因此之前的所有内容-DwC1
都被视为上游版本的一部分,因此它正在寻找该版本的原始 tarball。
dch
当您添加该条目时会给出有关此内容的线索:
dch warning: your current directory has been renamed to:
../exiv2-0.23-1ubuntu2
dch warning: no orig tarball found for the new version.
通常,当我执行软件包的 ppa 上传时,我会调整 ubuntu 版本并添加类似 的内容~ppa0
,通常是目标版本,例如。~trusty
例如。带有 的额外字符串将导致版本比较小于,因此如果软件包在主存储库中更新,用户将获得较新的版本。1ubuntu2
1ubuntu3~ppa0~trusty
~
1ubuntu3
实际上,您需要做的就是从您的版本中删除连字符,这样1ubuntu2DwC1
就可以了,或者也许1ubuntu2.DwC1
。