Skip to content
Draft
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
19,644 changes: 0 additions & 19,644 deletions 3.3.0..d3574d536643475269d37211e283b49ebd6732d7.patch

This file was deleted.

2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,5 @@
//@Library(value="pipeline-lib@your_branch") _

/* groovylint-disable-next-line CompileStatic */
packageBuildingPipelineDAOSTest(['distros' : ['centos7', 'el8', 'el9', 'leap15'],
packageBuildingPipelineDAOSTest(['distros' : ['el8', 'el9', 'leap15'],
'test-tag': 'ior'])
1 change: 0 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
NAME := ior
SRC_EXT := gz
PKG_GIT_COMMIT := d3574d536643475269d37211e283b49ebd6732d7
GITHUB_PROJECT := hpc/$(NAME)
# This list of files that are in the upstream git repo but are not included in upstream's releases
PATCH_EXCLUDE_FILES := .travis.yml README_DAOS doc/sphinx/
Expand Down
16 changes: 0 additions & 16 deletions daos-configure.patch

This file was deleted.

32 changes: 19 additions & 13 deletions ior.spec
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,19 @@
%global shortcommit %(c=%{commit};echo ${c:0:7})

Name: ior
Version: 3.3.0
Release: 20%{?commit:.g%{shortcommit}}%{?dist}
Version: 4.0.0
Release: 1%{?commit:.g%{shortcommit}}%{?dist}

Summary: IOR-HPC

License: GPL
License: GPL-2.0-only
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To resolve invalid-license lint

URL: https://github.com/hpc/%{name}/
Source0: https://github.com/hpc/%{name}/releases/download/%{version}/%{name}-%{version}.tar.gz
%if "%{?commit}" != ""
Patch1: %{version}..%{commit}.patch
%endif
Patch3: daos-configure.patch
# patch configure.ac
Patch3: https://github.com/hpc/ior/commit/38064419cbe959cb538695e51b2bc2a91d6971f7.patch
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could also just update to 4.0.0 + patch tip of main. Which is what the spec does currently. I.e. 3.3.0..d3574d536643475269d37211e283b49ebd6732d7.patch

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could, at the risk of introducing post-4.0.0 landings that could be troublesome. I think what we are doing here is better and more idiomatic of software packaging.


BuildRequires: mpich-devel
BuildRequires: hwloc-devel
Expand All @@ -27,7 +28,6 @@ BuildRequires: unzip
BuildRequires: autoconf, automake
BuildRequires: daos-devel
BuildRequires: hdf5-mpich-devel%{?_isa}
BuildRequires: mercury-devel
BuildRequires: chrpath
%if (0%{?suse_version} >= 1500)
BuildRequires: lua-lmod
Expand All @@ -50,18 +50,18 @@ IOR-HPC

%prep
%autosetup -p1
%if "%{?commit}" != ""
# we most likely patched configure.ac
# we patched configure.ac
autoreconf
%endif

%build
export CC=mpicc
export CXX=mpicxx
export FC=mpif90
export F77=mpif77
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fPIC"
export CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fPIC"
%if (0%{?suse_version} >= 1500)
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fPIC -fPIE"
export CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -fPIC -fPIE"
%endif
if [ ! -f configure ]; then
# probably a git tarball
./bootstrap
Expand All @@ -73,11 +73,11 @@ fi
%else
%configure --with-mpiio --with-daos=/usr --with-hdf5 --bindir=$MPI_BIN --mandir=$MPI_MAN --libdir=$MPI_LIB --includedir=$MPI_INCLUDE --datadir=%{_datadir}/doc/ior-mpich
%endif
%make_build
%make_build V=1

%install
%module_load mpich
%make_install
%make_install V=1

%if 0%{?suse_version}
MPI_LIB=%{_libdir}
Expand All @@ -96,17 +96,23 @@ $MPI_MAN/man1/*
EOF
%endif


%if (0%{?suse_version} >= 1)
%files
%{_bindir}/*
%{_defaultdocdir}/%{name}/
%{_mandir}/man1/*
%else
%find_lang mdtest --with-man
%files -f files.mpich
%files -f mdtest.lang
%endif

%changelog
* Fri Jan 31 2025 Dalton A. Bohning <dalton.bohning@hpe.com> - 4.0.0-1
- Update to 4.0.0 release
- Remove BR: mercury-devel
- Use upstream configure.ac patch instead of local

* Tue Jul 04 2023 Brian J. Murrell <brian.murrell@intel.com> - 3.3.0-20
- Add BR: mercury-devel
- Remove static library
Expand Down
30 changes: 26 additions & 4 deletions packaging/Dockerfile.centos.7
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,41 @@
#

# Pull base image
FROM centos:7
FROM centos:centos7
LABEL maintainer="daos@daos.groups.io"

# Use local repo server if present
ARG REPO_FILE_URL
RUN set -e; \
if [ -n "$REPO_FILE_URL" ]; then \
cd /etc/yum.repos.d/ && \
curl -k -f -o daos_ci-centos7-artifactory.repo.tmp \
"$REPO_FILE_URL"daos_ci-centos7-artifactory.repo && \
for file in *.repo; do \
true > $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

# Update distribution
#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
Expand Down
38 changes: 26 additions & 12 deletions packaging/Dockerfile.mockbuild
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
#
# Copyright 2018-2023 Intel Corporation
# Copyright 2018-2024 Intel Corporation
#
# '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
Expand All @@ -15,27 +15,32 @@ LABEL maintainer="daos@daos.groups.io"
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 \
curl -k -f -o daos_ci-fedora-artifactory.repo.tmp \
"$REPO_FILE_URL"daos_ci-fedora-artifactory.repo && \
rm -f *.repo && \
for file in *.repo; do \
true > $file; \
done; \
mv daos_ci-fedora-artifactory.repo{.tmp,}; \
fi

# Install basic tools
RUN dnf -y install mock make \
rpm-build createrepo rpmlint redhat-lsb-core git \
python-srpm-macros rpmdevtools
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
# 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; \
fi

ARG CB0
RUN dnf -y upgrade && \
Expand All @@ -45,15 +50,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
Expand Down
25 changes: 11 additions & 14 deletions packaging/Dockerfile.ubuntu.20.04
Original file line number Diff line number Diff line change
Expand Up @@ -18,26 +18,23 @@ RUN if [ -n "$REPO_FILE_URL" ]; then \
true > ../sources.list && \
mv daos_ci-ubuntu20.04-artifactory.list.tmp \
daos_ci-ubuntu20.04-artifactory.list; \
url="${REPO_FILE_URL%/*/}/hpe-ilorest-ubuntu-bionic-proxy/"; \
else \
url="https://downloads.linux.hpe.com/SDR/repo/ilorest/"; \
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/; \
curl -f -O "$url"GPG-KEY-hprest; \
gpg --no-default-keyring --keyring ./temp-keyring.gpg \
--import GPG-KEY-hprest; \
gpg --no-default-keyring --keyring ./temp-keyring.gpg --export \
--output /usr/local/share/keyrings/daos-stack-public.gpg; \
--output /usr/local/share/keyrings/hpe-sdr-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; \
curl -f -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/hpe-sdr-public.gpg; \
rm ./temp-keyring.gpg
--output /usr/local/share/keyrings/daos-stack-public.gpg

# Install basic tools
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
Expand Down
16 changes: 16 additions & 0 deletions packaging/Makefile_distro_vars.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
15 changes: 13 additions & 2 deletions packaging/Makefile_packaging.mk
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand All @@ -54,7 +58,8 @@ RPM_BUILD_OPTIONS := $(BUILD_DEFINES)
GIT_DIFF_EXCLUDES := $(PATCH_EXCLUDE_FILES:%=':!%')
endif

COMMON_RPM_ARGS = --define "_topdir $$PWD/_topdir" $(BUILD_DEFINES)
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)
DEB_RVERS := $(subst $(DOT),\$(DOT),$(VERSION))
Expand Down Expand Up @@ -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"; \
Expand All @@ -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 \
Expand Down Expand Up @@ -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 \
Expand Down
Loading