Overview
Comment: | "make install" now works on MacOS too (uses .dylib in stead of .so, no "doc" yet) |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | nijtmans |
Files: | files | file ages | folders |
SHA3-256: |
6778f7f14700a3b225cd16c6aae2e846 |
User & Date: | jan.nijtmans on 2024-02-20 20:57:22 |
Other Links: | branch diff | manifest | tags |
Context
2024-02-21
| ||
22:57 | Stop support for OpenSSL < v1.1.1 check-in: f2101dcc16 user: jan.nijtmans tags: nijtmans | |
2024-02-20
| ||
22:09 | Merge trunk check-in: 6853760139 user: jan.nijtmans tags: bohagan | |
20:57 | "make install" now works on MacOS too (uses .dylib in stead of .so, no "doc" yet) check-in: 6778f7f147 user: jan.nijtmans tags: nijtmans | |
16:18 | Don't depend on Tcl 8.3 ..... check-in: c4ff285b07 user: jan.nijtmans tags: nijtmans | |
Changes
Modified Makefile.in from [470ed9b378] to [0d2bc10caa].
︙ | ︙ | |||
212 213 214 215 216 217 218 | doc: @echo "If you have documentation to create, place the commands to" @echo "build the docs in the 'doc:' target. For example:" @echo " xml2nroff sample.xml > sample.n" @echo " xml2html sample.xml > sample.html" | | | 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 | doc: @echo "If you have documentation to create, place the commands to" @echo "build the docs in the 'doc:' target. For example:" @echo " xml2nroff sample.xml > sample.n" @echo " xml2html sample.xml > sample.html" install: all install-binaries install-libraries install-binaries: binaries install-lib-binaries install-bin-binaries #======================================================================== # This rule installs platform-independent files, such as header files. # The list=...; for p in $$list handles the empty list case x-platform. #======================================================================== |
︙ | ︙ |
Modified generic/tls.c from [90806f56c7] to [ac73771fae].
︙ | ︙ | |||
106 107 108 109 110 111 112 | * Based from /crypto/cryptlib.c of OpenSSL and NSOpenSSL. */ static Tcl_Mutex *locks = NULL; static int locksCount = 0; static Tcl_Mutex init_mx; | | > > > > | < < | 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 | * Based from /crypto/cryptlib.c of OpenSSL and NSOpenSSL. */ static Tcl_Mutex *locks = NULL; static int locksCount = 0; static Tcl_Mutex init_mx; void CryptoThreadLockCallback( int mode, int n, TCL_UNUSED(const char *), TCL_UNUSED(int)) { if (mode & CRYPTO_LOCK) { /* This debugging is turned off by default -- it's too noisy. */ /* dprintf("Called to lock (n=%i of %i)", n, locksCount); */ Tcl_MutexLock(&locks[n]); } else { /* dprintf("Called to unlock (n=%i of %i)", n, locksCount); */ Tcl_MutexUnlock(&locks[n]); } /* dprintf("Returning"); */ return; } unsigned long CryptoThreadIdCallback(void) { unsigned long ret; dprintf("Called"); |
︙ | ︙ | |||
413 414 415 416 417 418 419 | return -1; buf = buf; size = size; verify = verify; } #else static int | | | 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 | return -1; buf = buf; size = size; verify = verify; } #else static int PasswordCallback(char *buf, int size, TCL_UNUSED(int) /* verify */, void *udata) { State *statePtr = (State *) udata; Tcl_Interp *interp = statePtr->interp; Tcl_Obj *cmdPtr; int result; dprintf("Called"); |
︙ | ︙ | |||
455 456 457 458 459 460 461 | if (result == TCL_OK) { char *ret = (char *) Tcl_GetStringResult(interp); strncpy(buf, ret, (size_t) size); return (int)strlen(ret); } else { return -1; } | < | 457 458 459 460 461 462 463 464 465 466 467 468 469 470 | if (result == TCL_OK) { char *ret = (char *) Tcl_GetStringResult(interp); strncpy(buf, ret, (size_t) size); return (int)strlen(ret); } else { return -1; } } #endif /* *------------------------------------------------------------------- * * CiphersObjCmd -- list available ciphers |
︙ | ︙ |
Modified pkgIndex.tcl.in from [ef684e85f3] to [c252762c40].
1 2 3 4 5 6 7 8 9 10 11 12 13 | # -*- tcl -*- # Tcl package index file, version 1.1 # if {[package vsatisfies [package provide Tcl] 9.0-]} { package ifneeded @PACKAGE_NAME@ @PACKAGE_VERSION@ \ [list load [file join $dir @PKG_LIB_FILE9@] [string totitle @PACKAGE_NAME@]] set initScript [file join $dir @[email protected]] if {[file exists $initScript]} { source -encoding utf-8 $initScript } } else { if {![package vsatisfies [package provide Tcl] 8.5]} {return} package ifneeded @PACKAGE_NAME@ @PACKAGE_VERSION@ [list apply {{dir} { | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | # -*- tcl -*- # Tcl package index file, version 1.1 # if {[package vsatisfies [package provide Tcl] 9.0-]} { package ifneeded @PACKAGE_NAME@ @PACKAGE_VERSION@ \ [list load [file join $dir @PKG_LIB_FILE9@] [string totitle @PACKAGE_NAME@]] set initScript [file join $dir @[email protected]] if {[file exists $initScript]} { source -encoding utf-8 $initScript } } else { if {![package vsatisfies [package provide Tcl] 8.5]} {return} package ifneeded @PACKAGE_NAME@ @PACKAGE_VERSION@ [list apply {{dir} { if {[string tolower [file extension @PKG_LIB_FILE8@]] in [list .dll .dylib .so]} { load [file join $dir @PKG_LIB_FILE8@] [string totitle @PACKAGE_NAME@] } else { load {} [string totitle @PACKAGE_NAME@] } set initScript [file join $dir @[email protected]] if {[file exists $initScript]} { source -encoding utf-8 $initScript |
︙ | ︙ |
Modified win/README.txt from [7dddaeb5ba] to [9649986d92].
1 2 3 4 5 6 7 | Windows DLL Build instructions using nmake build system 2020-10-15 [email protected] 2023-08-22 Kevin Walzer ([email protected]) Properties: - 64 bit DLL - VisualStudio 2019 | | | | | 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 | Windows DLL Build instructions using nmake build system 2020-10-15 [email protected] 2023-08-22 Kevin Walzer ([email protected]) Properties: - 64 bit DLL - VisualStudio 2019 - WSL - OpenSSL dynamically linked to TCLTLS DLL. We used a freely redistributable build of OpenSSL from https://www.firedaemon.com/firedaemon-openssl. Unzip and install OpenSSL in an accessible place (we used the lib subdirectory of our Tcl installation). 1. Visual Studio x64 native prompt. Update environmental variables for building Tcltls. Customize the below entries for your setup. set PATH=%PATH%;C:\tcl-trunk\lib\openssl-3\x64\bin set INCLUDE=%INCLUDE%;C:\tcl-trunk\tcl\lib\openssl-3\x64\include\openssl set LIB=%LIB%;C:\tcl-trunk\tcl\lib\openssl-3\x64\bin 2) Build TCLTLS -> Unzip distribution on your system. -> Start WSL. -> cd /mnt/c/path/to/tcltls ./gen_dh_params > dh_params.h od -A n -v -t xC < 'tls.tcl' > tls.tcl.h.new.1 sed 's@[^0-9A-Fa-f]@@g;s@..@0x&, @g' < tls.tcl.h.new.1 > tls.tcl.h rm -f tls.tcl.h.new.1 -> Visual Studio x64 native prompt. cd C:path\to\tcltls\win Run the following commands (modify the flags to your specific installations). nmake -f makefile.vc TCLDIR=c:\users\wordt\tcl INSTALLDIR=c:\tcl-trunk\tcl\lib SSL_INSTALL_FOLDER=C:\tcl-trunk\tcl\lib\openssl-3\x64 nmake -f makefile.vc TCLDIR=c:\users\wordt\tcl INSTALLDIR=c:\tcl-trunk\tcl\lib SSL_INSTALL_FOLDER=C:\tcl-trunk\tcl\lib\openssl-3\x64 install The resulting installation will include both the tcltls package and also have libcrypto.dll and libssl.dll copied into the same directory. 3) Test Start tclsh package require tls package require http http::register https 443 [list ::tls::socket -autoservername true] set tok [http::data [http::geturl https://www.tcl-lang.org]] |
Modified win/makefile.vc from [7c6e12a671] to [396b265a2b].
︙ | ︙ | |||
32 33 34 35 36 37 38 | # Define any additional project include flags # SSL_INSTALL_FOLDER = with the OpenSSL installation folder following. PRJ_INCLUDES = -I"$(SSL_INSTALL_FOLDER)\include" -I"$(OPENSSL_INSTALL_DIR)\include" # Define any additional compiler flags that might be required for the project PRJ_DEFINES = -D NO_SSL2 -D NO_SSL3 -D _CRT_SECURE_NO_WARNINGS | | | 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | # Define any additional project include flags # SSL_INSTALL_FOLDER = with the OpenSSL installation folder following. PRJ_INCLUDES = -I"$(SSL_INSTALL_FOLDER)\include" -I"$(OPENSSL_INSTALL_DIR)\include" # Define any additional compiler flags that might be required for the project PRJ_DEFINES = -D NO_SSL2 -D NO_SSL3 -D _CRT_SECURE_NO_WARNINGS # SSL Libs: # 1. ${LIBCRYPTO}.dll # 2. ${LIBSSL}.dll # Where LIBCRYPTO (#1.) and LIBSSL (#2.) are defined as follows: # v1.1: libcrypto-1.1-x64.dll and libssl-1.1-x64.dll # v3: libcrypto-3-x64.dll and libssl-3-x64.dll # On *nix libcrypto.so.* and libssl.so.* (where suffix is a version indicator). |
︙ | ︙ |