Package: dbconfig-common Version: 1.8.31 Severity: normal Tags: patch I am not sure I am missing something, but I cannot build a webcalendar package [1] that initializes correctly the MySQL database. I traced down the problem and discovered a problem in dpkg/postint: the order of the creatadb and createuser commands are reversed. The patch attached below fixes the problem for me.
Indeed, I see in internal/mysql: dbc_mysql_createdb(){ [...] _dbc_nodb="yes" dbc_mysql_exec_command "CREATE DATABASE $dbc_dbname" [...] dbc_mysql_createuser(){ [...] GRANT ALL PRIVILEGES ON \`$dbc_dbname\`.* TO \`$dbc_dbuser\`[...] [...] Now, the database $dbc_dbname must be created before the dbc_mysql_createuser is called, but this is not what dpkg/postinst does. If this is not a bug, please indicate to me how I can make the webcalendar package install correctly. [1] The webcalendar package is being actually co-maintainied in Alioth, see http://svn.debian.org/wsvn/collab-maint/ext-maint/webcalendar/ Thanks, Rafael Laboissiere -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/dash Kernel: Linux 2.6.17-2-686 Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1) Versions of packages dbconfig-common depends on: ii debconf [debconf-2.0] 1.4.72 Debian configuration management sy ii ucf 2.007 Update Configuration File: preserv dbconfig-common recommends no packages. -- debconf information excluded
diff -Naur dbconfig-common/dpkg/postinst dbconfig-common-new/dpkg/postinst --- dbconfig-common/dpkg/postinst 2007-03-04 13:10:42.000000000 +0100 +++ dbconfig-common-new/dpkg/postinst 2007-04-08 09:50:45.000000000 +0200 @@ -62,15 +62,16 @@ # don't perform the following block of code during upgrades if [ ! "$upgrading" ]; then ### - ### now, create the app user account + ### create the database ### - $dbc_createuser_cmd || dbc_install_error "creating user" + + $dbc_createdb_cmd || dbc_install_error "creating database" [ "$dbc_tried_again" ] && return 0 ### - ### create the database + ### now, create the app user account ### - $dbc_createdb_cmd || dbc_install_error "creating database" + $dbc_createuser_cmd || dbc_install_error "creating user" [ "$dbc_tried_again" ] && return 0 ###