diff --git a/.gitignore b/.gitignore index f31ea6e..0b85970 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,7 @@ /ec2-hibinit-agent-1.0.3.tar.gz +/ec2-hibinit-agent-1.0.4.tar.gz +*.~undo-tree~ +amazon-ec2-hibinit-agent.spec +/ec2-hibinit-agent-1.0.5.tar.gz +/ec2-hibinit-agent-1.0.8.tar.gz +/ec2-hibinit-agent-1.0.9.tar.gz diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..6dfe3a6 --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,42 @@ +# See the documentation for more information: +# https://packit.dev/docs/configuration/ + +upstream_project_url: https://github.com/aws/amazon-ec2-hibinit-agent +upstream_tag_template: v{version} +upstream_package_name: amazon-ec2-hibinit-agent +downstream_package_name: ec2-hibinit-agent + +jobs: + - job: pull_from_upstream + trigger: release + # Keeping dist-git branches non-divergent + # Requirs manual local merge from rawhide to stable release branches + # https://packit.dev/docs/fedora-releases-guide#keeping-dist-git-branches-non-divergent + dist_git_branches: + - fedora-rawhide + + - job: koji_build + trigger: commit + allowed_pr_authors: + - packit + - all_admins + - all_committers + - '@cloud-sig' # string with @ needs quotes to be valid yaml + allowed_committers: + - all_admins + - all_committers + - '@cloud-sig' # string with @ needs quotes to be valid yaml + dist_git_branches: + - fedora-all + - epel-all + + - job: bodhi_update + trigger: commit + allowed_builders: + - packit + - all_admins + - all_committers + - '@cloud-sig' # string with @ needs quotes to be valid yaml + dist_git_branches: + - fedora-branched # rawhide updates are created automatically + - epel-all diff --git a/0001-swapon-with-maximum-priority-before-hibernation.patch b/0001-swapon-with-maximum-priority-before-hibernation.patch new file mode 100644 index 0000000..cba7e2f --- /dev/null +++ b/0001-swapon-with-maximum-priority-before-hibernation.patch @@ -0,0 +1,54 @@ +From f75434659a731ebdfc259990eb37777700900ea2 Mon Sep 17 00:00:00 2001 +From: Dominik Wombacher +Date: Thu, 7 Nov 2024 15:27:03 +0000 +Subject: [PATCH 1/1] fix(rhel): Swapon with maximum priority before + hibernation + +Apply swapon high priority related changes from /acpid.sleep.sh to /packaging/rhel/acpid.sleep.sh + +Refs: https://github.com/aws/amazon-ec2-hibinit-agent/commit/a2303d269610a6e7415c5045766da605eaa7e30f +--- + packaging/rhel/acpid.sleep.sh | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/packaging/rhel/acpid.sleep.sh b/packaging/rhel/acpid.sleep.sh +index ca3db22..9b381f9 100755 +--- a/packaging/rhel/acpid.sleep.sh ++++ b/packaging/rhel/acpid.sleep.sh +@@ -3,11 +3,14 @@ + PATH=/sbin:/bin:/usr/bin + failed='false' + ++# Hibernation selects the swapfile with highest priority. Since there may be ++# other swapfiles configured, ensure /swap is selected as hibernation ++# target by setting to maximum priority. ++swap_priority=32767 ++ + hibernate() + { +- swapon /swap +- systemctl hibernate +- ++ swapon --priority=$swap_priority /swap && systemctl hibernate + if [ $? -ne 0 ] + then + logger "Hibernation failed, Sleeping 2 mins before retry" +@@ -15,6 +18,7 @@ hibernate() + else + failed='false' + fi ++ swapoff /swap + } + + case "$2" in +@@ -26,6 +30,7 @@ case "$2" in + hibernate + if [ $failed == 'true' ]; + then ++ swapoff /swap + sleep 2m + else + break +-- +2.47.0 + diff --git a/0002-rhel-fix-swapoff-breaks-hibernate-process.patch b/0002-rhel-fix-swapoff-breaks-hibernate-process.patch new file mode 100644 index 0000000..06c042e --- /dev/null +++ b/0002-rhel-fix-swapoff-breaks-hibernate-process.patch @@ -0,0 +1,59 @@ +From 0197c7173a5ad1470060862a0be96b9a976bdf49 Mon Sep 17 00:00:00 2001 +From: Frank Liang +Date: Thu, 2 Jan 2025 22:28:12 +0800 +Subject: [PATCH] rhel: fix swapoff breaks hibernate process + +hibernate() always calling swapoff breaks hibernation process. +The hibernation wont continue if call swapoff too fast in rhel or amazon +linux. + +"swapon --priority=32767 /swap && systemctl hibernate ;echo $?; swapoff /swap" + +Signed-off-by: Frank Liang +--- + packaging/rhel/acpid.sleep.sh | 17 ++++++----------- + 1 file changed, 6 insertions(+), 11 deletions(-) + +diff --git a/packaging/rhel/acpid.sleep.sh b/packaging/rhel/acpid.sleep.sh +index 9b381f9..1e55b51 100755 +--- a/packaging/rhel/acpid.sleep.sh ++++ b/packaging/rhel/acpid.sleep.sh +@@ -11,29 +11,24 @@ swap_priority=32767 + hibernate() + { + swapon --priority=$swap_priority /swap && systemctl hibernate +- if [ $? -ne 0 ] +- then ++ if [ $? -ne 0 ]; then + logger "Hibernation failed, Sleeping 2 mins before retry" + failed='true' ++ swapoff /swap ++ sleep 2m + else + failed='false' + fi +- swapoff /swap + } + + case "$2" in + SBTN) + # The iteration had been placed here to add retry logic to hibernation + # in case of failures and to avoid force stop of instances after 20min +- for i in 1 2 3 +- do ++ for i in 1 2 3; do + hibernate +- if [ $failed == 'true' ]; +- then +- swapoff /swap +- sleep 2m +- else +- break ++ if [ $failed == 'false' ]; then ++ break + fi + done + ;; +-- +2.48.1 + diff --git a/README.packit b/README.packit new file mode 100644 index 0000000..2fa216c --- /dev/null +++ b/README.packit @@ -0,0 +1,3 @@ +This repository is maintained by packit. +https://packit.dev/ +The file was generated using packit 0.97.1.post1.dev4+g1268842e. diff --git a/ec2-hibinit-agent.spec b/ec2-hibinit-agent.spec index 9cfbc94..9defa5e 100644 --- a/ec2-hibinit-agent.spec +++ b/ec2-hibinit-agent.spec @@ -11,19 +11,25 @@ %global _format() export %1=""; for x in %{modulenames}; do %1+=%2; %1+=" "; done; Name: ec2-hibinit-agent -Version: 1.0.3 -Release: 3%{?dist} +Version: 1.0.9 +Release: 8%{?dist} Summary: Hibernation setup utility for Amazon EC2 -License: ASL 2.0 +License: Apache-2.0 URL: https://github.com/aws/amazon-%{name} Source0: https://github.com/aws/%{project}/archive/v%{version}/%{name}-%{version}.tar.gz +# Ensure swapon with maximum priority before hibernation +# Upstream Patch: https://github.com/aws/amazon-ec2-hibinit-agent/pull/49) +Patch1: 0001-swapon-with-maximum-priority-before-hibernation.patch +Patch2: 0002-rhel-fix-swapoff-breaks-hibernate-process.patch + BuildArch: noarch BuildRequires: make BuildRequires: systemd-rpm-macros BuildRequires: python3-devel +BuildRequires: python3-setuptools BuildRequires: selinux-policy BuildRequires: selinux-policy-devel @@ -37,7 +43,10 @@ Requires: tuned An EC2 agent that creates a setup for instance hibernation %prep -%autosetup -n %{project}-%{version} +%autosetup -p1 -n %{project}-%{version} +# Fix build with setuptools 62.1 +# https://github.com/aws/amazon-ec2-hibinit-agent/issues/24 +sed -i "20i packages=[]," setup.py %build %py3_build @@ -140,6 +149,87 @@ fi %selinux_relabel_post -s %{selinuxtype} %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 1.0.9-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Tue Jun 03 2025 Python Maint - 1.0.9-7 +- Rebuilt for Python 3.14 + +* Tue Mar 18 2025 Frank Liang - 1.0.9-6 +- Include upstream Patch to fix swapoff breaks hibernate process + +* Thu Jan 16 2025 Fedora Release Engineering - 1.0.9-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Fri Nov 08 2024 Dominik Wombacher - 1.0.9-4 +- Include upstream Patch to ensure swapon with maximum priority before hibernation +- Resolves rhbz#2322884 + +* Wed Jul 17 2024 Fedora Release Engineering - 1.0.9-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Fri Jun 07 2024 Python Maint - 1.0.9-2 +- Rebuilt for Python 3.13 + +* Sun Jun 02 2024 Packit - 1.0.9-1 +- Update to version 1.0.9 + +* Mon Apr 8 2024 Dominik Wombacher - 1.0.8-1 +- Update to 1.0.8 +- migrated to SPDX license + +* Wed Jan 24 2024 Fedora Release Engineering - 1.0.5-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 1.0.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 1.0.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Jun 14 2023 Python Maint - 1.0.5-2 +- Rebuilt for Python 3.12 + +* Tue Apr 25 2023 David Duncan <> - 1.0.5-1 +- Ensure we swapon the hibinit swapfile with the highest priority + +* Thu Jan 19 2023 Fedora Release Engineering - 1.0.4-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Jul 21 2022 Fedora Release Engineering - 1.0.4-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Jun 21 2022 Lumír Balhar - 1.0.4-5 +- Fix compatibility with newer setuptools + +* Wed Jun 15 2022 Python Maint - 1.0.4-4 +- Rebuilt for Python 3.11 + +* Thu Jan 20 2022 Fedora Release Engineering - 1.0.4-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 1.0.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Jul 01 2021 David Duncan - 1.0.4-1 +- Update to v1.0.4 + +* Sat Jun 05 2021 Python Maint - 1.0.3-8 +- Rebuilt for Python 3.10 + +* Fri Jun 04 2021 Python Maint - 1.0.3-7 +- Rebuilt for Python 3.10 + +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 1.0.3-6 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + +* Tue Jan 26 2021 Fedora Release Engineering - 1.0.3-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Jan 21 17:27:18 UTC 2021 David Duncan - 1.0.3-4 +- Add BuildRequires: make, FESCo issue: #2500 + * Tue Nov 03 2020 Mohamed Aboubakr - 1.0.3-3 - Moving selinux folder in packaging directory. - Use make file to generate .pp.bz2 file diff --git a/sources b/sources index fdd6506..607710a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (ec2-hibinit-agent-1.0.3.tar.gz) = 5a44fdde6cb95c6a989f47b6b69d8611a114e02dbc44ea2421587662b75d6dd9b7e922cc4cf8976d76ed78e3c1bcd3a1e12254e90d31d5c3cf3357b49abd1236 +SHA512 (ec2-hibinit-agent-1.0.9.tar.gz) = a056f3cf19775f1dca2079bf810d3a73cb0ddd4ad9de585e5878b5061683fc271577c02cf85a4332510f9e958bc84180a0a559a2f3f5de6c215002336b31f155