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
3 changes: 2 additions & 1 deletion packaging/Dockerfile.coverity
Original file line number Diff line number Diff line change
@@ -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 <daos@daos.groups.io>
LABEL maintainer="daos-stack <daos@daos.groups.io>""

# use same UID as host and default value of 1000 if not specified
ARG UID=1000
Expand Down
56 changes: 37 additions & 19 deletions packaging/Dockerfile.mockbuild
Original file line number Diff line number Diff line change
@@ -1,41 +1,50 @@
#
# Copyright 2018-2023 Intel Corporation
# Copyright 2018-2024 Intel Corporation
# Copyright 2025 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"

# 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 install OS updates basic tools and daos dependencies
# COPY ./utils/scripts/install-fedora.sh /tmp/install.sh
# script to setup local repo if available
COPY ./packaging/scripts/repo-helper-fedora.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 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
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 && \
Expand All @@ -45,15 +54,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
57 changes: 21 additions & 36 deletions packaging/Dockerfile.ubuntu.20.04
Original file line number Diff line number Diff line change
@@ -1,65 +1,50 @@
# 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
FROM ubuntu:20.04
ARG BASE_DISTRO=ubuntu:20.04
FROM $BASE_DISTRO
LABEL org.opencontainers.image.authors="daos@daos.groups.io"

RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \
curl gpg
# Needed for later use of BASE_DISTRO
ARG BASE_DISTRO

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 local repo if available
COPY ./packaging/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
# 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
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; \
Expand Down
3 changes: 2 additions & 1 deletion packaging/Dockerfile.ubuntu.rolling
Original file line number Diff line number Diff line change
@@ -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 <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 Down
Loading