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