Closed
Bug 124244
Opened 23 years ago
Closed 23 years ago
switch builds to use LDAP C SDK 5.0
Categories
(SeaMonkey :: Build Config, defect, P1)
SeaMonkey
Build Config
Tracking
(Not tracked)
VERIFIED
FIXED
mozilla1.0
People
(Reporter: dmosedale, Assigned: dmosedale)
References
Details
(Whiteboard: [ADT2])
Attachments
(3 files, 14 obsolete files)
2.69 KB,
patch
|
sfraser_bugs
:
review+
Bienvenu
:
superreview+
asa
:
approval+
|
Details | Diff | Splinter Review |
6.46 KB,
patch
|
sfraser_bugs
:
review+
Bienvenu
:
superreview+
asa
:
approval+
|
Details | Diff | Splinter Review |
23.38 KB,
patch
|
dmosedale
:
review+
dmosedale
:
superreview+
asa
:
approval+
|
Details | Diff | Splinter Review |
We need this for SSL-LDAP, among other things.
Assignee | ||
Comment 1•23 years ago
|
||
Using this patch requires first applying the patch in 122115, and then this one. After you apply this one, you _must_ run autoconf to regenerate configure and then reconfigure.
Assignee | ||
Comment 2•23 years ago
|
||
Forgot client.mk changes. Also my previous description of how to use was wrong, a bit of bootstrapping will be required, since the 5.0 sources have to be pulled from cvs before one can apply the patch in bug 122115.
Attachment #68375 -
Attachment is obsolete: true
Comment 3•23 years ago
|
||
this are simple changes are far as to the automation, but we're pulling a new ldap sdk branch. How big of a change is the new SDK? Do we need to carpool this change?
Assignee | ||
Updated•23 years ago
|
Assignee | ||
Comment 4•23 years ago
|
||
This is still a short ways off. It's a non-trivial change, overall. Conceivably, things may break, especially for odd platforms. However, it's not clear to me that a carpool actually buys us anything. Only a few people check in code which uses the LDAP functionality, and so it's quite unlikely that any breakage that happens here would be easier to debug because fewer people were checking in.
Comment 5•23 years ago
|
||
we should do it as a carpool anyway with builds after the change, just so we can isolate any problems to the carpool rather than wondering if it was the new sdk or some other change that is causing a problem. Also, by putting it on the branch landing page and sending out the notifications to mozilla-builds and mozilla-seamonkey, we can be sure people know about it ahead of time. Please put an entry on the branch landing page so we have a way of tracking the progress and can estimate the landing time. Also, keep in mind 0.9.9 freezes in one week if you want to get this in before then.
Comment 6•23 years ago
|
||
Moving to 1.0 because that's when LDAP over SSL is scheduled, but if it gets in earlier that works, too.
Assignee | ||
Comment 7•23 years ago
|
||
OK, this patch now includes the changes necessary to work on windows as well as unix.
Attachment #68379 -
Attachment is obsolete: true
Assignee | ||
Comment 8•23 years ago
|
||
Whoops, the last patch contained _only_ the windows changes. This patch contains both windows and unix changes.
Attachment #70586 -
Attachment is obsolete: true
Comment 9•23 years ago
|
||
heads up to dmose, I think that there might be some build order issues. I did a clobber_all build_all (with these patches) and my build fails. c:\moztools\bin\gmake.exe[5]: Entering directory `c:/builds/tip/mozilla/director y/c-sdk/WIN32_D.OBJ/ldap/libraries/libssldap' cl -Foclientinit.obj -c -W3 -nologo -GF -Gy -MDd -Od -Z7 -UNDEBUG -DMOZIL LA_CLIENT=1 -DDEBUG=1 -DDEBUG_Administrator=1 -DXP_PC=1 -DWIN32=1 -D_WINDOWS=1 - D_DEBUG=1 -DWIN95=1 -D_PR_GLOBAL_THREADS_ONLY=1 -D_X86_=1 -DFORCE_PR_LOG -DUSE_ WAITPID -DNEEDPROTOS -DLDAP_DEBUG -DNET_SSL -DNO_LIBLCACHE -DLDAP_REFERRALS -DNS_DOMESTIC -Ic:/builds/tip/mozilla/dist/public/ldap -I../../../../ldap/in clude -Ic:/builds/tip/mozilla/dist/./include -Ic:/builds/tip/mozilla/dist/includ e -Ic:/builds/tip/mozilla/dist/public/security -Ic:/builds/tip/mozilla/dist/publ ic/nss -Ic:/builds/tip/mozilla/dist/include/nspr ../../../../ldap/libraries/lib ssldap/clientinit.c clientinit.c ../../../../ldap/libraries/libssldap/clientinit.c(37) : fatal error C1083: Canno t open include file: 'cert.h': No such file or directory c:\moztools\bin\gmake.exe[5]: *** [clientinit.obj] Error 2 c:\moztools\bin\gmake.exe[5]: Leaving directory `c:/builds/tip/mozilla/directory /c-sdk/WIN32_D.OBJ/ldap/libraries/libssldap' c:\moztools\bin\gmake.exe[4]: *** [install] Error 2 c:\moztools\bin\gmake.exe[4]: Leaving directory `c:/builds/tip/mozilla/directory /c-sdk/WIN32_D.OBJ/ldap/libraries' c:\moztools\bin\gmake.exe[3]: *** [install] Error 2 c:\moztools\bin\gmake.exe[3]: Leaving directory `c:/builds/tip/mozilla/directory /c-sdk/WIN32_D.OBJ/ldap' c:\moztools\bin\gmake.exe[2]: *** [install] Error 2 c:\moztools\bin\gmake.exe[2]: Leaving directory `c:/builds/tip/mozilla/directory /c-sdk/WIN32_D.OBJ' c:\moztools\bin\gmake.exe[1]: *** [all] Error 2 c:\moztools\bin\gmake.exe[1]: Leaving directory `c:/builds/tip/mozilla/directory /c-sdk/WIN32_D.OBJ' gmake: *** [build_all] Error 2 NMAKE : fatal error U1077: 'gmake' : return code '0x2' Stop. the build works fine if security is built first. but, for mozilla I don't think we need to build libssldap. perhaps things are ok as they are, we just need to selectively build only the libraries we really need.
Comment 10•23 years ago
|
||
this might be enough to fix it for now: -build_all: build_nspr build_ldapcsdk build_seamonkey +build_all: build_nspr build_seamonkey build_ldapcsdk trying that now.
Comment 11•23 years ago
|
||
yes, build_all: build_nspr build_seamonkey build_ldapcsdk is the way to go. cc peterv, in case this information affects his mac build work for LDAP SDK 5.0
Assignee | ||
Comment 12•23 years ago
|
||
So after talking to cls and sspitzer, it's been determined that if the LDAP C SDK depends on NSS, some non-trivial changes will have to be made to both the nmake and autoconf buildsystems. As it turns out, though, for the browser, we don't libssldap, because we're doing all of our crypto using PSM. So this patch adds an option to configure to allow the caller to build the LDAP C SDK without NSS, and thus it doesn't build libssldap at all.
Assignee | ||
Comment 13•23 years ago
|
||
In combination with the LDAP C SDK patch here, this should fix the build order problems. Additionally, it uses libprldap to install NSPR for low-level functions, and it updates the packager files for windows and unix.
Assignee | ||
Updated•23 years ago
|
Attachment #70635 -
Attachment is obsolete: true
Comment 14•23 years ago
|
||
Comment on attachment 71987 [details] [diff] [review] patch to allow the LDAP C SDK to build without NSS r=cls
Attachment #71987 -
Flags: review+
Assignee | ||
Comment 15•23 years ago
|
||
Comment on attachment 71987 [details] [diff] [review] patch to allow the LDAP C SDK to build without NSS Fix checked in.
Attachment #71987 -
Attachment is obsolete: true
Assignee | ||
Comment 16•23 years ago
|
||
Fixed a forgotten makefile.win, and changed a reference from bash to sh, on cls' recommendation.
Attachment #72009 -
Attachment is obsolete: true
Assignee | ||
Updated•23 years ago
|
Keywords: mozilla1.0
Comment 17•23 years ago
|
||
Basically the Makefile had an ifdef AIX that was the same as the ifdef Linux and HP-UX needed the same. So instead of continuing the ifdef <OS_ARCH> I used the ifneq $filter technigue to combine several OS_ARCH triggers that do the same thing into a single if
Comment 19•23 years ago
|
||
Comment on attachment 72158 [details] [diff] [review] patch to pull and build Mozilla with v5 CSK, v6 r=sspitzer how did you confirm that we were indeed using NSPR? also, did you test both autocomplete and LDAP addressbook searches?
Attachment #72158 -
Flags: review+
Comment 20•23 years ago
|
||
Comment on attachment 73207 [details] [diff] [review] Patch for HP-UX r=cls
Attachment #73207 -
Flags: review+
Assignee | ||
Comment 21•23 years ago
|
||
Comment on attachment 73207 [details] [diff] [review] Patch for HP-UX jdunn's HP-UX patch checked in to ldapcsdk_branch_50.
Attachment #73207 -
Attachment is obsolete: true
Comment 22•23 years ago
|
||
Great work on the patch for Mac. Just a couple of comments: 1) Why remove exit 0 from the replace.pl script? I guess it just is not needed? 2) The changes that remove the OS socket code are all #ifdef macintosh, but I think they might be useful for other platforms someday too. Can we change the code in liblber/io.c and libldap/os-ip.c to use a more general #ifdef such as #ifdef NSLDAPI_AVOID_OS_SOCKETS or something similar? For now, we would only define that on the Mac. I am not qualified to review the XML CodeWarrior project file or the mozilla/build/mac changes.
Assignee | ||
Comment 23•23 years ago
|
||
sspitzer asks: > how did you confirm that we were indeed using NSPR? The most important test is that on the Macintosh, the OS-native socket code is completely stubbed out. So the only possible way it could work at all is if the XP code for enabling NSPR were working. And it does work. On Linux, I've been able to use your SSL-LDAP proto-patch which depends on NSPR working as well. > also, did you test both autocomplete and LDAP addressbook searches? Yes.
Assignee | ||
Comment 24•23 years ago
|
||
mcs asks: > 1) Why remove exit 0 from the replace.pl script? I guess it just is not > needed? I talked to peterv about this, and his answer was this: replace.pl is called from the main MacPerl build script, and one of the vagaries of MacPerl is that it calls other scripts directly in the same Perl script-space, rather than forking a separate perl interpreter for the script. > 2) The changes that remove the OS socket code are all #ifdef macintosh, but I > think they might be useful for other platforms someday too. Can we change the > code in liblber/io.c and libldap/os-ip.c to use a more general #ifdef such as > #ifdef NSLDAPI_AVOID_OS_SOCKETS or something similar? For now, we would > only define that on the Mac. I've got this change made locally on my Mac. I will upload an updated patch with it shortly. I've chosen to define NSLDAPI_AVOID_OS_SOCKETS in libraries/macintosh/ldap-macos-defs.h. > I am not qualified to review the XML CodeWarrior project file or the > mozilla/build/mac changes. No problem; when I upload the latest mac changes, I'm gonna split peterv's patch into two: one patch for the C SDK itself (including the XML changes, which I'll find someone else to review), and one for the Mozilla build glue.
Assignee | ||
Comment 25•23 years ago
|
||
OK, here's the updated C SDK patch. It addresses mcs' request (actually I ended up having to put the define of NSLDAPI_AVOID_OS_SOCKETS in ldap-macos.h). It also updates the MANIFEST to make the proper header file links to dist.
Attachment #73525 -
Attachment is obsolete: true
Assignee | ||
Comment 26•23 years ago
|
||
Whoops... extraneous change included in the last patch.
Attachment #74219 -
Attachment is obsolete: true
Assignee | ||
Comment 28•23 years ago
|
||
Fixed a build ordering issue for clobber builds: need to ensure that ldap-standard.h is generated before attempting to create a link to dist.
Attachment #74227 -
Attachment is obsolete: true
Assignee | ||
Comment 29•23 years ago
|
||
No longer build nsLDAPConnectionCallbacks.c, since the SDK now provides all the necessary code.
Assignee | ||
Comment 30•23 years ago
|
||
Need to move ber_error_print prototype in lber-int.h outside of NSLBERI_LBER_INT_FRIEND check so that it gets prototyped for all builds, including non-DEBUG.
Attachment #74226 -
Attachment is obsolete: true
Comment 31•23 years ago
|
||
r=mcs for the "V5 C-SDK for Mac, v4 patch", with one comment: I don't see why the ber_error_print prototype in lber-int.h needs to be moved. The NSLBERI_LBER_INT_FRIEND macro is always defined by ldap-int.h before it includes lber-int.h.
Assignee | ||
Comment 32•23 years ago
|
||
mcs: right, that's the problem. In the current code, ber_error_print only gets prototyped inside an "ifndef NSLBERI_LBER_INT_FRIEND" clause.
Comment 34•23 years ago
|
||
Comment on attachment 74281 [details] [diff] [review] patch to pull and build Mozilla on Mac with b5 C-SDK, v2 >Index: mac/build_scripts/MozillaBuildList.pm >=================================================================== >RCS file: /cvsroot/mozilla/build/mac/build_scripts/MozillaBuildList.pm,v >retrieving revision 1.182 >diff -u -5 -r1.182 MozillaBuildList.pm >--- mac/build_scripts/MozillaBuildList.pm 8 Mar 2002 22:33:40 -0000 1.182 >+++ mac/build_scripts/MozillaBuildList.pm 15 Mar 2002 04:53:42 -0000 >@@ -832,10 +832,30 @@ > InstallFromManifest(":mozilla:extensions:xml-rpc:idl:MANIFEST_IDL", "$distdirectory:idl:"); > > #LDAP > if ($main::options{ldap}) > { >+ # Create the ldap-standard.h file from the template >+ # >+ my($template) = ":mozilla:directory:c-sdk:ldap:include:ldap-standard-tmpl.h"; >+ my($template_modtime) = GetFileModDate($template); >+ my($header) = ":mozilla:directory:c-sdk:ldap:include:ldap-standard.h"; >+ my($header_modtime) = (-e $header ? GetFileModDate($header) : 0); >+ if ($template_modtime > $header_modtime) { >+ open(STDIN, "<$template"); >+ open(STDOUT, ">$header"); >+ @ARGV = ("LDAP_VENDOR_NAME=mozilla.org", "LDAP_VENDOR_VERSION=500"); >+ do ":mozilla:directory:c-sdk:ldap:build:replace.pl"; >+ if ($@) { >+ close(STDOUT); >+ close(STDIN); >+ die "Error: can't create ldap-standard.h from ldap-standard-tmpl.h"; >+ } >+ close(STDOUT); >+ close(STDIN); >+ } How is this stuff done on other platforms? Can we share some perl XP here? > InstallFromManifest(":mozilla:directory:c-sdk:ldap:include:MANIFEST", "$distdirectory:directory:"); > InstallFromManifest(":mozilla:directory:xpcom:base:public:MANIFEST", "$distdirectory:directory:"); > InstallFromManifest(":mozilla:directory:xpcom:base:public:MANIFEST_IDL", "$distdirectory:idl:"); > InstallFromManifest(":mozilla:xpfe:components:autocomplete:public:MANIFEST_IDL", "$distdirectory:idl:"); > } >Index: mac/build_scripts/MozillaCheckoutList.txt ... >-DirectorySDKSourceC, LDAPCSDK_40_BRANCH >+DirectorySDKSourceC, ldapcsdk_branch_50 Fine.
Comment 35•23 years ago
|
||
Comment on attachment 74281 [details] [diff] [review] patch to pull and build Mozilla on Mac with b5 C-SDK, v2 r=sfraser
Attachment #74281 -
Flags: review+
Comment 36•23 years ago
|
||
Comment on attachment 74284 [details] [diff] [review] Updated Mac project file for LDAP XPCOM SDK, v1 r=sfraser
Attachment #74284 -
Flags: review+
Assignee | ||
Comment 37•23 years ago
|
||
Comment on attachment 74281 [details] [diff] [review] patch to pull and build Mozilla on Mac with b5 C-SDK, v2 Mac C-SDK patch checked in on ldapcsdk_branch_50.
Attachment #74281 -
Attachment is obsolete: true
Assignee | ||
Comment 38•23 years ago
|
||
Comment on attachment 74281 [details] [diff] [review] patch to pull and build Mozilla on Mac with b5 C-SDK, v2 Whoops, marked the wrong attachment obsolete.
Attachment #74281 -
Attachment is obsolete: false
Assignee | ||
Updated•23 years ago
|
Attachment #74285 -
Attachment is obsolete: true
Comment 39•23 years ago
|
||
Comment on attachment 72158 [details] [diff] [review] patch to pull and build Mozilla with v5 CSK, v6 Minor nit; we use 4 space indentation in configure.in, not 2. Fix that && r=cls
Comment 40•23 years ago
|
||
Comment on attachment 74281 [details] [diff] [review] patch to pull and build Mozilla on Mac with b5 C-SDK, v2 sr=bienvenu
Attachment #74281 -
Flags: superreview+
Comment 41•23 years ago
|
||
Comment on attachment 74284 [details] [diff] [review] Updated Mac project file for LDAP XPCOM SDK, v1 sr=bienvenu
Attachment #74284 -
Flags: superreview+
Assignee | ||
Comment 42•23 years ago
|
||
Updated to CVS tip & fixed cls' indentation issue.
Attachment #72158 -
Attachment is obsolete: true
Assignee | ||
Comment 43•23 years ago
|
||
Comment on attachment 76144 [details] [diff] [review] patch to pull and build Mozilla with v5 C-SDK, v7 Carrying forward r=cls,sspitzer, sr=bienvenu.
Attachment #76144 -
Flags: superreview+
Attachment #76144 -
Flags: review+
Assignee | ||
Comment 44•23 years ago
|
||
Fix more merge conflicts with the cvs tip.
Attachment #76144 -
Attachment is obsolete: true
Assignee | ||
Comment 45•23 years ago
|
||
Comment on attachment 76147 [details] [diff] [review] patch to pull and build Mozilla with v5 C-SDK, v8 carrying forward r=sspitzer,cls; sr=bienvenu
Attachment #76147 -
Flags: superreview+
Attachment #76147 -
Flags: review+
Comment 46•23 years ago
|
||
I just noticed that we check in mozilla/configure for LCHOWN and if found we set (there) HAVE_LCHOWN which shows up in config/autoconf.mk as -DHAVE_LCHOWN. However, in directory/c-sdk/config/nsinstall.c there is a #define HAVE_LCHOWN followed by an #if... #undef HAVE_LCHOWN... #endif The problem is that SOME compilers won't let you redefine a previously defined <thing>. I am not 100% sure of the solution because I am not sure if ldap needs to remain a separate entity... but as a minimum can we add a #ifndef HAVE_LCHOWN #define HAVE_LCHOWN #endif in nsinstall.c?
Assignee | ||
Comment 47•23 years ago
|
||
jdunn: config/autoconf.mk is not used by the C-SDK. It has it's own version in directory/c-sdk/config/autoconf.mk. So these shouldn't interfere with each other.
Comment 48•23 years ago
|
||
doh - I knew it was getting defined but guessed at the wrong place... It looks like directory/c-sdk/configure also checks for lchown (-> HAVE_LCHOWN) line 1849 of directory/c-sdk/configure.in Seeing as how ldap5's configure is checking for lchown (and hence defining HAVE_LCHOWN) can we remove the Define & undef of HAVE_LCHOWN from nsinstall.c?
Assignee | ||
Comment 49•23 years ago
|
||
jdunn: I just checked in your original suggestion on the branch. Right now we need to support both autoconf and non-autoconf builds, so it's the best compromise. Thanks for the fix.
Assignee | ||
Updated•23 years ago
|
Attachment #76147 -
Attachment description: patch to pull and build Mozilla on Mac with v5 C-SDK, v8 → patch to pull and build Mozilla with v5 C-SDK, v8
Comment 50•23 years ago
|
||
Comment on attachment 74281 [details] [diff] [review] patch to pull and build Mozilla on Mac with b5 C-SDK, v2 a=asa (on behalf of drivers) for checkin to the 1.0 trunk
Attachment #74281 -
Flags: approval+
Comment 51•23 years ago
|
||
Comment on attachment 74284 [details] [diff] [review] Updated Mac project file for LDAP XPCOM SDK, v1 a=asa (on behalf of drivers) for checkin to the 1.0 trunk
Attachment #74284 -
Flags: approval+
Updated•23 years ago
|
Attachment #76147 -
Flags: approval+
Comment 52•23 years ago
|
||
Comment on attachment 76147 [details] [diff] [review] patch to pull and build Mozilla with v5 C-SDK, v8 a=asa (on behalf of drivers) for checkin to the 1.0 trunk
Assignee | ||
Comment 53•23 years ago
|
||
Patches checked in, with the tiny tweak that the checkin versions use the newly minted stable ldapcsdk_50_client_branch, rather than the old development branch like the patches here did.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Comment 54•23 years ago
|
||
Discussed in Mail News bug meeting. Decided to [ADT2} this bug.
Whiteboard: [ADT2]
Comment 55•23 years ago
|
||
Please see bug 126462 for compiler warnings that were introduced on the new branch.
Updated•20 years ago
|
Product: Browser → Seamonkey
You need to log in
before you can comment on or make changes to this bug.
Description
•