summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzach%zachlipton.com <>2003-01-14 10:09:30 +0100
committerzach%zachlipton.com <>2003-01-14 10:09:30 +0100
commitda375b2f4642503531309cb5692f65bbf3394a12 (patch)
treea466a465f7daf20b9b1c1b1ecb5b80a25cbd487e
parent9af33116a6e1d7a193504d48376d883f159fb5f7 (diff)
downloadbugzilla-da375b2f4642503531309cb5692f65bbf3394a12.tar.gz
bugzilla-da375b2f4642503531309cb5692f65bbf3394a12.tar.xz
Readd the changes back on the (now updated) branch :(
-rw-r--r--Conf.pm104
-rw-r--r--Configure.pl63
-rw-r--r--docs/newinstall_notes38
3 files changed, 205 insertions, 0 deletions
diff --git a/Conf.pm b/Conf.pm
new file mode 100644
index 000000000..6936787a0
--- /dev/null
+++ b/Conf.pm
@@ -0,0 +1,104 @@
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+#
+# The Original Code is the Bugzilla Installer.
+#
+# The Initial Developer of the Original Code is Zach Lipton
+# Portions created by Zach Lipton are
+# Copyright (C) 2002 Zach Lipton. All
+# Rights Reserved.
+#
+# Contributor(s): Zach Lipton <zach@zachlipton.com>
+#
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable
+# instead of those above. If you wish to allow use of your
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL. If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+
+package Conf;
+no warnings; # evil beings...
+
+use Exporter;
+@ISA = qw(Exporter);
+@EXPORT = qw(ask holduntilkey output setConf getConf getParam setParam);
+
+# this is very important. We set a default controller which is responsible
+# for getting data from the user and returning it back to us. Our default
+# is rather simple, but if a packager wishes to use a Tk front-end or customize
+# the look and feel of the installation process to match with their system, they
+# can override our controller by making a new one and setting
+# $Conf::controller = "foo" in a custom Configure.pl
+# This is really intended for debian-style configuration systems
+$controller = "Conf::DefaultController";
+
+
+unless (eval("use $controller")) {
+ die "ack, something went wrong when I tried to use controller $controller $@";
+}
+
+eval("use Conf::Supplies::Config"); # do this in an eval because it may not exist yet
+# this module will store defaults for the installation
+
+# ASK:
+# call me like this:
+# ask('questionname','question?','default answer');
+sub ask {
+ my ($name, $question, $default) = @_;
+ if ($Conf::Supplies::Config::answers{$name}) { # if it's in Config.pm, use it
+ $default = $Conf::Supplies::Config::answers{$name};
+ }
+ _ask($name,$question,$default);
+ if ($answer eq "") { $answer = $default; } # handle the default
+ $main::c{$name} = $answer;
+}
+
+#HOLDUNTILKEY
+# allows you to pause until the user presses a key
+sub holduntilkey {
+ _holduntilkey();
+}
+
+sub output {
+ my ($output, $loud) = @_;
+ _output($output,$loud);
+}
+
+sub setConf($$) {
+ my ($name, $value) = @_;
+ $main::c{$name} = $value; # and set it
+}
+
+
+sub getConf($) {
+ my $name = @_;
+ return $main::c{$name}; # return the value
+}
+
+# ask for the param name
+sub getParam($) {
+ my $param = @_;
+ return $params{$param}; # return the param
+}
+
+# set a param
+sub setParam($$) {
+ my ($name, $value) = @_;
+ $params{$name} = $value; # and set it
+}
+
+1;
diff --git a/Configure.pl b/Configure.pl
new file mode 100644
index 000000000..2897fb950
--- /dev/null
+++ b/Configure.pl
@@ -0,0 +1,63 @@
+#!/usr/bonsaitools/bin/perl -w
+
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+#
+# The Original Code is the Bugzilla Installer.
+#
+# The Initial Developer of the Original Code is Zach Lipton
+# Portions created by Zach Lipton are
+# Copyright (C) 2002 Zach Lipton. All
+# Rights Reserved.
+#
+# Contributor(s): Zach Lipton <zach@zachlipton.com>
+#
+# Alternatively, the contents of this file may be used under the
+# terms of the GNU General Public License Version 2 or later (the
+# "GPL"), in which case the provisions of the GPL are applicable
+# instead of those above. If you wish to allow use of your
+# version of this file only under the terms of the GPL and not to
+# allow others to use your version of this file under the MPL,
+# indicate your decision by deleting the provisions above and
+# replace them with the notice and other provisions required by
+# the GPL. If you do not delete the provisions above, a recipient
+# may use your version of this file under either the MPL or the
+# GPL.
+#
+eval("use Conf::Supplies::Config"); # do this in an eval so if
+ # it doesn't exist (new installation)
+ # there won't be an error.
+use File::Spec;
+use Conf;
+
+$args = join(' ',@ARGV);
+
+# Insert lines in this space to run .cm files like:
+# runconf('Conf/Foo.cm');
+# runconf() will handle the path mapping for XP purposes
+# NOT SURE IF WE REALLY NEED TO ADJUST THE PATH
+runconf('Conf/Begin.cm');
+
+if ($args =~ /--perl\=([\/A-Za-z0-9]+) /) { # they passed us a perl arg
+ setConf('perl',$1); # set the path to perl and move on...
+} else {
+ # they haven't run configure.pl before so run PerlCheck now...
+ runconf('Conf/PerlCheck.cm');
+}
+
+runconf('Conf/UpgradeCheck.cm');
+
+
+sub runconf {
+ my ($path) = @_;
+ my @pathlist = split('/',$path);
+ require File::Spec->catfile(@pathlist);
+}
+
diff --git a/docs/newinstall_notes b/docs/newinstall_notes
new file mode 100644
index 000000000..fffa68468
--- /dev/null
+++ b/docs/newinstall_notes
@@ -0,0 +1,38 @@
+installtypes file format:
+
+typename:description filetype|location (one blank line to end one
+installtype and begin the next)
+
+You can specify a unix path in location, or 'userdir' to indicate that
+the user should be prompted and asked which directory they want to
+install into. Bugzilla will attempt to provide them with a reasonible
+default.
+
+Most packagers will not want to change very many installlayout settings.
+It is important to ensure that 'res' has the appearence of being in the
+same directory as cgi and req to the http server, though this can be
+accomplished through careful configuration of your httpd.conf config
+files. req and cgi should almost always be in the same directory
+however. tst can be set to null for systems where the tests are unwanted
+or unnessicary (they will be run upon installation and upgrading as part
+of the 'make test' process. tem can be set to any path wanted, the
+template search/include path in Bugzilla will be set automatically. mod
+may also be set anywhere, use lib lines will be added to Bugzilla
+scripts.
+
+The doc setting is "magical" in that a third paramater is used to set
+which types of documentation is installed. This may be set to 'all' and
+all types of documents will be copied, or to any one of the supported
+documentation types (with a corresponding directory in bugzilla/docs/)
+
+Filetypes: res: resources (images, html, js, etc) cgi: cgi files mod:
+modules req: something that must be with the other cgi scripts for
+bugzilla to work null: not needed in the dist, discard tst: tests
+
+You MUST add any new files to the filemappings file or it will not be
+copied into the installed dist. The tests will check for this.
+
+Do _not_ include any documentation or templates in the filemappings
+list, the makefile has special rules written in to accomidate these.
+
+