intel-device-plugins-for-ku.../demo/openssl-qat-engine/Dockerfile
Mikko Ylinen 02fb1209d0 demo: fix openssl-qat-engine build
ipp-crypto repository did not provide a tag with the necessary changes
included until recently so we were using the master branch.

Now the tag was added (and master broke our build) so we move to use
it.

Signed-off-by: Mikko Ylinen <mikko.ylinen@intel.com>
2020-09-02 09:20:31 +03:00

70 lines
3.0 KiB
Docker

ARG FINAL_BASE_IMAGE=clearlinux:base
FROM clearlinux:base as builder
ARG QAT_DRIVER_RELEASE="qat1.7.l.4.10.0-00014"
ARG QAT_ENGINE_VERSION="v0.5.46"
ARG IPSEC_MB_VERSION="v0.54"
ARG IPP_CRYPTO_VERSION="ippcp_2020u2"
RUN swupd bundle-add --skip-diskspace-check devpkg-systemd devpkg-openssl c-basic wget git && \
git clone -b $QAT_ENGINE_VERSION https://github.com/intel/QAT_Engine && \
git clone -b $IPP_CRYPTO_VERSION https://github.com/intel/ipp-crypto && \
git clone -b $IPSEC_MB_VERSION https://github.com/intel/intel-ipsec-mb && \
wget https://01.org/sites/default/files/downloads/$QAT_DRIVER_RELEASE.tar.gz && \
tar xf *.tar.gz
RUN sed -i -e 's/cmn_ko$//' -e 's/lac_kernel$//' quickassist/Makefile && \
KERNEL_SOURCE_ROOT=/tmp ./configure && \
make quickassist-all adf-ctl-all && \
install -m 755 build/libqat_s.so /usr/lib/ && \
install -m 755 build/libusdm_drv_s.so /usr/lib/ && \
install -m 755 build/adf_ctl /usr/bin/ && \
cd /ipp-crypto/sources/ippcp/crypto_mb && \
cmake . -B"../build" \
-DOPENSSL_INCLUDE_DIR=/usr/include/openssl \
-DOPENSSL_LIBRARIES=/usr/lib64 \
-DOPENSSL_ROOT_DIR=/usr/bin/openssl && \
cd ../build && \
make crypto_mb && make install && \
install -m 755 bin/vfy_ifma_cp_rsa_mb /usr/bin/ && \
install -m 755 bin/vfy_ifma_rsa_mb /usr/bin/ && \
cd /intel-ipsec-mb && \
make && make install LIB_INSTALL_DIR=/usr/lib64
RUN cd /QAT_Engine && \
./autogen.sh && \
./configure \
--enable-ipsec_offload \
--enable-multibuff_offload \
--with-openssl_install_dir=/usr/lib64 \
--with-multibuff_install_dir=/usr/local \
--enable-openssl_install_build_arch_path && \
sed -i -e 's:^\(const char \*engine_qat_id = \).*:\1"avx512";:' e_qat.c && \
make && make install && \
mv /usr/lib64/engines-1.1/qat.so /usr/lib64/engines-1.1/avx512.so && \
make clean && git restore e_qat.c && \
./configure \
--with-qat_dir=/ \
--disable-ipsec_offload \
--disable-multibuff_offload \
--with-openssl_install_dir=/usr/lib64 \
--with-qat_install_dir=/usr/lib \
--enable-openssl_install_build_arch_path && \
make && make install
FROM $FINAL_BASE_IMAGE
COPY --from=builder /usr/lib/libqat_s.so /usr/lib/
COPY --from=builder /usr/lib/libusdm_drv_s.so /usr/lib/
COPY --from=builder /usr/lib64/libIPSec_MB.so.0 /usr/lib64/
COPY --from=builder /usr/bin/adf_ctl /usr/bin
COPY --from=builder /usr/bin/vfy_ifma_cp_rsa_mb /usr/bin
COPY --from=builder /usr/bin/vfy_ifma_rsa_mb /usr/bin
COPY --from=builder /usr/lib64/engines-1.1/avx512.so /usr/lib64/engines-1.1/avx512.so
COPY --from=builder /usr/lib64/engines-1.1/qat.so /usr/lib64/engines-1.1/qat.so
COPY --from=builder /LICENSE.GPL /usr/share/package-licenses/libqat/LICENSE.GPL
COPY --from=builder /QAT_Engine/LICENSE /usr/share/package-licenses/QAT_Engine/LICENSE
COPY --from=builder /ipp-crypto/LICENSE /usr/share/package-licenses/ipp-crypto/LICENSE
COPY --from=builder /intel-ipsec-mb/LICENSE /usr/share/package-licenses/intel-ipsec-mb/LICENSE