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' diff --git a/.github/workflows/build-test-release-client-packages.yml b/.github/workflows/build-test-release-client-packages.yml index 803f0f9d..c21b370f 100644 --- a/.github/workflows/build-test-release-client-packages.yml +++ b/.github/workflows/build-test-release-client-packages.yml @@ -162,15 +162,16 @@ jobs: needs: build-linux-packages runs-on: ubuntu-latest container: - image: centos:centos7 + image: rockylinux:8 options: --device /dev/fuse --privileged 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 - - - 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 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 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 diff --git a/containers/Dockerfile.EESSI-client-centos7 b/containers/Dockerfile.EESSI-client-rocky8 similarity index 71% rename from containers/Dockerfile.EESSI-client-centos7 rename to containers/Dockerfile.EESSI-client-rocky8 index 4254c465..6e66e5e3 100644 --- a/containers/Dockerfile.EESSI-client-centos7 +++ b/containers/Dockerfile.EESSI-client-rocky8 @@ -1,15 +1,15 @@ -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 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,17 +18,18 @@ 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 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 diff --git a/containers/build-or-download-cvmfs-debs.sh b/containers/build-or-download-cvmfs-debs.sh index cd81bee9..808ebbec 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.*14"; then +cat << EOF > externals/pacparser/src/fix_gcc14.patch +--- 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)) + #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 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