diff options
Diffstat (limited to 'contrib')
| -rw-r--r-- | contrib/DNS-LDNS/META.yml | 6 | ||||
| -rw-r--r-- | contrib/android/15-android.conf | 37 | ||||
| -rwxr-xr-x | contrib/android/bootstrap_ldns.sh | 55 | ||||
| -rwxr-xr-x | contrib/android/install_ndk.sh | 60 | ||||
| -rwxr-xr-x | contrib/android/install_openssl.sh | 44 | ||||
| -rwxr-xr-x | contrib/android/install_tools.sh | 26 | ||||
| -rwxr-xr-x | contrib/android/setenv_android.sh | 203 | ||||
| -rw-r--r-- | contrib/ios/15-ios.conf | 41 | ||||
| -rwxr-xr-x | contrib/ios/bootstrap_ldns.sh | 55 | ||||
| -rwxr-xr-x | contrib/ios/install_openssl.sh | 52 | ||||
| -rwxr-xr-x | contrib/ios/install_tools.sh | 9 | ||||
| -rw-r--r-- | contrib/ios/openssl.patch | 48 | ||||
| -rwxr-xr-x | contrib/ios/setenv_ios.sh | 274 | ||||
| -rw-r--r-- | contrib/ldnsx/ldnsx.py | 2 | ||||
| -rw-r--r-- | contrib/python/ldns.i | 4 | ||||
| -rw-r--r-- | contrib/python/ldns_rdf.i | 67 |
16 files changed, 72 insertions, 911 deletions
diff --git a/contrib/DNS-LDNS/META.yml b/contrib/DNS-LDNS/META.yml index 79efd69d9e45..3a7f6465d8fc 100644 --- a/contrib/DNS-LDNS/META.yml +++ b/contrib/DNS-LDNS/META.yml @@ -10,7 +10,7 @@ configure_requires: Devel::CheckLib: '0.9' ExtUtils::MakeMaker: '0' dynamic_config: 0 -generated_by: 'Dist::Zilla version 6.024, CPAN::Meta::Converter version 2.150010' +generated_by: 'Dist::Zilla version 6.030, CPAN::Meta::Converter version 2.150010' license: restrictive meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -25,5 +25,5 @@ requires: strict: '0' warnings: '0' version: '0.61' -x_generated_by_perl: v5.34.0 -x_serialization_backend: 'YAML::Tiny version 1.73' +x_generated_by_perl: v5.38.2 +x_serialization_backend: 'YAML::Tiny version 1.74' diff --git a/contrib/android/15-android.conf b/contrib/android/15-android.conf deleted file mode 100644 index e1fc91e703f2..000000000000 --- a/contrib/android/15-android.conf +++ /dev/null @@ -1,37 +0,0 @@ -#### Android... -# -# Heavily hacked 15-android.conf based on OpenSSL's config file of the same name. -# This 15-android.conf avoids compiler errors using NDK-r20. This 15-android.conf -# requires an environment set (sourced) using setenv-android.sh. - -my %targets = ( - "android" => { - inherit_from => [ "linux-generic32" ], - template => 1, - bin_cflags => add("-fPIE"), - bin_lflags => add("-pie"), - enable => [ ], - }, - - "android-arm" => { - inherit_from => [ "android", asm("armv4_asm") ], - bn_ops => [ "BN_LLONG", "RC4_CHAR" ], - }, - "android-arm64" => { - inherit_from => [ "android", asm("aarch64_asm") ], - bn_ops => [ "SIXTY_FOUR_BIT_LONG", "RC4_CHAR" ], - perlasm_scheme => "linux64", - }, - - "android-x86" => { - inherit_from => [ "android", asm("x86_asm") ], - cflags => add(picker(release => "-fomit-frame-pointer")), - bn_ops => [ "BN_LLONG", "RC4_INT" ], - perlasm_scheme => "android", - }, - "android-x86_64" => { - inherit_from => [ "android", asm("x86_64_asm") ], - bn_ops => [ "SIXTY_FOUR_BIT_LONG", "RC4_INT" ], - perlasm_scheme => "elf", - }, -); diff --git a/contrib/android/bootstrap_ldns.sh b/contrib/android/bootstrap_ldns.sh deleted file mode 100755 index 7e423030ccae..000000000000 --- a/contrib/android/bootstrap_ldns.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env bash - -if ! git submodule update --init; then - echo "Failed to init submodule" - exit 1 -fi - -echo "AUTOTOOLS_BUILD: $AUTOTOOLS_BUILD" -echo "AUTOTOOLS_HOST: $AUTOTOOLS_HOST" - -# libtool complains about our updated config.guess and config.sub. -# Remove them to get through bootstrap. Re-add them after libtoolize. - -echo "Running libtoolize" -if [ -n "$(command -v glibtoolize)" ]; then - rm -f config.guess config.sub - if ! glibtoolize -ci ; then - echo "Failed to libtoolize (glibtoolize)" - exit 1 - fi -elif [ -n "$(command -v libtoolize)" ]; then - rm -f config.guess config.sub - if ! libtoolize -ci ; then - echo "Failed to libtoolize (libtoolize)" - exit 1 - fi -else - echo "Failed to find a libtool" - exit 1 -fi - -echo "Updating config.guess" -if ! wget -q -O config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'; then - echo "Failed to download config.guess" -fi - -echo "Updating config.sub" -if ! wget -q -O config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'; then - echo "Failed to download config.sub" -fi - -echo "Fixing config permissions" -chmod a+x config.guess config.sub -if [ -n "$(command -v xattr 2>/dev/null)" ]; then - xattr -d com.apple.quarantine config.guess 2>/dev/null - xattr -d com.apple.quarantine config.sub 2>/dev/null -fi - -echo "Running autoreconf" -if ! autoreconf -fi ; then - echo "Failed to autoreconf" - exit 1 -fi - -exit 0 diff --git a/contrib/android/install_ndk.sh b/contrib/android/install_ndk.sh deleted file mode 100755 index 90e453153db5..000000000000 --- a/contrib/android/install_ndk.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/usr/bin/env bash - -if [ -z "$ANDROID_SDK_ROOT" ]; then - echo "ERROR: ANDROID_SDK_ROOT is not set. Please set it." - echo "SDK root is $ANDROID_SDK_ROOT" - exit 1 -fi - -if [ -z "$ANDROID_NDK_ROOT" ]; then - echo "ERROR: ANDROID_NDK_ROOT is not set. Please set it." - echo "NDK root is $ANDROID_NDK_ROOT" - exit 1 -fi - -echo "Using ANDROID_SDK_ROOT: $ANDROID_SDK_ROOT" -echo "Using ANDROID_NDK_ROOT: $ANDROID_NDK_ROOT" - -echo "Downloading SDK" -if ! curl -L -k -s -o "$HOME/android-sdk.zip" https://dl.google.com/android/repository/commandlinetools-linux-6200805_latest.zip; -then - echo "Failed to download SDK" - exit 1 -fi - -echo "Downloading NDK" -if ! curl -L -k -s -o "$HOME/android-ndk.zip" https://dl.google.com/android/repository/android-ndk-r20b-linux-x86_64.zip; -then - echo "Failed to download NDK" - exit 1 -fi - -echo "Unpacking SDK to $ANDROID_SDK_ROOT" -if ! unzip -qq "$HOME/android-sdk.zip" -d "$ANDROID_SDK_ROOT"; -then - echo "Failed to unpack SDK" - exit 1 -fi - -echo "Unpacking NDK to $ANDROID_NDK_ROOT" -if ! unzip -qq "$HOME/android-ndk.zip" -d "$HOME"; -then - echo "Failed to unpack NDK" - exit 1 -fi - -if ! mv "$HOME/android-ndk-r20b" "$ANDROID_NDK_ROOT"; -then - echo "Failed to move $HOME/android-ndk-r20b to $ANDROID_NDK_ROOT" - exit 1 -fi - -rm -f "$HOME/android-sdk.zip" -rm -f "$HOME/android-ndk.zip" - -# https://stackoverflow.com/a/47028911/608639 -touch "$ANDROID_SDK_ROOT/repositories.cfg" - -echo "Finished installing SDK and NDK" - -exit 0 diff --git a/contrib/android/install_openssl.sh b/contrib/android/install_openssl.sh deleted file mode 100755 index e4fb87266e2e..000000000000 --- a/contrib/android/install_openssl.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env bash - -echo "Downloading OpenSSL" -if ! curl -L -k -s -o openssl-1.1.1d.tar.gz https://www.openssl.org/source/openssl-1.1.1d.tar.gz; -then - echo "Failed to download OpenSSL" - exit 1 -fi - -echo "Unpacking OpenSSL" -rm -rf ./openssl-1.1.1d -if ! tar -xf openssl-1.1.1d.tar.gz; -then - echo "Failed to unpack OpenSSL" - exit 1 -fi - -cd openssl-1.1.1d || exit 1 - -if ! cp ../contrib/android/15-android.conf Configurations/; then - echo "Failed to copy OpenSSL Android config" - exit 1 -fi - -echo "Configuring OpenSSL" -if ! ./Configure "$OPENSSL_HOST" no-comp no-asm no-hw no-engine shared \ - --prefix="$ANDROID_PREFIX" --openssldir="$ANDROID_PREFIX"; then - echo "Failed to configure OpenSSL" - exit 1 -fi - -echo "Building OpenSSL" -if ! make; then - echo "Failed to build OpenSSL" - exit 1 -fi - -echo "Installing OpenSSL" -if ! make install_sw; then - echo "Failed to install OpenSSL" - exit 1 -fi - -exit 0 diff --git a/contrib/android/install_tools.sh b/contrib/android/install_tools.sh deleted file mode 100755 index 45aff601e2d7..000000000000 --- a/contrib/android/install_tools.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env bash - -# This step should install tools needed for all packages - OpenSSL and LDNS -echo "Updating tools" -sudo apt-get -qq update -sudo apt-get -qq install --no-install-recommends curl wget tar zip unzip patch perl openjdk-8-jdk autoconf automake libtool pkg-config - -# Android builds run config.guess early to determine BUILD and HOST. We need to add config.guess -# and config.sub now. Later, bootstrap_ldns.sh will handle the complete bootstrap of LDNS. - -echo "Adding config.guess" -if ! wget -q -O config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'; then - echo "Failed to download config.guess" -fi - -echo "Adding config.sub" -if ! wget -q -O config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'; then - echo "Failed to download config.sub" -fi - -echo "Fixing config permissions" -chmod a+x config.guess config.sub -if [ -n "$(command -v xattr 2>/dev/null)" ]; then - xattr -d com.apple.quarantine config.guess 2>/dev/null - xattr -d com.apple.quarantine config.sub 2>/dev/null -fi diff --git a/contrib/android/setenv_android.sh b/contrib/android/setenv_android.sh deleted file mode 100755 index f45acb0f7ead..000000000000 --- a/contrib/android/setenv_android.sh +++ /dev/null @@ -1,203 +0,0 @@ -#!/usr/bin/env bash - -# ==================================================================== -# Sets the cross compile environment for Android -# -# Based upon OpenSSL's setenv-android.sh by TH, JW, and SM. -# Heavily modified by JWW for Crypto++. -# Updated by Skycoder42 for current recommendations for Android. -# Modified by JWW for LDNS. -# ==================================================================== - -######################################### -##### Some validation ##### -######################################### - -if [ -z "$ANDROID_API" ]; then - echo "ANDROID_API is not set. Please set it" - [[ "$0" = "${BASH_SOURCE[0]}" ]] && exit 1 || return 1 -fi - -if [ -z "$ANDROID_CPU" ]; then - echo "ANDROID_CPU is not set. Please set it" - [[ "$0" = "${BASH_SOURCE[0]}" ]] && exit 1 || return 1 -fi - -if [ ! -d "$ANDROID_NDK_ROOT" ]; then - echo "ERROR: ANDROID_NDK_ROOT is not a valid path. Please set it." - echo "NDK root is $ANDROID_NDK_ROOT" - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -# cryptest-android.sh may run this script without sourcing. -if [ "$0" = "${BASH_SOURCE[0]}" ]; then - echo "setenv-android.sh is usually sourced, but not this time." -fi - -##################################################################### - -# Need to set THIS_HOST to darwin-x86_64, linux-x86_64, -# windows, or windows-x86_64 - -if [[ "$(uname -s | grep -i -c darwin)" -ne 0 ]]; then - THIS_HOST=darwin-x86_64 -elif [[ "$(uname -s | grep -i -c linux)" -ne 0 ]]; then - THIS_HOST=linux-x86_64 -else - echo "ERROR: Unknown host" - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -ANDROID_TOOLCHAIN="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/$THIS_HOST/bin" -ANDROID_SYSROOT="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/$THIS_HOST/sysroot" - -# Error checking -if [ ! -d "$ANDROID_TOOLCHAIN" ]; then - echo "ERROR: ANDROID_TOOLCHAIN is not a valid path. Please set it." - echo "Path is $ANDROID_TOOLCHAIN" - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -# Error checking -if [ ! -d "$ANDROID_SYSROOT" ]; then - echo "ERROR: ANDROID_SYSROOT is not a valid path. Please set it." - echo "Path is $ANDROID_SYSROOT" - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -##################################################################### - -THE_ARCH=$(tr '[:upper:]' '[:lower:]' <<< "$ANDROID_CPU") - -# https://developer.android.com/ndk/guides/abis.html -case "$THE_ARCH" in - armv7*|armeabi*) - CC="armv7a-linux-androideabi$ANDROID_API-clang" - CXX="armv7a-linux-androideabi$ANDROID_API-clang++" - LD="arm-linux-androideabi-ld" - AS="arm-linux-androideabi-as" - AR="arm-linux-androideabi-ar" - RANLIB="arm-linux-androideabi-ranlib" - STRIP="arm-linux-androideabi-strip" - - CFLAGS="-march=armv7-a -mthumb -mfloat-abi=softfp -funwind-tables -fexceptions" - CXXFLAGS="-march=armv7-a -mthumb -mfloat-abi=softfp -funwind-tables -fexceptions -frtti" - ;; - - armv8*|aarch64|arm64) - CC="aarch64-linux-android$ANDROID_API-clang" - CXX="aarch64-linux-android$ANDROID_API-clang++" - LD="aarch64-linux-android-ld" - AS="aarch64-linux-android-as" - AR="aarch64-linux-android-ar" - RANLIB="aarch64-linux-android-ranlib" - STRIP="aarch64-linux-android-strip" - - CFLAGS="-funwind-tables -fexceptions" - CXXFLAGS="-funwind-tables -fexceptions -frtti" - ;; - - x86) - CC="i686-linux-android$ANDROID_API-clang" - CXX="i686-linux-android$ANDROID_API-clang++" - LD="i686-linux-android-ld" - AS="i686-linux-android-as" - AR="i686-linux-android-ar" - RANLIB="i686-linux-android-ranlib" - STRIP="i686-linux-android-strip" - - CFLAGS="-mtune=intel -mssse3 -mfpmath=sse -funwind-tables -fexceptions" - CXXFLAGS="-mtune=intel -mssse3 -mfpmath=sse -funwind-tables -fexceptions -frtti" - ;; - - x86_64|x64) - CC="x86_64-linux-android$ANDROID_API-clang" - CXX="x86_64-linux-android$ANDROID_API-clang++" - LD="x86_64-linux-android-ld" - AS="x86_64-linux-android-as" - AR="x86_64-linux-android-ar" - RANLIB="x86_64-linux-android-ranlib" - STRIP="x86_64-linux-android-strip" - - CFLAGS="-march=x86-64 -msse4.2 -mpopcnt -mtune=intel -funwind-tables -fexceptions" - CXXFLAGS="-march=x86-64 -msse4.2 -mpopcnt -mtune=intel -funwind-tables -fexceptions -frtti" - ;; - - *) - echo "ERROR: Unknown architecture $ANDROID_CPU" - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 - ;; -esac - -##################################################################### - -# Error checking -if [ ! -e "$ANDROID_TOOLCHAIN/$CC" ]; then - echo "ERROR: Failed to find Android clang. Please edit this script." - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -# Error checking -if [ ! -e "$ANDROID_TOOLCHAIN/$CXX" ]; then - echo "ERROR: Failed to find Android clang++. Please edit this script." - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -# Error checking -if [ ! -e "$ANDROID_TOOLCHAIN/$RANLIB" ]; then - echo "ERROR: Failed to find Android ranlib. Please edit this script." - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -# Error checking -if [ ! -e "$ANDROID_TOOLCHAIN/$AR" ]; then - echo "ERROR: Failed to find Android ar. Please edit this script." - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -# Error checking -if [ ! -e "$ANDROID_TOOLCHAIN/$AS" ]; then - echo "ERROR: Failed to find Android as. Please edit this script." - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -# Error checking -if [ ! -e "$ANDROID_TOOLCHAIN/$LD" ]; then - echo "ERROR: Failed to find Android ld. Please edit this script." - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -##################################################################### - -LENGTH=${#ANDROID_TOOLCHAIN} -SUBSTR=${PATH:0:$LENGTH} -if [ "$SUBSTR" != "$ANDROID_TOOLCHAIN" ]; then - export PATH="$ANDROID_TOOLCHAIN:$PATH" -fi - -##################################################################### - -export CPP CC CXX LD AS AR RANLIB STRIP -export ANDROID_SYSROOT="$AOSP_SYSROOT" -export CPPFLAGS="-D__ANDROID_API__=$ANDROID_API" -export CFLAGS="$CFLAGS --sysroot=$AOSP_SYSROOT" -export CXXFLAGS="$CXXFLAGS -stdlib=libc++ --sysroot=$AOSP_SYSROOT" - -##################################################################### - -echo "ANDROID_TOOLCHAIN: $ANDROID_TOOLCHAIN" - -echo "CPP: $(command -v "$CPP")" -echo "CC: $(command -v "$CC")" -echo "CXX: $(command -v "$CXX")" -echo "LD: $(command -v "$LD")" -echo "AS: $(command -v "$AS")" -echo "AR: $(command -v "$AR")" - -echo "ANDROID_SYSROOT: $ANDROID_SYSROOT" - -echo "CPPFLAGS: $CPPFLAGS" -echo "CFLAGS: $CFLAGS" -echo "CXXFLAGS: $CXXFLAGS" - -[ "$0" = "${BASH_SOURCE[0]}" ] && exit 0 || return 0 diff --git a/contrib/ios/15-ios.conf b/contrib/ios/15-ios.conf deleted file mode 100644 index 364ed6ebfd29..000000000000 --- a/contrib/ios/15-ios.conf +++ /dev/null @@ -1,41 +0,0 @@ -#### iPhoneOS/iOS -# -# It takes recent enough Xcode to use following two targets. It shouldn't -# be a problem by now, but if they don't work, original targets below -# that depend on manual definition of environment variables should still -# work... -# -my %targets = ( - "ios-common" => { - template => 1, - inherit_from => [ "darwin-common" ], - sys_id => "iOS", - disable => [ "engine", "async" ], - }, - "ios-xcrun" => { - inherit_from => [ "ios-common", asm("armv4_asm") ], - bn_ops => [ "BN_LLONG", "RC4_CHAR" ], - perlasm_scheme => "ios32", - }, - "ios64-xcrun" => { - inherit_from => [ "ios-common", asm("aarch64_asm") ], - bn_ops => [ "SIXTY_FOUR_BIT_LONG", "RC4_CHAR" ], - perlasm_scheme => "ios64", - }, - "iossimulator-xcrun" => { - inherit_from => [ "ios-common" ], - }, - - "iphoneos-cross" => { - inherit_from => [ "ios-common" ], - cflags => add("-Wall -fno-common"), - }, - "ios-cross" => { - inherit_from => [ "ios-xcrun" ], - cflags => add("-Wall -fno-common"), - }, - "ios64-cross" => { - inherit_from => [ "ios64-xcrun" ], - cflags => add("-Wall -fno-common"), - }, -); diff --git a/contrib/ios/bootstrap_ldns.sh b/contrib/ios/bootstrap_ldns.sh deleted file mode 100755 index 7e423030ccae..000000000000 --- a/contrib/ios/bootstrap_ldns.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/env bash - -if ! git submodule update --init; then - echo "Failed to init submodule" - exit 1 -fi - -echo "AUTOTOOLS_BUILD: $AUTOTOOLS_BUILD" -echo "AUTOTOOLS_HOST: $AUTOTOOLS_HOST" - -# libtool complains about our updated config.guess and config.sub. -# Remove them to get through bootstrap. Re-add them after libtoolize. - -echo "Running libtoolize" -if [ -n "$(command -v glibtoolize)" ]; then - rm -f config.guess config.sub - if ! glibtoolize -ci ; then - echo "Failed to libtoolize (glibtoolize)" - exit 1 - fi -elif [ -n "$(command -v libtoolize)" ]; then - rm -f config.guess config.sub - if ! libtoolize -ci ; then - echo "Failed to libtoolize (libtoolize)" - exit 1 - fi -else - echo "Failed to find a libtool" - exit 1 -fi - -echo "Updating config.guess" -if ! wget -q -O config.guess 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD'; then - echo "Failed to download config.guess" -fi - -echo "Updating config.sub" -if ! wget -q -O config.sub 'https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD'; then - echo "Failed to download config.sub" -fi - -echo "Fixing config permissions" -chmod a+x config.guess config.sub -if [ -n "$(command -v xattr 2>/dev/null)" ]; then - xattr -d com.apple.quarantine config.guess 2>/dev/null - xattr -d com.apple.quarantine config.sub 2>/dev/null -fi - -echo "Running autoreconf" -if ! autoreconf -fi ; then - echo "Failed to autoreconf" - exit 1 -fi - -exit 0 diff --git a/contrib/ios/install_openssl.sh b/contrib/ios/install_openssl.sh deleted file mode 100755 index fc5af4d47c48..000000000000 --- a/contrib/ios/install_openssl.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env bash - -echo "Downloading OpenSSL" -if ! curl -L -k -s -o openssl-1.1.1d.tar.gz https://www.openssl.org/source/openssl-1.1.1d.tar.gz; -then - echo "Failed to download OpenSSL" - exit 1 -fi - -echo "Unpacking OpenSSL" -rm -rf ./openssl-1.1.1d -if ! tar -xf openssl-1.1.1d.tar.gz; -then - echo "Failed to unpack OpenSSL" - exit 1 -fi - -cd openssl-1.1.1d || exit 1 - -if ! cp ../contrib/ios/15-ios.conf Configurations/; then - echo "Failed to copy OpenSSL ios config" - exit 1 -fi - -# ocsp.c:947:23: error: 'fork' is unavailable: not available on tvOS -# ocsp.c:978:23: error: 'fork' is unavailable: not available on watchOS -# Also see https://github.com/openssl/openssl/issues/7607. -if ! patch -u -p0 < ../contrib/ios/openssl.patch; then - echo "Failed to patch OpenSSL" - exit 1 -fi - -echo "Configuring OpenSSL" -if ! ./Configure "$OPENSSL_HOST" -DNO_FORK no-comp no-asm no-hw no-engine no-tests no-unit-test \ - --prefix="$IOS_PREFIX" --openssldir="$IOS_PREFIX"; then - echo "Failed to configure OpenSSL" - exit 1 -fi - -echo "Building OpenSSL" -if ! make; then - echo "Failed to build OpenSSL" - exit 1 -fi - -echo "Installing OpenSSL" -if ! make install_sw; then - echo "Failed to install OpenSSL" - exit 1 -fi - -exit 0 diff --git a/contrib/ios/install_tools.sh b/contrib/ios/install_tools.sh deleted file mode 100755 index 796833d83143..000000000000 --- a/contrib/ios/install_tools.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -# This step should install tools needed for all packages - OpenSSL and LDNS -# When running on Travis, Homebrew fails in unusual ways, hence '|| true'. -# https://travis-ci.community/t/homebrew-fails-because-an-automake-update-is-an-error/7831/3 -echo "Updating tools" -brew update 1>/dev/null || true -echo "Installing tools" -brew install autoconf automake libtool pkg-config curl perl 1>/dev/null || true diff --git a/contrib/ios/openssl.patch b/contrib/ios/openssl.patch deleted file mode 100644 index 58cef232c9e9..000000000000 --- a/contrib/ios/openssl.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- apps/speed.c -+++ apps/speed.c -@@ -99,6 +99,13 @@ - #endif - #include <openssl/modes.h> - -+/* fork() breaks AppleTVOS, WatchOS, AppleTVSimulator and WatchSimulator */ -+/* Users should configure with -DNO_FORK */ -+#if defined(NO_FORK) -+# undef HAVE_FORK -+# define HAVE_FORK 0 -+#endif -+ - #ifndef HAVE_FORK - # if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_VXWORKS) - # define HAVE_FORK 0 -@@ -110,6 +117,7 @@ - #if HAVE_FORK - # undef NO_FORK - #else -+# undef NO_FORK - # define NO_FORK - #endif - ---- apps/ocsp.c -+++ apps/ocsp.c -@@ -36,6 +36,13 @@ - # include <openssl/x509v3.h> - # include <openssl/rand.h> - -+/* fork() breaks AppleTVOS, WatchOS, AppleTVSimulator and WatchSimulator */ -+/* Users should configure with -DNO_FORK */ -+#if defined(NO_FORK) -+# undef HAVE_FORK -+# define HAVE_FORK 0 -+#endif -+ - #ifndef HAVE_FORK - # if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS) - # define HAVE_FORK 0 -@@ -47,6 +54,7 @@ - #if HAVE_FORK - # undef NO_FORK - #else -+# undef NO_FORK - # define NO_FORK - #endif - diff --git a/contrib/ios/setenv_ios.sh b/contrib/ios/setenv_ios.sh deleted file mode 100755 index 8f49f328d163..000000000000 --- a/contrib/ios/setenv_ios.sh +++ /dev/null @@ -1,274 +0,0 @@ -#!/usr/bin/env bash - -# ==================================================================== -# Sets the cross compile environment for Xcode/iOS -# -# Based upon OpenSSL's setenv-ios.sh by TH, JW, and SM. -# Heavily modified by JWW for Crypto++. -# Modified by JWW for LDNS. -# ==================================================================== - -######################################### -##### Some validation ##### -######################################### - -# In the past we could mostly infer arch or cpu from the SDK (and -# mostly vice-versa). Nowadays we need it set for us because Apple -# platforms can be either 32-bit or 64-bit. - -if [ -z "$IOS_SDK" ]; then - echo "IOS_SDK is not set. Please set it" - [[ "$0" = "${BASH_SOURCE[0]}" ]] && exit 1 || return 1 -fi - -if [ -z "$IOS_CPU" ]; then - echo "IOS_CPU is not set. Please set it" - [[ "$0" = "${BASH_SOURCE[0]}" ]] && exit 1 || return 1 -fi - -# cryptest-ios.sh may run this script without sourcing. -if [ "$0" = "${BASH_SOURCE[0]}" ]; then - echo "setenv-ios.sh is usually sourced, but not this time." -fi - -######################################### -##### Small Fixups, if needed ##### -######################################### - -if [[ "$IOS_SDK" == "iPhone" ]]; then - IOS_SDK=iPhoneOS -fi - -if [[ "$IOS_SDK" == "iPhoneOSSimulator" ]]; then - IOS_SDK=iPhoneSimulator -fi - -if [[ "$IOS_SDK" == "TV" || "$IOS_SDK" == "AppleTV" ]]; then - IOS_SDK=AppleTVOS -fi - -if [[ "$IOS_SDK" == "Watch" || "$IOS_SDK" == "AppleWatch" ]]; then - IOS_SDK=WatchOS -fi - -if [[ "$IOS_CPU" == "aarch64" || "$IOS_CPU" == "armv8"* ]] ; then - IOS_CPU=arm64 -fi - -######################################## -##### Environment ##### -######################################## - -# The flags below were tested with Xcode 8 on Travis. If -# you use downlevel versions of Xcode, then you can push -# xxx-version-min=n lower. For example, Xcode 6 can use -# -miphoneos-version-min=5. - -# iPhones can be either 32-bit or 64-bit -if [[ "$IOS_SDK" == "iPhoneOS" && "$IOS_CPU" == "armv7"* ]]; then - MIN_VER=-miphoneos-version-min=6 -elif [[ "$IOS_SDK" == "iPhoneOS" && "$IOS_CPU" == "arm64" ]]; then - MIN_VER=-miphoneos-version-min=6 - -# Fixups for convenience -elif [[ "$IOS_SDK" == "iPhoneOS" && "$IOS_CPU" == "i386" ]]; then - IOS_SDK=iPhoneSimulator - # MIN_VER=-miphoneos-version-min=6 - MIN_VER=-miphonesimulator-version-min=6 -elif [[ "$IOS_SDK" == "iPhoneOS" && "$IOS_CPU" == "x86_64" ]]; then - IOS_SDK=iPhoneSimulator - # MIN_VER=-miphoneos-version-min=6 - MIN_VER=-miphonesimulator-version-min=6 - -# Simulator builds -elif [[ "$IOS_SDK" == "iPhoneSimulator" && "$IOS_CPU" == "i386" ]]; then - MIN_VER=-miphonesimulator-version-min=6 -elif [[ "$IOS_SDK" == "iPhoneSimulator" && "$IOS_CPU" == "x86_64" ]]; then - MIN_VER=-miphonesimulator-version-min=6 - -# Apple TV can be 32-bit Intel (1st gen), 32-bit ARM (2nd, 3rd gen) or 64-bit ARM (4th gen) -elif [[ "$IOS_SDK" == "AppleTVOS" && "$IOS_CPU" == "i386" ]]; then - MIN_VER=-mappletvos-version-min=6 -elif [[ "$IOS_SDK" == "AppleTVOS" && "$IOS_CPU" == "armv7"* ]]; then - MIN_VER=-mappletvos-version-min=6 -elif [[ "$IOS_SDK" == "AppleTVOS" && "$IOS_CPU" == "arm64" ]]; then - MIN_VER=-mappletvos-version-min=6 - -# Simulator builds -elif [[ "$IOS_SDK" == "AppleTVSimulator" && "$IOS_CPU" == "i386" ]]; then - MIN_VER=-mappletvsimulator-version-min=6 -elif [[ "$IOS_SDK" == "AppleTVSimulator" && "$IOS_CPU" == "x86_64" ]]; then - MIN_VER=-mappletvsimulator-version-min=6 - -# Watch can be either 32-bit or 64-bit ARM. TODO: figure out which -# -mwatchos-version-min=n is needed for arm64. 9 is not enough. -elif [[ "$IOS_SDK" == "WatchOS" && "$IOS_CPU" == "armv7"* ]]; then - MIN_VER=-mwatchos-version-min=6 -elif [[ "$IOS_SDK" == "WatchOS" && "$IOS_CPU" == "arm64" ]]; then - MIN_VER=-mwatchos-version-min=10 - -# Simulator builds. TODO: figure out which -watchos-version-min=n -# is needed for arm64. 6 compiles and links, but is it correct? -elif [[ "$IOS_SDK" == "WatchSimulator" && "$IOS_CPU" == "i386" ]]; then - MIN_VER=-mwatchsimulator-version-min=6 -elif [[ "$IOS_SDK" == "WatchSimulator" && "$IOS_CPU" == "x86_64" ]]; then - MIN_VER=-mwatchsimulator-version-min=6 - -# And the final catch-all -else - echo "IOS_SDK and IOS_CPU are not valid. Please fix them" - [[ "$0" = "${BASH_SOURCE[0]}" ]] && exit 1 || return 1 -fi - -##################################################################### - -# Xcode 6 and below cannot handle -miphonesimulator-version-min -# Fix it so the simulator will compile as expected. This trick -# may work on other SDKs, but it was not tested. - -if [ -n "$(command -v xcodebuild 2>/dev/null)" ]; then - # Output of xcodebuild is similar to "Xcode 6.2". The first cut gets - # the dotted decimal value. The second cut gets the major version. - XCODE_VERSION=$(xcodebuild -version 2>/dev/null | head -n 1 | cut -f2 -d" " | cut -f1 -d".") - if [ -z "$XCODE_VERSION" ]; then XCODE_VERSION=100; fi - - if [ "$XCODE_VERSION" -le 6 ]; then - MIN_VER="${MIN_VER//iphonesimulator/iphoneos}" - fi -fi - -##################################################################### - -# Allow a user override? I think we should be doing this. The use case is, -# move /Applications/Xcode somewhere else for a side-by-side installation. -if [ -z "${XCODE_DEVELOPER-}" ]; then - XCODE_DEVELOPER=$(xcode-select -print-path 2>/dev/null) -fi - -if [ ! -d "$XCODE_DEVELOPER" ]; then - echo "ERROR: unable to find XCODE_DEVELOPER directory." - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -# XCODE_DEVELOPER_SDK is the SDK location. -XCODE_DEVELOPER_SDK="$XCODE_DEVELOPER/Platforms/$IOS_SDK.platform" - -if [ ! -d "$XCODE_DEVELOPER_SDK" ]; then - echo "ERROR: unable to find XCODE_DEVELOPER_SDK directory." - echo " Is the SDK supported by Xcode and installed?" - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -# XCODE_TOOLCHAIN is the location of the actual compiler tools. -if [ -d "$XCODE_DEVELOPER/Toolchains/XcodeDefault.xctoolchain/usr/bin/" ]; then - XCODE_TOOLCHAIN="$XCODE_DEVELOPER/Toolchains/XcodeDefault.xctoolchain/usr/bin/" -elif [ -d "$XCODE_DEVELOPER_SDK/Developer/usr/bin/" ]; then - XCODE_TOOLCHAIN="$XCODE_DEVELOPER_SDK/Developer/usr/bin/" -fi - -if [ -z "$XCODE_TOOLCHAIN" ] || [ ! -d "$XCODE_TOOLCHAIN" ]; then - echo "ERROR: unable to find Xcode cross-compiler tools." - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -# XCODE_SDK is the SDK name/version being used - adjust the list as appropriate. -# For example, remove 4.3, 6.2, and 6.1 if they are not installed. We go back to -# the 1.0 SDKs because Apple WatchOS uses low numbers, like 2.0 and 2.1. -XCODE_SDK= -for i in $(seq -f "%.1f" 30.0 -0.1 1.0) -do - if [ -d "$XCODE_DEVELOPER_SDK/Developer/SDKs/$IOS_SDK$i.sdk" ]; then - XCODE_SDK="$IOS_SDK$i.sdk" - break - fi -done - -# Error checking -if [ -z "$XCODE_SDK" ]; then - echo "ERROR: unable to find a SDK." - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -IOS_SYSROOT="$XCODE_DEVELOPER_SDK/Developer/SDKs/$XCODE_SDK" - -if [ -z "$IOS_SYSROOT" ] || [ ! -d "$IOS_SYSROOT" ]; then - echo "ERROR: unable to find IOS_SYSROOT directory." - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -##################################################################### - -# We want to set AR=libtool and ARFLAGS="-static -o", -# but I am not sure Autotools can handle it. -CPP=cpp; CC=clang; CXX=clang++; LD=ld -AS=as; AR=ar; RANLIB=ranlib; STRIP=strip - -# Error checking -if [ ! -e "$XCODE_TOOLCHAIN/$CC" ]; then - echo "ERROR: Failed to find iOS clang. Please edit this script." - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -# Error checking -if [ ! -e "$XCODE_TOOLCHAIN/$CXX" ]; then - echo "ERROR: Failed to find iOS clang++. Please edit this script." - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -# Error checking -if [ ! -e "$XCODE_TOOLCHAIN/$RANLIB" ]; then - echo "ERROR: Failed to find iOS ranlib. Please edit this script." - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -# Error checking -if [ ! -e "$XCODE_TOOLCHAIN/$AR" ]; then - echo "ERROR: Failed to find iOS ar. Please edit this script." - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -# Error checking -if [ ! -e "$XCODE_TOOLCHAIN/$AS" ]; then - echo "ERROR: Failed to find iOS as. Please edit this script." - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -# Error checking -if [ ! -e "$XCODE_TOOLCHAIN/$LD" ]; then - echo "ERROR: Failed to find iOS ld. Please edit this script." - [ "$0" = "${BASH_SOURCE[0]}" ] && exit 1 || return 1 -fi - -##################################################################### - -LENGTH=${#XCODE_TOOLCHAIN} -SUBSTR=${PATH:0:$LENGTH} -if [ "$SUBSTR" != "$XCODE_TOOLCHAIN" ]; then - export PATH="$XCODE_TOOLCHAIN":"$PATH" -fi - -##################################################################### - -export CPP CC CXX LD AS AR RANLIB STRIP -export IOS_SYSROOT -export CFLAGS="-arch $IOS_CPU $MIN_VER --sysroot=$IOS_SYSROOT" -export CXXFLAGS="-arch $IOS_CPU $MIN_VER -stdlib-libc++ --sysroot=$IOS_SYSROOT" - -##################################################################### - -echo "XCODE_TOOLCHAIN: $XCODE_TOOLCHAIN" - -echo "CPP: $(command -v "$CPP")" -echo "CC: $(command -v "$CC")" -echo "CXX: $(command -v "$CXX")" -echo "LD: $(command -v "$LD")" -echo "AS: $(command -v "$AS")" -echo "AR: $(command -v "$AR")" - -echo "IOS_SYSROOT: $IOS_SYSROOT" - -echo "CPPFLAGS: $CPPFLAGS" -echo "CFLAGS: $CFLAGS" -echo "CXXFLAGS: $CXXFLAGS" - -[ "$0" = "${BASH_SOURCE[0]}" ] && exit 0 || return 0 diff --git a/contrib/ldnsx/ldnsx.py b/contrib/ldnsx/ldnsx.py index e2bd0e517e31..57400cff8b87 100644 --- a/contrib/ldnsx/ldnsx.py +++ b/contrib/ldnsx/ldnsx.py @@ -216,7 +216,7 @@ class resolver: self.drop_nameservers() nm_list = ns.split(',') nm_list = map(lambda s: s.strip(), nm_list) - nm_list = filter(lambda s: s != "", nm_list) + nm_list = list(filter(lambda s: s != "", nm_list)) nm_list.reverse() for nm in nm_list: self.add_nameserver(nm) diff --git a/contrib/python/ldns.i b/contrib/python/ldns.i index 881ba5e858a7..b4a740820e12 100644 --- a/contrib/python/ldns.i +++ b/contrib/python/ldns.i @@ -99,12 +99,14 @@ %typemap(in, noblock=1) (ssize_t) { int $1_res = 0; - $1_res = SWIG_AsVal_long($input, &$1); + long val; + $1_res = SWIG_AsVal_long($input, &val); if (!SWIG_IsOK($1_res)) { SWIG_exception_fail(SWIG_ArgError($1_res), "in method '" "$symname" "', argument " "$argnum" " of type '" "$type""'"); } + $1 = val; } diff --git a/contrib/python/ldns_rdf.i b/contrib/python/ldns_rdf.i index 5d7448fdc45c..39f9af1895cb 100644 --- a/contrib/python/ldns_rdf.i +++ b/contrib/python/ldns_rdf.i @@ -50,13 +50,18 @@ SWIGTYPE_p_ldns_struct_rdf, SWIG_POINTER_OWN | 0)); } +#if SWIG_VERSION < 0x040200 /* * Automatic conversion of const (ldns_rdf *) parameter from string. * Argument default value. */ %typemap(arginit, noblock=1) const ldns_rdf * { +#if SWIG_VERSION >= 0x040200 + PyObject *$1_bytes = NULL; +#else char *$1_str = NULL; +#endif } /* @@ -66,11 +71,17 @@ %typemap(in, noblock=1) const ldns_rdf * (void* argp, $1_ltype tmp = 0, int res) { if (Python_str_Check($input)) { + const char *argstr; +#if SWIG_VERSION >= 0x040200 + argstr = SWIG_PyUnicode_AsUTF8AndSize($input, NULL, &$1_bytes); +#else $1_str = SWIG_Python_str_AsChar($input); - if ($1_str == NULL) { + argstr = $1_str; +#endif + if (argstr == NULL) { %argument_fail(SWIG_TypeError, "char *", $symname, $argnum); } - tmp = ldns_dname_new_frm_str($1_str); + tmp = ldns_dname_new_frm_str(argstr); if (tmp == NULL) { %argument_fail(SWIG_TypeError, "char *", $symname, $argnum); } @@ -90,11 +101,63 @@ */ %typemap(freearg, noblock=1) const ldns_rdf * { +#if SWIG_VERSION >= 0x040200 + if ($1_bytes != NULL) { + /* Is not NULL only when a conversion form string occurred. */ + Py_XDECREF($1_bytes); + } +#else if ($1_str != NULL) { /* Is not NULL only when a conversion form string occurred. */ SWIG_Python_str_DelForPy3($1_str); /* Is a empty macro for Python < 3. */ } +#endif +} + +#else +/* + * Automatic conversion of const (ldns_rdf *) parameter from string. + * Argument default value. + */ +%typemap(arginit, noblock=1) const ldns_rdf * +{ + PyObject *$1_bytes = NULL; +} + +/* + * Automatic conversion of const (ldns_rdf *) parameter from string. + * Preparation of arguments. + */ +%typemap(in, noblock=1) const ldns_rdf * (void* argp, $1_ltype tmp = 0, int res) +{ + if (Python_str_Check($input)) { + const char *$1_str = SWIG_PyUnicode_AsUTF8AndSize($input, NULL, &$1_bytes); + if ($1_str == NULL) { + %argument_fail(SWIG_TypeError, "char *", $symname, $argnum); + } + tmp = ldns_dname_new_frm_str($1_str); + if (tmp == NULL) { + %argument_fail(SWIG_TypeError, "char *", $symname, $argnum); + } + $1 = ($1_ltype) tmp; + } else { + res = SWIG_ConvertPtr($input, &argp, SWIGTYPE_p_ldns_struct_rdf, 0 | 0); + if (!SWIG_IsOK(res)) { + %argument_fail(res, "ldns_rdf const *", $symname, $argnum); + } + $1 = ($1_ltype) argp; + } +} + +/* + * Automatic conversion of const (ldns_rdf *) parameter from string. + * Freeing of allocated memory (it's a no op unless compiling for some older versions of the Python stable ABI). + */ +%typemap(freearg, noblock=1) const ldns_rdf * +{ + Py_XDECREF($1_bytes); } +#endif %nodefaultctor ldns_struct_rdf; /* No default constructor. */ %nodefaultdtor ldns_struct_rdf; /* No default destructor. */ |
