Releases: yousafkhamza/aws-patch
Release list
aws-patch v1.10.5
Added
- Full AL2023 point-release list logged on every run. Previously
only the single highest pending release was logged
(Newer Amazon Linux release available: X). Now every pending point
release is listed with its exactdnf upgrade --releasever=...
command, and the run explicitly states whether the kernel will be
included or excluded when crossing -- visible in--check,
--dry-run, and live runs alike, not just the interactive picker.
Fixed
--kerneldidn't govern the AL2023 release-crossing step. Crossing
a point-release boundary applies that release's full package set,
which very often bundles a kernel bump alongside everything else.
pm_upgrade_releaseveralways applied it unconditionally regardless of
--kernel-- meaning a plain--yesrun (no--kernel) could still
silently end up installing a new kernel, just because a release
boundary happened to be pending, completely defeating--kernel's
opt-in guarantee for that specific path.lib/dnf.sh: newpm_upgrade_releasever_no_kernel(), mirroring
pm_full_upgrade_no_kernel()-- runs the release-crossing
transaction with native--exclude='kernel*'.aws-patch.sh:run_patch()now selects the correct
releasever-upgrade function based onFLAG_KERNEL, exactly like it
already does for the normal full-upgrade step. Dry-run messaging
updated to match.
- New test coverage confirming
pm_upgrade_releasever_no_kernelexcludes
the kernel andpm_upgrade_releasever(the--kernelpath) does not.
81/81 tests passing.
Install
Debian/Ubuntu:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.10.5/aws-patch_1.10.5_all.deb
sudo dpkg -i aws-patch_1.10.5_all.debRHEL/Amazon Linux/Rocky/AlmaLinux:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.10.5/aws-patch-1.10.5-1.noarch.rpm
sudo rpm -i aws-patch-1.10.5-1.noarch.rpmOne-line installer (any supported OS):
curl -fsSL https://raw.githubusercontent.com/yousafkhamza/aws-patch/main/install.sh | sudo bashVerify downloads against SHA256SUMS in this release.
aws-patch v1.10.3
Added
- GRUB default boot entry mismatch detection (RHEL-family, where
grubbyis available). A kernel can be genuinely, correctly
installed -- real boot files present, not a stale database entry --
and still not be what a reboot would actually load, if GRUB's own
default boot entry was never updated to point at it (normally
automatic via the kernel package's own post-install scriptlets, but
can fail to complete after an interrupted transaction). Previously
aws-patchhad no way to detect this before rebooting; a--reboot
run would silently restart into the exact same kernel that was already
running, with nothing in the summary to reveal why.lib/kernel.sh: new_kernel_grub_default_matches()-- read-only
(grubby --default-kernel) comparison against the kernel version a
reboot is expected to load. SetsKERNEL_BOOT_DEFAULT_MISMATCH.
Unverifiable systems (nogrubby-- most Debian/Ubuntu installs)
are left unflagged rather than guessed at by parsinggrub.cfg,
which would risk false positives blocking legitimate reboots.lib/summary.sh: reportsReboot Required: GRUB DEFAULT MISMATCH
distinctly from both a plainYESand aSTALE ENTRY.aws-patch.sh:handle_reboot()skips the no-op reboot (even with
--reboot/--yes) and logs the exactgrubby --set-default
command needed, instead of rebooting into nothing changing.docs/troubleshooting.md: new "GRUB default not updated to the new
kernel" section with the full fix.- This is read-only inspection only --
lib/kernel.shstill never
writes to GRUB or changes the default boot entry itself; the file's
header comment was clarified to make that distinction explicit.
- New test coverage in
tests/run_tests.sh(== GRUB default boot entry mismatch ==): mismatch detected, correct-default not falsely
flagged, and grubby-unavailable never blocks a reboot.
Install
Debian/Ubuntu:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.10.3/aws-patch_1.10.3_all.deb
sudo dpkg -i aws-patch_1.10.3_all.debRHEL/Amazon Linux/Rocky/AlmaLinux:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.10.3/aws-patch-1.10.3-1.noarch.rpm
sudo rpm -i aws-patch-1.10.3-1.noarch.rpmOne-line installer (any supported OS):
curl -fsSL https://raw.githubusercontent.com/yousafkhamza/aws-patch/main/install.sh | sudo bashVerify downloads against SHA256SUMS in this release.
aws-patch v1.10.1
Fixed
- Amazon Linux 2023 "newer release available" reported forever, even
immediately after successfully upgrading to that exact release.
dnf's release-notification banner lists the latest known AL2023
point-release snapshot unconditionally -- including when it's the
exact one the host is already running.pm_check_releasever_update
(lib/dnf.sh) was reporting that scraped value as "available" with no
comparison against the currently running release, so every run
re-triggered the expensivepm_upgrade_releaseverstep
(dnf upgrade --releasever=..., often 30s-plus, sometimes much longer
under load) for a release the host was already on -- with nothing to
actually upgrade. Fixed by extracting the currently-running dated
snapshot fromOS_NAME/PRETTY_NAME(the genericOS_VERSION_IDis
only ever"2023"and can't be used for this comparison) and only
reporting a candidate that is genuinely newer.pm_list_releasever_updates
received the same fix. New regression tests reproduce the exact
scenario from a live host (banner lists2023.12.20260727while
already running2023.12.20260727) alongside a "genuinely behind"
case to confirm real updates are still detected correctly.
Install
Debian/Ubuntu:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.10.1/aws-patch_1.10.1_all.deb
sudo dpkg -i aws-patch_1.10.1_all.debRHEL/Amazon Linux/Rocky/AlmaLinux:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.10.1/aws-patch-1.10.1-1.noarch.rpm
sudo rpm -i aws-patch-1.10.1-1.noarch.rpmOne-line installer (any supported OS):
curl -fsSL https://raw.githubusercontent.com/yousafkhamza/aws-patch/main/install.sh | sudo bashVerify downloads against SHA256SUMS in this release.
aws-patch v1.10.0
Added
--kernelflag. By default,aws-patchnow excludes the kernel
package from a run's upgrade entirely: every other package still
patches normally, but the kernel is left exactly as it was, so routine
patching never forces a reboot decision. Pass--kernelto also
install a newer kernel if one's available (pairs naturally with
--reboot:sudo aws-patch --yes --kernel --reboot).lib/apt.sh: newpm_full_upgrade_no_kernel()— holds the
currently-installedlinux-image-*/linux-headers-*/
linux-modules-*packages viaapt-mark holdfor the duration of
the upgrade and always unholds them after, success or failure.lib/yum.sh/lib/dnf.sh: newpm_full_upgrade_no_kernel()—
runs the upgrade transaction with native--exclude='kernel*'.aws-patch.sh:run_patch()now branches on--kernel; when
excluded, a clear summary line and warning report that a kernel
update was available but skipped, and how to include it next run.lib/summary.sh: newKernel Update:field, and the final warning
now distinguishes "will install" from "excluded this run (pass
--kernel to include)".- This never changes what happens to a kernel that's already
installed -- no package is ever removed and GRUB is never touched,
same guarantees as always.
- New test coverage in
tests/run_tests.shfor--kernelflag parsing/
help documentation andpm_full_upgrade_no_kernelbehavior on all
three package managers (== pm_full_upgrade_no_kernel (--kernel gating) ==).
Install
Debian/Ubuntu:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.10.0/aws-patch_1.10.0_all.deb
sudo dpkg -i aws-patch_1.10.0_all.debRHEL/Amazon Linux/Rocky/AlmaLinux:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.10.0/aws-patch-1.10.0-1.noarch.rpm
sudo rpm -i aws-patch-1.10.0-1.noarch.rpmOne-line installer (any supported OS):
curl -fsSL https://raw.githubusercontent.com/yousafkhamza/aws-patch/main/install.sh | sudo bashVerify downloads against SHA256SUMS in this release.
aws-patch v1.9.0
Added
utils_filter_valid_kernel_linesinlib/utils.sh: a shared filter
that every pm module now runs candidate kernel package lines through
before picking a "latest" version withsort -V. This closes a gap
where a package that merely looks like a kernel version string could
win that comparison and be misreported as an installed or available
kernel:lib/apt.sh(pm_get_installed_kernels,
pm_get_latest_available_kernel): now excludes-dbgsym,-dbg,
and-unsignedpackages (e.g.linux-image-6.8.0-31-generic-dbgsym
ships no bootable kernel at all, but its name sorts as a valid, and
sometimes higher, version).lib/yum.shandlib/dnf.sh(pm_get_latest_available_kernel):
candidates are now anchored to the detected$ARCH, excluding
kernel.src(source RPM, not installable) and any other
architecture's build that a multilib-capableyum/dnf
configuration might otherwise surface.
- New test coverage in
tests/run_tests.shfor all of the above
(== invalid kernel candidate filtering ==).
Install
Debian/Ubuntu:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.9.0/aws-patch_1.9.0_all.deb
sudo dpkg -i aws-patch_1.9.0_all.debRHEL/Amazon Linux/Rocky/AlmaLinux:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.9.0/aws-patch-1.9.0-1.noarch.rpm
sudo rpm -i aws-patch-1.9.0-1.noarch.rpmOne-line installer (any supported OS):
curl -fsSL https://raw.githubusercontent.com/yousafkhamza/aws-patch/main/install.sh | sudo bashVerify downloads against SHA256SUMS in this release.
aws-patch v1.8.1
Fixed
release.yml's "Create GitHub Release" step failed witha release with the same tag name already existson any re-run where the
release had already been created in a prior attempt (e.g. thepages
job failing on GitHub's auto-createdgithub-pagesenvironment
protection rules, which rejects tag refs by default -- a separate,
one-time Settings fix -- while the independentreleasejob, which
only depends onbuild, had already succeeded and created the
release). Made the step idempotent: it now checks whether a release
for the tag already exists viagh release viewand deletes it
first (keeping the underlying git tag intact) before recreating it,
so re-running the workflow always produces a clean, current release
instead of failing on a duplicate.
Install
Debian/Ubuntu:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.8.1/aws-patch_1.8.1_all.deb
sudo dpkg -i aws-patch_1.8.1_all.debRHEL/Amazon Linux/Rocky/AlmaLinux:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.8.1/aws-patch-1.8.1-1.noarch.rpm
sudo rpm -i aws-patch-1.8.1-1.noarch.rpmOne-line installer (any supported OS):
curl -fsSL https://raw.githubusercontent.com/yousafkhamza/aws-patch/main/install.sh | sudo bashVerify downloads against SHA256SUMS in this release.
aws-patch v1.8.0
Added
- Automated GitHub Pages deployment via a new reusable workflow,
.github/workflows/pages.yml, using the official Actions-based flow
(actions/configure-pages→actions/upload-pages-artifact→
actions/deploy-pages) instead of the manual "Deploy from a branch"
setting. Runs two ways:- Standalone, on every push to
mainthat touchesdocs/**— the
site updates the momentindex.html/styling/copy changes, with no
need to cut a release. - As a job inside
.github/workflows/release.yml(invoked via
uses: ./.github/workflows/pages.yml), running in parallel with
the package build once the lint/test gate passes -- so a single
git push origin vX.Y.Znow handles tests,.deb/.rpmpackages,
the GitHub Release, and the Pages deploy together, as one
pipeline.
- Standalone, on every push to
- README: rewrote the "Project site (GitHub Pages)" section to describe
the automated flow (including the one-time "Settings → Pages → Source:
GitHub Actions" switch, since the branch-based and Actions-based
deployment mechanisms don't share state) in place of the old manual
branch/folder setup steps.
Install
Debian/Ubuntu:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.8.0/aws-patch_1.8.0_all.deb
sudo dpkg -i aws-patch_1.8.0_all.debRHEL/Amazon Linux/Rocky/AlmaLinux:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.8.0/aws-patch-1.8.0-1.noarch.rpm
sudo rpm -i aws-patch-1.8.0-1.noarch.rpmOne-line installer (any supported OS):
curl -fsSL https://raw.githubusercontent.com/yousafkhamza/aws-patch/main/install.sh | sudo bashVerify downloads against SHA256SUMS in this release.
aws-patch v1.7.0
Added
- Project landing page at
docs/index.html, served via GitHub Pages at
https://yousafkhamza.github.io/aws-patch/ once enabled (Settings →
Pages → Deploy from a branch →main//docs— see README for full
steps). Fetches the latest release directly from the GitHub API
(GET /repos/yousafkhamza/aws-patch/releases/latest) client-side on
load, so the version number, publish date, and download links for
every release asset (.deb,.rpm, tarball,SHA256SUMS) always
reflect whatever was most recently published -- nothing to update by
hand when a new version ships. Also renders exactdpkg/rpminstall
commands with the real asset filenames filled in once the API response
arrives. Falls back to a direct link to the Releases page if the API
call fails (e.g. hourly rate limit from an unauthenticated client)
rather than showing a broken UI. Dark terminal-styled design (amber/
green accents on near-black) matching the project's own console
output aesthetic; includes an "Open Source" / "MIT License" badge
pair and an author credit. docs/.nojekyllso GitHub Pages servesdocs/as-is (needed since
the directory also holds plain Markdown troubleshooting/recovery docs
and the man page source, none of which are meant to be Jekyll-built).- README: "Project site (GitHub Pages)" section with one-time setup
steps, and a site badge/link at the top of the README.
Install
Debian/Ubuntu:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.7.0/aws-patch_1.7.0_all.deb
sudo dpkg -i aws-patch_1.7.0_all.debRHEL/Amazon Linux/Rocky/AlmaLinux:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.7.0/aws-patch-1.7.0-1.noarch.rpm
sudo rpm -i aws-patch-1.7.0-1.noarch.rpmOne-line installer (any supported OS):
curl -fsSL https://raw.githubusercontent.com/yousafkhamza/aws-patch/main/install.sh | sudo bashVerify downloads against SHA256SUMS in this release.
aws-patch v1.6.1
Fixed
.github/workflows/release.yml's "Run test suite" and "Build .deb and
.rpm packages" steps invoked./tests/run_tests.shand
./scripts/build-packages.shdirectly, which depend on the
executable bit surviving into the GitHub Actions checkout. On the
first real run this failed withPermission denied(exit 126) --
the bit hadn't survived however the repository's history was
populated. Fixed by invoking both via explicitbash <script>instead
of direct execution, which only requires the file to be readable, plus
an addedchmod +xstep as defense in depth. Also hardened
tests/run_tests.shitself: it previously invokedaws-patch.sh
directly in several places ("${REPO_ROOT}/aws-patch.sh" --version,
etc.), which would hit the identical failure mode in any checkout
missing the bit; switched tobash "${REPO_ROOT}/aws-patch.sh"
throughout. Verified by stripping every executable bit in the repo
and confirmingbash tests/run_tests.shstill passes all 51 tests.
Install
Debian/Ubuntu:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.6.1/aws-patch_1.6.1_all.deb
sudo dpkg -i aws-patch_1.6.1_all.debRHEL/Amazon Linux/Rocky/AlmaLinux:
curl -fsSLO https://github.com/yousafkhamza/aws-patch/releases/download/v1.6.1/aws-patch-1.6.1-1.noarch.rpm
sudo rpm -i aws-patch-1.6.1-1.noarch.rpmOne-line installer (any supported OS):
curl -fsSL https://raw.githubusercontent.com/yousafkhamza/aws-patch/main/install.sh | sudo bashVerify downloads against SHA256SUMS in this release.