如何在将反向移植的软件包上传至 PPA 之前对其进行编辑?

如何在将反向移植的软件包上传至 PPA 之前对其进行编辑?

我正在尝试将 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安装 gcc-4.7gobjc-4.7安装 gobjc-4.7软件包。我的问题是,在将软件包上传到我的 PPA 之前,我不知道如何进行更改。

我尝试指示backportpackage不要上传到我的 PPA 并将文件转储到/tmp/clang3.2我编辑它们的地方。但是,尝试上传包只会导致原始文件.tar.gz被再次下载并覆盖我的更改。

正确的做法是什么?

答案1

尽管有-w一个选项告诉 backportpackage 保留工作目录,但仍然没有办法告诉它保留解压的(和修改的)源代码。所以以下是对我有用的方法:

  1. 将程序复制到本地进行修改:

    cp /usr/bin/backportpackage ~

  2. 打开本地文件并查找进行反向移植函数。其最后一行应类似于

    关闭.rmtree(srcdir)

  3. 删除该行,保存文件,然后像平常一样运行脚本,确保提供-w指定工作目录的选项。

  4. 转到工作目录。应该有一个子目录,名称如下<软件包>-<分布>例如gcc-xenial
  5. cd到该目录,做任何你想做的更改。
  6. 制作一个 debian 软件包。签名并上传结果:

    debuild --no-lintian -S -nc -uc -us -sd

    debsign ../<package-version>_source.changes

    dput -u ppa:<user>/<repo> <package-version>_source.changes

相关内容