slackware-current/source/a/mkinitrd/remove-orphaned-initrds
Patrick J Volkerding da38cfca02 Wed Dec 18 00:32:07 UTC 2024
Thanks to UrbanDesimator for the help getting Xfce Wayland-ready! :-)
a/mkinitrd-1.4.11-x86_64-58.txz:  Rebuilt.
  remove-orphaned-initrds: reject unsupported command line options.
  Thanks to Mechanikx.
a/ndctl-80-x86_64-1.txz:  Upgraded.
  Added option -Dlibtracefs=enabled, compiled against libtracefs-1.8.1.
d/llvm-19.1.6-x86_64-1.txz:  Upgraded.
d/meson-1.6.1-x86_64-1.txz:  Upgraded.
l/libclc-19.1.6-x86_64-1.txz:  Upgraded.
l/libtraceevent-1.8.4-x86_64-1.txz:  Added.
  Needed by libtracefs-1.8.1.
l/libtracefs-1.8.1-x86_64-1.txz:  Added.
  Needed by ndctl-80.
l/qtkeychain-0.14.3-x86_64-3.txz:  Rebuilt.
  Fix 32-bit $ARCH.
l/seatd-0.9.1-x86_64-1.txz:  Added.
  Needed by wlroots-0.18.2.
n/ipset-7.23-x86_64-1.txz:  Upgraded.
x/labwc-0.8.2-x86_64-1.txz:  Added.
  A Wayland compositor that works with Xfce.
x/libsfdo-0.1.3-x86_64-1.txz:  Added.
  Needed by labwc-0.8.2.
x/wlroots-0.18.2-x86_64-1.txz:  Added.
  Needed by labwc-0.8.2.
xfce/Greybird-3.23.3-noarch-2.txz:  Rebuilt.
  [PATCH] Fix label styles for xfdesktop 4.19 (#338)
  Fixes Icon-label color not transparent when other window is focused.
  Thanks to Robby Workman.
xfce/exo-4.20.0-x86_64-2.txz:  Rebuilt.
  Added options --enable-x11 --enable-wayland.
xfce/libxfce4ui-4.20.0-x86_64-2.txz:  Rebuilt.
  Added options --enable-x11 --enable-wayland.
xfce/xfce4-clipman-plugin-1.6.6-x86_64-2.txz:  Rebuilt.
  Added options --enable-x11 --enable-wayland.
xfce/xfce4-notifyd-0.9.6-x86_64-2.txz:  Rebuilt.
  Added options --enable-x11 --enable-wayland.
  Recompiled against gtk-layer-shell-0.9.0.
xfce/xfce4-panel-4.20.0-x86_64-2.txz:  Rebuilt.
  Added options --enable-x11 --enable-wayland.
  Recompiled against gtk-layer-shell-0.9.0.
xfce/xfce4-power-manager-4.20.0-x86_64-2.txz:  Rebuilt.
  Added options --enable-x11 --enable-wayland.
xfce/xfce4-screenshooter-1.11.1-x86_64-2.txz:  Rebuilt.
  Added options --enable-x11 --enable-wayland.
xfce/xfce4-session-4.20.0-x86_64-2.txz:  Rebuilt.
  Added options --enable-x11 --enable-wayland.
  Recompiled against gtk-layer-shell-0.9.0.
xfce/xfce4-settings-4.20.0-x86_64-2.txz:  Rebuilt.
  Added options --enable-x11 --enable-wayland.
  Recompiled against gtk-layer-shell-0.9.0.
xfce/xfce4-terminal-1.1.3-x86_64-2.txz:  Rebuilt.
  Added options --enable-x11 --enable-wayland.
  Recompiled against gtk-layer-shell-0.9.0.
xfce/xfce4-whiskermenu-plugin-2.8.3-x86_64-2.txz:  Rebuilt.
  Added options --enable-x11 --enable-wayland.
  Recompiled against gtk-layer-shell-0.9.0.
xfce/xfdesktop-4.20.0-x86_64-2.txz:  Rebuilt.
  Added options --enable-x11 --enable-wayland.
  Recompiled against gtk-layer-shell-0.9.0.
2024-12-18 02:07:06 +01:00

86 lines
3.2 KiB
Bash

#!/bin/bash
# Copyright 2024 Patrick J. Volkerding, Sebeka, Minnesota, USA
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# This script removes initrds in the /boot directory if there's no kernel
# in /boot with the same version. This keeps unused initrds from accumulating
# and filling up the filesystem.
# Usage: Run without any options to clean up initrd orphans:
#
# ./remove-orphaned-initrds
#
# To see what would be removed without actually removing anything:
#
# ./remove-orphaned-initrds --dry-run
#
# This script is suitable to run as a periodic cron job (perhaps weekly).
ORPHANS_FOUND=false
# --dry-run is the only supported option here:
if [ ! -z "$1" -a ! "$1" = "--dry-run" ]; then
echo "Usage: $(basename $0) [--dry-run]"
exit 1
fi
cd /boot
for initrd in initrd-*.img ; do
if [ ! -r $initrd ]; then
continue
fi
# We are not removing symlinks here. We'll remove dangling ones later on.
if [ -L $initrd ]; then
continue
fi
# Find the identifying portion of the initrd's filename:
IDENTIFIER="$(basename $(echo $initrd | cut -f 2- -d -) .img)"
if [ ! -r vmlinuz-${IDENTIFIER} ]; then
ORPHANS_FOUND=true
if [ "$1" = "--dry-run" ]; then
echo "Would remove orphaned initrd: /boot/${initrd}"
else
echo "Removing orphaned initrd: /boot/${initrd}"
rm -f $initrd
fi
fi
done
if [ "$ORPHANS_FOUND" = "false" ]; then
echo "No orphaned initrds found in /boot."
fi
# Also handle initrd symlinks:
if [ "$1" = "--dry-run" ]; then
for dangling_symlink in $(find . -name "initrd-*.img" -type l -printf '%P\n') $(find . -name "initrd.gz" -type l -printf '%P\n') ; do
if [ ! -r "$(readlink $dangling_symlink)" ]; then
echo "Would remove dangling initrd symlink: /boot/${dangling_symlink}"
else
IDENTIFIER="$(basename $(echo $(readlink $dangling_symlink) | cut -f 2- -d -) .img)"
if [ ! -r vmlinuz-${IDENTIFIER} ]; then
echo "Would remove dangling initrd symlink: /boot/${dangling_symlink}"
fi
fi
done
else
for dangling_symlink in $(find . -name "initrd-*.img" -xtype l -printf '%P\n') $(find . -name "initrd.gz" -xtype l -printf '%P\n') ; do
echo "Removing dangling initrd symlink: /boot/${dangling_symlink}"
rm -f $dangling_symlink
done
fi