Subject: Help with new pkg and (?) buildlink lib inclusion
To: None <tech-pkg@netbsd.org>
From: Christopher W. Richardson <cwr@nexthop.com>
List: tech-pkg
Date: 04/26/2007 10:28:57
Hi, all!
I'm working on creating my first package, and, for better or
worse, I didn't pick a trivial one -- so please bear with me if I
do silly things.
I'm working on getting Midgard CMF into pkgsrc. I actually think
I most of the way there -- I do have a couple of other questions
on how to do things The Right Way, but I'll ask those separately,
after I get things fully functional. For now ...
The package actually consists of four packages: midgard-core
(which provides shared libraries), midgard-php, midgard-apache,
and midgard-data. I've got them all successfully compiling and
installing in a pkg_comp chroot, so I'm optimistic I'm on the
right track. For the record, this is on
uname -a
NetBSD ns 2.1.0_STABLE NetBSD 2.1.0_STABLE (GRIZZLY) #0: Sun May
7 22:58:34 PDT 2006 cwr@ns:/usr/obj/sys/arch/i386/compile/GRIZZLY i386
Cutting to the chase, midgard-apache adds a little snippet to be
included in httpd.conf, which looks like this:
LoadModule midgard_module /usr/pkg/lib/httpd/midgard-apache2.so
Listen 8001
NameVirtualHost *:8001
Include /usr/pkg/etc/midgard/apache/vhosts/[^\.#]*
After including said snipped, apache fails to start with:
Cannot load /midgard-apache2.so into server: midgard-apache2.so:
Undefined PLT symbol "mgd_init_ex"
mgd_init_ex is defined in libmidgard, and I've confirmed
separately that I can load that by doing so in php. So, I'm
thinking that for some reasons, this package isn't properly
linking against libmidgard. However, the Makefile, post
configure, seems to say the right things:
AM_LDFLAGS = -L/usr/pkg/lib -Wl,-R/usr/pkg/lib
-L/usr/pkg/lib/mysql -Wl,-R/usr/pkg/lib/mysql -lintl
-lmysqlclient -Wl,-R/usr/pkg/lib -L/usr/pkg/lib -lgobject-2.0
-lglib-2.0 -lintl -lxml2 -L/usr/pkg/lib -lmidgard
Perhaps indicating that all of the above is a red herring, I did
a ktrace on apache, and it ends thusly:
28757 httpd CALL open(0x48120200,0,0xffffffff)
28757 httpd NAMI "/usr/pkg/lib/mysql/libpthread.so.0"
28757 httpd RET open -1 errno 2 No such file or directory
28757 httpd CALL munmap(0x4873b000,0x8000)
28757 httpd RET munmap 0
28757 httpd CALL write(2,0xbfbfcd10,0x42)
28757 httpd GIO fd 2 wrote 66 bytes
"Syntax error on line 1 of /usr/pkg/etc/midgard/apache/httpd.conf:
"
28757 httpd RET write 66/0x42
28757 httpd CALL write(2,0xbfbfcd10,0x97)
28757 httpd GIO fd 2 wrote 151 bytes
"Cannot load /usr/pkg/lib/httpd/midgard-apache2.so into server: /usr/pk\
g/lib/httpd/midgard-apache2.so: Undefined PLT symbol \"mgd_init_ex\" (\
symnum = 23)
"
28757 httpd RET write 151/0x97
28757 httpd CALL exit(1)
Any suggestions would, as always, be highly appreciated. Of
course, I can provide any additional information needed.
TIA,
Chris