web-dev-qa-db-ja.com

DebianからPPAにパッケージをコピーするにはどうすればよいですか?

Debian sidの最新の gourmet パッケージを teamのPPA に追加して、Gourmetの最新バージョンを実行したいUbuntuユーザーが追加できるようにしますソフトウェアソースへのPPA。 (依存関係に関しては、現在サポートされているすべてのUbuntuバージョンで現在の依存関係のほとんどすべてが既に利用可能であるため、これは大きな問題ではありません。)

*.dscファイルとdebianおよびorig tarballをダウンロードしましたが、パッケージのsource.changesファイルに this を使用できることもわかりました。 dputがパッケージを検証できるように、Debianメンテナーの公開鍵もダウンロードしました。その後、dput ppa:~gourmet/ppa gourmet_0.17.3-1_source.changesを使用してPPAにパッケージをアップロードしようとしました(ティルダなしでも試しました)。これは成功したようですが、確認メールが届かず、パッケージが表示されません。 PPA 、これは believe につながります。Debianのメンテナーのキーは明らかにチームメンバーのキーに含まれていないため、パッケージは拒否されました。

では、パッケージをDebian(sid)からLaunchpad PPAに「コピー」する最も簡単な方法は何ですか?アップロードする前に、パッケージ全体をローカルで再構築する必要が本当にありますか?

10
Bernhard Reiter

変更ログを調整して変更ファイルを再生成するには、アップロードする前にsourceパッケージをローカルで再構築する必要があります。パッケージのバックポートは非​​常に一般的なタスクであるため、これはスクリプト化されています。 backportpackage Manpage icon command buntu-dev-tools Install ubuntu-dev-tools パッケージ。

Debianからパッケージをバックポートするには、対象のディストリビューションシリーズ、PPA、およびパッケージのdscファイルを提供するだけです。

backportpackage -d trusty -u ppa:gourmet/ppa http://ftp.de.debian.org/debian/pool/main/g/gourmet/gourmet_0.17.3-1.dsc

Dscファイルを見つける必要がないため、Ubuntuのリリース間でパッケージをバックポートするのはさらに簡単です。 utopicからtrustyにバックポートしたいとしましょう:

backportpackage -s utopic -d trusty -u ppa:gourmet/ppa gourmet
12
andrewsomething

これを行うにはいくつかの方法があります。

Rhythmboxでこれを行ったとき、次のレシピに従いました。

a。ソースファイルとdebianファイルを取得します

enter image description here

b。ソース(.orig.tar.xz)を解凍します

c。ソースフォルダーの名前をrhythmbox-3.0.3のように変更します

c。 debianファイル(.debian.tar.xz)を解凍します

d。ソースディレクトリの下にdebianフォルダーを移動します

e。 dch -iは変更ログファイルを変更します

f。 「不安定な」パッケージ名をubuntuターゲットの名前に変更します-ここでは12.04で正確なを使用しました。アプリに合わせてバージョンを変更します。ここではrhythmboxは3.0.3だったので、-1~ppafossfreedomを追加しました

rhythmbox (3.0.3-1~ppafossfreedom) precise; urgency=low

  * rebuild

 -- fossfreedom <[email protected]>  Thur, 07 Jun 2012 13:19:18 +0100

g。新しいソースパッケージを作成します:dh_build --createorig

h。キーを使用してソースのみをビルドします。debuild -S -k0xABCDEFGここで、ABCDEFGはキーです

私。ビルド用のパッケージをアップロードします。

cd ..
dput ppa:fossfreedom/rhythmbox rhythmbox_3.0.3-1_sources.changes    
1
fossfreedom