diff options
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | php-swiftmailer.spec | 150 | ||||
-rw-r--r-- | swiftmailer-upstream.patch | 80 |
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'; |