From a9b9e48dfdb866dc956b1070cdb0a204c06a5856 Mon Sep 17 00:00:00 2001 From: Dalton Bohning Date: Fri, 11 Sep 2026 21:37:03 +0000 Subject: [PATCH] try building Signed-off-by: Dalton Bohning --- Jenkinsfile | 4 +- README.md | 6 -- hdf5.spec | 4 +- hdf5_1.12.2+repack-1~exp1.debian.tar.xz | Bin 0 -> 150316 bytes packaging/Dockerfile.centos.7 | 30 ++++++- packaging/Dockerfile.coverity | 3 +- packaging/Dockerfile.mockbuild | 84 ++++++++++++++----- packaging/Dockerfile.ubuntu | 51 ++++++++++++ packaging/Dockerfile.ubuntu.20.04 | 81 +++++++++++-------- packaging/Dockerfile.ubuntu.rolling | 3 +- packaging/Makefile_distro_vars.mk | 16 ++++ packaging/Makefile_packaging.mk | 15 +++- packaging/ccache-stats.patch | 66 +++++++++++++++ packaging/debian_chrootbuild | 75 ++++++++++------- packaging/get_base_branch | 22 +++++ packaging/rpm_chrootbuild | 89 ++++++++++++++------ packaging/scripts/repo-helper-fedora.sh | 80 ++++++++++++++++++ packaging/scripts/repo-helper-ubuntu.sh | 103 ++++++++++++++++++++++++ 18 files changed, 606 insertions(+), 126 deletions(-) create mode 100644 hdf5_1.12.2+repack-1~exp1.debian.tar.xz create mode 100644 packaging/Dockerfile.ubuntu create mode 100644 packaging/ccache-stats.patch create mode 100755 packaging/get_base_branch create mode 100755 packaging/scripts/repo-helper-fedora.sh create mode 100755 packaging/scripts/repo-helper-ubuntu.sh diff --git a/Jenkinsfile b/Jenkinsfile index db08df7..3d9be6a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -42,5 +42,5 @@ // Remove centos7 due to: https://bugzilla.redhat.com/show_bug.cgi?id=2210360 /* groovylint-disable-next-line CompileStatic */ -packageBuildingPipelineDAOSTest(['distros' : ['el8', 'el9', 'leap15'], - 'test-tag': 'hdf5testsuite']) +packageBuildingPipelineDAOSTest(['distros' : ['el9', 'leap15'], + 'test-tag': 'hdf5']) diff --git a/README.md b/README.md index f0c8ced..c110cac 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,2 @@ -# DISCONTINUATION OF PROJECT # -This project will no longer be maintained by Intel. -Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project. -Intel no longer accepts patches to this project. - If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the open source software community, please create your own fork of this project. - # hdf5 RPM packaging of hdf5 diff --git a/hdf5.spec b/hdf5.spec index 9f90fdc..44546a0 100644 --- a/hdf5.spec +++ b/hdf5.spec @@ -22,7 +22,7 @@ # You need to recompile all users of HDF5 for each version change Name: hdf5 Version: %{hdf5_major}.%{hdf5_minor}.%{hdf5_bugfix}%{?hdf5_prerelease:~%{hdf5_prerelease}} -Release: 3%{?commit:.git%{shortcommit}}%{?dist} +Release: 4%{?commit:.git%{shortcommit}}%{?dist} Summary: A general purpose library and file format for storing scientific data License: BSD URL: https://portal.hdfgroup.org/display/HDF5/HDF5 @@ -30,7 +30,7 @@ URL: https://portal.hdfgroup.org/display/HDF5/HDF5 Source0: https://github.com/HDFGroup/%{name}/archive/%{name}-%{hdf5_tag}.tar.gz Source1: h5comp # For man pages -Source2: http://ftp.us.debian.org/debian/pool/main/h/hdf5/hdf5_1.12.2+repack-1~exp1.debian.tar.xz +Source2: hdf5_1.12.2+repack-1~exp1.debian.tar.xz Patch1: hdf5-LD_LIBRARY_PATH.patch # Disable tests that don't work with DAOS Patch11: daos.patch diff --git a/hdf5_1.12.2+repack-1~exp1.debian.tar.xz b/hdf5_1.12.2+repack-1~exp1.debian.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..77e6787a2108022b2b895fdff77167377654c6be GIT binary patch literal 150316 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

&#HxZ5S->GWtd4q((ma^Jt^ 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 $file; \ + done; \ + mv daos_ci-centos7-artifactory.repo{.tmp,}; \ + fi; \ + yum -y install dnf; \ + yum clean all; \ + dnf --disablerepo \*epel\* -y install epel-release \ + dnf-plugins-core; \ + if [ -n "$REPO_FILE_URL" ]; then \ + dnf -y --quiet config-manager --disable epel; \ + fi; \ + dnf -y update epel-release; \ + dnf -y clean all + # use same UID as host and default value of 1000 if not specified ARG UID=1000 @@ -15,9 +37,9 @@ ARG UID=1000 #Nothing to do for CentOS # Install basic tools -RUN yum install -y epel-release -RUN yum install -y mock make rpm-build curl createrepo rpmlint redhat-lsb-core \ - git python-srpm-macros dnf +RUN dnf install -y epel-release +RUN dnf install -y mock make rpm-build curl createrepo rpmlint redhat-lsb-core \ + git python-srpm-macros dnf && dnf -y clean all # Add build user (to keep rpmbuild happy) ENV USER build diff --git a/packaging/Dockerfile.coverity b/packaging/Dockerfile.coverity index 7eed2c3..f8171c9 100755 --- a/packaging/Dockerfile.coverity +++ b/packaging/Dockerfile.coverity @@ -1,12 +1,13 @@ # # Copyright 2018-2020, Intel Corporation +# Copyright 2025 Hewlett Packard Enterprise Development LP # # 'recipe' for Docker to build for a Coverity scan. # # Pull base image FROM fedora:latest -MAINTAINER daos-stack +LABEL maintainer="daos-stack "" # use same UID as host and default value of 1000 if not specified ARG UID=1000 diff --git a/packaging/Dockerfile.mockbuild b/packaging/Dockerfile.mockbuild index c8bc1a4..fdcec8d 100644 --- a/packaging/Dockerfile.mockbuild +++ b/packaging/Dockerfile.mockbuild @@ -1,41 +1,74 @@ # -# Copyright 2018-2023 Intel Corporation +# Copyright 2018-2024 Intel Corporation +# Copyright 2025-2026 Hewlett Packard Enterprise Development LP # # 'recipe' for Docker to build an RPM # # Pull base image -ARG FVERSION=38 +ARG FVERSION=latest FROM fedora:$FVERSION # Needed for later use of FVERSION ARG FVERSION LABEL maintainer="daos@daos.groups.io" +# Accept DAOS_HTTP_PROXY, DAOS_HTTPS_PROXY, and DAOS_NO_PROXY at build time +ARG DAOS_NO_PROXY +ARG DAOS_HTTP_PROXY +ARG DAOS_HTTPS_PROXY + +# Propagate into the build environment +ENV http_proxy=${DAOS_HTTP_PROXY} \ + HTTP_PROXY=${DAOS_HTTP_PROXY} \ + https_proxy=${DAOS_HTTPS_PROXY} \ + HTTPS_PROXY=${DAOS_HTTPS_PROXY} \ + no_proxy=${DAOS_NO_PROXY} \ + NO_PROXY=${DAOS_NO_PROXY} + +# Persist into /etc/environment for use by shells and services +RUN set -e; \ + if [ -n "$DAOS_HTTP_PROXY" ]; then \ + echo "http_proxy=$DAOS_HTTP_PROXY" >> /etc/environment; \ + echo "HTTP_PROXY=$DAOS_HTTP_PROXY" >> /etc/environment; \ + fi; \ + if [ -n "$DAOS_HTTPS_PROXY" ]; then \ + echo "https_proxy=$DAOS_HTTPS_PROXY" >> /etc/environment; \ + echo "HTTPS_PROXY=$DAOS_HTTPS_PROXY" >> /etc/environment; \ + fi; \ + if [ -n "$DAOS_NO_PROXY" ]; then \ + echo "no_proxy=$DAOS_NO_PROXY" >> /etc/environment; \ + echo "NO_PROXY=$DAOS_NO_PROXY" >> /etc/environment; \ + fi + # Use local repo server if present ARG REPO_FILE_URL -RUN if [ -n "$REPO_FILE_URL" ]; then \ - cd /etc/yum.repos.d/ && \ - curl -f -o daos_ci-fedora-artifactory.repo.tmp \ - "$REPO_FILE_URL"daos_ci-fedora-artifactory.repo && \ - rm -f *.repo && \ - mv daos_ci-fedora-artifactory.repo{.tmp,}; \ - fi +ARG DAOS_LAB_CA_FILE_URL +ARG REPOSITORY_NAME + +# Script to setup a local repo instead of the distro-provided one. +# Only takes effect when REPO_FILE_URL is set; otherwise it is a no-op. +RUN --mount=type=bind,source=packaging/scripts/repo-helper-fedora.sh,target=/tmp/repo-helper-fedora.sh \ + /tmp/repo-helper-fedora.sh # Install basic tools -RUN dnf -y install mock make \ - rpm-build createrepo rpmlint redhat-lsb-core git \ - python-srpm-macros rpmdevtools +RUN dnf -y install mock make rpm-build createrepo rpmlint git \ + python-srpm-macros rpmdevtools && \ + dnf -y clean all # use same UID as host and default value of 1000 if not specified ARG UID=1000 # Add build user (to keep rpmbuild happy) -ENV USER build -ENV PASSWD build -RUN useradd -u $UID -ms /bin/bash $USER -RUN echo "$USER:$PASSWD" | chpasswd +ENV USER=build +ENV PASSWD=build # add the user to the mock group so it can run mock -RUN usermod -a -G mock $USER +RUN if [ $UID != 0 ]; then \ + useradd -u $UID -ms /bin/bash $USER; \ + echo "$USER:$PASSWD" | chpasswd; \ + usermod -a -G mock $USER; \ + mkdir -p /var/cache/mock; \ + chown $USER:root /var/cache/mock; \ + fi ARG CB0 RUN dnf -y upgrade && \ @@ -45,15 +78,24 @@ RUN dnf -y upgrade && \ # https://github.com/rpm-software-management/rpmlint/pull/795 in it # But make sure to patch after dnf upgrade so that an upgraded rpmlint # RPM doesn't wipe out our patch -COPY packaging/rpmlint--ignore-unused-rpmlintrc.patch . +# Ditto for the patch to zero and display ccache stats +# https://github.com/rpm-software-management/mock/pull/1299 +ARG PACKAGINGDIR=packaging +COPY ${PACKAGINGDIR}/*.patch ./ RUN (cd $(python3 -c 'import site; print(site.getsitepackages()[-1])') && \ if ! grep -e --ignore-unused-rpmlintrc rpmlint/cli.py; then \ - if ! patch -p1; then \ + if ! patch -p1 < $OLDPWD/rpmlint--ignore-unused-rpmlintrc.patch; then \ exit 1; \ fi; \ rm -f rpmlint/__pycache__/{cli,lint}.*.pyc; \ - fi) < rpmlint--ignore-unused-rpmlintrc.patch; \ - rm -f rpmlint--ignore-unused-rpmlintrc.patch + fi; \ + if ! grep _ccachePostBuildHook mockbuild/plugins/ccache.py; then \ + if ! patch -p3 < $OLDPWD/ccache-stats.patch; then \ + exit 1; \ + fi; \ + rm -f mockbuild/plugins/__pycache__/ccache.*.pyc; \ + fi); \ + rm -f rpmlint--ignore-unused-rpmlintrc.patch ccache-stats.patch # show the release that was built ARG CACHEBUST diff --git a/packaging/Dockerfile.ubuntu b/packaging/Dockerfile.ubuntu new file mode 100644 index 0000000..1e3813d --- /dev/null +++ b/packaging/Dockerfile.ubuntu @@ -0,0 +1,51 @@ +# Keep Dockerfile.ubuntu the same as this file until all packaging +# jobs are fixed to have a Dockerfile.ubuntu, and then the common +# Jenkinsfile will be changed to use Dockerfile.ubuntu. +# +# Copyright 2019-2021, Intel Corporation +# Copyright 2025 Hewlett Packard Enterprise Development LP +# +# 'recipe' for Docker to build an Debian package +# +# Pull base image +ARG BASE_DISTRO=ubuntu:20.04 +FROM $BASE_DISTRO +LABEL org.opencontainers.image.authors="daos@daos.groups.io" +# Needed for later use of BASE_DISTRO +ARG BASE_DISTRO + +ARG REPO_FILE_URL +ARG DAOS_LAB_CA_FILE_URL +ARG REPOSITORY_NAME +# script to setup local repo if available +COPY ./scripts/repo-helper-ubuntu.sh /tmp/repo-helper.sh + +RUN chmod +x /tmp/repo-helper.sh && \ + /tmp/repo-helper.sh && \ + rm -f /tmp/repo-helper.sh + +# Install basic tools +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ + autoconf bash ca-certificates curl debhelper dh-make \ + dpkg-dev dh-python doxygen gcc git git-buildpackage \ + javahelper locales make patch pbuilder pkg-config \ + python3-dev python3-distro python3-distutils rpm scons wget \ + cmake valgrind rpmdevtools + +# use same UID as host and default value of 1000 if not specified +ARG UID=1000 + +# Add build user (to keep chrootbuild happy) +ENV USER=build +RUN useradd -u $UID -ms /bin/bash $USER + +# need to run the build command as root, as it needs to chroot +RUN if ! grep "^#includedir /etc/sudoers.d" /etc/sudoers; then \ + echo "#includedir /etc/sudoers.d" >> /etc/sudoers; \ + fi; \ + echo "Defaults env_keep += \"DPKG_GENSYMBOLS_CHECK_LEVEL\"" > /etc/sudoers.d/build; \ + echo "build ALL=(ALL) NOPASSWD: /usr/bin/tee /root/.pbuilderrc" >> /etc/sudoers.d/build; \ + echo "build ALL=(ALL) NOPASSWD: /usr/sbin/pbuilder" >> /etc/sudoers.d/build; \ + chmod 0440 /etc/sudoers.d/build; \ + visudo -c; \ + sudo -l -U build diff --git a/packaging/Dockerfile.ubuntu.20.04 b/packaging/Dockerfile.ubuntu.20.04 index ec76bfd..4484c84 100644 --- a/packaging/Dockerfile.ubuntu.20.04 +++ b/packaging/Dockerfile.ubuntu.20.04 @@ -1,57 +1,68 @@ +# Keep Dockerfile.ubuntu the same as this file until all packaging +# jobs are fixed to have a Dockerfile.ubuntu, and then the common +# Jenkinsfile will be changed to use Dockerfile.ubuntu. # # Copyright 2019-2021, Intel Corporation +# Copyright 2025-2026 Hewlett Packard Enterprise Development LP # # 'recipe' for Docker to build an Debian package # # Pull base image -FROM ubuntu:20.04 +ARG BASE_DISTRO=ubuntu:20.04 +FROM $BASE_DISTRO LABEL org.opencontainers.image.authors="daos@daos.groups.io" +# Needed for later use of BASE_DISTRO +ARG BASE_DISTRO -RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ - curl gpg +# Accept DAOS_HTTP_PROXY, DAOS_HTTPS_PROXY, and DAOS_NO_PROXY at build time +ARG DAOS_NO_PROXY +ARG DAOS_HTTP_PROXY +ARG DAOS_HTTPS_PROXY + +# Propagate into the build environment +ENV http_proxy=${DAOS_HTTP_PROXY} \ + HTTP_PROXY=${DAOS_HTTP_PROXY} \ + https_proxy=${DAOS_HTTPS_PROXY} \ + HTTPS_PROXY=${DAOS_HTTPS_PROXY} \ + no_proxy=${DAOS_NO_PROXY} \ + NO_PROXY=${DAOS_NO_PROXY} +# Persist into /etc/environment for use by shells and services +RUN set -e; \ + if [ -n "$DAOS_HTTP_PROXY" ]; then \ + echo "http_proxy=$DAOS_HTTP_PROXY" >> /etc/environment; \ + echo "HTTP_PROXY=$DAOS_HTTP_PROXY" >> /etc/environment; \ + fi; \ + if [ -n "$DAOS_HTTPS_PROXY" ]; then \ + echo "https_proxy=$DAOS_HTTPS_PROXY" >> /etc/environment; \ + echo "HTTPS_PROXY=$DAOS_HTTPS_PROXY" >> /etc/environment; \ + fi; \ + if [ -n "$DAOS_NO_PROXY" ]; then \ + echo "no_proxy=$DAOS_NO_PROXY" >> /etc/environment; \ + echo "NO_PROXY=$DAOS_NO_PROXY" >> /etc/environment; \ + fi + ARG REPO_FILE_URL -RUN if [ -n "$REPO_FILE_URL" ]; then \ - cd /etc/apt/sources.list.d && \ - curl -f -o daos_ci-ubuntu20.04-artifactory.list.tmp \ - "$REPO_FILE_URL"daos_ci-ubuntu20.04-artifactory.list && \ - true > ../sources.list && \ - mv daos_ci-ubuntu20.04-artifactory.list.tmp \ - daos_ci-ubuntu20.04-artifactory.list; \ - fi; \ - cd -; \ - curl -f -O "$REPO_FILE_URL"esad_repo.key; \ - gpg --no-default-keyring --keyring ./temp-keyring.gpg \ - --import esad_repo.key; \ - mkdir -p /usr/local/share/keyrings/; \ - gpg --no-default-keyring --keyring ./temp-keyring.gpg --export \ - --output /usr/local/share/keyrings/daos-stack-public.gpg; \ - rm ./temp-keyring.gpg; \ - url_prefix=https://downloads.linux.hpe.com/SDR/; \ - for url in hpPublicKey2048.pub \ - hpPublicKey2048_key1.pub \ - hpePublicKey2048_key1.pub; do \ - curl -f -O "$url_prefix$url"; \ - gpg --no-default-keyring --keyring ./temp-keyring.gpg \ - --import "$(basename $url)"; \ - done; \ - gpg --no-default-keyring --keyring ./temp-keyring.gpg --export \ - --output /usr/local/share/keyrings/hpe-sdr-public.gpg; \ - rm ./temp-keyring.gpg +ARG DAOS_LAB_CA_FILE_URL +ARG REPOSITORY_NAME +# Script to setup a local repo instead of the distro-provided one. +# Only takes effect when REPO_FILE_URL is set; otherwise it is a no-op. +RUN --mount=type=bind,source=packaging/scripts/repo-helper-ubuntu.sh,target=/tmp/repo-helper-ubuntu.sh \ + /tmp/repo-helper-ubuntu.sh -# Install basic tools +# Install basic tools - rpmdevtools temporary commented out. RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ autoconf bash ca-certificates curl debhelper dh-make \ dpkg-dev dh-python doxygen gcc git git-buildpackage \ javahelper locales make patch pbuilder pkg-config \ - python3-dev python3-distro python3-distutils rpm scons wget \ - cmake valgrind rpmdevtools + python3-dev python3-distro python3-distutils rpm scons sudo \ + wget cmake valgrind # rpmdevtools # use same UID as host and default value of 1000 if not specified ARG UID=1000 # Add build user (to keep chrootbuild happy) -ENV USER build +ENV USER=build RUN useradd -u $UID -ms /bin/bash $USER # need to run the build command as root, as it needs to chroot @@ -59,7 +70,7 @@ RUN if ! grep "^#includedir /etc/sudoers.d" /etc/sudoers; then echo "#includedir /etc/sudoers.d" >> /etc/sudoers; \ fi; \ echo "Defaults env_keep += \"DPKG_GENSYMBOLS_CHECK_LEVEL\"" > /etc/sudoers.d/build; \ - echo "build ALL=(ALL) NOPASSWD: /usr/bin/tee /root/.pbuilderrc" >> /etc/sudoers.d/build; \ + echo "build ALL=(ALL) NOPASSWD: /usr/bin/tee /root/.pbuilderrc" >> /etc/sudoers.d/build; \ echo "build ALL=(ALL) NOPASSWD: /usr/sbin/pbuilder" >> /etc/sudoers.d/build; \ chmod 0440 /etc/sudoers.d/build; \ visudo -c; \ diff --git a/packaging/Dockerfile.ubuntu.rolling b/packaging/Dockerfile.ubuntu.rolling index 02aca45..ed5d363 100644 --- a/packaging/Dockerfile.ubuntu.rolling +++ b/packaging/Dockerfile.ubuntu.rolling @@ -1,11 +1,12 @@ # # Copyright 2019, Intel Corporation +# Copyright 2025 Hewlett Packard Enterprise Development LP # # 'recipe' for Docker to build an Debian package # # Pull base image FROM ubuntu:rolling -Maintainer daos-stack +LABEL org.opencontainers.image.authors="daos@daos.groups.io" # use same UID as host and default value of 1000 if not specified ARG UID=1000 diff --git a/packaging/Makefile_distro_vars.mk b/packaging/Makefile_distro_vars.mk index 6a7f88b..79ae211 100644 --- a/packaging/Makefile_distro_vars.mk +++ b/packaging/Makefile_distro_vars.mk @@ -83,6 +83,22 @@ DISTRO_VERSION ?= $(VERSION_ID) ORIG_TARGET_VER := 15.4 SED_EXPR := 1p endif +ifeq ($(CHROOT_NAME),opensuse-leap-15.5-x86_64) +VERSION_ID := 15.5 +DISTRO_ID := sl15.5 +DISTRO_BASE := LEAP_15 +DISTRO_VERSION ?= $(VERSION_ID) +ORIG_TARGET_VER := 15.5 +SED_EXPR := 1p +endif +ifeq ($(CHROOT_NAME),opensuse-leap-15.6-x86_64) +VERSION_ID := 15.6 +DISTRO_ID := sl15.6 +DISTRO_BASE := LEAP_15 +DISTRO_VERSION ?= $(VERSION_ID) +ORIG_TARGET_VER := 15.6 +SED_EXPR := 1p +endif endif ifeq ($(ID),centos) ID = el diff --git a/packaging/Makefile_packaging.mk b/packaging/Makefile_packaging.mk index 6f4b16f..75038c1 100644 --- a/packaging/Makefile_packaging.mk +++ b/packaging/Makefile_packaging.mk @@ -35,7 +35,11 @@ TEST_PACKAGES ?= ${NAME} # unfortunately we cannot always name the repo the same as the project REPO_NAME ?= $(NAME) +ifneq ($(CI_PR_REPOS),) +PR_REPOS ?= $(CI_PR_REPOS) +else PR_REPOS ?= $(shell git show -s --format=%B | sed -ne 's/^PR-repos: *\(.*\)/\1/p') +endif LEAP_15_PR_REPOS ?= $(shell git show -s --format=%B | sed -ne 's/^PR-repos-leap15: *\(.*\)/\1/p') EL_7_PR_REPOS ?= $(shell git show -s --format=%B | sed -ne 's/^PR-repos-el7: *\(.*\)/\1/p') EL_8_PR_REPOS ?= $(shell git show -s --format=%B | sed -ne 's/^PR-repos-el8: *\(.*\)/\1/p') @@ -54,6 +58,7 @@ RPM_BUILD_OPTIONS := $(BUILD_DEFINES) GIT_DIFF_EXCLUDES := $(PATCH_EXCLUDE_FILES:%=':!%') endif +FVERSION ?= latest COMMON_RPM_ARGS := --define "_topdir $$PWD/_topdir" $(BUILD_DEFINES) SPEC := $(shell if [ -f $(NAME)-$(DISTRO_BASE).spec ]; then echo $(NAME)-$(DISTRO_BASE).spec; else echo $(NAME).spec; fi) VERSION = $(eval VERSION := $(shell rpm $(COMMON_RPM_ARGS) --specfile --qf '%{version}\n' $(SPEC) | sed -n '1p'))$(VERSION) @@ -163,7 +168,7 @@ endif $(notdir $(SOURCE) $(OTHER_SOURCES) $(REAL_SOURCE)): $(SPEC) $(CALLING_MAKEFILE) # TODO: need to clean up old ones - $(SPECTOOL) -g $(SPEC) + $(SPECTOOL) $(COMMON_RPM_ARGS) -g $(SPEC) $(DEB_TOP)/%: % | $(DEB_TOP)/ @@ -363,12 +368,14 @@ chrootbuild: $(SRPM) $(CALLING_MAKEFILE) LOCAL_REPOS='$(LOCAL_REPOS)' \ ARTIFACTORY_URL="$(ARTIFACTORY_URL)" \ DISTRO_VERSION="$(DISTRO_VERSION)" \ + PACKAGE="$(NAME)" \ TARGET="$<" \ packaging/rpm_chrootbuild endif podman_chrootbuild: if ! podman build --build-arg REPO_FILE_URL=$(REPO_FILE_URL) \ + --build-arg FVERSION=$(FVERSION) \ -t $(subst +,-,$(CHROOT_NAME))-chrootbuild \ -f packaging/Dockerfile.mockbuild .; then \ echo "Container build failed"; \ @@ -386,7 +393,9 @@ podman_chrootbuild: exit 1; \ fi; \ rpmlint $$(ls /var/lib/mock/$(CHROOT_NAME)/result/*.rpm | \ - grep -v -e debuginfo -e debugsource -e src.rpm)' + grep -v -e debuginfo -e debugsource -e src.rpm)'; then \ + exit 1; \ + fi docker_chrootbuild: if ! $(DOCKER) build --build-arg UID=$$(id -u) -t chrootbuild \ @@ -419,6 +428,8 @@ packaging_check: --exclude libfabric.spec \ --exclude Makefile \ --exclude README.md \ + --exclude SECURITY.md \ + --exclude LICENSE \ --exclude _topdir \ --exclude \*.tar.\* \ --exclude \*.code-workspace \ diff --git a/packaging/ccache-stats.patch b/packaging/ccache-stats.patch new file mode 100644 index 0000000..26d5eeb --- /dev/null +++ b/packaging/ccache-stats.patch @@ -0,0 +1,66 @@ +From e87d916d7f49ea4949973adf0f09e9e5bf891e03 Mon Sep 17 00:00:00 2001 +From: "Brian J. Murrell" +Date: Tue, 30 Jan 2024 11:03:12 -0500 +Subject: [PATCH 1/2] Show ccache stats at the end of the build + +Zero the ccache stats at the beginning of the build and then display the +ccache stats at the end of the build to see how effective ccache was. + +Signed-off-by: Brian J. Murrell +--- + mock/py/mockbuild/plugins/ccache.py | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/mock/py/mockbuild/plugins/ccache.py b/mock/py/mockbuild/plugins/ccache.py +index 2666ad9fc..1080ffe68 100644 +--- a/mock/py/mockbuild/plugins/ccache.py ++++ b/mock/py/mockbuild/plugins/ccache.py +@@ -35,6 +35,7 @@ def __init__(self, plugins, conf, buildroot): + buildroot.preexisting_deps.append("ccache") + plugins.add_hook("prebuild", self._ccacheBuildHook) + plugins.add_hook("preinit", self._ccachePreInitHook) ++ plugins.add_hook("postbuild", self._ccachePostBuildHook) + buildroot.mounts.add( + BindMountPoint(srcpath=self.ccachePath, bindpath=buildroot.make_chroot_path("/var/tmp/ccache"))) + +@@ -47,6 +48,9 @@ def __init__(self, plugins, conf, buildroot): + @traceLog() + def _ccacheBuildHook(self): + self.buildroot.doChroot(["ccache", "-M", str(self.ccache_opts['max_cache_size'])], shell=False) ++ # zero ccache stats ++ getLog().info("Zero ccache stats:") ++ self.buildroot.doChroot(["ccache", "--zero-stats"], printOutput=True, shell=False) + + # set up the ccache dir. + # we also set a few variables used by ccache to find the shared cache. +@@ -61,3 +65,10 @@ def _ccachePreInitHook(self): + file_util.mkdirIfAbsent(self.buildroot.make_chroot_path('/var/tmp/ccache')) + file_util.mkdirIfAbsent(self.ccachePath) + self.buildroot.uid_manager.changeOwner(self.ccachePath, recursive=True) ++ ++ # get some cache stats ++ def _ccachePostBuildHook(self): ++ # show the cache hit stats ++ getLog().info("ccache stats:") ++ self.buildroot.doChroot(["ccache", "--show-stats"], printOutput=True, shell=False) +++ + +From bfd3a7e1bb47d28ee60a94cb5985c1f66476475f Mon Sep 17 00:00:00 2001 +From: "Brian J. Murrell" +Date: Tue, 30 Jan 2024 11:17:48 -0500 +Subject: [PATCH 2/2] Remove extraneous line + +Signed-off-by: Brian J. Murrell +--- + mock/py/mockbuild/plugins/ccache.py | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/mock/py/mockbuild/plugins/ccache.py b/mock/py/mockbuild/plugins/ccache.py +index 1080ffe68..1a20846d3 100644 +--- a/mock/py/mockbuild/plugins/ccache.py ++++ b/mock/py/mockbuild/plugins/ccache.py +@@ -71,4 +71,3 @@ def _ccachePostBuildHook(self): + # show the cache hit stats + getLog().info("ccache stats:") + self.buildroot.doChroot(["ccache", "--show-stats"], printOutput=True, shell=False) +-+ diff --git a/packaging/debian_chrootbuild b/packaging/debian_chrootbuild index cc2cc96..5cb2943 100755 --- a/packaging/debian_chrootbuild +++ b/packaging/debian_chrootbuild @@ -2,17 +2,35 @@ set -uex +: "${REPO_FILE_URL:=}" +: "${HTTPS_PROXY:=}" + +# Currently not fully working behind a proxy if [ -n "${ARTIFACTORY_URL:-}" ] && "$LOCAL_REPOS"; then - echo "MIRRORSITE=${ARTIFACTORY_URL}artifactory/ubuntu-proxy" | sudo tee /root/.pbuilderrc + pbuilderrc="./pbuilder_rc.txt" + rm -f "$pbuilderrc" + if [ -n "${HTTPS_PROXY}" ]; then + echo "export http_proxy=\"${HTTPS_PROXY}\"" >> "$pbuilderrc" + else + echo "MIRRORSITE=${ARTIFACTORY_URL}/ubuntu-proxy/ubuntu" > "$pbuilderrc" + fi + #if [ -n "$REPO_FILE_URL" ]; then + # direct="${REPO_FILE_URL##*//}" + # direct="${direct%%/*}" + # echo "no_proxy=\"${direct}\"" >> "$pbuilderrc" + #fi + # shellcheck disable=SC2002 + cat "$pbuilderrc" | sudo tee /root/.pbuilderrc fi # shellcheck disable=SC2086 sudo pbuilder create \ --extrapackages "gnupg ca-certificates" \ - $DISTRO_ID_OPT + $DISTRO_ID_OPT || true # Ignore error status for now. repo_args="" repos_added=() +# currently a bit broken, pbuilder will not accept user provided CAs. for repo in $DISTRO_BASE_PR_REPOS $PR_REPOS; do branch="master" build_number="lastSuccessfulBuild" @@ -32,31 +50,34 @@ for repo in $DISTRO_BASE_PR_REPOS $PR_REPOS; do repo_args="$repo_args|deb [trusted=yes] ${JENKINS_URL:-https://build.hpdd.intel.com/}job/daos-stack/job/$repo/job/$branch/$build_number/artifact/artifacts/$DISTRO/ ./" done -repo_args+="|$(curl -sSf "$REPO_FILE_URL"daos_ci-"$DISTRO"-artifactory.list | - sed -e 's/#.*//' -e '/ubuntu-proxy/d' -e '/^$/d' -e '/^$/d' \ - -e 's/signed-by=.*\.gpg/trusted=yes/' | - sed -e ':a; N; $!ba; s/\n/|/g')" -for repo in $JOB_REPOS; do - repo_name=${repo##*://} - repo_name=${repo_name//\//_} - if [[ " ${repos_added[*]} " = *\ ${repo_name}\ * ]]; then - # don't add duplicates, first found wins - continue - fi - repos_added+=("$repo_name") - repo_args+="|deb ${repo} $VERSION_CODENAME main" -done -# NB: This PPA is needed to support modern go toolchains on ubuntu 20.04. -# After the build is updated to use 22.04, which supports go >= 1.18, it -# should no longer be needed. -repo_args="$repo_args|deb [trusted=yes] https://ppa.launchpadcontent.net/longsleep/golang-backports/ubuntu $VERSION_CODENAME main" -echo "$repo_args" -if [ "$repo_args" = "|" ]; then - repo_args="" -else - #repo_args="--othermirror"${repo_args#|}\"" - repo_args="${repo_args#|}" -fi +# currently broken, builder will not accept internal certs. +# repo_args+="|$(curl -sSf "$REPO_FILE_URL"daos_ci-"$DISTRO"-artifactory.list | +# sed -e 's/#.*//' -e '/ubuntu-proxy/d' -e '/^$/d' -e '/^$/d' \ +# -e 's/signed-by=.*\.gpg/trusted=yes/' | +# sed -e ':a; N; $!ba; s/\n/|/g')" +#for repo in $JOB_REPOS; do +# repo_name=${repo##*://} +# repo_name=${repo_name//\//_} +# if [[ " ${repos_added[*]} " = *\ ${repo_name}\ * ]]; then +# # don't add duplicates, first found wins +# continue +# fi +# repos_added+=("$repo_name") +# repo_args+="|deb ${repo} $VERSION_CODENAME main" +#done + +## NB: This PPA is needed to support modern go toolchains on ubuntu 20.04. +## After the build is updated to use 22.04, which supports go >= 1.18, it +## should no longer be needed. +# currently broken - claim is public key not available. +#repo_args="$repo_args|deb [trusted=yes] https://ppa.launchpadcontent.net/longsleep/golang-backports/ubuntu $VERSION_CODENAME main" +#echo "$repo_args" +#if [ "$repo_args" = "|" ]; then +# repo_args="" +#else +# #repo_args="--othermirror"${repo_args#|}\"" +# repo_args="${repo_args#|}" +#fi cd "$DEB_TOP" # shellcheck disable=SC2086 sudo pbuilder update --override-config $DISTRO_ID_OPT ${repo_args:+--othermirror "$repo_args"} diff --git a/packaging/get_base_branch b/packaging/get_base_branch new file mode 100755 index 0000000..75eb90b --- /dev/null +++ b/packaging/get_base_branch @@ -0,0 +1,22 @@ +#!/bin/bash + +# find the base branch of the current branch + +set -eux -o pipefail +IFS=' ' read -r -a add_bases <<< "${1:-}" +origin="${ORIGIN:-origin}" +mapfile -t all_bases < <(echo "master" + git branch -r | sed -ne "/^ $origin\\/release\\/[0-9]/s/^ $origin\\///p") +all_bases+=("${add_bases[@]}") +TARGET="master" +min_diff=-1 +for base in "${all_bases[@]}"; do + git rev-parse --verify "$origin/$base" &> /dev/null || continue + commits_ahead=$(git log --oneline "$origin/$base..HEAD" | wc -l) + if [ "$min_diff" -eq -1 ] || [ "$min_diff" -gt "$commits_ahead" ]; then + TARGET="$base" + min_diff=$commits_ahead + fi +done +echo "$TARGET" +exit 0 diff --git a/packaging/rpm_chrootbuild b/packaging/rpm_chrootbuild index d122e0e..8d37abc 100755 --- a/packaging/rpm_chrootbuild +++ b/packaging/rpm_chrootbuild @@ -2,12 +2,34 @@ set -uex -original_cfg_file="/etc/mock/$CHROOT_NAME.cfg" -cfg_file=mock.cfg +: "${HTTPS_PROXY:=}" +: "${REPO_FILE_URL:=}" +: "${ARCH:=$(arch)}" +: "${REPOSITORY_NAME:=artifactory}" -cp "$original_cfg_file" "$cfg_file" +cp /etc/mock/"$CHROOT_NAME".cfg mock.cfg -if [[ $CHROOT_NAME == *epel-8-x86_64 ]]; then +# Enable mock ccache plugin +cat <> mock.cfg +config_opts['plugin_conf']['ccache_enable'] = True +config_opts['plugin_conf']['ccache_opts']['dir'] = "%(cache_topdir)s/%(root)s/ccache/" +EOF + + +# Optionally add a proxy to mock +if [ -n "$HTTPS_PROXY" ];then + yum_proxy="http://${HTTPS_PROXY##*//}" + echo "config_opts['https_proxy'] = '$yum_proxy'" >> mock.cfg +fi + +# No proxy for local mirrors +if [ -n "$REPO_FILE_URL" ]; then + direct="${REPO_FILE_URL##*//}" + direct="${direct%%/*}" + echo "config_opts['no_proxy'] = '${direct}'" >> mock.cfg +fi + +if [[ $CHROOT_NAME == *"epel-8-${ARCH}" ]]; then cat <> mock.cfg config_opts['module_setup_commands'] = [ ('enable', 'javapackages-tools:201801'), @@ -17,12 +39,12 @@ EOF fi # Use dnf on CentOS 7 -if [[ $CHROOT_NAME == *epel-7-x86_64 ]]; then +if [[ $CHROOT_NAME == *"epel-7-$ARCH" ]]; then MOCK_OPTIONS="--dnf --no-bootstrap-chroot${MOCK_OPTIONS:+ }$MOCK_OPTIONS" fi # Allow BR: foo-devel < 1.2 to work when foo-devel-1.3 is actually available -cat <> "$cfg_file" +cat <> mock.cfg config_opts['dnf.conf'] += """ [main] best=0 @@ -33,7 +55,7 @@ EOF repo_adds=() repo_dels=() -echo -e "config_opts['yum.conf'] += \"\"\"\n" >> "$cfg_file" +echo -e "config_opts['yum.conf'] += \"\"\"\n" >> mock.cfg if [ -n "${ARTIFACTORY_URL:-}" ] && "$LOCAL_REPOS"; then repo_dels+=("--disablerepo=\*") @@ -56,8 +78,8 @@ if [ -n "${ARTIFACTORY_URL:-}" ] && "$LOCAL_REPOS"; then REPO_FILE_URL="file://$(readlink -e "$REPO_FILES_PR")/" fi fi - curl -sSf "${REPO_FILE_URL}daos_ci-$DISTRO"-mock-artifactory.repo >> "$cfg_file" - repo_adds+=("--enablerepo *-artifactory") + curl -sSf "$REPO_FILE_URL"daos_ci-"${CHROOT_NAME%-*}".repo >> mock.cfg + repo_adds+=("--enablerepo *-${REPOSITORY_NAME}") fi fi @@ -81,9 +103,9 @@ for repo in $DISTRO_BASE_PR_REPOS $PR_REPOS; do repo_adds+=("--enablerepo $repo:${branch//[@\/]/_}:$build_number") echo -e "[$repo:${branch//[@\/]/_}:$build_number]\n\ name=$repo:${branch//[@\/]/_}:$build_number\n\ -baseurl=${JENKINS_URL:-https://build.hpdd.intel.com/}job/daos-stack/job/$repo/job/${branch//\//%2F}/$build_number/artifact/artifacts/$DISTRO/\n\ +baseurl=${ARTIFACTS_URL:-${JENKINS_URL:-https://build.hpdd.intel.com/}job/}daos-stack/job/$repo/job/${branch//\//%2F}/$build_number/artifact/artifacts/$DISTRO/\n\ enabled=1\n\ -gpgcheck=False\n" >> "$cfg_file" +gpgcheck=False\n" >> mock.cfg done for repo in $JOB_REPOS; do repo_name=${repo##*://} @@ -97,29 +119,46 @@ for repo in $JOB_REPOS; do echo -e "[${repo_name//[@\/]/_}]\n\ name=${repo_name}\n\ baseurl=${repo//\//%2F}\n\ -enabled=1\n" >> "$cfg_file" +enabled=1\n" >> mock.cfg done -echo "\"\"\"" >> "$cfg_file" +echo "\"\"\"" >> mock.cfg if [ -n "$DISTRO_VERSION" ]; then releasever_opt=("--config-opts=releasever=$DISTRO_VERSION") fi -bs_dir=/scratch/mock/cache/"${CHROOT_NAME}"-bootstrap -if ls -l /scratch/mock/cache/"${CHROOT_NAME}"-bootstrap/root_cache/cache.tar.gz; then - mkdir -p "/var/cache/mock/${CHROOT_NAME}-bootstrap" +bs_dir=/scratch/mock/cache/"${CHROOT_NAME}"-bootstrap-$(id -u) +if ls -l "$bs_dir"/root_cache/cache.tar.gz; then + mkdir -p "/var/cache/mock/${CHROOT_NAME}-bootstrap/" flock "$bs_dir" -c "cp -a $bs_dir/root_cache /var/cache/mock/${CHROOT_NAME}-bootstrap" fi +if ls -l "$bs_dir/ccache-$CHROOT_NAME-$PACKAGE".tar.gz; then + flock "$bs_dir" -c "tar -C / -xzf $bs_dir/ccache-$CHROOT_NAME-$PACKAGE.tar.gz" +fi -# shellcheck disable=SC2086 -eval mock -r "$cfg_file" ${repo_dels[*]} ${repo_adds[*]} --disablerepo=\*-debug* \ - "${releasever_opt[@]}" $MOCK_OPTIONS $RPM_BUILD_OPTIONS "$TARGET" +rc=0 +# shellcheck disable=SC2086,SC2048 +if ! eval time mock -r mock.cfg ${repo_dels[*]} ${repo_adds[*]} --no-clean \ + --disablerepo=\*-debug* ${releasever_opt[*]} $MOCK_OPTIONS \ + $RPM_BUILD_OPTIONS "$TARGET"; then + rc=${PIPESTATUS[0]} +fi -date -if ls -l /var/cache/mock/"${CHROOT_NAME}"-bootstrap/root_cache/cache.tar.gz && - [ -d /scratch/ ]; then - mkdir -p /scratch/mock/cache/"${CHROOT_NAME}"-bootstrap/ - if ! cmp /var/cache/mock/"${CHROOT_NAME}"-bootstrap/root_cache/cache.tar.gz "$bs_dir"/root_cache/cache.tar.gz; then - flock "$bs_dir" -c "cp -a /var/cache/mock/${CHROOT_NAME}-bootstrap/root_cache $bs_dir/" +# Save the ccache +if [ -d /scratch/mock ]; then + mkdir -p "$bs_dir"/ + if ! flock "$bs_dir" -c "tar -czf $bs_dir/ccache-$CHROOT_NAME-$PACKAGE.tar.gz /var/cache/mock/${CHROOT_NAME}/ccache"; then + echo "Failed to save ccache. Plowing onward." + echo "I am $(id)" + fi + if ls -l /var/cache/mock/"${CHROOT_NAME}"-bootstrap/root_cache/cache.tar.gz; then + if ! cmp /var/cache/mock/"${CHROOT_NAME}"-bootstrap/root_cache/cache.tar.gz "$bs_dir"/root_cache/cache.tar.gz; then + if ! flock "$bs_dir" -c "cp -a /var/cache/mock/${CHROOT_NAME}-bootstrap/root_cache $bs_dir/"; then + echo "Failed to save root_cache. Plowing onward." + echo "I am $(id)" + fi + fi fi fi + +exit "$rc" diff --git a/packaging/scripts/repo-helper-fedora.sh b/packaging/scripts/repo-helper-fedora.sh new file mode 100755 index 0000000..f7d4a4f --- /dev/null +++ b/packaging/scripts/repo-helper-fedora.sh @@ -0,0 +1,80 @@ +#!/bin/bash +# +# Copyright 2025-2026 Hewlett Packard Enterprise Development LP +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +set -uex + +# This script is used by Dockerfiles to optionally use +# a local repository instead of a distro provided repository. + +: "${REPO_FILE_URL:=}" +: "${DAOS_LAB_CA_FILE_URL:=}" +: "${FVERSION:=latest}" +: "${REPOSITORY_NAME:=artifactory}" +: "${archive:=}" +if [ "$FVERSION" != "latest" ]; then + archive="-archive" +fi + +# shellcheck disable=SC2120 +disable_repos () { + local repos_dir="$1" + shift + local save_repos + IFS=" " read -r -a save_repos <<< "${*:-} daos_ci-fedora${archive}-${REPOSITORY_NAME}" + if [ -n "$REPO_FILE_URL" ]; then + pushd "$repos_dir" + local repo + for repo in "${save_repos[@]}"; do + mv "$repo".repo{,.tmp} + done + for file in *.repo; do + true > "$file" + done + for repo in "${save_repos[@]}"; do + mv "$repo".repo{.tmp,} + done + popd + fi +} + +# Use local repo server if present +install_curl() { + : +} + +# Use local repo server if present +install_optional_ca() { + ca_storage="/etc/pki/ca-trust/source/anchors/" + if [ -n "$DAOS_LAB_CA_FILE_URL" ]; then + curl -k -sSf -o "${ca_storage}lab_ca_file.crt" \ + "$DAOS_LAB_CA_FILE_URL" + update-ca-trust + fi +} + +# Use local repo server if present +# if a local repo server is present and the distro repo server can not +# be reached, have to bootstrap in an environment to get curl installed +# to then install the pre-built repo file. + +if [ -n "$REPO_FILE_URL" ]; then + install_curl + install_optional_ca + mkdir -p /etc/yum.repos.d + pushd /etc/yum.repos.d/ + curl -k -sSf \ + -o "daos_ci-fedora${archive}-${REPOSITORY_NAME}.repo" \ + "{$REPO_FILE_URL}daos_ci-fedora${archive}-${REPOSITORY_NAME}.repo" + disable_repos /etc/yum.repos.d/ + popd +fi +dnf -y install dnf-plugins-core +# This does not work in fedora/41 anymore -- needs investigation +# dnf -y config-manager --save --setopt=assumeyes=True +# dnf config-manager --save --setopt=install_weak_deps=False +dnf clean all + +disable_repos /etc/yum.repos.d/ "${save_repos[@]}" diff --git a/packaging/scripts/repo-helper-ubuntu.sh b/packaging/scripts/repo-helper-ubuntu.sh new file mode 100755 index 0000000..20220e9 --- /dev/null +++ b/packaging/scripts/repo-helper-ubuntu.sh @@ -0,0 +1,103 @@ +#!/bin/bash +set -uex + +# This script is used by Dockerfiles to optionally use +# a local repository instead of a distro provided repository. +# It will also optionally allow running a /tmp/install script +# for custom packages if present. + +: "${REPO_FILE_URL:=}" +: "${HTTPS_PROXY:=}" +: "${DAOS_LAB_CA_FILE_URL:=}" +: "${REPOSITORY_NAME:=artifactory}" + +disable_repos () { + if [ -e /etc/apt/sources.list.d/ubuntu.sources ];then + mv /etc/apt/sources.list.d/ubuntu.sources \ + etc/apt/sources.list.d/ubuntu.sources.disabled + elif [ -e /etc/apt/sources.list ];then + mv /etc/apt/sources.list \ + etc/apt/sources.list.disabled + fi +} + +# Use local repo server if present +install_curl() { + + if command -v curl; then + echo "found curl!" + return + else + apt-get update + apt-get install curl ca-certificates gpg gpg-agent \ + software-properties-common + fi + + if command -v wget; then + echo "found wget!" + return + fi + # If we don't find one of these, we are basically sunk for using + # a local repository mirror. +} + +# Use local repo server if present +install_optional_ca() { + ca_storage="/usr/local/share/ca-certificates/" + if [ -n "$DAOS_LAB_CA_FILE_URL" ]; then + curl -k --noproxy '*' -sSf -o "${ca_storage}lab_ca_file.crt" \ + "$DAOS_LAB_CA_FILE_URL" + update-ca-certificates + fi +} + +echo "APT::Get::Assume-Yes \"true\";" > /etc/apt/apt.conf.d/no-prompt +echo "APT::Install-Recommends \"false\";" > /etc/apt/apt.conf.d/no-recommends +if [ -n "$HTTPS_PROXY" ];then + apt_proxy="http://${HTTPS_PROXY##*//}" + echo "Acquire::http::Proxy \"$apt_proxy\";" > \ + /etc/apt/apt.conf.d/local_proxy + if [ -n "$REPO_FILE_URL" ]; then + direct="${REPO_FILE_URL##*//}" + direct="${direct%%/*}" + echo "Acquire::http::Proxy { $direct DIRECT; };" >> \ + /etc/apt/apt.conf.d/local_proxy + fi +fi + +# Use local repo server if present +# if a local repo server is present and the distro repo server can not +# be reached, have to bootstrap in an environment to get curl installed +# to then install the pre-built repo file. +DISTRO_VERSION="${BASE_DISTRO##*:}" +if [ -n "$REPO_FILE_URL" ]; then + install_curl + install_optional_ca + # Ubuntu local repo mirror is not working + # curl -k --noproxy '*' -sSf \ + # -o "daos_ci-ubuntu${DISTRO_VERSION}-${REPOSITORY_NAME}.list" \ + # "${REPO_FILE_URL}daos_ci-ubuntu${DISTRO_VERSION}-${REPOSITORY_NAME}.list" + # disable_repos + # temp hack until we can debug the Ubuntu repos. + REPO_BASE="${REPO_FILE_URL%repo-files/}" + curl -k --noproxy '*' -sSf \ + -o "rpmdevtools_8.10-10_amd64.deb" \ + "${REPO_BASE}daos-stack-deps-ubuntu-${DISTRO_VERSION}-x86_64-stable-local/pool/rpmdevtools_8.10-10_amd64.deb" + apt-get install "./rpmdevtools_8.10-10_amd64.deb" + mkdir -p /usr/local/share/keyrings/ + curl --noproxy '*' -sSf -O "${REPO_FILE_URL}esad_repo.key" + gpg --no-default-keyring --keyring ./temp-keyring.gpg \ + --import esad_repo.key + gpg --no-default-keyring --keyring ./temp-keyring.gpg --export \ + --output /usr/local/share/keyrings/daos-stack-public.gpg +fi + +apt-get update +apt-get upgrade +# add-apt-repository ppa:longsleep/golang-backports +apt-get update +if [ -e /tmp/install.sh ]; then + chmod +x /tmp/install.sh + /tmp/install.sh +fi +apt-get clean all