harbour / core

Portable, xBase compatible programming language and environment
https://harbour.github.io/
Other
322 stars 207 forks source link

Ubuntu18 with openssl 1.1.0g #177

Open QuentinRichard opened 5 years ago

QuentinRichard commented 5 years ago

Hi all, did you try to compil harbour on Ubuntu 18 with Openssl1.1.0g ?

I have some compilation error swith "contrib/hbssl/ssl.c", "contrib/hbssl/evpenc.c" and "contrib/hbssl/evpciph.c" because the library have change and some structures definition's become private.

I think that it breaks the retro-compatibility with the older version of that library. I can share my patch with you but i prefere to exchange with you before that (i am not an expert about the compilation rule of harbour)

tuffnatty commented 5 years ago

The issue has been discussed on https://groups.google.com/d/msg/harbour-devel/KcAT-bT7-L4/nIuidgpcBAAJ but one thing has changed since then: openssl 1.1.x is now stable

tuffnatty commented 5 years ago

@QuentinRichard It should be resolved after commit 611a7ac2817cefc999020f8942356d60c79a0c57. Please test with a current build.

felixd commented 5 years ago

@QuentinRichard @tuffnatty I believe OpenSSL problem is still not fixed ;)

Building Harbour Core on Ubuntu:

https://travis-ci.org/felixd/docker-harbour/jobs/478628364#L2183

/harbour/bin/linux/clang/hbmk2 -quiet -width=0 -autohbm- @hbpre -inc -jobs=8 ../contrib/hbssl/hbssl.hbp @hbpost
../../../../../contrib/hbssl/bio.c:769:17: warning: implicit declaration of function 'BIO_get_conn_int_port' is invalid in C99 [-Wimplicit-function-declaration]
      hb_retnl( BIO_get_conn_int_port( bio ) );
                ^
1 warning generated.

Using this build to run RESTful example gives this error:

https://travis-ci.org/felixd/docker-harbour-example/jobs/478629327#L401

/usr/local/lib/harbour/libhbssl.a(bio.o): In function `HB_FUN_BIO_GET_CONN_INT_PORT':
bio.c:(.text+0x15f3): undefined reference to `BIO_get_conn_int_port'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
hbmk2: Error: Running linker. 1

RESTful project runs without issues on HB3.4 (https://travis-ci.org/felixd/docker-harbour/builds/478628361)

Regards, Paweł.

BTW, I think it would be wise to use Harbour on Docker for testing (same testing env on every build).

Examples are here: https://github.com/felixd/docker-harbour-example

Mercoory commented 5 years ago

I also confirm the OpenSSL problem.

Built on vanilla Ubuntu 18.04, with Openssl1.1.0g:

While compiling the hbssl contrib package:

/harbour-core/bin/linux/gcc/hbmk2 -quiet -width=0 -autohbm- @hbpre -inc ../contrib/hbssl/hbssl.hbp @hbpost ../../../../../contrib/hbssl/bio.c: In function ‘HB_FUN_BIO_GET_CONN_INT_PORT’: ../../../../../contrib/hbssl/bio.c:769:17: warning: implicit declaration of function ‘BIO_get_conn_int_port’; did you mean ‘BIO_get_conn_port’? [-Wimplicit-function-declaration] hb_retnl( BIO_get_conn_int_port( bio ) ); ^~~~~~~~~~~~~~~~~~~~~ BIO_get_conn_port

Compiling a program using hbssl: /opt/harbour/lib/libhbssl.a(bio.o): In functionHB_FUN_BIO_GET_CONN_INT_PORT': bio.c:(.text+0x15f3): undefined reference to BIO_get_conn_int_port' clang: error: linker command failed with exit code 1 (use -v to see invocation) hbmk2: Error: Running linker. 1