Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
I want to package The etckeeper to The openSUSE...
Search
Mitsutoshi NAKANO
August 17, 2014
Technology
91
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
I want to package The etckeeper to The openSUSE (version 1).
Mitsutoshi NAKANO
August 17, 2014
More Decks by Mitsutoshi NAKANO
See All by Mitsutoshi NAKANO
FreeWnn に patch が送られてきた、どうしよう
mitsutoshinakano
1
340
What is LPIC
mitsutoshinakano
0
170
Managed your slides by Git and upload them
mitsutoshinakano
0
220
I want to package The etckeeper to The openSUSE (version 2).
mitsutoshinakano
0
120
Tests and bugreports
mitsutoshinakano
0
49
When I investigated the problem of crashing Google Chrome, I met the bug in libgcrypt.
mitsutoshinakano
0
130
Other Decks in Technology
See All in Technology
長期運営で肥大化したExcelマスターデータの解消に向けた移行事例
gree_tech
PRO
0
360
【CEDEC2026】Creative Approaches to Localizing the Dialects and Unique Speech of Umamusume: Pretty Derby Characters in English
cygames
PRO
4
26k
地震情報アプリを作ってみた
yama3133
1
110
アクセスキーが漏れた日にやるべきこと- 無効化の先にある本当の対応
kazzpapa3
0
280
フィジカルAIの知識ゼロの僕でも AIを使えばここまでできた
tatsuya1970
0
160
NANDでも描画したい!
nichica906
3
630
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
270
Adding Right-to-Left support to your web application with CSS logical properties — Lessons from Redmine
vividtone
0
180
猫付きpingコマンドを自作
uyuki234
0
300
MIXIで活躍できるエンジニアを 若手社員目線で考えてみる
mixi_engineers
PRO
0
140
AI-DLC実践録_フルサイクル開発への挑戦
miyuc
0
400
あなたの知らないバージョン命名規則
sat
PRO
2
390
Featured
See All Featured
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
470
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
Crafting Experiences
bethany
1
260
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
660
Into the Great Unknown - MozCon
thekraken
41
2.7k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
390
Deep Space Network (abreviated)
tonyrice
0
270
Chasing Engaging Ingredients in Design
codingconduct
0
280
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
710
A better future with KSS
kneath
240
18k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
440
Transcript
etckeeper を openSUSE の公式リポ ジトリに入れたいぞ ! @ItSANgo
Who am I • @ItSANgo • http://d.hanena.ne.jp/Itisango/ • http://mixi.jp/show_profile.pl?id=789759 •
http://www.facebook.com/profile.php?id=1000 05833863069 • TOEIC 355 点 ( 有意性切れてます ) • 英語は話せない ( はず )
何を話すか • etckeeper について • 6 月から今日までに起こったことをかいつまん で • というか、資料作るの間に合わんかった
!
etckeeper って何 • Joey Hess が書いたユーティリティ • http://joeyh.name/code/etckeeper/ • /etc
の下を (git など )VCS で管理 • /etc をいじったら、手動で起動 • cron で自動起動 • YUM/APT と連携、自動起動 • おかしくなったら旧バージョンと見比べてトラブルシュー ト • @_hito_ さんもおすすめ • http://www.amazon.co.jp/dp/4048866877 • Debian/Ubuntu/Fedora で公式リポジトリに入っている
でも • openSUSE の公式リポジトリにはない • 非公式 (utilities) リポジトリにはある。 • いちいち非公式リポジトリから取ってくるのも
面倒 ? • なら、公式リポジトリに入れてもらえるようお 願いすればいいんじゃね ?
お願いするにはどうすればいいの • Debian の RFP(Request For Package) みたいな のあるのかな ?
• とりあえず日本語 ML で訊いてみた • http://lists.opensuse.org/opensuse-ja/2014-06/msg 00031.html • 回答 : http://lists.opensuse.org/opensuse-ja/2014-06/msg 00032.html
openFATE という方法と opensuse- factory ML があるらしい • openFATE (https://features.opensuse.org/) •
package リクエストの投票システムのようなもの • あまり機能していないらしい • openSUSE Factory (http://ja.opensuse.org/Factory_Distribution) • 要するに開発版 • opensuse-factory ML • openSUSE Factory について議論する ML
opensuse-factory ML に投げてみた • http://lists.opensuse.org/opensuse-factory/201 4-06/msg00068.html
速攻で返事が返ってくる • http://lists.opensuse.org/opensuse-factory/201 4-06/msg00069.html Greg Freemyer
超訳 ( 注 : TOEIC 355 点 ) • 君の文章は、誰か人に頼んでいる文体だけ
ど、 openSUSE はコミュニティなんだよ。 • 自分でやれ ! 言い出しっぺの法則 !!!
何から始めればいいか ? • とりあえずそれも、教えて君になって訊いてみ る。 • http://lists.opensuse.org/opensuse-factory/2014- 06/msg00071.html – openSUSE
Build Service のアカウントを取る。 ( 取得済み ) – パッケージに対して role( 役割 : メンテナ・バグオーナ ) を申請する。 • 今回は bug owner を申請した。 • パッケージに bug があったら連絡が来る ( 損な役回り ?) – パッケージを Factory へ submitrequest する。
イメージ • 第 1 回 Open Build Service 道場 (P.17
参照 ) • http://www.slideshare.net/ftake/1-open-build-service
速攻で decline されました orz • 機械的に decline の判断が下りました。 • どうも
spec ファイルが悪いらしい。 • utilities の etckeeper の version も 1.7 と古い。 • ( 当時 ) 最新は etckeeper-1.12 • なら、最新版に更新するか…
そして初めてソースを見ました • etckeeper はシェルスクリプト ( 他 ) の塊 • 一つのスクリプトは
100 行程度、小さい。 • etckeeper メインスクリプトがサブのスクリプトを呼び出 す。 – 全部で 133 ファイル ( ディレクトリ含む ) • サブスクリプトがメインスクリプトを再帰的に呼び出して たり…。 • そこそこ複雑。 • 意外な発見あり • 対応していないと思っていた機能があったり
対応していないと思っていた機能が • Debian(Ubuntu)/Fedora では APT/YUM を実行 した後、 etckeeper が自動起動する。 •
openSUSE では ZYpp を起動しても etckeeper はスルー • 仕様 ( 未対応 ) かと思っていたけど
あった • ls したら • zypper-etckeeper.py – あるやん ! (2012
年から ) – 今まで動いてなかっただけやん ! • bug でした。 • スクリプトに実行権限がついていませんでした。 • 実行権限をつけると動く。 – けど、まだなんかおかしい。 • upstream に pullrequest • 速攻で update されました w
ここでいきなり etckeeper の使い方 • Usage: etckeeper [subcommand] [args...] • eg.
etckeeper commit • /etc/etckeeper/[subcommand].d/ ディレクトリ 配下のスクリプトを順番に実行する。
じゃあ、こんなことをしてみたら • etckeeper ../init restart • デーモンを再起動しようとする w • 変じゃね
? • とりあえず、 [subcommand] に「 ../ 」が入っ ていないかチェックする処理を入れました。 • pullrequest しました。 • https://github.com/joeyh/etckeeper/pull/14
するとある方からご意見が • 超訳 ( 注 : TOEIC355 点 ) •
etckeeper のバグではなく、使い方の問題だろう。 • 「 ../ 」を禁止すべきではない。 • 裏ワザだって技だ ! それが UNIX だ ! alerque まさかの宗教戦争勃発か ?!
いきなりの緊張緩和 w • あっさり修正されました。 • pullrequest したコードよりもより厳しいチェッ クが入りました。 • egrep
'[^-a-z_]'
その後様々な修正が pullrequest さ れるのであった • その一部 • https://github.com/joeyh/etckeeper/pull/12 (decline) •
https://github.com/joeyh/etckeeper/pull/14 (merged) • https://github.com/joeyh/etckeeper/pull/15 (merged) (rpmlint) • https://github.com/joeyh/etckeeper/pull/16 (merged) (rpmlint) • https://github.com/joeyh/etckeeper/pull/17 (pending) • https://github.com/joeyh/etckeeper/pull/18 (pending) • 小さな変更は merge されるけど、大きな変更は pending に なってしまう。 • merge するとも decline とも伝えてくれない。 • mail には答えてもらえない。
ZYpp プラグインが遅い • 先述の実行権限をつけることで plugin は動き出した。 • でも遅い。 • zypper
が 30 秒でタイムアウトを起こす。 • 調べてみた • etckeeper は APT/YUM/ZYpp の動作前後でパッケージのリストを取得す る。 (rpm -qa を前後 2 回 ) – 差分を取って追加・削除されたパッケージを VCS の log に残す。 – これが遅い、 30 秒以上かかる。 • パッケージリストを log に残さない設定ができるように patch を書いた (pull/17) • upstream には取り込まれず (pending) • ひょっとすると openSUSE の rpm の bug かも ( 未調査 )
ZYpp だけでなく YUM にも対応し たい • openSUSE は ZYpp だけではなく
YUM にも一 応対応している。 • でも etckeeper は 2 つの packagemanager の混 在を想定していない。 • 修正を書いた (pull/18) • でも ( 変更が大きすぎて )upstream には取り込 まれず。
どうにか完成 • 2014 年 08 月 16 日 ( つまり昨日
) utilities に submitrequest • 2014 年 08 月 17 日 ( 今日 ) • utilities は accept – 変更は utilities プロジェクトに取り込まれました。 • 2014 年 08 月 17 日 • Factory へ submitrequest • 現在審査中
ところで Joey Hess ってどんな人 ? • http://joeyh.name/code/ • なんと debhelper
もこの人の作 • 多分お忙しいんですよね • dis ってごめんなさい
所感 • 言い出しっぺの法則こわい w • 英語が解らなくても何とかなる。 • 思ったよりいけてない ! •
意外と泥臭い FLOSS の世界 • 逆に考えるんだ ! • 活躍の場はかえって大きいと言えるんじゃね ? • お気に入りのソフトを見つけてソースを追っか けてみるといいよ。 !
最後に •ソースは友達 !
参考資料 •