Blob Blame History Raw
#
# Fedora spec file for php-doctrine-doctrine-cache-bundle
#
# Copyright (c) 2015-2018 Shawn Iwinski <shawn.iwinski@gmail.com>
#
# License: MIT
# http://opensource.org/licenses/MIT
#
# Please preserve changelog entries
#

%global github_owner     doctrine
%global github_name      DoctrineCacheBundle
%global github_version   1.4.0
%global github_commit    6bee2f9b339847e8a984427353670bad4e7bdccb
%global github_short     %(c=%{github_commit}; echo ${c:0:7})

%global composer_vendor  doctrine
%global composer_project doctrine-cache-bundle

# "php": "^7.1"
%global php_min_ver 7.1
# "doctrine/cache": "^1.4.2"
%global cache_min_ver 1.4.2
%global cache_max_ver 2.0
# "doctrine/inflector": "~1.0"
%global inflector_min_ver 1.0
%global inflector_max_ver 2.0
# "symfony/doctrine-bridge":  "^3.4|^4.0"
# "symfony/yaml":             "^3.4|^4.0",
# "symfony/validator":        "^3.4|^4.0",
# "symfony/console":          "^3.4|^4.0",
# "symfony/finder":           "^3.4|^4.0",
# "symfony/framework-bundle": "^3.4|^4.0",
%global symfony_min_ver 3.4
%global symfony_max_ver 5
# "symfony/security-acl":     "^2.8",
%global secacl_min_ver 2.8
%global secacl_max_ver 3

# Build using "--with tests" to enable tests
%global with_tests 0%{?_with_tests:1}

%{!?phpdir:  %global phpdir  %{_datadir}/php}

Name:          php-%{composer_vendor}-%{composer_project}
Version:       %{github_version}
Release:       8%{?dist}
Summary:       Symfony2 Bundle for Doctrine Cache

License:       MIT
URL:           https://github.com/%{github_owner}/%{github_name}
Source0:       %{name}-%{github_version}-%{github_short}.tgz
Source1:       makesrc.sh

BuildArch:     noarch
# Tests
%if %{with_tests}
## composer.json
BuildRequires: php(language) >= %{php_min_ver}
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
BuildRequires: (php-composer(doctrine/cache) >= %{cache_min_ver} with php-composer(doctrine/cache) <  %{cache_max_ver})
BuildRequires: (php-composer(doctrine/inflector) >= %{inflector_min_ver} with php-composer(doctrine/inflector) <  %{inflector_max_ver})
BuildRequires: (php-composer(symfony/security-acl) >= %{secacl_min_ver} with php-composer(symfony/security-acl) <  %{secacl_max_ver})
# ensure we use same version of all components
BuildRequires: php-symfony4-console
BuildRequires: php-symfony4-doctrine-bridge
BuildRequires: php-symfony4-finder
BuildRequires: php-symfony4-framework-bundle
BuildRequires: php-symfony4-validator
BuildRequires: php-symfony4-yaml
%else
BuildRequires: php-doctrine-cache >= %{cache_min_ver}
BuildRequires: php-doctrine-inflector >= %{inflector_min_ver}
BuildRequires: php-symfony-security-acl
BuildRequires: php-symfony4-console
BuildRequires: php-symfony4-doctrine-bridge
BuildRequires: php-symfony4-finder
BuildRequires: php-symfony4-framework-bundle
BuildRequires: php-symfony4-validator
BuildRequires: php-symfony4-yaml
%endif
BuildRequires: phpunit7
%global phpunit %{_bindir}/phpunit7
## phpcompatinfo (computed from version 1.3.4)
BuildRequires: php-hash
BuildRequires: php-reflection
BuildRequires: php-spl
## Autoloader
BuildRequires: php-composer(fedora/autoloader)
%endif

# composer.json
Requires:      php(language) >= %{php_min_ver}
%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8
Requires:      (php-composer(doctrine/cache) >= %{cache_min_ver} with php-composer(doctrine/cache) <  %{cache_max_ver})
Requires:      (php-composer(doctrine/inflector) >= %{inflector_min_ver} with php-composer(doctrine/inflector) <  %{inflector_max_ver})
Requires:      (php-composer(symfony/doctrine-bridge) >= %{symfony_min_ver} with php-composer(symfony/doctrine-bridge) <  %{symfony_max_ver})
%else
Requires:      php-doctrine-cache >= %{cache_min_ver}
Requires:      php-doctrine-inflector >= %{inflector_min_ver}
Requires:      php-symfony4-doctrine-bridge >= %{symfony_min_ver}
%endif
# phpcompatinfo (computed from version 1.4.0)
Requires:      php-hash
Requires:      php-reflection
Requires:      php-spl
# Autoloader
Requires:      php-composer(fedora/autoloader)
# Weak dependencies
%if 0%{?fedora} >= 21 || 0%{?rhel} >= 8
Suggests:      php-pecl(memcache)
Suggests:      php-pecl(memcached)
Suggests:      php-pecl(mongo)
Suggests:      php-composer(symfony/security-acl)
%endif

# Composer
Provides:      php-composer(%{composer_vendor}/%{composer_project}) = %{version}

%description
%{summary}.

Autoloader: %{phpdir}/Doctrine/Bundle/DoctrineCacheBundle/autoload.php


%prep
%setup -qn %{github_name}-%{github_commit}


%build
: Create autoloader
cat <<'AUTOLOAD' | tee autoload.php
<?php
/**
 * Autoloader for %{name} and its' dependencies
 * (created by %{name}-%{version}-%{release}).
 */
require_once '%{phpdir}/Fedora/Autoloader/autoload.php';

\Fedora\Autoloader\Autoload::addPsr4('Doctrine\\Bundle\\DoctrineCacheBundle\\', __DIR__);

\Fedora\Autoloader\Dependencies::required([
    '%{phpdir}/Doctrine/Common/Cache/autoload.php',
    '%{phpdir}/Doctrine/Common/Inflector/autoload.php',
    [
        (getenv('RPM_SYMFONY_TREE')?:'%{phpdir}/Symfony4') . '/Bridge/Doctrine/autoload.php',
        '%{phpdir}/Symfony3/Bridge/Doctrine/autoload.php',
    ],
]);

\Fedora\Autoloader\Dependencies::optional([
    [
        '%{phpdir}/Symfony/Component/Security/autoload.php',
    ],
]);
AUTOLOAD


%install
mkdir -p %{buildroot}%{phpdir}/Doctrine/Bundle/DoctrineCacheBundle
cp -pr Acl Command DependencyInjection Resources Tests *.php \
    %{buildroot}%{phpdir}/Doctrine/Bundle/DoctrineCacheBundle/


%check
%if %{with_tests}
: Create tests bootstrap
cat <<'BOOTSTRAP' | tee bootstrap.php
<?php
require_once '%{buildroot}%{phpdir}/Doctrine/Bundle/DoctrineCacheBundle/autoload.php';

\Fedora\Autoloader\Dependencies::required([
    [
        '%{phpdir}/Symfony4/Bundle/FrameworkBundle/autoload.php',
        '%{phpdir}/Symfony3/Bundle/FrameworkBundle/autoload.php',
    ], [
        '%{phpdir}/Symfony4/Component/Console/autoload.php',
        '%{phpdir}/Symfony3/Component/Console/autoload.php',
    ], [
        '%{phpdir}/Symfony4/Component/Finder/autoload.php',
        '%{phpdir}/Symfony3/Component/Finder/autoload.php',
    ], [
        '%{phpdir}/Symfony4/Component/Validator/autoload.php',
        '%{phpdir}/Symfony3/Component/Validator/autoload.php',
    ], [
        '%{phpdir}/Symfony4/Component/Yaml/autoload.php',
        '%{phpdir}/Symfony3/Component/Yaml/autoload.php',
    ],
]);
BOOTSTRAP

: Modify PHPUnit config
sed -e 's#\./#%{buildroot}%{phpdir}/Doctrine/Bundle/DoctrineCacheBundle/#g' \
    -e 's#>\.<#>%{buildroot}%{phpdir}/Doctrine/Bundle/DoctrineCacheBundle<#' \
    -i phpunit.xml.dist

: Remove tests requiring a server to connect to
pushd %{buildroot}%{phpdir}/Doctrine/Bundle/DoctrineCacheBundle/Tests
    rm -f \
        Functional/Fixtures/config/predis.xml \
        Functional/PredisCacheTest.php
popd

: Upstream tests
RETURN_CODE=0
for cmdarg in "php %{phpunit}" php71 php72 php73 php74; do
    if which $cmdarg; then
        set $cmdarg
        $1 ${2:-%{_bindir}/phpunit7} --verbose --bootstrap bootstrap.php \
            || RETURN_CODE=1
    fi
done
exit $RETURN_CODE
%else
: Tests skipped
%endif


%files
%{!?_licensedir:%global license %%doc}
%license LICENSE
%doc *.md
%doc composer.json
%dir %{phpdir}/Doctrine/Bundle
     %{phpdir}/Doctrine/Bundle/DoctrineCacheBundle
%exclude %{phpdir}/Doctrine/Bundle/DoctrineCacheBundle/Tests


%changelog
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.0-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.0-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Wed Mar 25 2020 Remi Collet <remi@remirepo.net> - 1.4.0-1
- update to 1.4.0
- raise dependency on PHP 7.1
- raise dependency on Symfony 3.4

* Sun Feb 23 2020 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.3.5-5
- Disable tests by default (for now) to fix FTBFS (RHBZ #1799868)

* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.5-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Fri Nov  9 2018 Remi Collet <remi@remirepo.net> - 1.3.5-1
- update to 1.3.5

* Thu Nov  8 2018 Remi Collet <remi@remirepo.net> - 1.3.4-1
- update to 1.3.4 (no change)
- sources from git snapshot
- use phpunit7

* Wed Oct 17 2018 Remi Collet <remi@remirepo.net> - 1.3.3-1
- update to 1.3.3
- switch to Symfony 4 for test suite
- use range dependencies

* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Fri Nov 10 2017 Remi Collet <remi@remirepo.net> - 1.3.2-1
- Update to 1.3.2
- fix FTBFS from Koschei
- ensure we use same version of all component at build time
- allow symfony/doctrine-bridge v4

* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.0-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Wed May 31 2017 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.3.0-6
- Fix test failures with Symfony 2.8.21 (see
  https://github.com/doctrine/DoctrineCacheBundle/pull/112)

* Tue May 30 2017 Remi Collet <remi@remirepo.net> - 1.3.0-5
- allow to force Symfony version using RPM_SYMFONY_TREE

* Sun May 14 2017 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.3.0-4
- Fix autoloder for Symfony 3

* Fri May 12 2017 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.3.0-3
- Switch autoloader to php-composer(fedora/autoloader)
- Add max versions to build dependencies
- Test with SCLs if available

* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Thu Mar 31 2016 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.3.0-1
- Updated to 1.3.0 (RHBZ #1279828)
- Updated dependency versions for their autoloaders and modified autoloader
  to use those autoloaders

* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild

* Sat Jun 27 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.0.1-3
- Updated autoloader with trailing separator

* Tue Jun 16 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.0.1-2
- Fix dependencies

* Thu Jun 11 2015 Shawn Iwinski <shawn.iwinski@gmail.com> - 1.0.1-1
- Initial package