Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion hdf5-vol-daos.spec
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ BuildRequires: libuuid-devel
BuildRequires: boost-devel
BuildRequires: gcc, gcc-c++
%if (0%{?suse_version} >= 1500)
BuildRequires: cmake >= 3.1
BuildRequires: cmake >= 3.15.1
BuildRequires: lua-lmod
%else
BuildRequires: cmake3 >= 3.1
Expand Down
1 change: 0 additions & 1 deletion packaging/Dockerfile.mockbuild
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,3 @@ RUN usermod -a -G mock $USER
RUN grep use_nspawn /etc/mock/site-defaults.cfg || \
echo "config_opts['use_nspawn'] = False" >> /etc/mock/site-defaults.cfg

RUN chmod g+w /etc/mock/*
12 changes: 6 additions & 6 deletions packaging/Dockerfile.ubuntu.20.04
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
#
# Copyright 2019-2020, Intel Corporation
# Copyright 2019-2021, Intel Corporation
#
# 'recipe' for Docker to build an Debian package
#
# Pull base image
FROM ubuntu:20.04
MAINTAINER daos-stack <daos@daos.groups.io>
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
Expand All @@ -14,10 +14,10 @@ ARG REPO_UBUNTU_20_04=""

# Install basic tools
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
autoconf bash curl debhelper dh-make dpkg-dev doxygen gcc \
git git-buildpackage locales make patch pbuilder rpm wget \
ca-certificates scons python3-distutils pkg-config \
python3-dev python3-distro
autoconf bash ca-certificates curl debhelper dh-make \
dpkg-dev dh-python doxygen gcc git git-buildpackage locales \
make patch pbuilder pkg-config python3-dev python3-distro \
python3-distutils rpm scons wget

# rpmdevtools
RUN echo "deb [trusted=yes] ${REPO_URL}${REPO_UBUNTU_20_04} focal main" > /etc/apt/sources.list.d/daos-stack-ubuntu-stable-local.list
Expand Down
16 changes: 5 additions & 11 deletions packaging/Makefile_distro_vars.mk
Original file line number Diff line number Diff line change
Expand Up @@ -40,23 +40,17 @@ DISTRO_ID := el8
DISTRO_BASE := EL_8
SED_EXPR := 1s/$(DIST)//p
endif
ifeq ($(CHROOT_NAME),opensuse-leap-15.1-x86_64)
VERSION_ID := 15.1
DISTRO_ID := sl15.1
DISTRO_BASE := LEAP_15
SED_EXPR := 1p
endif
ifeq ($(CHROOT_NAME),opensuse-leap-15.2-x86_64)
VERSION_ID := 15.2
DISTRO_ID := sl15.2
DISTRO_BASE := LEAP_15
SED_EXPR := 1p
endif
ifeq ($(CHROOT_NAME),leap-42.3-x86_64)
# TBD if support is ever resurrected
endif
ifeq ($(CHROOT_NAME),sles-12.3-x86_64)
# TBD if support is ever resurrected
ifeq ($(CHROOT_NAME),opensuse-leap-15.3-x86_64)
VERSION_ID := 15.3
DISTRO_ID := sl15.3
DISTRO_BASE := LEAP_15
SED_EXPR := 1p
endif
endif
ifeq ($(ID),centos)
Expand Down
29 changes: 19 additions & 10 deletions packaging/Makefile_packaging.mk
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,8 @@ SHELL=/bin/bash
# Put site overrides (i.e. REPOSITORY_URL, DAOS_STACK_*_LOCAL_REPO) in here
-include Makefile.local

ifeq ($(MAKECMDGOALS),chrootbuild)
# default to Leap 15 distro for chrootbuild
CHROOT_NAME ?= opensuse-leap-15.2-x86_64
endif

include packaging/Makefile_distro_vars.mk

ifeq ($(DEB_NAME),)
Expand All @@ -31,6 +28,11 @@ RPM_BUILD_OPTIONS += $(EXTERNAL_RPM_BUILD_OPTIONS)
# some defaults the caller can override
PACKAGING_CHECK_DIR ?= ../packaging
LOCAL_REPOS ?= true
ifeq ($(ID_LIKE),debian)
DAOS_REPO_TYPE ?= LOCAL
else
DAOS_REPO_TYPE ?= STABLE
endif
TEST_PACKAGES ?= ${NAME}

# unfortunately we cannot always name the repo the same as the project
Expand Down Expand Up @@ -294,17 +296,26 @@ ls: $(TARGETS)
# *_GROUP_* repos may not supply a repomd.xml.key.
ifeq ($(LOCAL_REPOS),true)
ifneq ($(REPOSITORY_URL),)
ifneq ($(DAOS_STACK_$(DISTRO_BASE)_LOCAL_REPO),)
ifneq ($(DAOS_STACK_$(DISTRO_BASE)_$(DAOS_REPO_TYPE)_REPO),)
ifeq ($(ID_LIKE),debian)
# $(DISTRO_BASE)_LOCAL_REPOS is a list separated by | because you cannot pass lists
# of values with spaces as environment variables
$(DISTRO_BASE)_LOCAL_REPOS := [trusted=yes]
endif
$(DISTRO_BASE)_LOCAL_REPOS := $($(DISTRO_BASE)_LOCAL_REPOS) $(REPOSITORY_URL)$(DAOS_STACK_$(DISTRO_BASE)_LOCAL_REPO)/
$(DISTRO_BASE)_LOCAL_REPOS := $($(DISTRO_BASE)_LOCAL_REPOS) $(REPOSITORY_URL)$(DAOS_STACK_$(DISTRO_BASE)_$(DAOS_REPO_TYPE)_REPO)/
endif
$(DISTRO_BASE)_LOCAL_REPOS := $($(DISTRO_BASE)_LOCAL_REPOS)|
ifneq ($(DAOS_STACK_$(DISTRO_BASE)_GROUP_REPO),)
$(DISTRO_BASE)_LOCAL_REPOS := $($(DISTRO_BASE)_LOCAL_REPOS)$(REPOSITORY_URL)$(DAOS_STACK_$(DISTRO_BASE)_GROUP_REPO)/|
ifneq ($(DAOS_STACK_$(DISTRO_BASE)_DOCKER_$(DAOS_REPO_TYPE)_REPO),)
DISTRO_REPOS = $(DAOS_STACK_$(DISTRO_BASE)_DOCKER_$(DAOS_REPO_TYPE)_REPO)
$(DISTRO_BASE)_LOCAL_REPOS := $($(DISTRO_BASE)_LOCAL_REPOS)$(REPOSITORY_URL)$(DAOS_STACK_$(DISTRO_BASE)_DOCKER_$(DAOS_REPO_TYPE)_REPO)/|
endif
ifneq ($(DAOS_STACK_$(DISTRO_BASE)_APPSTREAM_REPO),)
$(DISTRO_BASE)_LOCAL_REPOS := $($(DISTRO_BASE)_LOCAL_REPOS)$(REPOSITORY_URL)$(DAOS_STACK_$(DISTRO_BASE)_APPSTREAM_REPO)|
endif
ifneq ($(ID_LIKE),debian)
ifneq ($(DAOS_STACK_INTEL_ONEAPI_REPO),)
$(DISTRO_BASE)_LOCAL_REPOS := $($(DISTRO_BASE)_LOCAL_REPOS)$(REPOSITORY_URL)$(DAOS_STACK_INTEL_ONEAPI_REPO)|
endif
endif
endif
endif
Expand Down Expand Up @@ -334,6 +345,7 @@ chrootbuild: $(SRPM) $(CALLING_MAKEFILE)
DISTRO_BASE_LOCAL_REPOS="$($(DISTRO_BASE)_LOCAL_REPOS)" \
MOCK_OPTIONS="$(MOCK_OPTIONS)" \
RPM_BUILD_OPTIONS='$(RPM_BUILD_OPTIONS)' \
DISTRO_REPOS='$(DISTRO_REPOS)' \
TARGET="$<" \
packaging/rpm_chrootbuild
endif
Expand Down Expand Up @@ -383,9 +395,6 @@ test:
$(call install_repos,$(REPO_NAME)@$(BRANCH_NAME):$(BUILD_NUMBER))
yum -y install $(TEST_PACKAGES)

show_VARIABLES:
$(foreach v, $(.VARIABLES), $(info $(v) = $($(v))))

show_spec:
@echo '$(SPEC)'

Expand Down
80 changes: 44 additions & 36 deletions packaging/rpm_chrootbuild
Original file line number Diff line number Diff line change
Expand Up @@ -4,46 +4,54 @@ set -uex

# shellcheck disable=SC2153
IFS=\| read -r -a distro_base_local_repos <<< "$DISTRO_BASE_LOCAL_REPOS"
repo_adds=()
repo_dels=()

if [ -w /etc/mock/"$CHROOT_NAME".cfg ]; then
# Remove the distro repos
if [[ $CHROOT_NAME =~ opensuse-leap-* ]]; then
ed /etc/mock/"$CHROOT_NAME".cfg << EOF
/^# repos$/+2;/^"""$/-1d
wq
EOF
elif [[ $CHROOT_NAME =~ epel-8-* ]]; then
echo -e "config_opts['module_enable'] = ['javapackages-tools']\n" >> /etc/mock/"$CHROOT_NAME".cfg
fi
echo -e "config_opts['yum.conf'] += \"\"\"\n" >> /etc/mock/"$CHROOT_NAME".cfg
for repo in $DISTRO_BASE_PR_REPOS $PR_REPOS; do
branch="master"
build_number="lastSuccessfulBuild"
if [[ $repo = *@* ]]; then
branch="${repo#*@}"
repo="${repo%@*}"
if [[ $branch = *:* ]]; then
build_number="${branch#*:}"
branch="${branch%:*}"
fi
if [ -n "$REPOSITORY_URL" ] && [ -n "$DISTRO_REPOS" ]; then
repo_dels+=("--disablerepo=\*")
fi

: "${WORKSPACE:=$PWD}"
mock_config_dir="$WORKSPACE/mock"
original_cfg_file="/etc/mock/${CHROOT_NAME}.cfg"
cfg_file="$mock_config_dir/${CHROOT_NAME}_daos.cfg"
mkdir -p "$mock_config_dir"
ln -sf /etc/mock/templates "$mock_config_dir/"
ln -sf /etc/mock/logging.ini "$mock_config_dir/"

cp "$original_cfg_file" "$cfg_file"

echo -e "config_opts['yum.conf'] += \"\"\"\n" >> "$cfg_file"
for repo in $DISTRO_BASE_PR_REPOS $PR_REPOS; do
branch="master"
build_number="lastSuccessfulBuild"
if [[ $repo = *@* ]]; then
branch="${repo#*@}"
repo="${repo%@*}"
if [[ $branch = *:* ]]; then
build_number="${branch#*:}"
branch="${branch%:*}"
fi
echo -e "[$repo:$branch:$build_number]\n\
fi
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/$build_number/artifact/artifacts/$DISTRO/\n\
enabled=1\n\
gpgcheck=False\n" >> /etc/mock/"$CHROOT_NAME".cfg
done
for repo in $JOB_REPOS "${distro_base_local_repos[@]}"; do
repo_name=${repo##*://}
repo_name=${repo_name//\//_}
echo -e "[${repo_name//@/_}]\n\
gpgcheck=False\n" >> "$cfg_file"
done
for repo in $JOB_REPOS "${distro_base_local_repos[@]}"; do
repo_name=${repo##*://}
repo_name=${repo_name//\//_}
repo_adds+=("--enablerepo $repo_name")
echo -e "[${repo_name//@/_}]\n\
name=${repo_name}\n\
baseurl=${repo}\n\
enabled=1\n" >> /etc/mock/"$CHROOT_NAME".cfg
done
echo "\"\"\"" >> /etc/mock/"$CHROOT_NAME".cfg
else
echo "Unable to update /etc/mock/$CHROOT_NAME.cfg."
echo "You need to make sure it has the needed repos in it yourself."
fi
eval mock -r "$CHROOT_NAME" $MOCK_OPTIONS $RPM_BUILD_OPTIONS "$TARGET"
enabled=1\n" >> "$cfg_file"
done
echo "\"\"\"" >> "$cfg_file"

# shellcheck disable=SC2086
eval mock --configdir "$mock_config_dir" -r "${CHROOT_NAME}_daos" \
"${repo_dels[*]}" "${repo_adds[*]}" \
$MOCK_OPTIONS $RPM_BUILD_OPTIONS "$TARGET"