[open-ils-commits] r11494 - branches/rel_1_4/Open-ILS/src/extras

svn at svn.open-ils.org svn at svn.open-ils.org
Tue Dec 9 23:43:20 EST 2008


Author: dbs
Date: 2008-12-09 23:43:18 -0500 (Tue, 09 Dec 2008)
New Revision: 11494

Modified:
   branches/rel_1_4/Open-ILS/src/extras/Makefile.install
Log:
Backport EG-specific prerequisites Makefile from trunk; use more distro packages where available


Modified: branches/rel_1_4/Open-ILS/src/extras/Makefile.install
===================================================================
--- branches/rel_1_4/Open-ILS/src/extras/Makefile.install	2008-12-10 04:39:38 UTC (rev 11493)
+++ branches/rel_1_4/Open-ILS/src/extras/Makefile.install	2008-12-10 04:43:18 UTC (rev 11494)
@@ -3,15 +3,21 @@
 #
 # Makefile to install prerequisites for OpenSRF and Evergreen
 #
-# Currently supports Debian (etch), Ubuntu (gutsy), and Gentoo.
+# Currently supports Debian (etch/lenny), Ubuntu (gutsy/hardy/intrepid), and Gentoo.
 # Working towards support of CentOS 5 / RHEL 5.
 # Installs Perl prereqs, libjs with Perl wrapper, libdbi, libdbi-drivers, and libyaz
 #
 # usage:
-# 	make -f Makefile.install debian
+# 	make -f Makefile.install debian-etch
 # 	- or -
-# 	make -f Makefile.install ubuntu
+# 	make -f Makefile.install debian-lenny
 # 	- or -
+# 	make -f Makefile.install ubuntu-gutsy
+# 	- or -
+# 	make -f Makefile.install ubuntu-hardy
+# 	- or -
+# 	make -f Makefile.install ubuntu-intrepid
+# 	- or -
 # 	make -f Makefile.install centos
 # 	- or -
 # 	make -f Makefile.install rhel
@@ -20,7 +26,8 @@
 #
 # Notes:
 #
-# 	This makefile has been tested much more with Debian than CentOS, Gentoo, or RHEL.
+# 	This makefile has been tested much more with Debian and Ubuntu than
+# 	CentOS, Gentoo, or RHEL.
 #
 # 	Gentoo (especially amd64) requires a good bit of masked package
 # 	mangling for some packages.  These are not documented here because
@@ -34,8 +41,11 @@
 # XXX
 # Gentoo needs explicit versions on many of these packages
 # to simulate a "blessed" set of packages
+#
 # Also, I (think) Gentoo has a javascript::spidermonkey package that does
 # not require fetching the sources externally ... needs testing/updating in here
+#
+# Intrepid has libmozjs-dev and spidermonkey-bin - might work
 
 LIBJS=js-1.7.0
 LIBJS_PERL=JavaScript-SpiderMonkey-0.19
@@ -51,127 +61,53 @@
 LIBDBI_DRIVERS=libdbi-drivers-0.8.3
 LIBDBI_HOST=http://open-ils.org/~denials/evergreen
 
-# Some people are firewalled out of indexdata.dk
-YAZ=yaz-3.0.36
-YAZ_HOST=http://evergreen-ils.org/~denials/yaz
+# We need a recent version of Yaz
+# Debian Lenny and Ubuntu 8.10 come with 3.0.34
+YAZ=yaz-3.0.38
+YAZ_HOST=http://ftp.indexdata.dk/pub/yaz
 
-# ejabberd is not packaged on CentOS/RHEL, so we have to
-# download the installable package from the source
-EJABBERD_VER=2.0.1
-EJABBERD_PKG=ejabberd-2.0.1_2-linux-x86-installer.bin
-EJABBERD_HOST=http://www.process-one.net/downloads/ejabberd
-
-# libmemcache is not packaged on CentOS/RHEL
-LIBMEMCACHE=libmemcache-1.4.0.rc2
-LIBMEMCACHE_HOST=http://people.freebsd.org/~seanc/libmemcache/
-
 # Business::OnlinePayment is not packaged on CentOS/RHEL
 PAY_ONLINE=Business-OnlinePayment-3.00_08.tar.gz
 PAY_ONLINE_HOST=http://ftp.perl.org/pub/CPAN/authors/id/I/IV/IVAN/
 
-
-# XML::LibXSLT fails due to old libxslt
-XSLT=libxslt-1.1.22
-XSLT_HOST=ftp://ftp.gnome.org/pub/GNOME/sources/libxslt/1.1
-
-# libxslt depends on a newer version of libxml2:
-XML2=libxml2-2.6.30.tar.gz
-XML2_HOST=ftp://ftp.gnome.org/pub/GNOME/sources/libxml2/2.6
-
 APT_TOOL=aptitude
 
 # Debian dependencies
 DEBS =  \
-	apache2-mpm-prefork\
-	apache2-prefork-dev\
 	aspell\
 	aspell-en\
-	autoconf\
-	automake\
-	build-essential\
-	ejabberd\
-	less\
-	libapache2-mod-perl2\
 	libbusiness-creditcard-perl\
 	libbusiness-onlinepayment-authorizenet-perl\
 	libbusiness-onlinepayment-perl\
-	libcache-memcached-perl\
-	libclass-dbi-abstractsearch-perl\
 	libclass-dbi-pg-perl\
-	libclass-dbi-sqlite-perl\
 	libdatetime-format-builder-perl\
 	libdatetime-format-mail-perl\
 	libdatetime-perl\
 	libdatetime-timezone-perl\
 	libemail-send-perl\
-	liberror-perl\
-	libexpat1-dev\
-	libfile-find-rule-perl\
-	libfreezethaw-perl\
 	libgd-graph3d-perl\
-	liblog-log4perl-perl\
 	libmarc-record-perl\
-	libmemcache-dev\
-	libmodule-build-perl\
-	libnet-jabber-perl\
 	libole-storage-lite-perl\
-	libperl-dev\
 	libpq-dev\
-	libreadline5-dev\
-	librpc-xml-perl\
 	libspreadsheet-writeexcel-perl\
-	libtemplate-perl\
-	libtest-pod-perl\
 	libtext-aspell-perl\
 	libtext-csv-perl\
-	libtext-csv-perl\
-	libtie-ixhash-perl\
-	libtool\
-	libuniversal-require-perl\
-	libunix-syslog-perl\
-	libwww-perl\
-	libxml2-dev\
-	libxml-libxml-perl\
-	libxml-libxslt-perl\
-	libxml-simple-perl\
-	libxslt1-dev\
-	memcached\
-	ntpdate\
-	psmisc\
-	python-dev\
-	python-setuptools
+	libtext-csv-perl
 
+# Debian Lenny and Ubuntu Intrepid bundle recent versions of yaz
+EXTRA_DEBS = \
+	libmarc-charset-perl \
+	libmarc-xml-perl \
+	libnet-z3950-zoom-perl \
+	libyaz-dev \
+	yaz
+
 CENTOS = \
-	apr-util-devel \
 	aspell \
 	aspell-devel \
 	aspell-en \
-	autoconf \
-	automake \
-	gcc \
 	gd-devel \
-	gdbm-devel \
-	httpd-devel \
-	less \
-	libtool \
-	libxml2-devel \
-	libxslt-devel \
-	make \
-	mod_perl \
-	mod_ssl \
-	ncurses \
-	ncurses-devel \
-	ntp \
-	perl-DBD-Pg \
-	perl-DBI \
-	perl-XML-LibXML \
-	perl-XML-Simple \
-	perl-libwww-perl \
-	psmisc \
-	python-devel \
-	python-setuptools\
-	readline-devel \
-	wget
+	perl-DBD-Pg
 
 PGSQL_CENTOS = \
 	postgresql \
@@ -188,103 +124,68 @@
 # that are simply too painful to workaround
 CENTOS_PERL_NOTEST = \
 	Business::OnlinePayment::AuthorizeNet \
-	DateTime::Format::Strptime \
-	RPC::XML
+	DateTime::Format::Strptime
 
 # This is a developer's version, but B:OP:AuthorizeNet depends on it
 CENTOS_PERL_VERSION = \
 	IVAN/Business-OnlinePayment-3.00_08.tar.gz
 
-CENTOS_PERL_LOCAL = \
-	XML-LibXSLT
-
 CENTOS_PERL = \
 	Business::CreditCard \
-	Cache::Memcached \
-	Class::DBI::AbstractSearch \
 	Class::DBI::Pg \
-	Class::DBI::SQLite \
 	DateTime \
 	DateTime::TimeZone \
 	DateTime::Format::Builder \
-	Error \
-	File::Find::Rule \
-	FreezeThaw \
 	GD::Graph3d \
-	Log::Log4perl \
 	MARC::Record \
-	Net::Jabber \
 	Net::Z3950::ZOOM \
 	Spreadsheet::WriteExcel \
-	Template \
-	Test::Pod \
 	Text::Aspell \
-	Text::CSV \
-	Tie::IxHash \
-	Unix::Syslog \
-	UNIVERSAL::require \
-	XML::LibXSLT
+	Text::CSV
 
-PGSQL_DEBIAN = \
-	postgresql-8.1\
-	postgresql-client-8.1\
-	postgresql-contrib-8.1\
-	postgresql-plperl-8.1\
+PGSQL_CLIENT_DEBS_8.1 = \
+	postgresql-client-8.1 \
 	postgresql-server-dev-8.1
 
-PGSQL_UBUNTU = \
-	postgresql-8.2\
-	postgresql-client-8.2\
-	postgresql-contrib-8.2\
-	postgresql-plperl-8.2\
+PGSQL_SERVER_DEBS_8.1 = \
+	postgresql-8.1 \
+	postgresql-contrib-8.1 \
+	postgresql-plperl-8.1
+
+PGSQL_CLIENT_DEBS_82 = \
+	postgresql-client \
 	postgresql-server-dev-8.2
 
+PGSQL_SERVER_DEBS_82 = \
+	postgresql \
+	postgresql-contrib-8.2 \
+	postgresql-plperl-8.2
+
+PGSQL_CLIENT_DEBS_83 = \
+	postgresql-client \
+	postgresql-server-dev-8.3
+
+PGSQL_SERVER_DEBS_83 = \
+	postgresql \
+	postgresql-contrib-8.3 \
+	postgresql-plperl-8.3
+
 GENTOOS = \
-    vim\
-    ntp\
-    memcached\
-    libmemcache\
-    net-misc/telnet-bsd\
-    app-portage/gentoolkit\
-    gsasl\
-    ejabberd\
-    mod_perl\
     yaz\
     aspell-en\
-    net-fs/nfs-utils\
-    dev-libs/apr\
     dev-db/libpq\
     dev-db/postgresql\
     dev-perl/Email-Send\
-    dev-perl/Cache-Memcached\
     dev-perl/DateTime\
     dev-perl/DateTime-TimeZone\
-    dev-perl/DBI\
     dev-perl/DBD-Pg\
     dev-perl/GD-Graph3d\
-    dev-perl/Log-Log4perl\
     dev-perl/Text-Aspell\
-    dev-perl/Unix-Syslog\
-    dev-perl/XML-LibXML\
-    dev-perl/XML-LibXSLT\
-    dev-perl/XML-Simple\
-    dev-perl/Net-Jabber\
-    dev-perl/libwww-perl\
     dev-perl/Template-Toolkit\
-    dev-perl/Error\
     dev-perl/Text-CSV_XS\
-    dev-perl/Spreadsheet-WriteExcel\
-    dev-perl/Tie-IxHash\
-	dev-perl/FreezeThaw
+    dev-perl/Spreadsheet-WriteExcel
 
-GENTOO_RC = \
-    ejabberd\
-    memcached\
-    portmap
-
 GENTOO_PERL = \
-    UNIVERSAL::require\
-    Class::DBI::AbstractSearch\
     MARC::Record \
     Net::Z3950::ZOOM \
     Text::CSV
@@ -294,77 +195,59 @@
     include\
     proxy\
     proxy_http\
-    rewrite\
-    ssl
- 
+    rewrite
 
-# generic CPAN modules
+DEB_APACHE_DISMODS = \
+    deflate
+
+# Chronically unpackaged CPAN modules
 CPAN_MODULES = \
-    DateTime::Format::ISO8601 \
-    RHANDOM/Net-Server-0.90.tar.gz \
-    MARC::Charset MARC::File::XML \
-    JSON::XS \
-    SRU \
-    Net::Z3950::ZOOM \
-	Business::CreditCard::Object \
-	XML::LibXML::XPathContext
+    Business::CreditCard::Object \
+    SRU
 
-# generic CPAN modules to force the install
-CPAN_MODULES_FORCE = \
-    TMTM/Class-DBI-0.96.tar.gz
+# Intrepid and Lenny have libmarc-charset-perl, libmarc-xml-perl, libnet-z3950-zoom-perl
+CPAN_MODULES_MARC = \
+    MARC::Charset \
+    MARC::File::XML \
+    Net::Z3950::ZOOM
 
 # ----------------------------------------------------------------------------
 
 all: 
 	@echo "please specify an OS" && exit 0
 
-
 # these should be the same for any distro
-install: install_yaz install_cpan install_js_sm install_libdbi 
+install: install_cpan install_js_sm install_libdbi 
 
-centos: install_centos_pgsql install_centos_rpms install_ejabberd install_libmemcache install install_libxml2 install_libxslt install_centos_perl create_ld_local
+centos: install_centos_pgsql install_centos_rpms install_yaz install_cpan_marc install install_centos_perl create_ld_local
 
-debian: install_pgsql_debian install_debs install debian_sys_config
+debian-etch: etch generic_debian
+debian-lenny: lenny generic_debian
+etch: install_pgsql_client_debs_81 install_yaz install_cpan_marc
+lenny: install_pgsql_client_debs_83 install_extra_debs
+generic_debian:  install_debs install debian_sys_config
 
-gentoo: install_gentoos install_gentoo_rc install_gentoo_perl install
+gentoo: install_gentoos install_gentoo_perl install
 
 rhel: centos
 
-ubuntu: install_pgsql_ubuntu install_debs install debian_sys_config
+ubuntu-gutsy: hardy generic_ubuntu 
+ubuntu-hardy: hardy generic_ubuntu
+ubuntu-intrepid: intrepid generic_ubuntu
+hardy: install_pgsql_client_debs_82 install_yaz install_cpan_marc
+intrepid: install_pgsql_client_debs_83 install_extra_debs
+generic_ubuntu: install_debs install debian_sys_config
 
-
 # - COMMON TARGETS ---------------------------------------------------------
 
 # Install the CPAN modules
 install_cpan: 
 	for m in $(CPAN_MODULES); do perl -MCPAN -e "install \"$$m\";"; done
-	for m in $(CPAN_MODULES_FORCE); do perl -MCPAN -e "CPAN::Shell->force(qw#install $$m#);"; done
 
-# Install ejabberd from official project installer binary
-install_ejabberd:    
-	if [ ! -f $(EJABBERD_PKG).gz ]; then wget $(EJABBERD_HOST)/$(EJABBERD_VER)/$(EJABBERD_PKG).gz; fi;
-	gunzip $(EJABBERD_PKG).gz
-	chmod u+x $(EJABBERD_PKG).gz
-	./$(EJABBERD_PKG) --mode unattended --prefix /opt/ejabberd --adminpw evergreen
+# Install the CPAN modules for MARC functionality
+install_cpan_marc: 
+	for m in $(CPAN_MODULES_MARC); do perl -MCPAN -e "install \"$$m\";"; done
 
-# Install libmemcache from the official project source
-install_libmemcache:
-	if [ ! -d $(LIBMEMCACHE) ]; then wget $(LIBMEMCACHE_HOST)/$(LIBMEMCACHE).tar.bz2; fi;
-	tar xjf $(LIBMEMCACHE).tar.bz2
-	cd $(LIBMEMCACHE) && ./configure && make && make install
-
-# Install a newer version of libxslt
-install_libxslt:    
-	if [ ! -d $(XSLT) ]; then wget $(XSLT_HOST)/$(XSLT).tar.gz; fi;
-	tar xzf $(XSLT).tar.gz
-	cd $(XSLT) && ./configure --with-libxml-prefix=/usr/local && make && make install
-
-# Install a newer version of libxml2
-install_libxml2:    
-	if [ ! -d $(XML2) ]; then wget $(XML2_HOST)/$(XML2).tar.gz; fi;
-	tar xzf $(XML2).tar.gz
-	cd $(XML2) && ./configure && make && make install
-
 # Install a known working version of YAZ
 install_yaz:    
 	if [ ! -d $(YAZ) ]; then wget $(YAZ_HOST)/$(YAZ).tar.gz; fi;
@@ -401,8 +284,6 @@
 	make -C $(LIBDBI) clean
 	make -C $(LIBDBI_DRIVERS) clean
 	make -C $(LIBJS_PERL) clean
-	make -C $(XML2) clean
-	make -C $(XSLT) clean
 	make -f Makefile.ref -C js/src/ clean
 
 
@@ -412,32 +293,46 @@
 debian_sys_config: 
 	# link the apache modules in
 	for m in $(DEB_APACHE_MODS); do a2enmod $$m; done;
-	
-	# adds a placeholder module so apxs will be happy
-	if [ ! "$$(grep mod_placeholder /etc/apache2/httpd.conf)" ]; then \
-		echo -e "#\n#LoadModule mod_placeholder /usr/lib/apache2/modules/mod_placeholder.so" \
-			>> /etc/apache2/httpd.conf; \
-	fi;
+	# keep the bad apache modules away
+	for m in $(DEB_APACHE_DISMODS); do a2dismod $$m; done;
+	# refresh the dynamic library cache
+	ldconfig
 
 # Install the debian-specific dependencies
 install_debs:
 	$(APT_TOOL) install $(DEBS)
 
-install_pgsql_debian:
-	$(APT_TOOL) install $(PGSQL_DEBIAN)
+install_pgsql_client_debs_83:
+	$(APT_TOOL) install $(PGSQL_CLIENT_DEBS_83)
 
-install_pgsql_ubuntu:
-	$(APT_TOOL) install $(PGSQL_UBUNTU)
+install_pgsql_server_debs_83:
+	$(APT_TOOL) install $(PGSQL_SERVER_DEBS_83)
 
+install_pgsql_client_debs_82:
+	$(APT_TOOL) install $(PGSQL_CLIENT_DEBS_82)
+
+install_pgsql_server_debs_82:
+	$(APT_TOOL) install $(PGSQL_SERVER_DEBS_82)
+
+# Etch requires an explicit version to avoid PostgreSQL 7.4
+install_pgsql_client_debs_81:
+	$(APT_TOOL) install $(PGSQL_CLIENT_DEBS_81)
+
+# Etch requires an explicit version to avoid PostgreSQL 7.4
+install_pgsql_server_debs_81:
+	$(APT_TOOL) install $(PGSQL_SERVER_DEBS_81)
+
+# Install the debian-specific dependencies for more modern distros
+install_extra_debs:
+	$(APT_TOOL) install $(EXTRA_DEBS)
+
+
 # ------------------------------------------------------------------
 # - GENTOO ---------------------------------------------------------
 
 install_gentoos:
 	emerge -n $(GENTOOS)
 
-install_gentoo_rc:
-	for m in $(GENTOO_RC); do rc-update add $$m default; done;
-
 install_gentoo_perl:
 	for m in $(GENTOO_PERL); do perl -MCPAN -e "install \"$$m\";"; done
 
@@ -456,13 +351,12 @@
 	for m in $(CENTOS_PERL); do perl -MCPAN -e "install \"$$m\";"; done
 	for m in $(CENTOS_PERL_VERSION); do perl -MCPAN -e "CPAN::Shell->install \"$$m\";"; done
 	for m in $(CENTOS_PERL_NOTEST); do perl -MCPAN -e "CPAN::Shell->notest('install', \"$$m\";"; done
-	for m in $(CENTOS_PERL_LOCAL); do LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/lib perl -MCPAN -e "install \"$$m\";"; done
 
 # We need to add /usr/local/lib to the ldconfig list of directories on CentOS,
 # if it is not already there
 create_ld_local:
 	if [ "$$(ldconfig -v 2> /dev/null | grep '^/usr/local/lib' | wc -l)" -eq 0 ]; then \
-		echo '/usr/local/lib' > /etc/ld.so.conf.d/local.conf; \
+		echo '/usr/local/lib' >> /etc/ld.so.conf.d/local.conf; \
 		ldconfig; \
 	fi;
 



More information about the open-ils-commits mailing list