blob: e23410d4d12727fbee229f4d62b4c2bd474f8875 [file] [log] [blame]
# Maintainer: Alexey Pavlov <Alexpux@gmail.com>
_realname=openssl
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
_ver=1.1.1k
# use a pacman compatible version scheme
pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}}
pkgrel=2
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32' 'clangarm64')
pkgdesc="The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (mingw-w64)"
depends=("${MINGW_PACKAGE_PREFIX}-ca-certificates" "${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-zlib")
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc")
options=('strip' '!buildflags' 'staticlibs')
license=('custom:BSD')
url="https://www.openssl.org"
noextract=(${_realname}-${_ver}.tar.gz)
source=(https://www.openssl.org/source/${_realname}-${_ver}.tar.gz{,.asc}
'openssl-1.1.1-relocation.patch'
'openssl-1.1.1-mingw-arm.patch')
sha256sums=('892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5'
'SKIP'
'798d1b4dec28429d6cf2081c5b5b23b4344590a9b812e8089842389dbd175b77'
'd41fad88631e7b8d2a56662f2166ea97ecbc6369f2ad3eac415182bc9ac9f308')
validpgpkeys=('8657ABB260F056B1E5190839D9C4D26D0E604491'
'7953AC1FBC3DC8B3B292393ED5E9E43F7DF9EE8C')
# Helper macros to help make tasks easier #
apply_patch_with_msg() {
for _patch in "$@"
do
msg2 "Applying $_patch"
patch -Nbp1 -i "${srcdir}/$_patch"
done
}
del_file_exists() {
for _fname in "$@"
do
if [ -f $_fname ]; then
rm -rf $_fname
fi
done
}
# =========================================== #
prepare() {
# Clean up old sources so re-patching doesn't fail.
[[ -d ${srcdir}/${_realname}-${_ver} ]] && rm -rf ${srcdir}/${_realname}-${_ver}
tar -xzvf ${_realname}-${_ver}.tar.gz -C ${srcdir} || true
cd ${srcdir}/${_realname}-${_ver}
apply_patch_with_msg \
openssl-1.1.1-relocation.patch \
openssl-1.1.1-mingw-arm.patch
}
build() {
rm -rf ${srcdir}/build-${CARCH}
# No support for out-of-source builds
mkdir -p ${srcdir}/build-${CARCH}
# cp -a ${srcdir}/${_realname}-${_ver}/* ${srcdir}/build-${CARCH}
# Use mingw cflags instead of hardcoded ones
sed -i -e '/^"mingw"/ s/-fomit-frame-pointer -O3 -Wall/-O2 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4/' \
${srcdir}/${_realname}-${_ver}/Configure
# ${srcdir}/build-${CARCH}/Configure
case "${CARCH}" in
i?86)
_mingw=mingw
;;
x86_64)
_mingw=mingw64
;;
armv7)
_mingw="mingwarm32 no-asm"
;;
aarch64)
_mingw="mingwarm64 no-asm"
;;
esac
cd "${srcdir}/build-${CARCH}"
export MSYS2_ARG_CONV_EXCL="--prefix="
${srcdir}/${_realname}-${_ver}/Configure \
--prefix=${MINGW_PREFIX} \
--openssldir=ssl \
${_mingw} \
shared \
zlib-dynamic \
enable-camellia \
enable-capieng \
enable-idea \
enable-mdc2 \
enable-rc5 \
enable-rfc3779 \
-D__MINGW_USE_VC2005_COMPAT \
-DOPENSSLBIN=\"\\\"${MINGW_PREFIX}/bin\\\"\"
make ZLIB_INCLUDE=-I"${MINGW_PREFIX}"/include depend all
}
check() {
cd "${srcdir}/build-${CARCH}"
make VERBOSE=1 test
}
package() {
cd "${srcdir}/build-${CARCH}"
mkdir -p "${pkgdir}${MINGW_PREFIX}"/bin
mkdir -p "${pkgdir}${MINGW_PREFIX}"/include/openssl
mkdir -p "${pkgdir}${MINGW_PREFIX}"/lib/engines-1_1
mkdir -p "${pkgdir}${MINGW_PREFIX}"/lib/pkgconfig
mkdir -p "${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}
make -j1 DESTDIR="${pkgdir}" MANDIR="${MINGW_PREFIX}/share/man" MANSUFFIX=ssl install
install -D -m644 "${srcdir}/${_realname}-${_ver}/LICENSE" \
"${pkgdir}${MINGW_PREFIX}"/share/licenses/${_realname}/LICENSE
chmod -R 777 "${pkgdir}${MINGW_PREFIX}"/bin
chmod -R 777 "${pkgdir}${MINGW_PREFIX}"/lib
chmod -R 777 "${pkgdir}${MINGW_PREFIX}"/lib/engines-1_1
install -m644 "${srcdir}/${_realname}-${_ver}/ms/applink.c" "${pkgdir}${MINGW_PREFIX}"/include/openssl/
rm -rf "${pkgdir}${MINGW_PREFIX}"/bin/c_rehash
rm -rf "${pkgdir}${MINGW_PREFIX}"/{ssl/misc,ssl/man}
}