Text
Page: 1
General Resolution:
tag2uploadは
Debianにどんな変化を
もたらすのか
GR: tag2uploadの内容をふんわり理解する
Kentaro Hayashi
ClearCode Inc.
2024年07月 東京エリア・関西合同Debian勉強会
Page: 2
スライドは
Rabbit Slide Showにて公開済み
General Resolution: tag2upload Debianにどんな変革をもたらすのか
https://slide.rabbit-shocker.org/authors/kenhys/tokyodebian-tag2upload-202407
Page: 3
本日の内容
DebianのGR: tag2uploadについて
tag2uploadはどういうものなのか
tag2uploadが議論となった背景
tag2uploadで解決される問題
Page: 4
本日の内容
DebianのGR: tag2uploadについて
tag2uploadはどういうものなのか
tag2uploadが議論となった背景
tag2uploadで解決される問題
Page: 5
General Resolution to deploy
tag2upload
https://www.debian.org/vote/2024/vote_002
Page: 6
General Resolution to deploy
tag2upload (1)
tag2uploadでDDやDMがgit-debpush(1)を使ってgit tagに署名してアップ
ロードできるようにする
tag2uploadをDebian公式なインフラへと組み込む
Debian憲章にもとづいて、tag2uploadサービスからのアップロードを信
頼できるものとして受け入れるようにする(ftpmasterはこの決定に従って
ね)
Page: 7
General Resolution to deploy
tag2upload (2)
tag2uploadの将来的な変更はGRとかじゃなくて通常のDebianの開発プロ
セスに則って実施するよ
この決定はメンテナに特定のgitでのワークフローを強制するものではな
いよ
Page: 8
GR: tag2upload, text of proposal
https://lists.debian.org/debian-vote/2024/06/msg00561.html
2024/06/27 Sean Whitton氏によってtag2uploadが提案がなされる
Sean Whitton氏やIan Jackson氏が中心になってtag2uploadのしくみを設計
Page: 9
General Resolution to deploy
tag2upload (要約)
tag2uploadはgit tagに署名されていたらそれをもとにソースパッケージ
のアップロードまで代行してくれるしくみを導入するもの
GRによってtag2uploadのしくみをftpmasterに採用してもらうことをね
らっている
GRによる解決を図るのはある意味最終手段
ftpmasterの方針をひっくり返すには(説得に失敗したら)GRしかない
Page: 10
GR: tag2uploadの最新情報
Re: General Resolution to deploy tag2upload
https://lists.debian.org/debian-vote/2024/07/msg00025.html
GRはSean氏によって撤回された
tag2uploadの仕様を変更することによりftpmasterとの合意形成できたため
Page: 11
本日の内容
DebianのGR: tag2uploadについて
tag2uploadはどういうものなのか
tag2uploadが議論となった背景
tag2uploadで解決される問題
Page: 12
MiniDebConf Cambridge 2023
tag2upload - uploads, made automatically and fully traceably, from git
MiniDebConf Cambridge 2023 (2023年11月開催)のプレゼンが参考になる
https://www.youtube.com/watch?v=1ohpZ4Xj0iQ
Page: 13
伝統的なパッケージの更新
https://www.youtube.com/watch?v=1ohpZ4Xj0iQ より引用
Page: 14
最近のパッケージの更新
https://www.youtube.com/watch?v=1ohpZ4Xj0iQ より引用
Page: 15
tag2uploadの導入でどうなるか
https://www.youtube.com/watch?v=1ohpZ4Xj0iQ より引用
Page: 16
tag2uploadの進行状況
✅ tag2uploadのしくみのデザイン
✅ git tagに署名するgit-debpushの実装
✅ dgitサーバーの稼働 (git.dgit.debian.org)
✅ ソースパッケージ(.dsc)を生成するしくみの実装
✅ tag2uploadのしくみのレビュー
Page: 17
tag2uploadのこれから
❌ webhookとジョブを動かすサービスの検討(DSAと議論が必要)
❌ tag2uploadを試験稼働させる(DSAと議論が必要)
❌ ベータ稼働、ユーザーからのフィードバック等
Page: 18
本日の内容
DebianのGR: tag2uploadについて
tag2uploadはどういうものなのか
tag2uploadが議論となった背景
tag2uploadで解決される問題
Page: 19
tag2uploadは急にでてきたわけ
じゃない
2019年7月: Ian Jackson氏により設計の草稿が示される
https://lists.debian.org/debian-dak/2019/07/msg00025.html
当時ftpmasterを説得しきれず立ち消えになった模様
Page: 20
[RFC] General Resolution to
deploy tag2upload
2024年6月 Sean WhittonさんによりGRの草稿が提示される
https://lists.debian.org/debian-vote/2024/06/msg00000.html
tagに署名をするだけでは不十分ではないか(ftpmaster)
リリースを意図したアーカイブになっていることを担保すべき
例: 手元でビルドしないと得られないメタデータ(チェックサム)の付与
tag2uploadのコンセプトと相容れない(tag2upload推進派)
Page: 21
なぜ General Resolution が提案され
たのか
GR: General Resolution
Debianにおいて物事を投票で決めるしくみ
DPLや権限を委譲されたチームの決定を覆すことができる(Debian憲章より)
2019年のときと同じような議論が繰り返された(tag2upload推進派)
tag2upload推進派は現状のデザインをそのまま採用させたい
Page: 22
どのような合意形成が行われたか
t2u in the archive (was: General Resolution to deploy tag2upload)
https://lists.debian.org/debian-vote/2024/06/msg00602.html
タグに署名をするのに加えて:
tagにひもづいたgit ls-files --format="%(objectmode) %(objectname) %(path)"を
含める
gitのアーカイブ(SOURCE_VERSION.git.tar.xz)を.changesに含める
メンテナーが意図したアーカイブの内容であることを検証できるようにする
Page: 23
本日の内容
DebianのGR: tag2uploadについて
tag2uploadはどういうものなのか
tag2uploadが議論となった背景
tag2uploadで解決される問題
Page: 24
tag2uploadの導入でどうなるか(再
掲 )
https://www.youtube.com/watch?v=1ohpZ4Xj0iQ より引用
Page: 25
開発者にとって何が変わるか
パッケージメンテナー(DD or DM)のやること
ソースパッケージのアップロードは不要になる
tagを打つときに署名を付与してsalsa.d.oにgit debpushするだけでよい
tag2uploadは利用しなくてもよい(オプションだから)
Page: 26
ユーザーにとって何が変わるか
git.dgit.d.oからタグの打たれたソースコードを入手できる
gitを経由してソースを取得し、より再現性のあるビルドが行える(salsa.d.oと
の比較)
一般ユーザーにはあんまり影響はない
Page: 27
Debianにとって何が変わるか
トレーサビリティの向上
ソースパッケージを一貫したやりかたで生成できることが担保される
変なコードの混入を防ぎやすくなる
git.dgit.d.oは追記のみなのであとから検証できる
salsa.d.oが現状を正しく反映するようになる
salsa.d.oと最新のソースパッケージの内容が違うとかありがち
Page: 28
tag2uploadを使うには
次のようにして初期セットアップする(gbp使っている場合)
(アップロード前の)新バージョンの準備ができたら実施する
既定でgit pushするので注意
$ sudo apt install git-debpush
$ cd (salsa.d.oからcloneしたディレクトリ)
$ git debpush --gbp
Page: 29
さいごに
tag2uploadによりパッケージの透明性が高まるかも
DSAとの調整次第なのでいつ導入されるかは不明
またtag2uploadを採用するかどうかはメンテナー次第
単一リポジトリはサポートされていないのが課題(Rubyパッケージとか)
Page: 30
参考
Debian debate over tag2upload reaches compromise
https://lwn.net/Articles/978324/
tag2uploadに関するあれこれをまとめている記事