From 44835180c5819f61684cfe4f2aaa76519e8c448b Mon Sep 17 00:00:00 2001
From: Alex Mace
Date: Thu, 22 Jan 2015 16:28:32 +0000
Subject: [PATCH 1/6] Added the uopz extension
---
manifests/extension/uopz.pp | 58 +++++++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
create mode 100644 manifests/extension/uopz.pp
diff --git a/manifests/extension/uopz.pp b/manifests/extension/uopz.pp
new file mode 100644
index 0000000..9ccb241
--- /dev/null
+++ b/manifests/extension/uopz.pp
@@ -0,0 +1,58 @@
+# Installs a php extension for a specific version of php.
+#
+# Usage:
+#
+# php::extension::uopz { 'uopz for 5.4.10':
+# php => '5.4.10',
+# version => '1.0.3'
+# }
+#
+define php::extension::uopz(
+ $php,
+ $version = '2.0.6'
+) {
+ include boxen::config
+
+ require php::config
+ # Require php version eg. php::5_4_10
+ # This will compile, install and set up config dirs if not present
+ require join(['php', join(split($php, '[.]'), '_')], '::')
+
+ $extension = 'uopz'
+
+ # Final module install path
+ $module_path = "${php::config::root}/versions/${php}/modules/${extension}.so"
+
+ # Clone the source respository
+ repository { "${php::config::extensioncachedir}/uopz":
+ source => 'krakjoe/uopz'
+ }
+
+
+ # Additional options
+ $configure_params = ""
+
+ php_extension { $name:
+ provider => 'git',
+
+ extension => $extension,
+ version => $version,
+
+ homebrew_path => $boxen::config::homebrewdir,
+ phpenv_root => $php::config::root,
+ php_version => $php,
+
+ cache_dir => $php::config::extensioncachedir,
+ require => Repository["${php::config::extensioncachedir}/uopz"],
+
+ configure_params => $configure_params,
+ }
+
+ # Add config file once extension is installed
+
+ file { "${php::config::configdir}/${php}/conf.d/${extension}.ini":
+ content => template('php/extensions/zend_generic.ini.erb'),
+ require => Php_extension[$name],
+ }
+
+}
From c7fd8b96a77429694b1e50dd27a97b15b3251344 Mon Sep 17 00:00:00 2001
From: Alex Mace
Date: Thu, 22 Jan 2015 16:36:29 +0000
Subject: [PATCH 2/6] uopz prepends all of its tags with a 'v'
---
manifests/extension/uopz.pp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/manifests/extension/uopz.pp b/manifests/extension/uopz.pp
index 9ccb241..0c1df97 100644
--- a/manifests/extension/uopz.pp
+++ b/manifests/extension/uopz.pp
@@ -36,7 +36,7 @@
provider => 'git',
extension => $extension,
- version => $version,
+ version => "v${version}",
homebrew_path => $boxen::config::homebrewdir,
phpenv_root => $php::config::root,
From 580efbfc1b481713d223afde05fd32176650d274 Mon Sep 17 00:00:00 2001
From: Alex Mace
Date: Tue, 28 Apr 2015 00:26:16 +0100
Subject: [PATCH 3/6] Updates based on what other extensions are doing, and
fixing a lart error
---
manifests/extension/uopz.pp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/manifests/extension/uopz.pp b/manifests/extension/uopz.pp
index 0c1df97..6614420 100644
--- a/manifests/extension/uopz.pp
+++ b/manifests/extension/uopz.pp
@@ -16,7 +16,7 @@
require php::config
# Require php version eg. php::5_4_10
# This will compile, install and set up config dirs if not present
- require join(['php', join(split($php, '[.]'), '_')], '::')
+ php_require($php)
$extension = 'uopz'
@@ -30,7 +30,7 @@
# Additional options
- $configure_params = ""
+ $configure_params = ''
php_extension { $name:
provider => 'git',
From 55094220063a4c7aba9f0bbac524508d29f185a6 Mon Sep 17 00:00:00 2001
From: Alex Mace
Date: Tue, 28 Apr 2015 00:26:42 +0100
Subject: [PATCH 4/6] Added a generic ini file for zend extensions
---
templates/extensions/zend_generic.ini.erb | 1 +
1 file changed, 1 insertion(+)
create mode 100644 templates/extensions/zend_generic.ini.erb
diff --git a/templates/extensions/zend_generic.ini.erb b/templates/extensions/zend_generic.ini.erb
new file mode 100644
index 0000000..8affacc
--- /dev/null
+++ b/templates/extensions/zend_generic.ini.erb
@@ -0,0 +1 @@
+zend_extension=<%= @module_path %>
From 21443f4ea8bacc5379a88744cea1d8d411f15a46 Mon Sep 17 00:00:00 2001
From: Alex Mace
Date: Tue, 28 Apr 2015 00:26:58 +0100
Subject: [PATCH 5/6] spec file for the uopz extension
---
.../extensions/php_extension_uopz_spec.rb | 38 +++++++++++++++++++
spec/fixtures/uopz.ini | 1 +
2 files changed, 39 insertions(+)
create mode 100644 spec/defines/extensions/php_extension_uopz_spec.rb
create mode 100644 spec/fixtures/uopz.ini
diff --git a/spec/defines/extensions/php_extension_uopz_spec.rb b/spec/defines/extensions/php_extension_uopz_spec.rb
new file mode 100644
index 0000000..e362701
--- /dev/null
+++ b/spec/defines/extensions/php_extension_uopz_spec.rb
@@ -0,0 +1,38 @@
+require 'spec_helper'
+
+describe "php::extension::uopz" do
+ let(:facts) { default_test_facts }
+ let(:title) { "uopz for 5.4.17" }
+ let(:params) do
+ {
+ :php => "5.4.17",
+ :version => "2.0.6"
+ }
+ end
+
+ it do
+ should contain_class("php::config")
+ should contain_php__version("5.4.17")
+
+ should contain_repository("/test/boxen/data/php/cache/extensions/uopz").with({
+ :source => "krakjoe/uopz"
+ })
+
+ should contain_php_extension("uopz for 5.4.17").with({
+ :provider => "git",
+ :extension => "uopz",
+ :version => "v2.0.6",
+ :homebrew_path => "/test/boxen/homebrew",
+ :phpenv_root => "/test/boxen/phpenv",
+ :php_version => "5.4.17",
+ :cache_dir => "/test/boxen/data/php/cache/extensions",
+ :require => "Repository[/test/boxen/data/php/cache/extensions/uopz]",
+ :configure_params => '',
+ })
+
+ should contain_file("/test/boxen/config/php/5.4.17/conf.d/uopz.ini").with({
+ :content => File.read("spec/fixtures/uopz.ini"),
+ :require => "Php_extension[uopz for 5.4.17]"
+ })
+ end
+end
diff --git a/spec/fixtures/uopz.ini b/spec/fixtures/uopz.ini
new file mode 100644
index 0000000..a584d08
--- /dev/null
+++ b/spec/fixtures/uopz.ini
@@ -0,0 +1 @@
+zend_extension=/test/boxen/phpenv/versions/5.4.17/modules/uopz.so
From 4f8b9791ac04760caaa97f6a86f682666bd896b4 Mon Sep 17 00:00:00 2001
From: Alex Mace
Date: Wed, 13 May 2015 21:20:17 +0100
Subject: [PATCH 6/6] Updated the comment to remove the reference to v1 syntax
---
manifests/extension/uopz.pp | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/manifests/extension/uopz.pp b/manifests/extension/uopz.pp
index 6614420..4f98357 100644
--- a/manifests/extension/uopz.pp
+++ b/manifests/extension/uopz.pp
@@ -12,10 +12,9 @@
$version = '2.0.6'
) {
include boxen::config
-
require php::config
- # Require php version eg. php::5_4_10
- # This will compile, install and set up config dirs if not present
+
+ # Ensure that the specified version of PHP is installed.
php_require($php)
$extension = 'uopz'