From e0cb3a912b678bd3e8b7216950545ceadf0317c5 Mon Sep 17 00:00:00 2001 From: "Ernest L. Williams Jr." Date: Wed, 11 Jun 2025 14:53:39 -0700 Subject: [PATCH 1/5] add support for PVXS with tls --- src/Makefile | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/Makefile b/src/Makefile index a599ec7c..f2d2f817 100644 --- a/src/Makefile +++ b/src/Makefile @@ -7,6 +7,26 @@ include $(TOP)/configure/CONFIG_PY # return c++ types. USR_CPPFLAGS += -D__PYX_EXTERN_C=extern +USR_INCLUDES += -I$(OPENSSL_INCLUDE) + +# ====================================================== +# PATH TO "NON EPICS" EXTERNAL PACKAGES: USER LIBRARIES +# ====================================================== +ssl_DIR = $(OPENSSL_LIB) +crypto_DIR = $(OPENSSL_LIB) +# ====================================================== + +# ====================================================== +# LINK "NON EPICS" EXTERNAL PACKAGE LIBRARIES Statically +# ====================================================== +#USR_LIBS += ssl crypto + +# ======================================================== +# LINK "NON EPICS" EXTERNAL PACKAGE LIBRARIES Dynamically +# ======================================================== +LIB_SYS_LIBS += ssl crypto event event_openssl event_pthreads +# ======================================================= + # place .so in subdirectory INSTALL_SHRLIB = $(PY_INSTALL_DIR)/p4p From 9de07057d8ba17f2b9e936b594d84a9c83839b30 Mon Sep 17 00:00:00 2001 From: "Ernest L. Williams Jr." Date: Wed, 11 Jun 2025 15:26:02 -0700 Subject: [PATCH 2/5] add support for PVXS with tls --- configure/CONFIG_SITE | 3 +++ src/Makefile | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/configure/CONFIG_SITE b/configure/CONFIG_SITE index 3ef9b4c2..f3f22ac2 100644 --- a/configure/CONFIG_SITE +++ b/configure/CONFIG_SITE @@ -32,6 +32,9 @@ CROSS_COMPILER_TARGET_ARCHS = # take effect. #IOCS_APPL_TOP = +# Uncomment the appropriate line or include in your private $(TOP)/../CONFIG_SITE.local +# PVXS_WITH_TLS = YES + -include $(TOP)/configure/CONFIG_SITE.local -include $(TOP)/../CONFIG_SITE.local diff --git a/src/Makefile b/src/Makefile index f2d2f817..d7e955ee 100644 --- a/src/Makefile +++ b/src/Makefile @@ -7,6 +7,9 @@ include $(TOP)/configure/CONFIG_PY # return c++ types. USR_CPPFLAGS += -D__PYX_EXTERN_C=extern + + +ifeq ($PVXS_WITH_TLS),YES) USR_INCLUDES += -I$(OPENSSL_INCLUDE) # ====================================================== @@ -26,6 +29,8 @@ crypto_DIR = $(OPENSSL_LIB) # ======================================================== LIB_SYS_LIBS += ssl crypto event event_openssl event_pthreads # ======================================================= +endif # PVXS_WITH_TLS + # place .so in subdirectory INSTALL_SHRLIB = $(PY_INSTALL_DIR)/p4p From 538ed47d9f2466b5a1e7a9985afed30a43614c68 Mon Sep 17 00:00:00 2001 From: "Ernest L. Williams Jr." Date: Wed, 11 Jun 2025 21:22:23 -0700 Subject: [PATCH 3/5] fix typo in conditional logic for PVXS_WITH_TLS=YES --- src/Makefile | 38 ++++++++++++++++---------------------- 1 file changed, 16 insertions(+), 22 deletions(-) diff --git a/src/Makefile b/src/Makefile index d7e955ee..f863dddb 100644 --- a/src/Makefile +++ b/src/Makefile @@ -9,28 +9,22 @@ USR_CPPFLAGS += -D__PYX_EXTERN_C=extern -ifeq ($PVXS_WITH_TLS),YES) -USR_INCLUDES += -I$(OPENSSL_INCLUDE) - -# ====================================================== -# PATH TO "NON EPICS" EXTERNAL PACKAGES: USER LIBRARIES -# ====================================================== -ssl_DIR = $(OPENSSL_LIB) -crypto_DIR = $(OPENSSL_LIB) -# ====================================================== - -# ====================================================== -# LINK "NON EPICS" EXTERNAL PACKAGE LIBRARIES Statically -# ====================================================== -#USR_LIBS += ssl crypto - -# ======================================================== -# LINK "NON EPICS" EXTERNAL PACKAGE LIBRARIES Dynamically -# ======================================================== -LIB_SYS_LIBS += ssl crypto event event_openssl event_pthreads -# ======================================================= -endif # PVXS_WITH_TLS - +ifeq ($(PVXS_WITH_TLS),YES) + USR_INCLUDES += -I$(OPENSSL_INCLUDE) + + # ====================================================== + # PATH TO "NON EPICS" EXTERNAL PACKAGES: USER LIBRARIES + # ====================================================== + ssl_DIR = $(OPENSSL_LIB) + crypto_DIR = $(OPENSSL_LIB) + # ====================================================== + + # ======================================================== + # LINK "NON EPICS" EXTERNAL PACKAGE LIBRARIES Dynamically + # ======================================================== + LIB_SYS_LIBS += ssl crypto event event_openssl event_pthreads + # ======================================================= +endif # place .so in subdirectory INSTALL_SHRLIB = $(PY_INSTALL_DIR)/p4p From 854eea8427b8c9acb510dc3e2f9bc7c65d51ac95 Mon Sep 17 00:00:00 2001 From: "Ernest L. Williams Jr." Date: Fri, 13 Jun 2025 23:34:05 -0700 Subject: [PATCH 4/5] required external libraries will be pulled in from the <>/pvxs//cfg --- src/Makefile | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/src/Makefile b/src/Makefile index f863dddb..2c886dd0 100644 --- a/src/Makefile +++ b/src/Makefile @@ -8,21 +8,14 @@ include $(TOP)/configure/CONFIG_PY USR_CPPFLAGS += -D__PYX_EXTERN_C=extern - -ifeq ($(PVXS_WITH_TLS),YES) - USR_INCLUDES += -I$(OPENSSL_INCLUDE) - - # ====================================================== - # PATH TO "NON EPICS" EXTERNAL PACKAGES: USER LIBRARIES - # ====================================================== - ssl_DIR = $(OPENSSL_LIB) - crypto_DIR = $(OPENSSL_LIB) - # ====================================================== - - # ======================================================== +ifeq ($(P4P_WITH_TLS),YES) + # ========================================================== # LINK "NON EPICS" EXTERNAL PACKAGE LIBRARIES Dynamically - # ======================================================== - LIB_SYS_LIBS += ssl crypto event event_openssl event_pthreads + # ssl crypto event event_openssl event_pthreads are derived + # from the PVXS module + # ========================================================== + LIB_SYS_LIBS += $(LIBEVENT_SYS_LIBS) + LIB_SYS_LIBS += $(LIBEVENT_BUNDLE_LIBS) # ======================================================= endif From 3e63448dc7aa33efc042b8e8eac4cb36cf119708 Mon Sep 17 00:00:00 2001 From: "Ernest L. Williams Jr." Date: Fri, 13 Jun 2025 23:50:16 -0700 Subject: [PATCH 5/5] add comments and instructions for enabling TLS support --- configure/CONFIG_SITE | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/configure/CONFIG_SITE b/configure/CONFIG_SITE index f3f22ac2..ed285113 100644 --- a/configure/CONFIG_SITE +++ b/configure/CONFIG_SITE @@ -32,8 +32,12 @@ CROSS_COMPILER_TARGET_ARCHS = # take effect. #IOCS_APPL_TOP = -# Uncomment the appropriate line or include in your private $(TOP)/../CONFIG_SITE.local -# PVXS_WITH_TLS = YES +# ====================================================== +# To enable TLS uncomment the appropriate line or +# include in your private $(TOP)/../CONFIG_SITE.local +# ====================================================== +# USR_CPPFLAGS += -DPVXS_ENABLE_OPENSSL +# P4P_WITH_TLS = YES -include $(TOP)/configure/CONFIG_SITE.local