From 719df6f37e8254a9d1e45acddc3d1c6894ddb2f4 Mon Sep 17 00:00:00 2001 From: Giles Knap Date: Tue, 5 Mar 2024 07:14:27 +0000 Subject: [PATCH 1/5] restore scan and seq to calc --- ibek-support | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ibek-support b/ibek-support index 9dbba83..604efeb 160000 --- a/ibek-support +++ b/ibek-support @@ -1 +1 @@ -Subproject commit 9dbba8349ab897830ad8dbe6b08d3225252cea00 +Subproject commit 604efeb3f1e92f5ca7fc9ee63cfd16a387af33d7 From e0e80e1015abf7d8b8c7bfbc66b82ae274d2a8fc Mon Sep 17 00:00:00 2001 From: Giles Knap Date: Tue, 5 Mar 2024 07:30:26 +0000 Subject: [PATCH 2/5] update to template 3.2.0b1 --- .copier-answers.yml | 2 +- .devcontainer/devcontainer.json | 6 ++---- .devcontainer/postCreateCommand | 2 +- .github/workflows/build.yml | 3 ++- Dockerfile | 6 +++--- build | 6 ++++-- ioc/configure/CONFIG_SITE | 1 - ioc/iocApp/src/Makefile | 4 ++-- requirements.txt | 2 +- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.copier-answers.yml b/.copier-answers.yml index 62c62a8..fcdb940 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier; NEVER EDIT MANUALLY -_commit: 3.1.0 +_commit: 3.2.0b1 _src_path: gh:epics-containers/ioc-template description: The simulation AreaDetector git_platform: github.com diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 4b185dd..8c51da6 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -39,11 +39,9 @@ ] } }, - // Make sure the files we are mapping into the container exist on the host - // You can place any other outside of the container before-launch commands here + // You can place any outside of the container before-launch commands here "initializeCommand": "bash .devcontainer/initializeCommand ${devcontainerId}", - // Hooks the global .bashprofile_dev_container but also can add any other commands - // to run in the container at creation in here + // One time global setup commands inside the container "postCreateCommand": "bash .devcontainer/postCreateCommand ${devcontainerId}", "runArgs": [ // Allow the container to access the host X11 display and EPICS CA diff --git a/.devcontainer/postCreateCommand b/.devcontainer/postCreateCommand index b0261da..def9745 100644 --- a/.devcontainer/postCreateCommand +++ b/.devcontainer/postCreateCommand @@ -23,7 +23,7 @@ echo 'source <(ibek --show-completion bash)' >> $HOME/.bashrc echo 'source <(ibek --show-completion zsh)' >> $HOME/.zshrc # pick a theme that does not cause completion corruption in zsh -sed -i $HOME/.zshrc -e 's/ZSH_THEME="devcontainers"/ZSH_THEME="eastwood"/' +sed -i $HOME/.zshrc -e 's/ZSH_THEME="devcontainers"/ZSH_THEME="dst"/' # allow personalization of all devcontainers in this subdirectory # by placing a .devcontainer_rc file in the workspace root diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fe03d58..9804a05 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,7 +13,6 @@ jobs: packages: write strategy: fail-fast: false - max-parallel: 1 # take advantage of caching matrix: target: [developer, runtime] architecture: [linux] @@ -53,6 +52,8 @@ jobs: load: true - name: Test image + # can't test rtems without some hardware to run on + if: ${{ matrix.architecture != 'rtems' }} run: tests/run-tests.sh - name: Push image diff --git a/Dockerfile b/Dockerfile index b769000..eb89a67 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ ##### build stage ############################################################## ARG TARGET_ARCHITECTURE -ARG BASE=7.0.7ec3 +ARG BASE=7.0.8ec1b1 ARG REGISTRY=ghcr.io/epics-containers FROM ${REGISTRY}/epics-base-${TARGET_ARCHITECTURE}-developer:${BASE} AS developer @@ -22,7 +22,7 @@ WORKDIR ${SOURCE_FOLDER}/ibek-support COPY ibek-support/_global/ _global COPY ibek-support/iocStats/ iocStats -RUN iocStats/install.sh 3.1.16 +RUN iocStats/install.sh 3.2.0 COPY ibek-support/asyn/ asyn/ RUN asyn/install.sh R4-42 @@ -48,7 +48,7 @@ RUN ADSimDetector/install.sh R2-10 # get the ioc source and build it COPY ioc ${SOURCE_FOLDER}/ioc -RUN cd ${IOC} && make +RUN cd ${IOC} && ./install.sh && make ##### runtime preparation stage ################################################ diff --git a/build b/build index d04d45b..80ef712 100755 --- a/build +++ b/build @@ -18,10 +18,12 @@ cd $(dirname ${0}) # use docker if available else use podman if ! docker version &>/dev/null; then docker=podman; else docker=docker; fi +if $docker buildx version &>/dev/null; then builx=buildx; load=--load; fi # make sure new repos get their submodule ibek-support -git submodule update --init +# allow failure to support working with modified submodule +git submodule update --init || true # build and developer images -$docker build -t ${TAG} --build-arg TARGET_ARCHITECTURE=$T_A --target $TARGET . +$docker build -t ${TAG} --build-arg TARGET_ARCHITECTURE=$T_A $load --target $TARGET . diff --git a/ioc/configure/CONFIG_SITE b/ioc/configure/CONFIG_SITE index 7eaf11b..64da6a6 100644 --- a/ioc/configure/CONFIG_SITE +++ b/ioc/configure/CONFIG_SITE @@ -1,5 +1,4 @@ # CONFIG_SITE -CROSS_COMPILER_TARGET_ARCHS = CHECK_RELEASE = NO diff --git a/ioc/iocApp/src/Makefile b/ioc/iocApp/src/Makefile index f7d5648..53abd95 100644 --- a/ioc/iocApp/src/Makefile +++ b/ioc/iocApp/src/Makefile @@ -12,8 +12,8 @@ ioc_DBD += $(shell cat /epics/support/configure/dbd_list) ioc_SRCS += ioc_registerRecordDeviceDriver.cpp -# add in the libs collected by ibek during container build -ioc_LIBS += $(shell cat /epics/support/configure/lib_list) +# add in the libs collected by ibek during container build (in reverse order) +ioc_LIBS += $(shell tac /epics/support/configure/lib_list) ioc_LIBS += $(EPICS_BASE_IOC_LIBS) ioc_SRCS += iocMain.cpp diff --git a/requirements.txt b/requirements.txt index efc1f42..c856080 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,3 @@ ibek==1.7.0 # to install direct from github during development in a branch -# git+https://github.com/epics-containers/ibek.git@fix-extract-assets \ No newline at end of file +# git+https://github.com/epics-containers/ibek.git@fix-extract-assets From 033fc1e35e1a2edab725c0affdaf295ad36fa4a0 Mon Sep 17 00:00:00 2001 From: Giles Knap Date: Tue, 5 Mar 2024 07:50:57 +0000 Subject: [PATCH 3/5] template 3.2.0b2 --- Dockerfile | 1 - ioc/install.sh | 12 ++++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100755 ioc/install.sh diff --git a/Dockerfile b/Dockerfile index eb89a67..d43af54 100644 --- a/Dockerfile +++ b/Dockerfile @@ -45,7 +45,6 @@ RUN ADCore/install.sh R3-12-1 COPY ibek-support/ADSimDetector/ ADSimDetector/ RUN ADSimDetector/install.sh R2-10 - # get the ioc source and build it COPY ioc ${SOURCE_FOLDER}/ioc RUN cd ${IOC} && ./install.sh && make diff --git a/ioc/install.sh b/ioc/install.sh new file mode 100755 index 0000000..03a2529 --- /dev/null +++ b/ioc/install.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# global install script for support all support modules to reference + +x86_cfg='./configure/CONFIG_SITE.Common.linux-x86_64' + +# for RTEMS builds don't build for the host architecture, target only +if [[ $TARGET_ARCHITECTURE == "rtems" ]]; then + touch ${x86_cfg} + sed -i '/VALID_BUILDS/d' ${x86_cfg} + echo "VALID_BUILDS=Host" >> ${x86_cfg} +fi From 3569b8594fc905aa73d19a7c800a913be545d200 Mon Sep 17 00:00:00 2001 From: Giles Knap Date: Tue, 5 Mar 2024 21:02:12 +0000 Subject: [PATCH 4/5] update to template 3.2.1 --- .copier-answers.yml | 2 +- Dockerfile | 2 +- build | 3 +-- ibek-support | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.copier-answers.yml b/.copier-answers.yml index fcdb940..8770bd9 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -1,5 +1,5 @@ # Changes here will be overwritten by Copier; NEVER EDIT MANUALLY -_commit: 3.2.0b1 +_commit: 3.2.1 _src_path: gh:epics-containers/ioc-template description: The simulation AreaDetector git_platform: github.com diff --git a/Dockerfile b/Dockerfile index d43af54..c368b4d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ ##### build stage ############################################################## ARG TARGET_ARCHITECTURE -ARG BASE=7.0.8ec1b1 +ARG BASE=7.0.8ec1b3 ARG REGISTRY=ghcr.io/epics-containers FROM ${REGISTRY}/epics-base-${TARGET_ARCHITECTURE}-developer:${BASE} AS developer diff --git a/build b/build index 80ef712..c1aacfd 100755 --- a/build +++ b/build @@ -21,8 +21,7 @@ if ! docker version &>/dev/null; then docker=podman; else docker=docker; fi if $docker buildx version &>/dev/null; then builx=buildx; load=--load; fi # make sure new repos get their submodule ibek-support -# allow failure to support working with modified submodule -git submodule update --init || true +if [ ! -d ibek-support ] ; then git submodule update --init ; fi # build and developer images $docker build -t ${TAG} --build-arg TARGET_ARCHITECTURE=$T_A $load --target $TARGET . diff --git a/ibek-support b/ibek-support index 604efeb..2523bf0 160000 --- a/ibek-support +++ b/ibek-support @@ -1 +1 @@ -Subproject commit 604efeb3f1e92f5ca7fc9ee63cfd16a387af33d7 +Subproject commit 2523bf0f3c83fbc4ed8712124d8396144aa55240 From 94627be5233372ada82835244687687c8a17853a Mon Sep 17 00:00:00 2001 From: Giles Knap Date: Tue, 5 Mar 2024 21:20:40 +0000 Subject: [PATCH 5/5] disable sequencer for iocStats --- Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index c368b4d..369a80a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,7 +22,8 @@ WORKDIR ${SOURCE_FOLDER}/ibek-support COPY ibek-support/_global/ _global COPY ibek-support/iocStats/ iocStats -RUN iocStats/install.sh 3.2.0 +RUN ibek support add-release-macro SNCSEQ && \ + iocStats/install.sh 3.2.0 COPY ibek-support/asyn/ asyn/ RUN asyn/install.sh R4-42