Compare commits
2 Commits
Author | SHA256 | Date | |
---|---|---|---|
5ff87e7b2b | |||
164a7b06d6 |
@@ -1,3 +1,31 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jul 7 14:36:05 UTC 2025 - Petr Mladek <pmladek@suse.com>
|
||||||
|
|
||||||
|
- Version 1.8
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jul 7 12:19:16 UTC 2025 - Petr Mladek <pmladek@suse.com>
|
||||||
|
|
||||||
|
- Drop different flavors support (bsc#1245949)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jun 25 15:20:40 UTC 2025 - Petr Mladek <pmladek@suse.com>
|
||||||
|
|
||||||
|
- Hardcode version 1.2 when building for older distributions
|
||||||
|
than SL 16.0. The existing livepatch packages require exactly
|
||||||
|
this version. But new versions are backward compatible.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jun 25 13:30:09 UTC 2025 - Petr Mladek <pmladek@suse.com>
|
||||||
|
|
||||||
|
- Release version 1.7
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jun 25 10:34:15 UTC 2025 - Petr Mladek <pmladek@suse.com>
|
||||||
|
|
||||||
|
- Use "transactional-update" for downgrading livepatch package
|
||||||
|
on transactional systems (bsc#1245346)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Jan 31 10:10:30 UTC 2025 - Petr Mladek <pmladek@suse.com>
|
Fri Jan 31 10:10:30 UTC 2025 - Petr Mladek <pmladek@suse.com>
|
||||||
|
|
||||||
|
@@ -19,7 +19,11 @@
|
|||||||
%define dracutlibdir %{_prefix}/lib/dracut
|
%define dracutlibdir %{_prefix}/lib/dracut
|
||||||
|
|
||||||
Name: kernel-livepatch-tools
|
Name: kernel-livepatch-tools
|
||||||
Version: 1.6
|
%if 0%{?suse_version} >= 1600
|
||||||
|
Version: 1.8
|
||||||
|
%else
|
||||||
|
Version: 1.2
|
||||||
|
%endif
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Scripts for installing kernel live patches
|
Summary: Scripts for installing kernel live patches
|
||||||
License: GPL-2.0-only
|
License: GPL-2.0-only
|
||||||
|
14
klp.sh
14
klp.sh
@@ -194,6 +194,13 @@ function klp_detailed_patch_info() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# This check is inspired by zypper source code
|
||||||
|
function is_transactional_system() {
|
||||||
|
findmnt -O "ro" -t "btrfs" "/" >/dev/null 2>&1 || return 1
|
||||||
|
which "transactional-update" >/dev/null 2>&1 || return 1
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
function klp_downgrade()
|
function klp_downgrade()
|
||||||
{
|
{
|
||||||
VERBOSE_ORIG="$VERBOSE"
|
VERBOSE_ORIG="$VERBOSE"
|
||||||
@@ -237,7 +244,12 @@ function klp_downgrade()
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ZYPPER_COMMAND="zypper -n in --oldpackage $RPM_NAME = $PREV_RPM_VERSION"
|
if is_transactional_system ; then
|
||||||
|
ZYPPER_COMMAND="transactional-update pkg in -n"
|
||||||
|
else
|
||||||
|
ZYPPER_COMMAND="zypper -n in"
|
||||||
|
fi
|
||||||
|
ZYPPER_COMMAND="$ZYPPER_COMMAND --oldpackage $RPM_NAME = $PREV_RPM_VERSION"
|
||||||
echo "KLP tool will replace the current kernel live patch with its previous version."
|
echo "KLP tool will replace the current kernel live patch with its previous version."
|
||||||
echo "The command for downgrade is: $ZYPPER_COMMAND"
|
echo "The command for downgrade is: $ZYPPER_COMMAND"
|
||||||
if [ -z "$NON_INTERACTIVE" ]; then
|
if [ -z "$NON_INTERACTIVE" ]; then
|
||||||
|
@@ -1,29 +1,32 @@
|
|||||||
# Defines %flavors_to_build and %kernel_source() as a side effect.
|
# Defines %flavor and %kernel_source() as a side effect.
|
||||||
%klp_module_package(n:x) \
|
# Also defines %flavors_to_build for backward compatibility.
|
||||||
|
#
|
||||||
|
# Macro %variant should be defined in the spec file before %klp_module_package
|
||||||
|
# is used. The flavor value is guessed from the macro %variant. The value
|
||||||
|
# "default" is used as a fallback.
|
||||||
|
%klp_module_package(n:) \
|
||||||
%{expand:%( \
|
%{expand:%( \
|
||||||
subpkg=/usr/lib/rpm/kernel-livepatch-subpackage \
|
subpkg=/usr/lib/rpm/kernel-livepatch-subpackage \
|
||||||
|
variant=%{?variant}%{!?variant:"-default"} \
|
||||||
|
[ -z "$variant" ] && variant="-default" \
|
||||||
|
flavor=${variant#-} \
|
||||||
|
if [ -z "$flavor" ] || [ ! -d "/usr/src/linux-obj/%_target_cpu/$flavor" ]; then \
|
||||||
|
echo "Error: Kernel flavor '$flavor' derived from '%%variant' not found or empty at /usr/src/linux-obj/%_target_cpu/$flavor." >&2 \
|
||||||
|
echo "%%%%internal_kmp_error" \
|
||||||
|
exit 1 \
|
||||||
|
fi \
|
||||||
echo "%%define _suse_klp_module_subpackage(n:v:r:f:p:bc) %%{expand:%%(cd %_sourcedir; cat $subpkg; echo %%%%nil)}" \
|
echo "%%define _suse_klp_module_subpackage(n:v:r:f:p:bc) %%{expand:%%(cd %_sourcedir; cat $subpkg; echo %%%%nil)}" \
|
||||||
flavors_to_build= \
|
krel=$(make -s -C /usr/src/linux-obj/%_target_cpu/$flavor kernelrelease) \
|
||||||
flavors="%*" \
|
krpmver_flavor=${krel/.0-rc/.rc} \
|
||||||
for flavor in $(ls /usr/src/linux-obj/%_target_cpu 2>/dev/null); do \
|
krpmver=${krpmver_flavor%%-*} \
|
||||||
case " $flavors " in \
|
kprovide="kernel-$flavor-$krpmver" \
|
||||||
(*" $flavor "*) \
|
khashprovide=$(rpm -q --whatprovides "$kprovide" --provides | grep "^kernel-$flavor-srchash-") \
|
||||||
[ -n "%{-x}" ] && continue ;; \
|
if [ -n "$khashprovide" ]; then \
|
||||||
(*) \
|
kprovide="$khashprovide" \
|
||||||
[ -z "%{-x}" -a -n "$flavors" ] && continue ;; \
|
fi \
|
||||||
esac \
|
echo "%%_suse_klp_module_subpackage -n %{-n*}%{!-n:kernel-livepatch} -r %{release} $krel $krpmver_flavor $kprovide" \
|
||||||
krel=$(make -s -C /usr/src/linux-obj/%_target_cpu/$flavor kernelrelease) \
|
echo "%%global flavors_to_build ${flavor}" \
|
||||||
krpmver_flavor=${krel/.0-rc/.rc} \
|
echo "%%global flavor ${flavor}"
|
||||||
krpmver=${krpmver_flavor%%-*} \
|
|
||||||
kprovide="kernel-$flavor-$krpmver" \
|
|
||||||
khashprovide=$(rpm -q --whatprovides "$kprovide" --provides | grep "^kernel-$flavor-srchash-") \
|
|
||||||
if [ -n "$khashprovide" ]; then \
|
|
||||||
kprovide="$khashprovide" \
|
|
||||||
fi \
|
|
||||||
flavors_to_build="$flavors_to_build $flavor" \
|
|
||||||
echo "%%_suse_klp_module_subpackage -n %{-n*}%{!-n:kernel-livepatch} -r %{release} $krel $krpmver_flavor $kprovide" \
|
|
||||||
done \
|
|
||||||
echo "%%global flavors_to_build${flavors_to_build:-%%nil}" \
|
|
||||||
echo "%%{expand:%%(test -z '%flavors_to_build' && echo %%%%internal_kmp_error)}" \
|
echo "%%{expand:%%(test -z '%flavors_to_build' && echo %%%%internal_kmp_error)}" \
|
||||||
echo "%%global kernel_source() /usr/src/linux-obj/%_target_cpu/%%%%{1}" \
|
echo "%%global kernel_source() /usr/src/linux-obj/%_target_cpu/%%%%{1}" \
|
||||||
\
|
\
|
||||||
|
Reference in New Issue
Block a user