configure.in: check for AIX security library, set in AUTH_LIBS macro
top.mk: add AUTH_LIBS macro to SECURITY_LIBS
portable.h.in: added HAVE_AIX_SECURITY macro (via autoheader)
passwd.c: use AIX getuserpw in chk_unix. Also fix logic in chk_unix:
getpwnam must always succeed for the given user. It is not a
fatal error if getspnam returns no result for the user: On
systems that support /etc/shadow, its usage is optional. The
same logic applies for AIX, SCO/HP SecureWare, etc.
for executable files, not just libraries/modules. Also, the AIX linker
hardcodes -L paths by default; override this to prevent build paths from
appearing in distributed binaries.
mkdep.aix - a wrapper for AIX cc that sends dependency info to stdout so
that the standard mkdep script can operate.
simple bind via:
{KERBEROS}principal
Code is disabled by default (for security reasons). Use
--enable-kpasswd to enable. Behind SLAPD_KPASSWD.
Reworked Kerberos detection and split out KBIND as independent
feature (--disable-kbind) (LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND).
KBIND depends upon detection of KRB4 (or KRB425) support. Detection,
building with eBones (as distributed with FreeBSD 3.4) okay, but
wasn't able to test as I don't have a K4 KDC handy.
--with-kerberos has a number of detection options... most likely
don't work properly.
with the shared libraries instead of static, defaults to no
* build/lib-shared.mk: if LINK_BINS_DYNAMIC is set we create a symlink to
the .so and .so.# file along with the .a and .la files
* build/lib.mk: make sure the above links get removed on clean target
* build/top.mk: add define for LINK_BINS_DYNAMIC
* tests/scripts/defines.sh: add export for LD_LIBRARY_PATH so that tests will
run without requiring installation of libraries when we use --enable-dynamic
(LD_LIBRARY_PATH is always set, since it can't really hurt).
@SLAPD tag. Removing it fixes the problem for me, but this should
be reviewed by someone who knows which @SLAPD_...@ tag was meant to
be there, if any.
and related AC_SUBST() so that when back-tcl is compiled as a dynamic module we link
-ltcl to the module and not slapd (this is the correct way to do this since the .la file
handles giving the correct libs when we pass the module to it in the linker line with
-dlopen). Also modified the perl backend in a similar way except that the PERL_CPPFLAGS
always go to the module and never to slapd (slapd doesn't need them).
* build/mod.mk: added $(MODLIBS) to the dynamic module link line to accomodate module
specific libraries. These should be defined in the back-*/Makefile.in file for each
module (so far only back-tcl and back-perl need it).
* build/top.mk: modified the perl ldflags and cppflags slightly
* servers/slapd/Makefile.in: same here
* servers/slapd/back-perl/Makefile.in: added MODLIBS=$(MOD_PERL_LDFLAGS) for when we are
using a dynamic module (problem, libtool wont allow linking static libs into a libtool
lib, so unless perl's libs are compiled dynamic, then back-perl can't be a dynamic
module. We need a test for this on perl and tcl).
* servers/slapd/back-tcl/Makefile.in: added MODLIBS=$(MOD_TCL_LIB)
* back-perl and back-tcl now compile
libwrap was a dynamic library). Added -lwrap to new subst var WRAP_LIBS
so we have more control over where it get's linked (dynamic libwrap
causes problems when we link to programs that don't define certains
globals that libwrap expects).
* build/top.mk: Added placeholder for WRAP_LIBS subst
* servers/slapd/Makefile.in: Added $(WRAP_LIBS) to the slapd and sslapd
link command line specifically so it doesn't get thrown in with the rest
of the LIBS.
* configure: rebuilt
configure. Implementation is dependent upon autoconf internals.
Attempts to use AC_REVISION hammered by libtool bugs. Will submit
reports to libtool camp and rework configure.in once fixes are
released.
for inet_aton(). May be linked in when not absolutely necessary...
but no big deal, we'll likely start using res_search over sychronous
get{host,peer}byname calls anyways.
inet_aton() detection: use link instead of compile
Includes support for update referral for each replicated backend.
Reworked replication test to use update referral.
Includes major rewrite of response encoding codes (result.c).
Includes reworked alias support and eliminates old suffix alias codes
(can be emulated using named alias).
Includes (untested) support for the Manage DSA IT control.
Works in LDAPv2 world. Still testing in LDAPv3 world.
Added default referral (test009) test.
used to fetch the pw_passwd which is than passwd to crypt().
getspnam() is used instead of getpwnam() when available.
Added configration detection of pw_passwd, shadow.h, getpwnam()
and getspnam().
macros. Proceedures for using alternative dependency generation
"compiler" and "flags" has changed.
Pre-configure:
env MKDEP=mycc MKDEP_FLAGS=myccflags ./configure
Post-configure:
hack top.mk and run ./config.status
now supports DETECTION using:
./configure
env MKDEP_FLAGS=-MM ./configure
env MKDEP=foo ./configure (no tests, no flags)
env MKDEP=foo MKDEP_FLAGS=-bar ./configure (no tests)
Exported AC_MKDEP and AC_MKDEP_FLAGS which can no be used
in build/*.mk
make all
make TMPROOT=/tmp/root install
will install everything under $(TMPROOT)$(prefix). Useful for
building bundling packages/ports for various operating systems.
back-ldbm was using a cache specific lock to protect non-reentrant
database routines from being reenterred. This is inadequate.
Also, reentrant database systems calls were serialized unnecessarily.
Non-reentrant database calls must have a big_mutex. Implemented
this within -lldbm itself. library requires ldbm_initialize()
be called before any other ldbm call to initialize the big_mutex
and to do any other db specific initialization (ie: such as
required for DB2).
The dbc_mutex, dbc_cv, & dbc_readers fileds of dbcache are history.
The "reentrant_database" (REENTRANT_DATABASE) define is also axed.
end of link. Basic order is:
$LDFLAGS internal-libs external-libs $LIBS $LTHREAD_LIBS
LTHREAD_LIBS is last as -lpthread (or equiv) must be last on many systems.
LIBS is next to last as some user might have put -lpthread (or equiv)
in $LIBS.
make depend, make tests, and make install all work when build directory
is not the $srcdir.
Also modified library handling such that -lpthread more likely to be last.
WARNING: new orderring requires use of LDFLAGS to set global loader options
such as -L/usr/local/lib. If you put this in LIBS, some libraries
may not be found a link time.
Likely broke Kerberos/LDAPD support. Don't have those in my testbed.
- slapd's pid/args file names are based on the servers binary file names,
providing for multiple servers beeing run on one host.
- slapd supports the -l command line parameter for selection of a
syslog LOCAL user (-lLOCAL0 .. -lLOCAL7)
- db_appinit() is called during first ldbm_open() in DB 2.x to initialize
DB debugging features (good to find bugs in the DB code :-)
- a patch for a non-initialized variable in DB's 2.x db_open is provided.
one preprocessor macro instead of two. Ran aclocal, autoconf,
autoheader to update derived files. Modify util-int.c to use
CTIME_R_NARGS define and fallback to ctime() if not set.
Made LDAP_API_FEATURE_X_OPENLDAP_REENTRANT dependent upon result.
including use of ctime_r, gethostby*_r, etc.. Also reworked ldap_sort_entries
to be reentrant.
Need to add code to properly set LDAP_API_FEATURE_THREAD_SAFE.
default sysconfdir subdirectory is openldap instead of ldap.
This removes conflicts with other ldap subsystems. Should
be configure option.
*.conf files are now preserved. A *.conf.default are always
created with the latest conf.
*.help and ldapfriendly are now placed in $(datadir)/$(ldap_subdir)
updated man pages to reflect changes.
Updated to use libtool 1.2 (with FreeBSD3.0 a.out v. elf detection).
Updated autoconf to 1.12 with sed patch (don't use stock 1.12).
aclocal.m4 is built using automake's aclocal, v1.3.
Updated mkdep to support libtool .lo files.
Updated automake provided macros for TERMIOS, STRTOD, MKTIME, PTRDIFF_T
Autoconf now checks to ensure C compiler supports ANSI C prototypes.
Updated make files templates.