From a049befa56e599c8f625ef523103745f23cd18dc Mon Sep 17 00:00:00 2001 From: Jade Abraham Date: Thu, 20 Jun 2024 16:50:11 -0700 Subject: [PATCH 1/3] add support for building amazon 2023 packages Signed-off-by: Jade Abraham --- .../amzn2023-gasnet-udp/Dockerfile.template | 25 ++++++++++ .../rpm/amzn2023-gasnet-udp/spec.template | 49 +++++++++++++++++++ .../amzn2023-ofi-slurm/Dockerfile.template | 25 ++++++++++ .../rpm/amzn2023-ofi-slurm/spec.template | 49 +++++++++++++++++++ .../rpm/amzn2023/Dockerfile.template | 24 +++++++++ util/packaging/rpm/amzn2023/spec.template | 49 +++++++++++++++++++ .../rpm/common/fill_docker_template.py | 2 +- 7 files changed, 222 insertions(+), 1 deletion(-) create mode 100644 util/packaging/rpm/amzn2023-gasnet-udp/Dockerfile.template create mode 100644 util/packaging/rpm/amzn2023-gasnet-udp/spec.template create mode 100644 util/packaging/rpm/amzn2023-ofi-slurm/Dockerfile.template create mode 100644 util/packaging/rpm/amzn2023-ofi-slurm/spec.template create mode 100644 util/packaging/rpm/amzn2023/Dockerfile.template create mode 100644 util/packaging/rpm/amzn2023/spec.template diff --git a/util/packaging/rpm/amzn2023-gasnet-udp/Dockerfile.template b/util/packaging/rpm/amzn2023-gasnet-udp/Dockerfile.template new file mode 100644 index 000000000000..7cf18fccc8c9 --- /dev/null +++ b/util/packaging/rpm/amzn2023-gasnet-udp/Dockerfile.template @@ -0,0 +1,25 @@ +FROM amazonlinux:2023 as build + +@@{ARGUMENTS} + +@@{INJECT_BEFORE_DEPS} + +RUN dnf upgrade -y && \ + dnf install -y --allowerasing \ + gcc gcc-c++ m4 perl python3 python3-devel bash make gawk git cmake \ + which diffutils wget vim sudo \ + llvm-devel clang clang-devel \ + rpm-build rpm-devel rpmlint coreutils patch rpmdevtools chrpath + +@@{USER_CREATION} + +@@{GET_CHAPEL} + +@@{BUILD_DEFAULT} +@@{BUILD_GASNET_UDP} + +@@{INSTALL} + +@@{PACKAGE_SETUP} + +@@{PACKAGE_BUILD} diff --git a/util/packaging/rpm/amzn2023-gasnet-udp/spec.template b/util/packaging/rpm/amzn2023-gasnet-udp/spec.template new file mode 100644 index 000000000000..3f490cf8a1c8 --- /dev/null +++ b/util/packaging/rpm/amzn2023-gasnet-udp/spec.template @@ -0,0 +1,49 @@ +Name: @@{BASENAME} +Version: @@{CHAPEL_VERSION} +Release: @@{PACKAGE_VERSION}%{?dist} +ExclusiveArch: %{_arch} +Summary: Chapel + +License: Apache-2.0 +Source0: chapel-%{version}.tar.gz + +Requires: bash perl git llvm-devel clang clang-devel python3 python3-devel make + +%description +Chapel Programming Language + +%global debug_package %{nil} + +%prep +%setup -q -n chapel-%{version} + +%build + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}/%{_prefix} +mkdir -p %{buildroot}/%{_prefix}/bin +mkdir -p %{buildroot}/%{_prefix}/lib +mkdir -p %{buildroot}/%{_prefix}/share + +# Binaries +cp %{_prefix}/bin/chpl %{buildroot}/%{_prefix}/bin/chpl +cp %{_prefix}/bin/chpldoc %{buildroot}/%{_prefix}/bin/chpldoc +cp %{_prefix}/bin/mason %{buildroot}/%{_prefix}/bin/mason +cp %{_prefix}/bin/chplcheck %{buildroot}/%{_prefix}/bin/chplcheck +cp %{_prefix}/bin/chpl-language-server %{buildroot}/%{_prefix}/bin/chpl-language-server +# Libraries +cp -r %{_prefix}/lib/chapel %{buildroot}/%{_prefix}/lib/chapel +# CHPL_HOME +cp -r %{_prefix}/share/chapel %{buildroot}/%{_prefix}/share/chapel + +%files +%{_prefix}/bin/chpl +%{_prefix}/bin/chpldoc +%{_prefix}/bin/mason +%{_prefix}/bin/chplcheck +%{_prefix}/bin/chpl-language-server +%{_prefix}/lib/chapel/* +%{_prefix}/share/chapel/* + +%changelog diff --git a/util/packaging/rpm/amzn2023-ofi-slurm/Dockerfile.template b/util/packaging/rpm/amzn2023-ofi-slurm/Dockerfile.template new file mode 100644 index 000000000000..d72dc10a3147 --- /dev/null +++ b/util/packaging/rpm/amzn2023-ofi-slurm/Dockerfile.template @@ -0,0 +1,25 @@ +FROM amazonlinux:2023 as build + +@@{ARGUMENTS} + +@@{INJECT_BEFORE_DEPS} + +RUN dnf upgrade -y && \ + dnf install -y --allowerasing \ + gcc gcc-c++ m4 perl python3 python3-devel bash make gawk git cmake \ + which diffutils wget vim sudo \ + llvm-devel clang clang-devel \ + rpm-build rpm-devel rpmlint coreutils patch rpmdevtools chrpath + +@@{USER_CREATION} + +@@{GET_CHAPEL} + +@@{BUILD_DEFAULT} +@@{BUILD_OFI_SLURM} + +@@{INSTALL} + +@@{PACKAGE_SETUP} + +@@{PACKAGE_BUILD} diff --git a/util/packaging/rpm/amzn2023-ofi-slurm/spec.template b/util/packaging/rpm/amzn2023-ofi-slurm/spec.template new file mode 100644 index 000000000000..e53e1ccbb542 --- /dev/null +++ b/util/packaging/rpm/amzn2023-ofi-slurm/spec.template @@ -0,0 +1,49 @@ +Name: @@{BASENAME} +Version: @@{CHAPEL_VERSION} +Release: @@{PACKAGE_VERSION}%{?dist} +ExclusiveArch: %{_arch} +Summary: Chapel + +License: Apache-2.0 +Source0: chapel-%{version}.tar.gz + +Requires: bash perl git llvm-devel clang clang-devel python3 python3-devel make pmix-devel slurm-devel + +%description +Chapel Programming Language + +%global debug_package %{nil} + +%prep +%setup -q -n chapel-%{version} + +%build + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}/%{_prefix} +mkdir -p %{buildroot}/%{_prefix}/bin +mkdir -p %{buildroot}/%{_prefix}/lib +mkdir -p %{buildroot}/%{_prefix}/share + +# Binaries +cp %{_prefix}/bin/chpl %{buildroot}/%{_prefix}/bin/chpl +cp %{_prefix}/bin/chpldoc %{buildroot}/%{_prefix}/bin/chpldoc +cp %{_prefix}/bin/mason %{buildroot}/%{_prefix}/bin/mason +cp %{_prefix}/bin/chplcheck %{buildroot}/%{_prefix}/bin/chplcheck +cp %{_prefix}/bin/chpl-language-server %{buildroot}/%{_prefix}/bin/chpl-language-server +# Libraries +cp -r %{_prefix}/lib/chapel %{buildroot}/%{_prefix}/lib/chapel +# CHPL_HOME +cp -r %{_prefix}/share/chapel %{buildroot}/%{_prefix}/share/chapel + +%files +%{_prefix}/bin/chpl +%{_prefix}/bin/chpldoc +%{_prefix}/bin/mason +%{_prefix}/bin/chplcheck +%{_prefix}/bin/chpl-language-server +%{_prefix}/lib/chapel/* +%{_prefix}/share/chapel/* + +%changelog diff --git a/util/packaging/rpm/amzn2023/Dockerfile.template b/util/packaging/rpm/amzn2023/Dockerfile.template new file mode 100644 index 000000000000..fa6c5dc60f3c --- /dev/null +++ b/util/packaging/rpm/amzn2023/Dockerfile.template @@ -0,0 +1,24 @@ +FROM amazonlinux:2023 as build + +@@{ARGUMENTS} + +@@{INJECT_BEFORE_DEPS} + +RUN dnf upgrade -y && \ + dnf install -y --allowerasing \ + gcc gcc-c++ m4 perl python3 python3-devel bash make gawk git cmake \ + which diffutils wget vim sudo \ + llvm-devel clang clang-devel \ + rpm-build rpm-devel rpmlint coreutils patch rpmdevtools chrpath + +@@{USER_CREATION} + +@@{GET_CHAPEL} + +@@{BUILD_DEFAULT} + +@@{INSTALL} + +@@{PACKAGE_SETUP} + +@@{PACKAGE_BUILD} diff --git a/util/packaging/rpm/amzn2023/spec.template b/util/packaging/rpm/amzn2023/spec.template new file mode 100644 index 000000000000..3f490cf8a1c8 --- /dev/null +++ b/util/packaging/rpm/amzn2023/spec.template @@ -0,0 +1,49 @@ +Name: @@{BASENAME} +Version: @@{CHAPEL_VERSION} +Release: @@{PACKAGE_VERSION}%{?dist} +ExclusiveArch: %{_arch} +Summary: Chapel + +License: Apache-2.0 +Source0: chapel-%{version}.tar.gz + +Requires: bash perl git llvm-devel clang clang-devel python3 python3-devel make + +%description +Chapel Programming Language + +%global debug_package %{nil} + +%prep +%setup -q -n chapel-%{version} + +%build + +%install +rm -rf %{buildroot} +mkdir -p %{buildroot}/%{_prefix} +mkdir -p %{buildroot}/%{_prefix}/bin +mkdir -p %{buildroot}/%{_prefix}/lib +mkdir -p %{buildroot}/%{_prefix}/share + +# Binaries +cp %{_prefix}/bin/chpl %{buildroot}/%{_prefix}/bin/chpl +cp %{_prefix}/bin/chpldoc %{buildroot}/%{_prefix}/bin/chpldoc +cp %{_prefix}/bin/mason %{buildroot}/%{_prefix}/bin/mason +cp %{_prefix}/bin/chplcheck %{buildroot}/%{_prefix}/bin/chplcheck +cp %{_prefix}/bin/chpl-language-server %{buildroot}/%{_prefix}/bin/chpl-language-server +# Libraries +cp -r %{_prefix}/lib/chapel %{buildroot}/%{_prefix}/lib/chapel +# CHPL_HOME +cp -r %{_prefix}/share/chapel %{buildroot}/%{_prefix}/share/chapel + +%files +%{_prefix}/bin/chpl +%{_prefix}/bin/chpldoc +%{_prefix}/bin/mason +%{_prefix}/bin/chplcheck +%{_prefix}/bin/chpl-language-server +%{_prefix}/lib/chapel/* +%{_prefix}/share/chapel/* + +%changelog diff --git a/util/packaging/rpm/common/fill_docker_template.py b/util/packaging/rpm/common/fill_docker_template.py index fcc15c9c0006..394c45e61e61 100755 --- a/util/packaging/rpm/common/fill_docker_template.py +++ b/util/packaging/rpm/common/fill_docker_template.py @@ -99,7 +99,7 @@ class MyTemplate(Template): COPY --chown=user ./rpm/common/rpmlintrc /home/user/.rpmlintrc RUN rpmdev-setuptree && \\ cp chapel-$CHAPEL_VERSION.tar.gz $(rpm --eval '%{_sourcedir}') && \\ - ignore_unused=$([[ "$(rpm --eval '%{?dist}')" == ".el9" ]] && echo "" || echo "--ignore-unused-rpmlintrc") && \\ + ignore_unused=$([[ "$(rpm --eval '%{fc#}')" == "1" ]] && echo "--ignore-unused-rpmlintrc") || echo "" && \\ rpmlint $ignore_unused --file .rpmlintrc $BASENAME.spec && \\ unset ignore_unused && \\ spectool -g -R $BASENAME.spec From da539b485cdc0c955231c9a5394956c6269f2f77 Mon Sep 17 00:00:00 2001 From: Jade Abraham Date: Thu, 26 Sep 2024 12:27:41 -0700 Subject: [PATCH 2/3] support testing amazon linux Signed-off-by: Jade Abraham --- util/packaging/common/test_package.py | 1 + util/packaging/rpm/test/Dockerfile.template | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/util/packaging/common/test_package.py b/util/packaging/common/test_package.py index 9ae425e89a3b..e2c9f6fffab7 100755 --- a/util/packaging/common/test_package.py +++ b/util/packaging/common/test_package.py @@ -45,6 +45,7 @@ def infer_docker_os(package): "fc38": "fedora:38", "fc39": "fedora:39", "fc40": "fedora:40", + "amzn2023": "amazonlinux:2023", "ubuntu22": "ubuntu:22.04", "ubuntu24": "ubuntu:24.04", "debian11": "debian:bullseye", diff --git a/util/packaging/rpm/test/Dockerfile.template b/util/packaging/rpm/test/Dockerfile.template index c64c2f45b334..6661c5dbea43 100644 --- a/util/packaging/rpm/test/Dockerfile.template +++ b/util/packaging/rpm/test/Dockerfile.template @@ -4,7 +4,7 @@ FROM @@{OS_BASE_IMAGE} @@{TEST_ENV} -RUN dnf upgrade -y && dnf install -y --allowerasing sudo vim which +RUN dnf upgrade -y && dnf install -y --allowerasing sudo vim which shadow-utils @@{USER_CREATION} From 1e9e4c9d0158388b83d01e8485252f6bcb5a4307 Mon Sep 17 00:00:00 2001 From: Jade Abraham Date: Thu, 26 Sep 2024 12:27:59 -0700 Subject: [PATCH 3/3] fix check to support amazon linux Signed-off-by: Jade Abraham --- util/packaging/rpm/common/fill_docker_template.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/packaging/rpm/common/fill_docker_template.py b/util/packaging/rpm/common/fill_docker_template.py index 394c45e61e61..049a3339fee7 100755 --- a/util/packaging/rpm/common/fill_docker_template.py +++ b/util/packaging/rpm/common/fill_docker_template.py @@ -99,7 +99,7 @@ class MyTemplate(Template): COPY --chown=user ./rpm/common/rpmlintrc /home/user/.rpmlintrc RUN rpmdev-setuptree && \\ cp chapel-$CHAPEL_VERSION.tar.gz $(rpm --eval '%{_sourcedir}') && \\ - ignore_unused=$([[ "$(rpm --eval '%{fc#}')" == "1" ]] && echo "--ignore-unused-rpmlintrc") || echo "" && \\ + ignore_unused=$([[ "$(rpm --eval '%{dist_name}')" == "Fedora Linux" ]] && echo "--ignore-unused-rpmlintrc") || echo "" && \\ rpmlint $ignore_unused --file .rpmlintrc $BASENAME.spec && \\ unset ignore_unused && \\ spectool -g -R $BASENAME.spec