# spec file for php-pecl-rar # # SPDX-FileCopyrightText: Copyright 2013-2026 Remi Collet # SPDX-License-Identifier: CECILL-2.1 # http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt # # Please, preserve the changelog entries # %{?scl:%scl_package php-pecl-rar} %bcond_without tests %global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} %global pie_vend cataphract %global pie_proj rar %global pecl_name rar %global ini_name 40-%{pecl_name}.ini %global sources %{archivename} %global _configure ../%{sources}/configure # Github forge %global gh_vend %{pie_vend} %global gh_proj php-rar %global forgeurl https://github.com/%{gh_vend}/%{gh_proj} %global tag v%{version} # for EL-8 to avoid TAG usage %global archivename %{gh_proj}-%{version} Summary: PHP extension for reading RAR archives Name: %{?scl_prefix}php-pecl-%{pecl_name} Version: 4.3.0 %forgemeta Release: 1%{?dist} License: PHP-3.01 and Freeware with further limitations Group: Development/Languages URL: %{forgeurl} Source0: %{forgesource} BuildRequires: make BuildRequires: %{?dtsprefix}gcc BuildRequires: %{?scl_prefix}php-devel >= 7.0 Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} Requires: %{?scl_prefix}php(api) = %{php_core_api} # Extension Provides: %{?scl_prefix}php-%{pecl_name} = %{version} Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version} # PECL Provides: %{?scl_prefix}php-pecl(%{pecl_name}) = %{version} Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version} # PIE Provides: %{?scl_prefix}php-pie(%{pie_vend}/%{pie_proj}) = %{version} Provides: %{?scl_prefix}php-%{pie_vend}-%{pie_proj} = %{version} %description PHP extension for reading RAR archives using bundled unRAR library. Documentation: http://php.net/rar Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{?scl_vendor}%{!?scl_vendor:rh})}. %prep %setup -q -c cd %{sources} sed -e '/PHP_RAR_VERSION/s/4.2.0/%{version}/' -i php_rar.h # Sanity check, really often broken extver=$(sed -n '/#define PHP_RAR_VERSION/{s/.* "//;s/".*$//;p}' php_rar.h) if test "x${extver}" != "x%{version}%{?prever:-%{prever}}"; then : Error: Upstream extension version is ${extver}, expecting %{version}%{?prever:-%{prever}}. exit 1 fi cd .. mkdir NTS %if %{with_zts} mkdir ZTS %endif # Create configuration file cat > %{ini_name} << 'EOF' ; Enable %{pecl_name} extension module extension=%{pecl_name}.so EOF %build %{?dtsenable} cd %{sources} %{__phpize} [ -f Makefile.global ] && GLOBAL=Makefile.global || GLOBAL=build/Makefile.global sed -e 's/INSTALL_ROOT/DESTDIR/' -i $GLOBAL cd ../NTS %configure \ --with-libdir=%{_lib} \ --with-php-config=%{__phpconfig} %make_build %if %{with_zts} cd ../ZTS %configure \ --with-libdir=%{_lib} \ --with-php-config=%{__ztsphpconfig} %make_build %endif %install %{?dtsenable} %make_install -C NTS # install config file install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} %if %{with_zts} %make_install -C ZTS install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} %endif %check cd %{sources} : Minimal load test for NTS extension %{__php} --no-php-ini \ --define extension=../NTS/modules/%{pecl_name}.so \ --modules | grep '^%{pecl_name}$' %if %{with tests} # erratic results rm tests/065.phpt : Upstream test suite for NTS extension TEST_PHP_EXECUTABLE=%{__php} \ TEST_PHP_ARGS="-n -d fatal_error_backtraces=0 -d extension=$PWD/../NTS/modules/%{pecl_name}.so" \ REPORT_EXIT_STATUS=1 \ %{__php} -n run-tests-rar.php -q --show-diff %endif %if %{with_zts} : Minimal load test for ZTS extension %{__ztsphp} --no-php-ini \ --define extension=../ZTS/modules/%{pecl_name}.so \ --modules | grep '^%{pecl_name}$' %endif %files %license %{sources}/LICENSE %license %{sources}/unrar/LICENSE.txt %doc %{sources}/*.md %config(noreplace) %{php_inidir}/%{ini_name} %{php_extdir}/%{pecl_name}.so %if %{with_zts} %config(noreplace) %{php_ztsinidir}/%{ini_name} %{php_ztsextdir}/%{pecl_name}.so %endif %changelog * Mon Mar 9 2026 Remi Collet - 4.3.0-1 - update to 4.3.0 - add pie virtual provides - drop pear/pecl dependency - sources from github * Thu Jul 17 2025 Remi Collet - 4.2.0-7 - fix build with PHP 8.5.0alpha2 using patch from https://github.com/cataphract/php-rar/pull/18 * Thu Jul 10 2025 Remi Collet - 4.2.0-6 - re-license spec file to CECILL-2.1 * Mon Nov 25 2024 Remi Collet - 4.2.0-5 - spec cleanup * Mon Sep 4 2023 Remi Collet - 4.2.0-4 - add patch for PHP 8.3 from ammended https://github.com/cataphract/php-rar/pull/18 - build out of sources tree * Thu Sep 15 2022 Remi Collet - 4.2.0-3 - add patch for PHP 8.2 from https://github.com/cataphract/php-rar/pull/18 * Fri Sep 10 2021 Remi Collet - 4.2.0-2 - add upstream patch for PHP 8.1 * Mon Dec 7 2020 Remi Collet - 4.2.0-1 - update to 4.2.0 * Mon Oct 12 2020 Remi Collet - 4.1.0-1 - update to 4.1.0 * Tue Sep 03 2019 Remi Collet - 4.0.0-6 - rebuild for 7.4.0RC1 * Tue Jul 23 2019 Remi Collet - 4.0.0-5 - rebuild for 7.4.0beta1 * Thu Aug 16 2018 Remi Collet - 4.0.0-4 - rebuild for 7.3.0beta2 new ABI - refresh patch for PHP 7.3 * Wed Jul 18 2018 Remi Collet - 4.0.0-3 - rebuild for 7.3.0alpha4 new ABI * Tue Jun 26 2018 Remi Collet - 4.0.0-2 - add patch for PHP 7.3 from https://github.com/cataphract/php-rar/pull/4 * Tue Aug 1 2017 Remi Collet - 4.0.0-1 - Update to 4.0.0 * Tue Mar 8 2016 Remi Collet - 3.0.2-4 - adapt for F24 - drop runtime dependency on pear, new scriptlets - fix license management * Wed Dec 24 2014 Remi Collet - 3.0.2-3.1 - Fedora 21 SCL mass rebuild * Mon Aug 25 2014 Remi Collet - 3.0.2-3 - allow SCL build * Wed Apr 16 2014 Remi Collet - 3.0.2-2 - add numerical prefix to extension configuration file (php 5.6) * Mon Oct 14 2013 Remi Collet - 3.0.2-1 - initial package, version 3.0.2 (stable) - bundled unrar to version 4.2.4 - doc in pecl doc_dir