From 7c39a084e6dc12050cc3827e93cce62bb34b8d36 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Wilfried=20G=C3=B6esgens?= Date: Mon, 21 Jul 2008 18:24:51 +0000 Subject: [PATCH] * added a.n.o patches for solaris compatibility * altered the code so it is portable * moved LDFLAGS to the debian packaging scripts --- citadel/Makefile.in | 4 +-- citadel/debian/rules | 3 ++- citadel/modules/vcard/serv_vcard.c | 8 ++++-- citadel/threads.h | 40 ++++++++++++++++++++++++++++++ 4 files changed, 50 insertions(+), 5 deletions(-) diff --git a/citadel/Makefile.in b/citadel/Makefile.in index 683dc313d..51246189e 100644 --- a/citadel/Makefile.in +++ b/citadel/Makefile.in @@ -54,14 +54,14 @@ CFLAGS=@CFLAGS@ -I ./include/ CPPFLAGS=@CPPFLAGS@ -I. -I ./include/ DATABASE=@DATABASE@ DEFS=@DEFS@ -LDFLAGS=@LDFLAGS@ -Wl,--no-undefined +LDFLAGS=@LDFLAGS@ LIBS=@LIBS@ LIBOBJS=@LIBOBJS@ INSTALL=@INSTALL@ INSTALL_DATA=@INSTALL_DATA@ RESOLV=@RESOLV@ SHELL=/bin/sh -SERVER_LDFLAGS=@SERVER_LDFLAGS@ -Wl,--no-undefined +SERVER_LDFLAGS=@SERVER_LDFLAGS@ SERVER_LIBS=@SERVER_LIBS@ SETUP_LIBS=@SETUP_LIBS@ YACC=@YACC@ diff --git a/citadel/debian/rules b/citadel/debian/rules index 95d0aa2e8..1eb7dac98 100755 --- a/citadel/debian/rules +++ b/citadel/debian/rules @@ -25,6 +25,7 @@ ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS))) LDFLAGS+=-Wl,--no-undefined -Wl,--as-needed EXTRA_ARGS = --with-backtrace else + LDFLAGS+=-Wl,--no-undefined -Wl,--as-needed CFLAGS += -O2 endif @@ -38,7 +39,7 @@ configure: configure-stamp configure-stamp: dh_testdir - CFLAGS="$(CFLAGS)" ./configure \ + LDFLAGS="$(LDFLAGS)"; CFLAGS="$(CFLAGS)" ./configure \ --with-prefix=/var/lib/citadel \ --with-datadir=/var/lib/citadel \ --with-staticdatadir=/usr/share/citadel-server \ diff --git a/citadel/modules/vcard/serv_vcard.c b/citadel/modules/vcard/serv_vcard.c index 83f22d1fc..2f126f408 100644 --- a/citadel/modules/vcard/serv_vcard.c +++ b/citadel/modules/vcard/serv_vcard.c @@ -996,10 +996,14 @@ void vcard_newuser(struct ctdluser *usbuf) { /* If using host auth mode, we add an email address based on the login */ if (config.c_auth_mode == AUTHMODE_HOST) { struct passwd pwd; - struct passwd **result = NULL; char pwd_buffer[SIZ]; - + +#ifdef SOLARIS_GETPWUID + if (getpwuid_r(usbuf->uid, &pwd, pwd_buffer, sizeof pwd_buffer) != NULL) { +#else // SOLARIS_GETPWUID + struct passwd **result = NULL; if (getpwuid_r(usbuf->uid, &pwd, pwd_buffer, sizeof pwd_buffer, result) == 0) { +#endif // HAVE_GETPWUID_R snprintf(buf, sizeof buf, "%s@%s", pwd.pw_name, config.c_fqdn); vcard_add_prop(v, "email;internet", buf); } diff --git a/citadel/threads.h b/citadel/threads.h index 65c5689fa..d3df82b69 100644 --- a/citadel/threads.h +++ b/citadel/threads.h @@ -23,6 +23,46 @@ #include "server.h" #include "sysdep_decls.h" +#ifndef timerclear +#define timerclear(tvp) ((tvp)->tv_sec = (tvp)->tv_usec = 0) +#endif + +#ifndef timerisset +#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) +#endif + +#ifndef timercmp +#define timercmp(tvp, uvp, cmp) \ + (((tvp)->tv_sec == (uvp)->tv_sec) ? \ + ((tvp)->tv_usec cmp (uvp)->tv_usec) : \ + ((tvp)->tv_sec cmp (uvp)->tv_sec)) +#endif + +#ifndef timeradd +#define timeradd(tvp, uvp, vvp) \ + do { \ + (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \ + (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \ + if ((vvp)->tv_usec >= 1000000) { \ + (vvp)->tv_sec++; \ + (vvp)->tv_usec -= 1000000; \ + } \ + } while (0) +#endif + +#ifndef timersub +#define timersub(tvp, uvp, vvp) \ + do { \ + (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ + (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ + if ((vvp)->tv_usec < 0) { \ + (vvp)->tv_sec--; \ + (vvp)->tv_usec += 1000000; \ + } \ + } while (0) +#endif + + // #define THREADS_USESIGNALS /* -- 2.30.2