解构:未找到上游 tarball

asp*_*asp 7 debuild

补丁包的正确命名约定是什么?

我正在尝试将带有补丁的 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
Run Code Online (Sandbox Code Playgroud)

但我随后收到一条错误消息:

这个包有一个 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.tar 之一。 xz 或 exiv2-0.23-1ubuntu2.orig) 继续吗?(y/n) 是

dpkg-source -b exiv2-0.23-1ubuntu2 dpkg-source:错误:无法使用源格式“3.0(被子)”构建:在 ../exiv2_0.23-1ubuntu2.orig.tar.{bz2 ,gz,lzma,xz} dpkg-buildpackage:错误:dpkg-source -b exiv2-0.23-1ubuntu2 给出错误退出状态 255 反编译:第 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
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能让 debuild 识别原始 tar 文件?

Jas*_*nti 4

问题出-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.
Run Code Online (Sandbox Code Playgroud)

通常,当我对包进行 ppa 上传时,我会更改 ubuntu 版本并添加类似~ppa0目标版本的内容,例如~trusty. 例如1ubuntu21ubuntu3~ppa0~trusty​ 额外的字符串~将导致版本比较小于因此1ubuntu3,如果包在主存储库中更新,用户将获得较新的版本。

实际上,您所需要做的就是从版本中删除连字符,这样1ubuntu2DwC1就可以工作,或者也许1ubuntu2.DwC1.