X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;ds=sidebyside;f=Makefile.PL;h=e7c6f2c769016618fc3087ac7298a31b35af3928;hb=82b6bf935ebab579f32005e2a1de38fd57645b02;hp=7c82968c0db4b94d2f34149cd3544ee3bfdddcf3;hpb=c756f63b96a325506abf749b6ff7b8cef5015845;p=koha.git diff --git a/Makefile.PL b/Makefile.PL old mode 100644 new mode 100755 index 7c82968c0d..e7c6f2c769 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,4 +1,4 @@ -# Copyright 2005 MJ Ray and koha development team +# Copyright 2007 MJ Ray # # This file is part of Koha. # @@ -15,79 +15,251 @@ # Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, # Suite 330, Boston, MA 02111-1307 USA # -# Current maintainer MJR slef at users.sourceforge.net +# Current maintainer MJR http://mjr.towers.org.uk/ # See http://www.koha.org/wiki/?page=KohaInstaller - +# +# 2007-11-05 Corrected CGI copy to include entire 'installer' subdir structure. -fbcit use ExtUtils::MakeMaker; +use POSIX; die "perl 5.6.1 or later required" unless ($] >= 5.006001); +=head1 NAME + +Makefile.PL - Koha packager and installer + +=head1 SYNOPSIS + +=head2 BASIC INSTALLATION + + perl Makefile.PL + make + sudo make install + +=head2 PACKAGING RELEASE TARBALLS + + make manifest tardist + make manifest zipdist + +=head2 CLEANING UP + + make clean + +=head1 DESCRIPTION + +This is a packager and installer that uses +ExtUtils::MakeMaker, which is fairly common +on perl systems. +As well as building tar or zip files +and installing with the above commands, +it allows us to check pre-requisites +and generate configuration files. + +=head1 VARIABLES + +=head2 NAME, VERSION_FROM, ABSTRACT, AUTHOR + +Basic metadata about this software. + +=head2 NO_META + +Suppress generation of META.yml file. + +=head2 PREREQ_PM + +Hash of perl modules and versions required. + +=head2 PM + +Hash of file mappings + +=head2 CONFIGURE + +Maybe use prompt() here in future to get configuration values +interactively at installation time. + +=head2 PL_FILES + +This is a hash of PL scripts to run after installation and +the files to ask them to generate. +Maybe use the values from CONFIGURE +to generate initial configuration files in future. + +=cut + WriteMakefile( - NAME => 'Koha', - DISTNAME => 'koha', - VERSION => '3.2.0', + + NAME => 'koha', + #VERSION => strftime('2.9.%Y%m%d%H',gmtime), + VERSION_FROM => 'C4/Context.pm', + ABSTRACT => 'Award-winning integrated library system (ILS) and Web OPAC', + AUTHOR => 'Koha Developers ', NO_META => 1, PREREQ_PM => { - 'DBI' => 1, - 'Date::Manip' => 1, - 'DBD::MySQL' => 1, - 'HTML::Template::Pro' => 1, - 'Digest::MD5' => 1, - 'MARC::Record' => 2.0, - 'MARC::Charset' => 0.95, - 'MARC::File::XML' => 0.83, - 'Mail::Sendmail' => 1, - 'PDF::API2' => 1, - 'Net::LDAP' => 1, - XML::Simple=>1, - 'XML::LibXML' => 1.58 +'CGI' => 3.15, +'CGI::Carp' => 1.29, +'CGI::Session' => '4.10', +'Class::Factory::Util' => 1.7, +'Class::Accessor' => 0.30, +'DBD::mysql' => 3.0008, +'DBI' => 1.53, +'Data::Dumper' => 2.121_08, +'Date::Calc' => 5.4, +'Date::Manip' => 5.44, +'Digest::MD5' => 2.36, +'File::Temp' => 0.16, +'GD::Barcode::UPCE' => 1.1, +'Getopt::Long' => 2.35, +'Getopt::Std' => 1.05, +'HTML::Template::Pro' => 0.65, +'HTTP::Cookies' => 1.39, +'HTTP::Request::Common' => 1.26, +'LWP::Simple' => 1.41, +'LWP::UserAgent' => 2.033, +'Lingua::Stem' => 0.82, +'List::Util' => 1.18, +'Locale::Language' => 2.07, +'MARC::Charset' => 0.95, +'MARC::File::XML' => 0.86, +'MARC::Record' => 1.38, +'MIME::Base64' => 3.07, +'MIME::QuotedPrint' => 3.07, +'Mail::Sendmail' => 0.79, +'PDF::API2' => 2.000, +'PDF::API2::Page' => 2.000, +'PDF::API2::Util' => 2.000, +'PDF::Reuse' => 0.33, +'PDF::Reuse::Barcode' => 0.05, +'POSIX' => 1.09, +'Schedule::At' => 1.06, +'Term::ANSIColor' => 1.10, +'Test' => 1.25, +'Test::Harness' => 2.56, +'Test::More' => 0.62, +'Text::CSV' => 0.01, +'Text::Wrap' => 2005.082401, +'Time::HiRes' => 1.86, +'Time::localtime' => 1.02, +'Unicode::Normalize' => 0.32, +'XML::Dumper' => 0.81, +'XML::LibXML' => 1.59, +'XML::SAX::ParserFactory' => 1.01, +'XML::Simple' => 2.14, +'XML::RSS' => 1.31, +'ZOOM' => 1.16, }, - CONFIGURE => sub { - # Figure out options here? - return { macro => { 'export TEST' => '755' } } - }, - PMLIBDIRS => [ '.' ], - PL_FILES => { # generator => target - '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'], - 'misc/koha.conf.PL' => '$(INST_LIBDIR)/../etc/koha.conf', - 'misc/apache-koha.conf.PL' => '$(INST_LIBDIR)/../etc/apache-koha.conf', - 'misc/koha.sql.PL' => '$(INST_LIBDIR)/intranet/scripts/koha.sql', - 'z3950/z3950-daemon-options.PL' => '$(INST_LIBDIR)/intranet/scripts/z3950daemon/z3950-daemon-options', - # fake target to check permissions - 'misc/chmod.PL' => '$(INST_LIBDIR)/fake-target' - } + + # File tree mapping + PM => map_tree(), + + # disable tests + 'test' => {TESTS => 't/dummy.t'}, + +# CONFIGURE => sub { +# # Ask for options with prompt($question,$default) calls here? +# return { macro => { 'export TEST' => '755' } } +# }, + + PL_FILES => { # generator => target(s) + 'rewrite-config.PL' => [ + '$(PREFIX)/share/koha/etc/koha-conf.xml', + '$(PREFIX)/share/koha/etc/koha-httpd.conf', + '$(PREFIX)/share/koha/etc/zebradb/etc/passwd', + '$(PREFIX)/share/koha/etc/zebradb/zebra-biblios.cfg', + '$(PREFIX)/share/koha/etc/zebradb/zebra-authorities.cfg' + ] + } +# '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'], +# 'misc/koha.conf.PL' => '$(INST_LIBDIR)/../etc/koha.conf', +# 'misc/apache-koha.conf.PL' => '$(INST_LIBDIR)/../etc/apache-koha.conf', +# 'misc/koha.sql.PL' => '$(INST_LIBDIR)/intranet/scripts/koha.sql', +# 'z3950/z3950-daemon-options.PL' => '$(INST_LIBDIR)/intranet/scripts/z3950daemon/z3950-daemon-options', +# # fake target to check permissions +# 'misc/chmod.PL' => '$(INST_LIBDIR)/fake-target' +# } # need to set ownerships # need to load koha.sql # need to link koha-httpd.conf # need to start z3950-daemon ); -sub MY::libscan { - my ($self,$path) = @_; - - # set up the recursion - if (-d $path) { 1; } - elsif ($path !~ /\//) { $path = ''; } - # from here - # reimplementation of buildrelease and Install::installfiles - # ban some shell specials too - elsif ($path =~ /(\/CVS\/|\.(bak|orig|PL)$|\/,|\/t\/|[^\$]\(| )/) { $path = ''; } - elsif ( - $path =~ s:\)/misc:\)/intranet/scripts: || - $path =~ s:\)/updater:\)/intranet/scripts/updater: || - $path =~ s:\)/z3950/(processz3950queue|.*sh):\)/intranet/scripts/z3950daemon/\1: || - $path =~ s:\)/z3950:\)/intranet/cgi-bin/z3950: || - $path =~ s:\)/koha-tmpl/intranet-tmpl:\)/intranet/htdocs/intranet-tmpl: || - $path =~ s:\)/koha-tmpl/intranet.html:\)/intranet/htdocs/index.html: || - $path =~ s:\)/koha-tmpl/opac-tmpl:\)/opac/htdocs/opac-tmpl: || - $path =~ s:\)/koha-tmpl/opac.html:\)/opac/htdocs/index.html: || - $path =~ s:\)/opac:\)/opac/cgi-bin: - ) { 1; } - elsif ($path !~ /\.p[lm]$/) { $path = ''; } - elsif ($path !~ /\)\/C4/) { $path =~ s!/!/intranet/cgi-bin/!; } - - #print STDERR $path."\n"; - - return($path); - - } +=head1 FUNCTIONS + +=head2 map_tree + +This function lists all files and where to install each one. +It returns a hash reference suitable for the PM variable above. + +=cut + +sub map_tree { + my %result => (); + +=pod + +C4/*.pm is copied to perl's lib namespace. + +=cut + foreach my $src (glob("C4/*.pm")) { + $result{$src} = '$(INST_LIBDIR)/'.$src; + } + +=pod + +CGIs are copied to $(PREFIX)/lib/cgi-bin/koha/ +and other scripts to koha/ + +=cut + foreach my $src ("mainpage.pl","help.pl","kohaversion.pl",glob("*/*.pl"),glob("installer/*"),glob("installer/*/*/*/*"),glob("*/*/*.pl"),glob("*/*/*/*.pl")) { + if ($src =~ /(misc|updater|rss)\//) { + $result{$src} = '$(INST_LIBDIR)/koha/'.$src; + } else { + $result{$src} = '$(PREFIX)/lib/cgi-bin/koha/'.$src; + } + } + +=pod + +Templates are copied to koha/templates, + +=cut + 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/*/*/*/*/*")) { + +=pod + +excluding non-files, CVS files and whitespace in filenames. + +=cut + if ((-f $src) && ($src !~ /(\/CVS\/|\s)/)) { + $result{$src} = '$(INST_LIBDIR)/koha/templates/'.$src; + } + } +=pod + +etc files are copied to /usr/share/koha/etc/ + +=cut + # Misc etc to koha/etc + foreach my $src (glob("etc/zebradb/*/*/*"),glob("etc/zebradb/*/*"),glob("etc/zebradb/*"),glob("etc/*")) { + if (-f $src) { + $result{$src} = '$(PREFIX)/share/koha/'.$src; + } + } + + + return \%result; +} + +__END__ + + +=head1 SEE ALSO + +ExtUtils::MakeMaker(3) + +=head1 AUTHOR + +MJ Ray mjr at phonecoop.coop + +=cut +