diff -r dee622089472 -r 2b50fdcbf09f debian/littlebird-tc-core.postinst --- a/debian/littlebird-tc-core.postinst Fri Sep 02 11:10:36 2011 +0200 +++ b/debian/littlebird-tc-core.postinst Fri Sep 02 12:57:40 2011 +0200 @@ -67,6 +67,7 @@ # apache configuration db_get littlebird-tc/web/servername && servername="$RET" || true + db_get littlebird-tc/web/serverport && serverport="$RET" || true db_get littlebird-tc/web/serveradmin && serveradmin="$RET" || true db_get littlebird-tc/web/crt && crt="$RET" || true db_get littlebird-tc/web/key && key="$RET" || true @@ -94,23 +95,28 @@ db_go || true fi fi - # permissions for the cert - test "$key" && { - chown root: "$key" - chmod -v go= "$key" - } # tweak the config file, but just the lines following a magical # debconf line - perl - serveradmin="$serveradmin" servername="$servername" \ + perl - serveradmin="$serveradmin" servername="$servername" serverport="$serverport" \ crt="$crt" key="$key" <<'_' use strict; use warnings; my $mark = '# debconf:'; my %o; - foreach (@ARGV) { my ($k, $v) = split /=/, $_, 2; $o{$k} = $v; } + foreach (@ARGV) { my ($k, $v) = split /=/, $_, 2; $o{$k} = $v } + if ($o{serverport} eq "443") { + $o{serverurl} = "https://$o{servername}/"; + $o{listen} = "# Listen 443"; + } + else { + $o{serverurl} = "https://$o{servername}:$o{serverport}/"; + $o{listen} = "Listen $o{serverport}"; + } + + open(F, "+; + $_ = join "" => ; s|^(([ \t]*?)# debconf: (.*?){{(.*?)}}(.*?)\n).*?\n|$1$2$3$o{$4}$5\n|migs; seek(F, 0, 0); print(F $_); @@ -128,6 +134,38 @@ mkdir -p "$dir" ) + # fix application_ini, there should be a cleaner approach + + db_get littlebird-tc/db/name && dbname="$RET" || true + db_get littlebird-tc/db/host && dbhost="$RET" || true + db_get littlebird-tc/db/user && dbuser="$RET" || true + db_get littlebird-tc/db/pass && dbpass="$RET" || true + perl - dbname="$dbname" dbhost="$dbhost" dbuser="$dbuser" dbpass="$dbpass" \ + servername="$servername" serverport="$serverport" \ + <<'_' + use strict; + use warnings; + my %o; foreach (@ARGV) { my ($k, $v) = split /=/, $_, 2; $o{$k} = $v } + + if ($o{serverport} eq "443") { $o{serverurl} = "https://$o{servername}" } + else { $o{serverurl} = "https://$o{servername}:$o{serverport}" } + + open(F, "+ ; + s|^(\Qresources.db.params.dbname\E\s*=).*|$1 $o{dbname}|mig; + s|^(\Qresources.db.params.host\E\s*=).*|$1 $o{dbhost}|mig; + s|^(\Qresources.db.params.username\E\s*=).*|$1 $o{dbuser}|mig; + s|^(\Qresources.db.params.password\E\s*=).*|$1 $o{dbpass}|mig; + s|^(\Qlittlebird.trustcenter.url\E\s*=).*|$1 $o{serverurl}|mig; + s|/opt/LittleBird/LittleBird(?:-Test)?|/srv/www/littlebird|mig; + seek(F, 0, 0); + print(F $_); + truncate(F, tell F); + close(F); +_ + + db_stop || true a2enmod ssl