Make kernel install optional

This commit is contained in:
Ettore Di Giacinto
2018-08-29 22:29:35 +02:00
parent d3b5a2fee6
commit 07c2b78d8f
+41 -39
View File
@@ -8,6 +8,8 @@ TARGET="${1}"
# Setup environment vars
export ACCEPT_LICENSE=*
export SABAYON_INSTALL_KERNEL="${SABAYON_INSTALL_KERNEL:-0}"
PACKAGES_TO_REMOVE=(
"app-i18n/man-pages-da"
"app-i18n/man-pages-de"
@@ -78,50 +80,45 @@ fi
equo remove "${PACKAGES_TO_REMOVE[@]}" # ignore
echo "-5" | equo conf update
# check if a kernel update is needed
kernel_target_pkg="$(equo match -q --installed virtual/linux-binary)"
current_kernel=$(equo match --installed "${kernel_target_pkg}" -q --showslot)
if [[ ${SABAYON_INSTALL_KERNEL} -eq 1 ]] ; then
# check if a kernel update is needed
kernel_target_pkg="$(equo match -q --installed virtual/linux-binary)"
current_kernel=$(equo match --installed "${kernel_target_pkg}" -q --showslot)
echo "Move to kernel ${kernel_target_pkg}:${SABAYON_KERNEL_VERSION}"
# Do not pick for now latest kernel, but fix it to 4.14
#available_kernel=$(equo match "${kernel_target_pkg}" -q --showslot)
available_kernel="sys-kernel/linux-sabayon:${SABAYON_KERNEL_VERSION}"
echo "Move to kernel ${kernel_target_pkg}:${SABAYON_KERNEL_VERSION}"
# Do not pick for now latest kernel, but fix it to 4.14
#available_kernel=$(equo match "${kernel_target_pkg}" -q --showslot)
available_kernel="sys-kernel/linux-sabayon:${SABAYON_KERNEL_VERSION}"
if [ "${current_kernel}" != "${available_kernel}" ] && \
[ -n "${available_kernel}" ] && [ -n "${current_kernel}" ]; then
echo
echo "@@ Upgrading kernel to ${available_kernel}"
echo
safe_run kernel-switcher switch "${available_kernel}" || exit 1
equo remove "${current_kernel}" || exit 1
# now delete stale files in /lib/modules
for slink in $(find /lib/modules/ -type l); do
if [ ! -e "${slink}" ]; then
echo "Removing broken symlink: ${slink}"
rm "${slink}" # ignore failure, best effort
# check if parent dir is empty, in case, remove
paren_slink=$(dirname "${slink}")
paren_children=$(find "${paren_slink}")
if [ -z "${paren_children}" ]; then
echo "${paren_slink} is empty, removing"
rmdir "${paren_slink}" # ignore failure, best effort
if [ "${current_kernel}" != "${available_kernel}" ] && \
[ -n "${available_kernel}" ] && [ -n "${current_kernel}" ]; then
echo
echo "@@ Upgrading kernel to ${available_kernel}"
echo
safe_run kernel-switcher switch "${available_kernel}" || exit 1
equo remove "${current_kernel}" || exit 1
# now delete stale files in /lib/modules
for slink in $(find /lib/modules/ -type l); do
if [ ! -e "${slink}" ]; then
echo "Removing broken symlink: ${slink}"
rm "${slink}" # ignore failure, best effort
# check if parent dir is empty, in case, remove
paren_slink=$(dirname "${slink}")
paren_children=$(find "${paren_slink}")
if [ -z "${paren_children}" ]; then
echo "${paren_slink} is empty, removing"
rmdir "${paren_slink}" # ignore failure, best effort
fi
fi
fi
done
else
echo "@@ Not upgrading kernels:"
echo "Current: ${current_kernel}"
echo "Avail: ${available_kernel}"
echo
done
else
echo "@@ Not upgrading kernels:"
echo "Current: ${current_kernel}"
echo "Avail: ${available_kernel}"
echo
fi
fi
# keep /lib/modules clean at all times
for moddir in $(find /lib/modules -maxdepth 1 -type d -empty); do
echo "Cleaning ${moddir} because it's empty"
rmdir "${moddir}"
done
# Unmask packages (used on custom ISO)
if [ -n "${SABAYON_UNMASK_PKGS}" ] ; then
touch /etc/entropy/packages/package.unmask
@@ -133,6 +130,11 @@ if [ -n "${SABAYON_EXTRA_PKGS}" ] ; then
safe_run equo i ${SABAYON_EXTRA_PKGS[@]}
fi
# keep /lib/modules clean at all times
for moddir in $(find /lib/modules -maxdepth 1 -type d -empty); do
echo "Cleaning ${moddir} because it's empty"
rmdir "${moddir}"
done
rm -rf /var/lib/entropy/client/packages