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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Mitsutoshi NAKANO
August 17, 2014
Technology
90
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
330
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
110
Tests and bugreports
mitsutoshinakano
0
45
When I investigated the problem of crashing Google Chrome, I met the bug in libgcrypt.
mitsutoshinakano
0
120
Other Decks in Technology
See All in Technology
次世代ランサムウェア対策の考察 / 20260704 Mitsutoshi Matsuo
shift_evolve
PRO
5
1.7k
しぶいSRE: サーバから見えない障害にどう向き合うか。ラストワンマイルのデバッグ実践 / Shibui SRE
kanny
12
5.5k
証券システムを10年Scalaで作り続けるということ - 関数型まつり2026
krrrr38
3
790
AIで政治は変わるのか? — 中高生と考えたAI時代の民主主義(東海高校サタデープログラム)
eitarosuda
0
410
[2026-07-15] AI Ready なはずだったアーキテクチャと、見えてきた課題・次に目指す状態
wxyzzz
2
580
AWS Blocks を触ってみた/first-tach-aws-blocks
fossamagna
2
150
Control Planeで育てるBtoB SaaSの認証基盤 - SRE NEXT 2026
pokohide
1
2k
美しいコードを書くためにF#を学んでみた話
yud0uhu
1
390
AIに「使われる」時代のSaaS戦略 〜既存WebAPIのMCPサーバー化における開発ノウハウ〜
ekispert_api
0
300
SREとQA 二人三脚で進めるSLO運用/sre-qa-slo
sugitak
0
110
product engineering with qa
nealle
0
150
AI時代における最適なQA組織の作り方
ymty
3
490
Featured
See All Featured
sira's awesome portfolio website redesign presentation
elsirapls
0
300
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
GitHub's CSS Performance
jonrohan
1033
470k
The untapped power of vector embeddings
frankvandijk
2
1.8k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Making Projects Easy
brettharned
120
6.7k
How STYLIGHT went responsive
nonsquared
100
6.2k
Accessibility Awareness
sabderemane
1
150
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
300
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
410
Utilizing Notion as your number one productivity tool
mfonobong
4
350
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 の世界 • 逆に考えるんだ ! • 活躍の場はかえって大きいと言えるんじゃね ? • お気に入りのソフトを見つけてソースを追っか けてみるといいよ。 !
最後に •ソースは友達 !
参考資料 •