Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
I want to package The etckeeper to The openSUSE...
Search
Mitsutoshi NAKANO
August 17, 2014
Technology
93
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
180
Managed your slides by Git and upload them
mitsutoshinakano
0
230
I want to package The etckeeper to The openSUSE (version 2).
mitsutoshinakano
0
120
Tests and bugreports
mitsutoshinakano
0
52
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
OpenClawでAzure DevOpsのWiki更新を自動化する - クラウドAIだけでは届かない場所へ
yutakaosada
0
140
AI Native Platform Engineering 〜PlatformとAgileで“作る速さ”を“価値”へ〜
uya116
0
590
The seven pitfalls of AI (revised version)
ufried
0
170
AI駆動開発で仕様はどこまで書くべきか? ― 人とAIの責務境界から考える開発プロセスの実践
takahiromatsui
1
280
1人アドミンな私はAWSアカウント申請をSlackで完結したい!
ysuzuki
0
110
カンファレンスに参加した後の浮遊感とセルフケア
pauli
0
290
Claude起点の仕様駆動開発
tanakaseiya
0
280
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
310
検証フェーズはAIの回答を判断するための学習機会
toru_kubota
2
210
20260930_Gemma4_Hands-on
tsho
0
200
MCPゲートウェイを作って運用してわかったこと — Agent時代の権限管理の現在地
mtpooh
9
2.6k
Databricksメトリクスビューはじめてのもくもく会
taka_aki
0
150
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
350
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
550
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
Optimising Largest Contentful Paint
csswizardry
37
4k
New Earth Scene 8
popppiees
4
2.6k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
540
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
540
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
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 の世界 • 逆に考えるんだ ! • 活躍の場はかえって大きいと言えるんじゃね ? • お気に入りのソフトを見つけてソースを追っか けてみるといいよ。 !
最後に •ソースは友達 !
参考資料 •