Support Openssl 3.2
Currently, the project only support openssl 3.1.x, it would be nice to also support the latest openssl (openssl 3.2.x)
https://github.com/openlink/virtuoso-opensource/blob/33f93b139ccbab42282bd36e81f301699320ae58/configure.ac#L917-L918
relates to https://github.com/Homebrew/homebrew-core/pull/162657
Also since OpenSSL 1.1 is already EOL on 11 Sep 2023, it would be also good to drop its support
https://www.openssl.org/blog/blog/2023/03/28/1.1.1-EOL/index.html
it would be nice to also support the latest openssl (openssl 3.2.x)
We will have a look at openssl 3.2.x and see what needs to be done in Virtuoso to support this new version.
Also since OpenSSL 1.1 is already EOL on 11 Sep 2023, it would be also good to drop its support
There are a number of important Linux LTS releases such as Redhat 7.x, RedHat 8.x, Ubuntu 18.04, Ubuntu 20.04 that all use OpenSSL 1.1 . The organizations behind these versions have always back-ported patches from the OpenSSL organization into their released version therefor all of these distros are still completely safe to port on.
So from a portability point of view i see no reason to drop support for OpenSSL 1.1.
it would be nice to also support the latest openssl (openssl 3.2.x)
We will have a look at openssl 3.2.x and see what needs to be done in Virtuoso to support this new version.
Mostly just relaxing the constraint of the openssl check.
we (homebrew) did the openssl 3.2 upgrade last year, but did not find any breaking changes from system dependency perspective.
So from a portability point of view i see no reason to drop support for OpenSSL 1.1.
make sense.
I have pushed commit 9a98bf717275720bc63893e2fdceae127c2a8eb4 to develop/7 to relax the check in configure.ac
I need to setup a new CI environment with this version of OpenSSL 3.2, so for now i am keeping this issue open until i have fully tested this.
I sort of already tried that commit in my local, it failed in the similar way as CI.
wrt macOS CI, I can probably contribute a bit.
This is the error I am seeing
clang -DHAVE_CONFIG_H -I. -I../../../libsrc/Dk -g -O2 -fno-strict-aliasing -fno-omit-frame-pointer -Wall -Wextra -Wformat -Werror=format-security -Werror=implicit-function-declaration -DNDEBUG -DPOINTER_64 -I/private/tmp/virtuoso-20240217-73833-dm74xn/virtuoso-opensource-7.2.12/libsrc/Xml.new -DOPENSSL_NO_KRB5 -D_USRDLL -I../../../libsrc -I../../../libsrc/Dk -I../../../libsrc/Wi -I../../../libsrc/plugin -I../../../libsrc/langfunc -I../../../libsrc/odbcsdk/include -g -O2 -c ../../../libsrc/plugin/import_gate_virtuoso.c -o geos_la-import_gate_virtuoso.o >/dev/null 2>&1
./geos_export_from_virtgeo.cpp:17:10: fatal error: 'geos/geom/CoordinateSequenceFactory.h' file not found
#include <geos/geom/CoordinateSequenceFactory.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./geos_import_to_virtgeo.cpp:17:
In file included from ./geos_plugin.h:6:
In file included from /opt/homebrew/include/geos.h:26:
/opt/homebrew/include/geos/util.h:38:12: error: no member named 'make_unique' in namespace 'std'
using std::make_unique;
~~~~~^
In file included from ./geos_plugin.cpp:32:
In file included from /opt/homebrew/include/geos.h:26:
/opt/homebrew/include/geos/util.h:38:12: error: no member named 'make_unique' in namespace 'std'
using std::make_unique;
~~~~~^
./geos_plugin.cpp:33:10: fatal error: 'geos/geom/CoordinateArraySequence.h' file not found
#include <geos/geom/CoordinateArraySequence.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./geos_import_to_virtgeo.cpp:55:25: error: cannot initialize a variable of type 'const Coordinate *' with an rvalue of type 'const CoordinateXY *'
const Coordinate* c = geom.getCoordinate();
^ ~~~~~~~~~~~~~~~~~~~~
./geos_import_to_virtgeo.cpp:86:93: error: no member named 'z' in 'geos::geom::CoordinateXY'
for (int i = 0; i < len; i++) g->_.pline.Zs[i] = geom.getGeometryN(i)->getCoordinate()->z;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^
1 error generated.
I am not sure this last issue has anything to do with the version of OpenSSL.
This is a problem with the geos plugin, and it looks like you are trying to use a newer version of the libgeos library than we documented to use.
From README.GeoSPARQL.md:
The
proj4andgeosplugins can only be built against very specific versions of third party libraries, which may not be available on every OS distribution, so will probably need to be built by you prior to building Virtuoso.
Package Version From proj4.9.3https://proj4.org geo3.5.1https://www.osgeo.org/geos/
@pkleef what is the status with openssl 3.3.1 support? It seems fine with building against openssl 3.0.x (see https://github.com/Homebrew/homebrew-core/pull/174600)
@pkleef gentle ping :)
I will have a look early next week.
I tested the both the latest OpenSSL 3.2.x and OpenSSL 3.3.x libraries with Virtuoso Open Source and it passes building and running the testsuite, so i pushed commit a93d79d388ccf170d61244be30d40716744c75ba to develop/7
I would like to remind everyone to use one github issue per problem, so i am closing this issue. If you have additional problems building VOS then please file new issue.