File bsc1190850-support-zstd-compressed-kernel-modules.patch of Package rpm-config-SUSE.21869
Index: rpm-config-SUSE-1/scripts/find-provides.ksyms
===================================================================
--- rpm-config-SUSE-1.orig/scripts/find-provides.ksyms
+++ rpm-config-SUSE-1/scripts/find-provides.ksyms
@@ -40,9 +40,10 @@ while read f; do
fi
flavor=${version##*-}
;;
- */lib/modules/*/*.ko | */lib/modules/*/*.ko.[gx]z)
+ */lib/modules/*/*.ko | */lib/modules/*/*.ko.[gx]z | */lib/modules/*/*.ko.zst)
is_module="1"
modname="${f%%.[gx]z}"
+ modname="${modname%%.zst}"
echo "kmod($(basename "$modname" | tr '-' '_'))"
;;
*)
@@ -58,6 +59,9 @@ while read f; do
*.xz)
xz -cd "$f" > "$tmp"
f=$tmp;;
+ *.zst)
+ zstd -cd "$f" > "$tmp"
+ f=$tmp;;
esac
if test -z "$flavor" -a -n "$is_module" ; then
version=$(/sbin/modinfo -F vermagic "$f")
@@ -81,7 +85,7 @@ while read f; do
sub=${version#*.}
sub=${sub%%.*}
if [ "$major" -gt 4 -o \( "$major" -eq 4 -a "$sub" -ge 10 \) ] ; then
- echo "error: cannot determine ksym provides of $f - missing ksym-povides tool." >&2
+ echo "error: cannot determine ksym provides of $f - missing ksym-provides tool." >&2
else
nm "$f" \
| sed -r -ne "s/^0*([0-9a-f]+) A __crc_(.+)/ksym($flavor:\\2) = \\1/p"
Index: rpm-config-SUSE-1/fileattrs/kernel.attr
===================================================================
--- rpm-config-SUSE-1.orig/fileattrs/kernel.attr
+++ rpm-config-SUSE-1/fileattrs/kernel.attr
@@ -1,2 +1,2 @@
%__kernel_provides %{_rpmconfigdir}/find-provides.ksyms --tumbleweed %{?sle_version:0}%{!?sle_version:1}
-%__kernel_path ^(/lib/modules/[^/]*/kernel/.*\.ko(\.gz|\.xz)?|/boot/vmlinu[xz].*)$
+%__kernel_path ^(/lib/modules/[^/]*/kernel/.*\.ko(\.gz|\.xz|\.zst)?|/boot/vmlinu[xz].*)$
Index: rpm-config-SUSE-1/fileattrs/kmp.attr
===================================================================
--- rpm-config-SUSE-1.orig/fileattrs/kmp.attr
+++ rpm-config-SUSE-1/fileattrs/kmp.attr
@@ -1,4 +1,4 @@
%__kmp_provides %{_rpmconfigdir}/find-provides.ksyms --tumbleweed %{?sle_version:0}%{!?sle_version:1}
%__kmp_requires %{_rpmconfigdir}/find-requires.ksyms --tumbleweed %{?sle_version:0}%{!?sle_version:1}
%__kmp_supplements %{_rpmconfigdir}/find-supplements.ksyms
-%__kmp_path ^/lib/modules/[^/]*/(updates|extra)/.*\.ko(\.gz|\.xz)?
+%__kmp_path ^/lib/modules/[^/]*/(updates|extra)/.*\.ko(\.gz|\.xz|\.zst)?
Index: rpm-config-SUSE-1/scripts/find-requires.ksyms
===================================================================
--- rpm-config-SUSE-1.orig/scripts/find-requires.ksyms
+++ rpm-config-SUSE-1/scripts/find-requires.ksyms
@@ -24,6 +24,7 @@ while read f ; do
case "$f" in
*/lib/modules/*.ko) modules[${#modules[*]}]="$f" ;;
*/lib/modules/*.ko.[gx]z) modules[${#modules[*]}]="${f%.*}" ;;
+ */lib/modules/*.ko.zst) modules[${#modules[*]}]="${f%.*}" ;;
*/lib/modules/*/modules.builtin) while read x; do modsexp="$modsexp|$(basename "$x" .ko | tr '-' '_')"; done < $f ;;
*/usr/lib/modules-load.d/*.conf) while read x; do
case "$x" in
@@ -64,6 +65,8 @@ all_provides() {
gzip -cd "$module".gz > "$tmp"
elif [ -f "$module".xz ]; then
xz -cd "$module".xz > "$tmp"
+ elif [ -f "$module".zst ]; then
+ zstd -cd "$module".zst > "$tmp"
else
continue
fi
@@ -81,6 +84,8 @@ all_requires() {
module="$module".gz
elif [ -f "$module".xz ]; then
module="$module".xz
+ elif [ -f "$module".zst ]; then
+ module="$module".zst
else
continue
fi
Index: rpm-config-SUSE-1/scripts/find-supplements.ksyms
===================================================================
--- rpm-config-SUSE-1.orig/scripts/find-supplements.ksyms
+++ rpm-config-SUSE-1/scripts/find-supplements.ksyms
@@ -50,7 +50,7 @@ hexenc() {
done
}
-for module in $(grep -E '/lib/modules/.+\.ko(\.[gx]z)?$' | grep -v '/lib/modules/[^/]*/kernel/'); do
+for module in $(grep -E '/lib/modules/.+\.ko(\.gz|\.xz|\.zst)?$' | grep -v '/lib/modules/[^/]*/kernel/'); do
vermagic=$(/sbin/modinfo -F vermagic "$module")
krel=${vermagic%% *}
/sbin/modinfo -F alias "$module" \