Skip to content

Commit

Permalink
reopenldap: adopt autoconf 2.71, modern libmdbx, etc.
Browse files Browse the repository at this point in the history
  • Loading branch information
erthink committed Sep 1, 2022
1 parent 5b21520 commit a59667b
Show file tree
Hide file tree
Showing 13 changed files with 101 additions and 91 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ servers/slapd/back-mdb/mdbx_copy
servers/slapd/back-mdb/mdbx_dump
servers/slapd/back-mdb/mdbx_load
servers/slapd/back-mdb/mdbx_stat
servers/slapd/back-mdb/mdbx_drop
servers/slapd/builtin.c
servers/slapd/shell-backends/passwd-shell
servers/slapd/slapacl
Expand Down
6 changes: 3 additions & 3 deletions bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ else
fi

if [ -z "$AUTORECONF" ]; then
if [ -n "$(which autoreconf)" ] && autoreconf --version | grep -q 'autoreconf (GNU Autoconf) 2\.69'; then
if [ -n "$(which autoreconf)" ] && autoreconf --version | grep -q 'autoreconf (GNU Autoconf) 2\.71'; then
AUTORECONF=$(which autoreconf)
elif [ -n "$(which autoreconf-2.69)" ]; then
elif [ -n "$(which autoreconf-2.71)" ]; then
AUTORECONF=$(which autoreconf-2.69)
elif [ -n "$(which autoreconf2.69)" ]; then
elif [ -n "$(which autoreconf2.71)" ]; then
AUTORECONF=$(which autoreconf2.69)
else
echo "no suitable autoreconf available" >&2; exit 2
Expand Down
2 changes: 1 addition & 1 deletion clients/tools/common.c
Original file line number Diff line number Diff line change
Expand Up @@ -774,7 +774,7 @@ void tool_args(int argc, char **argv) {

if (retcode == -1 || (unsigned)retcode > bv.bv_len) {
fprintf(stderr, "Unable to parse value of general control %s\n",
control);
cvalue);
usage();
}

Expand Down
5 changes: 0 additions & 5 deletions clients/tools/ldapsearch.c
Original file line number Diff line number Diff line change
Expand Up @@ -801,7 +801,6 @@ int handle_private_option(int i) {

if (freeval) {
c[nctrls - 1].ldctl_value = value;

} else {
ber_dupbv(&c[nctrls - 1].ldctl_value, &value);
}
Expand All @@ -827,10 +826,8 @@ int handle_private_option(int i) {
case 'l': /* time limit */
if (strcasecmp(optarg, "none") == 0) {
timelimit = 0;

} else if (strcasecmp(optarg, "max") == 0) {
timelimit = LDAP_MAXINT;

} else {
ival = strtol(optarg, &next, 10);
if (next == NULL || next[0] != '\0') {
Expand Down Expand Up @@ -882,10 +879,8 @@ int handle_private_option(int i) {
case 'z': /* size limit */
if (strcasecmp(optarg, "none") == 0) {
sizelimit = 0;

} else if (strcasecmp(optarg, "max") == 0) {
sizelimit = LDAP_MAXINT;

} else {
ival = strtol(optarg, &next, 10);
if (next == NULL || next[0] != '\0') {
Expand Down
16 changes: 4 additions & 12 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,9 @@ A copy of this license is available in the file LICENSE in the
top-level directory of the distribution or, alternatively, at
<http://www.OpenLDAP.org/license.html>.]])

AC_PREREQ([2.69])dnl Required Autoconf version
AC_PREREQ([2.71])dnl Required Autoconf version
AC_REVISION([$Id: 8c9139400f1cfd3f68bc9b65828515fe85e91ee1 $])
AC_INIT(
[m4_esyscmd_s(build/BRANDING --package)],
[m4_esyscmd_s(build/BRANDING --version-full)],
[m4_esyscmd_s(build/BRANDING --bugs)],
[m4_esyscmd_s(build/BRANDING --tarname)],
[m4_esyscmd_s(build/BRANDING --url)])
AC_INIT([m4_esyscmd_s(build/BRANDING --package)],[m4_esyscmd_s(build/BRANDING --version-full)],[m4_esyscmd_s(build/BRANDING --bugs)],[m4_esyscmd_s(build/BRANDING --tarname)],[m4_esyscmd_s(build/BRANDING --url)])
AC_CONFIG_MACRO_DIR([build/m4])
dnl ----------------------------------------------------------------
dnl OpenLDAP Autoconf Macros
Expand Down Expand Up @@ -145,17 +140,15 @@ AC_ARG_VAR(EXTRA_CFLAGS, [Extra build-time CFLAGS, e.g. -Wall -Werror.
AC_PREFIX_DEFAULT("/opt/reopenldap")

dnl ----------------------------------------------------------------
AC_PROG_CC([gcc clang icc cc])
AC_PROG_CC([gcc clang cc])
if test "${ac_cv_prog_cc_stdc}" = no ; then
AC_MSG_ERROR([ReOpenLDAP requires compiler to support STDC constructs.])
fi

AC_PROG_CC_C99
if test "$ac_cv_prog_cc_c99" = no; then
AC_MSG_ERROR([ReOpenLDAP requires compiler to support C99 constructs.])
fi

AC_PROG_CXX([g++ clang++ icpc c++])
AC_PROG_CXX([g++ clang++ c++])
AC_PROG_CPP
AC_PROG_INSTALL
AC_PROG_LN_S
Expand Down Expand Up @@ -2270,7 +2263,6 @@ AC_CHECK_TYPE([sig_atomic_t],,

AC_TYPE_UID_T

AC_HEADER_TIME
AC_STRUCT_TM
AC_CHECK_MEMBERS([struct stat.st_blksize])
AC_CHECK_MEMBERS([struct passwd.pw_gecos],,,[$ac_includes_default
Expand Down
19 changes: 18 additions & 1 deletion include/ldap_log.h
Original file line number Diff line number Diff line change
Expand Up @@ -129,21 +129,38 @@ LDAP_SLAPD_V(int) slap_syslog_severity;
do { \
if (ldap_debug_mask & (level)) \
ldap_debug_print(__VA_ARGS__); \
if (slap_syslog_mask & (level)) \
else if (slap_syslog_mask & (level)) \
syslog(LDAP_LEVEL_MASK((severity)), __VA_ARGS__); \
} while (0)
#define vLog(level, severity, fmt, ap) \
do { \
if (ldap_debug_mask & (level)) \
ldap_debug_va(fmt, ap); \
else if (slap_syslog_mask & (level)) \
vsyslog(LDAP_LEVEL_MASK((severity)), fmt, ap); \
} while (0)
#elif !defined(LDAP_DEBUG) && (defined(LDAP_SYSLOG) && defined(SLAP_INSIDE))
#define Log(level, severity, ...) \
do { \
if (slap_syslog_mask & (level)) \
syslog(LDAP_LEVEL_MASK((severity)), __VA_ARGS__); \
} while (0)
#define vLog(level, severity, fmt, ap) \
do { \
if (slap_syslog_mask & (level)) \
vsyslog(LDAP_LEVEL_MASK((severity)), fmt, ap); \
} while (0)
#else
#define Log(level, severity, ...) \
do { \
if (ldap_debug_mask & (level)) \
ldap_debug_print(__VA_ARGS__); \
} while (0)
#define vLog(level, severity, fmt, ap) \
do { \
if (ldap_debug_mask & (level)) \
ldap_debug_va(fmt, ap); \
} while (0)
#endif /* LDAP_DEBUG && LDAP_SYSLOG */

#define Debug(level, ...) Log((level), slap_syslog_severity, __VA_ARGS__)
Expand Down
8 changes: 4 additions & 4 deletions libraries/libreldap/memory.c
Original file line number Diff line number Diff line change
Expand Up @@ -378,12 +378,12 @@ struct berval *ber_dupbv_x(struct berval *dst, const struct berval *src,
dup->bv_len = src->bv_len;
}

if (dst) {
if (dup != &tmp)
return dup;
else {
*dst = *dup;
dup = dst;
return dst;
}

return dup;
}

struct berval *ber_dupbv(struct berval *dst, const struct berval *src) {
Expand Down
35 changes: 16 additions & 19 deletions servers/slapd/back-mdb/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

pkglib_LTLIBRARIES =
noinst_LTLIBRARIES = libmdbx.la
bin_PROGRAMS = mdbx_stat mdbx_copy mdbx_dump mdbx_load mdbx_chk
bin_PROGRAMS = mdbx_stat mdbx_copy mdbx_dump mdbx_load mdbx_chk mdbx_drop
back_mdb_la_LDFLAGS = -module
AM_CPPFLAGS = -DSLAPD_IMPORT -I$(srcdir)/.. -I$(top_srcdir)/include

Expand Down Expand Up @@ -45,26 +45,21 @@ libmdbx_la_CFLAGS += -DNDEBUG=1 -DMDBX_DEBUG=0 $(AM_CFLAGS)
endif
libmdbx_la_LIBADD = $(LTHREAD_LIBS)
libmdbx_srcdir = ../../../libraries/libmdbx
libmdbx_la_SOURCES = ../../../libraries/libmdbx/src/version.c \
../../../libraries/libmdbx/src/lck-posix.c \
../../../libraries/libmdbx/src/mdbx.c \
../../../libraries/libmdbx/src/osal.c
libmdbx_la_SOURCES = ../../../libraries/libmdbx/mdbx.c

EXTRA_DIST = ../../../libraries/libmdbx/LICENSE \
../../../libraries/libmdbx/COPYRIGHT \
../../../libraries/libmdbx/README.md \
../../../libraries/libmdbx/mdbx.h \
../../../libraries/libmdbx/README-RU.md \
../../../libraries/libmdbx/AUTHORS \
../../../libraries/libmdbx/src/bits.h \
../../../libraries/libmdbx/src/defs.h \
../../../libraries/libmdbx/src/osal.h \
../../../libraries/libmdbx/.clang-format

dist_man_MANS = ../../../libraries/libmdbx/src/tools/mdbx_dump.1 \
../../../libraries/libmdbx/src/tools/mdbx_copy.1 \
../../../libraries/libmdbx/src/tools/mdbx_stat.1 \
../../../libraries/libmdbx/src/tools/mdbx_load.1
dist_man_MANS = \
../../../libraries/libmdbx/man1/mdbx_chk.1 \
../../../libraries/libmdbx/man1/mdbx_copy.1 \
../../../libraries/libmdbx/man1/mdbx_drop.1 \
../../../libraries/libmdbx/man1/mdbx_dump.1 \
../../../libraries/libmdbx/man1/mdbx_load.1 \
../../../libraries/libmdbx/man1/mdbx_stat.1

back_mdb_la_SOURCES = add.c attr.c banner.c bind.c compare.c \
config.c delete.c dn2entry.c dn2id.c extended.c filterindex.c \
Expand All @@ -75,14 +70,16 @@ back_mdb_la_SOURCES = add.c attr.c banner.c bind.c compare.c \
back_mdb_la_CFLAGS = -I$(srcdir)/.. -I$(top_srcdir)/libraries/libmdbx $(AM_CFLAGS)
back_mdb_la_LIBADD = libmdbx.la

mdbx_chk_SOURCES = ../../../libraries/libmdbx/src/tools/mdbx_chk.c
mdbx_copy_SOURCES = ../../../libraries/libmdbx/src/tools/mdbx_copy.c
mdbx_dump_SOURCES = ../../../libraries/libmdbx/src/tools/mdbx_dump.c
mdbx_load_SOURCES = ../../../libraries/libmdbx/src/tools/mdbx_load.c
mdbx_stat_SOURCES = ../../../libraries/libmdbx/src/tools/mdbx_stat.c
mdbx_chk_SOURCES = ../../../libraries/libmdbx/mdbx_chk.c
mdbx_copy_SOURCES = ../../../libraries/libmdbx/mdbx_copy.c
mdbx_dump_SOURCES = ../../../libraries/libmdbx/mdbx_dump.c
mdbx_load_SOURCES = ../../../libraries/libmdbx/mdbx_load.c
mdbx_stat_SOURCES = ../../../libraries/libmdbx/mdbx_stat.c
mdbx_drop_SOURCES = ../../../libraries/libmdbx/mdbx_drop.c

mdbx_chk_LDADD = libmdbx.la
mdbx_copy_LDADD = libmdbx.la
mdbx_dump_LDADD = libmdbx.la
mdbx_load_LDADD = libmdbx.la
mdbx_stat_LDADD = libmdbx.la
mdbx_drop_LDADD = libmdbx.la
2 changes: 2 additions & 0 deletions servers/slapd/back-mdb/back-mdb.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

#include <reldap.h>
#include "slap.h"

#define MDBX_DEPRECATED
#include "mdbx.h"

#ifndef mdbx_cmp2int
Expand Down
4 changes: 2 additions & 2 deletions servers/slapd/back-mdb/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ static ConfigOCs mdbocs[] = {

static slap_verbmasks mdb_envflags[] = {
{BER_BVC("nosync"), MDBX_UTTERLY_NOSYNC},
{BER_BVC("lazysync"), MDBX_NOSYNC},
{BER_BVC("lazysync"), MDBX_SAFE_NOSYNC},
{BER_BVC("nometasync"), MDBX_NOMETASYNC},
{BER_BVC("writemap"), MDBX_WRITEMAP},
{BER_BVC("mapasync"), MDBX_MAPASYNC},
Expand All @@ -175,7 +175,7 @@ static void *mdb_checkpoint(void *ctx, void *arg) {
struct mdb_info *mdb = rtask->arg;
(void)ctx;

mdbx_env_sync(mdb->mi_dbenv, 1);
mdbx_env_sync(mdb->mi_dbenv);
ldap_pvt_thread_mutex_lock(&slapd_rq.rq_mutex);
ldap_pvt_runqueue_stoptask(&slapd_rq, rtask);
ldap_pvt_thread_mutex_unlock(&slapd_rq.rq_mutex);
Expand Down
4 changes: 1 addition & 3 deletions servers/slapd/back-mdb/idl.c
Original file line number Diff line number Diff line change
Expand Up @@ -450,7 +450,7 @@ int mdb_idl_insert_keys(BackendDB *be, MDBX_cursor *cursor, struct berval *keys,
hi = id;
}
/* delete the old key */
rc = mdbx_cursor_del(cursor, MDBX_NODUPDATA);
rc = mdbx_cursor_del(cursor, MDBX_ALLDUPS);
if (rc != 0) {
err = "c_del dups";
goto fail;
Expand Down Expand Up @@ -1186,11 +1186,9 @@ unsigned mdb_id2l_search(ID2L ids, ID id) {

if (val < 0) {
n = pivot;

} else if (val > 0) {
base = cursor;
n -= pivot + 1;

} else {
return cursor;
}
Expand Down
Loading

0 comments on commit a59667b

Please sign in to comment.