# remirepo spec file for php-sqlsrv # # Copyright (c) 2016-2019 Remi Collet # License: CC-BY-SA # 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 %{?scl: %scl_package php-sqlsrv} %global gh_commit 4ccffbbe077e87288bf00cc6327142579da46775 %global gh_short %(c=%{gh_commit}; echo ${c:0:7}) %global gh_owner Microsoft %global gh_project msphpsql %global from_pecl 1 %global extname sqlsrv %global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} # After 20-pdo.ini %global ininame 40-%{extname}.ini %global msodbcsqlver 17.4 Name: %{?scl_prefix}php-sqlsrv Summary: Microsoft Drivers for PHP for SQL Server %global tarversion 5.7.1preview Version: 5.7.1~preview Release: 1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} License: MIT URL: https://github.com/Microsoft/msphpsql %if %{from_pecl} Source0: http://pecl.php.net/get/%{extname}-%{tarversion}.tgz Source1: http://pecl.php.net/get/pdo_%{extname}-%{tarversion}.tgz %else Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}-%{gh_short}.tar.gz %endif BuildRequires: %{?dtsprefix}gcc BuildRequires: %{?dtsprefix}gcc-c++ BuildRequires: %{?scl_prefix}php-devel > 7.2 BuildRequires: %{?scl_prefix}php-pdo BuildRequires: %{?scl_prefix}php-pear BuildRequires: msodbcsql17 >= %{msodbcsqlver} BuildRequires: unixODBC-devel >= 2.3.1 Requires: msodbcsql17%{?_isa} >= %{msodbcsqlver} # msodbcsql is now 13.x but have be 17.0 sometime Obsoletes: msodbcsql > 17 # ABI check Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} Requires: %{?scl_prefix}php(api) = %{php_core_api} Requires: %{?scl_prefix}php(pdo-abi) = %{php_pdo_api} Requires: %{?scl_prefix}php-pdo%{?_isa} %{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}} Provides: %{?scl_prefix}php-pdo_%{extname} = %{version} Provides: %{?scl_prefix}php-pdo_%{extname}%{_isa} = %{version} # Also available as pecl packages Provides: %{?scl_prefix}php-pecl(%{extname}) = %{version} Provides: %{?scl_prefix}php-pecl(%{extname})%{_isa} = %{version} Provides: %{?scl_prefix}php-pecl(pdo_%{extname}) = %{version} Provides: %{?scl_prefix}php-pecl(pdo_%{extname})%{_isa} = %{version} %if "%{?vendor}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel} %if "%{php_version}" > "7.1" Obsoletes: php71u-sqlsrv <= %{version} Obsoletes: php71w-sqlsrv <= %{version} %endif %if "%{php_version}" > "7.2" Obsoletes: php72u-sqlsrv <= %{version} Obsoletes: php72w-sqlsrv <= %{version} %endif %if "%{php_version}" > "7.3" Obsoletes: php73-sqlsrv <= %{version} Obsoletes: php73w-sqlsrv <= %{version} %endif %if "%{php_version}" > "7.4" Obsoletes: php74-sqlsrv <= %{version} Obsoletes: php74w-sqlsrv <= %{version} %endif %endif %if 0%{?fedora} < 20 && 0%{?rhel} < 7 # Filter private shared object %{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} %{?filter_setup} %endif %description The Microsoft Drivers for PHP for SQL Server are PHP extensions that allow for the reading and writing of SQL Server data from within PHP scripts. The SQLSRV extension provides a procedural interface while the PDO_SQLSRV extension implements PDO for accessing data in all editions of SQL Server 2008 R2 and later (including Azure SQL DB). These drivers rely on the Microsoft ODBC Driver for SQL Server to handle the low-level communication with SQL Server. You can download the Microsoft ODBC Driver from https://docs.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server Package built using msodbcsql17 version %{msodbcsqlver}. Package built for PHP %(%{__php} -n -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{?scl_vendor}%{!?scl_vendor:rh})}. %prep %if %{from_pecl} %setup -qcT mkdir NTS tar xf %{SOURCE0} mv %{extname}-%{tarversion}/LICENSE . mv %{extname}-%{tarversion} NTS/%{extname} mv package.xml NTS/%{extname} tar xf %{SOURCE1} mv pdo_%{extname}-%{tarversion} NTS/pdo_%{extname} mv package.xml NTS/pdo_%{extname} %else %setup -qc mv %{gh_project}-%{gh_commit}/source NTS mv %{gh_project}-%{gh_commit}/LICENSE . %endif cd NTS cd %{extname} : no patch cd ../pdo_%{extname} : no patch cd .. # Sanity check, really often broken extmaj=$(sed -n '/#define SQLVERSION_MAJOR/{s/.*MAJOR //;s/\r//;p}' sqlsrv/shared/version.h) extmin=$(sed -n '/#define SQLVERSION_MINOR/{s/.*MINOR //;s/\r//;p}' sqlsrv/shared/version.h) extrel=$(sed -n '/#define SQLVERSION_PATCH/{s/.*PATCH //;s/\r//;p}' sqlsrv/shared/version.h) extbld=$(sed -n '/#define SQLVERSION_BUILD/{s/.*BUILD //;s/\r//;p}' sqlsrv/shared/version.h) extver=${extmaj}.${extmin}.${extrel} rpmver=%{version} if test "x${extver}" != "x${rpmver%%~*}"; then : Error: Upstream extension version is ${extver}, expecting ${rpmver%%~*}. exit 1 fi cd .. cat << 'EOF' | tee %{ininame} ; Enable '%{summary}' extension module extension = %{extname}.so extension = pdo_%{extname}.so ; Configuration ;sqlsrv.WarningsReturnAsErrors = 1 ;sqlsrv.LogSeverity = 0 ;sqlsrv.LogSubsystems = 0 ;sqlsrv.ClientBufferMaxKBSize = 10240 ;pdo_sqlsrv.log_severity = 0 ;pdo_sqlsrv.client_buffer_max_kb_size = 10240 EOF %if %{with_zts} # duplicate for ZTS build cp -pr NTS ZTS %endif %build %{?dtsenable} : =================== sqlsrv NTS =================== cd NTS/%{extname} %{_bindir}/phpize %configure \ --with-php-config=%{_bindir}/php-config \ --enable-sqlsrv make %{?_smp_mflags} : =================== pdo_sqlsrv NTS =================== cd ../../NTS/pdo_%{extname} %{_bindir}/phpize %configure \ --with-php-config=%{_bindir}/php-config \ --with-pdo_sqlsrv make %{?_smp_mflags} %if %{with_zts} : =================== sqlsrv ZTS =================== cd ../../ZTS/%{extname} %{_bindir}/zts-phpize %configure \ --with-php-config=%{_bindir}/zts-php-config \ --enable-sqlsrv make %{?_smp_mflags} : =================== pdo_sqlsrv ZTS =================== cd ../../ZTS/pdo_%{extname} %{_bindir}/zts-phpize %configure \ --with-php-config=%{_bindir}/zts-php-config \ --with-pdo_sqlsrv make %{?_smp_mflags} %endif %install %{?dtsenable} install -Dpm 644 NTS/%{extname}/package.xml %{buildroot}%{pecl_xmldir}/php-pecl-%{extname}.xml install -Dpm 644 NTS/pdo_%{extname}/package.xml %{buildroot}%{pecl_xmldir}/php-pecl-pdo-%{extname}.xml make -C NTS/%{extname} install INSTALL_ROOT=%{buildroot} make -C NTS/pdo_%{extname} install INSTALL_ROOT=%{buildroot} install -D -m 644 %{ininame} %{buildroot}%{php_inidir}/%{ininame} %if %{with_zts} make -C ZTS/%{extname} install INSTALL_ROOT=%{buildroot} make -C ZTS/pdo_%{extname} install INSTALL_ROOT=%{buildroot} install -D -m 644 %{ininame} %{buildroot}%{php_ztsinidir}/%{ininame} %endif %check # simple module load test %{__php} --no-php-ini \ --define extension=%{buildroot}%{php_extdir}/%{extname}.so \ --modules | grep %{extname} %{__php} --no-php-ini \ --define extension=pdo.so \ --define extension=%{buildroot}%{php_extdir}/pdo_%{extname}.so \ --modules | grep %{extname} %if %{with_zts} %{__ztsphp} --no-php-ini \ --define extension=%{buildroot}%{php_ztsextdir}/%{extname}.so \ --modules | grep %{extname} %{__ztsphp} --no-php-ini \ --define extension=pdo.so \ --define extension=%{buildroot}%{php_ztsextdir}/pdo_%{extname}.so \ --modules | grep %{extname} %endif %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}/php-pecl-%{extname}.xml >/dev/null || : %{pecl_install} %{pecl_xmldir}/php-pecl-pdo-%{extname}.xml >/dev/null || : fi # posttrans as pear can be installed after us %posttrans if [ -x %{__pecl} ] ; then %{pecl_install} %{pecl_xmldir}/php-pecl-%{extname}.xml >/dev/null || : %{pecl_install} %{pecl_xmldir}/php-pecl-pdo-%{extname}.xml >/dev/null || : fi %postun if [ $1 -eq 0 -a -x %{__pecl} ] ; then %{pecl_uninstall} %{extname} >/dev/null || : %{pecl_uninstall} pdo_%{extname} >/dev/null || : fi %endif %files %{!?_licensedir:%global license %%doc} %license LICENSE %{pecl_xmldir}/php-pecl-%{extname}.xml %{pecl_xmldir}/php-pecl-pdo-%{extname}.xml %config(noreplace) %{php_inidir}/%{ininame} %{php_extdir}/%{extname}.so %{php_extdir}/pdo_%{extname}.so %if %{with_zts} %config(noreplace) %{php_ztsinidir}/%{ininame} %{php_ztsextdir}/%{extname}.so %{php_ztsextdir}/pdo_%{extname}.so %endif %changelog * Wed Dec 4 2019 Remi Collet - 5.7.1~preview-1 - update to 5.7.1preview - raise dependency on PHP 7.2 * Fri Sep 6 2019 Remi Collet - 5.7.0~preview-1 - update to 5.7.0preview * Tue Sep 03 2019 Remi Collet - 5.6.1-5 - rebuild for 7.4.0RC1 * Wed Jul 24 2019 Remi Collet - 5.6.1-4 - add patch for 7.4.0beta1 from https://github.com/microsoft/msphpsql/pull/1013 * Fri Jun 14 2019 Remi Collet - 5.6.1-3 - add workaround for 7.4.0alpha1 * Wed Apr 10 2019 Remi Collet - 5.6.1-2 - switch from msodbcsql to msodbcsql17 * Wed Mar 20 2019 Remi Collet - 5.6.1-1 - update to 5.6.1 (stable) * Fri Feb 22 2019 Remi Collet - 5.6.0-1 - update to 5.6.0 (stable) * Mon Dec 10 2018 Remi Collet - 5.5.0~preview-1 - update to 5.5.0.preview (devel) * Tue Sep 25 2018 Remi Collet - 5.4.0~preview-1 - update to 5.4.0.preview (devel) - raise dependency on PHP 7.1 * Sat Jul 21 2018 Remi Collet - 5.3.0-1 - update to 5.3.0 (stable) * Wed Jul 4 2018 Remi Collet - 5.2.1~preview-2 - add fix for PHP 7.3 from https://github.com/Microsoft/msphpsql/pull/810 * Thu May 31 2018 Remi Collet - 5.2.1~preview-1 - update to 5.2.1preview (devel) * Mon Mar 26 2018 Remi Collet - 5.2.0-1 - update to 5.2.0 (stable) * Fri Dec 22 2017 Remi Collet - 5.2.0~RC1-1 - update to 5.2.0RC1 (devel) * Thu Dec 21 2017 Remi Collet - 5.2.0~RC-1 - update to 5.2.0RC (devel) * Thu Nov 23 2017 Remi Collet - 5.1.2~preview-1 - update to 5.1.2preview (devel) * Sat Oct 28 2017 Remi Collet - 5.1.1~preview-1 - update to 5.1.1preview (devel) * Thu Sep 21 2017 Remi Collet - 5.1.0~preview-1 - update to 5.1.0preview (devel) * Tue Aug 1 2017 Remi Collet - 5.0.0~preview-1 - update to 5.0.0preview (devel) * Tue Jul 18 2017 Remi Collet - 4.3.0-2 - rebuild for PHP 7.2.0beta1 new API * Fri Jul 7 2017 Remi Collet - 4.3.0-1 - update to 4.3.0 (stable) * Thu Jun 22 2017 Remi Collet - 4.3.0~RC1-2 - rebuild using the msodbcsql package from Microsoft repository * Thu Jun 22 2017 Remi Collet - 4.3.0~RC1-1 - update to 4.3.0RC1 (devel) * Wed Jun 21 2017 Remi Collet - 4.2.0.0~preview-2 - rebuild for 7.2.0alpha2 * Sun May 21 2017 Remi Collet - 4.2.0.0~preview-1 - update to 4.2.0preview (devel) * Wed May 10 2017 Remi Collet - 4.1.9.0~preview-1 - update to 4.1.9preview (devel) * Tue Apr 11 2017 Remi Collet - 4.1.8.0~preview-1 - update to 4.1.8preview (devel) * Tue Mar 7 2017 Remi Collet - 4.1.7.0-0.1.preview - update to 4.1.7preview (devel) * Thu Feb 9 2017 Remi Collet - 4.1.6.1-1 - update to 4.1.6.1 (devel) * Sat Feb 4 2017 Remi Collet - 4.1.6-1 - update to 4.1.6 (devel) * Tue Dec 20 2016 Remi Collet - 4.0.8-1 - update to 4.0.8 (stable) * Thu Dec 1 2016 Remi Collet - 4.0.7-2 - rebuild with PHP 7.1.0 GA * Fri Nov 18 2016 Remi Collet - 4.0.7-1 - update to 4.0.7 (devel) * Sat Oct 22 2016 Remi Collet - 4.0.6-1 - update to 4.0.6 (devel) * Sat Oct 1 2016 Remi Collet - 4.0.5-1 - update to 4.0.5, sources from PECL - drop all patches merged upstream - open https://github.com/Microsoft/msphpsql/issues/164 * Tue Sep 20 2016 Remi Collet - 4.0.4-5 - use the splitted msodbcsql packages * Mon Sep 19 2016 Remi Collet - 4.0.4-4 - fix reported version - open https://github.com/Microsoft/msphpsql/pull/157 - buffer overflow * Fri Sep 16 2016 Remi Collet - 4.0.4-2 - build from sources - open https://github.com/Microsoft/msphpsql/pull/153 - build - open https://github.com/Microsoft/msphpsql/pull/154 - odbcver - open https://github.com/Microsoft/msphpsql/pull/155 - PHP 7.1 * Fri Sep 16 2016 Remi Collet - 4.0.4-1 - initial package