From 7d33058e9a945f1c9db684ae66cc058bc79972b7 Mon Sep 17 00:00:00 2001 From: Andrew Benson Date: Mon, 29 May 2023 10:38:49 -0500 Subject: [PATCH] base-files: add kernel hook for /boot freespace --- srcpkgs/base-files/files/50-bootsize.postinst | 22 +++++++++++++++++++ srcpkgs/base-files/template | 4 +++- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/base-files/files/50-bootsize.postinst diff --git a/srcpkgs/base-files/files/50-bootsize.postinst b/srcpkgs/base-files/files/50-bootsize.postinst new file mode 100644 index 000000000000..6a0b89e211ea --- /dev/null +++ b/srcpkgs/base-files/files/50-bootsize.postinst @@ -0,0 +1,22 @@ +#!/bin/sh +# +# Kernel hook to check for filled /boot partitions +# +# Arguments passed to this script: $1 pkgname, $2 version. +# +PKGNAME="$1" +VERSION="$2" + +# freespace = blocksize * freeblocks +freespace=$(( $(stat -f -c %S /boot) * $(stat -f -c %f /boot) )) + +# freespace for /boot is <= 100MB +if [ $freespace -le 104857600 ]; then + cat <<-'ENDMSG' + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + * WARNING: /boot has less than 100MB available. Use `vkpurge` to ensure * + * there will be sufficient space to write the next kernel and generate * + * its initrd. Your system may otherwise become unbootable. * + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + ENDMSG +fi diff --git a/srcpkgs/base-files/template b/srcpkgs/base-files/template index 27b83604b648..24c73001770e 100644 --- a/srcpkgs/base-files/template +++ b/srcpkgs/base-files/template @@ -1,7 +1,7 @@ # Template file for 'base-files' pkgname=base-files version=0.143 -revision=1 +revision=2 bootstrap=yes depends="xbps-triggers" short_desc="Void Linux base system files" @@ -85,6 +85,8 @@ do_install() { vbin ${FILESDIR}/vkpurge vman ${FILESDIR}/vkpurge.8 + vinstall ${FILESDIR}/50-bootsize.postinst 0755 etc/kernel.d/post-install 50-bootsize + vbin ${FILESDIR}/lsb_release # Install default dracut configuration.