File: qatengine-oot.spec

package info (click to toggle)
qatengine 2.0.0-4
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 5,256 kB
  • sloc: ansic: 88,285; sh: 475; makefile: 249
file content (184 lines) | stat: -rw-r--r-- 6,887 bytes parent folder | download | duplicates (3)
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