我正在尝试将 Clang 3.2 从 Raring 反向移植到 Quantal。我认为这将是一个相对轻松的过程,因此我运行了以下命令:
backportpackage -s raring -d quantal -u ppa:george-edison55/clang3.2-backports clang
软件包上传到 PPA 时没有任何错误,构建时也没有任何错误。不幸的是,由于文件debian/control
包含以下依赖项,因此无法安装:
Depends: ... libgcc-4.7-dev, libobjc-4.7-dev ...
Quantal 中不存在这些包。这些包的内容包含在gcc-4.7和gobjc-4.7软件包。我的问题是,在将软件包上传到我的 PPA 之前,我不知道如何进行更改。
我尝试指示backportpackage
不要上传到我的 PPA 并将文件转储到/tmp/clang3.2
我编辑它们的地方。但是,尝试上传包只会导致原始文件.tar.gz
被再次下载并覆盖我的更改。
正确的做法是什么?
答案1
尽管有-w
一个选项告诉 backportpackage 保留工作目录,但仍然没有办法告诉它保留解压的(和修改的)源代码。所以以下是对我有用的方法:
将程序复制到本地进行修改:
cp /usr/bin/backportpackage ~
打开本地文件并查找进行反向移植函数。其最后一行应类似于
关闭.rmtree(srcdir)
删除该行,保存文件,然后像平常一样运行脚本,确保提供
-w
指定工作目录的选项。- 转到工作目录。应该有一个子目录,名称如下<软件包>-<分布>例如gcc-xenial。
cd
到该目录,做任何你想做的更改。制作一个 debian 软件包。签名并上传结果:
debuild --no-lintian -S -nc -uc -us -sd
debsign ../<package-version>_source.changes
dput -u ppa:<user>/<repo> <package-version>_source.changes