From d7f58268d8d83a6fb4cb23211fe13bb61c881157 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Nogueira?= Date: Thu, 31 Oct 2024 12:55:15 -0300 Subject: [PATCH] base: update epics-base to 7.0.8.1. This also made it necessary to update the OPCUA module, so we could keep using the prebuilt version. Since the OPCUA installation scheme was improved, manually adding the libopcua symlink is no longer necessary. Furthermore, in order to keep the image compatible with the OPCUA IOC image build, and with st.cmd files from users of the image, the IOC was installed to 'opcua', and the library to 'opcua-module'; this is transparent to users, thanks to the RELEASE file. --- CHANGES.md | 5 ++++ base/Dockerfile | 2 +- base/backport-epics-base-musl.patch | 42 ----------------------------- base/epics_versions.sh | 2 +- base/install_epics.sh | 1 - base/install_opcua.sh | 14 ++++++---- base/musl/Dockerfile | 2 +- base/opcua_versions.sh | 2 +- 8 files changed, 18 insertions(+), 52 deletions(-) delete mode 100644 base/backport-epics-base-musl.patch diff --git a/CHANGES.md b/CHANGES.md index 8369348..016056b 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,11 @@ ## Unreleased +### New features + +* base: update to EPICS 7.0.8.1 and OPCUA 0.10.0. by @ericonr in + https://github.com/cnpem/epics-in-docker/pull/85 + ## v0.12.0 ### New features diff --git a/base/Dockerfile b/base/Dockerfile index 11cf7ff..f4d3537 100644 --- a/base/Dockerfile +++ b/base/Dockerfile @@ -46,7 +46,7 @@ ENV EPICS_RELEASE_FILE $EPICS_IN_DOCKER/RELEASE WORKDIR /opt/epics -COPY backport-epics-base-musl.patch epics-base-static-linking.patch $EPICS_IN_DOCKER +COPY epics-base-static-linking.patch $EPICS_IN_DOCKER COPY epics_versions.sh install_epics.sh $EPICS_IN_DOCKER RUN $EPICS_IN_DOCKER/install_epics.sh diff --git a/base/backport-epics-base-musl.patch b/base/backport-epics-base-musl.patch deleted file mode 100644 index 236ad16..0000000 --- a/base/backport-epics-base-musl.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 7c4a21eab44183a84f25ea234ce2fde8ad08c4ed Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C3=89rico=20Nogueira?= -Date: Mon, 31 Jul 2023 11:36:11 -0300 -Subject: [PATCH] libCom: detect support for backtrace() with __has_include. - -This is necessary in order to build epics-base with musl libc, for -example, and any other C libraries which don't include this -functionality. In order to not regress builds with older compilers, we -still support the uclibc check. Furthermore, it has been checked that -uclibc-ng (the maintained version of uclibc) doesn't install the - header when the functionality is disabled [1] [2]. - -To avoid repetition, we don't define HAS_EXECINFO to 0 when it is not -available. - -[1] https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/tree/Makefile.in?id=cdb07d2cd52af39feb425e6d36c02b30916b9f0a#n224 -[2] https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/tree/Makefile.in?id=cdb07d2cd52af39feb425e6d36c02b30916b9f0a#n277 ---- - modules/libcom/src/osi/os/posix/osdExecinfoBackTrace.cpp | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/modules/libcom/src/osi/os/posix/osdExecinfoBackTrace.cpp b/modules/libcom/src/osi/os/posix/osdExecinfoBackTrace.cpp -index 8d50e6a8e0..9be48755af 100644 ---- a/modules/libcom/src/osi/os/posix/osdExecinfoBackTrace.cpp -+++ b/modules/libcom/src/osi/os/posix/osdExecinfoBackTrace.cpp -@@ -12,10 +12,13 @@ - #include - - // execinfo.h may not be present if uclibc is configured to omit backtrace() --#if !defined(__UCLIBC_MAJOR__) || defined(__UCLIBC_HAS_EXECINFO__) -+// some C libraries, such as musl, don't have execinfo.h at all -+#if defined(__has_include) -+# if __has_include() -+# define HAS_EXECINFO 1 -+# endif -+#elif !defined(__UCLIBC_MAJOR__) || defined(__UCLIBC_HAS_EXECINFO__) - # define HAS_EXECINFO 1 --#else --# define HAS_EXECINFO 0 - #endif - - #if HAS_EXECINFO diff --git a/base/epics_versions.sh b/base/epics_versions.sh index d44e9a0..4f9a4e3 100644 --- a/base/epics_versions.sh +++ b/base/epics_versions.sh @@ -1 +1 @@ -EPICS_BASE_VERSION=7.0.7 +EPICS_BASE_VERSION=7.0.8.1 diff --git a/base/install_epics.sh b/base/install_epics.sh index 289c892..5e1be34 100755 --- a/base/install_epics.sh +++ b/base/install_epics.sh @@ -8,7 +8,6 @@ set -ex lnls-get-n-unpack -l https://epics-controls.org/download/base/base-${EPICS_BASE_VERSION}.tar.gz mv base-${EPICS_BASE_VERSION} ${EPICS_BASE_PATH} -patch -d ${EPICS_BASE_PATH} -Np1 < $EPICS_IN_DOCKER/backport-epics-base-musl.patch patch -d ${EPICS_BASE_PATH} -Np1 < $EPICS_IN_DOCKER/epics-base-static-linking.patch if [ -n "$COMMANDLINE_LIBRARY" ]; then diff --git a/base/install_opcua.sh b/base/install_opcua.sh index b2a9799..9fc17f9 100755 --- a/base/install_opcua.sh +++ b/base/install_opcua.sh @@ -7,13 +7,17 @@ set -ex . $EPICS_IN_DOCKER/opcua_versions.sh opcua_release_url=https://github.com/epics-modules/opcua/releases/download/v${OPCUA_VERSION} -opcua_release_file=IOC_opcua-${OPCUA_VERSION}_Base-${EPICS_BASE_VERSION}_debian${DEBIAN_VERSION%.*}.tar.gz +opcua_release_file=BDIST_opcua-${OPCUA_VERSION}_Base-${EPICS_BASE_VERSION}_debian${DEBIAN_VERSION%.*}.tar.gz lnls-get-n-unpack -l $opcua_release_url/$opcua_release_file +rm HOW_TO.md -mv binaryOpcuaIoc opcua -install_module -i opcua OPCUA " +mv opcuaBinaryDist opcua-module +install_module opcua-module OPCUA " EPICS_BASE " -EPICS_HOST_ARCH=`perl ${EPICS_BASE_PATH}/lib/perl/EpicsHostArch.pl` -ln -s ${EPICS_MODULES_PATH}/opcua/{opcuaIocApp/libopcua.so.0.9,lib/${EPICS_HOST_ARCH}/libopcua.so} +mv opcuaExampleIoc opcua +install_module -i opcua OPCUA_IOC " +EPICS_BASE +OPCUA +" diff --git a/base/musl/Dockerfile b/base/musl/Dockerfile index 4a8e23f..90e8069 100644 --- a/base/musl/Dockerfile +++ b/base/musl/Dockerfile @@ -47,7 +47,7 @@ ENV EPICS_RELEASE_FILE $EPICS_IN_DOCKER/RELEASE WORKDIR /opt/epics -COPY backport-epics-base-musl.patch epics-base-static-linking.patch $EPICS_IN_DOCKER +COPY epics-base-static-linking.patch $EPICS_IN_DOCKER COPY epics_versions.sh install_epics.sh $EPICS_IN_DOCKER RUN COMMANDLINE_LIBRARY=READLINE_NCURSES $EPICS_IN_DOCKER/install_epics.sh diff --git a/base/opcua_versions.sh b/base/opcua_versions.sh index 4c5a647..7f91707 100644 --- a/base/opcua_versions.sh +++ b/base/opcua_versions.sh @@ -1 +1 @@ -OPCUA_VERSION=0.9.4 +OPCUA_VERSION=0.10.0