summarylogtreecommitdiffstats
path: root/PKGBUILD
diff options
context:
space:
mode:
authorMartchus2019-09-09 22:52:01 +0200
committerMartchus2019-09-09 22:52:01 +0200
commitc02b3dec88cbfa1461d716b40d17764c35c8f1e2 (patch)
treef4fbc96db4ebc86733de579c762f57d338f6d202 /PKGBUILD
downloadaur-c02b3dec88cbfa1461d716b40d17764c35c8f1e2.tar.gz
Initial import
Diffstat (limited to 'PKGBUILD')
-rw-r--r--PKGBUILD92
1 files changed, 92 insertions, 0 deletions
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 00000000000..73d5e04454d
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,92 @@
+# $Id$
+# Maintainer: Martchus <martchus@gmx.net>
+
+_pkg_arch=x86
+_android_arch=x86
+_android_toolchain=$_pkg_arch-linux-android
+_android_platform=22 # https://developer.android.com/about/dashboards/
+_android_platform_arch=arch-x86
+_android_platform_dir=android-$_android_platform/${_android_platform_arch}
+_pkgname=openssl
+_ver=1.1.1c
+_pref=/opt/android-libs/$_pkg_arch
+
+# export Android configuration
+export ANDROID_MINIMUM_PLATFORM=$_android_platform
+export ANDROID_NDK_ROOT=${ANDROID_NDK_ROOT:-/opt/android-ndk}
+export ANDROID_SDK_ROOT=${ANDROID_SDK_ROOT:-/opt/android-sdk}
+export ANDROID_EABI=llvm
+export ANDROID_ARCH=${_android_platform_arch}
+
+pkgname=android-$_pkg_arch-$_pkgname
+# use a pacman compatible version scheme
+pkgver=${_ver/[a-z]/.${_ver//[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=('custom:BSD')
+options=('!strip' '!buildflags' 'staticlibs' '!emptydirs')
+depends=('android-sdk' 'android-ndk')
+conflicts=("android-$_pkgname-$_android_arch")
+replaces=("android-$_pkgname-$_android_arch")
+source=("https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz"
+ "https://www.openssl.org/source/${_pkgname}-${_ver}.tar.gz.asc"
+ 'setenv-android.sh')
+sha256sums=('f6fb3079ad15076154eda9413fed42877d668e7069d9b87396d0804fdb3f4c90'
+ 'SKIP'
+ 'SKIP')
+validpgpkeys=('8657ABB260F056B1E5190839D9C4D26D0E604491'
+ '7953AC1FBC3DC8B3B292393ED5E9E43F7DF9EE8C')
+
+build() {
+ cd "$srcdir/$_pkgname-$_ver"
+
+ # don't use -mandroid flag (Clang as provided by the NDK does not like it)
+ sed -i -e 's/-mandroid//' Configurations/15-android.conf
+
+ source "$srcdir/setenv-android.sh"
+
+ ./Configure \
+ --prefix="$_pref" \
+ --openssldir="$_pref" \
+ --gcc-toolchain=$ANDROID_NDK_ROOT/toolchains/$_android_toolchain-4.9/prebuilt/linux-x86_64 \
+ --sysroot=$ANDROID_NDK_ROOT/platforms/$_android_platform_dir/usr \
+ -isystem"$ANDROID_NDK_ROOT/sysroot/usr/include" \
+ -isystem"$ANDROID_NDK_ROOT/sysroot/usr/include/${_ANDROID_EABI%-*}" \
+ -Wl,--no-allow-shlib-undefined \
+ -Wl,--no-undefined \
+ no-stdio \
+ no-ui \
+ threads \
+ shared \
+ android-${ANDROID_ARCH##arch-}
+
+ # ensure the libraries are not versioned (setting CALC_VERSIONS doesn't work for some reason)
+ sed -i -e 's/\.\$(SHLIB_MAJOR)\.\$(SHLIB_MINOR)//g' Makefile
+ sed -i -e 's/\.\$(SHLIB_VERSION_NUMBER)//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
+
+ # 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 {} \;
+}