Since I've already created it I'll send this patch to the BTS just for
reference.
This one takes the alternative route of not having a hard-dependency on
both mysql- and postgresql-client, but instead recommends them both and
checks which one is available during configuration.
A helpful note is also shown if none is available.
Patch attached.
PS. please run "fakeroot debian/rules clean" before building to update
*.po and *.pot files which where excluded in the diff to not clutter up
the patch.
--
Regards,
Andreas Henriksson
diff -ur -x '*.po' -x '*.pot' phpgacl-3.3.7/debian/changelog
phpgacl-3.3.7.fixed/debian/changelog
--- phpgacl-3.3.7/debian/changelog 2006-11-22 13:20:46.000000000 +0100
+++ phpgacl-3.3.7.fixed/debian/changelog 2006-11-22 13:43:04.000000000
+0100
@@ -1,3 +1,14 @@
+phpgacl (3.3.7-3.2) unstable; urgency=low
+
+ * NMU
+ * Remove postgresql-client from depends.
+ * Check for available mysql and psql clients in config and postinst.
+ * Show a helpful note if no db client is available and safely abort
+ configuration.
+ * Add mysql-client and postgresql-client as a Recommends dependency.
+
+ -- Andreas Henriksson <[EMAIL PROTECTED]> Wed, 22 Nov 2006 13:21:08 +0100
+
phpgacl (3.3.7-3.1) unstable; urgency=high
* Non-maintainer upload.
diff -ur -x '*.po' -x '*.pot' phpgacl-3.3.7/debian/control
phpgacl-3.3.7.fixed/debian/control
--- phpgacl-3.3.7/debian/control 2006-11-22 13:20:46.000000000 +0100
+++ phpgacl-3.3.7.fixed/debian/control 2006-11-22 13:40:36.000000000 +0100
@@ -8,7 +8,8 @@
Package: phpgacl
Architecture: all
-Depends: ${misc:Depends}, dbconfig-common, postgresql-client, libphp-adodb (>=
4.64), smarty (>= 2.6.9), php-cache-lite (>= 1.5.2)
+Depends: ${misc:Depends}, dbconfig-common, libphp-adodb (>= 4.64), smarty (>=
2.6.9), php-cache-lite (>= 1.5.2)
+Recommends: mysql-client, postgresql-client
Description: PHP Generic Access Control Lists
phpGACL is a set of PHP functions giving web developers a simple,
yet immensely powerful "drop in" permission system for their current
diff -ur -x '*.po' -x '*.pot' phpgacl-3.3.7/debian/phpgacl.config
phpgacl-3.3.7.fixed/debian/phpgacl.config
--- phpgacl-3.3.7/debian/phpgacl.config 2006-11-22 13:20:46.000000000 +0100
+++ phpgacl-3.3.7.fixed/debian/phpgacl.config 2006-11-22 13:26:39.000000000
+0100
@@ -3,8 +3,31 @@
# Source debconf library.
. /usr/share/debconf/confmodule
+# check for available db clients
+MYSQLCLIENT=0
+PSQLCLIENT=0
+
+if which mysql >/dev/null 2>&1 ; then
+ MYSQLCLIENT=1
+fi
+if which psql >/dev/null 2>&1 ; then
+ PSQLCLIENT=1
+fi
+
+dbc_dbtypes=""
+if [ "$MYSQLCLIENT" = "1" ] && [ "$PSQLCLIENT" = "1" ]; then
+ dbc_dbtypes="mysql, pgsql"
+elif [ "$MYSQLCLIENT" = "1" ]; then
+ dbc_dbtypes="mysql"
+elif [ "$PSQLCLIENT" = "1" ]; then
+ dbc_dbtypes="pgsql"
+else
+ db_input high phpgacl/manualdb
+ db_go
+ exit 0
+fi
+
# source dbconfig-common stuff
-dbc_dbtypes="mysql, pgsql"
if [ -f /usr/share/dbconfig-common/dpkg/config ]; then
. /usr/share/dbconfig-common/dpkg/config
diff -ur -x '*.po' -x '*.pot' phpgacl-3.3.7/debian/phpgacl.postinst
phpgacl-3.3.7.fixed/debian/phpgacl.postinst
--- phpgacl-3.3.7/debian/phpgacl.postinst 2006-11-22 13:20:46.000000000
+0100
+++ phpgacl-3.3.7.fixed/debian/phpgacl.postinst 2006-11-22 13:28:06.000000000
+0100
@@ -3,8 +3,30 @@
# debconf
. /usr/share/debconf/confmodule
+# check for available db clients
+MYSQLCLIENT=0
+PSQLCLIENT=0
+
+if which mysql >/dev/null 2>&1 ; then
+ MYSQLCLIENT=1
+fi
+if which psql >/dev/null 2>&1 ; then
+ PSQLCLIENT=1
+fi
+
+dbc_dbtypes=""
+if [ "$MYSQLCLIENT" = "1" ] && [ "$PSQLCLIENT" = "1" ]; then
+ dbc_dbtypes="mysql, pgsql"
+elif [ "$MYSQLCLIENT" = "1" ]; then
+ dbc_dbtypes="mysql"
+elif [ "$PSQLCLIENT" = "1" ]; then
+ dbc_dbtypes="pgsql"
+else
+ exit 0
+fi
+
+
# source dbconfig-common stuff
-dbc_dbtypes="mysql, pgsql"
. /usr/share/dbconfig-common/dpkg/postinst
dbc_go phpgacl $@
diff -ur -x '*.po' -x '*.pot' phpgacl-3.3.7/debian/phpgacl.templates
phpgacl-3.3.7.fixed/debian/phpgacl.templates
--- phpgacl-3.3.7/debian/phpgacl.templates 2006-11-22 13:20:46.000000000
+0100
+++ phpgacl-3.3.7.fixed/debian/phpgacl.templates 2006-11-22
13:36:35.000000000 +0100
@@ -18,3 +18,12 @@
Your system has an obsolete configuration file
(/etc/phpgacl/phpgacl.conf.php). Please, review the new configuration file
(/etc/phpgacl/gacl.ini.php) and remove the obsolete one.
+
+Template: phpgacl/manualdb
+Type: note
+_Description: No database clients available.
+ Neigther the mysql or the postgresql database clients are available. To set
+ up the required database connection atleast one needs to be available.
+ Please install atleast one of "mysql-client" or "postgresql-client" and then
+ rerun the configuration with the command "dpkg-reconfigure phpgacl".
+