2018-07-04 23:57:29 +02:00
|
|
|
# $Id$
|
|
|
|
# Maintainer: Martchus <martchus@gmx.net>
|
|
|
|
|
|
|
|
# export Android configuration
|
|
|
|
export ANDROID_MINIMUM_PLATFORM=21 # https://developer.android.com/about/dashboards/
|
|
|
|
export ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT:-/opt/android-ndk}
|
|
|
|
export ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT:-/opt/android-sdk}
|
2018-07-06 16:25:09 +02:00
|
|
|
export ANDROID_EABI=
|
|
|
|
export ANDROID_ARCH=
|
2018-07-04 23:57:29 +02:00
|
|
|
|
|
|
|
_android_arch=armeabi-v7a
|
|
|
|
_pkgname=openssl
|
|
|
|
_ver=1.1.0h
|
2018-07-29 23:01:20 +02:00
|
|
|
_pref=/opt/android-libs/$_android_arch
|
2018-07-04 23:57:29 +02:00
|
|
|
|
|
|
|
pkgname=android-$_pkgname-$_android_arch
|
|
|
|
# use a pacman compatible version scheme
|
|
|
|
pkgver=${_ver/[a-z]/.${_ver//[0-9.]/}}
|
2018-07-13 14:58:52 +02:00
|
|
|
pkgrel=2
|
2018-07-04 23:57:29 +02:00
|
|
|
pkgdesc="The Open Source toolkit for Secure Sockets Layer and Transport Layer Security (Android, $_android_arch)"
|
|
|
|
arch=('any')
|
|
|
|
url='https://www.openssl.org'
|
|
|
|
license=('custom:BSD')
|
|
|
|
options=('!strip' '!buildflags' 'staticlibs' '!emptydirs')
|
|
|
|
depends=('perl' 'android-sdk' 'android-ndk')
|
|
|
|
source=("https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz"
|
|
|
|
"https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz.asc"
|
|
|
|
'setenv-android.sh')
|
|
|
|
sha256sums=('5835626cde9e99656585fc7aaa2302a73a7e1340bf8c14fd635a62c66802a517'
|
|
|
|
'SKIP'
|
|
|
|
'618eba24998f973487b9ebc556dd48d6828932f51f69ae75cb9da6c65c92b00a')
|
|
|
|
validpgpkeys=('8657ABB260F056B1E5190839D9C4D26D0E604491')
|
|
|
|
|
|
|
|
build() {
|
|
|
|
cd "$srcdir/$_pkgname-$_ver"
|
|
|
|
source "$srcdir/setenv-android.sh"
|
|
|
|
|
|
|
|
./Configure \
|
|
|
|
--prefix="$_pref" \
|
|
|
|
--openssldir="$_pref" \
|
|
|
|
-isystem"$ANDROID_NDK_ROOT/sysroot/usr/include" \
|
|
|
|
-isystem"$ANDROID_NDK_ROOT/sysroot/usr/include/${_ANDROID_EABI%-*}" \
|
2018-07-13 14:58:52 +02:00
|
|
|
-Wl,--no-allow-shlib-undefined \
|
|
|
|
-Wl,--no-undefined \
|
|
|
|
no-stdio \
|
|
|
|
no-ui \
|
2018-07-29 23:01:20 +02:00
|
|
|
threads \
|
2018-07-04 23:57:29 +02:00
|
|
|
shared \
|
|
|
|
android
|
|
|
|
|
|
|
|
# ensure the libraries are not versioned (setting CALC_VERSIONS doesn't work for some reason)
|
2018-07-13 14:58:52 +02:00
|
|
|
sed -i -e 's/\.\$(SHLIB_MAJOR)\.\$(SHLIB_MINOR)//g' Makefile
|
|
|
|
|
|
|
|
# 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
|
2018-07-04 23:57:29 +02:00
|
|
|
|
|
|
|
# build only libraries
|
|
|
|
make CALC_VERSIONS="SHLIB_COMPAT=; SHLIB_SOVER=" build_libs
|
|
|
|
}
|
|
|
|
|
|
|
|
package() {
|
|
|
|
cd "$srcdir/$_pkgname-$_ver"
|
|
|
|
source "$srcdir/setenv-android.sh"
|
|
|
|
|
|
|
|
# install header files, libraries and license
|
|
|
|
for lib in libcrypto.{a,so} libssl.{a,so}; do
|
|
|
|
install -D -m0644 $lib "$pkgdir/$_pref/lib/$lib"
|
|
|
|
done
|
|
|
|
mkdir -p "$pkgdir/$_pref/include"
|
|
|
|
cp -r include/openssl "$pkgdir/$_pref/include"
|
|
|
|
install -D -m644 LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
|
|
|
|
|
|
|
|
# strip binaries
|
|
|
|
local strip_path=$ANDROID_TOOLCHAIN/${CROSS_COMPILE}strip
|
|
|
|
find "$pkgdir" -name 'lib*.so' -type f -exec "$strip_path" --strip-unneeded {} \;
|
|
|
|
find "$pkgdir" -name 'lib*.a' -type f -exec "$strip_path" -g {} \;
|
|
|
|
}
|