[[diary/Kojima]]
・作業メモ
% ./PlamoBuild.evolution-mapi-0.28.1 config
configure: error: libmapi wasn't found! Please install at least libmapi-0.8!
configure error. ./PlamoBuild.evolution-mapi-0.28.1 script stop
% ./PlamoBuild.libmapi-0.8.2-ROMULUS config
checking for samba 4... configure: error: Samba 4 not found
configure error. ./PlamoBuild.libmapi-0.8.2-ROMULUS script stop
Samba4か。。
epiphany が nss の pkgconfig を必要とするので nspr/nss は独立したパッケージとして作った方がよさげだな
nsprはビルドできたが、nssはエラーになるなぁ。
gcc -shared -Wl,-z,defs -Wl,-soname -Wl,libnssutil3.so -Wl,--version-script,Linux2.6_x86_glibc_PTH_OPT.OBJ/nssutil.def
-Wl,-rpath,/usr/lib/nspr -Wl,-rpath,/usr/lib/nss -o Linux2.6_x86_glibc_PTH_OPT.OBJ/libnssutil3.so Linux2.6_x86_glibc_PTH_OPT.OBJ/quickder.o
Linux2.6_x86_glibc_PTH_OPT.OBJ/secdig.o Linux2.6_x86_glibc_PTH_OPT.OBJ/derdec.o Linux2.6_x86_glibc_PTH_OPT.OBJ/derenc.o
Linux2.6_x86_glibc_PTH_OPT.OBJ/dersubr.o Linux2.6_x86_glibc_PTH_OPT.OBJ/dertime.o Linux2.6_x86_glibc_PTH_OPT.OBJ/nssb64d.o ...
....
Linux2.6_x86_glibc_PTH_OPT.OBJ/oidstring.o: In function `SEC_StringToOID':
oidstring.c:(.text+0xe0): undefined reference to `PL_strlen'
oidstring.c:(.text+0x101): undefined reference to `PL_strncasecmp'
Linux2.6_x86_glibc_PTH_OPT.OBJ/portreg.o: In function `PORT_RegExpCaseSearch':
portreg.c:(.text+0xa9d): undefined reference to `PL_strcasecmp'
Linux2.6_x86_glibc_PTH_OPT.OBJ/secoid.o: In function `SECOID_Init':
secoid.c:(.text+0x600): undefined reference to `PL_strpbrk'
collect2: ld はステータス 1 で終了しました
make[2]: *** [Linux2.6_x86_glibc_PTH_OPT.OBJ/libnssutil3.so] エラー 1
make[2]: ディレクトリ `/mnt/Gnome-2.28/Other/build/mozilla/security/nss/lib/util' から出ます
make[1]: *** [libs] エラー 2
ざっと調べた感じでは、PL_strlen は /usr/include/nspr/plstr.h で定義されているマクロっぽいので、
このファイルをインクルードしてみたけどエラーは変わらないなぁ。
-どうやら、config.mk に NSPR_LIB_DIR が設定されないのが原因みたいだけど、これが設定されないのは pkgconfig --libs-only-L nspr が null になっているせいなので、もうちょっと根は深そうだな-- [[kojima]] &new{2009-11-08 (日) 12:29:24};
-とりあえず NSPR_LIB_DIR は手動で設定して回避するか -- [[kojima]] &new{2009-11-08 (日) 12:35:10};
-blfs にこんなパッチがあります。 http://www.linuxfromscratch.org/patches/blfs/svn/nspr-4.8.2-pkgconfig-1.patch -- [[tako]] &new{2009-11-08 (日) 18:43:45};
-nspr/nss をpkgconfig 化する処理は加えているのだけど、今回ひっかかったのは、pkg-config --libs-only-L nspr で /usr/lib が返ってこなかったことですね。ソースを見たわけではないけど、--libs-only-L は -L/usr/lib の場合は(デフォルトの場所だから)表示しないような仕様になっているので、それで NSPR_LIB_DIR を設定しようとしたのが敗因らしい。 -- [[kojima]] &new{2009-11-08 (日) 20:08:52};
GNOME-2.28は Bluetooth への対応が売りの一つらしいが、手元にはBluetoothなデバイスが無いかテストできないなぁ。。
brasero をビルド中に、
CC scsi-sg.lo
In file included from scsi-sg.c:44:
/usr/include/scsi/scsi.h:145: error: expected specifier-qualifier-list before 'u8'
/usr/include/scsi/scsi.h: In function 'scsi_varlen_cdb_length':
/usr/include/scsi/scsi.h:156: error: 'struct scsi_varlen_cdb_hdr' has no member named 'additional_cdb_length'
なんてエラーが出るが、これは /usr/include/scsi.h で
/* defined in T10 SCSI Primary Commands-2 (SPC2) */
struct scsi_varlen_cdb_hdr {
u8 opcode; /* opcode always == VARIABLE_LENGTH_CMD */
u8 control;
u8 misc[5];
u8 additional_cdb_length; /* total cdb length - 8 */
__be16 service_action;
/* service specific data follows */
};
という部分が問題になるらしい。最近のカーネルだと u8 ではなく __u8 になるらしくて、
ccs_modesel_head では
struct ccs_modesel_head {
__u8 _r1; /* reserved */
__u8 medium; /* device-specific medium type */
__u8 _r2; /* reserved */
となっているのだけど、scsi_varlen_cdb_hdr の方は直し忘れているのだろうなぁ。
polkit-gobject-1.pc は PolicyKit-0.94 に入っているようだけど、PolicyKit を上げるのはちょっと不安だな。。
#comment