r495 - in vdr/vdr-xxv/trunk/debian: . debconf patches

Tobias Grimm pkg-vdr-dvb-changes@lists.alioth.debian.org
Wed, 27 Apr 2005 22:53:11 +0000


Author: tiber-guest
Date: 2005-04-27 22:53:10 +0000 (Wed, 27 Apr 2005)
New Revision: 495

Added:
   vdr/vdr-xxv/trunk/debian/debconf/update-config.pl
   vdr/vdr-xxv/trunk/debian/preinst
   vdr/vdr-xxv/trunk/debian/prerm
Removed:
   vdr/vdr-xxv/trunk/debian/debconf/db_tools.sh
   vdr/vdr-xxv/trunk/debian/debconf/get_db_password.pl
   vdr/vdr-xxv/trunk/debian/debconf/set_config.pl
Modified:
   vdr/vdr-xxv/trunk/debian/TODO.Debian
   vdr/vdr-xxv/trunk/debian/changelog
   vdr/vdr-xxv/trunk/debian/config
   vdr/vdr-xxv/trunk/debian/control
   vdr/vdr-xxv/trunk/debian/init
   vdr/vdr-xxv/trunk/debian/install
   vdr/vdr-xxv/trunk/debian/patches/04_mplayer-log.dpatch
   vdr/vdr-xxv/trunk/debian/postinst
   vdr/vdr-xxv/trunk/debian/postrm
   vdr/vdr-xxv/trunk/debian/templates
Log:
use dbconfig-common now

Modified: vdr/vdr-xxv/trunk/debian/TODO.Debian
===================================================================
--- vdr/vdr-xxv/trunk/debian/TODO.Debian	2005-04-24 16:02:54 UTC (rev 494)
+++ vdr/vdr-xxv/trunk/debian/TODO.Debian	2005-04-27 22:53:10 UTC (rev 495)
@@ -2,12 +2,8 @@
 
 TODO:
 
-* Is it ok to use scripts from /usr/share/xxv/debconf in postinst?
-* Is there a clean way to share the common code in postinst and postrm?
-* Use dbconfig-common by Sean Finney, as soon as it is available in Debian
 * Is /usr/share/perl5/xxv ok for modules installed by xxv? Maybe 
   /usr/share/xxv/lib would be a better choice?
-* where should the wml/ -dir be located? (see xxvd.cfg)
 * Install modules optionally and making them selectable by debconf?
 * Is there anything, that should go to the README.Debian?
 * lintian complains about the docu.tmpl-link in /var/cache... 
@@ -17,7 +13,6 @@
 * Make note in debconf and/or README.Debian about default user xxv:xxv after
   initial installation
 * Test installation with no mysql installed / fresh mysql installation
-* Are the debconf-password-questions descriptive enough?
 * Ask for auto-start during debconf (/etc/default/vdr-xxv:ENABLED=0|1)
 
 DONE:
@@ -46,3 +41,8 @@
 * Make debconf translatable (po-debconf)
 * Make german debconf translation
 * Check that logrotate works!
+* Use dbconfig-common by Sean Finney, as soon as it is available in Debian
+* Is it ok to use scripts from /usr/share/xxv/debconf in postinst?
+* Is there a clean way to share the common code in postinst and postrm?
+* where should the wml/ -dir be located? (see xxvd.cfg)
+* Are the debconf-password-questions descriptive enough?

Modified: vdr/vdr-xxv/trunk/debian/changelog
===================================================================
--- vdr/vdr-xxv/trunk/debian/changelog	2005-04-24 16:02:54 UTC (rev 494)
+++ vdr/vdr-xxv/trunk/debian/changelog	2005-04-27 22:53:10 UTC (rev 495)
@@ -1,3 +1,11 @@
+vdr-xxv (0.32+svn20050427-1) UNRELEASED; urgency=low
+
+  * New upstream release
+  * Use debconf_common now
+  * TODO: Added database upgrade capability
+
+ -- Debian VDR Team <pkg-vdr-dvb-devel@lists.alioth.debian.org>  Sun, 24 Apr 2005 13:05:32 +0200
+
 vdr-xxv (0.20-5) unstable; urgency=low
 
   * Tobias Grimm <tg@e-tobi.net>
@@ -3,5 +11,5 @@
     - Set owner for whole /var/cache/vdr-xxv instead of only the sub dirs
 
- -- Debian VDR Team <pkg-vdr-dvb-devel@lists.alioth.debian.org>>  Sat,  2 Apr 2005 01:24:23 +0200
+ -- Debian VDR Team <pkg-vdr-dvb-devel@lists.alioth.debian.org>  Sat,  2 Apr 2005 01:24:23 +0200
 
 vdr-xxv (0.20-4) unstable; urgency=low

Modified: vdr/vdr-xxv/trunk/debian/config
===================================================================
--- vdr/vdr-xxv/trunk/debian/config	2005-04-24 16:02:54 UTC (rev 494)
+++ vdr/vdr-xxv/trunk/debian/config	2005-04-27 22:53:10 UTC (rev 495)
@@ -1,51 +1,33 @@
 #!/bin/sh
 
+set -e
+# set -x
+
 . /usr/share/debconf/confmodule
 db_version 2.0
 db_capb backup
 
-set -e
+# set defaults for dbconfig-common
+dbc_dbuser="xxv"
+dbc_dbname="xxv"
 
+#FIXME: Read defaults from xxvd.cfg!!!
+
+# source dbconfig-common tools
+. /usr/share/debconf/confmodule
+. /usr/share/dbconfig-common/dpkg/config.mysql 
+
+# run dbconfig-common 
+dbc_go vdr-xxv $@
+
+# run non-db-related debconf dialogs
 STATE=1
-while [ "$STATE"  != 0 -a "$STATE" != 7 ] ; do
+while [ "$STATE"  != 0 -a "$STATE" != 3 ] ; do
     case "$STATE" in
         1)
-            db_input medium vdr-xxv/db_manage || true
-        ;;
-        2)
-            db_get vdr-xxv/db_manage || true ; dbmanaged=$RET
-            db_get vdr-xxv/db_configured || true ; dbconfigured=$RET
-            if [ "$dbmanaged" = "false" -o "$dbconfigured" = "true" ] ; then
-                STATE=4
-            fi
-        ;;
-        3)
-            db_input critical vdr-xxv/db_server || true
-            db_input low vdr-xxv/db_port || true
-        ;;
-        4)
-            db_get vdr-xxv/db_server || true
-            tmpval="$RET"
-            db_subst vdr-xxv/db_admin host "$tmpval"
-            db_subst vdr-xxv/db_adminpass host "$tmpval"
-
-            db_get vdr-xxv/db_port || true
-            tmpval="$RET"
-            db_subst vdr-xxv/db_admin port "$tmpval"
-            db_subst vdr-xxv/db_adminpass port "$tmpval"
-
-            db_beginblock
-            db_input medium vdr-xxv/db_database || true
-            db_input critical vdr-xxv/db_admin || true
-            db_input critical vdr-xxv/db_adminpass || true
-            db_input low vdr-xxv/db_user || true
-            db_input low vdr-xxv/db_userpass || true
-            db_endblock
-        ;;
-        5)
             db_input medium vdr-xxv/port_configure || true
         ;;
-        6)
+        2)
             db_get vdr-xxv/port_configure || true ; portconfigure=$RET
             if [ "$portconfigure" = "true" ] ; then
                 db_beginblock

Modified: vdr/vdr-xxv/trunk/debian/control
===================================================================
--- vdr/vdr-xxv/trunk/debian/control	2005-04-24 16:02:54 UTC (rev 494)
+++ vdr/vdr-xxv/trunk/debian/control	2005-04-27 22:53:10 UTC (rev 495)
@@ -8,7 +8,7 @@
 
 Package: vdr-xxv
 Architecture: all
-Depends:  ${perl:Depends}, debconf (>= 0.5.00), makepasswd, mysql-client, vdr (>= 1.2.6-6), libevent-perl, libdbi-perl, libtimedate-perl, libtime-hires-perl, libmime-base64-perl, libconfig-tiny-perl, libtemplate-perl, libdate-manip-perl, liburi-perl
+Depends:  ${perl:Depends}, debconf (>= 0.5.00), dbconfig-common (>= 1.7.1), makepasswd, mysql-client, vdr (>= 1.2.6-6), libevent-perl, libdbi-perl, libtimedate-perl, libtime-hires-perl, libmime-base64-perl, libconfig-tiny-perl, libtemplate-perl, libdate-manip-perl, liburi-perl, ttf-bitstream-vera, libproc-process-perl, libwww-mechanize-perl, libgd-gd2-noxpm-perl | libgd-gd2-perl, libgd-graph-perl
 Recommends: mysql-server
 Suggests: mplayer, vdr-plugin-osdteletext | vdr-plugin-teletext
 Description: Provides a central service to administer VDR

Deleted: vdr/vdr-xxv/trunk/debian/debconf/db_tools.sh
===================================================================
--- vdr/vdr-xxv/trunk/debian/debconf/db_tools.sh	2005-04-24 16:02:54 UTC (rev 494)
+++ vdr/vdr-xxv/trunk/debian/debconf/db_tools.sh	2005-04-27 22:53:10 UTC (rev 495)
@@ -1,138 +0,0 @@
-#
-# Tobias Grimm <tg@e-tobi.net> 
-#
-# Some functions for database management, sourced by postinst.
-#
-
-check_params()
-{
-    if [ -z "$dbserver" ] ; then
-        error="No database server specified."
-    elif [ -z "$dbadmin" ] ; then
-        error="No database administrator specified."
-    elif [ -z "$dbdatabase" ] ; then
-       error="No database name specified."
-    else
-        return 0
-    fi
-    return 1
-}
-
-build_mysqlcmd()
-{
-    MYSQLCMD="mysql --host=$dbserver --user=$dbadmin"
-
-    if [ -n "$dbadminpass" ] ; then
-        MYSQLCMD="$MYSQLCMD \"--password=$dbadminpass\""
-    fi
-    if [ -n "$dbport" ] ; then
-        MYSQLCMD="$MYSQLCMD \"--port=$dbport\""
-    fi
-}
-
-check_server()
-{
-    if ! check_params ; then
-        return 1
-    fi
-
-    build_mysqlcmd
-
-    if ! eval $MYSQLCMD </dev/null >/dev/null 2>&1 ; then
-        error="Error when trying to connect to the mysql database."
-        return 1
-    fi
-    return 0
-}
-
-check_database()
-{
-    if ! eval $MYSQLCMD -f -B -e "\"show databases;\"" | \
-      grep -e "^$dbdatabase$" > /dev/null 2>&1 ; then
-        return 1
-    fi
-    return 0
-}
-
-check_user()
-{
-    if ! eval $MYSQLCMD -f mysql -e \
-      "\"SELECT User from user where User='$dbuser';\"" | \
-      grep -e "^$dbuser$" > /dev/null 2>&1 ; then
-        return 1
-    fi
-    return 0
-}
-
-create_database()
-{
-    if ! check_database ; then
-        if eval $MYSQLCMD -f -e "\"CREATE DATABASE $dbdatabase;\"" ; then
-            if ! eval $MYSQLCMD -f -B -e "\"show databases;\"" | \
-              grep -e "^$dbdatabase$" > /dev/null 2>&1 ; then
-                error="Database $dbdatabase NOT successfully created. "\
-                  "You have to do it manually."
-                return 1
-            fi
-        else
-            error="Unable to create database."
-            return 1
-        fi
-    fi
-    return 0
-}
-
-create_user()
-{
-    local script
-
-    script="
-    GRANT ALL PRIVILEGES ON \`$dbdatabase\`.* TO \`$dbuser\`@'%'
-            IDENTIFIED BY '$dbuserpass';
-    GRANT ALL PRIVILEGES ON \`$dbdatabase\`.* TO \`$dbuser\`@localhost
-            IDENTIFIED BY '$dbuserpass';
-    flush privileges;"
-    
-    if eval $MYSQLCMD -f mysql -e '"$script"'  ; then
-        if ! eval $MYSQLCMD -f mysql -e '"select User from user;"' | \
-          grep $dbuser >/dev/null 2>&1 ; then
-            error="Database user $dbuser NOT successfully added."
-            return 1
-        fi
-    else
-        error="Unable to create user."
-        return 1
-    fi
-    return 0
-}
-
-purge_database()
-{
-    if eval $MYSQLCMD -f -e "\"DROP DATABASE IF EXISTS $dbdatabase;\"" ; then
-        if check_database ; then
-            error="Database $dbdatabase NOT successfully droped." 
-            return 1
-        fi
-    else
-        error="Unable to drop database."
-        return 1
-    fi
-    return 0
-}
-
-purge_user()
-{
-    if check_user ; then
-        if eval $MYSQLCMD -f mysql -e \
-          "\"DELETE FROM user where User='$dbuser';\"" ; then
-            if check_user ; then
-                error="User $dbuser NOT successfully deleted." 
-                return 1
-            fi
-        else
-            error="Unable to delete user."
-            return 1
-        fi
-    fi
-    return 0
-}

Deleted: vdr/vdr-xxv/trunk/debian/debconf/get_db_password.pl
===================================================================
--- vdr/vdr-xxv/trunk/debian/debconf/get_db_password.pl	2005-04-24 16:02:54 UTC (rev 494)
+++ vdr/vdr-xxv/trunk/debian/debconf/get_db_password.pl	2005-04-27 22:53:10 UTC (rev 495)
@@ -1,13 +0,0 @@
-#
-# Tobias Grimm <tg@e-tobi.net> 
-#
-# Extract db password from xxv config file (used by postinst)
-#
-
-use Config::Tiny;
-
-my $Config = Config::Tiny->read($ARGV[0]);
-
-my $pwd = $Config->{General}->{PWD};
-
-print $pwd;

Deleted: vdr/vdr-xxv/trunk/debian/debconf/set_config.pl
===================================================================
--- vdr/vdr-xxv/trunk/debian/debconf/set_config.pl	2005-04-24 16:02:54 UTC (rev 494)
+++ vdr/vdr-xxv/trunk/debian/debconf/set_config.pl	2005-04-27 22:53:10 UTC (rev 495)
@@ -1,39 +0,0 @@
-#
-# Tobias Grimm <tg@e-tobi.net> 
-#
-# Set all database parameters in the xxv's config file (used by postinst)
-#
-
-use Config::Tiny;
-
-my $Config = Config::Tiny->read($ARGV[1]) or die Config::Tiny::errstr;
-
-if ($ARGV[0] eq "--db")
-{
-    my $dbserver   = $ARGV[2];
-    my $dbport     = $ARGV[3];
-    my $dbdatabase = $ARGV[4];
-    my $dbuser     = $ARGV[5];
-    my $dbuserpass = $ARGV[6];
-
-    $Config->{General}->{USR} = $dbuser;
-    $Config->{General}->{PWD} = $dbuserpass;
-    $Config->{General}->{DSN} = "DBI:mysql:database=${dbdatabase};" .
-      "host=${dbserver};port=${dbport}";
-}
-elsif ($ARGV[0] eq "--ports")
-{
-    my $porthttp = $ARGV[2];
-    my $porttelnet = $ARGV[3];
-    my $portinterface = $ARGV[4];
-    my $porticecast = $ARGV[5];
-    my $portwap = $ARGV[6];
-
-    $Config->{HTTPD}->{Port} = $porthttp;
-    $Config->{TELNET}->{Port} = $porttelnet;
-    $Config->{INTERFACE}->{Port} = $portinterface;
-    $Config->{MUSIC}->{port} = $porticecast;
-    $Config->{WAPD}->{Port} = $portwap;
-}
-
-$Config->write($ARGV[1]) or die Config::Tiny::errstr;

Added: vdr/vdr-xxv/trunk/debian/debconf/update-config.pl
===================================================================
--- vdr/vdr-xxv/trunk/debian/debconf/update-config.pl	2005-04-24 16:02:54 UTC (rev 494)
+++ vdr/vdr-xxv/trunk/debian/debconf/update-config.pl	2005-04-27 22:53:10 UTC (rev 495)
@@ -0,0 +1,44 @@
+#
+# Tobias Grimm <tg@e-tobi.net> 
+#
+# Set all database parameters in the xxv's config file (used by postinst)
+#
+
+use Config::Tiny;
+
+my $Config = Config::Tiny->read($ARGV[1]) or die Config::Tiny::errstr;
+
+if ($ARGV[0] eq "--db")
+{
+    require $ARGV[2];
+    $Config->{General}->{USR} = $dbuser;
+    $Config->{General}->{PWD} = $dbpass;
+
+    my $dsn = "DBI:${dbtype}:database=${dbname}";
+    if ($dbserver)
+    {
+        $dsn = "${dsn};host=${dbserver}";
+    }
+    if ($dbport)
+    {
+        $dsn = "${dsn};port=${dbport}";
+    }
+
+    $Config->{General}->{DSN} = $dsn;
+}
+elsif ($ARGV[0] eq "--ports")
+{
+    my $porthttp = $ARGV[2];
+    my $porttelnet = $ARGV[3];
+    my $portinterface = $ARGV[4];
+    my $porticecast = $ARGV[5];
+    my $portwap = $ARGV[6];
+
+    $Config->{HTTPD}->{Port} = $porthttp;
+    $Config->{TELNET}->{Port} = $porttelnet;
+    $Config->{INTERFACE}->{Port} = $portinterface;
+    $Config->{MUSIC}->{port} = $porticecast;
+    $Config->{WAPD}->{Port} = $portwap;
+}
+
+$Config->write($ARGV[1]) or die Config::Tiny::errstr;

Modified: vdr/vdr-xxv/trunk/debian/init
===================================================================
--- vdr/vdr-xxv/trunk/debian/init	2005-04-24 16:02:54 UTC (rev 494)
+++ vdr/vdr-xxv/trunk/debian/init	2005-04-27 22:53:10 UTC (rev 495)
@@ -44,10 +44,11 @@
 MODULEDIR="/usr/share/perl5/vdr-xxv/XXV/MODULES/*.pm"
 DOCUDIR="/var/cache/vdr-xxv/doc/"
 HTMLDIR="/usr/share/vdr-xxv/html/"
+FONTDIR="/usr/share/fonts/truetype/ttf-bitstream-vera/"
 
 COMMANDLINE="-configfile=$CONFIGFILE -logfile=$LOGFILE -pidfile=$PIDFILE \
   -localedir=$LOCALEDIR -moduledir=$MODULEDIR -docudir=$DOCUDIR \
-  -htmldir=$HTMLDIR"
+  -htmldir=$HTMLDIR -fontdir=$FONTDIR"
 
 
 #

Modified: vdr/vdr-xxv/trunk/debian/install
===================================================================
--- vdr/vdr-xxv/trunk/debian/install	2005-04-24 16:02:54 UTC (rev 494)
+++ vdr/vdr-xxv/trunk/debian/install	2005-04-27 22:53:10 UTC (rev 495)
@@ -2,6 +2,7 @@
 
 bin/xxvd                  usr/bin/
 html/*                    usr/share/vdr-xxv/html/default
+wml/                      usr/share/vdr-xxv/html/
 
 lib/Tools.pm              usr/share/perl5/vdr-xxv/
 lib/Tie/                  usr/share/perl5/vdr-xxv/
@@ -13,3 +14,5 @@
 
 doc/docu.tmpl             usr/share/vdr-xxv/doc/
 locale/de                 usr/share/locale/
+
+contrib                   usr/share/vdr-xxv/

Modified: vdr/vdr-xxv/trunk/debian/patches/04_mplayer-log.dpatch
===================================================================
--- vdr/vdr-xxv/trunk/debian/patches/04_mplayer-log.dpatch	2005-04-24 16:02:54 UTC (rev 494)
+++ vdr/vdr-xxv/trunk/debian/patches/04_mplayer-log.dpatch	2005-04-27 22:53:10 UTC (rev 495)
@@ -5,29 +5,29 @@
 ## DP: hard-code mplayer log file path
 
 @DPATCH@
-diff -urNad vdr-xxv-0.20/lib/XXV/MODULES/RECORDS.pm /tmp/dpep.NVczmH/vdr-xxv-0.20/lib/XXV/MODULES/RECORDS.pm
---- vdr-xxv-0.20/lib/XXV/MODULES/RECORDS.pm	2005-03-28 16:06:57.000000000 +0200
-+++ /tmp/dpep.NVczmH/vdr-xxv-0.20/lib/XXV/MODULES/RECORDS.pm	2005-03-28 16:07:21.000000000 +0200
-@@ -61,12 +61,12 @@
-                 default     => 'old',
+diff -urNad vdr-xxv-0.31/lib/XXV/MODULES/RECORDS.pm /tmp/dpep.2esGSB/vdr-xxv-0.31/lib/XXV/MODULES/RECORDS.pm
+--- vdr-xxv-0.31/lib/XXV/MODULES/RECORDS.pm	2005-04-16 18:00:08.000000000 +0200
++++ /tmp/dpep.2esGSB/vdr-xxv-0.31/lib/XXV/MODULES/RECORDS.pm	2005-04-16 18:03:04.000000000 +0200
+@@ -62,12 +62,12 @@
+                 default     => 'Nothing',
                  required    => gettext("This is required!"),
              },
--            mplayerlog => {
+-            previewlog => {
 -                description => gettext('Logfile for mplayer'),
 -                default     => '/var/log/xxvd_mplayer.log',
 -                type        => 'string',
 -                required    => gettext("This is required!"),
 -            },
-+#            mplayerlog => {
++#            previewlog => {
 +#                description => gettext('Logfile for mplayer'),
 +#                default     => '/var/log/xxvd_mplayer.log',
 +#                type        => 'string',
 +#                required    => gettext("This is required!"),
 +#            },
-             vfat => {
-                 description => gettext('Set this if your filename encoded for vfat filesystems'),
-                 default     => 'y',
-@@ -153,6 +153,7 @@
+             previewcount => {
+                 description => gettext('How many preview images produce?'),
+                 default     => 3,
+@@ -183,6 +183,7 @@
          },
      );
  

Modified: vdr/vdr-xxv/trunk/debian/postinst
===================================================================
--- vdr/vdr-xxv/trunk/debian/postinst	2005-04-24 16:02:54 UTC (rev 494)
+++ vdr/vdr-xxv/trunk/debian/postinst	2005-04-27 22:53:10 UTC (rev 495)
@@ -4,48 +4,9 @@
 # see: dh_installdeb(1)
 
 set -e
+# set -x
 
-configfile="/var/lib/vdr-xxv/xxvd.cfg"
-
 #
-# get database config parameters from debconf
-#
-get_db_debconf()
-{    
-    db_get vdr-xxv/db_server    ; dbserver="$RET"
-    db_get vdr-xxv/db_port      ; dbport="$RET"
-    db_get vdr-xxv/db_admin     ; dbadmin="$RET"
-    db_get vdr-xxv/db_adminpass ; dbadminpass="$RET"
-    db_get vdr-xxv/db_database  ; dbdatabase="$RET"
-    db_get vdr-xxv/db_user      ; dbuser="$RET"
-    db_get vdr-xxv/db_userpass  ; dbuserpass="$RET"
-
-    # remove admin username and password from debconf db
-    db_reset vdr-xxv/db_admin  
-    db_reset vdr-xxv/db_adminpass
-
-    # remove user password from debconf db
-    db_reset vdr-xxv/db_userpass
-
-    # if there is no user password provided by debconf, try to load it from
-    # xxv's config:
-    if [ -z "$dbuserpass" ]; then
-        dbuserpass="`perl /usr/share/vdr-xxv/debconf/get_db_password.pl $configfile`"
-    fi
-}
-
-#
-# Inform user about db setup error and mark db as unconfigured
-#
-database_setup_failure()
-{
-    db_input medium vdr-xxv/db_configure_failed || true
-    db_go
-    db_reset vdr-xxv/db_configure_failed
-    db_set vdr-xxv/db_configured false
-}
-
-#
 # get port config parameters from debconf
 #
 get_port_config()
@@ -56,113 +17,76 @@
         db_get vdr-xxv/port_telnet    ; porttelnet="$RET"
         db_get vdr-xxv/port_interface ; portinterface="$RET"
         db_get vdr-xxv/port_icecast   ; porticecast="$RET"
-        db_get vdr-xxv/port_wap       ; portwap="$RET"
+    db_get vdr-xxv/port_wap       ; portwap="$RET"
     fi
 }
 
 #
-# setup database and user
+# update application config file
 #
-configure_database()
+update_config()
 {
-    db_get vdr-xxv/db_manage ; dbmanage="$RET"
-    if [ "$dbmanage" = "true" ]; then
-        db_get vdr-xxv/db_configured ; dbconfigured="$RET"
-        if [ "$dbconfigured" = "false" ]; then
-            db_set vdr-xxv/db_configured "true"
-            get_db_debconf
-            if check_server ; then
-                # Create database if it does not exist
-                if check_database ; then
-                    echo "Info: No need to create database.">&2
-                else
-                    echo "Info: Creating database '$dbdatabase'">&2
-                    if create_database ; then
-                        echo "Info: Database created">&2
-                    else
-                        echo "Error: Could not create database: $error">&2
-                        database_setup_failure
-                    fi
-                fi
-                # Create user
-                # if there is no user password, generate one
-                if [ -z "$dbuserpass" ]; then
-                    dbuserpass=`makepasswd --chars 12 --randomseed 0`
-                fi
-
-                echo "Info: Creating user '$dbuser' and set permissions ">&2
-                if create_user ; then
-                    echo "Info: User created, permissions set">&2
-                else
-                    echo "Error: Could not create user: $error">&2
-                    database_setup_failure
-                fi
-            else
-                echo "Error: Could not connect server: $error">&2
-                database_setup_failure
-            fi
-
-            # Save db settings in config file:
-            perl /usr/share/vdr-xxv/debconf/set_config.pl --db $configfile \
-              $dbserver $dbport $dbdatabase $dbuser $dbuserpass
-            if [ $? -gt 0 ]; then
-                echo "Error: Could not write config_file: $error">&2
-                # couldn't store password, so we may have to ask for
-                # it when trying again:
-                db_fset vdr-xxv/db_userpass seen false
-            fi    
-        else
-            echo "Info: Database already configured">&2
+    if [ "$portconfigure" = "true" ] ; then
+        perl /usr/share/vdr-xxv/debconf/update-config.pl --ports $configfile \
+          $porthttp $porttelnet $portinterface $porticecast $portwap
+        if [ $? -gt 0 ]; then
+            echo "Error: Could not write port settings to config file">&2
+            exit 1
         fi
     fi
+    if [ "$dbc_install" = "true" ] ; then
+        perl /usr/share/vdr-xxv/debconf/update-config.pl --db $configfile \
+          $perl_db_config
+        if [ $? -gt 0 ]; then
+            echo "Error: Could not write database settings to config-file">&2
+            exit 1
+        fi    
+    fi
 }
 
 #
-# setup server ports
+# set file and directory permissions
 #
-configure_ports()
+set_permissions()
 {
-    get_port_config
-    if [ "$portconfigure" = "true" ] ; then
-        perl /usr/share/vdr-xxv/debconf/set_config.pl --ports $configfile \
-          $porthttp $porttelnet $portinterface $porticecast $portwap
-        if [ $? -gt 0 ]; then
-            echo "Error: Could not write config_file: $error">&2
-        fi
-        # configure ports only once
-        db_set vdr-xxv/port_configure false
-    fi
+    USER="vdr"
+    GROUP="vdr"
+        
+    chown -R $USER:$GROUP /var/lib/vdr-xxv
+    chown -R $USER:$GROUP /var/cache/vdr-xxv
+    chown -R $USER:$GROUP /var/log/vdr-xxv
+    chown -R $USER:$GROUP /var/run/vdr-xxv
 }
 
+
 #
 # main()
 #
-case "$1" in
-    configure)
-        # Source database management tools
-        . /usr/share/vdr-xxv/debconf/db_tools.sh
 
-        # Source debconf library
-        . /usr/share/debconf/confmodule
-        db_version 2.0
+configfile="/var/lib/vdr-xxv/xxvd.cfg"
 
+# Source debconf library
+. /usr/share/debconf/confmodule
+db_version 2.0
+
+# dbconfig-common
+. /usr/share/dbconfig-common/dpkg/postinst.mysql 
+perl_db_config=/tmp/vdr-xxv-$$.pm
+dbc_generate_include=perl:$perl_db_config
+dbc_go vdr-xxv $@
+
+case "$1" in
+    configure)
         # install example config file:
         if [ ! -f $configfile ] ; then
             cp /usr/share/doc/vdr-xxv/examples/xxvd.cfg $configfile || true
         fi
-        
-        configure_database
-        configure_ports
 
-        db_stop
-        
-        USER="vdr"
-        GROUP="vdr"
-        
-        chown -R $USER:$GROUP /var/lib/vdr-xxv
-        chown -R $USER:$GROUP /var/cache/vdr-xxv
-        chown -R $USER:$GROUP /var/log/vdr-xxv
-        chown -R $USER:$GROUP /var/run/vdr-xxv
+        get_port_config
+
+        update_config
+
+        set_permissions
     ;;
     abort-upgrade|abort-remove|abort-deconfigure)
     ;;
@@ -171,6 +95,8 @@
         exit 1
 esac
 
+rm -f $perl_db_config
+
 # dh_installdeb will replace this with shell code automatically
 # generated by other debhelper scripts.
 

Modified: vdr/vdr-xxv/trunk/debian/postrm
===================================================================
--- vdr/vdr-xxv/trunk/debian/postrm	2005-04-24 16:02:54 UTC (rev 494)
+++ vdr/vdr-xxv/trunk/debian/postrm	2005-04-27 22:53:10 UTC (rev 495)
@@ -4,202 +4,24 @@
 # see: dh_installdeb(1)
 
 set -e
+# set -x
 
-configfile="/var/lib/vdr-xxv/xxvd.cfg"
+. /usr/share/debconf/confmodule
+. /usr/share/dbconfig-common/dpkg/postrm.mysql 
+dbc_go vdr-xxv $@
 
+# if [ "$1" = "purge" ]; then
+# 	rm -f /etc/db-test-mysql/debian-db.php
+# fi
 
 #
-# Some debconf helper functions:
-#
-ask_for_purge()
-{
-    db_input critical vdr-xxv/db_purge || true
-    db_go
-    db_get vdr-xxv/db_purge || true ; dbpurge="$RET"
-    db_reset vdr-xxv/db_purge
-}
-
-ask_for_admin()
-{    
-    db_get vdr-xxv/db_server || true ; dbserver="$RET"
-    db_get vdr-xxv/db_port || true   ; dbport="$RET"
-
-    # admin user and password are not stored in debconf db, so we
-    # have to ask for these again:
-    db_capb backup
-    db_subst vdr-xxv/db_admin host "$dbserver"
-    db_subst vdr-xxv/db_adminpass host "$dbserver"
-    db_subst vdr-xxv/db_admin port "$dbport"
-    db_subst vdr-xxv/db_adminpass port "$dbport"
-    db_beginblock
-    db_input critical vdr-xxv/db_admin || true
-    db_input critical vdr-xxv/db_adminpass || true
-    db_endblock
-    db_go
-
-    db_get vdr-xxv/db_admin        ; dbadmin="$RET"
-    db_get vdr-xxv/db_adminpass    ; dbadminpass="$RET"
-    db_get vdr-xxv/db_database     ; dbdatabase="$RET"
-    db_get vdr-xxv/db_user || true ; dbuser="$RET"
-
-    # remove admin usernames and passwords from debconf db
-    db_reset vdr-xxv/db_admin
-    db_reset vdr-xxv/db_adminpass
-}
-
-inform_error()
-{
-    db_input medium vdr-xxv/db_purge_failed || true
-    db_go
-    db_reset vdr-xxv/db_purge_failed
-}
-
-
-#
-# Some database administration helper functions:
-#
-check_params()
-{
-    if [ -z "$dbserver" ] ; then
-        error="No database server specified."
-    elif [ -z "$dbadmin" ] ; then
-        error="No database administrator specified."
-    elif [ -z "$dbdatabase" ] ; then
-        error="No database name specified."
-    else
-        return 0
-    fi
-    return 1
-}
-
-build_mysqlcmd()
-{
-    MYSQLCMD="mysql --host=$dbserver --user=$dbadmin"
-
-    if [ -n "$dbadminpass" ] ; then
-        MYSQLCMD="$MYSQLCMD \"--password=$dbadminpass\""
-    fi
-    if [ -n "$dbport" ] ; then
-        MYSQLCMD="$MYSQLCMD \"--port=$dbport\""
-    fi
-}
-
-check_server()
-{
-    if ! check_params ; then
-        return 1
-    fi
-
-    build_mysqlcmd
-
-    if ! eval $MYSQLCMD </dev/null >/dev/null 2>&1 ; then
-        error="Error when trying to connect to the mysql database."
-        return 1
-    fi
-    return 0
-}
-
-check_database()
-{
-    if ! eval $MYSQLCMD -f -B -e "\"show databases;\"" | \
-      grep -e "^$dbdatabase$" > /dev/null 2>&1 ; then
-        return 1
-    fi
-    return 0
-}
-
-check_user()
-{
-    if ! eval $MYSQLCMD -f mysql -e \
-      "\"SELECT User from user where User='$dbuser';\"" | \
-      grep -e "^$dbuser$" > /dev/null 2>&1 ; then
-        return 1
-    fi
-    return 0
-}
-
-purge_database()
-{
-    if check_database ; then
-        if eval $MYSQLCMD -f -e "\"DROP DATABASE $dbdatabase;\"" ; then
-            if check_database ; then
-                error="Database $dbdatabase NOT successfully droped." 
-                return 1
-            fi
-        else
-            error="Unable to run the drop database."
-            return 1
-        fi
-    fi
-    return 0
-}
-
-purge_user()
-{
-    if check_user ; then
-        if eval $MYSQLCMD -f mysql -e \
-          "\"DELETE FROM user where User='$dbuser';\"" ; then
-            if check_user ; then
-                error="User $dbuser NOT successfully deleted." 
-                return 1
-            fi
-        else
-            error="Unable to run delete user."
-            return 1
-        fi
-    fi
-    return 0
-}
-
-#
 # main()
 #
 case "$1" in
-    purge)
-        # Source debconf library
-        . /usr/share/debconf/confmodule
-        db_version 2.0
-        
-
-        db_get vdr-xxv/db_manage ; dbmanage="$RET"
-        db_get vdr-xxv/db_configured ; dbconfigured="$RET"
-
-        if [ "$dbmanage" = "true" -a "$dbconfigured" = "true" ] ; then
-            do_delete="true"
-            while [ $do_delete = "true" ] ; do
-	        ask_for_purge
-                if [ "$dbpurge" = "true" ] ; then
-                    ask_for_admin
-                    if check_server ; then
-                        echo "Info: Deleting database">&2
-                        if purge_database ; then
-                            echo "Info: Database deleted">&2
-                            echo "Info: Deleting user">&2
-                            if purge_user ; then
-                                echo "Info: User deleted">&2
-                                do_delete="false"
-                                db_set vdr-xxv/db_configured false
-                            else
-                                echo "Error: Could not delete user: $error">&2
-                                inform_error
-                            fi
-                        else
-                            echo "Error: Could not delete database: $error">&2
-                            inform_error
-                        fi
-                    else
-                        echo "Error: Could not connect server: $error">&2
-                        inform_error
-                    fi
-                else
-                    do_delete="false"
-                fi
-            done
-        fi
-        
+    purge)    
         rm -f /var/lib/vdr-xxv/xxvd.cfg || true
         rm -rf /var/cache/vdr-xxv/doc/* || true
-        rm -f /var/log/vdr-xxv/xxvd*.log || true
+        rm -f /var/log/vdr-xxv/* || true
         rm -rf /var/cache/vdr-xxv/preview || true
     ;;
     remove)

Added: vdr/vdr-xxv/trunk/debian/preinst
===================================================================
--- vdr/vdr-xxv/trunk/debian/preinst	2005-04-24 16:02:54 UTC (rev 494)
+++ vdr/vdr-xxv/trunk/debian/preinst	2005-04-27 22:53:10 UTC (rev 495)
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+set -e
+# set -x
+
+. /usr/share/debconf/confmodule
+. /usr/share/dbconfig-common/dpkg/preinst.mysql 
+dbc_go vdr-xxv $@
+
+#DEBHELPER#

Added: vdr/vdr-xxv/trunk/debian/prerm
===================================================================
--- vdr/vdr-xxv/trunk/debian/prerm	2005-04-24 16:02:54 UTC (rev 494)
+++ vdr/vdr-xxv/trunk/debian/prerm	2005-04-27 22:53:10 UTC (rev 495)
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+set -e
+# set -x
+
+. /usr/share/debconf/confmodule
+. /usr/share/dbconfig-common/dpkg/prerm.mysql 
+dbc_go vdr-xxv $@
+
+#DEBHELPER#

Modified: vdr/vdr-xxv/trunk/debian/templates
===================================================================
--- vdr/vdr-xxv/trunk/debian/templates	2005-04-24 16:02:54 UTC (rev 494)
+++ vdr/vdr-xxv/trunk/debian/templates	2005-04-27 22:53:10 UTC (rev 495)
@@ -1,81 +1,3 @@
-Template: vdr-xxv/db_manage
-Type: boolean
-Default: true
-_Description: Automatically manage db settings and create XXV database?
- With this option enabled, Debian will manage the MySQL database and user
- required by XXV. You will need a MySQL-Server installed on the local or a
- remote machine and you need the database administrator login name and
- password.
- .
- Unselect this option, if you prefer to create the database yourself.
-
-Template: vdr-xxv/db_server
-Type: string
-Default: localhost
-_Description: Database server for XXV's database
-
-Template: vdr-xxv/db_port
-Type: string
-Default: 3306
-_Description: On what port does the database server listen?
-
-Template: vdr-xxv/db_database
-Type: string
-Default: xxv
-_Description: XXV database name
-
-Template: vdr-xxv/db_admin
-Type: string
-Default: root
-_Description: Database server administrator on ${host}:${port}
- The administrator username will not be stored anywhere permanently.
-
-Template: vdr-xxv/db_adminpass
-Type: password
-_Description: Password for database server administrator on ${host}:${port}
- The administrator password will not be stored anywhere permanently.
-
-Template: vdr-xxv/db_user
-Type: string
-Default: xxv
-_Description: XXV database owner username
- This username will be used by XXV to connect to the database server.
-
-Template: vdr-xxv/db_userpass
-Type: password
-_Description: XXV database owner password
- If no password is specified here, a random password will be generated.
- .
- The password will not be stored anywhere permanently.
-
-Template: vdr-xxv/db_purge
-Type: boolean
-Default: true
-_Description: Purge XXV database and remove database user?
- Confirm this, if you want the database to be removed automatically.
- Otherwise you have to do this manually.
-
-Template: vdr-xxv/db_purge_failed
-Type: note
-_Description: Purging the database or user failed!
- You may try again or do the purging manually.
-
-Template: vdr-xxv/db_configure_failed
-Type: note
-_Description: Setting up the database failed!
- The database could not be set up successfully. Check that you have
- installed a MySQL server on your local or a remote machine. In order to
- setup the database, you must provide a valid administrator account and
- password.
- .
- You can try again with "dpkg-reconfigure vdr-xxv". Otherwise you will have to
- configure the database for xxv manually.
-
-Template: vdr-xxv/db_configured
-Type: boolean
-Default: false
-Description: Is database already configured?
-
 Template: vdr-xxv/port_configure
 Type: boolean
 Default: false