On Friday 22 February 2008 8:52 pm, Rich Megginson wrote:
The java components will be more tricky.
For ldapjdk, it would be nice to be able to build from source in dsbuild, but the jar file is cross platform and stable.
JSS is different because it has some JNI code and should be compiled. There are binaries available from ftp.mozilla.org but I don't know how well they will work.
None of the other java components listed at http://directory.fedoraproject.org/wiki/Source and http://directory.fedoraproject.org/wiki/BuildingConsole have been rolled into dsbuild.
Ok java components we'll come back to later, I'm having trouble building mod_nss now.
infinity:/usr/src/dsbuild/meta/ds# make BUILD_DS_ADMIN=1 ADMINUTIL_SOURCE=1 MOD_NSS_SOURCE=1 ADMINSERVER_SOURCE=1 SVRCORE_SOURCE=1 MOZLDAP_SOURCE=1 PERLDAP_SOURCE=1
Add APXS=/usr/bin/apxs2 HTTPD=/usr/sbin/apache2
Make sure you have the apache2-mpm-worker and apache2-threaded-dev packages installed.
One more thing - after you finish building, you'll have to comment out the following line in your $PREFIX/etc/dirsrv/admin-serv/httpd.conf: LoadModule log_config_module ......
Then you should be able to run $PREFIX/sbin/setup-ds-admin.pl. I was, and both directory server and admin server are running.
Ok, adding
APXS=/usr/bin/apxs2 HTTPD=/usr/sbin/apache2
to both dsbuild/ds/mod_nss/Makefile and dsbuild/adminserver/Makefile worked great. The dsbuild process finishes and appears to have compiled everything.
A couple little bugs creeped up during the build. I think it was during the make install of ldapserver. One of the binaries (the first one I guess) was copied to /opt/dirsrv/bin (the bin being a file not a directory) so the /opt/dirsrv/bin directory isn't getting created. Quick fix was just renaming /opt/dirsrv/bin to /opt/dirsrv/bin.something and rerunning make. Executing /opt/dirsrv/bin.something looks like the binary might be ldappasswd?
Second, there seems to be a missing library.
Starting admin server . . . output: ERROR: ld.so: object '/opt/dirsrv/lib/libssl3.so' from LD_PRELOAD cannot be preloaded: ignored. output: apache2: Syntax error on line 123 of /opt/dirsrv/etc/dirsrv/admin-serv/httpd.conf: module log_config_module is built-in and can't be loaded Could not start the admin server. Error: 256 Failed to create and configure the admin server Exiting . . .
I assumed the libssl3.so was supposed to be provided by building nss from source. So I just symlinked the system's libssl3.so provided by libnss3-0d back to /opt/dirsrv/lib/. Admin server seemed to startup fine after that (and fixing the debian httpd module issue).
So after all that I have a running slapd now, and the admin server is started. I can connect and bind as Directory Manager and browse the tree using any old ldap client. browsing to localhost:ADMINSRV_PORT works and brings up the web stuff. But when I try to connect to the adminserver using the console from the 1.0.4 directory server install, it will connect but not show any servers in the default view. Not sure if that is a 1.0.4 vs. 1.1.0 version problem, or a build issue with lacking java components.
Which leads me to my next question. The java components, are they only required for running the console on your client machines? So building with NOJAVA=1 will provide a fully working adminserver and ldapserver, just no console binaries?
To be honest, I haven't really looked into the different post install process' with 1.1.0 since 1.0.4 so the reason I could have missing entries in the console could very well be my own fault :)
Also, if I want to fine tune the location of some of directories during build. is it safe to modify the CONFIGURE_ARGS variable in the adminserver and ldapserver's Makefile? I want to put /opt/dirsrv/etc/dirsrv into /etc/dirsrv aswell as /opt/dirsrv/var into /var?
Ryan