# spec file for php-pecl-blenc # # Copyright (c) 2014-2017 Remi Collet # License: CC-BY-SA # http://creativecommons.org/licenses/by-sa/4.0/ # # Please, preserve the changelog entries # %{?scl: %scl_package php-pecl-blenc} ##### bundled lib bf_algo.c (blowfish.c, Paul Kocher) ##### %global pecl_name blenc %global with_zts 0%{?__ztsphp:1} %global prever b %if "%{php_version}" < "5.6" %global ini_name %{pecl_name}.ini %else %global ini_name 40-%{pecl_name}.ini %endif Summary: BLowfish ENCryption for PHP Scripts Name: %{?scl_prefix}php-pecl-%{pecl_name} Version: 1.1.4 Release: 0.4.%{prever}%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')} # blenc is PHP, bf_algo.c is LGPL License: PHP and LGPL Group: Development/Languages URL: http://pecl.php.net/package/blenc Source0: http://pecl.php.net/get/%{pecl_name}-%{version}%{?prever}.tgz # Fix for packaging Patch0: %{pecl_name}-rpm.patch # http://svn.php.net/viewvc?view=revision&revision=333439 Patch1: %{pecl_name}-svn.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: %{?scl_prefix}php-devel BuildRequires: %{?scl_prefix}php-pear 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} Provides: %{?scl_prefix}php-pecl-%{pecl_name} = %{version}-%{release} Provides: %{?scl_prefix}php-pecl-%{pecl_name}%{?_isa} = %{version}-%{release} %if "%{?vendor}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel} # Other third party repo stuff Obsoletes: php53-pecl-%{pecl_name} Obsoletes: php53u-pecl-%{pecl_name} Obsoletes: php54-pecl-%{pecl_name} Obsoletes: php54w-pecl-%{pecl_name} %if "%{php_version}" > "5.5" Obsoletes: php55u-pecl-%{pecl_name} Obsoletes: php55w-pecl-%{pecl_name} %endif %if "%{php_version}" > "5.6" Obsoletes: php56u-pecl-%{pecl_name} Obsoletes: php56w-pecl-%{pecl_name} %endif %endif %if 0%{?fedora} < 20 && 0%{?rhel} < 7 # Filter private shared %{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} %{?filter_setup} %endif %description BLENC is an extension that permit to protect PHP source scripts with Blowfish Encription. BLENC hooks into the Zend Engine, allowing for transparent execution of PHP scripts previously encoded with BLENC. It is not designed for complete security (it is still possible to disassemble the script into op codes using a package such as XDebug), however it does keep people out of your code and make reverse engineering difficult. %prep %setup -qc mv %{pecl_name}-%{version}%{?prever} NTS # Don't install/register tests sed -e 's/role="test"/role="src"/' \ %{?_licensedir:-e '/LICENSE/s/role="doc"/role="src"/' } \ -i package.xml cd NTS %patch0 -p1 -b .rpm %patch1 -p0 -b .rpm # Fix shebang for SCL sed -e 's:/usr/bin/php:%{__php}:' -i tools/blencode.php # http://svn.php.net/viewvc?view=revision&revision=333438 chmod -x bf_algo.? extver=$(sed -n '/#define PHP_BLENC_VERSION/{s/.* "//;s/".*$//;p}' php_blenc.h) if test "x${extver}" != "x%{version}%{?prever}"; then : Error: Upstream version is ${extver}, expecting %{version}%{?prever}. exit 1 fi cd .. cat << 'EOF' | tee %{ini_name} ; Enable BLowfish ENCryption extension module extension=%{pecl_name}.so ; It's the location where BLENC can find the file containing a list of ; available decryption keys. This file must be readable by webserver. ;blenc.key_file = "%{_sysconfdir}/blenckeys" EOF %if %{with_zts} # Duplicate source tree for NTS / ZTS build cp -pr NTS ZTS %endif %build cd NTS %{_bindir}/phpize %configure --with-php-config=%{_bindir}/php-config make %{?_smp_mflags} %if %{with_zts} cd ../ZTS %{_bindir}/zts-phpize %configure --with-php-config=%{_bindir}/zts-php-config make %{?_smp_mflags} %endif %install rm -rf %{buildroot} make -C NTS install INSTALL_ROOT=%{buildroot} # Install XML package description install -Dpm 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml # install config file install -Dpm644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} %if %{with_zts} make -C ZTS install INSTALL_ROOT=%{buildroot} install -Dpm644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} %endif # The command install -Dpm755 NTS/tools/blencode.php %{buildroot}%{_bindir}/blencode touch %{buildroot}%{_sysconfdir}/blenckeys # Documentation cd NTS for i in $(grep 'role="doc"' ../package.xml | sed -e 's/^.*name="//;s/".*$//') do install -Dpm 644 $i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i done %check : Simple module load test for NTS extension %{__php} --no-php-ini \ --define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \ --modules | grep %{pecl_name} : Minimal encrytion test cat <foo.php /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 %clean rm -rf %{buildroot} %files %defattr(-,root,root,-) %{?_licensedir:%license NTS/LICENSE} %doc %{pecl_docdir}/%{pecl_name} %{pecl_xmldir}/%{name}.xml %{_bindir}/blencode %ghost %config(noreplace) %{_sysconfdir}/blenckeys %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 Mar 8 2016 Remi Collet - 1.1.4-0.4.b - adapt for F24 - drop runtime dependency on pear, new scriptlets - fix license management - don't install/register tests * Wed Dec 24 2014 Remi Collet - 1.1.4-0.3.b - Fedora 21 SCL mass rebuild * Tue Aug 26 2014 Remi Collet - 1.1.4-0.2.b - improve SCL build * Mon Apr 28 2014 Remi Collet - 1.1.4-0.1.b - initial package, version 1.1.4b (beta)