Plamo Linux 日記

Plamo Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

Qbilinux 開発について(その69): セキュリティフィックスと current ブランチはじめました

Plamo Linux 6.x のソース一式からブランチして,Qbilinux という linux ディストリビューションをぼちぼちと作成.

いつまで続くのか.

情報などを記載したホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

先日,バージョン 0.4.0 として締めましたが,その後の作業についてでも.

ぼちぼちと 0.4.0 のセキュリティフィックスとかバグ修正を行っています.

主にはいろいろとセキュリティフィックスに対応させたりかな.基本的にパッケージバージョンは上げないつもりですけど,パッチ作ったりするのが面倒だったりすると,依存しているもの一式のバージョンを上げたりもします.はい.

また,手元の ThinkPad X270 に新規インストールして気がついたバグなども少しずつ修正.

contrib 以下に収録していた docker などもコンパイルに失敗していたみたいなので作り直し.再び動作するようになりました.

...

一方,次のバージョンのことも少しは考えないとなということで,バージョン 0.4.0 の作業ディレクトをコピーして current 用の作業ディレクトリを作成.

とりあえず glibc とか gcc, llvm を最新にしようかなと思って少しだけ作業しましたが,はまりまくりました.

glibc 2.31 から入った修正が割と厄介ですね.

最初に glibc を入れ替えたらなんかうまくいかない.glibc のヘッダに入っている変更が邪魔をして環境が崩壊.少し前にも glibc のアップデートをやったことがあったんだけど,はまったので先送りにしたんですよね.

試行錯誤した結果,最初に gcc を更新した後に glibc を作って,その環境で gcc のヘッダを手作業で少し書き換えてからもう一度 gcc をコンパイル.その後,glibc を再びコンパイルし直したらきれいな環境になったみたいです.ふう.

書き換えた gcc のヘッダは bits/statx.h あたりだったかな.すでに記憶が曖昧....

まぁ,最近は glibc とか gcc を自前でコンパイルする人ってほとんど居ないんでしょうか?エラーメッセージで検索してみてもほとんど引っかからなかったですから.しかも一回新しいバージョンに移行してしまえば問題なくなりますからね.

作業途中で何度も作業環境を飛ばしてしまいましたが,自分でいろいろといじっていると勝手がわかっているので復旧も楽です.環境が飛んでしまったときには,インストーラーの USB メモリや,ほかのパーティションに入っている linux 環境を立ち上げて,ほかのパーティションにインストールしてある環境を

dd if=/dev/nvme0n1p1 of=/dev/nvmen1p2 bs=16M status=progress

みたいな感じで壊れた環境のパーティションにコピーした後,コピーした環境の /etc/fstab の root partition だけ書き換えてからその環境で立ち上げて,netconfig コマンドでネットワークの設定を修正した後に更新していたパッケージを updatepkg すれば開発用の環境が復旧できるので,まぁ気楽な感じ.環境を飛ばしても dd コマンド一発で簡単に戻せるようにパーティションサイズは全く同じに切ってあったりはしますけどね.

とりあえず,開発環境は最新にできたので current の方はぼちぼちと最新のパッケージ類に追従させていきます.あとは,古いライブラリに依存しているパッケージ類をリコンパイルして古いライブラリ類を一層したいなと思っています.icu とかいろんなバージョンを含めているのでこの機会に.でも,次のバージョンを締めるまでにもたもたしていると,またいろんなバージョンを含める羽目になってしまいそうだけど.:-)

ためしに rustc なども最新にして firefox の最新版をパッケージングしてみたけど,普通にパッケージ作成ができたので開発環境は問題なく構築できているかなと思っています.

他にも current の方ではちょっと気になっていたところがあったのでパッケージ管理周りもいじっていたりします.しばらく使ってみて,問題なさそうなら 0.4.x 系にフィードバックしようかなとは思っています.全体には影響しない修正なので.

まぁ,最近はそんな感じで作業しています.