[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[openoffice:11751] Re: libxmlsec1とl ibxmlsc1-nssの扱い



私はよくわかっていませんが、何かヒントが見つかればよいのですが。。。

OpenOffice.org 3.1.1 Linux を手元の Fedora Core 4 上でフルビルドした
結果のディレクトリ内のファイルを見てみました。

$ cd xxx/OOO310_m19/solver/310/unxlngi6.pro/inc/

> で、libxmlsec1関連をSlackware上で生成する際に、libxmlsec1-nssに
> ついてはlibnss3がなければなりません。不思議なことにOOo3.1.1では
> このlibnss3は用意されています。

$ grep libnss */*.log
moz/deliver.log:COPY moz/unxlngi6.pro/lib/libnss3.so unxlngi6.pro/lib/libnss3.so

確かに。moz から deliver されていますね。

ちなみに、こちらでは、moz については、「プリビルド」というのを使いました。
http://tools.openoffice.org/moz_prebuild/OOo3.1/

--disable-build-mozilla 指定にて、moz を使うけど、ビルドはしないで、
代わりにビルド済みの .zip ファイルを展開して使うだけよ。としています。

./configure \
--without-system-stdlibs \
--with-jdk-home=/usr/java/jdk1.5.0_06 \
--with-use-shell=bash \
--disable-build-mozilla \
--with-ant-home=/usr/local/apache-ant-1.7.1 \
--with-lang=ja


> Slackware用にOpenOffice.org3.1.1パッケージを作成しています。
> 3.0系までは、libxmlsec1やlibxmlsec1-nssは自前で持っていましたが、
> これは持たないという記述があり、実際抜けています。

$ grep libxmlsec1 */*.log
libxmlsec/deliver.log:COPY libxmlsec/unxlngi6.pro/lib/libxmlsec1-nss.a unxlngi6.pro/lib/libxmlsec1-nss.a
libxmlsec/deliver.log:COPY libxmlsec/unxlngi6.pro/lib/libxmlsec1.a unxlngi6.pro/lib/libxmlsec1.a

どうやら、.so ファイルとしてインストーラーのファイル一式へ含めるわけ
ではないようですね。代わりに、.a ファイルとして静的なライブラリとして
作成しておき、依存している側で自身の .so などにリンクするみたいです。


モジュール間の依存関係を見てみますと、、、
各モジュールのディレクトリ内の prj/build.lst の先頭行にモジュール間の
依存関係が記述されていますので、先頭行のみを対象に検索してみますと、

$ cd xxx/OOO310_m19/
$ perl -ne 'print "$ARGV:$_" if $.==1 && m/libxmlsec/; close ARGV if eof' */prj/build.lst
libxmlsec/prj/build.lst:ls  libxmlsec   : stlport soltools LIBXML2:libxml2 MOZ:moz SO:moz_prebuilt sal NULL
xmlsecurity/prj/build.lst:xs	xmlsecurity	:	xmloff unotools offapi unoil svx MOZ:moz SO:moz_prebuilt LIBXMLSEC:libxmlsec NULL

で、結局のところ、↓こんな感じのようです。
instsetoo_native <-- postprocess <-- xmlsecurity <-- libxmlsec <-- moz

> ここで、OOo3.1.1とlibxmlsc1やlibxmlsc1-nssとlib3の扱いが
> 分からなくなってしまいました。OOo3.1.1では、そもそもlibxmlsec1
> やlibxmlsc1-nssは不要なのでしょうか。

一応、必要みたいですね。

ただ、.so ファイルとして、deliver されていないようですから、、、
インストールされるファイルには含まれないみたいです。

代わりに .a ファイルとして deliver されているので、
xmlsecurity 内にてリンクしているのかも。

そこで、見てみると。多くのモジュールでは、util/makefile.mk にて
そのモジュールの成果である .so ファイルを作成していますから、
(注: 例外も多々ありますが)

xxx/OOO310_m19/xmlsecurity/util/makefile.mk

おや、-lxmlsec1 や -lxmlsec1-nss のようなリンカーへのオプションは、
ぱっと見では、みつかりませんね。
では、フルビルド作業時のログを見てみると、、、

Building module xmlsecurity
......
/usr/local/bin/g++ ..... -o ../unxlngi6.pro/lib/libxsec_xmlsec.so .... ../unxlngi6.pro/slo/xsec_nss.o -luno_sal -luno_cppu -luno_cppuhelpergcc3 -luno_sal -lutlli -lsvlli -ltlli -lcomphelp4gcc3 -luno_cppuhelpergcc3 -lxoli -lxml2 -lxmlsec1 -lxmlsec1-nss -lnss3 -lnspr4 -lplc4 -ldl -lpthread -lm -Wl,-Bdynamic -lstlport_gcc

使われていますね。
-lxmlsec1 -lxmlsec1-nss というオプション指定が↑に含まれています。

なお、上記の makefile.mk 内には、↓こんな記述もありました。

.IF "$(WITH_MOZILLA)" == "NO"
@all:
	@echo "No mozilla -> no nss -> no libxmlsec -> no xmlsecurity..."
.ENDIF

ということは、with_mozilla が no だと、このモジュールでは実質的な
ビルド作業は行われないみたいですね。

Tora


はとちゃん wrote:
> はとちゃん@小江戸らぐです。
> 
> Slackware用にOpenOffice.org3.1.1パッケージを作成しています。
> 3.0系までは、libxmlsec1やlibxmlsec1-nssは自前で持っていましたが、
> これは持たないという記述があり、実際抜けています。
> 
> で、libxmlsec1関連をSlackware上で生成する際に、libxmlsec1-nssに
> ついてはlibnss3がなければなりません。不思議なことにOOo3.1.1では
> このlibnss3は用意されています。
> 
> ここで、OOo3.1.1とlibxmlsc1やlibxmlsc1-nssとlib3の扱いが
> 分からなくなってしまいました。OOo3.1.1では、そもそもlibxmlsec1
> やlibxmlsc1-nssは不要なのでしょうか。


【MLコミュホームページ】http://www.freeml.com/openoffice

--[PR]------------------------------------------------------------------
◇◆◇◆        憧れの4LDKや共用施設充実マンション     ◇◆◇◆
◆◇◆◇賃貸じゃ難しい?理想の住まい探しは早めの資料請求で先手!◆◇◆◇
◇◆◇◆  これから販売予定のおNewなマンション、即チェック    ◇◆◇◆
http://ad.freeml.com/cgi-bin/sa.cgi?id=eASgX
------------------------------------------------------------------[PR]--
■GMO INTERNET GROUP■ GMO INTERNET www.gmo.jp