summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile4
-rw-r--r--php-swiftmailer.spec150
-rw-r--r--swiftmailer-upstream.patch80
3 files changed, 234 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..91b0fd5
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,4 @@
+SRCDIR := $(shell pwd)
+NAME := $(shell basename $(SRCDIR))
+include ../../common/Makefile
+
diff --git a/php-swiftmailer.spec b/php-swiftmailer.spec
new file mode 100644
index 0000000..04887e6
--- /dev/null
+++ b/php-swiftmailer.spec
@@ -0,0 +1,150 @@
+# remirepo spec file for php-swiftmailer
+#
+# Copyright (c) 2016 Remi Collet
+# License: CC-BY-SA
+# http://creativecommons.org/licenses/by-sa/4.0/
+#
+# Please preserve changelog entries
+#
+%global gh_commit 0697e6aa65c83edf97bb0f23d8763f94e3f11421
+%global gh_short %(c=%{gh_commit}; echo ${c:0:7})
+%global gh_owner swiftmailer
+%global gh_project swiftmailer
+%global with_tests 0%{!?_without_tests:1}
+%global php_home %{_datadir}/php
+
+Name: php-%{gh_project}
+Version: 5.4.1
+Release: 1%{?dist}
+Summary: Free Feature-rich PHP Mailer
+
+Group: Development/Libraries
+License: MIT
+URL: http://www.swiftmailer.org/
+Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}-%{gh_short}.tar.gz
+
+# Upstream patches
+# Fix test bootstrap and disable gc to avoid segfault
+Patch0: %{gh_project}-upstream.patch
+
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildArch: noarch
+%if %{with_tests}
+BuildRequires: php-composer(phpunit/phpunit)
+BuildRequires: php-composer(theseer/autoload)
+# From composer.json, "require-dev": {
+# "mockery/mockery": "~0.9.1,<0.9.4"
+BuildRequires: php-composer(mockery/mockery) >= 0.9.1
+BuildRequires: php-composer(mockery/mockery) < 0.9.4
+%endif
+
+# From composer.json, "require": {
+# "php": ">=5.3.3"
+Requires: php(language) >= 5.3.3
+# from phpcompatinfo report on version 5.4.1
+Requires: php-bcmath
+Requires: php-ctype
+Requires: php-date
+Requires: php-hash
+Requires: php-iconv
+Requires: php-mbstring
+Requires: php-mcrypt
+Requires: php-mhash
+Requires: php-openssl
+Requires: php-pcre
+Requires: php-reflection
+Requires: php-simplexml
+Requires: php-spl
+
+# Removal for official repo not yet planed
+%if 0%{?fedora} > 99
+Obsoletes: php-swift-Swift <= 5.4.1
+# Single package in this channel
+Obsoletes: php-channel-swift <= 1.3
+Provides: php-pear(pear.swiftmailer.org/Swift) = %{version}
+%endif
+
+Provides: php-composer(%{gh_owner}/%{gh_project}) = %{version}
+
+
+%description
+Swift Mailer integrates into any web app written in PHP, offering a
+flexible and elegant object-oriented approach to sending emails with
+a multitude of features.
+
+Autoloader: %{php_home}/Swift/swift_required.php
+
+
+
+%prep
+%setup -q -n %{gh_project}-%{gh_commit}
+
+%patch0 -p1
+
+# Install using the same layout than the old PEAR package
+mv lib/swift_required_pear.php lib/swift_required.php
+rm lib/swiftmailer_generate_mimes_config.php
+
+
+%build
+# Empty build section, most likely nothing required.
+
+
+%install
+rm -rf %{buildroot}
+
+mkdir -p %{buildroot}/%{php_home}/Swift
+cp -p lib/*.php %{buildroot}/%{php_home}/Swift/
+cp -pr lib/classes/* %{buildroot}/%{php_home}/Swift/
+cp -pr lib/dependency_maps %{buildroot}/%{php_home}/Swift/
+
+
+%check
+%if %{with_tests}
+: Use installed tree and autoloader
+mkdir vendor
+%{_bindir}/phpab --output vendor/autoload.php tests
+cat << 'EOF' | tee -a vendor/autoload.php
+require_once '%{buildroot}/%{php_home}/Swift/swift_required.php';
+require_once '/usr/share/php/Mockery/autoload.php';
+EOF
+
+TMPDIR=$(mktemp -d $PWD/rpmtests-XXXXXXXX)
+cat << EOF | tee tests/acceptance.conf.php
+<?php
+define('SWIFT_TMP_DIR', '$TMPDIR');
+EOF
+
+ret=0
+
+: Run upstream test suite
+%{_bindir}/phpunit --exclude smoke --verbose || ret=1
+
+if which php70; then
+ php70 %{_bindir}/phpunit --exclude smoke --verbose || : ignore PHP 7 test results
+fi
+%endif
+
+# Cleanup
+rm -r $TMPDIR
+
+
+%clean
+rm -rf %{buildroot}
+
+
+%files
+%defattr(-,root,root,-)
+%{!?_licensedir:%global license %%doc}
+%license LICENSE
+%doc CHANGES README
+%doc doc
+%doc composer.json
+%{php_home}/Swift
+
+
+%changelog
+* Fri Oct 16 2015 Remi Collet <remi@fedoraproject.org> - 5.4.1-1
+- initial rpm, version 5.4.1
+- sources from github, pear channel is dead
+
diff --git a/swiftmailer-upstream.patch b/swiftmailer-upstream.patch
new file mode 100644
index 0000000..68611ed
--- /dev/null
+++ b/swiftmailer-upstream.patch
@@ -0,0 +1,80 @@
+From 94a0f8bffb1f6832fe97e4c9c67c4852fe55e2a3 Mon Sep 17 00:00:00 2001
+From: Christian Schmidt <cs@blackwoodseven.com>
+Date: Thu, 25 Jun 2015 21:43:00 +0200
+Subject: [PATCH] Do not assume that require_once returns an object
+
+---
+ composer.json | 5 +++++
+ tests/bootstrap.php | 3 +--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/composer.json b/composer.json
+index a7b5e44..0549006 100644
+--- a/composer.json
++++ b/composer.json
+@@ -23,6 +23,11 @@
+ "autoload": {
+ "files": ["lib/swift_required.php"]
+ },
++ "autoload-dev": {
++ "psr-0": {
++ "Swift_": "tests/unit"
++ }
++ },
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.4-dev"
+diff --git a/tests/bootstrap.php b/tests/bootstrap.php
+index 9b169b3..55538bb 100644
+--- a/tests/bootstrap.php
++++ b/tests/bootstrap.php
+@@ -1,7 +1,6 @@
+ <?php
+
+-$autoloader = require_once dirname(__DIR__).'/vendor/autoload.php';
+-$autoloader->add('Swift_', __DIR__.'/unit');
++require_once dirname(__DIR__).'/vendor/autoload.php';
+
+ set_include_path(get_include_path().PATH_SEPARATOR.dirname(__DIR__).'/lib');
+
+From 5174336501b554dce18f304af74c4440d4b78c9d Mon Sep 17 00:00:00 2001
+From: Hugo Hamon <hugo.hamon@sensiolabs.com>
+Date: Sun, 23 Aug 2015 12:09:17 +0200
+Subject: [PATCH] Added PHP 5.6, PHP 7 and HHVM to the build matrix.
+
+---
+ .travis.yml | 22 +++++++++++-----------
+ phpunit.xml.dist | 2 +-
+ tests/bootstrap.php | 5 ++++-
+ 3 files changed, 16 insertions(+), 13 deletions(-)
+
+diff --git a/phpunit.xml.dist b/phpunit.xml.dist
+index 2420586..0d3e698 100644
+--- a/phpunit.xml.dist
++++ b/phpunit.xml.dist
+@@ -32,6 +32,6 @@
+ </testsuites>
+
+ <listeners>
+- <listener class="\Mockery\Adapter\Phpunit\TestListener"></listener>
++ <listener class="Mockery\Adapter\Phpunit\TestListener"/>
+ </listeners>
+ </phpunit>
+diff --git a/tests/bootstrap.php b/tests/bootstrap.php
+index 55538bb..34f56b5 100644
+--- a/tests/bootstrap.php
++++ b/tests/bootstrap.php
+@@ -2,9 +2,12 @@
+
+ require_once dirname(__DIR__).'/vendor/autoload.php';
+
++// Disable garbage collector to prevent segfaults
++gc_disable();
++
+ set_include_path(get_include_path().PATH_SEPARATOR.dirname(__DIR__).'/lib');
+
+-\Mockery::getConfiguration()->allowMockingNonExistentMethods(false);
++Mockery::getConfiguration()->allowMockingNonExistentMethods(false);
+
+ if (is_file(__DIR__.'/acceptance.conf.php')) {
+ require_once __DIR__.'/acceptance.conf.php';