Closed
Bug 452908
Opened 16 years ago
Closed 16 years ago
remove dependency of this SUNWprd's private directory files
Categories
(Directory :: LDAP C SDK, defect)
Directory
LDAP C SDK
Tracking
(Not tracked)
RESOLVED
WONTFIX
People
(Reporter: u238590, Assigned: mcs)
References
Details
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.16) Gecko/20080702 Firefox/2.0.0.16 Build Identifier: LDAPCSDK_6_0_5_RTM Mozilla's LDAP C SDK doesn't compile on Open Solaris as NSPR's private directory is not present in SUNWprd package (and obsolete directory has 3 files missing). Can we remove dependency of this SUNWprd's private directory files? Reproducible: Always Steps to Reproduce: 1. Download and install OpenSolaris 2008.05 from http://www.opensolaris.com/get/ which has snv build 86 on an x86 machine. 2. Read and Follow instructions given in release notes http://opensolaris.org/os/project/indiana/resources/rn3/ * $ pfexec pkg refresh * $ pfexec pkg install SUNWipkg@0.5.11-0.86 * $ pfexec pkg install entire@0.5.11-0.86 3. Install these packages * $sudo pkg install SUNWgmake SUNWhea sunstudio pkg:/SUNWpr@0.5.11,5.11-0.95 pkg:/SUNWprd@0.5.11,5.11-0.95 pkg:/SUNWtls@0.5.11,5.11-0.95 pkg:/SUNWtlsd@0.5.11,5.11-0.95 SUNWcvs (Note you may also need to install pkg:/SUNWtoo@0.5.11,5.11-0.95 in case ld gets ruined.) 4. Checkout and build and install Mozilla LDAP C SDK source code as per http://wiki.mozilla.org/LDAP_C_SDK#Latest_News_-_7.2F5.2F2007 * $ cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -P -rLDAPCSDK_6_0_5_RTM DirectorySDKSourceC * $ cd mozilla/directory/c-sdk * $ export PATH=/opt/SunStudioExpress/bin:$PATH * $ ./configure --with-sasl --with-nspr-inc=/usr/include/mps --with-nspr-lib=/usr/lib/mps --with-nspr --with-nss-inc=/usr/include/mps --with-nss-lib=/usr/lib/mps --with-nss --enable-clu * $ gmake
Assignee | ||
Comment 1•16 years ago
|
||
I do not have access to an Open Solaris system. What part of the LDAP C SDK code depends on NSPR private files? What error message do you see when you try to compile?
Since SUNWprd doesnt' contain /usr/include/mps/private directory and only 1 file obsolete/prototypes.h in /usr/include/mps/obsolete directory. Here is the error I get when I compile : /opt/SunStudioExpress/bin/cc -xstrconst -o ldappr-public.o -c -xs -g -KPIC -DDEBUG_meena -DDEBUG=1 -DXP_UNIX=1 -DSVR4=1 -DSYSV=1 -D__svr4=1 -D__svr4__=1 -DSOLARIS=1 -DHAVE_FCNTL_FILE_LOCKING=1 -Di386=1 -D_PR_HAVE_OFF64_T=1 -DHAVE_LCHOWN=1 -DHAVE_STRERROR=1 -DHAVE_SASL=1 -DHAVE_SASL_OPTIONS=1 -DLDAP_SASLIO_HOOKS=1 -D_REENTRANT=1 -DHAVE_POINTER_LOCALTIME_R=1 -DFORCE_PR_LOG -D_PR_PTHREADS -UHAVE_CVAR_BUILT_ON_SEM -DUSE_WAITPID -DNEEDPROTOS -DLDAP_DEBUG -DNET_SSL -DNO_LIBLCACHE -DLDAP_REFERRALS -DNS_DOMESTIC -I../../../../../dist/public/ldap -I../../../ldap/include -I../../../../../dist/./include -I/usr/include/mps ldappr-public.c "ldappr-public.c", line 45: cannot find include file: <private/pprio.h> "ldappr-public.c", line 441: warning: implicit function declaration: PR_ImportTCPSocket "ldappr-public.c", line 441: warning: improper pointer/integer combination: op "=" cc: acomp failed for ldappr-public.c gmake[4]: *** [ldappr-public.o] Error 2 gmake[4]: Leaving directory `/export/home/mozldap/build/mozldap-6.0.4/mozilla/directory/c-sdk/ldap/libraries/libprldap' gmake[3]: *** [export] Error 2 gmake[3]: Leaving directory `/export/home/mozldap/build/mozldap-6.0.4/mozilla/directory/c-sdk/ldap/libraries' gmake[2]: *** [export] Error 2 gmake[2]: Leaving directory `/export/home/mozldap/build/mozldap-6.0.4/mozilla/directory/c-sdk/ldap' gmake[1]: *** [export] Error 2 gmake[1]: Leaving directory `/export/home/mozldap/build/mozldap-6.0.4/mozilla/directory/c-sdk' gmake: *** [build] Error 2
Its using PR_ImportTCPSocket which is defined in private/pprio.h. In my opinion, if we can replace this function with some other interface we may be able to compile it without any problems. 440 /* Import file descriptor of connection made via ldap_init() */ 441 if (NULL == (pr_socket = PR_ImportTCPSocket(orig_socket)) ) { 442 ldap_set_lderrno( ld, LDAP_LOCAL_ERROR, NULL, NULL ); 443 return( LDAP_LOCAL_ERROR ); 444 }
Code snippet is from "mozilla/directory/c-sdk/ldap/libraries/libprldap/ldappr-public.c" line 440 of 454
$gpatch -p 0 < ldappr-public.c.patch works for me. $cat ldappr-public.c.patch --- build/mozldap-6.0.4/mozilla/directory/c-sdk/ldap/libraries/libprldap/ldappr-public.c 2008-08-21 14:50:05.152493442 +0530 +++ build/mozldap-6.0.4/mozilla/directory/c-sdk/ldap/libraries/libprldap/ldappr-public.c.new 2008-08-21 14:50:00.148804008 +0530 @@ -42,7 +42,8 @@ */ #include "ldappr-int.h" -#include <private/pprio.h> +typedef PRInt32 PROsfd; +NSPR_API(PRFileDesc *) PR_ImportTCPSocket(PROsfd osfd); /* * Function: prldap_init().
this won't be needed after this bug gets fixed https://bugzilla.mozilla.org/show_bug.cgi?id=453375
Depends on: 453375
Since NSS bug is fixed, this is no longer necessary. Marking this as "RESOLVED" and "WONT FIX".
Status: UNCONFIRMED → RESOLVED
Closed: 16 years ago
OS: Other → All
Hardware: Other → All
Resolution: --- → WONTFIX
You need to log in
before you can comment on or make changes to this bug.
Description
•