Feodraのyumリポジトリ

メタデータの構造↓


selinux-policy
noarch

b1a138eeeb563af98f70e0b28a5afc79a6fddb85

SELinux policy configuration

SELinux Reference Policy - modular.

Red Hat, Inc. http://bugzilla.redhat.com/bugzilla

http://serefpolicy.sourceforge.net




GPL
Red Hat, Inc.
System Environment/Base

 …中略…















/etc/selinux
/etc/selinux/config
/etc/sysconfig/selinux



…hogehoge…


…fugafuga…





適当に改行を入れてみた。
yum用の情報の中に、rpmのspecファイルの情報をxmlに変換したものが内包()されている、という感じ。

ってのは新しい。
。checksumはリポジトリに置くパッケージには必須かな。


考えるに、実際に使うプラグインバンドル↓
/hoge.bdl
 start
 info.xml
 default.confg
 resource/
をストリーミングに展開できる形式(cpio+gzとか)で固めたものをWebにずらっと並べて、これをrpmとして扱えば良いのでは無かろうか。
そこからinfo.xmlだけを取り出して、checksumやらファイル名やらやらの追加情報をくっつけてつなげたものをデータベースファイルにすれば良い。固めるときにinfo.xmlが先頭に来るようにしておけばなお良い。

なんか完全にyum+rpmのパクりだけど…ま、いっか。先人の知恵は大体優れているモンさな。

rpmのspecファイル → プラグインバンドルのinfo.xmlファイル
ディレクトリツリーをcpio+gzで固めて、ヘッダを付ける(rpm) → プラグインバンドルをcpio+gzで固める


それでもって、データベースファイルのチェックサムを、データベースファイルの隣にでも置いておく。
クライアントプログラムは、毎回データベースファイルのチェックサムを取ってきて、手元にあるチェックサムと比べる。違っていたらデータベースファイルを取ってくる。ふむ。コレですな。