The LDAP C SDK binaries are packaged as either .zip files (for Windows) or as .tar.gz files (for other platforms). The binary packages include all of the dependencies as well, which means NSPR, NSS, and svrcore binaries, libraries, and header files are included, so that developers or redistributors will have everything they need to build and run with the LDAP C SDK.

Layout of Binary Packages

The packaging will be as follows. Names with a "/" suffix are directories. All other names are file names. A "#" introduces an in-line comment.

Proposal 1 - single, inclusive include, lib, etc. directories

 Following <Proposal 1>, sample implementation, Solaris 9 debug build:

ldapcsdk-6.02-SunOS5.9_DBG/ ldapcsdk-6.02-SunOS5.9_DBG/lib/ ldapcsdk-6.02-SunOS5.9_DBG/lib/libldap60.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libssldap60.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libprldap60.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libldif60.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libsvrcore.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libnss3.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libssl3.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libsoftokn3.chk ldapcsdk-6.02-SunOS5.9_DBG/lib/libsoftokn3.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libplc4.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libplds4.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libnspr4.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libsasl2.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libanonymous.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libcrammd5.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libdigestmd5.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libgssapiv2.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libplain.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libsasldb.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libfreebl_32fpu_3.chk ldapcsdk-6.02-SunOS5.9_DBG/lib/libfreebl_32fpu_3.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libfreebl_32int64_3.chk ldapcsdk-6.02-SunOS5.9_DBG/lib/libfreebl_32int64_3.so ldapcsdk-6.02-SunOS5.9_DBG/lib/libfreebl_32int_3.chk ldapcsdk-6.02-SunOS5.9_DBG/lib/libfreebl_32int_3.so ldapcsdk-6.02-SunOS5.9_DBG/bin/ ldapcsdk-6.02-SunOS5.9_DBG/bin/ldapsearch ldapcsdk-6.02-SunOS5.9_DBG/bin/ldapdelete ldapcsdk-6.02-SunOS5.9_DBG/bin/ldapmodify ldapcsdk-6.02-SunOS5.9_DBG/bin/ldapcmp ldapcsdk-6.02-SunOS5.9_DBG/bin/ldapcompare ldapcsdk-6.02-SunOS5.9_DBG/bin/ldappasswd ldapcsdk-6.02-SunOS5.9_DBG/include/ ldapcsdk-6.02-SunOS5.9_DBG/include/disptmpl.h ldapcsdk-6.02-SunOS5.9_DBG/include/lber.h ldapcsdk-6.02-SunOS5.9_DBG/include/ldap.h ldapcsdk-6.02-SunOS5.9_DBG/include/ldif.h ldapcsdk-6.02-SunOS5.9_DBG/include/ldap-standard.h ldapcsdk-6.02-SunOS5.9_DBG/include/ldap-platform.h ldapcsdk-6.02-SunOS5.9_DBG/include/ldap-extension.h ldapcsdk-6.02-SunOS5.9_DBG/include/ldap-deprecated.h ldapcsdk-6.02-SunOS5.9_DBG/include/ldap-to-be-deprecated.h ldapcsdk-6.02-SunOS5.9_DBG/include/ldap_ssl.h ldapcsdk-6.02-SunOS5.9_DBG/include/ldappr.h ldapcsdk-6.02-SunOS5.9_DBG/include/srchpref.h ldapcsdk-6.02-SunOS5.9_DBG/include/svrcore.h ldapcsdk-6.02-SunOS5.9_DBG/include/nspr.h ldapcsdk-6.02-SunOS5.9_DBG/include/base64.h ldapcsdk-6.02-SunOS5.9_DBG/include/plarena.h ldapcsdk-6.02-SunOS5.9_DBG/include/plarenas.h ldapcsdk-6.02-SunOS5.9_DBG/include/plbase64.h ldapcsdk-6.02-SunOS5.9_DBG/include/plerror.h ldapcsdk-6.02-SunOS5.9_DBG/include/plgetopt.h ldapcsdk-6.02-SunOS5.9_DBG/include/plhash.h ldapcsdk-6.02-SunOS5.9_DBG/include/plresolv.h ldapcsdk-6.02-SunOS5.9_DBG/include/plstr.h ldapcsdk-6.02-SunOS5.9_DBG/include/pratom.h ldapcsdk-6.02-SunOS5.9_DBG/include/prbit.h ldapcsdk-6.02-SunOS5.9_DBG/include/prclist.h ldapcsdk-6.02-SunOS5.9_DBG/include/prcmon.h ldapcsdk-6.02-SunOS5.9_DBG/include/prcountr.h ldapcsdk-6.02-SunOS5.9_DBG/include/prcpucfg.h ldapcsdk-6.02-SunOS5.9_DBG/include/prcvar.h ldapcsdk-6.02-SunOS5.9_DBG/include/prdtoa.h ldapcsdk-6.02-SunOS5.9_DBG/include/prenv.h ldapcsdk-6.02-SunOS5.9_DBG/include/prerr.h ldapcsdk-6.02-SunOS5.9_DBG/include/prerror.h ldapcsdk-6.02-SunOS5.9_DBG/include/prinet.h ldapcsdk-6.02-SunOS5.9_DBG/include/prinit.h ldapcsdk-6.02-SunOS5.9_DBG/include/prinrval.h ldapcsdk-6.02-SunOS5.9_DBG/include/prio.h ldapcsdk-6.02-SunOS5.9_DBG/include/pripcsem.h ldapcsdk-6.02-SunOS5.9_DBG/include/blapit.h ldapcsdk-6.02-SunOS5.9_DBG/include/prlink.h ldapcsdk-6.02-SunOS5.9_DBG/include/prlock.h ldapcsdk-6.02-SunOS5.9_DBG/include/prlog.h ldapcsdk-6.02-SunOS5.9_DBG/include/prlong.h ldapcsdk-6.02-SunOS5.9_DBG/include/prmem.h ldapcsdk-6.02-SunOS5.9_DBG/include/prmon.h ldapcsdk-6.02-SunOS5.9_DBG/include/prmwait.h ldapcsdk-6.02-SunOS5.9_DBG/include/prnetdb.h ldapcsdk-6.02-SunOS5.9_DBG/include/prolock.h ldapcsdk-6.02-SunOS5.9_DBG/include/prpdce.h ldapcsdk-6.02-SunOS5.9_DBG/include/prprf.h ldapcsdk-6.02-SunOS5.9_DBG/include/prproces.h ldapcsdk-6.02-SunOS5.9_DBG/include/prrng.h ldapcsdk-6.02-SunOS5.9_DBG/include/prrwlock.h ldapcsdk-6.02-SunOS5.9_DBG/include/prshm.h ldapcsdk-6.02-SunOS5.9_DBG/include/prshma.h ldapcsdk-6.02-SunOS5.9_DBG/include/prsystem.h ldapcsdk-6.02-SunOS5.9_DBG/include/prthread.h ldapcsdk-6.02-SunOS5.9_DBG/include/prtime.h ldapcsdk-6.02-SunOS5.9_DBG/include/prtpool.h ldapcsdk-6.02-SunOS5.9_DBG/include/prtrace.h ldapcsdk-6.02-SunOS5.9_DBG/include/prtypes.h ldapcsdk-6.02-SunOS5.9_DBG/include/prvrsion.h ldapcsdk-6.02-SunOS5.9_DBG/include/prwin16.h ldapcsdk-6.02-SunOS5.9_DBG/include/cert.h ldapcsdk-6.02-SunOS5.9_DBG/include/certdb.h ldapcsdk-6.02-SunOS5.9_DBG/include/certt.h ldapcsdk-6.02-SunOS5.9_DBG/include/ciferfam.h ldapcsdk-6.02-SunOS5.9_DBG/include/cmmf.h ldapcsdk-6.02-SunOS5.9_DBG/include/cmmft.h ldapcsdk-6.02-SunOS5.9_DBG/include/cms.h ldapcsdk-6.02-SunOS5.9_DBG/include/cmsreclist.h ldapcsdk-6.02-SunOS5.9_DBG/include/cmst.h ldapcsdk-6.02-SunOS5.9_DBG/include/crmf.h ldapcsdk-6.02-SunOS5.9_DBG/include/crmft.h ldapcsdk-6.02-SunOS5.9_DBG/include/cryptohi.h ldapcsdk-6.02-SunOS5.9_DBG/include/cryptoht.h ldapcsdk-6.02-SunOS5.9_DBG/include/ecl-exp.h ldapcsdk-6.02-SunOS5.9_DBG/include/hasht.h ldapcsdk-6.02-SunOS5.9_DBG/include/jar-ds.h ldapcsdk-6.02-SunOS5.9_DBG/include/jar.h ldapcsdk-6.02-SunOS5.9_DBG/include/jarfile.h ldapcsdk-6.02-SunOS5.9_DBG/include/key.h ldapcsdk-6.02-SunOS5.9_DBG/include/keyhi.h ldapcsdk-6.02-SunOS5.9_DBG/include/keyt.h ldapcsdk-6.02-SunOS5.9_DBG/include/keythi.h ldapcsdk-6.02-SunOS5.9_DBG/include/nss.h ldapcsdk-6.02-SunOS5.9_DBG/include/nssb64.h ldapcsdk-6.02-SunOS5.9_DBG/include/nssb64t.h ldapcsdk-6.02-SunOS5.9_DBG/include/nssbase.h ldapcsdk-6.02-SunOS5.9_DBG/include/nssbaset.h ldapcsdk-6.02-SunOS5.9_DBG/include/nssck.api ldapcsdk-6.02-SunOS5.9_DBG/include/nssckbi.h ldapcsdk-6.02-SunOS5.9_DBG/include/nssckepv.h ldapcsdk-6.02-SunOS5.9_DBG/include/nssckft.h ldapcsdk-6.02-SunOS5.9_DBG/include/nssckfw.h ldapcsdk-6.02-SunOS5.9_DBG/include/nssckfwc.h ldapcsdk-6.02-SunOS5.9_DBG/include/nssckfwt.h ldapcsdk-6.02-SunOS5.9_DBG/include/nssckg.h ldapcsdk-6.02-SunOS5.9_DBG/include/nssckmdt.h ldapcsdk-6.02-SunOS5.9_DBG/include/nssckt.h ldapcsdk-6.02-SunOS5.9_DBG/include/nssilckt.h ldapcsdk-6.02-SunOS5.9_DBG/include/nssilock.h ldapcsdk-6.02-SunOS5.9_DBG/include/nsslocks.h ldapcsdk-6.02-SunOS5.9_DBG/include/nssrwlk.h ldapcsdk-6.02-SunOS5.9_DBG/include/nssrwlkt.h ldapcsdk-6.02-SunOS5.9_DBG/include/ocsp.h ldapcsdk-6.02-SunOS5.9_DBG/include/ocspt.h ldapcsdk-6.02-SunOS5.9_DBG/include/p12.h ldapcsdk-6.02-SunOS5.9_DBG/include/p12plcy.h ldapcsdk-6.02-SunOS5.9_DBG/include/p12t.h ldapcsdk-6.02-SunOS5.9_DBG/include/pk11func.h ldapcsdk-6.02-SunOS5.9_DBG/include/pk11pqg.h ldapcsdk-6.02-SunOS5.9_DBG/include/pk11priv.h ldapcsdk-6.02-SunOS5.9_DBG/include/pk11pub.h ldapcsdk-6.02-SunOS5.9_DBG/include/pk11sdr.h ldapcsdk-6.02-SunOS5.9_DBG/include/pkcs11.h ldapcsdk-6.02-SunOS5.9_DBG/include/pkcs11f.h ldapcsdk-6.02-SunOS5.9_DBG/include/pkcs11n.h ldapcsdk-6.02-SunOS5.9_DBG/include/pkcs11p.h ldapcsdk-6.02-SunOS5.9_DBG/include/pkcs11t.h ldapcsdk-6.02-SunOS5.9_DBG/include/pkcs11u.h ldapcsdk-6.02-SunOS5.9_DBG/include/pkcs12.h ldapcsdk-6.02-SunOS5.9_DBG/include/pkcs12t.h ldapcsdk-6.02-SunOS5.9_DBG/include/pkcs7t.h ldapcsdk-6.02-SunOS5.9_DBG/include/portreg.h ldapcsdk-6.02-SunOS5.9_DBG/include/preenc.h ldapcsdk-6.02-SunOS5.9_DBG/include/secasn1.h ldapcsdk-6.02-SunOS5.9_DBG/include/secasn1t.h ldapcsdk-6.02-SunOS5.9_DBG/include/seccomon.h ldapcsdk-6.02-SunOS5.9_DBG/include/secder.h ldapcsdk-6.02-SunOS5.9_DBG/include/secdert.h ldapcsdk-6.02-SunOS5.9_DBG/include/secdig.h ldapcsdk-6.02-SunOS5.9_DBG/include/secdigt.h ldapcsdk-6.02-SunOS5.9_DBG/include/secerr.h ldapcsdk-6.02-SunOS5.9_DBG/include/sechash.h ldapcsdk-6.02-SunOS5.9_DBG/include/secitem.h ldapcsdk-6.02-SunOS5.9_DBG/include/secmime.h ldapcsdk-6.02-SunOS5.9_DBG/include/secmod.h ldapcsdk-6.02-SunOS5.9_DBG/include/secmodt.h ldapcsdk-6.02-SunOS5.9_DBG/include/secoid.h ldapcsdk-6.02-SunOS5.9_DBG/include/secoidt.h ldapcsdk-6.02-SunOS5.9_DBG/include/secpkcs5.h ldapcsdk-6.02-SunOS5.9_DBG/include/secpkcs7.h ldapcsdk-6.02-SunOS5.9_DBG/include/secport.h ldapcsdk-6.02-SunOS5.9_DBG/include/shsign.h ldapcsdk-6.02-SunOS5.9_DBG/include/smime.h ldapcsdk-6.02-SunOS5.9_DBG/include/ssl.h ldapcsdk-6.02-SunOS5.9_DBG/include/sslerr.h ldapcsdk-6.02-SunOS5.9_DBG/include/sslproto.h ldapcsdk-6.02-SunOS5.9_DBG/include/sslt.h ldapcsdk-6.02-SunOS5.9_DBG/include/watcomfx.h ldapcsdk-6.02-SunOS5.9_DBG/include/hmac-md5.h ldapcsdk-6.02-SunOS5.9_DBG/include/md5.h ldapcsdk-6.02-SunOS5.9_DBG/include/md5global.h ldapcsdk-6.02-SunOS5.9_DBG/include/prop.h ldapcsdk-6.02-SunOS5.9_DBG/include/sasl.h ldapcsdk-6.02-SunOS5.9_DBG/include/saslplug.h ldapcsdk-6.02-SunOS5.9_DBG/include/saslutil.h ldapcsdk-6.02-SunOS5.9_DBG/etc/ ldapcsdk-6.02-SunOS5.9_DBG/etc/ldapfilter.conf ldapcsdk-6.02-SunOS5.9_DBG/etc/ldapfriendly ldapcsdk-6.02-SunOS5.9_DBG/etc/ldapsearchprefs.conf ldapcsdk-6.02-SunOS5.9_DBG/etc/ldaptemplates.conf ldapcsdk-6.02-SunOS5.9_DBG/examples/ ldapcsdk-6.02-SunOS5.9_DBG/examples/add.c ldapcsdk-6.02-SunOS5.9_DBG/examples/asearch.c ldapcsdk-6.02-SunOS5.9_DBG/examples/compare.c ldapcsdk-6.02-SunOS5.9_DBG/examples/crtfilt.c ldapcsdk-6.02-SunOS5.9_DBG/examples/csearch.c ldapcsdk-6.02-SunOS5.9_DBG/examples/del.c ldapcsdk-6.02-SunOS5.9_DBG/examples/getattrs.c ldapcsdk-6.02-SunOS5.9_DBG/examples/getfilt.c ldapcsdk-6.02-SunOS5.9_DBG/examples/modattrs.c ldapcsdk-6.02-SunOS5.9_DBG/examples/modrdn.c ldapcsdk-6.02-SunOS5.9_DBG/examples/nsprio.c ldapcsdk-6.02-SunOS5.9_DBG/examples/nsprsasl.c ldapcsdk-6.02-SunOS5.9_DBG/examples/nsprsaslsearch.c ldapcsdk-6.02-SunOS5.9_DBG/examples/ppolicy.c ldapcsdk-6.02-SunOS5.9_DBG/examples/psearch.c ldapcsdk-6.02-SunOS5.9_DBG/examples/rdentry.c ldapcsdk-6.02-SunOS5.9_DBG/examples/sasl.c ldapcsdk-6.02-SunOS5.9_DBG/examples/saslsearch.c ldapcsdk-6.02-SunOS5.9_DBG/examples/search.c ldapcsdk-6.02-SunOS5.9_DBG/examples/srvrsort.c ldapcsdk-6.02-SunOS5.9_DBG/examples/ssearch.c ldapcsdk-6.02-SunOS5.9_DBG/examples/ssnoauth.c ldapcsdk-6.02-SunOS5.9_DBG/examples/examples.h ldapcsdk-6.02-SunOS5.9_DBG/examples/README ldapcsdk-6.02-SunOS5.9_DBG/examples/Makefile ldapcsdk-6.02-SunOS5.9_DBG/examples/xmplflt.conf

 basically its produced by modified package.mk we had inhouse for external
 packaging. it relies on old config stuff and runs under mozilla/directory
 like this:

 gmake pkgLdapSDK [HAVE_SASL=1] [USE_64=1] [LDAP_DIST=] [SEC_DIST=] [SVRCORE_DIST=] [SASL_DIST=]

 there is bunch of other vars inside that can be tweaked to suit the build,
 and it will create a .tgz on *nix and .zip on win.

The top level directory will contain lib, include, bin, man, doc, and example subdirectories. The lib directory will contain all of the NSPR, NSS, svrcore, and mozldap libraries. The include directory will contain all of the component include files. The bin directory will contain all of the component executables and scripts. And so on.

toplevel

  • lib/
    libnspr4.so
    ... # other nspr libs
    libnss3.so
    ... # other nss libs
    libsvrcore.so
    libldap60.so
    ... # other ldap libs
  • include/
    nspr.h
    ... # other nspr headers
    nss.h
    ... # other nss headers
    svrcore.h
    ldap.h
    ... # other ldap headers

Proposal 2 - include, lib, etc. directories for each component

The top level directory will contain a subdirectory for each component. The directory name will be the name followed by a "-" followed by the version. For example, for NSPR version 4.6.4, the directory name would be nspr-4.6.4. Under each component directory will be a directory called lib and a directory called include. It is intended that a Makefile could refer to these directly e.g. -L/path/to/nspr-4.6.4/lib and -I/path/to/nspr-4.6.4/include. In addition, each component directory may have additional directories bin for executables and other binaries; tools for executable command line utilities and scripts; man and doc for man pages and documentation; and others.

toplevel

  • nspr-<version>/ # e.g. nspr-4.6.4/
    • lib/
    • include/
  • nss-<version>/ # e.g. nss-3.11.4/
    • lib/
    • include/
    • bin/
  • svrcore-<version>/ # e.g. svrcore-4.0.3/
    • lib/
    • include/
  • mozldap-<version>/ # e.g. mozldap-6.1.0/
    • lib/
    • include/
    • tools/
    • examples/
    • docs/