«

この記事は openSUSE Advent Calendar 2025 の8日目です。

openSUSE 16.0 から linux-pam のバージョンが1.7.0 になりました。オリジナルサイト

https://github.com/linux-pam/linux-pam

の最新は1.7.0 なので openSUSE は最新に追いついたと言えます。

openSUSE 15.x の pam は 1.3.0 だったのでかなり新しくなります。そのためいくつか違いがあるようです。どう違っているかを調べるため、マニュアル等を見てみることにしたのですが、オリジナルのマニュアルは xml なので、コンパイルして読みやすくしてみることにしました。

環境の準備

ソースを引っ張ってきてコンパイルするだけですので、わざわざそのために新しく環境を作るのは大変です。そこで、Proxmox VE の LXC コンテナを使うことにしました。単純なコンパイルとかはこれで十分です。フットプリントも小さいですし。
そして、とてもありがたいことに、 opensuse-15.6 のテンプレートがあります。それを使えばサクッと LXC 上の環境を作ることができます。
ただ、提供されているテンプレートはとても基本的なものなので、外から入ることができません。そこで、インストール後は zypper update し、さらに openssh-server、git と nano を入れます。また作業用のユーザも作っておきます。

ソースをダウンロード

git clone https://github.com/linux-pam/linux-pam.git

でソースをダウンロードします。

meson を使う

linux-pam のコンパイルには、meson が必要です。以前は autotools だったらしいですが。このため、いろいろ入れないと動きません。最低限コンパイラが必要です。今回は gcc を使います。

% cd linux-pam

で作業ディレクトリに移り、

% meson build

で configure を作り、さらに、

% meson -C build

で一応ビルドはできるようになります。ただし出来るのはバイナリだけ。マニュアルは出てきません。マニュアル作成には結局

libxslt-tools
docbook_5
docbook5-xsl-stylesheets

を追加インストールすることで、できるようになりました。

で、build/modules 配下ににある各モジュールディレクトリ中にマニュアルが、man 形式で生成されます。

ちなみにbuildした時点では、ディスク容量は 884M しか使っていませんでした。コンテナだと本当にフットプリント小さいですね。

コメント/トラックバック

トラックバックURL:

コメントする

※管理人にのみ公開されます