1 # Copyright 2007 MJ Ray
3 # This file is part of Koha.
5 # Koha is free software; you can redistribute it and/or modify it under the
6 # terms of the GNU General Public License as published by the Free Software
7 # Foundation; either version 2 of the License, or (at your option) any later
10 # Koha is distributed in the hope that it will be useful, but WITHOUT ANY
11 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12 # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License along with
15 # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
16 # Suite 330, Boston, MA 02111-1307 USA
18 # Current maintainer MJR http://mjr.towers.org.uk/
19 # See http://www.koha.org/wiki/?page=KohaInstaller
21 use ExtUtils::MakeMaker;
24 die "perl 5.6.1 or later required" unless ($] >= 5.006001);
28 Makefile.PL - Koha packager and installer
32 =head2 BASIC INSTALLATION
38 =head2 PACKAGING RELEASE TARBALLS
49 This is a packager and installer that uses
50 ExtUtils::MakeMaker, which is fairly common
52 As well as building tar or zip files
53 and installing with the above commands,
54 it allows us to check pre-requisites
55 and generate configuration files.
59 =head2 NAME, VERSION_FROM, ABSTRACT, AUTHOR
61 Basic metadata about this software.
65 Suppress generation of META.yml file.
69 Hash of perl modules and versions required.
77 Maybe use prompt() here in future to get configuration values
78 interactively at installation time.
82 This is a hash of PL scripts to run after installation and
83 the files to ask them to generate.
84 Maybe use the values from CONFIGURE
85 to generate initial configuration files in future.
92 #VERSION => strftime('2.9.%Y%m%d%H',gmtime),
93 VERSION_FROM => 'C4/Context.pm',
94 ABSTRACT => 'Award-winning integrated library system (ILS) and Web OPAC',
95 AUTHOR => 'Koha Developers <koha-devel@nongnu.org>',
100 'CGI::Session' => '4.10',
101 'Class::Accessor' => 0.30,
102 'DBD::mysql' => 3.0008,
104 'Data::Dumper' => 2.121_08,
106 'Date::Manip' => 5.44,
107 'Digest::MD5' => 2.36,
109 'File::Temp' => 0.16,
110 'GD::Barcode::UPCE' => 1.1,
111 'Getopt::Long' => 2.35,
112 'Getopt::Std' => 1.05,
113 'HTML::Template' => 2.8,
114 'HTML::Template::Pro' => 0.65,
115 'HTTP::Cookies' => 1.39,
116 'HTTP::Request::Common' => 1.26,
117 'LWP::Simple' => 1.41,
118 'LWP::UserAgent' => 2.033,
119 'Lingua::Stem' => 0.82,
120 'List::Util' => 1.18,
121 'Locale::Language' => 2.07,
122 'MARC::Charset' => 0.95,
123 'MARC::File::XML' => 0.86,
124 'MARC::Record' => 1.38,
125 'MIME::Base64' => 3.07,
126 'MIME::QuotedPrint' => 3.07,
127 'Mail::Sendmail' => 0.79,
129 'Net::Z3950::ZOOM' => 1.16,
130 'PDF::API2' => 2.000,
131 'PDF::API2::Page' => 2.000,
132 'PDF::API2::Util' => 2.000,
133 'PDF::Reuse' => 0.33,
134 'PDF::Reuse::Barcode' => 0.05,
136 'Term::ANSIColor' => 1.10,
138 'Test::Harness' => 2.56,
139 'Test::More' => 0.62,
140 'Text::Wrap' => 2005.082401,
141 'Time::HiRes' => 1.86,
142 'Time::localtime' => 1.02,
143 'Unicode::Normalize' => 0.32,
144 'XML::LibXML' => 1.59,
145 'XML::SAX::ParserFactory' => 1.01,
146 'XML::Simple' => 2.14,
155 'test' => {TESTS => 't/dummy.t'},
158 # # Ask for options with prompt($question,$default) calls here?
159 # return { macro => { 'export TEST' => '755' } }
162 PL_FILES => { # generator => target(s)
163 'rewrite-config.PL' => [
164 '$(PREFIX)/share/koha/etc/koha-conf.xml',
165 '$(PREFIX)/share/koha/etc/koha-httpd.conf',
166 '$(PREFIX)/share/koha/etc/zebradb/tab/passwd',
167 '$(PREFIX)/share/koha/etc/zebradb/zebra-biblios.cfg',
168 '$(PREFIX)/share/koha/etc/zebradb/zebra-authorities.cfg'
171 # 'opac/getfromintranet.PL' => ['$(INST_LIBDIR)/opac/cgi-bin/detail.pl','$(INST_LIBDIR)/opac/cgi-bin/moredetail.pl','$(INST_LIBDIR)/opac/cgi-bin/search.pl','$(INST_LIBDIR)/opac/cgi-bin/subjectsearch.pl','$(INST_LIBDIR)/opac/cgi-bin/logout.pl'],
172 # 'misc/koha.conf.PL' => '$(INST_LIBDIR)/../etc/koha.conf',
173 # 'misc/apache-koha.conf.PL' => '$(INST_LIBDIR)/../etc/apache-koha.conf',
174 # 'misc/koha.sql.PL' => '$(INST_LIBDIR)/intranet/scripts/koha.sql',
175 # 'z3950/z3950-daemon-options.PL' => '$(INST_LIBDIR)/intranet/scripts/z3950daemon/z3950-daemon-options',
176 # # fake target to check permissions
177 # 'misc/chmod.PL' => '$(INST_LIBDIR)/fake-target'
179 # need to set ownerships
180 # need to load koha.sql
181 # need to link koha-httpd.conf
182 # need to start z3950-daemon
189 This function lists all files and where to install each one.
190 It returns a hash reference suitable for the PM variable above.
199 C4/*.pm is copied to perl's lib namespace.
202 foreach my $src (glob("C4/*.pm")) {
203 $result{$src} = '$(INST_LIBDIR)/'.$src;
208 CGIs are copied to $(PREFIX)/lib/cgi-bin/koha/
209 and other scripts to koha/
212 foreach my $src ("mainpage.pl","help.pl",glob("*/*.pl"),glob("installer/*.pm"),glob("*/*/*.pl"),glob("*/*/*/*.pl")) {
213 if ($src =~ /(misc|updater|rss)\//) {
214 $result{$src} = '$(INST_LIBDIR)/koha/'.$src;
216 $result{$src} = '$(PREFIX)/lib/cgi-bin/koha/'.$src;
222 Templates are copied to koha/templates,
225 foreach my $src (glob("koha-tmpl/*"),glob("koha-tmpl/intranet-tmpl/*/*/*"),glob("koha-tmpl/intranet-tmpl/*/*/*/*"),glob("koha-tmpl/intranet-tmpl/*/*/*/*/*"),glob("koha-tmpl/opac-tmpl/*/*/*"),glob("koha-tmpl/opac-tmpl/*/*/*/*"),glob("koha-tmpl/opac-tmpl/*/*/*/*/*")) {
229 excluding non-files, CVS files and whitespace in filenames.
232 if ((-f $src) && ($src !~ /(\/CVS\/|\s)/)) {
233 $result{$src} = '$(INST_LIBDIR)/koha/templates/'.$src;
238 etc files are copied to /usr/share/koha/etc/
241 # Misc etc to koha/etc
242 foreach my $src (glob("etc/*")) {
243 $result{$src} = '$(PREFIX)/share/koha/'.$src;
255 ExtUtils::MakeMaker(3)
259 MJ Ray mjr at phonecoop.coop