Top / EBUG勉強会 / 20190525_FuguIta65

河豚板6.5のリリースについて

EBUG 第69回会合
2019年5月25日、長岡市与板町 うまみち森林公園
川俣吉広、kaw@on.rim.or.jp

OpenBSD 6.5

2019年5月1日リリース (実際には4月24日)

What's new

主なもの

  • デフォルトコンパイラ変更(mips64): GCC → clang
  • デフォルトリンカの変更(i386, amd64): GNU binutils ld → lld
  • スタックプロテクタRETGUARDの改良
  • openrsync(1), rdsetroot(8), unwind(8)の追加
  • OpenBGPD, OpenSMTPD, LibreSSL, OpenSSH等の改良
  • CVE-2018-14665対策として、Xorg(Xサーバ)のsetuidビットが落された。そのため、xenodm*1の使用が推奨されている。
  • etc...

大きな変更はない模様

河豚板6.5

OpenBSD 6.5をベースにした河豚板6.5を作成し、リリース

  • 2019年5月2日 - i386, amd64
  • 2019年5月8日 - arm64

今回のハマりどころ

毎回のリリースでは、一定の手順に従って作業を行うが、OpenBSDが前回リリースから種々の変更がなされているため、それらの影響により手順どおり河豚板を作成しても、本来の動作をしない場合が多々ある。

インストール容量の増大

amd64でインストール直後のディスク容量が1.2GB → LiveCDの容量(700MB)に収まらない!

  • 主な原因
    • KARL (Kernel Address Randomized Link)用のオブジェクトファイルが大きい
    • コンパイラがGCCとLLVMの2つ入っている (LLVMが特に大きい)
  • 対策
    • KARL用オブジェクトファイルを削除 → Live SystemではKARLは意味をなさないため
    • プロファイラ用ライブラリ(lib*_p.a)を削除
    • 動的ライブラリがある場合は静的ライブラリを削除
    • ほぼ全ての共有ライブラリ、実行バイナリをstrip

Xの起動方法変更

OpenBSD 6.5の"What's new"で挙げたように、Xサーバのsetuidビットが落されたため、一般ユーザがstartxやxinitでXのセッションを開始できなくなった。
河豚板はLive Systemであるため、起動モード0, 1, 2の"Fresh Boot"で使用されることが多い。よって、起動スクリプト/boottmp/rc内にてログイン画面の選択を行うこととした。

Do you login with Console or X Window System?
[default: Console] -> 

ASLRの処理方法変更

OpenBSDでは、起動時にASLR (address space layout randomization)という処理が行われ、libc.so.*, libcrypto.so.*, ld.soの3つの共有オブジェクトファイルについてオブジェクトファイルがランダムに配置し直された上でリンクされる。
OpenBSD 6.5では、ASLRの処理が変更されたため、河豚板の起動時に不具合が生じるようになった。

  • FFSがマウントされている場合にのみASLR処理が行われる
    • 河豚板の起動モード0, 2ではFFSではなくTMPFSがマウントされているためASLR処理が行われない
      →FFSまたはTMPFSがマウントされている場合にASLR処理を行うよう変更
  • read onlyでマウントされている場合、mount -uwでread/writeに変更してからASLR処理が行われる
    • 起動モード1ではCD9660内のイメージファイルをvnconfigを用いてFFSとしてマウントしているためmount -uwしてもファイルの書込みは不可能
      →起動モード1ではASLRを行わないように変更

実際には、変更を行った/etc/rcを直接配置するのではなく、差分ファイル/boottmp/etc.rc.diffを用意しておき、河豚板の初期化時にpatchを適用するようにした。

ミラーサイト変更・増設

河豚板の配布を行っているミラーサイトの変更・増設を行った。

経緯

河豚板6.5のリリース直後にOpenBSD開発者のSolene Rapenne氏から以下のメールを受領

Subject: FuguIta mirror
From: Solene Rapenne <solene@openbsd.org>
To: kaw@on.rim.or.jp
Date: Fri, 3 May 2019 07:42:36 -0600 (MDT)

Hello,

I could host FuguIta releases as a host, I have a server
in Europe with high bandwidth. Tell me what you need me to
do to make the mirror happening :)

河豚板は、ヨーロッパからのダウンロードがかなりの割合を占める(後述)ため、Rapenne氏からのお申し出をありがたく受け、ヨーロッパに河豚板のミラーを増設することとした。

これに併せて、従来より運用していた国内2ヶ所のミラーのURLを変更した。

転送方法の変更 ~

今回新設されたeu.dl.fuguita.orgでは、先方が作成したアカウントはSFTPによるアクセスのみが可能となっていた。
そのため、SFTPによるミラーリングが可能なFTPクライアントであるlftpを用いてマスターとの同期をとることとした。

#!/bin/sh
unset LANG
set -x
[ -r $HOME/FuguIta/0_README.txt ] || exit 1
cd $HOME/FuguIta || exit 1
lftp -c 'open sftp://srv.ebug.jp/home/fuguita/pub && mirror -Rev'
lftp -c 'open sftp://perso.pw/pub                 && mirror -Rev'

従来より運用していた国内2ヶ所のミラーは、定期的にミラーからマスターにrsyncで接続し、同期をとっていたが、jp1.dl.fuguita.org (旧mirror.ginzado.ne.jp)については、lftpによる同期に変更した。

以上の体制で5月11日より運用を開始した。

(参考)ダウンロード統計 (2018/01/01 - 2019/05/10)

地域別割合

地域割合(%)備考
ヨーロッパ35.2ロシアを除く
北アメリカ31.2
アジア19.3ロシアを除く
南アメリカ4.2
ロシア4.0
中央アメリカ3.1
オセアニア1.4
アフリカ0.9
中東0.6

国別・上位30位

順位国名順位国名順位国名
1米国11ポーランド21フィンランド
2日本12オランダ21ウクライナ
3ドイツ13中国23アルゼンチン
4フランス14スペイン23チェコ
5ロシア15オーストラリア23韓国
6カナダ16ハンガリー23スウェーデン
7イタリア17ギリシャ27スイス
8ブラジル17トルコ28オーストリア
9英国19ルーマニア28インド
10メキシコ20インドネシア30ポルトガル

Top / EBUG勉強会 / 20190525_FuguIta65


*1 OpenBSDのX Window実装Xenocaraで作成された修正版のxdm
Reload  New Edit Freeze Diff Attach Copy Rename  Top Index Search Recent Backups  Help  RSS
Last-modified: 2019-05-25 (Sat) 09:17:48 (55d)