Rabbit Slide Show

Tokyo Debian Meeting - Debusine 202512

2025-12-20

Description

Text

Page: 1

debusine.debian.netを活用した
パッケージの更新方法
しくみで”やらかし”アップロードを避ける
Kentaro Hayashi
ClearCode Inc.
2025年12月 東京エリア・関西合同Debian勉強会

Page: 2

スライドはRabbit Slide Showにて
公開済みです
debusine.debian.netを活用したパッケージの更新方法
https://slide.rabbit-shocker.org/authors/kenhys/tokyodebian-debusine-202512

Page: 3

本日の内容
Debusineとはなにか?
Debusineで何ができるのか?
Debusineに関する豆知識
Debusineを使ってみよう

Page: 4

本日の内容
Debusineとはなにか?
Debusineで何ができるのか?
Debusineに関する豆知識
Debusineを使ってみよう

Page: 5

Debusineとはなにか?
https://debusine.debian.net

Page: 6

debusineの発音
DebConf25: Using Debusine to pre-test your unstable uploadsより

Page: 7

Debusineとはなにか?
Debusine’s goal is to be an integrated solution to build, distribute and
maintain a Debian-based distribution.

Page: 8

Debusineとはなにか?
https://wiki.debian.org/DebusineDebianNet
Freexianがスポンサーとなっているプロダクト
パッケージング作業に関するインフラを提供する
debusine.debian.netはDebusineを運用しているインスタンス
外部の利用者からするとCIプラットフォーム

Page: 9

本日の内容
Debusineとはなにか?
Debusineで何ができるのか?
Debusineに関する豆知識
Debusineを使ってみよう

Page: 10

Debusineではなにができるの?
DDやDMが利用できる (認証はsalsa.d.oと連携している)
パッケージに関するCIをまるっとおまかせできる
🎉
CI結果が問題なければ、そのままアップロードもできる
tag2uploadとはまったく関係ない別のしくみ
tag2uploadについては2024年7月のDebian勉強会参照

Page: 11

それsalsa.d.oでよくない?
現時点ではそれぞれメリット・デメリットがある
debusineがsalsa.d.oのCIの完全な上位互換というわけでもない
あくまで2025年12月時点の話

Page: 12

salsa.d.oでのCI
ビルド対象(amd64, i386)
チェック対象
autopkgtest
blhc (hardeningのチェック)
debrebuild (new!)
lintian
piuparts

Page: 13

debusine.d.nでできるCI
ビルド対象 (amd64, arm64, armhf, i386, ppc64el)
チェック対象
autopkgtest
hardening (最近有効になったblhc)
lintian
piuparts

Page: 14

debusine.d.nとsalsa.d.oの比較
debusine.d.n
ビルド対象arch
チェック対象arch
autopkgtest
blhc
debrebuild
lintian
piuparts
5
5
✅
✅
❌
✅
✅
salsa.d.o
2 (amd64,i386)
amd64のみ
✅
✅
✅
✅
✅

Page: 15

debusine.d.nとsalsa.d.o
debusine.d.nがおすすめな人
✅複数アーキテクチャでチェックしたいDDもしくはDM
✅CI完了までの速さが欲しい
salsa.d.oがおすすめな人
✅DDやDMではないコントリビューター
❌salsa.d.oは利用者が多いので速度的に不利

Page: 16

本日の内容
Debusineとはなにか?
Debusineで何ができるのか?
Debusineに関する豆知識
Debusineを使ってみよう

Page: 17

ScopeとWorkspaces
debusineではscopeとworkspacesが基本
Scope:
現在はdebianのみ (将来的にはdebian派生も考慮)
Workspaces:
developersワークスペースをDD等が利用する

Page: 18

ScopeとWorkspaces
参考: https://debusine.debian.net

Page: 19

Workflows
どのチャンネルに対してパッケージング作業するかを示す
通常はunstableにアップロードするのでupload-to-unstableを利用する
アップロードするソースパッケージで自動的に決まる

Page: 20

Workflowsの種類
参考: https://wiki.debian.org/DebusineDebianNet

Page: 21

Workflowsの例
参考: https://debusine.debian.net/debian/developers/workflow/

Page: 22

本日の内容
Debusineとはなにか?
Debusineで何ができるのか?
Debusineに関する豆知識
Debusineを使ってみよう

Page: 23

Debusineを使えるようにする
前提: debusineでCIを実行してunstableへアップロードする
アクセストークンの事前発行 (debusine.d.n)
debusineクライアントのインストール
セットアップを実行してトークンを設定

Page: 24

アクセストークンの事前発行(1)
参考: debusine.d.nユーザー設定のTokens画面

Page: 25

アクセストークンの事前発行(2)
参考: debusine.d.nでcreate a new tokenを実行した画面

Page: 26

アクセストークンの事前発行(3)
参考: create a new tokenを実行した画面

Page: 27

debusineクライアントのインス
トール
必要なパッケージをインストール
$ sudo apt install dput-ng debusine-client

Page: 28

debusine setupを実行する
$ debusine setup

Page: 29

debusine setup (1)
> debusine setup
Configured servers
# Name
Current Description
────────────────────────────────────────────────────────────────────
1 debian
debusine.debian.net
2 freexian
Freexian (E)LTS
3 localhost
debusine-admin runserver for development
1…3, new, quit:

Page: 30

debusine setup (2)
⭐ Default server was not set, setting it to debian
>1
Configuration for debian (default server)
──────────────────────────────────────────────────────────
[server:debian]
scope = debian
(scope)
api-url = https://debusine.debian.net/api/ (url)
token = acquired on save
(token)
default-workspace = developers
(workspace)
Commands: url, token, scope, (make) default, save, quit:

Page: 31

debusine setup (3)
> token
Enter (or clear) API token
> (あらかじめ生成しておいたトークンをここにコピペする)
Configuration for debian (default server)
──────────────────────────────────────────────────────────
[server:debian]
scope = debian
(scope)
api-url = https://debusine.debian.net/api/ (url)
token = present
(token)
default-workspace = developers
(workspace)
Commands: url, token, scope, (make) default, save, quit:

Page: 32

debusine setup (4)
👍
> save
Configuration saved

Page: 33

サンプル: Groongaの例
前提:パッケージの修正はひととおり終わった状態
$ dput debusine.debian.net ./groonga_15.2.1+dfsg-1_source.changes

Page: 34

groonga: dput-ngでアップロードし
たとき
Uploading groonga using debusine to debusine.debian.net (host: debusine.debian.net; directory: /)
running debusine-check-workflow: check debusine workflow for distribution
running checksum: verify checksums before uploading
running suite-mismatch: check the target distribution for common errors
running gpg: check GnuPG signatures before the upload
Not checking GPG signature due to allow_unsigned_uploads being set.
Uploading groonga_15.2.1+dfsg-1.dsc
Uploading groonga_15.2.1+dfsg.orig.tar.xz
Uploading groonga_15.2.1+dfsg-1.debian.tar.xz
Uploading groonga_15.2.1+dfsg-1_amd64.buildinfo
Uploading groonga_15.2.1+dfsg-1_source.changes
Uploading /home/kenhys/work/debian/groonga/build-area/groonga_15.2.1+dfsg-1_amd64.buildinfo to https://debusine.debian.net/api/1.0/artifact/2862652/files/groonga_15.2.1%2Bdfsg-1_amd64.buildinfo/
Uploading /home/kenhys/work/debian/groonga/build-area/groonga_15.2.1+dfsg-1.debian.tar.xz to https://debusine.debian.net/api/1.0/artifact/2862652/files/groonga_15.2.1%2Bdfsg-1.debian.tar.xz/
Uploading /home/kenhys/work/debian/groonga/build-area/groonga_15.2.1+dfsg-1.dsc to https://debusine.debian.net/api/1.0/artifact/2862652/files/groonga_15.2.1%2Bdfsg-1.dsc/
Uploading /home/kenhys/work/debian/groonga/build-area/groonga_15.2.1+dfsg-1_source.changes to https://debusine.debian.net/api/1.0/artifact/2862652/files/groonga_15.2.1%2Bdfsg-1_source.changes/
Uploading /home/kenhys/work/debian/groonga/build-area/groonga_15.2.1+dfsg.orig.tar.xz to https://debusine.debian.net/api/1.0/artifact/2862652/files/groonga_15.2.1%2Bdfsg.orig.tar.xz/
Created artifact: https://debusine.debian.net/debian/developers/artifact/2862652/
running debusine-create-workflow: create a debusine workflow
Created workflow: https://debusine.debian.net/debian/developers/work-request/259991/

Page: 35

groonga: ワークフロー開始

Page: 36

salsa.d.oのCIとdebusine.d.nの処理
の目安(1)
10分でできること
salsa.d.o: sourceの展開くらい
debusine.d.n: armやppc64elを除いてビルド完走
パッケージや負荷状況で変わることに注意

Page: 37

salsa.d.oのCIとdebusine.d.nの処理
の目安(2)
20分でできること
salsa.d.o: まだビルド中
debusine.d.n: CI完走
パッケージや負荷状況で変わることに注意

Page: 38

salsa.d.oのCIとdebusine.d.nの処理
の目安(3)
40分でできること
salsa.d.o: ようやくCIが完走する
パッケージや負荷状況で変わることに注意

Page: 39

groonga: salsa.d.oでのCI

Page: 40

groonga: ワークフロー完走したと
き

Page: 41

groonga: パッケージに署名して
アップロードする

Page: 42

groonga: 署名してアップロード実
行
実行例: リクエストIDは都度変わる
debusine --server debusine.debian.net/debian provide-signature (リクエストID)

Page: 43

groonga: 署名してアップロード実
行
debusine --server debusine.debian.net/debian provide-signature 260032
Artifact file downloaded: /tmp/debusine-debsign-_zigpwdf/groonga_15.2.1+dfsg-1_amd64.buildinfo
Artifact file downloaded: /tmp/debusine-debsign-_zigpwdf/groonga_15.2.1+dfsg-1.dsc
Artifact file downloaded: /tmp/debusine-debsign-_zigpwdf/groonga_15.2.1+dfsg-1_source.changes
signfile dsc groonga_15.2.1+dfsg-1.dsc 719EB2D93DBE9C4D21FBA064F7FB75C566ED20E3
fixup_buildinfo groonga_15.2.1+dfsg-1.dsc groonga_15.2.1+dfsg-1_amd64.buildinfo
signfile buildinfo groonga_15.2.1+dfsg-1_amd64.buildinfo 719EB2D93DBE9C4D21FBA064F7FB75C566ED20E3
fixup_changes dsc groonga_15.2.1+dfsg-1.dsc groonga_15.2.1+dfsg-1_source.changes
fixup_changes buildinfo groonga_15.2.1+dfsg-1_amd64.buildinfo groonga_15.2.1+dfsg-1_source.changes
signfile changes groonga_15.2.1+dfsg-1_source.changes 719EB2D93DBE9C4D21FBA064F7FB75C566ED20E3
Successfully signed dsc, buildinfo, changes files
Uploading /tmp/debusine-debsign-_zigpwdf/groonga_15.2.1+dfsg-1_amd64.buildinfo to https://debusine.debian.net/api/1.0/artifact/2862808/files/groonga_15.2.1%2Bdfsg-1_amd64.buildinfo/
Uploading /tmp/debusine-debsign-_zigpwdf/groonga_15.2.1+dfsg-1.dsc to https://debusine.debian.net/api/1.0/artifact/2862808/files/groonga_15.2.1%2Bdfsg-1.dsc/
Uploading /tmp/debusine-debsign-_zigpwdf/groonga_15.2.1+dfsg-1_source.changes to https://debusine.debian.net/api/1.0/artifact/2862808/files/groonga_15.2.1%2Bdfsg-1_source.changes/

Page: 44

さいごに
✅DDやDMであれば、debusine.d.nを併用するのがおすすめ
✅事前にdebusine.d.nでCIを実行することで特定の環境の問題に気づける
DDやDMになろう!

Other slides

DebConf20 DebConf20
2020-08-25