From a0a68ac9d2e343fcbca9d607dc318d88f5397f0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Mon, 9 Sep 2024 15:54:11 +0200 Subject: [PATCH 01/14] base client container on rocky8 instead of centos 7 --- ...erfile.EESSI-client-centos7 => Dockerfile.EESSI-client-rocky8} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename containers/{Dockerfile.EESSI-client-centos7 => Dockerfile.EESSI-client-rocky8} (100%) diff --git a/containers/Dockerfile.EESSI-client-centos7 b/containers/Dockerfile.EESSI-client-rocky8 similarity index 100% rename from containers/Dockerfile.EESSI-client-centos7 rename to containers/Dockerfile.EESSI-client-rocky8 From e7d1c1d46bc02a693cb689bd0a6ac32524c5912a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Mon, 9 Sep 2024 16:02:27 +0200 Subject: [PATCH 02/14] bump CVMFS version --- containers/Dockerfile.EESSI-client-rocky8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/containers/Dockerfile.EESSI-client-rocky8 b/containers/Dockerfile.EESSI-client-rocky8 index 4254c465..fd3cff23 100644 --- a/containers/Dockerfile.EESSI-client-rocky8 +++ b/containers/Dockerfile.EESSI-client-rocky8 @@ -1,4 +1,4 @@ -ARG cvmfsversion=2.11.2 +ARG cvmfsversion=2.11.5 # Stick to old version of fuse-overlayfs due to issues with newer versions # (cfr. https://github.com/containers/fuse-overlayfs/issues/232) ARG fuseoverlayfsversion=1.10 From f3be4e19fcc9f5798e8294334b5158e3c79d8ee6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Mon, 9 Sep 2024 16:03:24 +0200 Subject: [PATCH 03/14] use rockylinux:8 as base image --- containers/Dockerfile.EESSI-client-rocky8 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/containers/Dockerfile.EESSI-client-rocky8 b/containers/Dockerfile.EESSI-client-rocky8 index fd3cff23..b36d6ad0 100644 --- a/containers/Dockerfile.EESSI-client-rocky8 +++ b/containers/Dockerfile.EESSI-client-rocky8 @@ -3,13 +3,13 @@ ARG cvmfsversion=2.11.5 # (cfr. https://github.com/containers/fuse-overlayfs/issues/232) ARG fuseoverlayfsversion=1.10 -FROM centos:7 AS prepare-rpm +FROM rockylinux:8 AS prepare-rpm ARG cvmfsversion COPY ./containers/build-or-download-cvmfs-rpms.sh /build-or-download-cvmfs-rpms.sh RUN sh /build-or-download-cvmfs-rpms.sh ${cvmfsversion} -FROM centos:7 AS build-fuse-overlayfs +FROM rockylinux:8 AS build-fuse-overlayfs ARG fuseoverlayfsversion RUN yum install -y wget fuse3-devel autoconf automake gcc make tar RUN wget https://github.com/containers/fuse-overlayfs/archive/refs/tags/v${fuseoverlayfsversion}.tar.gz \ @@ -18,7 +18,7 @@ RUN wget https://github.com/containers/fuse-overlayfs/archive/refs/tags/v${fuseo && ./autogen.sh && ./configure && make && make install -FROM centos:7 +FROM rockylinux:8 ARG cvmfsversion COPY --from=prepare-rpm /root/rpmbuild/RPMS /root/rpmbuild/RPMS From 4e3c0dd1b6ed58bbb85b580a092413443991f7de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Mon, 9 Sep 2024 16:10:17 +0200 Subject: [PATCH 04/14] build rocky8 instead of centos7 client container --- .github/workflows/build-publish-containers.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-publish-containers.yml b/.github/workflows/build-publish-containers.yml index a7c9b607..a804d02d 100644 --- a/.github/workflows/build-publish-containers.yml +++ b/.github/workflows/build-publish-containers.yml @@ -32,11 +32,11 @@ jobs: contents: read strategy: matrix: - tag: ['client:centos7', 'build-node:debian11', 'build-node:debian-sid'] + tag: ['client:rocky8', 'build-node:debian11', 'build-node:debian-sid'] platform: [amd64, arm64, riscv64] exclude: # exclude images that don't support RISC-V - - tag: client:centos7 + - tag: client:rocky8 platform: riscv64 - tag: build-node:debian11 platform: riscv64 @@ -97,7 +97,7 @@ jobs: contents: read strategy: matrix: - tag: ['client:centos7', 'build-node:debian11', 'build-node:debian-sid'] + tag: ['client:rocky8', 'build-node:debian11', 'build-node:debian-sid'] steps: - name: Login to GitHub Container Registry if: github.event_name != 'pull_request' From 09ef36d79a6255bff433c3012776cc40c54d8e91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Mon, 9 Sep 2024 16:13:52 +0200 Subject: [PATCH 05/14] test the rocky8 client container --- .github/workflows/test-containers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-containers.yml b/.github/workflows/test-containers.yml index 5262b5ca..adb2fbd9 100644 --- a/.github/workflows/test-containers.yml +++ b/.github/workflows/test-containers.yml @@ -11,4 +11,4 @@ jobs: steps: - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 # v3.1.0 - name: Build the Docker image - run: docker build . --file containers/Dockerfile.EESSI-client-centos7 + run: docker build . --file containers/Dockerfile.EESSI-client-rocky8 From 1e2d7a6691184ac6b8a33c76be013e6c82a1c586 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Mon, 9 Sep 2024 16:22:35 +0200 Subject: [PATCH 06/14] remove hardcoded el7 and replace by variable --- containers/build-or-download-cvmfs-rpms.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/containers/build-or-download-cvmfs-rpms.sh b/containers/build-or-download-cvmfs-rpms.sh index a4cbcbf3..5d4f5b09 100644 --- a/containers/build-or-download-cvmfs-rpms.sh +++ b/containers/build-or-download-cvmfs-rpms.sh @@ -2,6 +2,7 @@ cvmfsversion=$1 arch=$(uname -m) yum install -y wget +elversion="$(rpm -q --queryformat '%{RELEASE}' rpm | cut -d '.' -f 2)" if [ "$arch" = "riscv64" ] then yum install -y epel-release @@ -10,11 +11,11 @@ then update-alternatives --install /usr/bin/python python /usr/bin/python3 1 update-alternatives --install /usr/bin/python python /usr/bin/python2 2 update-alternatives --set python /usr/bin/python2 - wget https://ecsft.cern.ch/dist/cvmfs/cvmfs-${cvmfsversion}/cvmfs-${cvmfsversion}-1.el7.src.rpm && rpmbuild --rebuild cvmfs-${cvmfsversion}-1.el7.src.rpm + wget https://ecsft.cern.ch/dist/cvmfs/cvmfs-${cvmfsversion}/cvmfs-${cvmfsversion}-1.${elversion}.src.rpm && rpmbuild --rebuild cvmfs-${cvmfsversion}-1.${elversion}.src.rpm else mkdir -p /root/rpmbuild/RPMS/${arch} cd /root/rpmbuild/RPMS/${arch} - wget https://ecsft.cern.ch/dist/cvmfs/cvmfs-${cvmfsversion}/cvmfs-${cvmfsversion}-1.el7.${arch}.rpm - wget https://ecsft.cern.ch/dist/cvmfs/cvmfs-${cvmfsversion}/cvmfs-fuse3-${cvmfsversion}-1.el7.${arch}.rpm - wget https://ecsft.cern.ch/dist/cvmfs/cvmfs-${cvmfsversion}/cvmfs-libs-${cvmfsversion}-1.el7.${arch}.rpm + wget https://ecsft.cern.ch/dist/cvmfs/cvmfs-${cvmfsversion}/cvmfs-${cvmfsversion}-1.${elversion}.${arch}.rpm + wget https://ecsft.cern.ch/dist/cvmfs/cvmfs-${cvmfsversion}/cvmfs-fuse3-${cvmfsversion}-1.${elversion}.${arch}.rpm + wget https://ecsft.cern.ch/dist/cvmfs/cvmfs-${cvmfsversion}/cvmfs-libs-${cvmfsversion}-1.${elversion}.${arch}.rpm fi From 5993f988b4cdedaf69f5fd81b7d6cc0a3d4e6e5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Mon, 9 Sep 2024 16:30:13 +0200 Subject: [PATCH 07/14] replace hardcoded el7 by variable --- containers/Dockerfile.EESSI-client-rocky8 | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/containers/Dockerfile.EESSI-client-rocky8 b/containers/Dockerfile.EESSI-client-rocky8 index b36d6ad0..6e66e5e3 100644 --- a/containers/Dockerfile.EESSI-client-rocky8 +++ b/containers/Dockerfile.EESSI-client-rocky8 @@ -25,10 +25,11 @@ COPY --from=prepare-rpm /root/rpmbuild/RPMS /root/rpmbuild/RPMS COPY --from=build-fuse-overlayfs /usr/local/bin/fuse-overlayfs /usr/local/bin/fuse-overlayfs RUN yum install -y sudo vim openssh-clients lsof strace -RUN yum install -y /root/rpmbuild/RPMS/$(uname -m)/cvmfs-${cvmfsversion}-1.el7.$(uname -m).rpm \ - /root/rpmbuild/RPMS/$(uname -m)/cvmfs-fuse3-${cvmfsversion}-1.el7.$(uname -m).rpm \ - /root/rpmbuild/RPMS/$(uname -m)/cvmfs-libs-${cvmfsversion}-1.el7.$(uname -m).rpm \ - http://ecsft.cern.ch/dist/cvmfs/cvmfs-config/cvmfs-config-default-latest.noarch.rpm +RUN elversion="$(rpm -q --queryformat '%{RELEASE}' rpm | cut -d '.' -f 2)" \ + && yum install -y /root/rpmbuild/RPMS/$(uname -m)/cvmfs-${cvmfsversion}-1.${elversion}.$(uname -m).rpm \ + /root/rpmbuild/RPMS/$(uname -m)/cvmfs-fuse3-${cvmfsversion}-1.${elversion}.$(uname -m).rpm \ + /root/rpmbuild/RPMS/$(uname -m)/cvmfs-libs-${cvmfsversion}-1.${elversion}.$(uname -m).rpm \ + http://ecsft.cern.ch/dist/cvmfs/cvmfs-config/cvmfs-config-default-latest.noarch.rpm RUN yum install -y https://github.com/EESSI/filesystem-layer/releases/download/latest/cvmfs-config-eessi-latest.noarch.rpm # download binary for specific version of fuse-overlayfs From e47085a1cd64808b7677a5f9566bdcd949f9ed5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Mon, 9 Sep 2024 16:33:18 +0200 Subject: [PATCH 08/14] test rpm on Rocky 8 instead of CentOS 7 --- .github/workflows/build-test-release-client-packages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test-release-client-packages.yml b/.github/workflows/build-test-release-client-packages.yml index 803f0f9d..248ad4a7 100644 --- a/.github/workflows/build-test-release-client-packages.yml +++ b/.github/workflows/build-test-release-client-packages.yml @@ -162,7 +162,7 @@ jobs: needs: build-linux-packages runs-on: ubuntu-latest container: - image: centos:centos7 + image: rockylinux:8 options: --device /dev/fuse --privileged steps: From 2be489b150cf47a344df0f4da5a8ff81962d40ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Mon, 9 Sep 2024 16:36:43 +0200 Subject: [PATCH 09/14] remove yum-config-manager command --- .github/workflows/build-test-release-client-packages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test-release-client-packages.yml b/.github/workflows/build-test-release-client-packages.yml index 248ad4a7..6f7d05bc 100644 --- a/.github/workflows/build-test-release-client-packages.yml +++ b/.github/workflows/build-test-release-client-packages.yml @@ -167,7 +167,7 @@ jobs: steps: - name: Download and install CVMFS client - run: yum install -y https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest.noarch.rpm && yum-config-manager --enable cernvm-config + run: yum install -y https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest.noarch.rpm - name: Install CVMFS client run: yum install -y cvmfs cvmfs-config-none From daa2e918efda6d06e36cc445933aa5f9416946b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Mon, 9 Sep 2024 16:56:40 +0200 Subject: [PATCH 10/14] use dnf on rocky 8 and enable cernvm-config repo --- .github/workflows/build-test-release-client-packages.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-test-release-client-packages.yml b/.github/workflows/build-test-release-client-packages.yml index 6f7d05bc..c21b370f 100644 --- a/.github/workflows/build-test-release-client-packages.yml +++ b/.github/workflows/build-test-release-client-packages.yml @@ -167,10 +167,11 @@ jobs: steps: - name: Download and install CVMFS client - run: yum install -y https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest.noarch.rpm - - - name: Install CVMFS client - run: yum install -y cvmfs cvmfs-config-none + run: | + dnf install -y https://ecsft.cern.ch/dist/cvmfs/cvmfs-release/cvmfs-release-latest.noarch.rpm + dnf install -y 'dnf-command(config-manager)' + dnf config-manager --enable cernvm-config + dnf install -y cvmfs cvmfs-config-none - name: Download cvmfs-config-eessi package uses: actions/download-artifact@9782bd6a9848b53b110e712e20e42d89988822b7 # v3.0.1 From fc2f92a3eeef4193e845d6d8a76695fa7bb510a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Mon, 9 Sep 2024 17:19:40 +0200 Subject: [PATCH 11/14] bump CVMFS to 2.11.5 --- containers/Dockerfile.EESSI-build-node-debian-sid | 2 +- containers/Dockerfile.EESSI-build-node-debian11 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/containers/Dockerfile.EESSI-build-node-debian-sid b/containers/Dockerfile.EESSI-build-node-debian-sid index 864919e5..5050e18e 100644 --- a/containers/Dockerfile.EESSI-build-node-debian-sid +++ b/containers/Dockerfile.EESSI-build-node-debian-sid @@ -1,4 +1,4 @@ -ARG cvmfsversion=2.11.2 +ARG cvmfsversion=2.11.5 ARG archspecversion=0.2.2 ARG awscliversion=1.32.22 ARG fuseoverlayfsversion=1.10 diff --git a/containers/Dockerfile.EESSI-build-node-debian11 b/containers/Dockerfile.EESSI-build-node-debian11 index 7b20a8e8..26efc752 100644 --- a/containers/Dockerfile.EESSI-build-node-debian11 +++ b/containers/Dockerfile.EESSI-build-node-debian11 @@ -1,4 +1,4 @@ -ARG cvmfsversion=2.11.2 +ARG cvmfsversion=2.11.5 ARG awscliversion=1.32.22 ARG fuseoverlayfsversion=1.10 From d327988afb82bed757ff0ed76de92e2cdd27340c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 10 Sep 2024 09:40:49 +0200 Subject: [PATCH 12/14] add gcc 14 fix for pacparser --- containers/build-or-download-cvmfs-debs.sh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/containers/build-or-download-cvmfs-debs.sh b/containers/build-or-download-cvmfs-debs.sh index cd81bee9..0541aa9d 100644 --- a/containers/build-or-download-cvmfs-debs.sh +++ b/containers/build-or-download-cvmfs-debs.sh @@ -44,6 +44,25 @@ then else apt-get install -y valgrind fi + + # gcc 14 fix for CVMFS's dependency pacparser, see + # https://github.com/manugarg/pacparser/issues/194 + if gcc --version | grep -q "^gcc" | grep -q "14"; then +cat << EOF > externals/pacparser/src/fix_gcc14.patch +--- a/src/spidermonkey/js/src/jsapi.c ++++ b/src/spidermonkey/js/src/jsapi.c +@@ -93,7 +93,7 @@ + #ifdef HAVE_VA_LIST_AS_ARRAY + #define JS_ADDRESSOF_VA_LIST(ap) ((va_list *)(ap)) + #else +-#define JS_ADDRESSOF_VA_LIST(ap) (&(ap)) ++#define JS_ADDRESSOF_VA_LIST(ap) ((va_list *)(&(ap))) + #endif + + #if defined(JS_PARANOID_REQUEST) && defined(JS_THREADSAFE) +EOF + fi + cd ci/cvmfs # make sure the cvmfs package also uses debian 13 for debian sid [ $release = "13" ] && sed -i "s@\$(lsb_release -sr)@13@" ./deb.sh && sed -i "s/focal/trixie/" ./deb.sh From 451b7f2cbf9806e6705705ac153ac9cd84104259 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Thu, 12 Sep 2024 16:25:14 +0200 Subject: [PATCH 13/14] fix check for GCC 14 --- containers/build-or-download-cvmfs-debs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/containers/build-or-download-cvmfs-debs.sh b/containers/build-or-download-cvmfs-debs.sh index 0541aa9d..f384c082 100644 --- a/containers/build-or-download-cvmfs-debs.sh +++ b/containers/build-or-download-cvmfs-debs.sh @@ -47,7 +47,7 @@ then # gcc 14 fix for CVMFS's dependency pacparser, see # https://github.com/manugarg/pacparser/issues/194 - if gcc --version | grep -q "^gcc" | grep -q "14"; then + if gcc --version | grep -q "^gcc.*14"; then cat << EOF > externals/pacparser/src/fix_gcc14.patch --- a/src/spidermonkey/js/src/jsapi.c +++ b/src/spidermonkey/js/src/jsapi.c From 9022203f44f7df206a9c71289ffbecc85d2126bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Thu, 12 Sep 2024 16:35:32 +0200 Subject: [PATCH 14/14] fic pacparser patch --- containers/build-or-download-cvmfs-debs.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/containers/build-or-download-cvmfs-debs.sh b/containers/build-or-download-cvmfs-debs.sh index f384c082..808ebbec 100644 --- a/containers/build-or-download-cvmfs-debs.sh +++ b/containers/build-or-download-cvmfs-debs.sh @@ -49,8 +49,8 @@ then # https://github.com/manugarg/pacparser/issues/194 if gcc --version | grep -q "^gcc.*14"; then cat << EOF > externals/pacparser/src/fix_gcc14.patch ---- a/src/spidermonkey/js/src/jsapi.c -+++ b/src/spidermonkey/js/src/jsapi.c +--- src/spidermonkey/js/src/jsapi.c ++++ src/spidermonkey/js/src/jsapi.c @@ -93,7 +93,7 @@ #ifdef HAVE_VA_LIST_AS_ARRAY #define JS_ADDRESSOF_VA_LIST(ap) ((va_list *)(ap))