diff --git a/openssl.spec b/openssl.spec index 2bc755f..b258e16 100644 --- a/openssl.spec +++ b/openssl.spec @@ -5,6 +5,12 @@ %define devname %mklibname openssl -d %define staticname %mklibname openssl -s -d +# patchelf 0.9 is buggy so compat libraries are experimental for now +%bcond_without compat +%define major_compat 10 +%define libcrypto_compat %mklibname crypto %{major_compat} +%define libssl_compat %mklibname ssl %{major_compat} + %define conflict2 %mklibname openssl 0.9.8 # Number of threads to spawn when testing some threading fixes. @@ -15,7 +21,7 @@ Summary: Secure Sockets Layer communications libs & utils Name: openssl Version: 1.0.2m -Release: 1 +Release: 2 License: BSD-like Group: System/Libraries Url: https://www.openssl.org @@ -43,6 +49,11 @@ Patch302: openssl-1.0.2-enginesdir.patch Patch303: openssl-0.9.8a-no-rpath.patch Patch304: openssl-1.0.2-test-use-localhost.patch BuildRequires: bc +%if %{with compat} +# readelf is used to produce libcrypto.so.10 and libssl.so.10 +# needed for compatibility with Fedora/RHEL (Viber etc) +BuildRequires: patchelf >= 0.10-0.20170615.2 +%endif %{?_with_krb5:BuildRequires: krb5-devel} BuildRequires: sctp-devel BuildRequires: pkgconfig(zlib) @@ -169,6 +180,38 @@ cryptographic algorithms and protocols, including DES, RC4, RSA and SSL. #---------------------------------------------------------------------------- +%if %{with compat} +%package -n %{libcrypto_compat} +Summary: Secure Sockets Layer communications libs (Fedora compatibility only) +Group: System/Libraries + +%description -n %{libcrypto_compat} +The libraries files are needed for various cryptographic algorithms +and protocols, including DES, RC4, RSA and SSL. + +%files -n %{libcrypto_compat} +%doc FAQ LICENSE NEWS PROBLEMS README* +%{_libdir}/libcrypto.so.%{major_compat}* +%endif + +#---------------------------------------------------------------------------- + +%if %{with compat} +%package -n %{libssl_compat} +Summary: Secure Sockets Layer communications libs (Fedora compatibility only) +Group: System/Libraries + +%description -n %{libssl_compat} +The libraries files are needed for various cryptographic algorithms +and protocols, including DES, RC4, RSA and SSL. + +%files -n %{libssl_compat} +%doc FAQ LICENSE NEWS PROBLEMS README* +%{_libdir}/libssl.so.%{major_compat}* +%endif + +#---------------------------------------------------------------------------- + %prep %setup -q %patch0 -p1 -b .gost @@ -311,6 +354,14 @@ chmod 755 %{buildroot}%{_libdir}/openssl-%{major}/engines/*.so* chmod 755 %{buildroot}%{_libdir}/*.so* chmod 755 %{buildroot}%{_bindir}/* +%if %{with compat} +# RHEL/Fedora compatibility libraries +cp %{buildroot}%{_libdir}/libcrypto.so.%{major} %{buildroot}%{_libdir}/libcrypto.so.%{major_compat} +cp %{buildroot}%{_libdir}/libssl.so.%{major} %{buildroot}%{_libdir}/libssl.so.%{major_compat} +patchelf --set-soname libcrypto.so.%{major_compat} %{buildroot}%{_libdir}/libcrypto.so.%{major_compat} +patchelf --set-soname libssl.so.%{major_compat} %{buildroot}%{_libdir}/libssl.so.%{major_compat} +%endif + # nuke a mistake rm -f %{buildroot}%{_mandir}/man3/.3