From ffadee67eaf97f7153a08b4ad6e260394b25aaf5 Mon Sep 17 00:00:00 2001 From: Eebs Kobeissi Date: Tue, 25 Feb 2014 00:41:22 -0500 Subject: [PATCH 1/2] bundle freetype 2.4.11 to fix GD conflict --- files/brews/freetype.rb | 27 +++++++++++++++++++++++++++ manifests/init.pp | 13 ++++++++++++- manifests/version.pp | 2 +- 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 files/brews/freetype.rb diff --git a/files/brews/freetype.rb b/files/brews/freetype.rb new file mode 100644 index 0000000..687e83f --- /dev/null +++ b/files/brews/freetype.rb @@ -0,0 +1,27 @@ +require 'formula' + +class Freetype < Formula + homepage 'http://www.freetype.org' + url 'http://downloads.sf.net/project/freetype/freetype2/2.4.11/freetype-2.4.11.tar.gz' + sha1 'a8373512281f74a53713904050e0d71c026bf5cf' + + keg_only :provided_pre_mountain_lion + + option :universal + + bottle do + # Included with X11 so no bottle needed before Mountain Lion. + sha1 '7dc4747810e51beb99fd36c8f5baade6e65d19b7' => :mountain_lion + end + + def install + ENV.universal_binary if build.universal? + system "./configure", "--prefix=#{prefix}" + system "make install" + end + + test do + system "#{bin}/freetype-config", '--cflags', '--libs', '--ftversion', + '--exec-prefix', '--prefix' + end +end diff --git a/manifests/init.pp b/manifests/init.pp index e271305..06403e4 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -62,7 +62,6 @@ # Resolve dependencies package { [ - 'freetype', 'gmp', 'icu4c', 'jpeg', @@ -72,6 +71,18 @@ provider => homebrew, } + # Install freetype version 2.4.11 due to conflict with GD + # See https://github.com/boxen/puppet-php/issues/25 + + homebrew::formula { 'freetype': + source => 'puppet:///modules/php/brews/freetype.rb', + before => Package['boxen/brews/freetype'], + } + + package { 'boxen/brews/freetype': + ensure => '2.4.11', + } + # Need autoconf version less than 2.59 for php 5.3 (ewwwww) homebrew::formula { 'autoconf213': diff --git a/manifests/version.pp b/manifests/version.pp index ec0108c..9fb4bc8 100644 --- a/manifests/version.pp +++ b/manifests/version.pp @@ -106,7 +106,7 @@ require => [ Repository["${php::config::root}/php-src"], Package['gettext'], - Package['freetype'], + Package['boxen/brews/freetype'], Package['gmp'], Package['icu4c'], Package['jpeg'], From 00ccb7446ecfe0ccf69e7dd922b00bd6c330d7e2 Mon Sep 17 00:00:00 2001 From: Eebs Kobeissi Date: Tue, 25 Feb 2014 18:01:11 -0500 Subject: [PATCH 2/2] sandbox freetype as freetypephp, updated specs --- files/brews/freetype.rb | 2 +- lib/puppet/provider/php_version/php_source.rb | 2 +- manifests/init.pp | 6 +++--- manifests/version.pp | 2 +- spec/classes/php_spec.rb | 10 +++++++++- spec/defines/php_version_spec.rb | 2 +- 6 files changed, 16 insertions(+), 8 deletions(-) diff --git a/files/brews/freetype.rb b/files/brews/freetype.rb index 687e83f..b6acbcb 100644 --- a/files/brews/freetype.rb +++ b/files/brews/freetype.rb @@ -1,6 +1,6 @@ require 'formula' -class Freetype < Formula +class Freetypephp < Formula homepage 'http://www.freetype.org' url 'http://downloads.sf.net/project/freetype/freetype2/2.4.11/freetype-2.4.11.tar.gz' sha1 'a8373512281f74a53713904050e0d71c026bf5cf' diff --git a/lib/puppet/provider/php_version/php_source.rb b/lib/puppet/provider/php_version/php_source.rb index 3686486..f7c904f 100644 --- a/lib/puppet/provider/php_version/php_source.rb +++ b/lib/puppet/provider/php_version/php_source.rb @@ -229,7 +229,7 @@ def get_configure_args(version, install_path, config_path) "--with-xsl=/usr", "--with-gd", "--enable-gd-native-ttf", - "--with-freetype-dir=#{@resource[:homebrew_path]}/opt/freetype", + "--with-freetype-dir=#{@resource[:homebrew_path]}/opt/freetypephp", "--with-jpeg-dir=#{@resource[:homebrew_path]}/opt/jpeg", "--with-png-dir=#{@resource[:homebrew_path]}/opt/libpng", "--with-gettext=#{@resource[:homebrew_path]}/opt/gettext", diff --git a/manifests/init.pp b/manifests/init.pp index 06403e4..14c636a 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -74,12 +74,12 @@ # Install freetype version 2.4.11 due to conflict with GD # See https://github.com/boxen/puppet-php/issues/25 - homebrew::formula { 'freetype': + homebrew::formula { 'freetypephp': source => 'puppet:///modules/php/brews/freetype.rb', - before => Package['boxen/brews/freetype'], + before => Package['boxen/brews/freetypephp'], } - package { 'boxen/brews/freetype': + package { 'boxen/brews/freetypephp': ensure => '2.4.11', } diff --git a/manifests/version.pp b/manifests/version.pp index 9fb4bc8..68af67f 100644 --- a/manifests/version.pp +++ b/manifests/version.pp @@ -106,7 +106,7 @@ require => [ Repository["${php::config::root}/php-src"], Package['gettext'], - Package['boxen/brews/freetype'], + Package['boxen/brews/freetypephp'], Package['gmp'], Package['icu4c'], Package['jpeg'], diff --git a/spec/classes/php_spec.rb b/spec/classes/php_spec.rb index 1ceebb8..4c879d2 100644 --- a/spec/classes/php_spec.rb +++ b/spec/classes/php_spec.rb @@ -57,7 +57,6 @@ should contain_file("/test/boxen/env.d/phpenv.sh").with_source("puppet:///modules/php/phpenv.sh") [ - "freetype", "gmp", "icu4c", "jpeg", @@ -73,6 +72,15 @@ should contain_package("boxen/brews/autoconf213").with_ensure("2.13-boxen1") + should contain_homebrew__formula("freetypephp").with({ + :source => "puppet:///modules/php/brews/freetype.rb", + :before => "Package[boxen/brews/freetypephp]" + }) + + should contain_package("boxen/brews/freetypephp").with({ + :ensure => "2.4.11" + }) + should contain_homebrew__formula("zlibphp").with({ :source => "puppet:///modules/php/brews/zlib.rb", :before => "Package[boxen/brews/zlibphp]" diff --git a/spec/defines/php_version_spec.rb b/spec/defines/php_version_spec.rb index 7d6f060..b1a8cf4 100644 --- a/spec/defines/php_version_spec.rb +++ b/spec/defines/php_version_spec.rb @@ -51,7 +51,7 @@ :require => [ "Repository[/test/boxen/phpenv/php-src]", "Package[gettext]", - "Package[freetype]", + "Package[boxen/brews/freetypephp]", "Package[gmp]", "Package[icu4c]", "Package[jpeg]",