From 81bc7c8b2812521e1522840cd8f7744825e5a1f8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Wilfried=20G=C3=B6esgens?= Date: Tue, 29 May 2007 13:17:59 +0000 Subject: [PATCH] * move arround some files in the configured build according to the suggestions of formorer * added tid printf --- citadel/Makefile.in | 28 +++++++---- citadel/buildpackages | 4 +- citadel/citadel_dirs.c | 30 ++++++++++-- citadel/citadel_dirs.h | 2 + citadel/configure.ac | 70 +++++++++++++++++++++++---- citadel/debian/citadel-server.dirs | 4 +- citadel/debian/citadel-server.install | 6 +-- citadel/debian/rules | 5 +- citadel/serv_vandelay.c | 4 +- citadel/sysdep.c | 2 + 10 files changed, 120 insertions(+), 35 deletions(-) diff --git a/citadel/Makefile.in b/citadel/Makefile.in index 78052251c..28922f258 100644 --- a/citadel/Makefile.in +++ b/citadel/Makefile.in @@ -18,7 +18,9 @@ RUN_DIR=@MAKE_RUN_DIR@ SPOOL_DIR=@MAKE_SPOOL_DIR@ ETC_DIR=@MAKE_ETC_DIR@ DATA_DIR=@MAKE_DATA_DIR@ +STATICDATA_DIR=@MAKE_STATICDATA_DIR@ DOC_DIR=@MAKE_DOC_DIR@ +UTILBIN_DIR=@MAKE_UTILBIN_DIR@ all: $(TARGETS) .SUFFIXES: .o .d .c @@ -26,7 +28,7 @@ all: $(TARGETS) EXEEXT=@EXEEXT@ CLIENT_TARGETS=citadel$(EXEEXT) whobbs$(EXEEXT) stress$(EXEEXT) -SERVER_TARGETS=citserver setup $(CHKPWD) +SERVER_TARGETS=citserver $(CHKPWD) SERV_MODULES=serv_chat.o \ serv_upgrade.o \ serv_smtp.o \ @@ -58,7 +60,8 @@ SERV_MODULES=serv_chat.o \ UTIL_TARGETS=aidepost msgform \ citmail userlist sendcommand \ - base64 + +UTILBIN_TARGETS= base64 setup prefix=@prefix@ srcdir=@srcdir@ @@ -114,7 +117,7 @@ client: $(CLIENT_TARGETS) server: $(SERVER_TARGETS) $(SERV_MODULES) -utils: $(UTIL_TARGETS) +utils: $(UTIL_TARGETS) $(UTILBIN_TARGETS) citadel$(EXEEXT): citadel.o citadel_ipc.o client_chat.o client_passwords.o \ commands.o html.o ipc_c_tcp.o md5.o messages.o rooms.o routines.o \ @@ -227,12 +230,12 @@ install-data-new: $(INSTALL_DATA) $(srcdir)/citadel.rc $(DESTDIR)$(ETC_DIR)/citadel.rc $(INSTALL_DATA) $(srcdir)/network/mail.aliases $(DESTDIR)$(ETC_DIR)/mail.aliases$ - $(srcdir)/mkinstalldirs $(DESTDIR)$(ETC_DIR)/help - $(srcdir)/mkinstalldirs $(DESTDIR)$(ETC_DIR)/messages + $(srcdir)/mkinstalldirs $(DESTDIR)$(STATICDATA_DIR)/help + $(srcdir)/mkinstalldirs $(DESTDIR)$(STATICDATA_DIR)/messages @for i in \ `find $(srcdir)/help $(srcdir)/messages -type f | grep -v .svn`; do \ - echo $(INSTALL_DATA) $$i $(DESTDIR)$(ETC_DIR)/$$i; \ - $(INSTALL_DATA) $$i $(DESTDIR)$(ETC_DIR)/$$i; \ + echo $(INSTALL_DATA) $$i $(DESTDIR)$(STATICDATA_DIR)/$$i; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(STATICDATA_DIR)/$$i; \ done $(srcdir)/mkinstalldirs $(DESTDIR)$(SPOOL_DIR)/network/spoolin $(srcdir)/mkinstalldirs $(DESTDIR)$(SPOOL_DIR)/network/spoolout @@ -276,7 +279,7 @@ install-exec: all @for i in bio bitbucket files images info userpics; do \ $(srcdir)/mkinstalldirs $(DESTDIR)$(prefix)/$$i; \ done - @for i in $(CLIENT_TARGETS) $(SERVER_TARGETS) $(UTIL_TARGETS); do \ + @for i in $(CLIENT_TARGETS) $(SERVER_TARGETS) $(UTIL_TARGETS) $(UTILBIN_TARGETS); do \ if test -f $$i; then \ echo $(INSTALL) $$i $(DESTDIR)$(prefix)/$$i; \ $(INSTALL) $$i $(DESTDIR)$(prefix)/$$i; \ @@ -296,13 +299,20 @@ install-exec: all install-exec-new: all $(srcdir)/mkinstalldirs $(DESTDIR)/usr/sbin; $(srcdir)/mkinstalldirs $(DESTDIR)/usr/bin; - $(srcdir)/mkinstalldirs $(DESTDIR)$(DOC_DIR); + $(srcdir)/mkinstalldirs $(DESTDIR)/usr/bin; + $(srcdir)/mkinstalldirs $(DESTDIR)$(UTILBIN_DIR); @for i in $(SERVER_TARGETS) $(UTIL_TARGETS); do \ if test -f $$i; then \ echo $(INSTALL) $$i $(DESTDIR)/usr/sbin/$$i; \ $(INSTALL) $$i $(DESTDIR)/usr/sbin/$$i; \ fi \ done + @for i in $(UTILBIN_TARGETS); do \ + if test -f $$i; then \ + echo $(INSTALL) $$i $(DESTDIR)/$(UTILBIN_DIR)/$$i; \ + $(INSTALL) $$i $(DESTDIR)/$(UTILBIN_DIR)/$$i; \ + fi \ + done $(INSTALL) citmail $(DESTDIR)/usr/sbin/sendmail; @for i in $(CLIENT_TARGETS); do \ diff --git a/citadel/buildpackages b/citadel/buildpackages index 2fadd6226..29256a93a 100755 --- a/citadel/buildpackages +++ b/citadel/buildpackages @@ -1,7 +1,7 @@ #!/bin/bash # find out the package version from conf -if test -x Makefile; then - make clean +if test -f Makefile; then + make distclean fi ./bootstrap diff --git a/citadel/citadel_dirs.c b/citadel/citadel_dirs.c index f520dfc4c..a73dff67a 100644 --- a/citadel/citadel_dirs.c +++ b/citadel/citadel_dirs.c @@ -45,8 +45,9 @@ char ctdl_spool_dir[PATH_MAX]="network"; char ctdl_netout_dir[PATH_MAX]="network/spoolout"; char ctdl_netin_dir[PATH_MAX]="network/spoolin"; char ctdl_netcfg_dir[PATH_MAX]="netconfigs"; -char ctdl_sbin_dir[PATH_MAX]; -char ctdl_bin_dir[PATH_MAX]; +char ctdl_utilbin_dir[PATH_MAX]=""; +char ctdl_sbin_dir[PATH_MAX]=""; +char ctdl_bin_dir[PATH_MAX]=""; /* some of our files, that are needed in several places */ char file_citadel_control[PATH_MAX]=""; @@ -62,6 +63,7 @@ char file_crpt_file_key[PATH_MAX]=""; char file_crpt_file_csr[PATH_MAX]=""; char file_crpt_file_cer[PATH_MAX]=""; char file_chkpwd[PATH_MAX]=""; +char file_base64[PATH_MAX]=""; int home_specified = 0; @@ -110,8 +112,13 @@ void calc_dirs_n_files(int relh, int home, const char *relhome,const char *ctdl #endif COMPUTE_DIRECTORY(ctdl_netcfg_dir); COMPUTE_DIRECTORY(ctdl_etc_dir); - COMPUTE_DIRECTORY(ctdl_hlp_dir); - COMPUTE_DIRECTORY(ctdl_message_dir); + +#ifndef HAVE_UTILBIN_DIR + basedir=ctdldir; +#else + basedir=UTILBIN_DIR; +#endif + COMPUTE_DIRECTORY(ctdl_utilbin_dir); #ifndef HAVE_RUN_DIR basedir=ctdldir; @@ -120,6 +127,14 @@ void calc_dirs_n_files(int relh, int home, const char *relhome,const char *ctdl #endif COMPUTE_DIRECTORY(ctdl_run_dir); +#ifndef HAVE_STATICDATA_DIR + basedir=ctdldir; +#else + basedir=STATICDATA_DIR; +#endif + COMPUTE_DIRECTORY(ctdl_hlp_dir); + COMPUTE_DIRECTORY(ctdl_message_dir); + #ifndef HAVE_DATA_DIR basedir=ctdldir; #else @@ -201,6 +216,13 @@ void calc_dirs_n_files(int relh, int home, const char *relhome,const char *ctdl sizeof file_chkpwd, "%schkpwd", ctdl_sbin_dir); + + snprintf(file_base64, + sizeof file_chkpwd, + "%sbase64", + ctdl_utilbin_dir); + + /* * DIRTY HACK FOLLOWS! due to configs in the network dir in the * legacy installations, we need to calculate ifdeffed here. diff --git a/citadel/citadel_dirs.h b/citadel/citadel_dirs.h index 5154a794f..3395db018 100644 --- a/citadel/citadel_dirs.h +++ b/citadel/citadel_dirs.h @@ -28,6 +28,7 @@ extern char ctdl_netcfg_dir[PATH_MAX]; extern char ctdl_bbsbase_dir[PATH_MAX]; extern char ctdl_sbin_dir[PATH_MAX]; extern char ctdl_bin_dir[PATH_MAX]; +extern char ctdl_utilbin_dir[PATH_MAX]; extern char ctdl_key_dir[PATH_MAX]; @@ -45,6 +46,7 @@ extern char file_crpt_file_key[PATH_MAX]; extern char file_crpt_file_csr[PATH_MAX]; extern char file_crpt_file_cer[PATH_MAX]; extern char file_chkpwd[PATH_MAX]; +extern char file_base64[PATH_MAX]; extern void calc_dirs_n_files(int relh, int home, const char *relhome,const char *ctdldir); diff --git a/citadel/configure.ac b/citadel/configure.ac index 7e05d5079..9fbfe80aa 100644 --- a/citadel/configure.ac +++ b/citadel/configure.ac @@ -30,6 +30,18 @@ AC_ARG_WITH(datadir, ] ) +dnl Checks for the Datadir +AC_ARG_WITH(staticdatadir, + [ --with-staticdatadir directory to store citadels system messages under], + [ if test "x$withval" != "xno" ; then + AC_DEFINE(HAVE_STATICDATA_DIR) + AC_DEFINE_UNQUOTED(STATICDATA_DIR, "$withval") + MAKE_STATICDATA_DIR=$withval + AC_SUBST(MAKE_STATICDATA_DIR) + fi + ] +) + dnl Checks for the SSLdir dnl this is a bit different than the rest, @@ -71,6 +83,18 @@ AC_ARG_WITH(sysconfdir, ] ) +dnl Checks for where to put our utilities +AC_ARG_WITH(utility-bindir, + [ --with-utility-bindir directory where to find helper binaries], + [ if test "x$withval" != "xno" ; then + AC_DEFINE(HAVE_UTILBIN_DIR) + AC_DEFINE_UNQUOTED(UTILBIN_DIR, "$withval") + MAKE_UTILBIN_DIR=$withval + AC_SUBST(MAKE_UTILBIN_DIR) + fi + ] +) + dnl Checks for the run-dir for the sockets AC_ARG_WITH(rundir, @@ -609,17 +633,22 @@ if test $ac_cv_struct_ut_type = yes; then AC_DEFINE(HAVE_UT_TYPE) fi -AC_CACHE_CHECK([for call semantics from getpwuid_r], ac_cv_call_getpwuid_r, -[AC_TRY_COMPILE([#include -#include ], [ - struct passwd pw, *pwp; - char pwbuf[64]; - uid_t uid; - - getpwuid_r(uid, &pw, pwbuf, sizeof(pwbuf), &pwp); +AC_CACHE_CHECK( + [for call semantics from getpwuid_r], + ac_cv_call_getpwuid_r, + [AC_TRY_COMPILE([#include +#include ], + [ + struct passwd pw, *pwp; + char pwbuf[64]; + uid_t uid; + + getpwuid_r(uid, &pw, pwbuf, sizeof(pwbuf), &pwp); + ], + ac_cv_call_getpwuid_r=yes, + ac_cv_call_getpwuid_r=no) + ]) -], -ac_cv_call_getpwuid_r=yes, ac_cv_call_getpwuid_r=no)]) if test $ac_cv_call_getpwuid_r = no; then AC_DEFINE(SOLARIS_GETPWUID) AC_DEFINE(F_UID_T, "%ld") @@ -631,6 +660,27 @@ else AC_DEFINE(F_XPID_T, "%x") fi +dnl AC_CHECK_FUNCS(res_query) +AC_CACHE_CHECK([for the resolver calls], + ac_cv_resquery_ok, +[AC_TRY_COMPILE([#include +#include +#include ], + [ + char *domain="www.google.com"; + u_char *answer; + int len; + len = res_query( domain, C_IN, T_A, answer, PACKETSZ ); + ], + ac_cv_resquery_ok=yes, + ac_cv_resquery_ok=no) +]) +echo "resquery: $ac_cv_resquery_ok" + +dnl if test "$ac_cv_resquery_ok" = "no" ; then +dnl AC_DEFINE(RES_QUERY_GONE, "#error resquery not here. can't continue.") +dnl fi + AC_CACHE_CHECK([for ut_host in struct utmp], ac_cv_struct_ut_host, diff --git a/citadel/debian/citadel-server.dirs b/citadel/debian/citadel-server.dirs index 9cc6177c0..91f96c0b5 100644 --- a/citadel/debian/citadel-server.dirs +++ b/citadel/debian/citadel-server.dirs @@ -1,5 +1,5 @@ -etc/citadel/help -etc/citadel/messages +usr/share/citadel-server/help +usr/share/citadel-server/messages var/lib/citadel/bio var/lib/citadel/bitbucket var/lib/citadel/data diff --git a/citadel/debian/citadel-server.install b/citadel/debian/citadel-server.install index 165c9d54c..80704b664 100644 --- a/citadel/debian/citadel-server.install +++ b/citadel/debian/citadel-server.install @@ -1,10 +1,10 @@ etc/citadel/mail.aliases etc/citadel/public_clients -etc/citadel/help -etc/citadel/messages +usr/share/citadel-server/help +usr/share/citadel-server/messages usr/lib/citadel-server/setup +usr/lib/citadel-server/base64 usr/sbin/aidepost -usr/sbin/base64 usr/sbin/chkpwd usr/sbin/citmail usr/sbin/citserver diff --git a/citadel/debian/rules b/citadel/debian/rules index baafe5dff..c5318684b 100755 --- a/citadel/debian/rules +++ b/citadel/debian/rules @@ -23,11 +23,13 @@ configure-stamp: CFLAGS="$(CFLAGS)" ./configure \ --with-prefix=/var/lib/citadel \ --with-datadir=/var/lib/citadel \ + --with-staticdatadir=/usr/share/citadel-server \ --with-spooldir=/var/spool/citadel \ --with-sysconfdir=/etc/citadel \ --with-rundir=/var/run/citadel \ --with-docdir=/usr/share/doc/citadel-doc/ \ --with-ssldir=/etc/ssl/citadel/ \ + --with-utility-bindir=/usr/lib/citadel-server/ \ --with-pam \ --with-db \ --with-zlib \ @@ -80,9 +82,6 @@ install-arch: $(MAKE) DESTDIR=$(DEB_DESTDIR) install-exec-new install-data-new - install -D -p -m0755 $(DEB_DESTDIR)/usr/sbin/setup \ - $(DEB_DESTDIR)/usr/lib/citadel-server/setup - install -D -p -m0755 database_cleanup.sh \ $(DEB_DESTDIR)/usr/share/doc/citadel-server/database_cleanup.sh diff --git a/citadel/serv_vandelay.c b/citadel/serv_vandelay.c index ccbf04b4c..b8ab892f0 100644 --- a/citadel/serv_vandelay.c +++ b/citadel/serv_vandelay.c @@ -231,7 +231,7 @@ void artv_export_message(long msgnum) { /* write it in base64 */ CtdlMakeTempFileName(tempfile, sizeof tempfile); - snprintf(buf, sizeof buf, "%sbase64 -e >%s", ctdl_sbin_dir, tempfile); + snprintf(buf, sizeof buf, "%s -e >%s", file_base64, tempfile); fp = popen(buf, "w"); fwrite(smr.ser, smr.len, 1, fp); pclose(fp); @@ -615,7 +615,7 @@ void artv_import_message(void) { /* decode base64 message text */ CtdlMakeTempFileName(tempfile, sizeof tempfile); - snprintf(buf, sizeof buf, "%sbase64 -d >%s", ctdl_sbin_dir, tempfile); + snprintf(buf, sizeof buf, "%s -d >%s", file_base64, tempfile); fp = popen(buf, "w"); while (client_getln(buf, sizeof buf), strcasecmp(buf, END_OF_MESSAGE)) { fprintf(fp, "%s\n", buf); diff --git a/citadel/sysdep.c b/citadel/sysdep.c index b5b37a7dd..ae90340fc 100644 --- a/citadel/sysdep.c +++ b/citadel/sysdep.c @@ -1013,6 +1013,8 @@ void create_maintenance_threads(void) { lprintf(CTDL_ALERT, "Can't create thread: %s\n", strerror(ret)); } + lprintf(CTDL_NOTICE, "Spawned indexer (%ld) and checkpoint (%ld) thread. \n", + indexer_thread_tid, checkpoint_thread_tid); pthread_attr_destroy(&attr); } -- 2.30.2