* fixed setup.c to accept our environment variables
authorWilfried Göesgens <willi@citadel.org>
Wed, 21 Mar 2007 19:43:56 +0000 (19:43 +0000)
committerWilfried Göesgens <willi@citadel.org>
Wed, 21 Mar 2007 19:43:56 +0000 (19:43 +0000)
* removed double code we and debhelber had
* some more advanced debconfg capabilities

citadel/debian/changelog
citadel/debian/citadel-server.config
citadel/debian/citadel-server.postinst
citadel/debian/citadel-server.postrm
citadel/debian/citadel-server.prerm
citadel/setup.c

index f6b9c8c487314842a6b68c34da6b22213c776b31..fbcdfe8c64bbd383a1d0ded8dd002742d117ac4f 100644 (file)
@@ -1,3 +1,15 @@
+citadel (7.06-11) unstable; urgency=low
+
+  * fixes to the configure script.
+
+ -- Wilfried Goesgens <citadel@outgesourced.org>  Mon, 19 Mar 2007 12:12:00 +0000
+
+citadel (7.06-10) unstable; urgency=low
+
+  * update to actual Citadel SVN. many new features. see Packages changelog.
+
+ -- Wilfried Goesgens <citadel@outgesourced.org>  Wed, 07 Mar 2007 12:12:00 +0000
+
 citadel (7.05-9) stable; urgency=high
 
   * maintainance release, ical upgrade
index caa3cb81c1021c045533d2cc060241ea8988cecd..80dbb9d9156ad8bbb2ef2e9f34cb1a8c47c9c9ba 100755 (executable)
@@ -5,22 +5,54 @@ set -e
 . /usr/share/debconf/confmodule
 db_version 2.0
 
+db_capb backup 
+
+DO_CONFIGURE=no
+
 if test -n "$2"; then
+# do we want to reconfigure?
     if test "`echo $2 | sed -e 's/[.-]//g'`" -lt 127 \
-        -o $1 = reconfigure
-    then
-        db_input high citadel/ServerIPAddress || true
-        db_input high citadel/Administrator || true
-        db_input high citadel/LoginType || true
-        db_go
+       -o "$1" = reconfigure
+       then
+       DO_CONFIGURE=yes
     fi
 else 
+# are we in first install?
+    if test "$1" = "configure"; then
+       DO_CONFIGURE=yes
+    fi
+fi
+
+
+if test "$DO_CONFIGURE" = "yes"; then
+    STATE=1
+    LASTSTATE=4
+    while [ "$STATE" != 0 -a "$STATE" -le "$LASTSTATE" ]; do
+
+       case "$STATE" in
+           1)
+               db_input high citadel/ServerIPAddress || true
+               ;;
+           2)
+               db_input high citadel/Administrator || true
+               ;;
+           3)
+               db_input high citadel/LoginType || true
+               ;;
+
+
+       esac
+       if db_go; then
+           STATE=$(($STATE + 1))
+       else
+           STATE=$(($STATE - 1))
+       fi
+       
+    done
+
+
     if test "$1" = "configure"; then
-        db_input high citadel/ServerIPAddress || true
-        db_input high citadel/Administrator || true
-        db_input high citadel/LoginType || true
         db_input high citadel/Installnote || true
-        db_go
     fi
 fi
 
index 17bbfa4e4dfc88ff28403538edcdd2b0d24c878b..2134314132b2975a298f3073bb4b523e4e5539d8 100644 (file)
@@ -19,9 +19,9 @@ case "$1" in
 
         db_get citadel/Administrator && admin="$RET"
         db_get citadel/ServerIPAddress && ip_addr="$RET"
-        db_get citadel/LoginType && enable_unix_auth="$RET"
+        db_get citadel/LoginType && deb_enable_unix_auth="$RET"
 
-        if test "$enable_unix_auth" = "true"; then
+        if test "$deb_enable_unix_auth" = "true"; then
             export ENABLE_UNIX_AUTH=yes
         else
             export ENABLE_UNIX_AUTH=no
@@ -29,13 +29,15 @@ case "$1" in
 
         export IP_ADDR=$ip_addr
         export CITADEL=''
+       export CITADEL_PORT=504
         export CITADEL_INSTALLER=yes
+       export CITADEL_UID=`grep citadel /etc/passwd | cut -d :  -f 3`
         export ACT_AS_MTA=no
         export SYSADMIN_NAME=$admin
         export CREATE_XINETD_ENTRY=no
         export CREATE_INITTAB_ENTRY=no
         export NO_INIT_SCRIPTS=yes
-
+set >/tmp/citsetup
         echo "applying your settings."
         /usr/lib/citadel-server/setup -q
 
index 24663be6fab2aa14d0869886026c5f96c4591f51..5ea63e5cbe09f6577029e71563ceaf5a9c47c550 100644 (file)
@@ -10,9 +10,6 @@ db_version 2.0
 case "$1" in
     purge)
         echo "/var/lib/citadel/data not removed, as it may contain your personal data."
-
-        db_purge
-        db_go
     ;;
 
     remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
index 5feb88b68e3cf4f20c94a5a574c719adda2228fb..ef7056e6c06eefbcd5447e664c4060eedaaff200 100644 (file)
@@ -5,11 +5,6 @@ set -e
 
 case "$1" in
     remove|upgrade|deconfigure)
-        if which invoke-rc.d >/dev/null 2>&1; then
-          invoke-rc.d citadel stop
-        else
-          /etc/init.d/citadel stop
-        fi
     ;;
 
     failed-upgrade)
index cbeb6168512f2ac5d453cf7de2fd969316f936e4..9f4bf5dc7ef8d3a36d1a2e48bb77b1740ab4ae79 100644 (file)
@@ -702,8 +702,11 @@ void edit_value(int curr)
        switch (curr) {
 
        case 1:
-               if (getenv("SYSADMIN_NAME")) {
-                       strcpy(config.c_sysadm, getenv("SYSADMIN_NAME"));
+               if (setup_type == UI_SILENT)
+               {
+                       if (getenv("SYSADMIN_NAME")) {
+                               strcpy(config.c_sysadm, getenv("SYSADMIN_NAME"));
+                       }
                }
                else {
                        set_str_val(curr, config.c_sysadm);
@@ -711,44 +714,73 @@ void edit_value(int curr)
                break;
 
        case 2:
+               if (setup_type == UI_SILENT)
+               {               
+                       if (getenv("CITADEL_UID")) {
+                               config.c_ctdluid = atoi(getenv("CITADEL_UID"));
+                       }                                       
+               }
+               else
+               {
 #ifdef __CYGWIN__
-               config.c_ctdluid = 0;   /* XXX Windows hack, prob. insecure */
+                       config.c_ctdluid = 0;   /* XXX Windows hack, prob. insecure */
 #else
-               i = config.c_ctdluid;
-               pw = getpwuid(i);
-               if (pw == NULL) {
-                       set_int_val(curr, &i);
-                       config.c_ctdluid = i;
-               }
-               else {
-                       strcpy(ctdluidname, pw->pw_name);
-                       set_str_val(curr, ctdluidname);
-                       pw = getpwnam(ctdluidname);
-                       if (pw != NULL) {
-                               config.c_ctdluid = pw->pw_uid;
+                       i = config.c_ctdluid;
+                       pw = getpwuid(i);
+                       if (pw == NULL) {
+                               set_int_val(curr, &i);
+                               config.c_ctdluid = i;
                        }
-                       else if (atoi(ctdluidname) > 0) {
-                               config.c_ctdluid = atoi(ctdluidname);
+                       else {
+                               strcpy(ctdluidname, pw->pw_name);
+                               set_str_val(curr, ctdluidname);
+                               pw = getpwnam(ctdluidname);
+                               if (pw != NULL) {
+                                       config.c_ctdluid = pw->pw_uid;
+                               }
+                               else if (atoi(ctdluidname) > 0) {
+                                       config.c_ctdluid = atoi(ctdluidname);
+                               }
                        }
                }
 #endif
                break;
 
        case 3:
-               set_str_val(curr, config.c_ip_addr);
+               if (setup_type == UI_SILENT)
+               {
+                       if (getenv("IP_ADDR")) {
+                               strcpy(config.c_ip_addr, getenv("IP_ADDR"));
+                       }
+               }
+               else {
+                       set_str_val(curr, config.c_ip_addr);
+               }
                break;
 
        case 4:
-               set_int_val(curr, &config.c_port_number);
+               if (setup_type == UI_SILENT)
+               {
+                       if (getenv("CITADEL_PORT")) {
+                               config.c_port_number = atoi(getenv("CITADEL_PORT"));
+                       }
+               }
+               else
+               {
+                       set_int_val(curr, &config.c_port_number);
+               }
                break;
 
        case 5:
-               if (getenv("ENABLE_UNIX_AUTH")) {
-                       if (!strcasecmp(getenv("ENABLE_UNIX_AUTH"), "yes")) {
-                               config.c_auth_mode = 1;
-                       }
-                       else {
-                               config.c_auth_mode = 0;
+               if (setup_type == UI_SILENT)
+               {
+                       if (getenv("ENABLE_UNIX_AUTH")) {
+                               if (!strcasecmp(getenv("ENABLE_UNIX_AUTH"), "yes")) {
+                                       config.c_auth_mode = 1;
+                               }
+                               else {
+                                       config.c_auth_mode = 0;
+                               }
                        }
                }
                else {
@@ -1117,10 +1149,8 @@ int main(int argc, char *argv[])
        if (config.c_managesieve_port == 0) config.c_managesieve_port = 2020;
 
        /* Go through a series of dialogs prompting for config info */
-       if (setup_type != UI_SILENT) {
-               for (curr = 1; curr <= MAXSETUP; ++curr) {
-                       edit_value(curr);
-               }
+       for (curr = 1; curr <= MAXSETUP; ++curr) {
+               edit_value(curr);
        }
 
 /***** begin version update section ***** */