%bcond_with php74
%bcond_without php81
%bcond_without php82

%define extname phpredis

Summary: A redis extension for PHP
Summary(ja): PHP用redis拡張
Name: php-ext-phpredis
Version: 5.3.7
Release: 2%{_dist_release}
Group: programming
Vendor: Project Vine
Distribution: Vine Linux
Packager: tomop

License: The PHP License
URL: https://github.com/phpredis/phpredis
Source: https://github.com/phpredis/phpredis/archive/%{version}.tar.gz#/phpredis-%{version}.tgz
BuildRoot: %{_tmppath}/%{name}-%{version}-root

%description
 The phpredis extension provides an API for communicating with the Redis
key-value store.

%description -l ja
 phpredis拡張は、Redis KVSと通信するためのAPIを提供します。


%if %{with php81}
%package -n php81-ext-phpredis
Summary: A redis extension for PHP
Summary(ja): PHP用redis拡張
Group: programming
BuildRequires: php81-devel
%if "%{?req_php81_api}" != ""
Requires: %{req_php81_api}
%endif

%description -n php81-ext-phpredis
 The phpredis extension provides an API for communicating with the Redis
key-value store.

%description -n php81-ext-phpredis -l ja
 phpredis拡張は、Redis KVSと通信するためのAPIを提供します。
%endif


%if %{with php82}
%package -n php82-ext-phpredis
Summary: A redis extension for PHP
Summary(ja): PHP用redis拡張
Group: programming
BuildRequires: php82-devel
%if "%{?req_php82_api}" != ""
Requires: %{req_php82_api}
%endif

%description -n php82-ext-phpredis
 The phpredis extension provides an API for communicating with the Redis
key-value store.

%description -n php82-ext-phpredis -l ja
 phpredis拡張は、Redis KVSと通信するためのAPIを提供します。
%endif


%if %{with php74}
%package -n php74-ext-phpredis
Summary: A redis extension for PHP
Summary(ja): PHP用redis拡張
Group: programming
BuildRequires: php74-devel
%if "%{?req_php74_api}" != ""
Requires: %{req_php74_api}
%endif

%description -n php74-ext-phpredis
 The phpredis extension provides an API for communicating with the Redis
key-value store.

%description -n php74-ext-phpredis -l ja
 phpredis拡張は、Redis KVSと通信するためのAPIを提供します。
%endif


%debug_package


%prep
%setup -q -c -n phpredis-%{version}
cp %{extname}-%{version}/{COPYING,CREDITS,Changelog.md,*.markdown} ./

%if %{with php81}
cp -a %{extname}-%{version} php81
pushd php81
phpize81
popd
%endif

%if %{with php82}
cp -a %{extname}-%{version} php82
pushd php82
phpize82
popd
%endif

%if %{with php74}
cp -a %{extname}-%{version} php74
pushd php74
phpize74
popd
%endif


%build
%if %{with php81}
pushd php81
%configure --with-php-config=%{_bindir}/php-config81
%__make %{?_smp_mflags}
popd
%endif

%if %{with php82}
pushd php82
%configure --with-php-config=%{_bindir}/php-config82
%__make %{?_smp_mflags}
popd
%endif

%if %{with php74}
pushd php74
%configure --with-php-config=%{_bindir}/php-config74
%__make %{?_smp_mflags}
popd
%endif


%install
rm -rf %{buildroot}
%if %{with php81}
pushd php81
mkdir -p %{buildroot}%{_libdir}/php81/
mkdir -p %{buildroot}%{_sysconfdir}/php81/php.d
%makeinstall INSTALL_ROOT=%{buildroot}

cat > %{buildroot}%{_sysconfdir}/php81/php.d/redis.ini <<EOF
; Enable redis extension module
extension=redis.so

;session.save_handler = redis
;session.save_path = "tcp://host1:6379?weight=1, tcp://host2:6379?weight=2&timeout=2.5, tcp://host3:6379?weight=2&read_timeout=2.5"

; Should the locking be enabled? Defaults to: 0.
;redis.session.locking_enabled = 1
; How long should the lock live (in seconds)? Defaults to: value of max_execution_time.
;redis.session.lock_expire = 60
; How long to wait between attempts to acquire lock, in microseconds (µs)?. Defaults to: 2000
;redis.session.lock_wait_time = 50000
; Maximum number of times to retry (-1 means infinite). Defaults to: 10
;redis.session.lock_retries = 10

EOF
popd
%endif

%if %{with php82}
pushd php82
mkdir -p %{buildroot}%{_libdir}/php82/
mkdir -p %{buildroot}%{_sysconfdir}/php82/php.d
%makeinstall INSTALL_ROOT=%{buildroot}

cat > %{buildroot}%{_sysconfdir}/php82/php.d/redis.ini <<EOF
; Enable redis extension module
extension=redis.so

;session.save_handler = redis
;session.save_path = "tcp://host1:6379?weight=1, tcp://host2:6379?weight=2&timeout=2.5, tcp://host3:6379?weight=2&read_timeout=2.5"

; Should the locking be enabled? Defaults to: 0.
;redis.session.locking_enabled = 1
; How long should the lock live (in seconds)? Defaults to: value of max_execution_time.
;redis.session.lock_expire = 60
; How long to wait between attempts to acquire lock, in microseconds (µs)?. Defaults to: 2000
;redis.session.lock_wait_time = 50000
; Maximum number of times to retry (-1 means infinite). Defaults to: 10
;redis.session.lock_retries = 10

EOF
popd
%endif

%if %{with php74}
pushd php74
mkdir -p %{buildroot}%{_libdir}/php74/
mkdir -p %{buildroot}%{_sysconfdir}/php74/php.d
%makeinstall INSTALL_ROOT=%{buildroot}

cat > %{buildroot}%{_sysconfdir}/php74/php.d/redis.ini <<EOF
; Enable redis extension module
extension=redis.so

;session.save_handler = redis
;session.save_path = "tcp://host1:6379?weight=1, tcp://host2:6379?weight=2&timeout=2.5, tcp://host3:6379?weight=2&read_timeout=2.5"

; Should the locking be enabled? Defaults to: 0.
;redis.session.locking_enabled = 1
; How long should the lock live (in seconds)? Defaults to: value of max_execution_time.
;redis.session.lock_expire = 60
; How long to wait between attempts to acquire lock, in microseconds (µs)?. Defaults to: 2000
;redis.session.lock_wait_time = 50000
; Maximum number of times to retry (-1 means infinite). Defaults to: 10
;redis.session.lock_retries = 10

EOF
popd
%endif


%clean
rm -rf %{buildroot}


%if %{with php81}
%files -n php81-ext-phpredis
%defattr(-,root,root)
%license COPYING
%doc CREDITS Changelog.md *.markdown
%{_libdir}/php81/*
%config(noreplace) %{_sysconfdir}/php81/php.d/*
%endif

%if %{with php82}
%files -n php82-ext-phpredis
%defattr(-,root,root)
%license COPYING
%doc CREDITS Changelog.md *.markdown
%{_libdir}/php82/*
%config(noreplace) %{_sysconfdir}/php82/php.d/*
%endif

%if %{with php74}
%files -n php74-ext-phpredis
%defattr(-,root,root)
%license COPYING
%doc CREDITS Changelog.md *.markdown
%{_libdir}/php74/*
%config(noreplace) %{_sysconfdir}/php74/php.d/*
%endif


%changelog
* Fri Mar 17 2023 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 5.3.7-2
- added php82 support.

* Fri Sep 23 2022 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 5.3.7-1
- new upstream release.
- dropped php80 support.

* Fri Nov 26 2021 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 5.3.4-1
- new upstream release.
- added php81 support.

* Sat Mar 20 2021 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 5.3.3-1
- new upstream release.

* Sat Dec 19 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 5.3.2-1
- new upstream release.
- added php80 support.

* Thu Dec 19 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 5.1.1-1
- new upstream release.
- built for php74.

* Thu Aug 22 2019 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 5.0.2-1
- initial build for Vine Linux.