# remirepo spec file for php-solidworx-aspect # # SPDX-FileCopyrightText: Copyright 2025 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-solidworx-aspect} %bcond_without tests # Extension %global ext_name aspect %global ini_name 40-%{ext_name}.ini %global upstream_version 0.1.1 #global upstream_prever RC1 # PIE / packagist %global pie_vend solidworx %global pie_proj aspect # Github forge %global gh_vend SolidWorx %global gh_proj aspect %global forgeurl https://github.com/%{gh_vend}/%{gh_proj} #global commit b3ae87353da524f33374ee0418ad48f704bb6af1 %global tag %{upstream_version}%{?upstream_prever} Summary: PHP Aspect Extension Name: %{?scl_prefix}php-%{pie_vend}-%{pie_proj} Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}} %forgemeta Release: 1%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')} License: MIT URL: %{forgeurl} Source0: %{forgesource} BuildRequires: make BuildRequires: gcc BuildRequires: %{?scl_prefix}php-devel >= 8.0 Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} Requires: %{?scl_prefix}php(api) = %{php_core_api} Provides: %{?scl_prefix}php-%{ext_name} = %{version} Provides: %{?scl_prefix}php-%{ext_name}%{?_isa} = %{version} Provides: %{?scl_prefix}php-pie(%{pie_vend}/%{pie_proj}) = %{version} %description Aspect is a PHP extension that provides a collection of utilities designed to enhance your development workflow. By introducing advanced features like attribute-based memoization, Aspect allows developers to write more efficient, clean, and maintainable code without the overhead of implementing complex patterns manually. 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 %forgesetup # see https://github.com/SolidWorx/aspect/pull/3 sed -e '/PHP_ASPECT_VERSION/s/0.1.0/%{upstream_version}%{?upstream_prever}/' -i php_aspect.h : Sanity check, really often broken extver=$(sed -n '/# define PHP_ASPECT_VERSION/{s/.* "//;s/".*$//;p}' php_aspect.h) if test "x${extver}" != "x%{upstream_version}%{?upstream_prever}"; then : Error: Upstream extension version is ${extver}, expecting %{version}. exit 1 fi : Create configuration file cat << 'EOF' | tee %{ini_name} ; Enable the %{summary} extension=%{ext_name}.so EOF %build %{__phpize} sed -e 's/INSTALL_ROOT/DESTDIR/' -i build/Makefile.global %configure \ --enable-aspect \ --with-libdir=%{_lib} \ --with-php-config=%{__phpconfig} %make_build %install %make_install # install config file install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} %check : Minimal load test for the extension %{__php} --no-php-ini \ --define extension=%{buildroot}/%{php_extdir}/%{ext_name}.so \ --modules | grep '^%{ext_name}$' %if %{with tests} : Upstream test suite for the extension TEST_PHP_ARGS="-n -d extension=%{buildroot}/%{php_extdir}/%{ext_name}.so" \ %{__php} -n run-tests.php -q --show-diff %{?_smp_mflags} %endif %files %license LICENSE %doc composer.json %doc *.md %config(noreplace) %{php_inidir}/%{ini_name} %{php_extdir}/%{ext_name}.so %changelog * Tue Jan 14 2025 Remi Collet - 0.1.1-1 - update to 0.1.1 - drop patch merged upstream - open https://github.com/SolidWorx/aspect/pull/3 fix version * Tue Jan 14 2025 Remi Collet - 0.1.0-2 - fix build with PHP 8.0 using patch from https://github.com/SolidWorx/aspect/pull/2 * Fri Jan 10 2025 Remi Collet - 0.1.0-1 - initial package - open https://github.com/SolidWorx/aspect/issues/1 PHP 8.0 build is broken