51 西 Debian
西 Debian
2011 09 25
51 西 Debian 2011 09
1 Introduction
Debian JP
関西 Debian 勉強会は Debian GNU/Linux さまざまなトピ (新しいパケー, Debian 特有の機能の仕,
Debian , ) .
的と三ついま.
ML 示板, 直接せる報交
期的る場
料の
れで, 一時み下.
1
西Debian
1 Introduction 1
2 近の Debian 3
3 前課 4
4 vcs-buildpackage bzr 6
5 vcs-buildpackage Git (again) 13
6 後の 19
7 20
2
51 西 Debian 強会 2011 09
2 Debian
Debian JP
2.1 50 西 Debian
50 目の西 Debian 2011 8 28 () 都でれま
つも場でまたせて会場
2.2 80 Debian
9 の東 Debian 勉強の勉はな 2011 9 17 () 18 () の二
合宿
黙とるス宿
3
51 西 Debian 強会 2011 09
3
Debian JP
回は前課しま
1. Debian ケージの作成手順を復習しておいてください。先月 (2011 08 ) の勉強会資料が参考になるで
2. bzr,git-buildpackage ルさ境をおいさい
加者によ以下です
3.1
(回答)
3.2 Takuspeed83
(回答)
3.3 Y.YATSUO
(回答)
3.4
1. しばて込して・・
みま間取せん
2. ノーが入す。
宅マグイかな・・
3.5
(回答)
3.6
1. してす。来た大丈ず。
2. 。あ sid chroot する親環ストてま...
4
3.7 kozo2
1. の勉料をことしま
2. VirtualBox OSsid
root@debian:~# lsb_release -a |grep Description
No LSB modules are available.
Description: Debian GNU/Linux unstable (sid)
root@debian:~# aptitude show bzr-buildpackage
No current or candidate version found for bzr-buildpackage
Package: bzr-buildpackage
State: not a real package
Provided by: bzr-builddeb
root@debian:~# aptitude show bzr-builddeb git-buildpackage |egrep ’Package|State’
Package: bzr-builddeb
State: installed
Package: git-buildpackage
State: installed
3.8 yabuki@netfort.gr.jp
かもせんすの
3.9
料読用意ます
3.10
1. はしす。
2. るか
3.11
いう (?) git-buildpackage 編のいかみま
3.12
1. 頂い読んす。
2. bzr-buildpackage git-buildpackage
5
51 西 Debian 強会 2011 09
4 vcs-buildpackage bzr
下尊
4.1
は、 vcs を使 散型バーシスが注されうにら、 Linux カー
どでも用られてお、開発スードの早 Git を使ている方多い気がます。はなブクマーク
*
1
どを見て
てもの記 Git ばか Bazaar 使いとてもなり
私は、日なフイルを扱ていますが、それらは Bazaar(bzr:バザー) を使 て管理しています
*
2
。そのため
か、パケージも Bazaar を用いて管理していましたが、最初のうちは適当に自分のリポジトリを作成し管理していま
した。無理やりパケージの管理をしていたため、他の手法を探していると、 bzr-builddeb があたので、それ以来
bzr-builddeb 使てい
4.2 bzr-builddeb
ずはールまし
$ sudo aptitude update
$ sudo aptitude install bzr-builddeb
lenny 0.95 squeeze 2.4.2 sid 2.7.8 す。
$ dpkg -L bzr-builddeb | grep bin
/usr/bin
/usr/bin/bzr-buildpackage
$ bzr-buildpackage --help
Purpose: Builds a Debian package from a branch.
Usage: bzr builddeb [BRANCH_OR_BUILD_OPTIONS...]
Options:
...[snip]
ルプていブラ Debian 生成を目たコす。
*
1
http://b.hatena.ne.jp/
*
2
Bazaar 用いるよにな理由は、ル名 Unicode 列で管理されいたからです
6
$ bzr help commands
[snip] 部抜
bd-do Run a command in an exported package, copying the result
back. [builddeb]
builddeb Builds a Debian package from a branch. [builddeb]
Aliases: bd
dep3-patch Format the changes in a branch as a DEP-3 patch. [builddeb]
dh-make Helps you create a new package. [builddeb]
Aliases: dh_make
import-dsc Import a series of source packages. [builddeb]
import-upstream Imports an upstream tarball. [builddeb]
mark-uploaded Mark that this branch has been uploaded, prior to pushing it.
[builddeb]
merge-package Merges source packaging branch into target packaging branch.
[builddeb]
merge-upstream Merges a new upstream version into the current branch.
[builddeb]
Aliases: mu
bzr は他 VCS 使とがる人あれ、一使えと思ます bzr help commands コマンド一覧
見るない覧の [builddeb] bzr-buildpackag で追
コマす。
4.3 bzr-builddeb
bzr-builddeb ではさまざまモーがあらかめ用意さていす。ージメンテナ使いたいタイに応
て、を選がで。図 1 に示、メスタ応じの選す。
Q1 理し native package
*
3
すか
Q2 なたテナ
Q3 debian/ だけたい
Q4 るとランけていか
1 bzr-builddeb でのドの
*
3
Debian 固有のケージ。または、ローカルでの使用のためだけに、メンテナンスしているソース イルを含むパ ケージ。例えば、
debootstrap debian-el,debian-archive-keyring
7
4.4 Normal mode
4.4.1 規に
bzr-builddeb 用い作成は、 bzr dh-make いま
*
4
$ mkdir ~/src-debian-normal
$ bzr init-repo auto-install-el
$ cd auto-install-el
$ bzr init unstable
$ cd unstable
$ bzr dh-make auto-install-el 1.53 ../auto-install-el_1.53.orig.tar.gz
Fetching tarball
Looking for a way to retrieve the upstream tarball
Upstream tarball already exists in build directory, using that
Committing to: /tmp/test/auto-install-el/unstable/
added auto-install.el
Committed revision 1.
Type of package: single binary, indep binary, multiple binary, library,
kernel module, kernel patch?
[s/i/m/l/k/n] s
Maintainer name : Takaya Yamashita
Email-Address : takaya@debian.or.jp
Date : Sun, 25 Sep 2011 01:01:31 +0900
Package Name : auto-install-el
Version : 1.53
License : blank
Type of Package : Single
Hit <enter> to confirm:
Skipping creating ../auto-install-el_1.53.orig.tar.gz because it already
exists
Currently there is no top level Makefile. This may require additional
tuning.
Done. Please edit the files in the debian/ subdirectory now. You should
also
check that the auto-install-el Makefiles install into $DESTDIR and not
in / .
Package prepared in /tmp/test/auto-install-el/unstable
$ ls
auto-install.el debian/
*
4
は、段階ため場所 dh-make して debian レクトリをコしろ書かいまが、 bzr dh-make
丈夫でし
8
$ ls -1 debian
README.Debian
README.source
auto-install-el.cron.d.ex
auto-install-el.default.ex
auto-install-el.doc-base.EX
changelog
compat
control
copyright
docs
emacsen-install.ex
emacsen-remove.ex
emacsen-startup.ex
init.d.ex
manpage.1.ex
manpage.sgml.ex
manpage.xml.ex
menu.ex
postinst.ex
postrm.ex
preinst.ex
prerm.ex
rules*
source/
watch.ex
$ bzr status
added:
debian/
debian/README.Debian
debian/README.source
debian/changelog
debian/compat
debian/control
debian/copyright
debian/docs
debian/rules
debian/source/
unknown:
debian/auto-install-el.cron.d.ex
debian/auto-install-el.default.ex
debian/auto-install-el.doc-base.EX
debian/emacsen-install.ex
debian/emacsen-remove.ex
debian/emacsen-startup.ex
debian/init.d.ex
debian/manpage.1.ex
debian/manpage.sgml.ex
debian/manpage.xml.ex
debian/menu.ex
debian/postinst.ex
debian/postrm.ex
debian/preinst.ex
debian/prerm.ex
debian/watch.ex
debian/source/format
$ bzr log -v --include-merges
------------------------------------------------------------
revno: 1
tags: upstream-1.53
committer: Takaya Yamashita <yamashita@takaya.biz>
branch nick: unstable
timestamp: Sun 2011-09-25 01:01:30 +0900
message: Import upstream version 1.53
added: auto-install.el
$ edit
$ edit
$ edit
[snip]
$ bzr builddeb
9
4.4.2 存の bzr-builddeb
$ mkdir ~/src-debian-normal
$ bzr init-repo auto-install-el
$ cd auto-install-el
$ apt-get source auto-install-el
$ bzr init unstable
$ cd unstable
$ bzr import-dsc ../*.dsc
Committing to: /home/takaya/src-debian-normal/auto-install-el/tmpriXU3G/upstream/
added auto-install.el
Committed revision 1.
All changes applied successfully.
Committing to: /home/takaya/src-debian-normal/auto-install-el/unstable/
added .pc
added debian
added .pc/.quilt_patches
added .pc/.quilt_series
added .pc/.version
added debian/README.Debian
added debian/changelog
added debian/compat
added debian/control
added debian/copyright
added debian/dirs
added debian/emacsen-install
added debian/emacsen-remove
added debian/emacsen-startup
added debian/rules
added debian/source
added debian/source/format
Committed revision 2.
$ bzr log -v --include-merges
------------------------------------------------------------
revno: 2
tags: 1.48-1
fixes bug(s): http://bugs.debian.org/586177
author: Takaya Yamashita <takaya@debian.or.jp>
committer: Takaya Yamashita <yamashita@takaya.biz>
branch nick: unstable
timestamp: Tue 2010-06-15 23:16:42 +0900
message:
Initial release (Closes: #586177)
added:
.pc/
.pc/.quilt_patches
.pc/.quilt_series
.pc/.version
debian/
debian/README.Debian
debian/changelog
debian/compat
debian/control
debian/copyright
debian/dirs
debian/emacsen-install
debian/emacsen-remove
debian/emacsen-startup
debian/rules
debian/source/
debian/source/format
------------------------------------------------------------
revno: 1
tags: upstream-1.48
author: Takaya Yamashita <takaya@debian.or.jp>
committer: Takaya Yamashita <yamashita@takaya.biz>
branch nick: upstream
timestamp: Tue 2010-06-15 23:16:42 +0900
message:
Import upstream version 1.48
added:
auto-install.el
$ bzr merge-upstream ../auto-install-el-1.53.orig.tar.gz --version 1.53
--distribution debian --package auto-install-el
記でも大丈夫
$ bzr merge-upstream ../auto-install-el_1.53.orig.tar.gz --version 1.53
Using distribution unstable
Using version string 1.53.
Committing to: /home/takaya/src-debian-normal/auto-install-el/tmpNlFI08/upstream/
modified auto-install.el
Committed revision 2.
All changes applied successfully.
The new upstream version has been imported.
You should now review the changes and then commit.
bzr merge-upstream コマンド用いて、 プストリムのソー ルをインートます。拡子で
10
.tar.gz, .tar, .tar.bz2, .tar.lzma, .tgz, .zip
*
5
また、ワーキングツリーの変更を行わずにアプストリームの変更をインポートする bzr import-upstream あり
す。
4.5 Merge mode
Merge mode Normal mode に比べて少し複雑な作業が必要になてきます。コマンドなども整備されていませ
debian レクでき
、フきま
$ mkdir ~/src-debian/
$ bzr init-repo ~/src-debian/twittering-mode
$ cd ~/src-debian/twittering-mode
$ bzr init unstable
$ cd unstable
$ mkdir .bzr-builddeb/
$ echo -e ’[BUILDDEB]\nmerge = True’ > .bzr-builddeb/default.conf
$ bzr add .bzr-builddeb/default.conf
来、リーからしいージは、 bzr merge-upstream すが Merge mode
応しいた
*
6
バーげるあり
*
7
$ dch -v 2.0.0+git20110905-1
[snip]
$ bzr builddeb
$ ../dput debexpo twittering-mode_2.0.0+git20110905-1_amd64.changes
$ bzr ci -m "New upstream version 2.0.0+git20110905"
理を~/src-debian/twittering-mode/build-area にて debuild
た、 backports backports branch いま
$ cd ~/src-debian/twittering-mode
$ bzr branch unstable bpo
$ cd bpo
$ bzr bd-do "dch --bpo"
[snip]
$ bzr builddeb
[snip]
$ ls -1 ../*bpo*
../auto-install-el_1.53-1~bpo60+1.debian.tar.gz
../auto-install-el_1.53-1~bpo60+1.dsc
../auto-install-el_1.53-1~bpo60+1_all.deb
../auto-install-el_1.53-1~bpo60+1_amd64.build
../auto-install-el_1.53-1~bpo60+1_amd64.changes
のパ Merge mode に移行す場合、リジトを作成し debian レクトリコピすれば良
$ mkdir ~/src-debian/
$ bzr init-repo ~/src-debian/twittering-mode
$ cd ~/src-debian/twittering-mode
$ apt-get source twittering-mode
$ bzr init unstable
$ cp -r twittering-mode-2.0.0+git20110905/debian ~/src-debian/twittering-mode/unstable
$ cd unstable
$ mkdir .bzr-builddeb/
$ echo -e ’[BUILDDEB]\nmerge = True’ > .bzr-builddeb/default.conf
$ bzr add .bzr-builddeb/default.conf
$ bzr add .
$ bzr ci -m "initial commit"
$ bzr builddeb
bzr bd-do 使うと build-area 時的にコーを行い dpatch のコマンを使用すことがでるようで
*
5
LZMA/XZ/Lzip の対については、 Bug 499484 wishlist として報告さています。これらについては、プストリムの trunk
善していようです
*
6
changelog 対象としたリースを反映さることができ? bzr merge-upstream –distribution 使えばいけるかも-
*
7
debian クトを別の場所で理しているた Bazaar が受け継がれせん
11
*
8
4.6
段は GPG 署名をせずに必要なときだけパケージに署名行なている人も多いと思いす。--後にコマンド
足す builder とが
$ debuild -rfakeroot -us -uc
$ bzr bd -- -us -uc
*
8
12
51 西 Debian 強会 2011 09
5 vcs-buildpackage Git
(again)
の枕
下さんの bzr 編にい続き、ここでは木が Git を用いて Debian ケージを成する場合についてまとめ
(2011 06 , 48 ) git-buildpackage につ () んと調
、幾つかコマンドが新く追加されていたりしまし。ですので、回の習も兼ね Git を使 Debian
ージ/管理」をいとす。
提と識と
はいにつる事ませここ
source package のあ知識
Git して, tag branch につてのの知
ある前提す。参考いま、適て下もしして
(復習)
常、
1. upstream ース
2. (合に) non-free りし
3. ./debian 作成/て、
4. によ upstream
5. /
いういまらの VCS
型的ジト
git-import-dsc import debcheckout Git 理さ
checkout 、多、リリはにな
13
$ git branch
* master <-- debian/ りのフルソー
pristine-tar <-- orig.tar.{gz,bz2} バイナリデル
upstream <-- debian/ (upstream) のソ
こで git-buildpackage 実行すると、ケージのビルが始まりす。今日この状態て行までの話
てみ
upstream import ?
upstream ース import する?
upstream ース Git リをことると
simple
1. tarball 開し import
2. upstream VCS import
調整が
non-dfsg-free 部分てか import
... ?
意す pristiner-tar るこす。
pristine-tar ?
gzip 圧縮率の違いなどから upstream ランチから生成された .tar.gz upstream 配布物と異なる事があ
ます。 pristine-tar によて、 upstream tarball import する際にバイナリデルタを保存しておくことで、
upstream ブラチか tarball(.orig.tar.gz) 成す際に checksum の等しい tarball 生成ることが
す。
のバルタ pristine-tar に保す。れた
$ pristine-tar commit foobar.tar.gz [upstream tag]
$ pristine-tar checkout ../foobar.tar.gz
様にます、最 import る際忘れタを良い
git-import-orig ドにオプして --pristine-tar ありす。く稀上手くバナリルタ
生成 tarball () です...
upstream VCS import
きは tarball import すること でし? れは歴とにバデル保持ため
要なす。
た、リーれて tarball Tag (するある)
宜修 upstream patch すく
upstream VCS import (1)
運に upstream Git
$ git remote add upstream-repos [url]
$ git fetch upstream-repos
$ git co upstream && git merge upstream-repos
ok
14
upstream VCS import (2)
Subversion git-svn rebase がらことので倒で...
*
9
Subversion:
$ git-svn init [url]
$ git svn fetch
$ git log ref/remotes/git-svn
$ git checkout -b upstream refs/remotes/git-svn
$ git push origin upstream:upstream
Subversion:
$ git config --remove-section svn-remote.svn 1>/dev/null 2>&1
$ git svn init [url]
$ git show-ref origin/upstream > \
‘git rev-parse-git-dir‘/refs/remotes/git-svn
tarball import
下で, tarball import ンドてまおき
git-import-orig
git-buildpackage
simple tarball import
(Option けれ) pristine-tar
(れば) master チへ merge
も打
simple
な事ので, 分ない。
git-dpm import-new-upstream
git-dpm: git Debian package manager
作は git-import-orig
VCS patch-queue () の生/して
調整が場合 (1)
upstream 布物 non-dfsg-free があ調
upstream ンチ non-dfsg-free を削/調
new upstream version merge/commit
tarball して repack import/
んてます
$ git checkout upstream
$ git merge -s recursive -X theirs [upstream tag]
しく
*
9
い方ありませんか?
15
$ git status -s | egrep ’^(DU|UA| U|UD)’ | cut -c4- | \
xargs git rm --ignore-unmatch DUMMY$$
$ git commit
?
uscan repack 用の hook script を使いるら、れを実行たの tarball import る、の方が楽
しれ
./debian /
あこです?
$ git branch
* master
pristine-tar
upstream
upstream ース Git ジト upstream ンチ
./debian の変 master チで
の変 master なう
した git log で容追跡
patch
なり Happy Hacking!!
patch ?
source format 3.0 (quilt) は、 upstream quilt
純な
Git は忘 quilt (しく debuild ) す。
雑なあり VCS 恩恵受けあり
git 使う (1)
quilt Git だけ patch debuild 等で patch 生成, ./debian/patches/
git 管理。ま VCS 理す 1 /1 るの?
patch ラン
track branch 1 /1 or 1 /1 コミ
意す
quilt export とい
1 /1
squash !! squash !! squash !!
のと 1-way rebase upstream 業が
, マンて述
topgit: a Git patch queue manager
ブラ
係も
16
便利だ, すぎない
patch-queue ラン quilt export master おく
gbp-pq
git-buildpackage 提供
git format-patch wrapper
1 /1 , patch /
master rebase 使う
$ git checkout master ; git branch -D patch-queue
$ quilt pop -a
$ gbp-pq import
... ...
$ git checkout master ; gbp-pq export
git-dpm
ラン
1 /1
master merge まま
upstream rebase
ライラン SHA1 ./debian/.git-dpm
gitpkg quilt export hook
1 /1 ,
debian/source/git-patches 設定
upstream/[UPSTREAM_REF]...patche-queue1/[DEBIAN_REF1]
upstream/[UPSTREAM_REF2]...topic1/[DEBIAN_REF2]
tag 生成
source package
git-dpm
ルドのコ無い (dpkg-source -b )
gitpkg
pristine-tar, upstream ラン tarball source package
git-buildpackage
default. 作成
git-pbuilder: pbuilder/cowbuilder を呼せる
グを.
17
(?)
ろいろコマンが増えてましたが結局のと git-buildpackage が一番簡/便/移行コスも低い、とい
印象 workflow vcs-buildpackage
git-dpm/gitpkg workflow/patch-queue (れど, なり)印象す。
git-dpm するが多
マン, が高 ()
git らし作業 (しい)
すね
gitpkg
hook 拡張/イズ.
ジトイア定さない
す。
18
51 西 Debian 強会 2011 09
6
Debian JP
6.1 52 西 Debian
52 関西 Debian 勉強会は 10 23 () 島区民センターで開催する予定です発表内容については未
すのなさお待おり
6.2 53 西 Debian in KOF 2011
11 の関西 Debian 11 12 () の関西ンソ 2011 てセンとしま
Debian Updates」とタマお題は佐
19
51 西 Debian 強会 2011 09
7
20
21
22
西Debian
Debian
2011 09 25 1
西 Debian ( )
23