* added a.n.o patches for solaris compatibility
authorWilfried Göesgens <willi@citadel.org>
Mon, 21 Jul 2008 18:24:51 +0000 (18:24 +0000)
committerWilfried Göesgens <willi@citadel.org>
Mon, 21 Jul 2008 18:24:51 +0000 (18:24 +0000)
* altered the code so it is portable
* moved LDFLAGS to the debian packaging scripts

citadel/Makefile.in
citadel/debian/rules
citadel/modules/vcard/serv_vcard.c
citadel/threads.h

index 683dc313df9bf9dc3dcc285957a94c55fbebf1fc..51246189e9fe721b1ca5ec065aa7d589f88ffd3f 100644 (file)
@@ -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@
index 95d0aa2e86e78193bdf25549d9d700ca9167d4ee..1eb7dac98ec0881c737a0aa5d2f7b6c7d929140c 100755 (executable)
@@ -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 \
index 83f22d1fc41c89ddd98f131fd2b27618513df3fc..2f126f40852b3cae4e2e44225c715c6f1ab26064 100644 (file)
@@ -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);
                }
index 65c5689fac86c639e3e7a23458a6244a0a5dad85..d3df82b69f220dcfcdda5f09b6b1478870def800 100644 (file)
 #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
 
 /*