LP#1392759 developer/packager Makefile.install targets
authorBill Erickson <berickxx@gmail.com>
Fri, 14 Nov 2014 15:45:07 +0000 (10:45 -0500)
committerBen Shum <bshum@biblio.org>
Tue, 13 Jan 2015 21:15:07 +0000 (16:15 -0500)
* Adds <osname>-developer target for installing packages only needed by
  developers installing from source.  Currently, this is limited to
  packages needed for managing browser client dependencies, but others
  could be added later.

* Adds <osname>-packager target for installing packages needed to build
  Evergreen release bundles.

* Updates README install docs to reference these new targets.

* Updates README install docs to remove requirements for installing
  libtool/automake/autoconf, since those packages will have been
  installed during the OpenSRF install (which is required).

* NOTE: this does not include new Makefile.install targets for fedora

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Ben Shum <bshum@biblio.org>
Open-ILS/src/extras/Makefile.install
Open-ILS/src/extras/install/Makefile.common
Open-ILS/src/extras/install/Makefile.debian-jessie
Open-ILS/src/extras/install/Makefile.debian-wheezy
Open-ILS/src/extras/install/Makefile.ubuntu-precise
Open-ILS/src/extras/install/Makefile.ubuntu-trusty
docs/installation/server_installation.txt

index bb46f6d..54c5460 100644 (file)
@@ -46,6 +46,10 @@ export LIBDBI=libdbi-0.8.3
 export LIBDBI_DRIVERS=libdbi-drivers-0.8.3
 export LIBDBI_HOST=http://open-ils.org/~denials/evergreen
 
+# some OSes require a source install of NodeJS.
+# NOTE: Deprecate me with wheezy / precise
+export NODEJS_SOURCE_VERSION=v0.10.28
+
 # As this Makefile is designed to be used by a make process running as
 # root, this will avoid problems on some systems when tar extracts
 # files and tries to give them the same UID/GID as they have in their
@@ -91,4 +95,22 @@ postgres-server-ubuntu-precise:
 postgres-server-fedora:
        @make -f $(DIR)/Makefile.fedora install_postgres_server
 
+ubuntu-trusty-developer:
+       @make -f $(DIR)/Makefile.ubuntu-trusty install_developer
+debian-jessie-developer:
+       @make -f $(DIR)/Makefile.debian-jessie install_developer
+ubuntu-precise-developer:
+       @make -f $(DIR)/Makefile.ubuntu-precise install_developer
+debian-wheezy-developer:
+       @make -f $(DIR)/Makefile.debian-wheezy install_developer
+
+ubuntu-trusty-packager:
+       @make -f $(DIR)/Makefile.ubuntu-trusty install_packager
+debian-jessie-packager:
+       @make -f $(DIR)/Makefile.debian-jessie install_packager
+ubuntu-precise-packager:
+       @make -f $(DIR)/Makefile.ubuntu-precise install_packager
+debian-wheezy-packager:
+       @make -f $(DIR)/Makefile.debian-wheezy install_packager
+
 # vim:noet:sw=4:ts=4:
index efd52d3..d3bdd54 100644 (file)
@@ -27,6 +27,16 @@ install_libdbi:
        cd $(LIBDBI_DRIVERS) && ./configure  \
                --disable-docs --with-pgsql --enable-libdbi && make all install  
 
+# NOTE: Deprecate me with wheezy / precise
+install_nodejs_from_source:
+       git clone https://github.com/joyent/node.git
+       cd node; \
+       git checkout -b $(NODEJS_SOURCE_VERSION) $(NODEJS_SOURCE_VERSION); \
+       ./configure && make && make install
+       npm update
+       npm install -g grunt-cli
+       npm install -g bower
+
 clean:
        make -C $(LIBDBI) clean
        make -C $(LIBDBI_DRIVERS) clean
index 8b8fd66..a5294b4 100644 (file)
@@ -94,6 +94,24 @@ PGSQL_SERVER_DEBS_93 = \
        postgresql-plperl-9.3 \
        postgresql-server-dev-9.3
 
+# nodejs-legacy creates a symlink for /usr/bin/node -> /usr/bin/nodejs
+# which is needed by our npm-installed packages
+DEVELOPER_DEBS = \
+       nodejs-legacy \
+       npm
+
+PACKAGER_DEBS = \
+       translate-toolkit \
+       python-dev \
+       python-levenshtein \
+       python-polib \
+       python-setuptools \
+       python-simplejson \
+       python-lxml \
+       zip \
+       unzip \
+       nsis
+
 all:
        make -f $(DIR)/Makefile.debian install_debs
        make -f $(DIR)/Makefile.debian test_for_libdbi_pkg
@@ -106,6 +124,17 @@ all:
 install_postgres_server:
        make -f $(DIR)/Makefile.debian DEBS="$(PGSQL_SERVER_DEBS_93)"
 
+# note: if/when grunt-cli and bower are available as 
+# packages, use the packaged versions instead.
+install_developer:
+       make -f $(DIR)/Makefile.debian DEBS="$(DEVELOPER_DEBS)"
+       npm update
+       npm install -g grunt-cli
+       npm install -g bower
+
+install_packager:
+       make -f $(DIR)/Makefile.debian DEBS="$(PACKAGER_DEBS)"
+
 clean:
        make -f $(DIR)/Makefile.common clean
        make -f $(DIR)/Makefile.debian clean
index 5335aca..ba4df36 100644 (file)
@@ -94,6 +94,18 @@ PGSQL_SERVER_DEBS_91 = \
        postgresql-plperl-9.1 \
        postgresql-server-dev-9.1
 
+PACKAGER_DEBS = \
+       translate-toolkit \
+       python-dev \
+       python-levenshtein \
+       python-polib \
+       python-setuptools \
+       python-simplejson \
+       python-lxml \
+       zip \
+       unzip \
+       nsis
+
 all:
        make -f $(DIR)/Makefile.debian install_debs
        make -f $(DIR)/Makefile.debian test_for_libdbi_pkg
@@ -106,6 +118,12 @@ all:
 install_postgres_server:
        make -f $(DIR)/Makefile.debian DEBS="$(PGSQL_SERVER_DEBS_91)"
 
+install_developer:
+       make -f $(DIR)/Makefile.common install_nodejs_from_source
+
+install_packager:
+       make -f $(DIR)/Makefile.debian DEBS="$(PACKAGER_DEBS)"
+
 clean:
        make -f $(DIR)/Makefile.common clean
        make -f $(DIR)/Makefile.debian clean
index b87ea13..258e9db 100644 (file)
@@ -98,6 +98,18 @@ PGSQL_SERVER_DEBS_91 = \
        postgresql-plperl-9.1 \
        postgresql-server-dev-9.1
 
+PACKAGER_DEBS = \
+       translate-toolkit \
+       python-dev \
+       python-levenshtein \
+       python-polib \
+       python-setuptools \
+       python-simplejson \
+       python-lxml \
+       zip \
+       unzip \
+       nsis
+
 all:
        make -f $(DIR)/Makefile.debian install_debs
        make -f $(DIR)/Makefile.debian test_for_libdbi_pkg
@@ -109,6 +121,12 @@ all:
 install_postgres_server:
        make -f $(DIR)/Makefile.debian DEBS="$(PGSQL_SERVER_DEBS_91)"
 
+install_developer:
+       make -f $(DIR)/Makefile.common install_nodejs_from_source
+
+install_packager:
+       make -f $(DIR)/Makefile.debian DEBS="$(PACKAGER_DEBS)"
+
 clean:
        make -f $(DIR)/Makefile.common clean
        make -f $(DIR)/Makefile.debian clean
index 7dbdd0b..992825c 100644 (file)
@@ -102,6 +102,24 @@ PGSQL_SERVER_DEBS_93 = \
        postgresql-plperl-9.3 \
        postgresql-server-dev-9.3
 
+# nodejs-legacy creates a symlink for /usr/bin/node -> /usr/bin/nodejs
+# which is needed by our npm-installed packages
+DEVELOPER_DEBS = \
+       nodejs-legacy \
+       npm
+
+PACKAGER_DEBS = \
+       translate-toolkit \
+       python-dev \
+       python-levenshtein \
+       python-polib \
+       python-setuptools \
+       python-simplejson \
+       python-lxml \
+       zip \
+       unzip \
+       nsis
+
 all:
        make -f $(DIR)/Makefile.debian install_debs
        make -f $(DIR)/Makefile.debian test_for_libdbi_pkg
@@ -113,6 +131,17 @@ all:
 install_postgres_server:
        make -f $(DIR)/Makefile.debian DEBS="$(PGSQL_SERVER_DEBS_93)"
 
+# note: if/when grunt-cli and bower are available as 
+# packages, use the packaged versions instead.
+install_developer:
+       make -f $(DIR)/Makefile.debian DEBS="$(DEVELOPER_DEBS)"
+       npm update
+       npm install -g grunt-cli
+       npm install -g bower
+
+install_packager:
+       make -f $(DIR)/Makefile.debian DEBS="$(PACKAGER_DEBS)"
+
 clean:
        make -f $(DIR)/Makefile.common clean
        make -f $(DIR)/Makefile.debian clean
index 138b1b6..3c095c6 100644 (file)
@@ -40,14 +40,8 @@ Skip this section if you are using an official release tarball downloaded
 from http://evergreen-ils.org/downloads
 
 Developers working directly with the source code from the Git repository,
-rather than an official release tarball, must install some extra packages
-and perform one step before they can proceed with the `./configure` step.
-
-As the *root* Linux account, install the following packages:
-
-  * autoconf
-  * automake
-  * libtool
+rather than an official release tarball, must perform one step before they 
+can proceed with the `./configure` step.
 
 As the *user* Linux account, issue the following command in the Evergreen
 source directory to generate the configure script and Makefiles:
@@ -112,6 +106,29 @@ echo "/usr/lib64/dbd" > /etc/ld.so.conf.d/eg.conf
 ldconfig
 ------------------------------------------------------------------------------
 
+6. OPTIONAL: Developer additions
++
+To perform certain developer tasks from a Git source code checkout, 
+additional packages may be required.  As the *root* Linux account:
++
+ * To install packages needed for retriving and managing web dependencies,
+   use the <osname>-developer Makefile.install target.  Currently, 
+   this is only needed for building and installing the (preview) browser 
+   staff client.
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>-developer
+------------------------------------------------------------------------------
++
+ * To install packages required for building Evergreen release bundles, use
+   the <osname>-packager Makefile.install target.
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>-packager
+------------------------------------------------------------------------------
+
 Configuration and compilation instructions
 ------------------------------------------