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" \
openSUSE Build Service is sponsored by