Overview
Comment: | Updated TLS package to 1.6.7, still needs lots of testing since the new TLS package is apparently really broken |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
e2c7a97b27fa4475e7be406a6bfc4af7 |
User & Date: | rkeene on 2015-10-28 15:28:53 |
Other Links: | manifest | tags |
Context
2015-10-28
| ||
15:49 | More patches to try to make TLS 1.6.7 work check-in: cdcb07f969 user: rkeene tags: trunk | |
15:28 | Updated TLS package to 1.6.7, still needs lots of testing since the new TLS package is apparently really broken check-in: e2c7a97b27 user: rkeene tags: trunk | |
15:28 | Updated to pass "--enable-threads" to sub-projects if a threaded Tcl is built, unless otherwise requested check-in: da8fac4446 user: rkeene tags: trunk | |
Changes
Modified build/make-kit-win32 from [248a24bff3] to [b64eb2dc53].
1 2 3 4 5 6 7 8 | #! /bin/sh AR=i586-mingw32msvc-ar CC=i586-mingw32msvc-gcc CXX=i586-mingw32msvc-g++ RANLIB=i586-mingw32msvc-ranlib RC=i586-mingw32msvc-windres STRIP="${STRIP:-i586-mingw32msvc-strip}" | > > | | 1 2 3 4 5 6 7 8 9 10 11 12 13 | #! /bin/sh AR=i586-mingw32msvc-ar CC=i586-mingw32msvc-gcc CXX=i586-mingw32msvc-g++ RANLIB=i586-mingw32msvc-ranlib RC=i586-mingw32msvc-windres STRIP="${STRIP:-i586-mingw32msvc-strip}" TEA_PLATFORM='windows' KC_TLS_LINKADD='-lws2_32 -lgdi32' export AR CC CXX RANLIB RC STRIP TEA_PLATFORM KC_TLS_LINKADD ./kitcreator "$@" --host=i586-mingw32msvc |
Modified tls/build.sh from [f6144b21a4] to [6f7681a2e1].
1 2 3 4 5 6 7 8 9 10 11 12 13 | #! /usr/bin/env bash if [ ! -f 'build.sh' ]; then echo 'ERROR: This script must be run from the directory it is in' >&2 exit 1 fi if [ -z "${TCLVERS}" ]; then echo 'ERROR: The TCLVERS environment variable is not set' >&2 exit 1 fi | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #! /usr/bin/env bash if [ ! -f 'build.sh' ]; then echo 'ERROR: This script must be run from the directory it is in' >&2 exit 1 fi if [ -z "${TCLVERS}" ]; then echo 'ERROR: The TCLVERS environment variable is not set' >&2 exit 1 fi TLSVERS="1.6.7" SRC="src/tls-${TLSVERS}.tar.gz" SRCURL="http://sourceforge.net/projects/tls/files/tls/${TLSVERS}/tls${TLSVERS}-src.tar.gz" BUILDDIR="$(pwd)/build/tls${TLSVERS}" OUTDIR="$(pwd)/out" INSTDIR="$(pwd)/inst" PATCHDIR="$(pwd)/patches" export TLSVERS SRC SRCURL BUILDDIR OUTDIR INSTDIR PATCHDIR |
︙ | ︙ | |||
55 56 57 58 59 60 61 | cp -rp ../buildsrc/* './' fi # Determine SSL directory if [ -z "${CPP}" ]; then CPP="${CC} -E" fi | > > > > | > > > > > > | 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 | cp -rp ../buildsrc/* './' fi # Determine SSL directory if [ -z "${CPP}" ]; then CPP="${CC} -E" fi if [ -n "${KC_TLS_SSLDIR}" ]; then SSLDIR="${KC_TLS_SSLDIR}" else SSLDIR="$(echo '#include <openssl/ssl.h>' 2>/dev/null | ${CPP} - | awk '/# 1 "\/.*\/ssl\.h/{ print $3; exit }' | sed 's@^"@@;s@"$@@;s@/include/openssl/ssl\.h$@@')" if [ -z "${SSLDIR}" ]; then echo "Unable to find OpenSSL, aborting." >&2 exit 1 fi fi # Apply required patches cd "${BUILDDIR}" || exit 1 for patch in "${PATCHDIR}/all"/tls-${TLSVERS}-*.diff "${PATCHDIR}/${TCL_VERSION}"/tls-${TLSVERS}-*.diff; do if [ ! -f "${patch}" ]; then continue fi |
︙ | ︙ | |||
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | echo "Running: ${MAKE:-make} tcllibdir=\"${INSTDIR}/lib\" AR=\"${AR:-ar}\" RANLIB=\"${RANLIB:-ranlib}\"" ${MAKE:-make} tcllibdir="${INSTDIR}/lib" AR="${AR:-ar}" RANLIB="${RANLIB:-ranlib}" || exit 1 echo "Running: ${MAKE:-make} tcllibdir=\"${INSTDIR}/lib\" AR=\"${AR:-ar}\" RANLIB=\"${RANLIB:-ranlib}\" install" ${MAKE:-make} tcllibdir="${INSTDIR}/lib" AR="${AR:-ar}" RANLIB="${RANLIB:-ranlib}" install || exit 1 ) || continue break done # Create pkgIndex if needed if [ ! -e "${INSTDIR}/lib/tls${TLSVERS}/pkgIndex.tcl" ]; then cat << _EOF_ > "${INSTDIR}/lib/tls${TLSVERS}/pkgIndex.tcl" package ifneeded tls ${TLSVERS} \ "[list source [file join \$dir tls.tcl]] ; \ [list load {} tls]" _EOF_ fi ## XXX: TODO: Determine what we actually need to link against | > > > > > > > > > | | | | 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 | echo "Running: ${MAKE:-make} tcllibdir=\"${INSTDIR}/lib\" AR=\"${AR:-ar}\" RANLIB=\"${RANLIB:-ranlib}\"" ${MAKE:-make} tcllibdir="${INSTDIR}/lib" AR="${AR:-ar}" RANLIB="${RANLIB:-ranlib}" || exit 1 echo "Running: ${MAKE:-make} tcllibdir=\"${INSTDIR}/lib\" AR=\"${AR:-ar}\" RANLIB=\"${RANLIB:-ranlib}\" install" ${MAKE:-make} tcllibdir="${INSTDIR}/lib" AR="${AR:-ar}" RANLIB="${RANLIB:-ranlib}" install || exit 1 ) || continue # Determine SSL library directory SSL_LIB_DIR="$(${MAKE:-make} --print-data-base | awk '/^SSL_LIB_DIR = /{ print }' | sed 's@^SSL_LIB_DIR = *@@')" echo "SSL_LIB_DIR = ${SSL_LIB_DIR}" break done # Create pkgIndex if needed if [ ! -e "${INSTDIR}/lib/tls${TLSVERS}/pkgIndex.tcl" ]; then cat << _EOF_ > "${INSTDIR}/lib/tls${TLSVERS}/pkgIndex.tcl" package ifneeded tls ${TLSVERS} \ "[list source [file join \$dir tls.tcl]] ; \ [list load {} tls]" _EOF_ fi # Determine name of static object LINKADDFILE="$(find "${INSTDIR}" -name '*.a' | head -n 1).linkadd" ## XXX: TODO: Determine what we actually need to link against addlibs="-L${SSL_LIB_DIR:-/lib} -lssl -lcrypto ${KC_TLS_LINKADD}" addlibs_staticOnly="" if [ "${KC_TLS_LINKSSLSTATIC}" = '1' ]; then echo "-Wl,-Bstatic ${addlibs} ${addlibs_staticOnly} -Wl,-Bdynamic" else echo "${addlibs}" fi > "${LINKADDFILE}" # Install files needed by installation cp -r "${INSTDIR}/lib" "${OUTDIR}" || exit 1 find "${OUTDIR}" -name '*.a' -type f | xargs -n 1 rm -f -- exit 0 ) || exit 1 exit 0 |
Added tls/patches/all/tls-1.6.7-fixcrosscompile.diff version [91ef31212c].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | diff -uNr tls1.6.7.orig/configure tls1.6.7-fixcrosscompile/configure --- tls1.6.7.orig/configure 2015-07-07 12:16:02.000000000 -0500 +++ tls1.6.7-fixcrosscompile/configure 2015-10-28 09:59:25.414214000 -0500 @@ -1387,7 +1387,9 @@ fi EXEEXT=".exe" - TEA_PLATFORM="windows" + if [ -z "${TEA_PLATFORM}" ]; then + TEA_PLATFORM="windows" + fi ;; *CYGWIN_*) CYGPATH=echo @@ -1397,7 +1399,9 @@ *) CYGPATH=echo EXEEXT="" - TEA_PLATFORM="unix" + if [ -z "${TEA_PLATFORM}" ]; then + TEA_PLATFORM="unix" + fi ;; esac @@ -1682,13 +1686,17 @@ echo $ECHO_N "checking for cygwin variant... $ECHO_C" >&6 case ${TCL_EXTRA_CFLAGS} in *-mwin32*|*-mno-cygwin*) - TEA_PLATFORM="windows" + if [ -z "${TEA_PLATFORM}" ]; then + TEA_PLATFORM="windows" + fi CFLAGS="$CFLAGS -mwin32" echo "$as_me:$LINENO: result: win32" >&5 echo "${ECHO_T}win32" >&6 ;; *) - TEA_PLATFORM="unix" + if [ -z "${TEA_PLATFORM}" ]; then + TEA_PLATFORM="unix" + fi echo "$as_me:$LINENO: result: unix" >&5 echo "${ECHO_T}unix" >&6 ;; |
Added tls/patches/all/tls-1.6.7-peercertificate.diff version [99b020c0ab].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 | diff -uNr tls1.6.7.orig/tlsX509.c tls1.6.7-peercertificate/tlsX509.c --- tls1.6.7.orig/tlsX509.c 2004-06-29 05:58:08.000000000 -0500 +++ tls1.6.7-peercertificate/tlsX509.c 2015-10-28 10:19:04.914214000 -0500 @@ -100,12 +100,14 @@ char serial[BUFSIZ]; char notBefore[BUFSIZ]; char notAfter[BUFSIZ]; + char certStr[BUFSIZ]; #ifndef NO_SSL_SHA int shai; char sha_hash[SHA_DIGEST_LENGTH*2]; const char *shachars="0123456789ABCDEF"; #endif + certStr[0] = 0; if ((bio = BIO_new(BIO_s_mem())) == NULL) { subject[0] = 0; issuer[0] = 0; @@ -132,6 +134,13 @@ serial[n] = 0; BIO_flush(bio); + if (PEM_write_bio_X509(bio, cert)) { + n = BIO_read(bio, certStr, min(BIO_pending(bio), BUFSIZ - 1)); + n = max(n, 0); + certStr[n] = 0; + BIO_flush(bio); + } + BIO_free(bio); } @@ -175,5 +184,10 @@ Tcl_ListObjAppendElement( interp, certPtr, Tcl_NewStringObj( serial, -1) ); + Tcl_ListObjAppendElement( interp, certPtr, + Tcl_NewStringObj( "certificate", -1) ); + Tcl_ListObjAppendElement( interp, certPtr, + Tcl_NewStringObj( certStr, -1) ); + return certPtr; } |