# remirepo spec file for php-pecl-ssdeep # with SCL compatibility, from Fedora: # # Fedora spec file for php-pecl-ssdeep # # Copyright (c) 2014-2015 Remi Collet # License: CC-BY-SA # http://creativecommons.org/licenses/by-sa/4.0/ # # Please, preserve the changelog entries # %if 0%{?scl:1} %if "%{scl}" == "rh-php56" %global sub_prefix more-php56- %else %global sub_prefix %{scl_prefix} %endif %endif %{?scl: %scl_package php-pecl-ssdeep} %{!?scl: %global _root_prefix %{_prefix}} %{!?php_inidir: %global php_inidir %{_sysconfdir}/php.d} %{!?__pecl: %global __pecl %{_bindir}/pecl} %{!?__php: %global __php %{_bindir}/php} %global with_zts 0%{?__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 Summary: Wrapper for libfuzzy library Name: %{?sub_prefix}php-pecl-%{pecl_name} Version: 1.0.4 Release: 9%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} License: BSD Group: Development/Languages URL: http://pecl.php.net/package/%{pecl_name} Source0: http://pecl.php.net/get/%{pecl_name}-%{version}.tgz Patch0: %{pecl_name}-php7.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: %{?scl_prefix}php-devel > 5.2 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} %{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}} 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} %if "%{?vendor}" == "Remi Collet" && 0%{!?scl:1} # Other third party repo stuff Obsoletes: php53-pecl-%{pecl_name} <= %{version} Obsoletes: php53u-pecl-%{pecl_name} <= %{version} Obsoletes: php54-pecl-%{pecl_name} <= %{version} Obsoletes: php54w-pecl-%{pecl_name} <= %{version} %if "%{php_version}" > "5.5" Obsoletes: php55u-pecl-%{pecl_name} <= %{version} Obsoletes: php55w-pecl-%{pecl_name} <= %{version} %endif %if "%{php_version}" > "5.6" Obsoletes: php56u-pecl-%{pecl_name} <= %{version} Obsoletes: php56w-pecl-%{pecl_name} <= %{version} %endif %if "%{php_version}" > "7.0" Obsoletes: php70u-pecl-%{pecl_name} <= %{version} Obsoletes: php70w-pecl-%{pecl_name} <= %{version} %endif %endif %if 0%{?fedora} < 20 && 0%{?rhel} < 7 # Filter shared private %{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} %{?filter_setup} %endif %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 mv %{pecl_name}-%{version} NTS # Don't install/register tests sed -e 's/role="test"/role="src"/' -i package.xml pushd NTS %patch0 -p1 -b .php7 # 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 %if %{with_zts} # Duplicate source tree for NTS / ZTS build cp -pr NTS ZTS %endif # Create configuration file cat << 'EOF' | tee %{ini_name} ; Enable %{summary} extension module extension=%{pecl_name}.so EOF %build cd NTS %{_bindir}/phpize %configure \ --with-ssdeep=%{_root_prefix} \ --with-php-config=%{_bindir}/php-config \ --with-libdir=%{_lib} make %{?_smp_mflags} %if %{with_zts} cd ../ZTS %{_bindir}/zts-phpize %configure \ --with-ssdeep=%{_root_prefix} \ --with-php-config=%{_bindir}/zts-php-config \ --with-libdir=%{_lib} make %{?_smp_mflags} %endif %install rm -rf %{buildroot} 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 NTS/$i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i sed -e 's/\r//' -i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i done # 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 %check cd NTS : Minimal load test for NTS extension %{__php} --no-php-ini \ --define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \ --modules | grep %{pecl_name} : Upstream test suite for NTS extension TEST_PHP_EXECUTABLE=%{__php} \ TEST_PHP_ARGS="-n -d extension=$PWD/modules/%{pecl_name}.so" \ NO_INTERACTION=1 \ REPORT_EXIT_STATUS=1 \ %{__php} -n run-tests.php %if %{with_zts} cd ../ZTS : Minimal load test for ZTS extension %{__ztsphp} --no-php-ini \ --define extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \ --modules | grep %{pecl_name} : Upstream test suite for ZTS extension TEST_PHP_EXECUTABLE=%{_bindir}/zts-php \ TEST_PHP_ARGS="-n -d extension=$PWD/modules/%{pecl_name}.so" \ NO_INTERACTION=1 \ REPORT_EXIT_STATUS=1 \ %{_bindir}/zts-php -n run-tests.php %endif %clean rm -rf %{buildroot} %files %defattr(-,root,root,-) %{?_licensedir:%license NTS/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 * 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)