#!/usr/bin/perl
# This script will build a gentoo source tarball from a normal
# mod_survey distribution tarball. The produced tarball is what
# should be added to distfiles, *not* the mod_survey release
# tarballs.
use CPAN;
# --- SETTINGS ---
$version = "3.2.5";
$extraversion = "";
$workroot = "/tmp";
$wdname = "mod_survey";
$workdir = "$workroot/$wdname";
$datadir = "/var/lib/mod_survey";
$libdir = "/usr/lib/mod_survey";
$sharedir = "/usr/share/mod_survey";
$webdir = "/var/www/mod_survey";
# Add a symlink in /var/www/localhost/htdocs to webroot?
$makewebsymlink = 1;
$webuser = "apache";
$webgroup = "apache";
# --- END OF SETTINGS ---
### DONT CHANGE STUFF BELOW ###
$tarballname = "mod_survey-gentoo-$version";
if ($extraversion) { $tarballname .= "_$extraversion"; }
$tarballname .= ".tar.gz";
$cpcommand = "cp -f";
$windows = 0;
$distrib = "unix/gentoo";
$source = ".";
$creator = 0;
$conf{"_SURVEY_ALLOWAUTO"} = 1;
$conf{"_SURVEY_ROOT"} = $webdir;
$conf{"_SURVEY_SYSBASE"} = $datadir;
$conf{"_SURVEY_LANG_DIRECTORY"} = $libdir . "/Lang/";
$conf{"_SURVEY_SENSIBLE"} = "1";
mkdir($workdir);
# --- FILES AND DIRECTORIES ----
@directories = ("$libdir",
"$libdir/Lang",
"$libdir/Lang/src",
"$libdir/Survey",
"$libdir/Survey/Auth",
"$libdir/Survey/Component",
"$libdir/Survey/Export",
"$datadir",
"$sharedir",
"$sharedir/docs",
"$webdir",
"$webdir/docs",
"$webdir/images",
"$webdir/examples",
"$webdir/examples/basic",
"$webdir/examples/markup",
"$webdir/examples/routing",
"$webdir/system",
"/var/www/localhost/htdocs",
"/etc/apache2/modules.d",
"$libdir/templates",
"$libdir/templates/default");
@libfiles = ("Lang/en.sl",
"Lang/de.sl",
"Lang/fr.sl",
"Lang/sw.sl",
"Lang/it.sl",
"Lang/src/en.po",
"Lang/src/de.po",
"Lang/src/fr.po",
"Lang/src/sw.po",
"Lang/src/it.po",
"Lang/src/nl.po",
"Lang/po2sl.pl",
"Lang/makepotemplate.pl",
"Lang/mergepos.pl",
"Lang/translate.pl",
"startup.pl",
"docinterpreter.pl",
"genauth.pl",
"installer.pl",
"mkgentootarball.pl",
"setupdomain.pl",
"Survey/Admin.pm",
"Survey/Argument.pm",
"Survey/Constants.pm",
"Survey/Data.pm",
"Survey/DataAggressiveCache.pm",
"Survey/DataEntry.pm",
"Survey/DBCommon.pm",
"Survey/Display.pm",
"Survey/Debug.pm",
"Survey/Language.pm",
"Survey/Document.pm",
"Survey/Slask.pm",
"Survey/Handler.pm",
"Survey/Persistance.pm",
"Survey/PersistanceArg.pm",
"Survey/Session.pm",
"Survey/SessionArg.pm",
"Survey/Statistics.pm",
"Survey/Submit.pm",
"Survey/System.pm",
"Survey/Template.pm",
"Survey/Upload.pm",
"Survey/Auth/Auth.pm",
"Survey/Auth/DBIAuth.pm",
"Survey/Auth/FileAuth.pm",
"Survey/Auth/TokenAuth.pm",
"Survey/Component/Cati.pm",
"Survey/Component/Env.pm",
"Survey/Component/Matrix.pm",
"Survey/Component/Lickert.pm",
"Survey/Component/Route.pm",
"Survey/Component/Custom.pm",
"Survey/Component/Boolean.pm",
"Survey/Component/List.pm",
"Survey/Component/Ifroute.pm",
"Survey/Component/Comment.pm",
"Survey/Component/Memo.pm",
"Survey/Component/Component.pm",
"Survey/Component/Newline.pm",
"Survey/Component/Constant.pm",
"Survey/Component/Text.pm",
"Survey/Component/Choice.pm",
"Survey/Component/Caseroute.pm",
"Survey/Component/Randomroute.pm",
"Survey/Component/Sequence.pm",
"Survey/Component/Security.pm",
"Survey/Component/Submit.pm",
"Survey/Component/SubmitError.pm",
"Survey/Component/Import.pm",
"Survey/Component/MailCopy.pm",
"Survey/Component/DateTime.pm",
"Survey/Component/Timer.pm",
"Survey/Export/DelimitedFields.pm",
"Survey/Export/EventBasedExport.pm",
"Survey/Export/GroupedFrequency.pm",
"Survey/Export/Frequency.pm",
"Survey/Export/Descriptive.pm",
"Survey/Export/StatUtils.pm",
"Survey/Export/CaseBrowser.pm",
"Survey/Export/Export.pm",
"Survey/Export/FixedColumns.pm",
"Survey/Export/HtmlTables.pm",
"Survey/Export/SPSS.pm",
"Survey/Export/SQL.pm",
"Survey/Export/Template.pm",
"Survey/Export/XML.pm",
"Survey/Export/R.pm",
"templates/default/Lickert.tmpl",
"templates/default/Matrix.tmpl",
"templates/default/List.tmpl",
"templates/default/Choice.tmpl",
"templates/default/ChoiceMulti.tmpl",
"templates/default/Boolean.tmpl",
"templates/default/Text.tmpl",
"templates/default/Memo.tmpl");
@webfiles = ("examples/example.survey",
"examples/examples.html",
"examples/basic/choice.survey",
"examples/basic/lickert.survey",
"examples/basic/list.survey",
"examples/basic/matrix.survey",
"examples/basic/memo.survey",
"examples/basic/text.survey",
"examples/markup/markup.survey",
"examples/markup/custom.survey",
"examples/markup/angry.png",
"examples/markup/extatic.png",
"examples/markup/happy.png",
"examples/markup/indifferent.png",
"examples/markup/logo1.png",
"examples/markup/logo2.png",
"examples/markup/logo3.png",
"examples/markup/logo4.png",
"examples/markup/mh.gif",
"examples/markup/sour.png",
"examples/routing/random1.survey",
"examples/routing/alt1.survey",
"examples/routing/alt2.survey",
"examples/routing/alt3.survey",
"examples/routing/alt4.survey",
"examples/routing/alt5.survey",
"examples/routing/rfinal.survey",
"examples/routing/boss.survey",
"examples/routing/case-final.survey",
"examples/routing/case.survey",
"examples/routing/route-part2.survey",
"examples/routing/route.survey",
"examples/routing/worker.survey",
"examples/routing/if.survey",
"examples/routing/female0-15.survey",
"examples/routing/error.html",
"examples/routing/male0-15.survey",
"examples/routing/male16-25.survey",
"examples/routing/female16-25.survey",
"examples/routing/if-final.survey",
"examples/invisible.survey",
"examples/dynamic.survey",
"examples/dynamic2.survey",
"index.html",
"survey-3.2.5.dtd",
"docs/index.html",
"main.css",
"system/slate.css",
"system/eveca.css",
"system/invert.css",
"system/rose.css",
"system/null.css",
"system/msu.css",
"system/data.css",
"system/cloud.css",
"system/eveca.css",
"system/formal.css",
"images/windows.jpg",
"images/windows.jpg");
@sharefiles = ("docs/CHANGELOG.txt",
"docs/CHANGELOG.txt.old",
"docs/INSTALL.txt",
"docs/Todo.txt",
"docs/Dynamic_content.txt",
"docs/Pushed.txt",
"docs/LICENSE.txt",
"README.txt",
"survey.conf.sample",
"survey-v3.0.0.dtd");
my ($dir);
$casebrowser = 1;
$descriptive = 1;
$frequency = 1;
$gfrequency = 1;
$lang = "en";
$isa2 = "Off";
$protest = 1;
$rootalias = "/mod_survey/";
$ext = ".survey";
$prext = ".presentation";
$parser = 1;
$display = 1;
$dbiexists = 1;
$destination = $libdir;
foreach $dir (@directories)
{
$dir = "$workdir/$dir";
$dir =~ s/\/\//\//g;
print "mkdir -p $dir\n";
system "mkdir -p $dir";
}
open(FIL, ">$workdir/etc/apache2/modules.d/98_mod_survey.conf")
|| die "Could not open survey.conf for writing";
print FIL "### Survey configuration\n\n";
print FIL "# -----------------------------------------\n";
print FIL "# Config new for 32x\n";
print FIL "# -----------------------------------------\n\n";
print FIL "PerlSetEnv _SURVEY_ALLOWED_EXPORTS \"html,spss,sql,delim,fixed,xml,r\"\n";
print FIL "PerlSetEnv _SURVEY_OPTIONAL_EXPORTS \"";
$first = 1;
if ($casebrowser) { print FIL "browse"; $first = 0; }
if (!$first) { print FIL ","; }
if ($descriptive) { print FIL "desc"; $first = 0; }
if (!$first) { print FIL ","; }
if ($frequency) { print FIL "freq"; $first = 0; }
if (!$first) { print FIL ","; }
if ($gfrequency) { print FIL "gfreq"; $first = 0; }
print FIL "\"\n\n";
print FIL "PerlSetEnv _SURVEY_EXPORT_html \"Survey::Export::HtmlTables\"\n";
print FIL "PerlSetEnv _SURVEY_EXPORT_spss \"Survey::Export::SPSS\"\n";
print FIL "PerlSetEnv _SURVEY_EXPORT_xml \"Survey::Export::XML\"\n";
print FIL "PerlSetEnv _SURVEY_EXPORT_sql \"Survey::Export::SQL\"\n";
print FIL "PerlSetEnv _SURVEY_EXPORT_delim \"Survey::Export::DelimitedFields\"\n";
print FIL "PerlSetEnv _SURVEY_EXPORT_fixed \"Survey::Export::FixedColumns\"\n";
print FIL "PerlSetEnv _SURVEY_EXPORT_r \"Survey::Export::R\"\n";
print FIL "PerlSetEnv _SURVEY_EXPORT_browse \"Survey::Export::CaseBrowser\"\n\n";
print FIL "PerlSetEnv _SURVEY_EXPORT_desc \"Survey::Export::Descriptive\"\n\n";
print FIL "PerlSetEnv _SURVEY_EXPORT_freq \"Survey::Export::Frequency\"\n\n";
print FIL "PerlSetEnv _SURVEY_EXPORT_gfreq \"Survey::Export::GroupedFrequency\"\n\n";
print FIL "# -----------------------------------------\n";
print FIL "# Mail settings\n";
print FIL "# -----------------------------------------\n";
print FIL "PerlSetEnv _SURVEY_SMTP_HOST \"127.0.0.1\"\n";
print FIL "PerlSetEnv _SURVEY_MAIL_ADMIN \"root\@localhost\"\n\n";
print FIL "# -----------------------------------------\n";
print FIL "# Set global survey configuration variables\n";
print FIL "# -----------------------------------------\n\n";
print FIL "# Directory where caches, autodata files and keys should be stored\n";
print FIL "PerlSetEnv _SURVEY_SYSBASE \"" . $conf{"_SURVEY_SYSBASE"} . "/\"\n\n";
print FIL "# Whether parser is allowed to write and read cache at all (overrides\n";
print FIL "# ALLOWCACHE in survey docs if set to 0)\n";
print FIL "PerlSetEnv _SURVEY_PARSERCACHE $parser\n\n";
print FIL "# Whether display module is allowed to write and read html output cache \n";
print FIL "# (overrides ALLOWCACHE in survey docs if set to 0)\n";
print FIL "PerlSetEnv _SURVEY_DISPLAYCACHE $display\n\n";
print FIL "# Where mod_survey is installed\n";
print FIL "PerlSetEnv _SURVEY_HOME \"" . $destination . "/\"\n\n";
print FIL "# Where mod_survey web root is\n";
print FIL "PerlSetEnv _SURVEY_ROOT \"" . $conf{"_SURVEY_ROOT"} . "/\"\n\n";
print FIL "# Which root alias to use for doc links and similar\n";
print FIL "PerlSetEnv _SURVEY_ROOT_ALIAS \"$rootalias\"\n\n";
print FIL "# Whether we have installed on a sensible (unixoid) system\n";
print FIL "PerlSetEnv _SURVEY_SENSIBLE 1\n\n";
print FIL "# -------------------------\n";
print FIL "# Security related settings\n";
print FIL "# -------------------------\n\n";
print FIL "# If you plan to use DBI tables, you must install DBI 1.13 or later and\n";
print FIL "# set the below to 1. Even if you have DBI installed, you may want to\n";
print FIL "# choose to not enable it in Mod_Survey for security reasons.\n";
print FIL "PerlSetEnv _SURVEY_USEDBI $dbiexists\n\n";
print FIL "# Whether is is allowed to let system automatically handle data submission\n";
print FIL "# It would a stupid idea to change this unless you know what you are doing.\n";
print FIL "PerlSetEnv _SURVEY_ALLOWAUTO 1\n\n";
print FIL "# Whether submit should protest at illegal characters and ask the user\n";
print FIL "# to go back and correct these. This will be ignored if _SURVEY_USENEWAUTo\n";
print FIL "PerlSetEnv _SURVEY_PROTESTILLEGAL 1\n\n";
print FIL "# Whether to use safe delimiters in the AutoData file. This makes things\n";
print FIL "# safer, but also makes the AutoData file partially binary. Most users \n";
print FIL "# want to enable this.\n";
print FIL "PerlSetEnv _SURVEY_USENEWAUTO 1\n\n";
print FIL "# -------------------------------------\n";
print FIL "# Internationalization related settings\n";
print FIL "# -------------------------------------\n\n";
print FIL "# Where to find language files\n";
print FIL "PerlSetEnv _SURVEY_LANG_DIRECTORY \"" . $conf{"_SURVEY_LANG_DIRECTORY"} . "\"\n\n";
print FIL "# Which language to use\n";
print FIL "PerlSetEnv _SURVEY_LANG \"$lang\"\n\n";
print FIL "# ---------------------------------------------------\n";
print FIL "# Startup check and addition of survey folder to \@INC\n";
print FIL "# ---------------------------------------------------\n\n";
print FIL "Perlrequire \"$destination/startup.pl\"\n\n";
print FIL "# --------------------------------------------------------------------\n";
print FIL "# Add type for survey files. If you change this, please change pattern \n";
print FIL "# for the files tag below too\n";
print FIL "# --------------------------------------------------------------------\n\n";
print FIL "AddType text/html $ext\n\n";
print FIL "# ---------------------------------------------------------------\n";
print FIL "# Match all files containing \"$ext\" (tail \"*\" is necessary for \n";
print FIL "# admin part). Enclosure in Directory necessary to avoid clash with\n";
print FIL "# mod_proxy.\n";
print FIL "# ---------------------------------------------------------------\n\n";
print FIL "\n";
print FIL " \n";
print FIL " SetHandler perl-script\n";
print FIL " PerlHandler Survey::Handler\n";
print FIL " PerlSendHeader \"$isa2\"\n";
print FIL " AuthType Basic\n";
print FIL " AuthName Mod_Survey\n";
print FIL " PerlAuthenHandler Apache::AuthAny\n";
print FIL " \n";
print FIL "\n\n";
print FIL "# ---------------------------------------------------------------\n";
print FIL "# Settings for alias/directory containing docs, examples, creator\n";
print FIL "# scripts and similar\n";
print FIL "# ---------------------------------------------------------------\n\n";
print FIL "Alias $rootalias \"" . $conf{"_SURVEY_ROOT"} . "/\"\n\n";
print FIL "\n";
print FIL " Options +All\n";
print FIL " AllowOverride All\n";
print FIL " Order allow,deny\n";
print FIL " Allow from all\n";
print FIL "\n\n";
close(FIL);
print "\n\n\n";
foreach $lib (@libfiles)
{
print "cp $source/$lib $workdir/$libdir/$lib\n";
system "cp $source/$lib $workdir/$libdir/$lib";
}
foreach $sh (@sharefiles)
{
print "cp $source/$sh $workdir/$sharedir/$sh\n";
system "cp $source/$sh $workdir/$sharedir/$sh";
}
foreach $web (@webfiles)
{
print "cp $source/webroot/$web $workdir/$webdir/$web\n";
system "cp $source/webroot/$web $workdir/$webdir/$web";
}
print "touch $workdir/$datadir/.keep\n";
system "touch $workdir/$datadir/.keep";
print "ln -s ../../mod_survey $workdir/var/www/localhost/htdocs/mod_survey\n";
system "ln -s ../../mod_survey $workdir/var/www/localhost/htdocs/mod_survey";
print "ln -s sw.sl $workdir/$libdir/Lang/sv.sl\n";
system "ln -s sw.sl $workdir/$libdir/Lang/sv.sl";
print "tar -C $workdir -cvzf $workroot/$tarballname ets usr var\n";
system "tar -C $workdir -cvzf $workroot/$tarballname etc usr var";
1;