回答:
更新されたパッケージをbzrブランチからビルドすることは、誰がブランチを保守しているか、またはパッケージが一般的にどのように機能するかによってかなり異なる傾向があります。ただし、PPAにプッシュするための、ほぼすべてのパッケージの迅速でダーティな更新に関するいくつかのガイドラインを次に示します。
ブランチを取得します。
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head
次に、それに切り替えて、変更ログを更新します。
dch -i
dch -iは、debian / changelogで新しいエントリを開き、バージョンリビジョンを1つ増やします。パッチを追加する場合はこれで十分ですが、アップストリームソフトウェアの新しいバージョンに更新する場合は、ダッシュ(-)の前にバージョン番号を更新する必要があります。セイ、中にバージョン1.2-0ubuntu1は、あなたが開始した場合、DCH -iそれがに変わります1.2-0ubuntu2パッチ適用のために良いのであるが、あなたは新しいバージョンが必要な場合は、おそらくそれに変更したいと思います1.3-0ubuntu1。
パッチを適用する必要がある場合は、ここで変更を追加します。debian /ディレクトリのみを持つブランチでは、bzr bd-do(bzr-builddebパッケージが必要)を使用して、変更を実行できる作業ツリーに切り替え、キルトまたは任意のパッチシステムを使用してから、「終了0」に変更をコピーして戻します。
新しいアップストリームバージョンが必要な場合、変更ログが変更されると、次のようなコマンドを実行する可能性があります。
debian/rules get-orig-source
これは通常、上流のパブリッシャーから適切なtarballをダウンロードして開始します。さらに変更が必要な場合は、上記のようにdebian /ディレクトリ内の「パッチ」または他のファイルを変更することで続行します。それ以外の場合は、ほぼ完了です。
bzr bd -S
bzr bdがビルドを処理します。引数なしで呼び出すと、システム上でビルドが開始されますが、-Sで呼び出すと、ソースパッケージを準備するよう指示されます。これには、PPAにアップロードする..._ source.changesファイルが含まれます(dputを使用)。 ppa:<yourname> / <name of your ppa> <changes file> to it that)。
NetworkManagerパッケージの場合は少し異なります。特にopenconnectを見てみましょう:
bzr branch lp:~network-manager/network-manager/openconnect-ubuntu.head network-manager-openconnect
すべてのビルド依存関係も確認してください:sudo get-build-deps
ブランチを取得すると、debian / controlファイルが読み取られ、network-manager-openconnectの構築に必要なすべてのものがダウンロードされます。gitも必要かもしれません。それが完了したら、get-orig-sourceを実行して、gitから最新のスナップショットのtarballのみを取得します。
debian/rules get-orig-source
テキストが飛んでいき、長いバージョン番号のtarballが表示されます。nm-openconnectで入手できる最新のコードです。
次に、変更履歴をtarballからのバージョン番号で更新し、サフィックス-0ubuntu1をそのまま維持する必要があります。
または、必要な特定のバージョン番号でdebian / changelogを変更してから、次のコマンドを実行します。debian / rules get-current-source
プラグインはほとんど変更されないので、上記のようにbzr bdを使用して、そこからパッケージをビルドできるだけです。そうでない場合は、上記のように必要な変更を適用します。
ことを忘れてはいけないコミットのbzrページを変更した後。
私が最初に(マージ提案システムを使用することを躊躇しないで、追加するのを忘れマージするための提案他人の利益を得ることができる、あなたにしている意思を変更したときにLPにリンクあなたの支店のページを)。通常は、自分が基づいているブランチに対してマージすることを提案できます(この例では、lp:〜network-manager / network-manager / openconnect-ubuntu.head)。
起動パッドからコードをプルする方法について更新しました
bzrブランチlp:〜network-manager / network-manager / openconnect-ubuntu.head
これは何ですか?lp(ランチパッドホスティングサービス)からコードを引き出します。コードが置かれている場所を見つける必要があります。
man bzr
343 #type 343のmanページが表示されます。
bzr branch FROM_LOCATION [TO_LOCATION]
If the TO_LOCATION is omitted, the last component of the FROM_LOCATION
will be used. In other words, "branch ../foo/bar" will attempt to cre‐
ate ./bar. If the FROM_LOCATION has no / or path separator embedded,
the TO_LOCATION is derived from the FROM_LOCATION by stripping a lead‐
ing scheme or drive identifier, if any. For example, "branch
lp:foo-bar" will attempt to create ./foo-bar.
作業したいディレクトリに移動するか、自分とコードが移動するディレクトリを追加してみてください。
cd / home / [ユーザー名] / [開発ディレクトリへのパス]
またはbzrブランチlp:〜network-manager / network-manager / openconnect-ubuntu.head / home / [ユーザー名] / [開発ディレクトリへのパス]
例bzrブランチlp:〜network-manager / network-manager / openconnect-ubuntu.head / home / joe / projects / network-manger / dev
すでにこれを行っている場合は、おそらくホームディレクトリにディレクトリがあります。
LS〜
./openconnect-ubuntu.head
そこに何があるべきかを確認するには、そのディレクトリにREADME フィールドが必要です。プロジェクトコードを見てください。ここにREADME.sourceへのリンクがあります。
READMEには、個々のプロジェクトの構築に関する説明が含まれているはずです。
インストールするその他の便利なbzrツール
sudo apt-get install bzr-builddeb bzr-builder bzr-explorer quilt
bzr-explorereを使用すると、マシン上で作成したbzrリポジトリをGUIで参照できます。
別のメモ。1つのコンポーネントopenconnectを構築するために、ネットワークマネージャーのソース全体をプルする必要がある場合があります。異なるコンポーネント間および多くの依存関係がある場合があります。
現在のopneconnectパッケージの修正を作成してから、使用するすべてのdiffツールを使用してパッチを作成する必要があります。そしてそれをパッケージメンテナに送ってください。
または、修正した新しいパッケージをローカルで使用する場合は、.debパッケージファイルを作成します。
これはかなり複雑なパッケージの作成次のリンクを読んでください