# remirepo spec file for php-pecl-ssdeep # with SCL compatibility, from Fedora: # # Fedora spec file for php-pecl-ssdeep # # Copyright (c) 2014-2023 Remi Collet # License: CC-BY-SA-4.0 # http://creativecommons.org/licenses/by-sa/4.0/ # # Please, preserve the changelog entries # # we don't want -z defs linker flag %undefine _strict_symbol_defs_build %if 0%{?scl:1} %scl_package php-pecl-ssdeep %else %global _root_prefix %{_prefix} %endif %bcond_without tests %global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} %global pecl_name ssdeep %if "%{php_version}" < "5.6" %global ini_name %{pecl_name}.ini %else %global ini_name 40-%{pecl_name}.ini %endif %global sources %{pecl_name}-%{version} %global _configure ../%{sources}/configure # For PHP < 5.6 and EPEL-9 %{!?__phpize: %global __phpize %{_bindir}/phpize} %{!?__ztsphpize: %global __ztsphpize %{_bindir}/zts-phpize} %{!?__phpconfig: %global __phpconfig %{_bindir}/php-config} %{!?__ztsphpconfig:%global __ztsphpconfig %{_bindir}/zts-php-config} Summary: Wrapper for libfuzzy library Name: %{?scl_prefix}php-pecl-%{pecl_name} Version: 1.1.0 Release: 13%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} License: BSD-2-Clause URL: https://pecl.php.net/package/%{pecl_name} Source0: https://pecl.php.net/get/%{pecl_name}-%{version}.tgz Patch0: https://patch-diff.githubusercontent.com/raw/php/pecl-text-ssdeep/pull/2.patch BuildRequires: make BuildRequires: %{?dtsprefix}gcc BuildRequires: %{?scl_prefix}php-devel BuildRequires: %{?scl_prefix}php-pear BuildRequires: ssdeep-devel > 2.5 Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} Requires: %{?scl_prefix}php(api) = %{php_core_api} Provides: %{?scl_prefix}php-%{pecl_name} = %{version} Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version} Provides: %{?scl_prefix}php-pecl(%{pecl_name}) = %{version} Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version} %description The ssdeep project page describes it as a library for "...computing context triggered piecewise hashes (CTPH). Also called fuzzy hashes, CTPH can match inputs that have homologies. Such inputs have sequences of identical bytes in the same order, although bytes in between these sequences may be different in both content and length". For an in depth paper explaining context triggered piecewise hashes please see http://dfrws.org/2006/proceedings/12-Kornblum.pdf This extensions wraps the ssdeep fuzzy hashing API created by Jesse Kornblum. Documentation: http://php.net/ssdeep 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 [ -f package2.xml ] && mv package2.xml package.xml # Don't install/register tests sed -e 's/role="test"/role="src"/' \ %{?_licensedir:-e '/LICENSE/s/role="doc"/role="src"/' } \ -i package.xml pushd %{sources} %patch -P0 -p1 -b .pr2 # Sanity check, really often broken extver=$(sed -n '/# *define PHP_SSDEEP_VERSION/{s/.* "//;s/".*$//;p}' php_ssdeep.h) if test "x${extver}" != "x%{version}%{?versuf}"; then : Error: Upstream extension version is ${extver}, expecting %{version}%{?versuf}. exit 1 fi popd mkdir NTS %if %{with_zts} mkdir ZTS %endif # Create configuration file cat << 'EOF' | tee %{ini_name} ; Enable %{summary} extension module extension=%{pecl_name}.so EOF %build %{?dtsenable} cd %{sources} %{__phpize} cd ../NTS %configure \ --with-ssdeep=%{_root_prefix} \ --with-php-config=%{__phpconfig} \ --with-libdir=%{_lib} make %{?_smp_mflags} %if %{with_zts} cd ../ZTS %configure \ --with-ssdeep=%{_root_prefix} \ --with-php-config=%{__ztsphpconfig} \ --with-libdir=%{_lib} make %{?_smp_mflags} %endif %install %{?dtsenable} make -C NTS install INSTALL_ROOT=%{buildroot} # install config file install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} # Install XML package description install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml %if %{with_zts} make -C ZTS install INSTALL_ROOT=%{buildroot} install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} %endif # Documentation for i in $(grep 'role="doc"' package.xml | sed -e 's/^.*name="//;s/".*$//') do install -Dpm 644 %{sources}/$i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i sed -e 's/\r//' -i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i done %if 0%{?fedora} < 24 && 0%{?rhel} < 8 # when pear installed alone, after us %triggerin -- %{?scl_prefix}php-pear if [ -x %{__pecl} ] ; then %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : fi # posttrans as pear can be installed after us %posttrans if [ -x %{__pecl} ] ; then %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : fi %postun if [ $1 -eq 0 -a -x %{__pecl} ] ; then %{pecl_uninstall} %{pecl_name} >/dev/null || : fi %endif %check cd %{sources} : Minimal load test for NTS extension %{__php} --no-php-ini \ --define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \ --modules | grep '^%{pecl_name}$' %if %{with tests} : Upstream test suite for NTS extension TEST_PHP_EXECUTABLE=%{__php} \ TEST_PHP_ARGS="-n -d extension=$PWD/../NTS/modules/%{pecl_name}.so" \ REPORT_EXIT_STATUS=1 \ %{__php} -n run-tests.php -q --show-diff %endif %if %{with_zts} : Minimal load test for ZTS extension %{__ztsphp} --no-php-ini \ --define extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \ --modules | grep '^%{pecl_name}$' %if %{with tests} : Upstream test suite for ZTS extension TEST_PHP_EXECUTABLE=%{__ztsphp} \ TEST_PHP_ARGS="-n -d extension=$PWD/../ZTS/modules/%{pecl_name}.so" \ REPORT_EXIT_STATUS=1 \ %{__ztsphp} -n run-tests.php -q --show-diff %endif %endif %files %{?_licensedir:%license %{sources}/LICENSE} %doc %{pecl_docdir}/%{pecl_name} %{pecl_xmldir}/%{name}.xml %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 * Wed Aug 30 2023 Remi Collet - 1.1.0-13 - rebuild for PHP 8.3.0RC1 * Thu Jul 20 2023 Remi Collet - 1.1.0-12 - build out of sources tree * Wed Sep 01 2021 Remi Collet - 1.1.0-11 - rebuild for 8.1.0RC1 * Fri Apr 30 2021 Remi Collet - 1.1.0-10 - F34 rebuild for https://github.com/remicollet/remirepo/issues/174 * Wed Sep 30 2020 Remi Collet - 1.1.0-7 - rebuild for PHP 8.0.0RC1 * Fri Sep 4 2020 Remi Collet - 1.1.0-6 - add patch for PHP 8 from https://github.com/php/pecl-text-ssdeep/pull/2 * Tue Sep 03 2019 Remi Collet - 1.1.0-5 - rebuild for 7.4.0RC1 * Thu Aug 16 2018 Remi Collet - 1.1.0-4 - rebuild for 7.3.0beta2 new ABI * Wed Jul 18 2018 Remi Collet - 1.1.0-3 - rebuild for 7.3.0alpha4 new ABI * Wed Jun 27 2018 Remi Collet - 1.1.0-2 - cleanup * Tue Feb 20 2018 Remi Collet - 1.1.0-1 - Update to 1.1.0 * Tue Jul 18 2017 Remi Collet - 1.0.4-13 - rebuild for PHP 7.2.0beta1 new API * Thu Dec 1 2016 Remi Collet - 1.0.4-12 - rebuild with PHP 7.1.0 GA * Wed Sep 14 2016 Remi Collet - 1.0.4-11 - rebuild for PHP 7.1 new API version * Sun Mar 6 2016 Remi Collet - 1.0.4-10 - adapt for F24 * Tue Oct 13 2015 Remi Collet - 1.0.4-9 - rebuild for PHP 7.0.0RC5 new API version * Fri Sep 18 2015 Remi Collet - 1.0.4-8 - F23 rebuild with rh_layout * Wed Jul 22 2015 Remi Collet - 1.0.4-7 - rebuild against php 7.0.0beta2 * Wed Jul 8 2015 Remi Collet - 1.0.4-6 - rebuild against php 7.0.0beta1 * Tue Jun 23 2015 Remi Collet - 1.0.4-5 - allow build against rh-php56 (as more-php56) * Mon Apr 6 2015 Remi Collet - 1.0.4-4 - add fix for PHP 7 - drop runtime dependency on pear, new scriptlets - don't install/register tests * Wed Dec 24 2014 Remi Collet - 1.0.4-3.1 - Fedora 21 SCL mass rebuild * Mon Aug 25 2014 Remi Collet - 1.0.4-3 - improve SCL build * Thu Apr 17 2014 Remi Collet - 1.0.4-2 - add numerical prefix to extension configuration file (php 5.6) * Wed Jan 22 2014 Remi Collet - 1.0.4-1 - Update to 1.0.4 (stable) - drop upstream patch * Wed Jan 22 2014 Remi Collet - 1.0.3-1 - initial package, version 1.0.3 (stable)