| Server IP : 152.69.216.235 / Your IP : 80.80.80.28 Web Server : Apache/2.4.37 (Oracle Linux Server) System : Linux ust-wp4-prod 5.15.0-310.184.5.2.el8uek.x86_64 #2 SMP Wed Jul 9 16:08:33 PDT 2025 x86_64 User : apache ( 48) PHP Version : 8.4.10 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /sbin/ |
Upload File : |
#!/bin/bash
# Copyright (C) 2009-2010 Oracle and/or its affiliates. All rights reserved.
# Author: Tim Abbott
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
# 02110-1301, USA.
#
# Not a Contribution for purposes of the Fedora Project Individual Contributor
# License Agreement
#
# Ksplice depmod wrapper script to generate depmod information for the
# running kernel, including Ksplice updates that have been cold-applied.
#
# Installed in /sbin since it is needed to boot
# Clean up any of our symlinks from previous runs that point to nonexistant
# files. We do this early and independently of whether uptrack is in use,
# etc.
#
/usr/lib/uptrack/ksplice-cleanup
UPTRACK_IN_USE=/var/run/uptrack
# Don't bother with the uptrack depmod if uptrack isn't is use.
if ! [ -f "$UPTRACK_IN_USE" ] || ! /bin/grep -sq ^ksplice_ /proc/modules; then
exit 0
fi
RELEASE=$(uname -r)
FAKEVERSION="$RELEASE".ksplice-updates
FAKEMODDIR="/lib/modules/$FAKEVERSION"
MODDIR=/var/run/ksplice/modules/"$RELEASE"
ORIGMODDIR=/lib/modules/"$RELEASE"
# If we're passed any arguments that only make sense to the real
# depmod, abort silently.
# Args based on module-init-tools 3.6.
OPTS=$(PATH=/usr/bin:/bin getopt -q -o 'ab:ArehnqruvVF:C:wm' --long "all,quick,basedir:,errsyms,filesyms:,help,show,dry-run,quiet,root,unresolved-error,verbose,version,config:,warn,map" -- "$@") || exit 1
eval set -- "$OPTS"
while true; do
case "$1" in
--) shift; break;;
-A|--quick|-b|--basedir|-C|--config|-e|-h|-V|--version)
exit 0;
;;
*) shift;;
esac
done
if [ -n "$1" ] && [ "$1" != "$(uname -r)" ] ; then
# The caller asked us to act on some specific kernel version that
# is not the running version. There's no need to deal with Ksplice
# modules in that case.
exit 0;
fi
if [ -e "$MODDIR" ] && [ ! -e "$FAKEMODDIR" ]; then
ln -s "$MODDIR" "$FAKEMODDIR"
fi
if [ -e "$MODDIR" ]; then
for dir in "$ORIGMODDIR"/*; do
if [ ! -d "$dir" ]; then
continue
fi
ln -nsf "$dir" "$MODDIR/$(basename $dir)"
done
fi
# Remove all broken symlinks from within our module tree
for symlink in $(find "$MODDIR" -type l ! -exec test -e {} \; -print); do
rm -rf "$symlink"
done
# Allow depmod to generate a modules.builtin.bin file.
ln -sf "$ORIGMODDIR"/modules.builtin "$FAKEMODDIR"/modules.builtin
# We also need modules.order in our parallel modules tree
ln -sf "$ORIGMODDIR"/modules.order "$FAKEMODDIR"/modules.order
# Setup symlinks needed for weak-modules to notice $FAKEMODDIR (ie: /lib/modules/$RELEASE.ksplice-updates)
if [[ -e /sbin/weak-modules && -e /boot/symvers-$RELEASE.gz ]] && \
[[ ! -e "/boot/symvers-$RELEASE.ksplice-updates.gz" ]]; then
ln -s "/boot/symvers-$RELEASE.gz" "/boot/symvers-$RELEASE.ksplice-updates.gz"
ln -s "/boot/System.map-$RELEASE" "/boot/System.map-$RELEASE.ksplice-updates"
fi
if [[ -e /sbin/weak-modules && -e /boot/symvers-$RELEASE.gz ]] && \
[[ ! -e "/boot/System.map-$RELEASE.ksplice-updates" ]]; then
ln -s "/boot/System.map-$RELEASE" "/boot/System.map-$RELEASE.ksplice-updates"
fi
mkdir -p /var/run/ksplice/depmod.d
rm -f /var/run/ksplice/depmod.d/0[01]-*
if [ -e /etc/depmod.conf ]; then
ln -nsf /etc/depmod.conf /var/run/ksplice/depmod.d/00-depmod.conf
fi
for conf in $(ls -d /etc/depmod.d/* 2>/dev/null); do
ln -nsf "$conf" /var/run/ksplice/depmod.d/01-"$(basename "$conf")"
done
if [ -e /sbin/depmod.ksplice-backend ]; then
# Special version of depmod with our /var/run/ksplice/depmod.d
# path hardcoded (since old versions of depmod don't support the
# -C option)
(exec /sbin/depmod.ksplice-backend "$FAKEVERSION") && touch "$FAKEMODDIR"/valid
fi
(exec -a depmod depmod.ksplice-orig -C /var/run/ksplice/depmod.d/ "$FAKEVERSION") && touch "$FAKEMODDIR"/valid