blob: d026bdee280dffb56f230f9f60cde4f20436fa44 (
plain)
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
|
# $Id$
# Maintainer: Martchus <martchus@gmx.net>
_pkg_arch=aarch64
_android_arch=arm64-v8a
_android_platform_arch=arch-arm64
_pkgname=openssl
_pkgver=3.4.0
pkgname=android-$_pkg_arch-$_pkgname
# use a pacman compatible version scheme
pkgver=${_pkgver/[a-z]/.${_pkgver//[0-9.]/}}
pkgrel=1
pkgdesc="The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (Android, $_pkg_arch)"
arch=('any')
url='https://www.openssl.org'
license=('Apache-2.0')
options=('!strip' '!buildflags' 'staticlibs' '!emptydirs')
depends=('android-sdk' 'android-ndk')
makedepends=('android-environment' 'android-sdk-build-tools')
conflicts=("android-$_pkgname-$_android_arch")
replaces=("android-$_pkgname-$_android_arch")
source=("https://github.com/openssl/openssl/releases/download/openssl-${pkgver}/openssl-${pkgver}.tar.gz"{,.asc})
sha256sums=('e15dda82fe2fe8139dc2ac21a36d4ca01d5313c75f99f46c4e8a27709b7294bf'
'SKIP')
validpgpkeys=('EFC0A467D613CB83C7ED6D30D894E2CE8B3D79F5'
'BA5473A2B0587B07FB27CF2D216094DFD0CB81EF')
build() {
cd "${srcdir}/${_pkgname}-${_pkgver}"
source android-env ${_pkg_arch}
export PATH="${ANDROID_TOOLCHAIN}/bin:${PATH}"
export LIBDIR=lib
./Configure \
--prefix="${ANDROID_PREFIX}" \
--openssldir="${ANDROID_PREFIX}" \
-U__ANDROID_API__ \
-D__ANDROID_API__="${ANDROID_MINIMUM_PLATFORM}" \
-Wl,--no-allow-shlib-undefined \
-Wl,--no-undefined \
no-stdio \
no-ui-console \
threads \
shared \
android-${_android_platform_arch##arch-}
# get rid of debug printing so the library doesn't depend on stdio (no-stdio and no-ui are not entirely sufficient)
sed -i -e 's/\#define TEST_ENG_OPENSSL_RC4_P_INIT//' crypto/engine/eng_openssl.c
# build only libraries
# note: Setting SHLIB_EXT in accordance with qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp to avoid loading
# system library.
make depend
make CALC_VERSIONS="SHLIB_COMPAT=; SHLIB_SOVER=" SHLIB_VERSION_NUMBER= SHLIB_EXT=.so build_libs
}
package() {
cd "$srcdir/$_pkgname-$_pkgver"
source android-env ${_pkg_arch}
export PATH="$ANDROID_TOOLCHAIN:$PATH"
export LIBDIR=lib
# install header files, libraries and license
for lib in libcrypto{.a,.so} libssl{.a,.so}; do
install -D -m0644 $lib "$pkgdir/${ANDROID_PREFIX_LIB}/$lib"
done
for pc in libcrypto.pc libssl.pc openssl.pc; do
install -D -m0644 $pc "$pkgdir/${ANDROID_PREFIX_LIB}/pkgconfig/$pc"
done
mkdir -p "$pkgdir/${ANDROID_PREFIX_INCLUDE}"
cp -r include/openssl "$pkgdir/${ANDROID_PREFIX_INCLUDE}"
# strip binaries
find "$pkgdir" -name 'lib*.so' -type f -exec "$ANDROID_STRIP" --strip-unneeded {} \;
find "$pkgdir" -name 'lib*.a' -type f -exec "$ANDROID_STRIP" -g {} \;
# create symlinks for library names expected by Qt 6
for lib_name in crypto ssl; do
ln -vrs "$pkgdir/${ANDROID_PREFIX_LIB}/lib${lib_name}.so" "$pkgdir/${ANDROID_PREFIX_LIB}/lib${lib_name}_3.so"
done
}
|