Deutsch   English   Français   Italiano  
<104ec79$2am3h$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: nntp.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Alan Grunwald <nospam.nurdglaw@gmail.com>
Newsgroups: comp.lang.tcl
Subject: Re: Can't build TclTLS 2.0b1
Date: Sun, 6 Jul 2025 18:35:29 +0100
Organization: A noiseless patient Spider
Lines: 179
Message-ID: <104ec79$2am3h$1@dont-email.me>
References: <1049lbt$12gnk$1@dont-email.me>
 <0567ed22-5320-4ee4-b8bb-6f94ae0b37ae@comcast.net>
 <104dtd8$277hu$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 06 Jul 2025 19:36:42 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="0014afaf809e6a1878576cec63aca89a";
	logging-data="2447473"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+PE3fMkDIYorFMP4dnemYA+os/aGHNtME="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:qsLXWO2Cz5iUGyzA94CDD8KPbr0=
Content-Language: en-US
In-Reply-To: <104dtd8$277hu$1@dont-email.me>

On 06/07/2025 14:22, Alan Grunwald wrote:
> On 06/07/2025 02:09, Brian wrote:
>> Usually this means it found an older version of OpenSSL. Check which 
>> version of OpenSSL you have on your system. You need 1.1.1 or later. 
>> On the command line:
>>
>> openssl --version
>>
>>
>> Also you mixed 9.0.1 and 9.0.2. in your paths. When you run the 
>> configure script, check the configure output to see what it found. A 
>> blank means it will use the default path. The key is that it says it 
>> found the ssl.h file. For example:
>>
>> ...
>> checking for Tcl configuration... found /opt/tcl9/lib64/tcl/tclConfig.sh
>> ...
>> checking for Tcl public headers... /opt/tcl9/include
>> ...
>> checking for OpenSSL directory... /usr
>> checking for OpenSSL include directory... /usr/include
>> checking for ssl.h... yes
>> checking for OpenSSL lib directory... /usr/lib64
>> checking for OpenSSL pkgconfig...
>> checking for tclsh... /opt/tcl9/bin/tclsh9.0
>>
>>
>> If the OpenSSL is installed in /usr, then the command line args aren't 
>> needed. You also don't need them if you have pkgconfig on your system 
>> configured. However if you want to be sure to use the right version, 
>> here's what I use on OpenSuSe:
>>
>> ./configure --enable-64bit --prefix=/opt/tcl9 --exec-prefix=/opt/tcl9 
>> --libdir=/opt/tcl9/lib64/tcl --with-openssl-dir=/usr 
>> --with-openssl-includedir=/usr/include --with-openssl-libdir=/usr/lib64
>>
>>
>>
>>
>> On 7/4/25 5:40 PM, Alan Grunwald wrote:
>>> I replied to the announcement of this release back in February to say 
>>> that I couldn't build it, but I seem to have given up after a couple 
>>> of very useful suggestions from the author.
>>>
>>> After seeing the announcement of Tcl 9.0.2 earlier this week, I am 
>>> trying again...
>>>
>>> I'm running Linux Mint, 64-bit. I have built Tcl 9.0.2 in 
>>> /opt/tcl9.0.2 and it seems to be working fine, so it's just(?!) a 
>>> question of rebuilding the external and homebrew packages that the 
>>> half-dozen scripts I use regularly rely on.
>>>
>>> I've downloaded tcltls-2.0b1.tar.gz (to Downloads) and untarred it 
>>> (to Downloads/tcltls-2.0b1)
>>>
>>> Using my preferred workflow, I'm sitting in my home directory (the 
>>> parent of Downloads) and have typed
>>>
>>> (cd Downloads/tcltls-2.0b1; ./configure --enable-64bit --prefix=/opt/ 
>>> tcl9.0.2 --with-tcl=/opt/tcl9.0.1/lib --with-openssl-includedir=/usr/ 
>>> include)
>>>
>>> followed by
>>>
>>> (cd Downloads/tcltls-2.0b1; make)
>>>
>>> This fails quickly with a compilation error:
>>>
>>> ./generic/tlsBIO.c: In function ‘BioOutput’:
>>> ./generic/tlsBIO.c:117:32: error: ‘BIO_FLAGS_IN_EOF’ undeclared 
>>> (first use in this function); did you mean ‘BIO_FLAGS_READ’?
>>>    117 |             BIO_set_flags(bio, BIO_FLAGS_IN_EOF);
>>>        |                                ^~~~~~~~~~~~~~~~
>>>
>>> The compilation command was
>>>
>>> gcc -DPACKAGE_NAME=\"tls\" -DPACKAGE_TARNAME=\"tls\" - 
>>> DPACKAGE_VERSION=\"2.0b1\" -DPACKAGE_STRING=\"tls\ 2.0b1\" - 
>>> DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DBUILD_tls=/\*\*/ - 
>>> DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 
>>> -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 
>>> -DHAVE_SYS_STAT_H=1 - DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 
>>> -DSTDC_HEADERS=1 - DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 
>>> -D_THREAD_SAFE=1 -DTCL_THREADS=1 - DUSE_TCL_STUBS=1 
>>> -DUSE_TCLOO_STUBS=1 -DMODULE_SCOPE=extern\ 
>>> __attribute__\(\(__visibility__\(\"hidden\"\)\)\) -DHAVE_HIDDEN=1 - 
>>> DHAVE_CAST_TO_UNION=1 -DHAVE_STDBOOL_H=1 -DTCL_WIDE_INT_IS_LONG=1 - 
>>> DTCL_CFG_OPTIMIZED=1 -DUSE_TCL_STUBS=1 -DNO_SSL3=1 
>>> -D_FORTIFY_SOURCE=2 - fstack-protector-all -fno-strict-overflow 
>>> -I/usr/include -Wno- deprecated-declarations -I/usr/include 
>>> -I"/opt/tcl9.0.2/include" -I. -O2 -fomit-frame-pointer -DNDEBUG -Wall 
>>> -fPIC -pipe -m64 -O2 -fomit- frame-pointer -DNDEBUG -Wall -fPIC  -c 
>>> `echo ./generic/tlsBIO.c` -o tlsBIO.o
>>>
>>> Now, line 30 of Downloads/tcltls-2.0b1/generic/tlsBIO.c is
>>>
>>> #include <openssl/bio.h>
>>>
>>> and line 209 of /usr/include/openssl/bio.h is
>>>
>>> # define BIO_FLAGS_IN_EOF        0x800
>>>
>>> What's going on?
>>>
>>> Following the advice in February, I believe I am now putting the 
>>> right value on the --with-openssl-includedir flag to configure (I no 
>>> longer include /openssl). I'm suspicious that make includes
>>>
>>> -I/usr/include
>>>
>>> twice in the compile command but I don't think it's causing a problem.
>>>
>>> Help!
>>>
>>> Alan
>>
> Brian,
> 
> Thanks for spotting that I've mixed 9.0.1 and 9.0.2. Not clever :-(.
> 
> I've corrected that, but maybe unsurprisingly it made no difference.
> 
> openssl --version returns a syntax error, but
> 
> $ openssl version
> OpenSSL 1.1.1  11 Sep 2018
> 
> 
> I looked at the extract from the configure output you posted, and while 
> mine does find ssl.h, it doesn't say anything about the SSL directory:
> 
> checking for enable hardening... yes
> checking for static linking of openSSL libraries... no
> checking for OpenSSL directory...
> checking for OpenSSL include directory... /usr/include
> checking for ssl.h... yes
> checking for OpenSSL lib directory...
> checking for OpenSSL pkgconfig...
> 
> relevant lines from config.log:
> 
> configure:9440: checking for static linking of openSSL libraries
> configure:9442: result: no
> configure:9461: checking for OpenSSL directory
> configure:9463: result:
> configure:9485: checking for OpenSSL include directory
> configure:9487: result: /usr/include
> configure:9491: checking for ssl.h
> configure:9496: result: yes
> configure:9528: checking for OpenSSL lib directory
> configure:9530: result:
> configure:9567: checking for OpenSSL pkgconfig
> configure:9569: result:
> 
> and lines 9461-3 of configure are
> 
>      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for OpenSSL 
> directory" >&5
> printf %s "checking for OpenSSL directory... " >&6; }
>      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $openssldir" >&5
> printf "%s\n" "$openssldir" >&6; }
> 
> It seems that configure isn't setting 'openssl' properly which is likely 
> to be a bad thing.
> 
> 
> I regret I don't remember installing OpenSSL so can't say where it is,
> 
> $ which openssl
> /usr/local/bin/openssl
> 
> What files are you pointing to with --libdir, --with-openssl-dir and 
> --with-openssl-libdir? I can searhc for them and specify the flags 
> appropriately.
> 
> Alan
> 
Sorry, ...isn't setting 'openssldir' ...
========== REMAINDER OF ARTICLE TRUNCATED ==========