* move to config-header similar to citserver.
authorWilfried Göesgens <willi@citadel.org>
Mon, 1 Oct 2007 21:26:03 +0000 (21:26 +0000)
committerWilfried Göesgens <willi@citadel.org>
Mon, 1 Oct 2007 21:26:03 +0000 (21:26 +0000)
* configure the location of the key-files
* some inacuarcies at fmt_date and sieve.c

webcit/Makefile.in
webcit/config.h [deleted file]
webcit/configure.ac
webcit/crypto.c
webcit/debian/rules
webcit/fmt_date.c
webcit/setup.c
webcit/sieve.c
webcit/webcit.h
webcit/webserver.c

index 06b66da5abb7e1db3b8ddde466464eb0de070f41..ef6465b1f918a315cc69be6e8b0c66659a6fe7a6 100644 (file)
@@ -17,9 +17,9 @@ top_builddir=`pwd`
 LIB_SUBDIRS=
 PROG_SUBDIRS=@PROG_SUBDIRS@
 SUBDIRS=$(LIB_SUBDIRS) $(PROG_SUBDIRS) 
-LOCALEDIR=@LOCALEDIR@
-WWWDIR=@WWWDIR@
-EDITORDIR=@EDITORDIR@
+#LOCALEDIR=@LOCALEDIR@
+#WWWDIR=@WWWDIR@
+#EDITORDIR=@EDITORDIR@
 
 # End of configuration section
 
@@ -68,17 +68,23 @@ webserver: webserver.o context_loop.o tools.o ical_dezonify.o \
        $(LIBOBJS) $(LIBS) $(LDFLAGS) -o webserver
 
 .c.o:
-       $(CC) $(CFLAGS) $(DEFS) -c $(PTHREAD_DEFS) \
-               -DWEBCITDIR=\"$(WWWDIR)\" \
-               -DLOCALEDIR=\"$(LOCALEDIR)\" \
-               -DEDITORDIR=\"$(EDITORDIR)\" $<
+       $(CC) $(CFLAGS) $(DEFS) -c $(PTHREAD_DEFS) $<
 
 .cpp.o:
-       $(CC) $(CFLAGS) $(DEFS) -c $(PTHREAD_DEFS) \
-               -DWEBCITDIR=\"$(WWWDIR)\" \
-               -DLOCALEDIR=\"$(LOCALEDIR)\"  \
-               -DEDITORDIR=\"$(EDITORDIR)\"$<
-
+       $(CC) $(CFLAGS) $(DEFS) -c $(PTHREAD_DEFS) $<
+
+#.c.o:
+#      $(CC) $(CFLAGS) $(DEFS) -c $(PTHREAD_DEFS) \
+#              -DWEBCITDIR=\"$(WWWDIR)\" \
+#              -DLOCALEDIR=\"$(LOCALEDIR)\" \
+#              -DEDITORDIR=\"$(EDITORDIR)\" $<
+#
+#.cpp.o:
+#      $(CC) $(CFLAGS) $(DEFS) -c $(PTHREAD_DEFS) \
+#              -DWEBCITDIR=\"$(WWWDIR)\" \
+#              -DLOCALEDIR=\"$(LOCALEDIR)\"  \
+#              -DEDITORDIR=\"$(EDITORDIR)\"$<
+#
 Makefile: $(srcdir)/Makefile.in config.status
        CONFIG_FILES=Makefile CONFIG_HEADERS= $(SHELL) ./config.status
 
diff --git a/webcit/config.h b/webcit/config.h
deleted file mode 100644 (file)
index 837193b..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-/**
- *     Ugly hack to make the non-automake build work without source changes
- */
-
-#define _GNU_SOURCE
-#define RUNDIR         WEBCITDIR
-#define BASEDIR                WEBCITDIR
-#define DATADIR                WEBCITDIR
-#define PREFIX         WEBCITDIR
index 4efbb6412b3cf49998920de6dc24c7d48ab869e3..d5335eb4d3ce82aae53067963718c232cbac6e7d 100644 (file)
@@ -5,19 +5,31 @@ AC_INIT(webserver.c)
 
 PACKAGE=webcit
 VERSION=7.13
-AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
-AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
+AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [our package name])
+AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [our package version])
 AC_SUBST(PACKAGE)
 AC_SUBST(VERSION)
 
 AC_SUBST(PROG_SUBDIRS)
+AC_DEFINE(PROG_SUBDIRS, [], [Program dirs])
 AC_CANONICAL_HOST
 AC_PROG_INSTALL
 missing_dir=`cd $ac_aux_dir && pwd`
 AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
 AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
+
+dnl Make sure we see all GNU and Solaris extensions.
+AC_GNU_SOURCE
+
 AC_CHECK_PROG(SED, sed, sed, no)
 AC_PREFIX_DEFAULT(/usr/local/webcit)
+if test "$prefix" = NONE; then
+       AC_DEFINE_UNQUOTED(WEBCITDIR, "$ac_default_prefix", [define this to the Citadel home directory])
+       ssl_dir="$ac_default_prefix/keys"
+else
+       AC_DEFINE_UNQUOTED(WEBCITDIR, "$prefix", [define this to the Citadel home directory])
+       ssl_dir="$prefix/keys"
+fi
 
 AC_ARG_WITH(with_libical, [  --with-libical          use libical calendaring library])
 AC_ARG_WITH(with_zlib,    [  --with-zlib             use zlib compression if present])
@@ -125,7 +137,7 @@ main() {
                ], 
                [
                        LIBS="-lical $LIBS"
-                       AC_DEFINE(HAVE_LIBICAL)
+                       AC_DEFINE(HAVE_LIBICAL,[],[whether we have libical available])
                ]
        )
 fi
@@ -142,7 +154,7 @@ fi
 
 if test "x$ok_zlib" = xyes ; then
         LIBS="-lz $LIBS"
-        AC_DEFINE(HAVE_ZLIB)
+        AC_DEFINE(HAVE_ZLIB,[],[whether we have zlib])
 fi
 
 
@@ -227,7 +239,7 @@ if test "$with_ssl" != "no"; then
        CFLAGS="$saved_CFLAGS"
        
        if test "x$ac_cv_openssldir" != "xno" ; then
-               AC_DEFINE(HAVE_OPENSSL)
+               AC_DEFINE(HAVE_OPENSSL,[],[whethe we have openssl])
                LIBS="-lssl -lcrypto $LIBS"
                dnl Need to recover ssldir - test above runs in subshell
                ssldir=$ac_cv_openssldir
@@ -255,6 +267,19 @@ if test "$with_ssl" != "no"; then
                fi
        fi
 fi
+dnl Checks for the SSLdir
+dnl this is a bit different than the rest, 
+dnl because of the citadel used to have a keys/ subdir.
+AC_ARG_WITH(ssldir, 
+                   [  --with-ssldir          directory to store the ssl certificates under],
+                       [ if test "x$withval" != "xno" ; then
+                                             
+                                                 ssl_dir="$withval"
+                         fi
+                       AC_SUBST(MAKE_SSL_DIR)
+                       ]
+)
+AC_DEFINE_UNQUOTED(SSL_DIR, "$ssl_dir", [were should we put our keys?])
 
 dnl Here is the check for a usable iconv
 
@@ -280,7 +305,7 @@ fi
 
 if test "$ok_iconv" != "no"; then
        AC_MSG_RESULT(WebCit will be built with character set conversion.)
-       AC_DEFINE(HAVE_ICONV)
+       AC_DEFINE(HAVE_ICONV,[],[whether we have iconv for charset conversion])
 else
        AC_MSG_RESULT(WebCit will be built without character set conversion.)
 fi
@@ -335,7 +360,7 @@ fi
 
 if test "$ok_nls" != "no"; then
        AC_MSG_RESULT(WebCit will be built with national language support.)
-       AC_DEFINE(ENABLE_NLS)
+       AC_DEFINE(ENABLE_NLS, [], [whether we have NLS support])
        PROG_SUBDIRS="$PROG_SUBDIRS po"
 else
        AC_MSG_RESULT(WebCit will be built without national language support.)
@@ -365,46 +390,75 @@ AC_ARG_WITH(backtrace,
 )
 
 if test "$prefix" = NONE; then
-       LOCALEDIR=$ac_default_prefix
-       WWWDIR=$ac_default_prefix
-       EDITORDIR=$ac_default_prefix/tiny_mce
+       datadir=$ac_default_prefix
+       localedir=$ac_default_prefix
+       wwwdir=$ac_default_prefix
+       rundir=$ac_default_prefix
+       editordir=$ac_default_prefix/tiny_mce
 else
-       LOCALEDIR=$prefix
-       WWWDIR=$prefix
-       EDITORDIR=$prefix/tiny_mce
+       localedir=$prefix
+       wwwdir=$prefix
+       datadir=$prefix
+       rundir=$prefix
+       editordir=$prefix/tiny_mce
 fi
 
 dnl where to put the locale files
 AC_ARG_WITH(localedir, 
                    [  --with-localedir          directory to put the locale files to],
                        [ if test "x$withval" != "xno" ; then
-                                                 LOCALEDIR=$withval
+                           localedir=$withval
                          fi
                        ]
 )
-AC_SUBST(LOCALEDIR)
+AC_DEFINE_UNQUOTED(LOCALEDIR, "$localedir",[where to find our pot files])
 
 dnl Checks where to put our templates
 AC_ARG_WITH(wwwdir, 
                    [  --with-wwwdir             directory to put our templates],
                        [ if test "x$withval" != "xno" ; then
-                                                 WWWDIR=$withval
+                               wwwdir=$withval
+                         fi
+                       ]
+)
+AC_DEFINE_UNQUOTED(WWWDIR, "$wwwdir", [where to find our templates and pics])
+
+
+
+dnl Checks for the run-dir for the sockets
+AC_ARG_WITH(rundir, 
+                       [  --with-rundir           directory to place runtime files (UDS) to?],
+                       [ if test "x$withval" != "xno" ; then
+                                           AC_DEFINE(HAVE_RUN_DIR, [], [should we put our non volatile files elsewhere?])
+                                               
+                                               rundir=$withval
+                                               AC_SUBST(MAKE_RUN_DIR)
                          fi
                        ]
 )
-AC_SUBST(WWWDIR)
+AC_DEFINE_UNQUOTED(RUNDIR, "$rundir", [define, where the config should go in unix style])
+
+dnl Checks for the Datadir
+AC_ARG_WITH(datadir, 
+                   [  --with-datadir          directory to store the databases under],
+                       [ if test "x$withval" != "xno" ; then
+                                             datadir=$withval
+                         fi
+                       ]
+)
+AC_DEFINE_UNQUOTED(DATADIR, "$datadir",[define, if the user suplied a data-directory to use.])
 
 dnl Checks where to put our editor
 AC_ARG_WITH(editordir, 
                    [  --with-editordir             directory to put our editor],
                        [ if test "x$withval" != "xno" ; then
-                                                 EDITORDIR=$withval
+                               editordir=$withval
                          fi
                        ]
 )
-AC_SUBST(EDITORDIR)
-
+AC_DEFINE_UNQUOTED(EDITORDIR, "$editordir", [where to find our mail editor])
 
+AC_CONFIG_HEADER(sysdep.h)
 AC_OUTPUT(Makefile po/Makefile )
 
 echo ------------------------------------------------------------------------
index c3d80e3ab6707cbaf1eab7f7c411f56775425820..1515ff39762e4a195f00d1435947dd4151d00acf 100644 (file)
@@ -7,7 +7,7 @@
  */
 
 /*@{*/
-#include "config.h"
+#include "sysdep.h"
 #ifdef HAVE_OPENSSL
 
 #include "webcit.h"
@@ -15,9 +15,9 @@
 /** \todo dirify */
 /** where to find the keys */
 #define        CTDL_CRYPTO_DIR         "./keys" 
-#define CTDL_KEY_PATH          CTDL_CRYPTO_DIR "/citadel.key" /**< the key */
-#define CTDL_CSR_PATH          CTDL_CRYPTO_DIR "/citadel.csr" /**< the csr file */
-#define CTDL_CER_PATH          CTDL_CRYPTO_DIR "/citadel.cer" /**< the cer file */
+#define CTDL_KEY_PATH          file_crpt_file_key /**< the key */
+#define CTDL_CSR_PATH          file_crpt_file_csr /**< the csr file */
+#define CTDL_CER_PATH          file_crpt_file_cer /**< the cer file */
 #define SIGN_DAYS              365 /**< how long our certificate should live */
 
 SSL_CTX *ssl_ctx;              /**< SSL context */
index bbdd4152d20f0641bc1e1b98335eb29197042046..1c5c346abf0e21970f96894d2f2d656f26ddb99e 100755 (executable)
@@ -18,7 +18,7 @@ ifneq (,$(findstring profiling,$(DEB_BUILD_OPTIONS)))
        PROFILE_ARGS= --with-gprof
 endif
 ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
-       CFLAGS += -O0 -ggdb -rdynamic -D_GNU_SOURCE -MD -MP 
+       CFLAGS += -O0 -ggdb -rdynamic -MD -MP 
        LDFLAGS += -pg 
        EXTRA_ARGS =  --with-backtrace
 else
@@ -37,6 +37,7 @@ configure-stamp:
                --with-editordir=/usr/share/tinymce/www \
                --with-rundir=/var/run/citadel \
                --with-ical --with-db --with-ldap \
+                --with-ssldir=/etc/ssl/webcit/ \
                --with-zlib --with-ssl --with-libiconf \
                --with-newt --with-included-gettext \
                --enable-debug $(EXTRA_ARGS) $(PROFILE_ARGS)
index ff0df01be8ad3816d31ed7981d14a90aa36210c5..578ca9875e7e70bbfe62c5bb963559c563289f06 100644 (file)
@@ -53,7 +53,6 @@ void fmt_date(char *buf, time_t thetime, int brief)
        int time_format;
        
        time_format = get_time_format_cached ();
-/// TODO: what about the time format?
        today_timet = time(NULL);
        localtime_r(&today_timet, &today_tm);
 
index 5bb7fec168df40825a905386c9bcadfaef46ea9a..f1166e78cb86eb12d4756d262394dae956b931af 100644 (file)
@@ -7,7 +7,7 @@
  *
  */
 
-#include "config.h"
+#include "sysdep.h"
 #include "webcit.h"
 #include "webserver.h"
 
@@ -373,7 +373,7 @@ void install_init_scripts(void)
        {
                if ((stat("/etc/rc.d/init.d/", &etcinitd) == -1) &&
                    (errno == ENOENT))
-                       initfile = PREFIX"/webcit.init";
+                       initfile = WEBCITDIR"/webcit.init";
                else
                        initfile = "/etc/rc.d/init.d/webcit";
        }
@@ -585,7 +585,7 @@ int main(int argc, char *argv[])
        }
 
        /* Get started in a valid setup directory. */
-       strcpy(setup_directory, PREFIX);
+       strcpy(setup_directory, WEBCITDIR);
        if ( (using_web_installer) && (getenv("WEBCIT") != NULL) ) {
                strcpy(setup_directory, getenv("WEBCIT"));
        }
index d2adb28d4adbe5cf656cda93cea00fcd48450155..3dde76a609fa029e0c17e8910b53fe1757892db5 100644 (file)
@@ -425,9 +425,9 @@ void parse_fields_from_rule_editor(void) {
        char buf[256];
        char fname[256];
        char rule[2048];
-       char encoded_rule;
+       char *encoded_rule;
        char my_addresses[4096];
-       long encoded_len;
+       size_t encoded_len;
        
        encoded_len = 4096;
        encoded_rule = (char*) malloc (encoded_len);
index 0ae981222f96f3a59d8bb16ba84a2b5dc9ca82b5..5b7f2778e02b86992563342150b19912b1bddc08 100644 (file)
@@ -1,7 +1,6 @@
 /* $Id$ */
 
-#include "config.h"
-
+#include "sysdep.h"
 
 #include <ctype.h>
 #include <stdlib.h>
@@ -424,6 +423,10 @@ extern pthread_key_t MyConKey;
 #ifdef HAVE_OPENSSL
 #define THREADSSL ((SSL *)pthread_getspecific(ThreadSSL))
 extern pthread_key_t ThreadSSL;
+extern char ctdl_key_dir[PATH_MAX];
+extern char file_crpt_file_key[PATH_MAX];
+extern char file_crpt_file_csr[PATH_MAX];
+extern char file_crpt_file_cer[PATH_MAX];
 #endif
 
 struct serv_info serv_info;
index 07f8fad85cdc821604f6a44a67fbb1d30d01cc19..d280ac8feed7ddf40b33c929a13be7b7b69eb7e6 100644 (file)
@@ -31,6 +31,12 @@ extern void *housekeeping_loop(void);
 extern pthread_mutex_t SessionListMutex;
 extern pthread_key_t MyConKey;
 
+
+char ctdl_key_dir[PATH_MAX]=SSL_DIR;
+char file_crpt_file_key[PATH_MAX]="";
+char file_crpt_file_csr[PATH_MAX]="";
+char file_crpt_file_cer[PATH_MAX]="";
+
 char socket_dir[PATH_MAX];      /**< where to talk to our citadel server */
 static const char editor_absolut_dir[PATH_MAX]=EDITORDIR; /**< nailed to what configure gives us. */
 static char static_dir[PATH_MAX]; /**< calculated on startup */
@@ -770,6 +776,20 @@ int main(int argc, char **argv)
        COMPUTE_DIRECTORY(static_dir);
        basedir=DATADIR "/static.local";
        COMPUTE_DIRECTORY(static_local_dir);
+
+       snprintf(file_crpt_file_key,
+                sizeof file_crpt_file_key, 
+                "%s/citadel.key",
+                ctdl_key_dir);
+       snprintf(file_crpt_file_csr,
+                sizeof file_crpt_file_csr, 
+                "%s/citadel.csr",
+                ctdl_key_dir);
+       snprintf(file_crpt_file_cer,
+                sizeof file_crpt_file_cer, 
+                "%s/citadel.cer",
+                ctdl_key_dir);
+
        /** we should go somewhere we can leave our coredump, if enabled... */
        lprintf(9, "Changing directory to %s\n", socket_dir);
        if (chdir(webcitdir) != 0) {