Rabbit Slide Show

DebianとFedoraでパッケージをリリースするまでの話

Description

第121回東京エリアDebian勉強会で、それぞれのディストリビューションへと パッケージを入れたときの経験をもとに、ディストリビューションの違いも踏まえて 話したときの資料です。

Text

Page: 1

DebianとFedoraで
パッケージを
リリースするまでの話
林健太郎
株式会社クリアコード
東京Debian勉強会
2014/12/20
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 2

今日の内容
✓ 第一部(Debian編)
✓ Groongaの紹介
✓ 新規パッケージについて
✓ 第二部(Fedora編)
✓ Cutterの紹介
✓ Cutterの事例
✓ groonga-normalizer-mysqlの紹介
✓ groonga-normalizer-mysqlの事例
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 3

はじめに
✓ スピーカーの立ち位置
✓ Groonga Projectの中の人
✓ おもにリリース関連
(2012/05〜2014/03までリリースマネージャ)
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 4

具体的な内容の前に
✓ 技術的に踏み込んだ内容はなし
なので気楽に聞いてもらえばOK
✓ あくまで個人の見解です
Fedoraだとこんな感じというのをつかんでもらえばOK
✓ 公開済みのブログのエントリを
もとにしています
新たな知見が得られるとは限りません
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 5

Groongaとは
Groongaとは

Page: 6

Groongaとは
✓ 「ぐるんが」
✓ カラムストア機能つき全文検索
エンジン
✓ Sennaの後継プロダクト
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 7

Groonga族
✓ Groonga
✓ Mroonga(むるんが)
✓ Rroonga(るるんが)
✓ Droonga(どぅるんが)
他にもNroongaとかHaroongaとかいろいろあるよ!
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 8

Groonga族って
✓ Mroonga
✓ Groongaをストレージエンジンとして
使う
✓ Rroonga
✓ RubyからGroongaを扱える
✓ Droonga
✓ Distributed Groonga
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 9

Groongaを楽々インストール
✓ Debian
✓ Ubuntu
✓ CentOS
✓ Fedora
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 10

Debianでも
楽々インストール
✓ stable
✓ testing
✓ unstable
✓ 以前はtestingやunstableもプロジェクト公式で対応
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 11

Ubuntuでも
楽々インストール
✓ 12.04 LTS
✓ 14.04 LTS
✓ 14.10
✓ だいたいEOLに合わせて対応打ち切り
✓ PPAでパッケージを提供へと移行
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 12

CentOSでも
楽々インストール
✓ CentOS 5
✓ CentOS 6
✓ CentOS 7
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 13

Fedoraでも
楽々インストール
✓ Fedora 19
✓ Fedora 20
✓ Fedora 21
✓ Fedora公式でのリリースへ移行
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 14

楽々インストールの明暗
✓ ユーザー視点
✓ 自分の環境がサポートされていると
嬉しい
✓ ソースからビルドは敷居が高い
✓ 開発者視点
✓ どこまでサポートするのか
✓ 手広くサポートするコストの負担
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 15

パッケージのビルドは大変
✓ Debian
✓ 各リリース
& i386/amd64
✓ Ubuntu
✓ 各リリース
& i386/amd64
✓ CentOS
✓ 各リリース
& i386/amd64
✓ Fedora
✓ 各リリース
& i386/amd64
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 16

準備が大変な理由
✓ 元々はすべてchrootでビルド
✓ Groongaのビルドって重い
✓ リリースごとに10数回のビルド
✓ ビルド専用マシンがあったこと
も
✓ rinseつらくなってきた
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 17

ビルド環境の移行(deb系)
✓ Debian
✓ chroot ➟ Vagrantへ移行
✓ testing,unstable対応打ち切り
✓ Ubuntu
✓ chroot ➟ PPAへ移行
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 18

ビルド環境の移行(rpm系)
✓ CentOS
✓ chroot ➟ Vagrantへ移行
✓ Fedora
✓ chroot ➟ 公式でのリリースヘ移行
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 19

ホスティング環境の移行(1)
✓ packages.groonga.org
✓ Groongaのリポジトリを提供
✓ 元々他サービスと同居
✓ セキュリティの観点から"みんな"で
協力が難しい
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 20

ホスティング環境の移行(2)
✓ ConoHa支援プログラムを利用
✓ https://www.conoha.jp/community
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 21

Debianへ
Debianへ
新規パッケージを
新規パッケージを
投入するまで
投入するまで

Page: 22

きっかけ
✓ 時は、2013年11月29日
✓ 全文検索エンジンGroongaを囲む夕べ
4
✓ やまねさんを紹介された
✓ GroongaのDebian入りを目指すことに
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 23

まずはWNPP
✓ 2013/12/13 はじめてのITP
✓ このときのGroongaは3.0.1
https://bugs.debian.org/cgi-bin/bugreport.cgi?
bug=732055
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 24

WNPPについてまとめた
✓ Debianでパッケージを
リリースできるようにしたい -
WNPPへのバグ登録
http://www.clear-code.com/blog/2014/3/7.html
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 25

パッケージを手直し
✓ 2014/01頃
✓ コメントをうけてパッケージを修正
✓ upstreamにもとりこんでいく
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 26

ようやくNew Queueへ
✓ 2014/02頃
✓ やまねさんにGroonga 4.0.0をNew
Queueにアップロードしてもらう
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 27

Lintianについてまとめた
✓ Debianでパッケージを
リリースできるようにしたい
- よりDebianらしく
http://www.clear-code.com/blog/2014/4/3.html
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 28

mentors.debian.netに
ついてまとめた
✓ Debianでパッケージを
リリースできるようにしたい
- mentors.debian.netの使いか
た
http://www.clear-code.com/blog/2014/7/2.html
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 29

New Queueどうなった?
✓ 2014/05/15
✓ ftp-masterのチェックまで約3ヶ月
✓ debian/copyrightの不備が原因で
rejectされる
✓ 審査待ちの間にLintianのチェックが
強化
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 30

再チャレンジ
✓ 2014/09頃
✓ Jessieの足音が聞こえはじめた
✓ やまねさんによる「進捗どうです
か」
✓ このときGroongaは4.0.5
空白期間があるのはお察しください
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 31

再びreject
✓ 2014/10/10
✓ ftp-masterのチェックまで約1ヶ月
✓ またしてもdebian/copyrightの不備
✓ Sphinxのバンドルしているjsへの言
及が漏れていた
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 32

再々チャレンジ
✓ 2014/10/15頃
✓ このときGroongaは4.0.6
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 33

祝Debian入り
✓ 2014/10/21
✓ 経緯をざっくりまとめ
✓ Debianでパッケージを
リリースできるようにしたい
- そしてDebianへ
http://www.clear-code.com/blog/2014/10/31.html
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 34

Cowbuilderについてまとめ
✓ Ubuntuでdebパッケージの
お手軽クリーンルーム
ビルド環境を構築するには
http://www.clear-code.com/blog/2014/11/21.html
✓ ディスク容量がカツカツでない
ならpbuilderよりcowbuilderお
すすめ
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 35

Piupartsについてまとめ
✓ Ubuntuでdebパッケージの
テストをするには
http://www.clear-code.com/blog/2014/12/1.html
✓ cowbuilder & lintian &
piupartsのコンボがおすすめ
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 36

Debianでの教訓
✓ debian/copyrightは入念にチ
ェックを
✓ licensecheck -rおすすめ
✓ New Queueに入ってからが勝負
✓ ftp-master待ちの間にlintian強
化➜rejectのコンボでも泣かな
い
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 37

Groonga on ARM
✓ armhfをサポートできるように
(wheezyは除く)
✓ porterbox(ipa.debian.net)を借
りた
✓ Groonga on ARM
http://qiita.com/kenhys/items/e42e943ee49e5105eb4b
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 38

Cutterとは
Cutterとは

Page: 39

Cutterとは
✓ 書きやすさを重視したC/C++向け
テスティングフレームワークの
ひとつ。
✓ Debianでは簡単にインストール
% apt-get install -y cutter-testing-framework
✓ ただし、バージョンがやや古い
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 40

Cutterを
Fedora入りさせた動機(1)
✓ すでにFedoraにGroongaはあった
✓ でも毎月リリースに追従してい
ない
✓ Fedora公式でメンテしていく方
向性にしたい
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 41

Cutterを
Fedora入りさせた動機(2)
✓ まずは実績を積もう
✓ 何か新規パッケージで予行演習
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 42

はじめにすること
✓ specとSRPMを用意
✓ BugzillaへのReview Request
✓ FE-NEEDSPONSORフラグを立てて
スポンサーを募る
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 43

Cutterの場合
✓ 2012/12/17
✓ Review Requestを投げた
https://bugzilla.redhat.com/show_bug.cgi?id=887778
✓ Fedora 17の時代
✓ このときのCutterは1.2.2
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 44

スポンサー獲得
✓ 2012/12/18
✓ なぜか速攻でスポンサーがついた
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 45

レビューの一つの壁
✓ スポンサーを探すこと
✓ スポンサー権限のないレビュー
はunofficial扱い
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 46

スポンサーがついたら
✓ レビューと修正のくりかえし
✓ DebianでいうDDとのやりとり
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 47

レビューを通ったら?
✓ 2013/02/05
✓ SCMリクエストを投げる
✓ パッケージのリポジトリを作成してもらう
✓ 晴れてpackagerになれる
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 48

リリース!
✓ 2013/02/09
✓ testing送りに
✓ 2013/02/18
✓ Fedora 18でリリース
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 49

権限についておさらい
✓ contributor
✓ packager
✓ sponsor
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 50

Contributor
✓ FASアカウントを保持
✓ Bugzillaアカウントを保持
✓ Review Requestを投げる
✓ Package Maintainer相当
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 51

Packager
✓ contributorより進化
✓ packagerグループに所属
✓ パッケージのオーナーになれる
✓ コミットできる
✓ アップロードまでできる
✓ Debian Maintainer相当
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 52

Sponsor
✓ 新規packagerを追加できる
✓ 新人のメンターを務める
✓ 正式なレビューをする
✓ Debian Developer相当
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 53

オーナー制度
✓ packagerはパッケージの
オーナーになれる
✓ 共同メンテナの承認
✓ より幅広い権限をあたえられる
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 54

新規パッケージまとめ
✓ Fedoraプロジェクトで
新規パッケージをリリースする
方法
http://www.clear-code.com/blog/2013/4/10.html
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 55

パッケージ更新方法まとめ
✓ Fedoraプロジェクトで
パッケージを更新するには
http://www.clear-code.com/blog/2013/7/17.html
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 56

groonga-normalizer-mysqlとは
groonga-normalizer-mysqlとは

Page: 57

groonga-normalizer-mysqlと
は
✓ Groongaに機能追加する
プラグイン
✓ MySQLと同様の正規化を
可能にする
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 58

groonga-normalizer-mysqlの
場合
✓ 2013/04/26
✓ Review Requestを投げた
https://bugzilla.redhat.com/show_bug.cgi?id=957053
✓ このときのバージョンは1.0.3
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 59

最新に追従してRequest
✓ 2013/05/29
✓ スポンサーなし
✓ このときのバージョンは1.0.4
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 60

更新に追従再び
✓ 2013/07/04
✓ スポンサーなし
✓ このときのバージョンは1.0.5
✓ rpmlintの結果をアピール
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 61

スポンサー見つかる
✓ 2013/07/28
✓ レビュー開始
✓ %dir修正
✓ ExclusiveArch修正
✓ etc...
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 62

レビュー承認
✓ 2013/08/07
✓ SCMリクエスト
✓ 即日リポジトリが用意された
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 63

リリース!
✓ 2013/08/13
✓ パッケージをtesting送りに
✓ 2013/08/23
✓ Fedora 19でリリース
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 64

パッケージが
リリースされるまで(1)
✓ ソースのアップロード
✓ spec更新
✓ ブランチごとにビルド on Koji
(麹)
✓ testingに送る
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 65

パッケージが
リリースされるまで(2)
✓ Karmaを集めよう
✓ Karma集ったらリリース
✓ 一定期間経過でリリース
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 66

Fedoraでの教訓
✓ スポンサー探しが肝心
✓ rpmlintの結果まで示すと反応が
良いかも
✓ スポンサー待ち以外は速いサイ
クル
✓ あの人は今がよくある
音信不通になるのよくない
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 67

宣伝
✓ コードリーダー育成支援サービ
ス
http://www.clear-code.com/services/code-reader/
✓ チームの全員が自然と
リーダブルコードを書くような文化
にする
✓ コードから学び合う開発チーム作り
を支援する
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 68

おまけ
✓ 昇華プリント用転写紙配布中
✓ アイロンプリントできます
✓ オリジナルTシャツに
✓ Groonga,Mroonga,Rroonga,Droongaも
あるよ
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Page: 69

最後に
Any Questions?
DebianとFedoraでパッケージをリリースするまでの話
Powered by Rabbit 2.1.4

Other slides