18685168 graphviz should move to ruby 1.9
authorDanek Duvall <danek.duvall@oracle.com>
Wed, 23 Jul 2014 16:54:28 -0700
changeset 2010 cb03afa45934
parent 2009 9e3663ac841d
child 2011 36b489bd69fb
18685168 graphviz should move to ruby 1.9
components/graphviz/Makefile
components/graphviz/graphviz-lua.p5m
components/graphviz/graphviz-perl-512.p5m
components/graphviz/graphviz-perl-516.p5m
components/graphviz/graphviz-php.p5m
components/graphviz/graphviz-python-26.p5m
components/graphviz/graphviz-python-27.p5m
components/graphviz/graphviz-ruby.p5m
components/graphviz/graphviz.p5m
components/graphviz/patches/install-lang-mods.patch
components/graphviz/patches/ruby-include.patch
components/graphviz/resolve.deps
make-rules/shared-macros.mk
--- a/components/graphviz/Makefile	Wed Jul 23 15:57:46 2014 -0600
+++ b/components/graphviz/Makefile	Wed Jul 23 16:54:28 2014 -0700
@@ -23,6 +23,7 @@
 # Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
 #
 
+PERL_VERSION =		5.16
 include ../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		graphviz
@@ -41,10 +42,10 @@
 include ../../make-rules/configure.mk
 include ../../make-rules/ips.mk
 
-PATH =		/usr/bin:/usr/gnu/bin:/usr/php/5.2/bin
+PATH =		/usr/php/5.3/bin:/usr/bin:/usr/gnu/bin
 
 # GMP header files for the guile extension (no --with- flag)
-# The guile build is broken with studio (7073649), so we disable this for now.
+# The guile build is broken with studio (15732452), so we disable this for now.
 # CPPFLAGS +=	-I/usr/include/gmp
 # Java header files (--with-javaincludedir allows for only one directory)
 CPPFLAGS +=	-I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/solaris
@@ -53,10 +54,11 @@
 CXX +=		$(studio_NORUNPATH)
 
 CONFIGURE_ENV +=	CPPFLAGS="$(CPPFLAGS)"
-CONFIGURE_ENV +=	PERL=$(PERL)
-# Explicitly use Ruby 1.8.  Allows switching Ruby default without
-# affecting graphviz build.
-CONFIGURE_ENV +=	RUBY=$(RUBY.1.8)
+CONFIGURE_ENV +=	CFLAGS="$(CFLAGS)"
+CONFIGURE_ENV +=	CXXFLAGS="$(CXXFLAGS)"
+# Make sure to use the right python, depending on the 32/64-bit build.
+CONFIGURE_ENV +=	PYTHON26=$(PYTHON.2.6)
+CONFIGURE_ENV +=	PYTHON27=$(PYTHON.2.7)
 CONFIGURE_OPTIONS +=	--without-included-ltdl
 CONFIGURE_OPTIONS +=	--enable-python=no
 CONFIGURE_OPTIONS +=	--enable-python26=yes
@@ -65,13 +67,36 @@
 
 COMPONENT_BUILD_ARGS += 	GREP=/usr/bin/ggrep
 
-# common targets
-build:		$(BUILD_32)
+# Both perl and ruby ship 64-bit only.
+$(CONFIGURE_32): CONFIGURE_OPTIONS +=	--enable-perl=no
+$(CONFIGURE_32): CONFIGURE_OPTIONS +=	--enable-ruby=no
+$(CONFIGURE_64): CONFIGURE_ENV +=	PERL=$(PERL)
+$(CONFIGURE_64): CONFIGURE_ENV +=	RUBY=$(RUBY.1.9)
+# PHP ships 32-bit only.
+$(CONFIGURE_64): CONFIGURE_OPTIONS +=	--enable-php=no
+$(INSTALL_64): COMPONENT_INSTALL_ARGS += PHP_INSTALL_DIR=$(shell PATH=$(PATH) php-config --extension-dir)
+# tcl ships both 32 and 64 bit, but even though /usr/bin/tclsh is 64-bit, there
+# is no place to stick 64-bit modules, so skip it.  On the other hand, make
+# sure to find the right tcl bits when building 32-bit.
+$(CONFIGURE_64): CONFIGURE_OPTIONS +=	--enable-tcl=no
+$(CONFIGURE_32): CONFIGURE_OPTIONS +=	--with-tclsh=/usr/bin/$(MACH32)/tclsh
+$(CONFIGURE_32): CONFIGURE_ENV += 	TCLCONFIG=/usr/lib/tclConfig.sh
+# Put the 64-bit lua module in a 64-bit directory.
+$(INSTALL_32): COMPONENT_INSTALL_ARGS += LUA_INSTALL_DIR=/usr/lib/lua/5.2
+$(INSTALL_64): COMPONENT_INSTALL_ARGS += LUA_INSTALL_DIR=/usr/lib/lua/5.2/64
+# Use GNU ln, which supports the -r (--relative) option.
+COMPONENT_INSTALL_ARGS += LN_S="gln -s"
 
-install:	$(INSTALL_32)
+ASLR_MODE = $(ASLR_ENABLE)
+
+# We build 32 and 64 bit because we build libraries, and we build modules for
+# runtimes which provide 64 or 32 (or both) bit environments.
+build:		$(BUILD_32_and_64)
+
+install:	$(INSTALL_32_and_64)
 	env LD_LIBRARY_PATH=$(PROTO_DIR)/usr/lib GVBINDIR=$(PROTO_DIR)/usr/lib/graphviz $(PROTO_DIR)/usr/bin/dot -c
-	$(PYTHON.2.6.32) -m compileall $(PROTO_DIR)/usr/lib/graphviz/python26
-	$(PYTHON.2.7.32) -m compileall $(PROTO_DIR)/usr/lib/graphviz/python27
+	$(PYTHON.2.6.32) -m compileall $(PROTO_DIR)/$(PYTHON.2.6.VENDOR_PACKAGES)
+	$(PYTHON.2.7.32) -m compileall $(PROTO_DIR)/$(PYTHON.2.7.VENDOR_PACKAGES)
 
 # The test infrastructure doesn't run in a VPATHed environment.
 COMPONENT_PRE_TEST_ACTION = \
--- a/components/graphviz/graphviz-lua.p5m	Wed Jul 23 15:57:46 2014 -0600
+++ b/components/graphviz/graphviz-lua.p5m	Wed Jul 23 16:54:28 2014 -0700
@@ -37,10 +37,12 @@
     value=PSARC/2011/269
 
 file path=usr/lib/graphviz/lua/libgv_lua.so
+file path=usr/lib/$(MACH64)/graphviz/lua/libgv_lua.so
 file path=usr/share/graphviz/demo/modgraph.lua
 file usr/share/man/man3/gv.3lua path=usr/share/man/man3/gv-lua.3
 link path=usr/lib/graphviz/lua/gv.so target=libgv_lua.so
 link path=usr/lib/lua/5.2/gv.so target=../../graphviz/lua/libgv_lua.so
+link path=usr/lib/lua/5.2/64/gv.so target=../../../$(MACH64)/graphviz/lua/libgv_lua.so
 
 license COPYING license=EPL1.0
 license graphviz.license.extra license="Other Notices"
--- a/components/graphviz/graphviz-perl-512.p5m	Wed Jul 23 15:57:46 2014 -0600
+++ b/components/graphviz/graphviz-perl-512.p5m	Wed Jul 23 16:54:28 2014 -0700
@@ -18,33 +18,12 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
+
 #
-
-<transform file path=usr.*/man/.+ -> default mangler.man.stability volatile>
+# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+#
 
 set name=pkg.fmri \
     value=pkg:/image/graphviz/graphviz-perl-512@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
-set name=pkg.summary value="Perl 5.12 bindings for Graphviz"
-set name=com.oracle.info.description value="Perl 5.12 bindings for Graphviz"
-set name=com.oracle.info.tpno value=$(TPNO)
-set name=info.classification \
-    value="org.opensolaris.category.2008:Applications/System Utilities"
-set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
-set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
+set name=pkg.obsolete value=true
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
-set name=org.opensolaris.arc-caseid \
-    value=PSARC/2011/269
-
-file path=usr/lib/graphviz/perl/gv.pm
-file path=usr/lib/graphviz/perl/libgv_perl.so
-file path=usr/share/graphviz/demo/modgraph.pl
-file usr/share/man/man3/gv.3perl path=usr/share/man/man3/gv-perl.3
-link path=usr/lib/graphviz/perl/gv.so target=libgv_perl.so
-link path=usr/perl5/vendor_perl/5.12/$(PERL_ARCH)/gv.pm \
-    target=../../../../lib/graphviz/perl/gv.pm
-link path=usr/perl5/vendor_perl/5.12/$(PERL_ARCH)/gv.so \
-    target=../../../../lib/graphviz/perl/libgv_perl.so
-
-license COPYING license=EPL1.0
-license graphviz.license.extra license="Other Notices"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/graphviz/graphviz-perl-516.p5m	Wed Jul 23 16:54:28 2014 -0700
@@ -0,0 +1,55 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
+#
+
+<transform file path=usr.*/man/.+ -> default mangler.man.stability volatile>
+
+set name=pkg.fmri \
+    value=pkg:/image/graphviz/graphviz-perl-516@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary value="Perl 5.16 bindings for Graphviz"
+set name=com.oracle.info.description value="Perl 5.16 bindings for Graphviz"
+set name=com.oracle.info.tpno value=$(TPNO)
+set name=info.classification \
+    value="org.opensolaris.category.2008:Applications/System Utilities"
+set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
+set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+set name=org.opensolaris.arc-caseid \
+    value=PSARC/2011/269
+
+file path=usr/lib/$(MACH64)/graphviz/perl/gv.pm
+file path=usr/lib/$(MACH64)/graphviz/perl/libgv_perl.so
+file path=usr/share/graphviz/demo/modgraph.pl
+file usr/share/man/man3/gv.3perl path=usr/share/man/man3/gv-perl.3
+link path=usr/lib/$(MACH64)/graphviz/perl/gv.so target=libgv_perl.so
+link path=usr/perl5/vendor_perl/5.16/$(PERL_ARCH)/gv.pm \
+    target=../../../../lib/$(MACH64)/graphviz/perl/gv.pm
+link path=usr/perl5/vendor_perl/5.16/$(PERL_ARCH)/gv.so \
+    target=../../../../lib/$(MACH64)/graphviz/perl/libgv_perl.so
+
+license COPYING license=EPL1.0
+license graphviz.license.extra license="Other Notices"
+
+# This package replaces the now-obsolete Perl 5.12 package, which needs to
+# be removed in order to prevent file collisions at install time.
+depend type=optional \
+    fmri=image/graphviz/[email protected]
--- a/components/graphviz/graphviz-php.p5m	Wed Jul 23 15:57:46 2014 -0600
+++ b/components/graphviz/graphviz-php.p5m	Wed Jul 23 16:54:28 2014 -0700
@@ -36,20 +36,18 @@
 set name=org.opensolaris.arc-caseid \
     value=PSARC/2011/269
 
-file gv.ini path=etc/php/5.2/conf.d/gv.ini
+file gv.ini path=etc/php/5.3/conf.d/gv.ini
 file path=usr/lib/graphviz/php/gv.php
 file path=usr/lib/graphviz/php/libgv_php.so
 file path=usr/share/graphviz/demo/modgraph.php
 file usr/share/man/man3/gv.3php path=usr/share/man/man3/gv-php.3
 link path=usr/lib/graphviz/php/gv.so target=libgv_php.so
-# These should go in /var/php, but PHP doesn't seem to be able to pick up
-# a second directory configured in extension_dir.
-link path=usr/php/5.2/include/php/include/gv.php \
-    target=../../../../../lib/graphviz/php/gv.php
-link path=usr/php/5.2/modules/gv.so \
+link path=usr/php/5.3/modules/gv.so \
     target=../../../lib/graphviz/php/libgv_php.so
+link path=var/php/5.3/pear/gv.php \
+    target=../../../../usr/lib/graphviz/php/gv.php
 
 license COPYING license=EPL1.0
 license graphviz.license.extra license="Other Notices"
 
-depend fmri=web/php-52 type=require
+depend fmri=web/php-53 type=require
--- a/components/graphviz/graphviz-python-26.p5m	Wed Jul 23 15:57:46 2014 -0600
+++ b/components/graphviz/graphviz-python-26.p5m	Wed Jul 23 16:54:28 2014 -0700
@@ -22,7 +22,6 @@
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability volatile>
-<transform file hardlink path=usr/lib/.*\.py$ -> default pkg.tmp.pyversion 2.X>
 #
 set name=pkg.fmri \
     value=pkg:/image/graphviz/graphviz-python-26@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
@@ -35,14 +34,19 @@
 set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2011/269
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+#
+file path=usr/lib/$(MACH64)/graphviz/python26/libgv_python26.so
+link path=usr/lib/$(MACH64)/graphviz/python26/_gv.so target=libgv_python26.so
 link path=usr/lib/graphviz/python26/_gv.so target=libgv_python26.so
-#
-file path=usr/lib/graphviz/python26/gv.py
+file path=usr/lib/graphviz/python26/gv.py pkg.tmp.autopyc=false
 file path=usr/lib/graphviz/python26/libgv_python26.so
+link path=usr/lib/python2.6/vendor-packages/64/_gv.so \
+    target=../../../$(MACH64)/graphviz/python26/libgv_python26.so
 link path=usr/lib/python2.6/vendor-packages/_gv.so \
     target=../../graphviz/python26/libgv_python26.so
 link path=usr/lib/python2.6/vendor-packages/gv.py \
     target=../../graphviz/python26/gv.py
+file path=usr/lib/python2.6/vendor-packages/gv.pyc
 file usr/share/man/man3/gv.3python path=usr/share/man/man3/gv-python.3
 #
 license COPYING license=EPL1.0
--- a/components/graphviz/graphviz-python-27.p5m	Wed Jul 23 15:57:46 2014 -0600
+++ b/components/graphviz/graphviz-python-27.p5m	Wed Jul 23 16:54:28 2014 -0700
@@ -22,7 +22,6 @@
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability volatile>
-<transform file hardlink path=usr/lib/.*\.py$ -> default pkg.tmp.pyversion 2.X>
 set name=pkg.fmri \
     value=pkg:/image/graphviz/graphviz-python-27@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
 set name=pkg.summary value="Python 2.7 bindings for Graphviz"
@@ -35,13 +34,18 @@
 set name=org.opensolaris.arc-caseid value=PSARC/2011/269
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 #
+file path=usr/lib/$(MACH64)/graphviz/python27/libgv_python27.so
+link path=usr/lib/$(MACH64)/graphviz/python27/_gv.so target=libgv_python27.so
 link path=usr/lib/graphviz/python27/_gv.so target=libgv_python27.so
-file path=usr/lib/graphviz/python27/gv.py
+file path=usr/lib/graphviz/python27/gv.py pkg.tmp.autopyc=false
 file path=usr/lib/graphviz/python27/libgv_python27.so
+link path=usr/lib/python2.7/vendor-packages/64/_gv.so \
+    target=../../../$(MACH64)/graphviz/python27/libgv_python27.so
 link path=usr/lib/python2.7/vendor-packages/_gv.so \
     target=../../graphviz/python27/libgv_python27.so
 link path=usr/lib/python2.7/vendor-packages/gv.py \
     target=../../graphviz/python27/gv.py
+file path=usr/lib/python2.7/vendor-packages/gv.pyc
 #
 license COPYING license=EPL1.0
 license graphviz.license.extra license="Other Notices"
--- a/components/graphviz/graphviz-ruby.p5m	Wed Jul 23 15:57:46 2014 -0600
+++ b/components/graphviz/graphviz-ruby.p5m	Wed Jul 23 16:54:28 2014 -0700
@@ -36,12 +36,12 @@
 set name=org.opensolaris.arc-caseid \
     value=PSARC/2011/269
 
-file path=usr/lib/graphviz/ruby/libgv_ruby.so
+file path=usr/lib/$(MACH64)/graphviz/ruby/libgv_ruby.so
 file path=usr/share/graphviz/demo/modgraph.rb
 file usr/share/man/man3/gv.3ruby path=usr/share/man/man3/gv-ruby.3
-link path=usr/lib/graphviz/ruby/gv.so target=libgv_ruby.so
-link path=usr/ruby/1.8/lib/ruby/vendor_ruby/1.8/$(MACH)-solaris$(SOLARIS_VERSION)/gv.so \
-    target=../../../../../../../lib/graphviz/ruby/libgv_ruby.so
+link path=usr/lib/$(MACH64)/graphviz/ruby/gv.so target=libgv_ruby.so
+link path=usr/ruby/1.9/lib/ruby/vendor_ruby/1.9.1/$(MACH64)-solaris$(SOLARIS_VERSION)/gv.so \
+    target=../../../../../../../lib/$(MACH64)/graphviz/ruby/libgv_ruby.so
 
 license COPYING license=EPL1.0
 license graphviz.license.extra license="Other Notices"
--- a/components/graphviz/graphviz.p5m	Wed Jul 23 15:57:46 2014 -0600
+++ b/components/graphviz/graphviz.p5m	Wed Jul 23 16:54:28 2014 -0700
@@ -22,6 +22,7 @@
 #
 
 <transform file path=usr.*/man/.+ -> default mangler.man.stability volatile>
+<transform file path=usr/bin/(.+) -> set action.hash usr/bin/$(MACH64)/%<1>>
 
 set name=pkg.fmri \
     value=pkg:/image/graphviz@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
@@ -91,6 +92,31 @@
 file path=usr/include/graphviz/types.h
 file path=usr/include/graphviz/usershape.h
 file path=usr/include/graphviz/xdot.h
+link path=usr/lib/$(MACH64)/graphviz/config6 target=../../graphviz/config6
+file path=usr/lib/$(MACH64)/graphviz/libgvplugin_core.so.6.0.0
+file path=usr/lib/$(MACH64)/graphviz/libgvplugin_dot_layout.so.6.0.0
+file path=usr/lib/$(MACH64)/graphviz/libgvplugin_gd.so.6.0.0
+file path=usr/lib/$(MACH64)/graphviz/libgvplugin_gdk_pixbuf.so.6.0.0
+file path=usr/lib/$(MACH64)/graphviz/libgvplugin_gs.so.6.0.0
+file path=usr/lib/$(MACH64)/graphviz/libgvplugin_gtk.so.6.0.0
+file path=usr/lib/$(MACH64)/graphviz/libgvplugin_neato_layout.so.6.0.0
+file path=usr/lib/$(MACH64)/graphviz/libgvplugin_pango.so.6.0.0
+file path=usr/lib/$(MACH64)/graphviz/libgvplugin_rsvg.so.6.0.0
+file path=usr/lib/$(MACH64)/graphviz/libgvplugin_xlib.so.6.0.0
+file path=usr/lib/$(MACH64)/libcdt.so.5.0.0
+file path=usr/lib/$(MACH64)/libcgraph.so.6.0.0
+file path=usr/lib/$(MACH64)/libgraph.so.5.0.0
+file path=usr/lib/$(MACH64)/libgvc.so.6.0.0
+file path=usr/lib/$(MACH64)/libgvpr.so.2.0.0
+file path=usr/lib/$(MACH64)/libpathplan.so.4.0.0
+file path=usr/lib/$(MACH64)/libxdot.so.4.0.0
+file path=usr/lib/$(MACH64)/pkgconfig/libcdt.pc
+file path=usr/lib/$(MACH64)/pkgconfig/libcgraph.pc
+file path=usr/lib/$(MACH64)/pkgconfig/libgraph.pc
+file path=usr/lib/$(MACH64)/pkgconfig/libgvc.pc
+file path=usr/lib/$(MACH64)/pkgconfig/libgvpr.pc
+file path=usr/lib/$(MACH64)/pkgconfig/libpathplan.pc
+file path=usr/lib/$(MACH64)/pkgconfig/libxdot.pc
 file path=usr/lib/graphviz/config6
 file path=usr/lib/graphviz/libgvplugin_core.so.6.0.0
 file path=usr/lib/graphviz/libgvplugin_dot_layout.so.6.0.0
@@ -377,6 +403,55 @@
 link path=usr/bin/patchwork target=dot
 link path=usr/bin/sfdp target=dot
 link path=usr/bin/twopi target=dot
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_core.so \
+    target=libgvplugin_core.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_core.so.6 \
+    target=libgvplugin_core.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_dot_layout.so \
+    target=libgvplugin_dot_layout.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_dot_layout.so.6 \
+    target=libgvplugin_dot_layout.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_gd.so target=libgvplugin_gd.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_gd.so.6 target=libgvplugin_gd.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_gdk_pixbuf.so \
+    target=libgvplugin_gdk_pixbuf.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_gdk_pixbuf.so.6 \
+    target=libgvplugin_gdk_pixbuf.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_gs.so target=libgvplugin_gs.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_gs.so.6 target=libgvplugin_gs.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_gtk.so target=libgvplugin_gtk.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_gtk.so.6 \
+    target=libgvplugin_gtk.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_neato_layout.so \
+    target=libgvplugin_neato_layout.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_neato_layout.so.6 \
+    target=libgvplugin_neato_layout.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_pango.so \
+    target=libgvplugin_pango.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_pango.so.6 \
+    target=libgvplugin_pango.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_rsvg.so \
+    target=libgvplugin_rsvg.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_rsvg.so.6 \
+    target=libgvplugin_rsvg.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_xlib.so \
+    target=libgvplugin_xlib.so.6.0.0
+link path=usr/lib/$(MACH64)/graphviz/libgvplugin_xlib.so.6 \
+    target=libgvplugin_xlib.so.6.0.0
+link path=usr/lib/$(MACH64)/libcdt.so target=libcdt.so.5.0.0
+link path=usr/lib/$(MACH64)/libcdt.so.5 target=libcdt.so.5.0.0
+link path=usr/lib/$(MACH64)/libcgraph.so target=libcgraph.so.6.0.0
+link path=usr/lib/$(MACH64)/libcgraph.so.6 target=libcgraph.so.6.0.0
+link path=usr/lib/$(MACH64)/libgraph.so target=libgraph.so.5.0.0
+link path=usr/lib/$(MACH64)/libgraph.so.5 target=libgraph.so.5.0.0
+link path=usr/lib/$(MACH64)/libgvc.so target=libgvc.so.6.0.0
+link path=usr/lib/$(MACH64)/libgvc.so.6 target=libgvc.so.6.0.0
+link path=usr/lib/$(MACH64)/libgvpr.so target=libgvpr.so.2.0.0
+link path=usr/lib/$(MACH64)/libgvpr.so.2 target=libgvpr.so.2.0.0
+link path=usr/lib/$(MACH64)/libpathplan.so target=libpathplan.so.4.0.0
+link path=usr/lib/$(MACH64)/libpathplan.so.4 target=libpathplan.so.4.0.0
+link path=usr/lib/$(MACH64)/libxdot.so target=libxdot.so.4.0.0
+link path=usr/lib/$(MACH64)/libxdot.so.4 target=libxdot.so.4.0.0
 link path=usr/lib/graphviz/libgvplugin_core.so \
     target=libgvplugin_core.so.6.0.0
 link path=usr/lib/graphviz/libgvplugin_core.so.6 \
@@ -445,15 +520,15 @@
     type=conditional predicate=runtime/lua
 depend fmri=image/graphviz/graphviz-ocaml@$(IPS_COMPONENT_VERSION) \
     type=conditional predicate=runtime/ocaml
-depend fmri=image/graphviz/graphviz-perl-512@$(IPS_COMPONENT_VERSION) \
-    type=conditional predicate=runtime/perl-512
+depend fmri=image/graphviz/graphviz-perl-516@$(IPS_COMPONENT_VERSION) \
+    type=conditional predicate=runtime/perl-516
 depend fmri=image/graphviz/graphviz-php@$(IPS_COMPONENT_VERSION) \
-    type=conditional predicate=web/php-52
+    type=conditional predicate=web/php-53
 depend fmri=image/graphviz/graphviz-python-26@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) \
     type=conditional predicate=runtime/python-26
 depend fmri=image/graphviz/graphviz-python-27@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) \
     type=conditional predicate=runtime/python-27
 depend fmri=image/graphviz/graphviz-ruby@$(IPS_COMPONENT_VERSION) \
-    type=conditional predicate=runtime/ruby-18
+    type=conditional predicate=runtime/ruby-19
 depend fmri=image/graphviz/graphviz-tcl@$(IPS_COMPONENT_VERSION) \
     type=conditional predicate=runtime/tcl-8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/graphviz/patches/install-lang-mods.patch	Wed Jul 23 16:54:28 2014 -0700
@@ -0,0 +1,168 @@
+Allow language modules to be installed in the right place.
+
+For Python, ensure the use of the vendor-packages directory, as well as the
+use of a 64-bit-specific directory, as needed.
+
+For Lua, the appropriate variable will need to be set during installation,
+since there's no corresponding config_lua.lua file.
+
+This is an in-house patch, but has not been passed upstream because it's
+against a version of graphviz that is out of date; submission will be
+reconsidered when we upgrade.  Note that at least the Python portion is
+Solaris-specific, and likely will not be accepted.
+
+--- graphviz-2.28.0/config/config_python.py	Sat Mar 26 10:49:00 2005
++++ graphviz-2.28.0/config/config_python.py	Mon Jun 30 14:38:34 2014
+@@ -1,12 +1,20 @@
+ import sys
++import struct
+ from distutils import sysconfig
+ 
++if struct.calcsize('P') == 8:
++    sixtyfour = "/64"
++else:
++    sixtyfour = ""
++
++pyver = ".".join(str(i) for i in sys.version_info[:2])
++
+ if sys.argv[1] == "archlib":
+-    print sysconfig.get_python_lib(1,1)
++    print sysconfig.get_python_lib(1,1) + sixtyfour
+ elif sys.argv[1] == "lib":
+     print sysconfig.get_python_lib(0,1)
+ elif sys.argv[1] == "archsitelib":
+-    print sysconfig.get_python_lib(1,0)
++    print "/usr/lib/python%s/vendor-packages%s" % (pyver, sixtyfour)
+ elif sys.argv[1] == "sitelib":
+     print sysconfig.get_python_lib(0,0)
+ 
+--- graphviz-2.28.0/tclpkg/Makefile.in	Fri May  6 20:27:53 2011
++++ graphviz-2.28.0/tclpkg/Makefile.in	Mon Jun 30 15:30:49 2014
+@@ -878,10 +878,10 @@
+ #    ./configure --prefix=$HOME/graphviz; make; make install
+ # without root priviledges.
+ install-data-hook:
+-@WITH_LUA_TRUE@	-mkdir -p $(DESTDIR)@LUA_INSTALL_DIR@;
+-@WITH_LUA_TRUE@	if test -w $(DESTDIR)@LUA_INSTALL_DIR@; then \
+-@WITH_LUA_TRUE@		(cd $(DESTDIR)@LUA_INSTALL_DIR@; \
+-@WITH_LUA_TRUE@			$(LN_S) -f $(pkgluadir)/libgv_lua.so gv.so;) \
++@WITH_LUA_TRUE@	-mkdir -p $(DESTDIR)$(LUA_INSTALL_DIR);
++@WITH_LUA_TRUE@	if test -w $(DESTDIR)$(LUA_INSTALL_DIR); then \
++@WITH_LUA_TRUE@		(cd $(DESTDIR)$(LUA_INSTALL_DIR); \
++@WITH_LUA_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgluadir)/libgv_lua.so gv.so;) \
+ @WITH_LUA_TRUE@	else \
+ @WITH_LUA_TRUE@		echo "Warning: @LUA_INSTALL_DIR@ is not writable."; \
+ @WITH_LUA_TRUE@		echo "Skipping system installation of lua binding."; \
+@@ -889,8 +889,8 @@
+ @WITH_PERL_TRUE@	-mkdir -p $(DESTDIR)@PERL_INSTALL_DIR@;
+ @WITH_PERL_TRUE@	if test -w $(DESTDIR)@PERL_INSTALL_DIR@; then \
+ @WITH_PERL_TRUE@		(cd $(DESTDIR)@PERL_INSTALL_DIR@; \
+-@WITH_PERL_TRUE@			$(LN_S) -f $(pkgperldir)/libgv_perl.so gv.so; \
+-@WITH_PERL_TRUE@			$(LN_S) -f $(pkgperldir)/gv.pm gv.pm;) \
++@WITH_PERL_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgperldir)/libgv_perl.so gv.so; \
++@WITH_PERL_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgperldir)/gv.pm gv.pm;) \
+ @WITH_PERL_TRUE@	else \
+ @WITH_PERL_TRUE@		echo "Warning: @PERL_INSTALL_DIR@ is not writable."; \
+ @WITH_PERL_TRUE@		echo "Skipping system installation of perl binding."; \
+@@ -898,7 +898,7 @@
+ @WITH_PHP_TRUE@	-mkdir -p $(DESTDIR)@PHP_INSTALL_DIR@;
+ @WITH_PHP_TRUE@	if test -w $(DESTDIR)@PHP_INSTALL_DIR@; then \
+ @WITH_PHP_TRUE@		(cd $(DESTDIR)@PHP_INSTALL_DIR@; \
+-@WITH_PHP_TRUE@			$(LN_S) -f $(pkgphpdir)/libgv_php.so gv.so;) \
++@WITH_PHP_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgphpdir)/libgv_php.so gv.so;) \
+ @WITH_PHP_TRUE@	else \
+ @WITH_PHP_TRUE@		echo "Warning: @PHP_INSTALL_DIR@ is not writable."; \
+ @WITH_PHP_TRUE@		echo "Skipping system installation of php binding."; \
+@@ -906,7 +906,7 @@
+ @WITH_PHP_TRUE@	-mkdir -p $(DESTDIR)@PHP_INSTALL_DATADIR@;
+ @WITH_PHP_TRUE@	if test -w $(DESTDIR)@PHP_INSTALL_DATADIR@; then \
+ @WITH_PHP_TRUE@		(cd $(DESTDIR)@PHP_INSTALL_DATADIR@; \
+-@WITH_PHP_TRUE@			$(LN_S) -f $(pkgphpdir)/gv.php gv.php;) \
++@WITH_PHP_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgphpdir)/gv.php gv.php;) \
+ @WITH_PHP_TRUE@	else \
+ @WITH_PHP_TRUE@		echo "Warning: @PHP_INSTALL_DATADIR@ is not writable."; \
+ @WITH_PHP_TRUE@		echo "Skipping system installation of php binding."; \
+@@ -914,8 +914,8 @@
+ @WITH_PYTHON_TRUE@	-mkdir -p $(DESTDIR)@PYTHON_INSTALL_DIR@;
+ @WITH_PYTHON_TRUE@	if test -w $(DESTDIR)@PYTHON_INSTALL_DIR@; then \
+ @WITH_PYTHON_TRUE@		(cd $(DESTDIR)@PYTHON_INSTALL_DIR@; \
+-@WITH_PYTHON_TRUE@			$(LN_S) -f $(pkgpythondir)/libgv_python.so _gv.so; \
+-@WITH_PYTHON_TRUE@			$(LN_S) -f $(pkgpythondir)/gv.py gv.py;) \
++@WITH_PYTHON_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgpythondir)/libgv_python.so _gv.so; \
++@WITH_PYTHON_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgpythondir)/gv.py gv.py;) \
+ @WITH_PYTHON_TRUE@	else \
+ @WITH_PYTHON_TRUE@		echo "Warning: @PYTHON_INSTALL_DIR@ is not writable."; \
+ @WITH_PYTHON_TRUE@		echo "Skipping system installation of python binding."; \
+@@ -923,8 +923,8 @@
+ @WITH_PYTHON23_TRUE@	-mkdir -p $(DESTDIR)@PYTHON23_INSTALL_DIR@;
+ @WITH_PYTHON23_TRUE@	if test -w $(DESTDIR)@PYTHON23_INSTALL_DIR@; then \
+ @WITH_PYTHON23_TRUE@		(cd $(DESTDIR)@PYTHON23_INSTALL_DIR@; \
+-@WITH_PYTHON23_TRUE@			$(LN_S) -f $(pkgpython23dir)/libgv_python23.so _gv.so; \
+-@WITH_PYTHON23_TRUE@			$(LN_S) -f $(pkgpython23dir)/gv.py gv.py;) \
++@WITH_PYTHON23_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgpython23dir)/libgv_python23.so _gv.so; \
++@WITH_PYTHON23_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgpython23dir)/gv.py gv.py;) \
+ @WITH_PYTHON23_TRUE@	else \
+ @WITH_PYTHON23_TRUE@		echo "Warning: @PYTHON23_INSTALL_DIR@ is not writable."; \
+ @WITH_PYTHON23_TRUE@		echo "Skipping system installation of python23 binding."; \
+@@ -932,8 +932,8 @@
+ @WITH_PYTHON24_TRUE@	-mkdir -p $(DESTDIR)@PYTHON24_INSTALL_DIR@;
+ @WITH_PYTHON24_TRUE@	if test -w $(DESTDIR)@PYTHON24_INSTALL_DIR@; then \
+ @WITH_PYTHON24_TRUE@		(cd $(DESTDIR)@PYTHON24_INSTALL_DIR@; \
+-@WITH_PYTHON24_TRUE@			$(LN_S) -f $(pkgpython24dir)/libgv_python24.so _gv.so; \
+-@WITH_PYTHON24_TRUE@			$(LN_S) -f $(pkgpython24dir)/gv.py gv.py;) \
++@WITH_PYTHON24_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgpython24dir)/libgv_python24.so _gv.so; \
++@WITH_PYTHON24_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgpython24dir)/gv.py gv.py;) \
+ @WITH_PYTHON24_TRUE@	else \
+ @WITH_PYTHON24_TRUE@		echo "Warning: @PYTHON24_INSTALL_DIR@ is not writable."; \
+ @WITH_PYTHON24_TRUE@		echo "Skipping system installation of python24 binding."; \
+@@ -941,8 +941,8 @@
+ @WITH_PYTHON25_TRUE@	-mkdir -p $(DESTDIR)@PYTHON25_INSTALL_DIR@;
+ @WITH_PYTHON25_TRUE@	if test -w $(DESTDIR)@PYTHON25_INSTALL_DIR@; then \
+ @WITH_PYTHON25_TRUE@		(cd $(DESTDIR)@PYTHON25_INSTALL_DIR@; \
+-@WITH_PYTHON25_TRUE@			$(LN_S) -f $(pkgpython25dir)/libgv_python25.so _gv.so; \
+-@WITH_PYTHON25_TRUE@			$(LN_S) -f $(pkgpython25dir)/gv.py gv.py;) \
++@WITH_PYTHON25_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgpython25dir)/libgv_python25.so _gv.so; \
++@WITH_PYTHON25_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgpython25dir)/gv.py gv.py;) \
+ @WITH_PYTHON25_TRUE@	else \
+ @WITH_PYTHON25_TRUE@		echo "Warning: @PYTHON25_INSTALL_DIR@ is not writable."; \
+ @WITH_PYTHON25_TRUE@		echo "Skipping system installation of python25 binding."; \
+@@ -950,8 +950,8 @@
+ @WITH_PYTHON26_TRUE@	-mkdir -p $(DESTDIR)@PYTHON26_INSTALL_DIR@;
+ @WITH_PYTHON26_TRUE@	if test -w $(DESTDIR)@PYTHON26_INSTALL_DIR@; then \
+ @WITH_PYTHON26_TRUE@		(cd $(DESTDIR)@PYTHON26_INSTALL_DIR@; \
+-@WITH_PYTHON26_TRUE@			$(LN_S) -f $(pkgpython26dir)/libgv_python26.so _gv.so; \
+-@WITH_PYTHON26_TRUE@			$(LN_S) -f $(pkgpython26dir)/gv.py gv.py;) \
++@WITH_PYTHON26_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgpython26dir)/libgv_python26.so _gv.so; \
++@WITH_PYTHON26_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgpython26dir)/gv.py gv.py;) \
+ @WITH_PYTHON26_TRUE@	else \
+ @WITH_PYTHON26_TRUE@		echo "Warning: @PYTHON26_INSTALL_DIR@ is not writable."; \
+ @WITH_PYTHON26_TRUE@		echo "Skipping system installation of python26 binding."; \
+@@ -959,8 +959,8 @@
+ @WITH_PYTHON27_TRUE@	-mkdir -p $(DESTDIR)@PYTHON27_INSTALL_DIR@;
+ @WITH_PYTHON27_TRUE@	if test -w $(DESTDIR)@PYTHON27_INSTALL_DIR@; then \
+ @WITH_PYTHON27_TRUE@		(cd $(DESTDIR)@PYTHON27_INSTALL_DIR@; \
+-@WITH_PYTHON27_TRUE@			$(LN_S) -f $(pkgpython27dir)/libgv_python27.so _gv.so; \
+-@WITH_PYTHON27_TRUE@			$(LN_S) -f $(pkgpython27dir)/gv.py gv.py;) \
++@WITH_PYTHON27_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgpython27dir)/libgv_python27.so _gv.so; \
++@WITH_PYTHON27_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgpython27dir)/gv.py gv.py;) \
+ @WITH_PYTHON27_TRUE@	else \
+ @WITH_PYTHON27_TRUE@		echo "Warning: @PYTHON27_INSTALL_DIR@ is not writable."; \
+ @WITH_PYTHON27_TRUE@		echo "Skipping system installation of python27 binding."; \
+@@ -968,7 +968,7 @@
+ @WITH_RUBY_TRUE@	-mkdir -p $(DESTDIR)@RUBY_INSTALL_DIR@;
+ @WITH_RUBY_TRUE@	if test -w $(DESTDIR)@RUBY_INSTALL_DIR@; then \
+ @WITH_RUBY_TRUE@		(cd $(DESTDIR)@RUBY_INSTALL_DIR@; \
+-@WITH_RUBY_TRUE@			$(LN_S) -f $(pkgrubydir)/libgv_ruby.so gv.so;) \
++@WITH_RUBY_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgrubydir)/libgv_ruby.so gv.so;) \
+ @WITH_RUBY_TRUE@	else \
+ @WITH_RUBY_TRUE@		echo "Warning: @RUBY_INSTALL_DIR@ is not writable."; \
+ @WITH_RUBY_TRUE@		echo "Skipping system installation of ruby binding."; \
+@@ -976,7 +976,7 @@
+ @WITH_TCL_TRUE@	-mkdir -p $(DESTDIR)@TCL_INSTALL_DIR@;
+ @WITH_TCL_TRUE@	if test -w $(DESTDIR)@TCL_INSTALL_DIR@/; then \
+ @WITH_TCL_TRUE@		(cd $(DESTDIR)@TCL_INSTALL_DIR@; \
+-@WITH_TCL_TRUE@			$(LN_S) -f $(pkgtcldir) @PACKAGE_NAME@;) \
++@WITH_TCL_TRUE@			$(LN_S) -r -f $(DESTDIR)/$(pkgtcldir) @PACKAGE_NAME@;) \
+ @WITH_TCL_TRUE@	else \
+ @WITH_TCL_TRUE@		echo "Warning: @TCL_INSTALL_DIR@ is not writable."; \
+ @WITH_TCL_TRUE@		echo "Skipping system installation of tcl bindings."; \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/graphviz/patches/ruby-include.patch	Wed Jul 23 16:54:28 2014 -0700
@@ -0,0 +1,31 @@
+Look in the right place for ruby headers, and silence the warnings about
+the use of the Config module.
+
+This is an in-house patch, and has not been submitted upstream, since the
+Config->RbConfig change has already been made in a newer version, and the
+remainder of the changes are Solaris-specific.
+
+--- graphviz-2.28.0/config/config_ruby.rb	Fri Feb 18 13:25:56 2011
++++ graphviz-2.28.0/config/config_ruby.rb	Tue Jul  1 14:45:16 2014
+@@ -1,16 +1,16 @@
+ require 'rbconfig'
+ 
+-CONFIG = Config::MAKEFILE_CONFIG
++CONFIG = RbConfig::MAKEFILE_CONFIG
+ 
+ 
+ case ARGV[0]
+ when "INCLUDES"
+-    puts Config::expand(CONFIG["archdir"])
++    puts "#{RbConfig::expand(CONFIG['rubyhdrdir'])} -I#{RbConfig::expand(CONFIG['rubyhdrdir'])}/#{RbConfig::expand(CONFIG['arch'])}"
+ when "lib"
+-    puts Config::expand(CONFIG["libdir"])
++    puts RbConfig::expand(CONFIG["libdir"])
+ when "archsitelib"
+-    puts Config::expand(CONFIG["sitearchdir"])
++    puts RbConfig::expand(CONFIG["vendorarchdir"])
+ when "sitelib"
+-    puts Config::expand(CONFIG["sitedir"])
++    puts RbConfig::expand(CONFIG["vendordir"])
+ end
+ 
--- a/components/graphviz/resolve.deps	Wed Jul 23 15:57:46 2014 -0600
+++ b/components/graphviz/resolve.deps	Wed Jul 23 16:54:28 2014 -0700
@@ -1,5 +1,7 @@
 image/graphviz
+image/library/libjpeg
 image/library/librsvg
+image/library/libpng
 library/desktop/atk
 library/desktop/cairo
 library/desktop/gdk-pixbuf
@@ -12,12 +14,14 @@
 library/zlib
 print/filter/ghostscript
 runtime/lua
-runtime/perl-512
-runtime/ruby-18
+runtime/perl-516
+runtime/ruby-19
 runtime/tk-8
 shell/ksh93
 system/library
 system/library/c++-runtime
+system/library/fontconfig
+system/library/freetype-2
 system/library/math
 system/linker
 x11/library/libx11
--- a/make-rules/shared-macros.mk	Wed Jul 23 15:57:46 2014 -0600
+++ b/make-rules/shared-macros.mk	Wed Jul 23 16:54:28 2014 -0700
@@ -276,17 +276,6 @@
 
 LD =		/usr/bin/ld
 
-PYTHON.2.6.VENDOR_PACKAGES.32 = /usr/lib/python2.6/vendor-packages
-PYTHON.2.6.VENDOR_PACKAGES.64 = /usr/lib/python2.6/vendor-packages/64
-PYTHON.2.6.VENDOR_PACKAGES = $(PYTHON.2.6.VENDOR_PACKAGES.$(BITS))
-
-PYTHON.2.7.VENDOR_PACKAGES.32 = /usr/lib/python2.7/vendor-packages
-PYTHON.2.7.VENDOR_PACKAGES.64 = /usr/lib/python2.7/vendor-packages/64
-PYTHON.2.7.VENDOR_PACKAGES = $(PYTHON.2.7.VENDOR_PACKAGES.$(BITS))
-
-PYTHON.3.4.VENDOR_PACKAGES.64 = /usr/lib/python3.4/vendor-packages/64
-PYTHON.3.4.VENDOR_PACKAGES = $(PYTHON.3.4.VENDOR_PACKAGES.$(BITS))
-
 ifeq   ($(strip $(PARFAIT_BUILD)),yes)
 CC.studio.32 =	$(PARFAIT_TOOLS)/cc
 CXX.studio.32 =	$(PARFAIT_TOOLS)/CC
@@ -314,20 +303,38 @@
 
 VENDOR_RUBY = /usr/ruby/$(RUBY_VERSION)/lib/ruby/vendor_ruby/$(RUBY_LIB_VERSION)
 
+PYTHON.2.6.VENDOR_PACKAGES.32 = /usr/lib/python2.6/vendor-packages
+PYTHON.2.6.VENDOR_PACKAGES.64 = /usr/lib/python2.6/vendor-packages/64
+PYTHON.2.6.VENDOR_PACKAGES = $(PYTHON.2.6.VENDOR_PACKAGES.$(BITS))
+
+PYTHON.2.7.VENDOR_PACKAGES.32 = /usr/lib/python2.7/vendor-packages
+PYTHON.2.7.VENDOR_PACKAGES.64 = /usr/lib/python2.7/vendor-packages/64
+PYTHON.2.7.VENDOR_PACKAGES = $(PYTHON.2.7.VENDOR_PACKAGES.$(BITS))
+
+PYTHON.3.4.VENDOR_PACKAGES.64 = /usr/lib/python3.4/vendor-packages/64
+PYTHON.3.4.VENDOR_PACKAGES = $(PYTHON.3.4.VENDOR_PACKAGES.$(BITS))
+
 PYTHON_VENDOR_PACKAGES.32 = /usr/lib/python$(PYTHON_VERSION)/vendor-packages
 PYTHON_VENDOR_PACKAGES.64 = /usr/lib/python$(PYTHON_VERSION)/vendor-packages/64
 PYTHON_VENDOR_PACKAGES = $(PYTHON_VENDOR_PACKAGES.$(BITS))
 
-PYTHON.2.6.32 =	/usr/bin/python2.6
-PYTHON.2.6.64 =	/usr/bin/$(MACH64)/python2.6
+USRBIN.32 =	/usr/bin
+USRBIN.64 =	/usr/bin/$(MACH64)
+USRBIN =	$(USRBIN.$(BITS))
 
-PYTHON.2.7.32 =	/usr/bin/python2.7
-PYTHON.2.7.64 =	/usr/bin/$(MACH64)/python2.7
+PYTHON.2.6.32 =	$(USRBIN.32)/python2.6
+PYTHON.2.6.64 =	$(USRBIN.64)/python2.6
+PYTHON.2.6 =	$(USRBIN)/python2.6
+
+PYTHON.2.7.32 =	$(USRBIN.32)/python2.7
+PYTHON.2.7.64 =	$(USRBIN.64)/python2.7
+PYTHON.2.7 =	$(USRBIN)/python2.7
 
 # Although we build Python 3 64-bit only, the BUILD_NO_ARCH macro is written
 # in such a way that we still need the .32 macro below.
-PYTHON.3.4.32 = /usr/bin/python3.4
-PYTHON.3.4.64 = /usr/bin/$(MACH64)/python3.4
+PYTHON.3.4.32 =	$(USRBIN.32)/python3.4
+PYTHON.3.4.64 =	$(USRBIN.64)/python3.4
+PYTHON.3.4 =	$(USRBIN)/python3.4
 
 PYTHON.32 =	$(PYTHON.$(PYTHON_VERSION).32)
 PYTHON.64 =	$(PYTHON.$(PYTHON_VERSION).64)
@@ -345,7 +352,7 @@
 
 # This is the default BUILD version of perl
 # Not necessarily the system's default version, i.e. /usr/bin/perl
-PERL_VERSION =  5.12
+PERL_VERSION ?=  5.12
 
 PERL_VERSIONS = 5.12 5.16