debexpoを ハックするには - rabbit slide show...2016/06/25 · ハックするには how to...
TRANSCRIPT
![Page 1: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/1.jpg)
debexpoをハックするには
debexpoをハックするには
How to hack mentors.d.n
Kentaro HayashiClearCode Inc.
TokyoDebian, 140th
2016-06-25
![Page 2: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/2.jpg)
自己紹介(1)
Twitter/GitHub: @kenhys
所属: トラックポイント・ソフトドーム派
![Page 3: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/3.jpg)
自己紹介(2)
トラックポイント・ソフトドーム派
![Page 4: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/4.jpg)
参考画像の出典
http://www.irasutoya.com/
![Page 5: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/5.jpg)
閑話休題
そろそろ本題へ
![Page 6: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/6.jpg)
今日の話
debexpoとは?
なぜdebexpoをハックする必要が?
どうやってハックしたのか?
![Page 7: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/7.jpg)
今日の話
debexpoとは?
なぜdebexpoをハックする必要が?
どうやってハックしたのか?
![Page 8: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/8.jpg)
debexpoとは?
mentors.d.nを支えるウェブアプリケーション
リポジトリ名がdebexpo
![Page 9: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/9.jpg)
mentors.d.nとは?
http://mentors.debian.net
![Page 10: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/10.jpg)
debexpoの由来
The new project was called "debexpo" because it was supposed to become an exposition for Debian packages.
[「https://workaround.org/project/debexpo」より引用]
![Page 11: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/11.jpg)
ゆるキャラも
名前は不明。知っていたら教えてください。
![Page 12: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/12.jpg)
debexpo概要
Python製
Pylonsフレームワーク採用
テンプレートエンジンはMako
![Page 13: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/13.jpg)
Pylonshttp://www.pylonsproject.org/
Railsっぽいフレームワーク
2011年にメンテナンスモード入り
後継はPyramidに
![Page 14: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/14.jpg)
debexpoの歴史(1)
2003年
最初はPerlで書かれていた
その後、Pythonで書き直し
![Page 15: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/15.jpg)
debexpoの歴史(2)
2008年
Google SoCで開発が進む
2009-2010年
http://expo.debian.net/ 運用開始
2011年 そしてmentors.d.nへ
![Page 16: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/16.jpg)
debexpoの役割
ITP,RFSのためのアップロード先
non-DDはパッケージを直接アップロードできない
スポンサーが必要
![Page 17: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/17.jpg)
ITP,RFSのおさらい
mentors.d.nの使いかた ITP編/RFS編
![Page 21: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/21.jpg)
mentors.d.nの使いかた RFS編(2)
レビュー & 修正 & dput
DDによるupload
![Page 22: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/22.jpg)
mentors.d.nオススメ
パッケージのチェックもしてくれる
RFSのテンプレートも生成してくれる
![Page 23: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/23.jpg)
mentors.d.nオススメ
パッケージのチェックもしてくれる
RFSのテンプレートも生成してくれる
![Page 24: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/24.jpg)
チェック結果がみれる
lintianの警告とか
![Page 25: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/25.jpg)
mentors.d.nオススメ
パッケージのチェックもしてくれる
RFSのテンプレートも生成してくれる
![Page 26: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/26.jpg)
RFSのテンプレート生成
あとはメールするだけ(※)
![Page 27: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/27.jpg)
今日の話
debexpoとは?
なぜdebexpoをハックする必要が?
どうやってハックしたのか?
![Page 28: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/28.jpg)
mentors.d.nが
オススメな理
由
![Page 29: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/29.jpg)
(再)mentors.d.nがオススメな理由
RFSテンプレート生成
あとはメールを出すだけ
![Page 30: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/30.jpg)
(再)mentors.d.nがオススメな理由
RFSテンプレート生成
あとはメールを出すだけ
と言ったが、あれは嘘だ
![Page 31: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/31.jpg)
論より証拠
実際のRFS templateをお見せしよう
![Page 32: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/32.jpg)
証拠物件(1)
[fill in]の文字がちらほら
![Page 33: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/33.jpg)
証拠物件(2)
ほかにも穴埋めが必要
![Page 34: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/34.jpg)
編集すべき箇所
いくつかあるので紹介
![Page 35: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/35.jpg)
編集すべき箇所(1)
Subject:に種別を書け
![Page 36: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/36.jpg)
編集すべき箇所(2)
Severity:を書け
![Page 37: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/37.jpg)
編集すべき箇所(3)
Upstream,URL,License:を書け
![Page 38: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/38.jpg)
編集すべき箇所(4)
Changelogを書け
![Page 39: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/39.jpg)
これで終
わり?
![Page 40: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/40.jpg)
編集すべき箇所(5)
さりげなく埋めこまれたhelloとexample.com
![Page 41: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/41.jpg)
これでメー
ルが出せる
![Page 42: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/42.jpg)
先頭に埋めこまれた
スペース2つ
コマンドメールであることを思いだそう
もちろんエラーになります
![Page 43: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/43.jpg)
Q. なぜdebexpoをハックするのか?
A. RFSテンプレートの残念っぷりをどうにかしたい
![Page 44: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/44.jpg)
同じ思いの人はいた
Aliothのtrackerで4年も前に通った道
![Page 45: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/45.jpg)
今日の話
debexpoとは?
なぜdebexpoをハックする必要が?
どうやってハックしたのか?
![Page 46: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/46.jpg)
あらすじ
upstream探し
ドキュメント探し
まずは動かしてみる
あたりをつけて修正
そしてPRへ
![Page 47: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/47.jpg)
特別なことは何も
よくあるフリーソフトウェアの修正
![Page 48: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/48.jpg)
あらすじ
upstream探し
ドキュメント探し
まずは動かしてみる
あたりをつけて修正
そしてPRへ
![Page 49: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/49.jpg)
upstream探し(1)
mentors.d.n下部にリンクがきちんとある
aliothをみればいいとわかる
![Page 50: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/50.jpg)
upstream探し(2)
最近はコミットがない
![Page 51: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/51.jpg)
ちょっと不安に
よく使われているならそこそこメンテされているイメージ
実際にはそうでもなかった
![Page 52: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/52.jpg)
upstream探し(3)
GitHubのほうが実は新しい
https://github.com/debexpo/debexpo
![Page 53: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/53.jpg)
upstream探し(4)
aliothがmaster
https://alioth.debian.org/projects/debexpo/
GitHubのをマージという運用
![Page 54: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/54.jpg)
あらすじ
upstream探し
ドキュメント探し
まずは動かしてみる
あたりをつけて修正
そしてPRへ
![Page 55: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/55.jpg)
ドキュメント探し
docs/*にドキュメントが整備
docs/installing.rstを参照
リンク先が404なこともあるので注意
![Page 56: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/56.jpg)
あらすじ
upstream探し
ドキュメント探し
まずは動かしてみる
あたりをつけて修正
そしてPRへ
![Page 57: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/57.jpg)
まずは動かしてみる
セットアップ方法は3種
既存システムにインストール
virtualenvでインストール
VirtualBoxでインストール
![Page 58: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/58.jpg)
まずはVirtualBoxで
環境を分けたいのでVirtualBoxを選択
![Page 59: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/59.jpg)
Vagrantfileがアレ
# Every Vagrant virtual environment requires a box to build off of.config.vm.box = "chef/debian-7.6"
Debian 7.6 (2014年7月12日)?
Debian 7.10でてるよ?
![Page 60: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/60.jpg)
vagrant upしてみると
% vagrant upBringing machine 'default' up with 'virtualbox' provider...==> default: Box 'chef/debian-7.6' could not be found. Attempting to find and install... default: Box Provider: virtualbox default: Box Version: >= 0The box 'chef/debian-7.6' could not be found orcould not be accessed in the remote catalog. If this is a privatebox on HashiCorp's Atlas, please verify you're logged in via`vagrant login`. Also, please double-check the name. The expandedURL and error message are shown below:
URL: ["https://atlas.hashicorp.com/chef/debian-7.6"]Error: The requested URL returned error: 404 Not Found
boxが見つからなくてコケる
![Page 61: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/61.jpg)
PR#32で修正
Bento projectに移行していたせいだった
![Page 62: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/62.jpg)
起動してログインするまで
$ vagrant up --provision$ vagrant ssh
よくあるやりかた
![Page 63: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/63.jpg)
vagrant sshしてサーバーを起動
$ cd debexpo$ . venv/bin/activate$ paster serve development.ini
![Page 64: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/64.jpg)
5000ポートでサーバー起動
ブラウザでアクセス可能に
![Page 65: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/65.jpg)
ユーザーの追加(1)
方法は2つある
ブラウザ経由で追加
JSONで追加
![Page 66: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/66.jpg)
ユーザーの追加(2)
ブラウザ経由で追加
![Page 67: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/67.jpg)
ユーザーの追加(3)
JSONで追加するなら
{ "realname":"Hayashi Kentaro", "password":"password", "email":"[email protected]"}
![Page 68: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/68.jpg)
ユーザーの追加(4)
追加用のスクリプトを利用
$ python ./bin/user_importer.py \-i development.ini -u user.json
![Page 69: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/69.jpg)
アカウントの有効化
verification (ログインに必要)
dmup (アップロードに必要)
![Page 70: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/70.jpg)
verificationの設定
verificationを空にする
メールの確認をバイパス
![Page 71: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/71.jpg)
DMUP?
マシン使用ポリシーのこと
![Page 72: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/72.jpg)
dmupの設定
dmupフィールドを更新
同意したことにする
![Page 73: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/73.jpg)
.dput.cfの設定をする
[debexpo]fqdn = localhost:5000incoming = /upload/[email protected]/passwordmethod = httpallow_unsigned_uploads = 0
アップロードの準備をする
![Page 74: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/74.jpg)
試しにパッケージを
アップロード
Uploading to debexpo (via http to localhost:5000):Uploading groonga_6.0.2-1.dsc:Upload failed: 500 Internal Server Error
500 Internal Server Error
![Page 75: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/75.jpg)
さっそくバグを踏む
あるべきディレクトリがないというオチ
![Page 76: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/76.jpg)
PR#34で修正
ちゃんとディレクトリを作る
![Page 77: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/77.jpg)
PR出して気づいた怖い話
最後にテストが通ったの8ヶ月前
![Page 78: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/78.jpg)
なぜか?
Travis-CIの環境の変化
しばらくコミットされてないので誰も気づかない
![Page 79: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/79.jpg)
PR#38で修正
テストが通るように
![Page 80: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/80.jpg)
PR#37で修正
Python2.6でCIはもういいんじゃ
![Page 81: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/81.jpg)
パッケージのとりこみ
$ ./bin/debexpo_importer.py \-c /tmp/debexpo/growl-for-linux_0.8.5-1_source.changes \-i development.ini --skip-gpg-check --skip-email
インポートスクリプト実行
![Page 82: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/82.jpg)
とりこみできずにTraceback
Traceback (most recent call last):File "./bin/debexpo_importer.py", line 60, ini.main()File "/home/vagrant/debexpo/debexpo/importer/importer.py", line 473, in maingpg = get_gnupg()File "/home/vagrant/debexpo/debexpo/lib/utils.py", line 119, in get_gnupgreturn gnupg.GnuPG(config['debexpo.gpg_path'],File "/home/vagrant/debexpo/venv/local/lib/python2.7/site-packages/paste/registry.py", line 146, in getitemreturn self._current_obj()[key]KeyError: 'debexpo.gpg_path'
![Page 83: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/83.jpg)
PR#39で修正
オプションを正しく解釈するように
![Page 84: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/84.jpg)
パッケージリスト
リストアップされるように
![Page 85: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/85.jpg)
あらすじ
upstream探し
ドキュメント探し
まずは動かしてみる
あたりをつけて修正
そしてPRへ
![Page 86: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/86.jpg)
ディレクトリ構成
configcontrollerscronjobsimporteri18nlibmodelpluginspublictemplatestests
![Page 87: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/87.jpg)
手がかりはURL
知りたいのはこのリンク
![Page 88: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/88.jpg)
こんなリンク先
http://localhost:5000/sponsors/rfs-howto/xxxx
![Page 89: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/89.jpg)
コントローラを探す
def rfs_howto(self, packagename = None):
c.package = None c.package_dir = None if packagename: package = meta.session.query(Package) .filter_by(name=packagename).first() if package: c.package = package c.package_dir = get_package_dir(package.name)
return render('/sponsor/rfs_howto.mako')
controllers/sponsor.py
![Page 90: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/90.jpg)
テンプレートを見る
Package: sponsorship-requestsSeverity: normal [important for RC bugs, wishlist for new packages]
Dear mentors,
%if c.package: I am looking for a sponsor for my package "${ c.package.name }"%else: I am looking for a sponsor for my package "hello":%endif
templates/sponsor/rfs_howto.mako
![Page 91: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/91.jpg)
やりたいこと
RFSテンプレートから
[fill in]撲滅
mailto:リンクの生成
![Page 92: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/92.jpg)
当初の目論見
${ c.package.name }とかあるぞ
テンプレートを書き換えればいいのでは?
![Page 93: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/93.jpg)
無理で
した
![Page 94: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/94.jpg)
なぜか?
必要なメタ情報を保持していない
持ってないものは表示できない orz...
ないならかき集めればいいじゃない
![Page 95: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/95.jpg)
収集するにはどうすればい
いか
インポートの処理の流れを把握する
どのタイミングで収集すべきか知る
不足している情報は何かを知る
![Page 96: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/96.jpg)
インポート処理の流れ(1)
dputでmentors.d.nへアップロード
インポート前処理
パッケージのインポート処理
![Page 97: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/97.jpg)
インポート処理の流れ(2)
もう少し詳しく言うと
dputしたファイルは/tmp/debexpo/pubへ保存
インポート前処理で/tmp/debexpoヘ移動
orig.tar.gzがなかったりするとrejectメール
![Page 98: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/98.jpg)
インポート処理の流れ(3)
もう少し詳しく言うと
インポート処理で/tmp/debexpo/filesへ移動
/tmp/debexpo/files以下
pool
dist
git
![Page 99: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/99.jpg)
収集すべきデータは?
現状、メタ情報はどう保持されているのかを把握する
テーブルを覗いてみよう
![Page 100: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/100.jpg)
主要なテーブル
主なものは3つ
packages
package_versions
package_info
![Page 101: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/101.jpg)
packagesテーブル
パッケージのマスターテーブル
名前や説明などのメタ情報を保持
![Page 102: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/102.jpg)
packagesテーブル
sqlite> .schema packagesCREATE TABLE packages ( id INTEGER NOT NULL, name TEXT NOT NULL, user_id INTEGER, description TEXT, watch_counter INTEGER, download_counter INTEGER, needs_sponsor INTEGER NOT NULL, PRIMARY KEY (id), FOREIGN KEY(user_id) REFERENCES users (id));
![Page 103: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/103.jpg)
package_versionsテーブル
パッケージの版管理
何度もアップロードすると増加
![Page 104: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/104.jpg)
package_versionsテーブル
sqlite> .schema package_versionsCREATE TABLE package_versions ( id INTEGER NOT NULL, package_id INTEGER, version TEXT NOT NULL, maintainer TEXT NOT NULL, section TEXT NOT NULL, distribution TEXT NOT NULL, qa_status INTEGER NOT NULL, component TEXT NOT NULL, priority TEXT, closes TEXT, uploaded DATETIME NOT NULL, PRIMARY KEY (id), FOREIGN KEY(package_id) REFERENCES packages (id));
![Page 105: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/105.jpg)
package_infoテーブル
プラグインの適用結果を管理
メタ情報を保持
![Page 106: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/106.jpg)
package_infoテーブル
sqlite> .schema package_infoCREATE TABLE package_info ( id INTEGER NOT NULL, package_version_id INTEGER, from_plugin VARCHAR(200) NOT NULL, outcome VARCHAR(200) NOT NULL, data TEXT, severity INTEGER NOT NULL, PRIMARY KEY (id), FOREIGN KEY(package_version_id) REFERENCES package_versions (id));
![Page 107: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/107.jpg)
package_infoテーブル
from_plugin
どのプラグインか
outcome
説明文(エラーメッセージ)
data
JSONデータ
![Page 108: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/108.jpg)
package_infoの例
sqlite> select * from package_info;1|1|native|Package is not native|{"native": false}|12|1|maintaineremail|"Maintainer" email is the same as the uploader|{ "user-email": "[email protected]", "uploader-emails": [], "maintainer-email": "[email protected]", "user-is-maintainer": true}|13|1|debianqa|Package is already in Debian|{ "nmu": false, "in-debian": true, "is-debian-maintainer": true}|1
![Page 109: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/109.jpg)
やりたいこと
RFSテンプレートから
[fill in]撲滅
mailto:リンクの生成
![Page 110: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/110.jpg)
修正方針
プラグインで追加のメタ情報を収集
メール用のテンプレート追加
詳細ページでメタ情報を表示しつつmailto:リンク生成
![Page 111: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/111.jpg)
プラグイン?
debexpoはプラグインで機能拡張する
パッケージのチェックもプラグインを組み合わせて実現
![Page 112: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/112.jpg)
プラグインの作り方
docs/writing_plugins.rst
![Page 113: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/113.jpg)
プラグインの雛形
class FooPlugin(BasePlugin):
def test_xxx(self): self.passed(outcome, data, severity) or self.failed(outcome, data, severity)plugin = FooPlugin
debexpo/plugins/foo.py
![Page 114: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/114.jpg)
プラグインいろいろ
% wc -l debexpo/plugins/*.py 99 debexpo/plugins/buildsystem.py 67 debexpo/plugins/changeslist.py141 debexpo/plugins/closedbugs.py 85 debexpo/plugins/controlfields.py185 debexpo/plugins/debianqa.py 85 debexpo/plugins/diffclean.py 63 debexpo/plugins/distribution.py123 debexpo/plugins/getorigtarball.py116 debexpo/plugins/lintian.py100 debexpo/plugins/maintaineremail.py 69 debexpo/plugins/native.py 77 debexpo/plugins/notuploader.py 86 debexpo/plugins/removepackage.py 60 debexpo/plugins/ubuntuversion.py110 debexpo/plugins/watchfile.py
![Page 115: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/115.jpg)
プラグインの適用方法
設定ファイル(.ini)で制御
インポート前処理
QA処理
Debian入りした時
インポート処理後
![Page 116: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/116.jpg)
プラグインを設定(1)
debexpo.plugins.post_upload
インポート前処理で適用
getorigtarballプラグイン
![Page 117: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/117.jpg)
プラグインを設定(2)
debexpo.plugins.qa
QA処理で適用
lintianプラグイン
![Page 118: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/118.jpg)
プラグインを設定(3)
debexpo.plugins.post_upload_to_debian
パッケージがDebian入りしたときに適用
removepackageプラグイン
![Page 119: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/119.jpg)
プラグインを設定(4)
debexpo.plugins.post_successful_upload
インポート処理後に適用
changeslistプラグイン
![Page 120: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/120.jpg)
プラグインの書きかた
なんとなくわかったのでいざ実践へ
![Page 121: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/121.jpg)
やったこと
プラグインの処理を実装
プラグインを適用
mailto用テンプレート追加
rfstemplateのデータを表示
![Page 122: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/122.jpg)
プラグインの処理を実装
debexpo/plugins/rfstemplate.pyを実装
実質100行ないくらい
debian/changelogやdebian/controlから抽出
deb822, copyrightモジュールを活用
![Page 123: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/123.jpg)
プラグインを適用
debexpo.plugins.qa = ... rfstemplate ...
development.iniに設定
![Page 124: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/124.jpg)
mailto用テンプレート追加
%if c.rfstemplate: Upstream Author : ${ c.rfstemplate['upstream-author'] }* URL : ${ c.rfstemplate['upstream-url'] }* License : ${ c.rfstemplate['upstream-license'] }%else: Upstream Author : [fill in name and email of upstream]* URL : [fill in URL of upstreams web site]* License : [fill in]%endif
debexpo/templates/sponsor/rfs_template.mako
![Page 125: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/125.jpg)
rfstemplateのデータを表示
if latest: rfstemplate = meta.session.query(PackageInfo) .filter_by(package_version_id=latest.id) .filter_by(from_plugin='rfstemplate').first() if rfstemplate: c.rfstemplate = json.loads(rfstemplate.data) c.mailbody = render('/sponsor/rfs_template.mako')return render('/sponsor/rfs_howto.mako')
debexpo/controllers/sponsor.py
![Page 126: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/126.jpg)
実際に
デモ
![Page 127: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/127.jpg)
成果物をPR#35で出した
https://github.com/debexpo/debexpo/pull/35
![Page 128: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/128.jpg)
PR#35の経過(1)
May 4
@olasdさんから好意的な反応
May 14
どうなった?とつついてみるも反応なし
![Page 129: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/129.jpg)
PR#35の経過(2)
May 21
Debian勉強会でまだマージされてない話をする
あれやこれやでしばし放置
![Page 130: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/130.jpg)
PR#35の経過(3)
June 19
@paulproteusさんをつついてみる
June 19
20日にみれるかもと@paulproteusさんから反応あり
![Page 131: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/131.jpg)
PR#35の経過(4)
どうもDebConf16待ち
![Page 132: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/132.jpg)
まとめ
debexpoとはmentors.d.nのこと
RFSテンプレートが残念だったので改善した
そのうちマージされる(多分)ので乞御期待
![Page 133: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/133.jpg)
補足
マージへ向けた懸念事項
mentors.d.nは運用環境がwheezyらしい
wheezyのままならrejectされるかも
実装したプラグインがwheezyでは動かない(0.1.23以降が必要)
wheezyではpython-debianが古い(0.1.21)
jessieなら0.1.27なので動作する
![Page 134: debexpoを ハックするには - Rabbit Slide Show...2016/06/25 · ハックするには How to hack mentors.d.n Kentaro Hayashi ClearCode Inc. TokyoDebian, 140th 2016-06-25 自己紹介(1)](https://reader033.vdocuments.site/reader033/viewer/2022042317/5f06628a7e708231d417bab8/html5/thumbnails/134.jpg)
会場からのフィードバック
メールのリンクをもっと目立たせたほうがよいのでは
=> その通りなので直しておきたい