Author: tille
Date: 2009-01-23 07:30:47 +0000 (Fri, 23 Jan 2009)
New Revision: 3040

Added:
   trunk/packages/mlstdbnet/trunk/debian/patches/13_ident_authentication.patch
Modified:
   trunk/packages/mlstdbnet/trunk/debian/config
   trunk/packages/mlstdbnet/trunk/debian/patches/10_config_location.patch
   trunk/packages/mlstdbnet/trunk/debian/patches/10_preconf.patch
   trunk/packages/mlstdbnet/trunk/debian/patches/series
   trunk/packages/mlstdbnet/trunk/debian/po/templates.pot
   trunk/packages/mlstdbnet/trunk/debian/postinst
   trunk/packages/mlstdbnet/trunk/debian/template/mlstdbnet.xml
   trunk/packages/mlstdbnet/trunk/debian/templates
Log:
Enhanced configuration issues


Modified: trunk/packages/mlstdbnet/trunk/debian/config
===================================================================
--- trunk/packages/mlstdbnet/trunk/debian/config        2009-01-23 04:24:07 UTC 
(rev 3039)
+++ trunk/packages/mlstdbnet/trunk/debian/config        2009-01-23 07:30:47 UTC 
(rev 3040)
@@ -54,7 +54,7 @@
        db_set ${pkg}/description "$DESCRIPTION"
     fi
     PUBLICDESCRIPTION=`grep 'description="' /etc/${pkg}/${XMLNAME}.xml | sed 
's/.*description="[^"]\+">\([^<]\+\)<.*/\1/'`
-    # verify whether description is set in config file
+    # verify whether public description is set in config file
     if [ "$PUBLICDESCRIPTION" != "##PublicDescription##" -a 
"$PUBLICDESCRIPTION" != "" ] ; then
        db_set ${pkg}/publicdescription "$PUBLICDESCRIPTION"
     fi
@@ -68,6 +68,19 @@
     if [ "$LOCUS" != "##Locus##" -a "$LOCUS" != "" ] ; then
        db_set ${pkg}/locus "$LOCUS"
     fi
+    WEBROOT=`grep 'webroot="' /etc/${pkg}/${XMLNAME}.xml | sed 
's/.*webroot="[^"]\+">\([^<]\+\)<.*/\1/'`
+    # verify whether webroot is set in config file
+    if [ "$WEBROOT" != "##webroot##" -a "$WEBROOT" != "" ] ; then
+       db_set ${pkg}/webroot "$WEBROOT"
+    else
+       # set database name as default webroot
+       db_set ${pkg}/webroot "/${XMLNAME}"
+    fi
+    DBPROF=`grep 'dbprof="' /etc/${pkg}/${XMLNAME}.xml | sed 
's/.*dbprof="[^"]\+">\([^<]\+\)<.*/\1/'`
+    # verify whether DPPROF is set in config file
+    if [ "$DBPROF" != "##dbprofiles##" -a "$DBPROF" != "" ] ; then
+       db_set ${pkg}/dbprof "$DBPROF"
+    fi
 fi
 
 ## db_input high ${pkg}/pathogen || true
@@ -76,6 +89,11 @@
 db_input high ${pkg}/locus || true
 db_input high ${pkg}/note || true
 
+# set database name as default webroot
+db_set ${pkg}/webroot "/${XMLNAME}"
+# set database name as default dbprof
+db_set ${pkg}/dbprof "${XMLNAME}"
+
 ## Now configure a curator for the curator.pl cgi script
 ## values are stored in
 CURATORCONF=/etc/${pkg}/curator.conf

Modified: trunk/packages/mlstdbnet/trunk/debian/patches/10_config_location.patch
===================================================================
--- trunk/packages/mlstdbnet/trunk/debian/patches/10_config_location.patch      
2009-01-23 04:24:07 UTC (rev 3039)
+++ trunk/packages/mlstdbnet/trunk/debian/patches/10_config_location.patch      
2009-01-23 07:30:47 UTC (rev 3040)
@@ -1,3 +1,5 @@
+In Debian configuration files have to be located in /etc and not in
+the same directory as the cgi script as upstream suggests.
 --- mlstdbnet_v2.0.0.orig/cgi-bin/mlstdbnet.pl
 +++ mlstdbnet_v2.0.0/cgi-bin/mlstdbnet.pl
 @@ -29,9 +29,11 @@
@@ -46,3 +48,25 @@
        if ($@) {
                warn $@ if $config{'debug'};
                $invalidXML = 1;
+--- mlstdbnet_v2.0.0.orig/cgi-bin/curate.pl
++++ mlstdbnet_v2.0.0/cgi-bin/curate.pl
+@@ -26,7 +26,7 @@
+ #E-mail: [email protected]
+ 
+ ###########Local configuration########################
+-local ( our $configfile = '/usr/local/mlstdbnet/mlstdbnet.conf' );
++local ( our $configfile = '/etc/mlstdbnet/mlstdbnet.conf' );
+ #######End Local configuration########################
+ use CGI;
+ use DBI;
+@@ -69,7 +69,9 @@
+       if ( $q->param('file') =~ /^([\w\d\-_]+\.xml)$/ ) {
+               $instance = $1;
+       }
+-      eval { $parser->parse( Source => { SystemId => $instance } ); };
++      my $xmlinstance = $instance;
++      if ( ! -e $xmlinstance ) { $xmlinstance = "/etc/mlstdbnet/$instance" ; }
++      eval { $parser->parse( Source => { SystemId => $xmlinstance } ); };
+       if ($@) {
+               $invalidXML = 1;
+       }

Modified: trunk/packages/mlstdbnet/trunk/debian/patches/10_preconf.patch
===================================================================
--- trunk/packages/mlstdbnet/trunk/debian/patches/10_preconf.patch      
2009-01-23 04:24:07 UTC (rev 3039)
+++ trunk/packages/mlstdbnet/trunk/debian/patches/10_preconf.patch      
2009-01-23 07:30:47 UTC (rev 3040)
@@ -1,3 +1,5 @@
+This patch adjust some pathes in the upstream suggestion for a 
+configuration file to the locations in Debian. 
 --- mlstdbnet_v2.0.0.orig/conf/mlstdbnet.conf
 +++ mlstdbnet_v2.0.0/conf/mlstdbnet.conf
 @@ -1,11 +1,11 @@

Added: 
trunk/packages/mlstdbnet/trunk/debian/patches/13_ident_authentication.patch
===================================================================
--- trunk/packages/mlstdbnet/trunk/debian/patches/13_ident_authentication.patch 
                        (rev 0)
+++ trunk/packages/mlstdbnet/trunk/debian/patches/13_ident_authentication.patch 
2009-01-23 07:30:47 UTC (rev 3040)
@@ -0,0 +1,52 @@
+On Debian GNU Linux systems the suggested way to authenticate to
+a PostgreSQL server on local host is ident authentication.  This
+authentication method requires that the host parameter is left out,
+i.e. if you specify the host localhost password authentication
+is automatically used.  This patch removes host and port from
+the connection string if $host == 'localhost'.
+--- mlstdbnet_v2.0.0.orig/cgi-bin/curate.pl
++++ mlstdbnet_v2.0.0/cgi-bin/curate.pl
+@@ -133,10 +133,19 @@
+ }
+ 
+ sub dbconnect {
+-      $db = DBI->connect(
++      # On Debian GNU/Linux we use ident authentication if host=localhost 
which
++      # needs and empty string for user and password ...
++      if ( $system{'host'} =~ /^localhost$/ ) {
++              $db = DBI->connect(
++"DBI:Pg:dbname=$system{'longcode'}",
++              '', '', { AutoCommit => 0 }
++              );
++      } else {
++              $db = DBI->connect(
+ "DBI:Pg:host=$system{'host'};port=$system{'port'};dbname=$system{'longcode'}",
+               "$system{'user'}", "$system{'pass'}", { AutoCommit => 0 }
+       );
++      }
+ }
+ 
+ sub dbdisconnect {
+--- mlstdbnet_v2.0.0.orig/cgi-bin/mlstdbnet.pl
++++ mlstdbnet_v2.0.0/cgi-bin/mlstdbnet.pl
+@@ -376,10 +376,19 @@
+ 
+ ##################DATABASE CONNECTION########################
+ sub db_connect {
+-      $db = DBI->connect(
++      # On Debian GNU/Linux we use ident authentication if host=localhost 
which
++      # needs and empty string for user and password ...
++      if ( $system{'host'} =~ /^localhost$/ ) {
++              $db = DBI->connect(
++"DBI:Pg:dbname=$system{'longcode'}",
++              '', '', { AutoCommit => 0 }
++              );
++      } else {
++              $db = DBI->connect(
+ "DBI:Pg:host=$system{'host'};port=$system{'port'};dbname=$system{'longcode'}",
+               "$system{'user'}", "$system{'pass'}", { AutoCommit => 0 }
+       );
++      }
+       $db->do("SET session CHARACTERISTICS AS TRANSACTION READ ONLY");
+       $db->commit();
+       if ( !$profiledb && !$system{'nomlst'} ) {

Modified: trunk/packages/mlstdbnet/trunk/debian/patches/series
===================================================================
--- trunk/packages/mlstdbnet/trunk/debian/patches/series        2009-01-23 
04:24:07 UTC (rev 3039)
+++ trunk/packages/mlstdbnet/trunk/debian/patches/series        2009-01-23 
07:30:47 UTC (rev 3040)
@@ -1,2 +1,3 @@
 10_preconf.patch
 10_config_location.patch
+13_ident_authentication.patch

Modified: trunk/packages/mlstdbnet/trunk/debian/po/templates.pot
===================================================================
--- trunk/packages/mlstdbnet/trunk/debian/po/templates.pot      2009-01-23 
04:24:07 UTC (rev 3039)
+++ trunk/packages/mlstdbnet/trunk/debian/po/templates.pot      2009-01-23 
07:30:47 UTC (rev 3040)
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: [email protected]\n"
-"POT-Creation-Date: 2009-01-20 14:54+0100\n"
+"POT-Creation-Date: 2009-01-22 17:45+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <em...@address>\n"
 "Language-Team: LANGUAGE <[email protected]>\n"
@@ -305,3 +305,31 @@
 "mail address, but once you want to log in as curator only strings containing "
 "at least one '@' and a '.' will be accepted."
 msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:11001
+msgid "Root directory on webserver"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:11001
+msgid ""
+"Please input the directory where the mlstdbnet CGI script should be "
+"located.  By default this is the same as the database name."
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:12001
+msgid "Database profile"
+msgstr ""
+
+#. Type: string
+#. Description
+#: ../templates:12001
+msgid ""
+"MlstDBNet accepts a database profile.  By default this is the same as the "
+"database name."
+msgstr ""

Modified: trunk/packages/mlstdbnet/trunk/debian/postinst
===================================================================
--- trunk/packages/mlstdbnet/trunk/debian/postinst      2009-01-23 04:24:07 UTC 
(rev 3039)
+++ trunk/packages/mlstdbnet/trunk/debian/postinst      2009-01-23 07:30:47 UTC 
(rev 3040)
@@ -34,13 +34,20 @@
 db_get ${pkg}/locus
 LOCUS=${RET}
 
+db_get ${pkg}/webroot
+WEBROOT=${RET}
 
+db_get ${pkg}/dbprof
+DBPROF=${RET}
+
 # Substitute the value ##variables## in the templates and move them
 # right into place
 XMLOUT=/etc/${pkg}/"$XMLNAME".xml
 # if no config file exists, just create one from the template
 if [ ! -e "$XMLOUT" ] ; then
     sed -e "s/##database##/${XMLNAME}/g" \
+        -e "s/##dbprofiles##/${DBPROF}/g" \
+        -e "s?##webroot##?/${DBPROF}?g" \
         -e "s/##Description##/${DESCRIPTION}/g" \
         -e "s/##PublicDescription##/${PUBLICDESCRIPTION}/g" \
         -e "s/##LocusFullName##/${LOCUSFULLNAME}/g" \
@@ -51,6 +58,8 @@
     cp -a "$XMLOUT" "$XMLOUT".old
     sed -i \
         -e "s/longcode=\"[^\"]\+\"/longcode=\"${XMLNAME}\"/g" \
+        -e "s/dbprof=\"[^\"]\+\"/dbprof=\"${DBPROF}\"/g" \
+        -e "s?webroot=\"[^\"]\+\"?webroot=\"${WEBROOT}\"?g" \
         -e "s/description=\"[^\"]\+\"/description=\"${DESCRIPTION}\"/g" \
         -e "s/\(description=\"[^\"]\+\">\)[^<]\+/\1${PUBLICDESCRIPTION}/g" \
         -e "s/<locus fullname=\"[^\"]*\">[^<]\+/<locus 
fullname=\"${LOCUSFULLNAME}\">${LOCUS}/" \

Modified: trunk/packages/mlstdbnet/trunk/debian/template/mlstdbnet.xml
===================================================================
--- trunk/packages/mlstdbnet/trunk/debian/template/mlstdbnet.xml        
2009-01-23 04:24:07 UTC (rev 3039)
+++ trunk/packages/mlstdbnet/trunk/debian/template/mlstdbnet.xml        
2009-01-23 07:30:47 UTC (rev 3040)
@@ -16,7 +16,7 @@
  webroot="##webroot##"
  indexpage=""
  dbprof="##dbprofiles##"
- profhome="/cgi-bin/mlstdbnet/mlstdbnet.pl?file=pub-##dbprofiles##.xml"
+ profhome="/cgi-bin/mlstdbnet.pl?file=pub-##dbprofiles##.xml"
  noshow="other_name,Z_number,region"
  view="isolates" dbtype="st"
  description="##Description##">##PublicDescription##</system>

Modified: trunk/packages/mlstdbnet/trunk/debian/templates
===================================================================
--- trunk/packages/mlstdbnet/trunk/debian/templates     2009-01-23 04:24:07 UTC 
(rev 3039)
+++ trunk/packages/mlstdbnet/trunk/debian/templates     2009-01-23 07:30:47 UTC 
(rev 3040)
@@ -149,3 +149,15 @@
  curator for mlstdbnet.  Please not that your input is not verified now
  for a valid e-mail address, but once you want to log in as curator
  only strings containing at least one '@' and a '.' will be accepted.
+
+Template: mlstdbnet/webroot
+Type: string
+_Description: Root directory on webserver
+ Please input the directory where the mlstdbnet CGI script should
+ be located.  By default this is the same as the database name.
+
+Template: mlstdbnet/dbprof
+Type: string
+_Description: Database profile
+ MlstDBNet accepts a database profile.  By default this is the same
+ as the database name.


_______________________________________________
debian-med-commit mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/debian-med-commit

Reply via email to