so I'm using OpenSSL there, with pkg-config to get CFLAGS and LDFLAGS.
I had noticed that for OpenSSL 3.3 pkg-config (eopenssl33) does not
provide -I or -L.
OpenSSL fiddled with their pkgconfig generation between 3.2 and 3.3.
It used to be generated from their Makefile, now it is generated from
some .in files, which means we need to hook in there. I saw that when
I updated the port, but then forgot to deal with it.
The below is a bit hackier than I would like it to be, but it generates
.pc files that differ only in the expected version number changes and
an immaterial trailing whitespace change.
I need to ponder this some more (we still have way more hardcoded
eopenssl${V} than I wold like us to have), but I'll land some version
of this soon.
sthen, any concerns if we backport something along these lines to -
stable?
Index: Makefile
===================================================================
RCS file: /cvs/ports/security/openssl/3.3/Makefile,v
diff -u -p -r1.7 Makefile
--- Makefile 3 Sep 2024 15:30:21 -0000 1.7
+++ Makefile 7 Dec 2024 03:41:25 -0000
@@ -8,6 +8,7 @@ V= 3.3.2
PKGNAME= openssl-${V}
PKGSPEC= openssl->=3.3v0,<3.4v0
EPOCH= 0
+REVISION= 0
SHLIBVER= 27.0
SHARED_LIBS= crypto ${SHLIBVER} \
Index: patches/patch-exporters_pkg-config_libcrypto_pc_in
===================================================================
RCS file: patches/patch-exporters_pkg-config_libcrypto_pc_in
diff -N patches/patch-exporters_pkg-config_libcrypto_pc_in
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-exporters_pkg-config_libcrypto_pc_in 7 Dec 2024
03:38:01 -0000
@@ -0,0 +1,12 @@
+Index: exporters/pkg-config/libcrypto.pc.in
+--- exporters/pkg-config/libcrypto.pc.in.orig
++++ exporters/pkg-config/libcrypto.pc.in
+@@ -9,7 +9,7 @@ libdir={- if (defined $OpenSSL::safe::installdata::LIB
+ $OpenSSL::safe::installdata::libdir[0];
+ } -}
+ includedir={- $OUT = '';
+- $OUT .= '${prefix}/' . $_ . ' '
++ $OUT .= '${prefix}/' . $_ . '/' . 'eopenssl33' . ' '
+ foreach
(@OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX); -}
+ enginesdir=${libdir}/{-
$OpenSSL::safe::installdata::ENGINESDIR_REL_LIBDIR[0] -}
+ modulesdir=${libdir}/{-
$OpenSSL::safe::installdata::MODULESDIR_REL_LIBDIR[0] -}
Index: patches/patch-exporters_pkg-config_libssl_pc_in
===================================================================
RCS file: patches/patch-exporters_pkg-config_libssl_pc_in
diff -N patches/patch-exporters_pkg-config_libssl_pc_in
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-exporters_pkg-config_libssl_pc_in 7 Dec 2024
03:39:25 -0000
@@ -0,0 +1,19 @@
+Index: exporters/pkg-config/libssl.pc.in
+--- exporters/pkg-config/libssl.pc.in.orig
++++ exporters/pkg-config/libssl.pc.in
+@@ -9,13 +9,13 @@ libdir={- if (defined $OpenSSL::safe::installdata::LIB
+ $OpenSSL::safe::installdata::libdir[0];
+ } -}
+ includedir={- $OUT = '';
+- $OUT .= '${prefix}/' . $_ . ' '
++ $OUT .= '${prefix}/' . $_ . '/' . 'eopenssl33' . ' '
+ foreach
(@OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX); -}
+
+ Name: OpenSSL-libssl
+ Description: Secure Sockets Layer and cryptography libraries
+ Version: {- $OpenSSL::safe::installdata::VERSION -}
+-Requires.private: libcrypto
++Requires.private: libecrypto33
+ Libs: -L${libdir} -lssl
+ Cflags:{- $OUT = ' -I${includedir}';
+ if (scalar
@OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX > 1) {
Index: patches/patch-exporters_pkg-config_openssl_pc_in
===================================================================
RCS file: patches/patch-exporters_pkg-config_openssl_pc_in
diff -N patches/patch-exporters_pkg-config_openssl_pc_in
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-exporters_pkg-config_openssl_pc_in 7 Dec 2024
03:38:18 -0000
@@ -0,0 +1,16 @@
+Index: exporters/pkg-config/openssl.pc.in
+--- exporters/pkg-config/openssl.pc.in.orig
++++ exporters/pkg-config/openssl.pc.in
+@@ -9,10 +9,10 @@ libdir={- if (defined $OpenSSL::safe::installdata::LIB
+ $OpenSSL::safe::installdata::libdir[0];
+ } -}
+ includedir={- $OUT = '';
+- $OUT .= '${prefix}/' . $_ . ' '
++ $OUT .= '${prefix}/' . $_ . '/' . 'eopenssl33' . ' '
+ foreach
(@OpenSSL::safe::installdata::INCLUDEDIR_REL_PREFIX); -}
+
+ Name: OpenSSL
+ Description: Secure Sockets Layer and cryptography libraries and tools
+ Version: {- $OpenSSL::safe::installdata::VERSION -}
+-Requires: libssl libcrypto
++Requires: libessl33 libecrypto33