Re: [OpenSmalltalk/opensmalltalk-vm] Note on runtime/tcl-8/tcl-openssl which provides tls.h (8f71c4a)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: [OpenSmalltalk/opensmalltalk-vm] Note on runtime/tcl-8/tcl-openssl which provides tls.h (8f71c4a)

David T Lewis
 

That is very strange.
It should not be necessary to do this dance.

I did not now that libtls was used outside of LibreSSL. Can you give some more info?


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

<script type="application/ld+json">[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/8f71c4a19b6ced608d2417210d152d19feb64ae7#commitcomment-38873395", "url": "https://github.com/OpenSmalltalk/opensmalltalk-vm/commit/8f71c4a19b6ced608d2417210d152d19feb64ae7#commitcomment-38873395", "name": "View Commit" }, "description": "View this Commit on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]</script>
Reply | Threaded
Open this post in threaded view
|

Re: [OpenSmalltalk/opensmalltalk-vm] Note on runtime/tcl-8/tcl-openssl which provides tls.h (8f71c4a)

stes
 
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256


It's not normally a problem, there is no "tls.h" as far as I know,
except for a perhaps (erroneously?) delivered tls.h by TCL:

See the document "HowToBuild" in build.sunos64x64 :

OpenSSL
- -------

We have tested with openssl 1.0.2 and build the VM with the option:

        --disable-dynamicopenssl

You may have to uninstall packages that provide/ usr/include/tls.h.

The configure script may think that it has to enable TLS support,
if it finds the tls.h header file.

The package runtime/tcl-8 or runtime/tcl-8/tcl-openssl may provide tls.h.

In order to avoid this problem, we build the VM with the option:

        --without-libtls


Thanks,
David Stes

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBCAAGBQJerBijAAoJEAwpOKXMq1MajagH+gM3G31nU8UQwfUfdvzW5O8X
PaHUtQ0zf5MALvvYufCBla3GXzXa224mgHLEuvVdmOdBMJXl2We2IIyNQPqzxVg5
dwKgR0PMZXsIRJmTiE/penN7w2COxrOpf0xgJ7B2pJe+OddDq8DDMKpqGZd3xbEy
IG+Wf9FcRdHCmigNkjNXzT2zvFn31qUsALyqQPzi6Flmy7iFppmV14YICi2wtOz3
jlnnEDmjuI1+MXfyCGR+2nkXILbIE9JX90F4FSXd0RWagoWzo0zmNRYiuFcQzIBy
Ov1KfhGbze2w3a4LAbauEoyiizp2cZkpaWcL3p/9/JBaQf4F0Weo6PKvXN4hj/4=
=SXgj
-----END PGP SIGNATURE-----




--
Sent from: http://forum.world.st/Squeak-VM-f104410.html
Reply | Threaded
Open this post in threaded view
|

Re: [OpenSmalltalk/opensmalltalk-vm] Note on runtime/tcl-8/tcl-openssl which provides tls.h (8f71c4a)

Tobias Pape
 
Hi

> On 01.05.2020, at 14:41, stes <[hidden email]> wrote:
>
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
>
> It's not normally a problem, there is no "tls.h" as far as I know,
> except for a perhaps (erroneously?) delivered tls.h by TCL:
>
> See the document "HowToBuild" in build.sunos64x64 :
>
> OpenSSL
> - -------
>
> We have tested with openssl 1.0.2 and build the VM with the option:
>
>        --disable-dynamicopenssl
>
> You may have to uninstall packages that provide/ usr/include/tls.h.
>
> The configure script may think that it has to enable TLS support,
> if it finds the tls.h header file.
>
> The package runtime/tcl-8 or runtime/tcl-8/tcl-openssl may provide tls.h.
>
> In order to avoid this problem, we build the VM with the option:
>
>        --without-libtls

Yes, my comment was about exactly that part in the commit.

Could you maybe suggest a better check in
        https://github.com/OpenSmalltalk/opensmalltalk-vm/blob/Cog/platforms/unix/plugins/SqueakSSL/acinclude.m4#L17

? Does the tcl package also provide  a libtls.so or so? If not we could check for that instead.

Best regards
        -Tobias

Reply | Threaded
Open this post in threaded view
|

Re: [OpenSmalltalk/opensmalltalk-vm] Note on runtime/tcl-8/tcl-openssl which provides tls.h (8f71c4a)

stes
 
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256


I don't immediately see a reason to change the search logic in configure,
it was possible to override the configure autodetection with
--without-libtls.

Perhaps searching for the presence of the library object files has the same
sort of problems.

Thanks,
David Stes

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBCAAGBQJerCp4AAoJEAwpOKXMq1MaQZIH/3X9dpi4lvn4xALm3WzbVH7D
T3r+HEMXl7j9wckUcWCRIYn+NCB6HdJUNjLtYqIlfvMcGY2NfAbDeRth6XxUFONW
RKVBfr184vRPKMSQt4hIHgNH8CMMBXUKA6OY6etMg4LS/asTVdLenD1ypjGCXVdf
oLp8yYrlo+W4iVZsDRg2QrYozrhFcL9VutgW7QxeyzjWhJnV8MmtTwEgpop6IH9E
pmorNB59BueCSDWZU+EISniWMAAyXL6x/jKJBTR87rIFOTAxllLR72avfH23oVOj
kBpZhjA3G+S111WlPqsF15YidJd+MYImlxiDovj70SuSpB2fypFIwBLohmKMnm8=
=lubK
-----END PGP SIGNATURE-----




--
Sent from: http://forum.world.st/Squeak-VM-f104410.html
Reply | Threaded
Open this post in threaded view
|

Re: [OpenSmalltalk/opensmalltalk-vm] Note on runtime/tcl-8/tcl-openssl which provides tls.h (8f71c4a)

Tobias Pape
 
Hi

> On 01.05.2020, at 15:56, stes <[hidden email]> wrote:
>
> I don't immediately see a reason to change the search logic in configure,
> it was possible to override the configure autodetection with
> --without-libtls.
>
> Perhaps searching for the presence of the library object files has the same
> sort of problems.

I really want to avoid to have user-configural options being necessary for a default install.

./configure should be sufficient to get a working VM regardless of operating system.

If that is not the case, we got to change the configure-mechanics.

Thanks for uncovering that, tho :)

Best regards
        -Tobias
Reply | Threaded
Open this post in threaded view
|

Re: [OpenSmalltalk/opensmalltalk-vm] Note on runtime/tcl-8/tcl-openssl which provides tls.h (8f71c4a)

K K Subbu
 
On 01/05/20 8:16 pm, Tobias Pape wrote:
> I really want to avoid to have user-configural options being
> necessary for a default install.
>
> ./configure should be sufficient to get a working VM regardless of
> operating system.
>
> If that is not the case, we got to change the configure-mechanics.

+1. ./configure serves two purposes - detecting host/toolchain/library
configurations on the fly and handling feature specific variable
settings for a build Makefile. We also have separate files like
plugins.int, plugins.ext etc that go into this Makefile.

It would be better if the second purpose (i.e. feature vars) is
consolidated into a conf file containing simple name=value pairs. Such a
file is much easier to generate or edit from Squeak or platform tools. A
build Makefile can pick up all variable settings from such files. We
won't need separate files like plugins.int, plugins.ext etc.

Regards .. Subbu
Reply | Threaded
Open this post in threaded view
|

Re: [OpenSmalltalk/opensmalltalk-vm] Note on runtime/tcl-8/tcl-openssl which provides tls.h (8f71c4a)

Eliot Miranda-2
 
Hi Subbu, Hi Tobias,

> On May 2, 2020, at 6:36 AM, K K Subbu <[hidden email]> wrote:
>
> On 01/05/20 8:16 pm, Tobias Pape wrote:
>> I really want to avoid to have user-configural options being
>> necessary for a default install.
>> ./configure should be sufficient to get a working VM regardless of
>> operating system.
>> If that is not the case, we got to change the configure-mechanics.
>
> +1. ./configure serves two purposes - detecting host/toolchain/library configurations on the fly and handling feature specific variable settings for a build Makefile. We also have separate files like plugins.int, plugins.ext etc that go into this Makefile.
>
> It would be better if the second purpose (i.e. feature vars) is consolidated into a conf file containing simple name=value pairs. Such a file is much easier to generate or edit from Squeak or platform tools. A build Makefile can pick up all variable settings from such files. We won't need separate files like plugins.int, plugins.ext etc.

We need to tease things apart a little further.

configure does (at least) these things
- detects platform information (word sizes, include files and their contents, presence or absence of additional libraries)
- checks if chosen tool chain can compile and link an executable program

hand-crafted code takes configure output and plugins.int/.ext to produce very poor makefiles that font even maintain dependency information (so that code is not recompiled when included files are modified, a serious deficiency)

plugins.int/plugins.ext & branding files (mvm script in configure builds, too-level Makefiles in Windows & MacOS builds) specify bane and contents of a VM bundle

Note that this last tailoring step is essential; different users want to be able to build specific VMs with specific contents.  Those specific contents don’t depend on configure, they depend on the builder’s requirements.


So no, we do /not/ want to conflate configuring a build and determining what is available on a specific platform.

It does make sense to use configure to derive platform-specific information.  But as I’m tired of trying to explain, this needs to be done only once per platform, not once for every build on a platform.  For example, a structure which generated a configure.h in
      build.FooSizeProc/include/configure.h
would be a huge improvement (for those that have to do lots of vm builds in their development) over the per-build Linux mess.

But it does not make sense to, for example, not build any doubt d plugins because the current platform is missing libraries that should have been installed. It makes sense not to build sound plugins on platforms that don’t support sound.  On platforms where sound is supported what we’d like is for the build system to complain that sound cant be built rather than silently not building sound plugins.

As far as the dependency issue and the hand-crafted code that autogenerates makefiles, it is brittle, opaque, has a phase problem (one has to run a compile step then a configure step before changes propagate to the actual build), and deficient (ni dependency information). Makefiles written as per Windows and MacOS aren’t subject to these flaws.

>
> Regards .. Subbu