Tetsuo Handa
from-****@I-lov*****
2010年 4月 6日 (火) 21:08:05 JST
熊猫です。 > こちらのほうは、 ncurses を準備するのが困難な環境向けに ccs-editpolicy-agent を > 用意したけれども、 ccs-loadpolicy や ccs-savepolicy などは ncurses を準備するのが > 困難な環境であっても使いたいので、 ncurses に依存したマルチコールバイナリという状態を > 解消して必要なプログラムだけを選べるようにするつもりです。ライブラリ化の要望が > 出ているため、共有ライブラリを使う形で作成する手順について勉強し、6月下旬の > http://www.apc.ehdo.go.jp/seminar/course/10semi22294.html までに > CAT760 ( http://tomoyo.sourceforge.jp/incoming/cat760.avi )でも使えるような > 状態にしたいと考えています。 ということで、マルチコールバイナリ状態を解消し、 ncurses に依存する ccs-editpolicy と ccs-queryd 以外は ncurses ライブラリとリンクさせない形に 変更してみました。また、共有ライブリとして /usr/lib/ccstools.so.1 を利用し、 個々のプログラムのサイズの増加を抑えられるようにしました。 http://sourceforge.jp/projects/tomoyo/svn/view/trunk/1.7.x/ccs-tools/ccstools/?root=tomoyo どのように使われる共有ライブラリにするかが未定なので、どの処理をライブラリに 含めるかで迷っています。ということで、(特に宍道さんに)質問です。 どのように共有ライブラリを使おうと考えていますか? (1)ccstools パッケージに含まれていない別のアプリケーション(例えばGUI プログラム)から /usr/lib/ccstools.so.1 をリンクしたいと考えていますか? それとも、 ccstools パッケージ(に含まれている /usr/sbin/ccs-\* )から だけしかリンクされないと考えていますか? (2)(1)が前者の場合、 /usr/lib/ccstools.so.1 のソースは ccs-tools パッケージとは分離したほうが都合が良いですか? (3)(1)が前者の場合、別のアプリケーションから呼び出せるようにするために /usr/lib/ccstools.so.1 には ccstools パッケージ内では1個のプログラム からしか呼ばれない関数であっても詰め込んだ方が良いですか? (4)(1)が前者の場合、別のアプリケーションから呼び出せるようにするために /usr/lib/ccstools.so.1 内の関数は static 関数として宣言しないように する方が良いですか? Revision 3580 では(1)が後者で、 ccs-tools のリリース毎にバイナリ互換性が 無くなる(必要に応じて ccstools.so.2 ccstools.so.3 ・・・と増えていく)ことを 問題視しない方針で、 ccstools パッケージ内で1回しか呼ばれていない処理は ライブラリには含めない(個々のプログラムに直接埋め込む)ようにし、 ccstools パッケージのプログラムが直接呼び出さない変数や関数は static 変数/関数として 宣言するという仕様になっています。