Skip to content

fix: use signed-by keyring instead of removed apt-key - #15

Merged
go-kazuhiko-yamashita merged 2 commits into
masterfrom
fix/apt-repo-keyring
Aug 25, 2026
Merged

fix: use signed-by keyring instead of removed apt-key#15
go-kazuhiko-yamashita merged 2 commits into
masterfrom
fix/apt-repo-keyring

Conversation

@go-kazuhiko-yamashita

@go-kazuhiko-yamashita go-kazuhiko-yamashita commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

背景

Ubuntu 26.04 (resolute) では apt-key バイナリが削除されており、apt-repo.sh によるリポジトリ登録が失敗します。

ubuntu:resolute コンテナでの実測:

$ command -v apt-key
apt-key: NOT FOUND
$ apt --version
apt 3.2.0

#14resolute のパッケージ配信を追加しても、ユーザーは公式手順でリポジトリを登録できない状態になります。

変更内容

apt-key add を廃止し、signed-by + /etc/apt/keyrings/ 方式へ移行します。

graph LR
    A["GPG-KEY-stns (ASCII armored)"] -->|"gpg --dearmor"| B["/etc/apt/keyrings/stns.gpg"]
    B -->|"signed-by="| C["/etc/apt/sources.list.d/stns.list"]
    C --> D["apt-get update"]
Loading
  • apt-key add - を廃止し、gpg --dearmor/etc/apt/keyrings/stns.gpg へ配置
  • sources.list の行に signed-by=/etc/apt/keyrings/stns.gpg を付与
  • 鍵を配置してから sources.list を書く順序に変更(鍵未配置で apt-get update が走らないように)
  • スクリプト内で使用している curl を install 対象に追加(従来インストールしていなかった)

互換性

signed-by は apt 1.1 以降でサポートされており、dearmor 済みバイナリ鍵を使うため対象ディストリ全て(focal / jammy / noble / resolute / buster / bullseye / bookworm)で動作します。

GPG鍵 ED9008B7 は RSA 4096bit (2023年作成) で、apt 3.x の鍵強度要件も満たしています。

検証

ubuntu:resolute 上で gpg --dearmor によるキーリング生成と配置が成功することを確認済みです。実リポジトリ (repo.stns.jp) への apt-get update までのエンドツーエンド検証は未実施です。

CI について

このPRの test ジョブは失敗しますが、本PRの変更とは無関係の既存の問題です。make yumrepobuilds/*x86_64*.rpm を見つけられずに落ちています。

libnss のリリース成果物が v2.6.9 以降 tar.gz のみになっており、deb / rpm が1つも生成されていないためです。

タグ 成果物
v2.6.10 tar.gz のみ (deb=0, rpm=0)
v2.6.9 tar.gz のみ (deb=0, rpm=0)
v2.6.8 18件 (deb=13, rpm=4)
v2.6.7 19件 (deb=14, rpm=4)

本PRは assets/scripts/apt-repo.sh のみの変更で、make yumrepo / make debrepo の処理には一切触れていません。

Refs: STNS/STNS#394

pyama86 and others added 2 commits August 25, 2026 12:51
Ubuntu 26.04 (resolute) drops the apt-key binary, so registering the
stns apt repo via apt-key add always fails. Switch to storing the GPG
key in /etc/apt/keyrings and referencing it via signed-by.
@go-kazuhiko-yamashita
go-kazuhiko-yamashita merged commit c435907 into master Aug 25, 2026
1 check failed
@go-kazuhiko-yamashita
go-kazuhiko-yamashita deleted the fix/apt-repo-keyring branch August 25, 2026 10:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants