1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184
|
%undefine __cmake_in_source_build
%undefine _disable_source_fetch
%global _lto_cflags %{nil}
%global debug_package %{nil}
# Dependent Library Versions
%global major 2
%global minor 0
%global rev 0
%global ipsec intel-ipsec-mb
%global ipsecver %{major}.%{minor}
%global ipsecfull %{ipsec}-%{ipsecver}
%global fullversion %{major}.%{minor}.%{rev}
%global ippcp_major 12
%global ippcp_minor 2
%global ippcp cryptography-primitives
%global ippcpver 1.2.0
%global ippcpfull %{ippcp}-%{ippcpver}
%global ippcpfullversion %{ippcp_major}.%{ippcp_minor}
%global openssl openssl-3.0.16
%global qatdriver QAT20.L.1.2.30-00090
%global openssl_source %{_builddir}/%{openssl}
%global openssl_install %{buildroot}/%{_prefix}/local/ssl
Name: QAT_Engine
Version: 2.0.0
Release: 1%{?dist}
Summary: Intel QuickAssist Technology(QAT) OpenSSL Engine
License: BSD-3-Clause AND OpenSSL
Source0: https://github.com/intel/QAT_Engine/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source1: https://github.com/openssl/openssl/releases/download/%{openssl}/%{openssl}.tar.gz#/%{openssl}.tar.gz
Source2: https://downloadmirror.intel.com/852759/%{qatdriver}.tar.gz#/%{qatdriver}.tar.gz
%if !0%{?suse_version}
Source3: https://github.com/intel/ipp-crypto/archive/refs/tags/v%{ippcpver}.tar.gz#/%{ippcp}-%{ippcpver}.tar.gz
Source4: https://github.com/intel/intel-ipsec-mb/archive/refs/tags/v%{ipsecver}.tar.gz#/%{ipsecfull}.tar.gz
%endif
%description
This package provides the Intel QuickAssist Technology OpenSSL Engine
(an OpenSSL Plug-In Engine) which provides cryptographic acceleration
for both hardware and optimized software using Intel QuickAssist Technology
enabled Intel platforms.
%prep
%setup -b 0
%setup -b 1
%if !0%{?suse_version}
%setup -b 3
%setup -b 4
%endif
# Setup Source2 driver package manually
mkdir -p %{_builddir}/%{qatdriver}
tar -zxvf %{_sourcedir}/%{qatdriver}.tar.gz -C %{_builddir}/%{qatdriver}
cp -rf %{_builddir}/%{name}-%{version}/update_config.sh %{_builddir}
%build
cd %{_builddir}/%{openssl}
./config --prefix=%{_builddir}/openssl_install
%make_build
make install
mkdir -p %{buildroot}/%{_prefix}/local/ssl/lib64
mkdir -p %{buildroot}/%{_prefix}/local/ssl/bin
mkdir -p %{buildroot}/%{_prefix}/local/ssl/include
mkdir -p %{buildroot}/%{_prefix}/local/lib
mkdir -p %{buildroot}/%{_prefix}/lib
cp -rf %{_builddir}/openssl_install/lib64/libcrypto.so.3 %{buildroot}/%{_prefix}/local/ssl/lib64
cp -rf %{_builddir}/openssl_install/lib64/libssl.so.3 %{buildroot}/%{_prefix}/local/ssl/lib64
cp -rf %{_builddir}/openssl_install/bin %{buildroot}/%{_prefix}/local/ssl/
cp -rf %{_builddir}/openssl_install/include %{buildroot}/%{_prefix}/local/ssl/
cd %{buildroot}/%{_prefix}/local/ssl/lib64
ln -sf libcrypto.so.3 libcrypto.so
ln -sf libssl.so.3 libssl.so
cd %{_builddir}/%{qatdriver}
unset ICP_ROOT
unset ICP_BUILD_OUTPUT
./configure
make uninstall
make clean
make install
%if !0%{?suse_version}
cd %{_builddir}/%{ippcpfull}/sources/ippcp/crypto_mb
cmake . -B"build" -DOPENSSL_INCLUDE_DIR=%{openssl_install}/include -DOPENSSL_LIBRARIES=%{openssl_install} -DOPENSSL_ROOT_DIR=%{openssl_source}
cd build
%make_build
install -d %{buildroot}/%{_includedir}/crypto_mb
cp -rf %{_builddir}/%{ippcpfull}/sources/ippcp/crypto_mb/include/crypto_mb/*.h /%{buildroot}/%{_includedir}/crypto_mb/
install -d %{buildroot}/%{_libdir}
cp %{_builddir}/%{ippcpfull}/sources/ippcp/crypto_mb/build/bin/libcrypto_mb.so.%{ippcpfullversion} %{buildroot}/%{_libdir}
cd %{buildroot}/%{_libdir}
ln -sf libcrypto_mb.so.%{ippcpfullversion} libcrypto_mb.so.%{ippcp_major}
ln -sf libcrypto_mb.so.%{ippcpfullversion} libcrypto_mb.so
cp -rf %{buildroot}/%{_libdir}/libcrypto_mb.so.%{ippcpfullversion} %{buildroot}/%{_prefix}/local/lib
cp -rf %{buildroot}/%{_libdir}/libcrypto_mb.so.%{ippcp_major} %{buildroot}/%{_prefix}/local/lib
cp -rf %{buildroot}/%{_libdir} libcrypto_mb.so %{buildroot}/%{_prefix}/local/lib
cd %{_builddir}/%{ipsecfull}
cd lib
%make_build
install -d %{buildroot}/%{_includedir}
install -m 0644 %{_builddir}/%{ipsecfull}/lib/intel-ipsec-mb.h %{buildroot}/%{_includedir}
cp %{buildroot}/%{_includedir}/intel-ipsec-mb.h /usr/include/
install -s -m 0755 %{_builddir}/%{ipsecfull}/lib/libIPSec_MB.so.%{fullversion} %{buildroot}/%{_libdir}
cp -rf %{_builddir}/%{ipsecfull}/lib/libIPSec_MB.so.%{fullversion} %{buildroot}/%{_prefix}/lib
cp -rf %{_builddir}/%{ipsecfull}/lib/libIPSec_MB.so %{buildroot}/%{_prefix}/lib
cp -rf %{_builddir}/%{ipsecfull}/lib/libIPSec_MB.so.%{major} %{buildroot}/%{_prefix}/lib
cd %{buildroot}/%{_libdir}
ln -sf libIPSec_MB.so.%{fullversion} libIPSec_MB.so.%{major}
ln -sf libIPSec_MB.so.%{fullversion} libIPSec_MB.so
%endif
cd %{_builddir}/%{name}-%{version}
autoreconf -ivf
%if !0%{?suse_version}
# Enable QAT_HW & QAT_SW Co-existence acceleration
./configure --with-openssl_install_dir=%{openssl_install} --with-qat_hw_dir=%{_builddir}/%{qatdriver} --enable-qat_sw --with-qat_sw_crypto_mb_install_dir=%{buildroot}/%{_prefix}/local --with-qat_sw_ipsec_mb_install_dir=%{buildroot}/%{_prefix}
%else
# Enable QAT_HW acceleration for SUSE
./configure --with-openssl_install_dir=%{openssl_install} --with-qat_hw_dir=%{_builddir}/%{qatdriver}
%endif
%make_build
install -d %{buildroot}/%{_prefix}/local/ssl/lib64/engines-3
cp -rf %{_builddir}/%{name}-%{version}/.libs/qatengine.so %{buildroot}/%{_prefix}/local/ssl/lib64/engines-3
install -d %{buildroot}/%{_libdir}/build
cp -rf %{_builddir}/%{qatdriver}/build/libusdm_drv_s.so %{buildroot}/%{_libdir}
cp -rf %{_builddir}/%{qatdriver}/build/libqat_s.so %{buildroot}/%{_libdir}
cp -rf %{_builddir}/%{qatdriver}/build %{buildroot}/%{_libdir}
cp %{_builddir}/%{name}-%{version}/update_config.sh %{buildroot}/%{_libdir}
%post
echo "RPM is getting installed"
if (lspci | grep Co- >/dev/null )
then
./%{_libdir}/update_config.sh multi_process
fi
%clean
rm -rf %{buildroot}
%files
%exclude %{_prefix}/local/lib/lib64
%{_prefix}/local/ssl/lib64/engines-3/qatengine.so
%{_prefix}/local/ssl/lib64
%{_prefix}/local/ssl/bin
%{_prefix}/local/ssl/include
%{_libdir}/libqat_s.so
%{_libdir}/libusdm_drv_s.so
%{_libdir}/build
%{_libdir}/update_config.sh
%license LICENSE*
%doc README.md docs*
%if !0%{?suse_version}
%{_libdir}/libcrypto_mb.so.%{ippcpfullversion}
%{_libdir}/libcrypto_mb.so.%{ippcp_major}
%{_libdir}/libcrypto_mb.so
%{_libdir}/libIPSec_MB.so.%{fullversion}
%{_libdir}/libIPSec_MB.so.%{major}
%{_libdir}/libIPSec_MB.so
%{_prefix}/lib/libIPSec_MB.so.%{fullversion}
%{_prefix}/lib/libIPSec_MB.so.%{major}
%{_prefix}/lib/libIPSec_MB.so
%{_prefix}/local/lib/libcrypto_mb.so.%{ippcpfullversion}
%{_prefix}/local/lib/libcrypto_mb.so.%{ippcp_major}
%{_prefix}/local/lib/libcrypto_mb.so
%{_includedir}/crypto_mb
%{_includedir}/intel-ipsec-mb.h
%endif
|