summaryrefslogtreecommitdiff
path: root/backport-kmp-feature.patch
diff options
context:
space:
mode:
Diffstat (limited to 'backport-kmp-feature.patch')
-rw-r--r--backport-kmp-feature.patch485
1 files changed, 0 insertions, 485 deletions
diff --git a/backport-kmp-feature.patch b/backport-kmp-feature.patch
deleted file mode 100644
index 6525efb..0000000
--- a/backport-kmp-feature.patch
+++ /dev/null
@@ -1,485 +0,0 @@
-From 3e65c85831be0b8f8e1cd43869b4991a76e14d9b Mon Sep 17 00:00:00 2001
-From: Yang Yanchao <yangyanchao6@huawei.com>
-Date: Fri, 17 Mar 2023 01:09:09 +0000
-Subject: [PATCH] backport kmp feature
-
-Signed-off-by: Yang Yanchao <yangyanchao6@huawei.com>
-Signed-off-by: Xinliang Liu <xinliang.liu@linaro.org>
----
- kmodtool | 281 ++++++++++++++++++++++++++++++++++++++++++++++++++++
- kmodtool.py | 83 ---------------
- macros.kmp | 85 ++++++++++++----
- 3 files changed, 350 insertions(+), 105 deletions(-)
- create mode 100644 kmodtool
- delete mode 100644 kmodtool.py
-
-diff --git a/kmodtool b/kmodtool
-new file mode 100644
-index 0000000..427d1df
---- /dev/null
-+++ b/kmodtool
-@@ -0,0 +1,281 @@
-+#!/usr/bin/bash
-+
-+# kmodtool - Helper script for building kernel module RPMs
-+# Copyright (c) 2003-2006 Ville Skyttä <ville.skytta@iki.fi>,
-+# Thorsten Leemhuis <fedora@leemhuis.info>
-+# Jon Masters <jcm@redhat.com>
-+#
-+# Permission is hereby granted, free of charge, to any person obtaining
-+# a copy of this software and associated documentation files (the
-+# "Software"), to deal in the Software without restriction, including
-+# without limitation the rights to use, copy, modify, merge, publish,
-+# distribute, sublicense, and/or sell copies of the Software, and to
-+# permit persons to whom the Software is furnished to do so, subject to
-+# the following conditions:
-+#
-+# The above copyright notice and this permission notice shall be
-+# included in all copies or substantial portions of the Software.
-+#
-+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-+
-+shopt -s extglob
-+
-+myprog="kmodtool"
-+myver="0.10.10_kmp2"
-+knownvariants=@(BOOT|PAE|@(big|huge)mem|debug|enterprise|kdump|?(large)smp|uml|xen[0U]?(-PAE)|xen)
-+kmod_name=
-+kver=
-+verrel=
-+variant=
-+kmp=
-+
-+get_verrel ()
-+{
-+ verrel=${1:-$(uname -r)}
-+ verrel=${verrel%%$knownvariants}
-+}
-+
-+print_verrel ()
-+{
-+ get_verrel $@
-+ echo "${verrel}"
-+}
-+
-+get_variant ()
-+{
-+ get_verrel $@
-+ variant=${1:-$(uname -r)}
-+ variant=${variant##$verrel}
-+ variant=${variant:-'""'}
-+}
-+
-+print_variant ()
-+{
-+ get_variant $@
-+ echo "${variant}"
-+}
-+
-+get_filelist() {
-+ local IFS=$'\n'
-+ filelist=($(cat))
-+
-+ if [ ${#filelist[@]} -gt 0 ];
-+ then
-+ for ((n = 0; n < ${#filelist[@]}; n++));
-+ do
-+ line="${filelist[n]}"
-+ line=$(echo "$line" \
-+ | sed -e "s/%verrel/$verrel/g" \
-+ | sed -e "s/%variant/$variant/g" \
-+ | sed -e "s/%dashvariant/$dashvariant/g" \
-+ | sed -e "s/%dotvariant/$dotvariant/g" \
-+ | sed -e "s/\.%1/$dotvariant/g" \
-+ | sed -e "s/\-%1/$dotvariant/g" \
-+ | sed -e "s/%2/$verrel/g")
-+ echo "$line"
-+ done
-+ else
-+ echo "%defattr(644,root,root,755)"
-+ echo "/lib/modules/${verrel}${dotvariant}"
-+ fi
-+}
-+
-+get_rpmtemplate ()
-+{
-+ local variant="${1}"
-+ local dashvariant="${variant:+-${variant}}"
-+ case "$verrel" in
-+ *.el*) kdep="kernel${dashvariant}-%{_target_cpu} = ${verrel}" ;;
-+ *.EL*) kdep="kernel${dashvariant}-%{_target_cpu} = ${verrel}" ;;
-+ *) kdep="kernel-%{_target_cpu} = ${verrel}${variant}" ;;
-+ esac
-+
-+ echo "%package -n kmod-${kmod_name}${dashvariant}"
-+
-+ if [ -z "$kmp_provides_summary" ]; then
-+ echo "Summary: ${kmod_name} kernel module(s)"
-+ fi
-+
-+ if [ -z "$kmp_provides_group" ]; then
-+ echo "Group: System Environment/Kernel"
-+ fi
-+
-+ if [ ! -z "$kmp_version" ]; then
-+ echo "Version: %{kmp_version}"
-+ fi
-+
-+ if [ ! -z "$kmp_release" ]; then
-+ echo "Release: %{kmp_release}"
-+ fi
-+
-+ cat <<EOF
-+Provides: kernel-modules = ${verrel}${variant}
-+Provides: ${kmod_name}-kmod = %{?epoch:%{epoch}:}%{version}-%{release}
-+EOF
-+
-+ if [ -z "$kmp" ]; then
-+ echo "Requires: ${kdep}"
-+ fi
-+
-+#
-+# RHEL5 - Remove common package requirement on general kmod packages.
-+# Requires: ${kmod_name}-kmod-common >= %{?epoch:%{epoch}:}%{version}
-+#
-+
-+ cat <<EOF
-+Requires(post): /usr/sbin/depmod
-+Requires(postun): /usr/sbin/depmod
-+EOF
-+
-+if [ "" != "$kmp_override_preamble" ]
-+then
-+ cat "$kmp_override_preamble"
-+fi
-+
-+cat <<EOF
-+%description -n kmod-${kmod_name}${dashvariant}
-+This package provides the ${kmod_name} kernel modules built for the Linux
-+kernel ${verrel}${variant} for the %{_target_cpu} family of processors.
-+%post -n kmod-${kmod_name}${dashvariant}
-+if [ -e "/boot/System.map-${verrel}${variant}" ]; then
-+ /sbin/depmod -aeF "/boot/System.map-${verrel}${variant}" "${verrel}${variant}" > /dev/null || :
-+fi
-+EOF
-+
-+ if [ ! -z "$kmp" ]; then
-+ cat <<EOF
-+
-+modules=( \$(find /lib/modules/${verrel}${variant}/extra/${kmod_name} | grep '\.ko$') )
-+if [ -x "/sbin/weak-modules" ]; then
-+ printf '%s\n' "\${modules[@]}" \
-+ | /sbin/weak-modules --add-modules
-+fi
-+%preun -n kmod-${kmod_name}${dashvariant}
-+rpm -ql kmod-${kmod_name}${dashvariant} | grep '\.ko$' \
-+ > /var/run/rpm-kmod-${kmod_name}${dashvariant}-modules
-+EOF
-+
-+ fi
-+
-+ cat <<EOF
-+%postun -n kmod-${kmod_name}${dashvariant}
-+/sbin/depmod -aF /boot/System.map-${verrel}${variant} ${verrel}${variant} &> /dev/null || :
-+EOF
-+
-+ if [ ! -z "$kmp" ]; then
-+ cat <<EOF
-+modules=( \$(cat /var/run/rpm-kmod-${kmod_name}${dashvariant}-modules) )
-+if [ -x "/sbin/weak-modules" ]; then
-+ printf '%s\n' "\${modules[@]}" \
-+ | /sbin/weak-modules --remove-modules
-+fi
-+EOF
-+ fi
-+
-+echo "%files -n kmod-${kmod_name}${dashvariant}"
-+if [ "" == "$kmp_override_filelist" ];
-+then
-+ echo "%defattr(644,root,root,755)"
-+ echo "/lib/modules/${verrel}${variant}/"
-+else
-+ cat "$kmp_override_filelist" | get_filelist
-+fi
-+}
-+
-+print_rpmtemplate ()
-+{
-+ kmod_name="${1}"
-+ shift
-+ kver="${1}"
-+ get_verrel "${1}"
-+ shift
-+ if [ -z "${kmod_name}" ] ; then
-+ echo "Please provide the kmodule-name as first parameter." >&2
-+ exit 2
-+ elif [ -z "${kver}" ] ; then
-+ echo "Please provide the kver as second parameter." >&2
-+ exit 2
-+ elif [ -z "${verrel}" ] ; then
-+ echo "Couldn't find out the verrel." >&2
-+ exit 2
-+ fi
-+
-+ for variant in "$@" ; do
-+ if [ "default" == "$variant" ];
-+ then
-+ get_rpmtemplate ""
-+ else
-+ get_rpmtemplate "${variant}"
-+ fi
-+ done
-+}
-+
-+usage ()
-+{
-+ cat <<EOF
-+You called: ${invocation}
-+
-+Usage: ${myprog} <command> <option>+
-+ Commands:
-+ verrel <uname>
-+ - Get "base" version-release.
-+ variant <uname>
-+ - Get variant from uname.
-+ rpmtemplate <mainpgkname> <uname> <variants>
-+ - Return a template for use in a source RPM
-+ rpmtemplate_kmp <mainpgkname> <uname> <variants>
-+ - Return a template for use in a source RPM with KMP dependencies
-+ version
-+ - Output version number and exit.
-+EOF
-+}
-+
-+invocation="$(basename ${0}) $@"
-+while [ "${1}" ] ; do
-+ case "${1}" in
-+ verrel)
-+ shift
-+ print_verrel $@
-+ exit $?
-+ ;;
-+ variant)
-+ shift
-+ print_variant $@
-+ exit $?
-+ ;;
-+ rpmtemplate)
-+ shift
-+ print_rpmtemplate "$@"
-+ exit $?
-+ ;;
-+ rpmtemplate_kmp)
-+ shift
-+ kmp=1
-+ print_rpmtemplate "$@"
-+ exit $?
-+ ;;
-+ version)
-+ echo "${myprog} ${myver}"
-+ exit 0
-+ ;;
-+ *)
-+ echo "Error: Unknown option '${1}'." >&2
-+ usage >&2
-+ exit 2
-+ ;;
-+ esac
-+done
-+
-+# Local variables:
-+# mode: sh
-+# sh-indentation: 2
-+# indent-tabs-mode: nil
-+# End:
-+# ex: ts=2 sw=2 et
-+
-diff --git a/kmodtool.py b/kmodtool.py
-deleted file mode 100644
-index 75492b9..0000000
---- a/kmodtool.py
-+++ /dev/null
-@@ -1,83 +0,0 @@
--# -*- coding: UTF-8 -*-
--#!/usr/bin/python3
--
--# kmodtool - Helper script for building kernel module RPMs
--
--import os,subprocess,sys
--
--def print_verrel ():
-- #verrel=subprocess.getoutput("(rpm -q --qf '%{VERSION}-%{RELEASE}' `rpm -q kernel-devel` | head -n 1)")
-- # if (len(verrel)== 0):
-- verrel=subprocess.getoutput("uname -r")
-- return verrel
--
--def print_rpmtemplate():
-- kmod_name = sys.argv[2]
-- # verrel=subprocess.getoutput("(rpm -q --qf '%{VERSION}-%{RELEASE}' `rpm -q kernel-devel` | head -n 1)")
-- # if (len(verrel)== 0):
-- verrel=subprocess.getoutput("uname -r")
--
-- if not kmod_name:
-- print("Please provide the kmodule-name as first parameter.")
-- exit()
-- get_rpmtemplate(kmod_name,verrel)
--
--
--def get_rpmtemplate(kmod_name,verrel):
-- print("%package -n kmod-" + kmod_name)
-- print("Summary: " + kmod_name + " " + "kernel module(s)")
-- print("Group: System Environment/Kernel")
-- if "%{version}":
-- print("Version: %{version}")
-- if "%{release}":
-- print("Release: %{release}")
-- print("Provides: kernel-modules =" + " " + verrel)
-- print("Provides: "+ kmod_name + "-kmod = %{?epoch:%{epoch}:}%{version}-%{release}")
-- print("Requires(post): /usr/sbin/depmod")
-- print("Requires(postun): /usr/sbin/depmod")
-- print("%description -n kmod-" + kmod_name)
-- print("This package provides the " + kmod_name + " kernel modules built for the Linux")
-- print("kernel "+ verrel + " for the %{_target_cpu} family of processors.")
-- print("%post -n kmod-" + kmod_name)
-- print("if [ -e /boot/System.map-" + verrel + " ]; then")
-- print(" /sbin/depmod -aeF /boot/System.map-" + verrel +" " + verrel +"> /dev/null || :")
-- print("fi")
-- if (kmp !=""):
-- print("modules=( $(find /lib/modules/" + verrel + "/extra/" + kmod_name + ") )")
-- print("""if [ -x "/sbin/weak-modules" ]; then
-- printf '%s\\n' "${modules[@]}" | /sbin/weak-modules --add-modules
--fi""")
-- print("%preun -n kmod-" + kmod_name)
-- print("rpm -ql kmod-" + kmod_name + "| grep '\.ko$' > /var/run/rpm-kmod-" + kmod_name +"-modules")
--
-- print("%postun -n kmod-" + kmod_name)
-- print("/sbin/depmod -aF /boot/System.map-" + verrel+" " + verrel + " &> /dev/null || :")
--
-- if (kmp !=""):
-- print("modules=( $(cat /var/run/rpm-kmod-" + kmod_name + "-modules) )")
-- print("#rm /var/run/rpm-kmod-" + kmod_name + "-modules")
-- print("""if [ -x "/sbin/weak-modules" ]; then
-- printf '%s\\n' "${modules[@]}" | /sbin/weak-modules --remove-modules
--fi""")
--
-- print("%files -n kmod-" + kmod_name)
-- kmp_override_filelist= sys.argv[3]
-- if kmp_override_filelist == '%filelist':
-- print("%defattr(644,root,root,755)")
-- print("/lib/modules/" + verrel)
-- print("/lib/firmware/")
-- else:
-- with open(kmp_override_filelist) as f:
-- for line in f:
-- print(line, end = '')
--
--#for i in range(len(sys.argv)):
--if (sys.argv[1] == "verrel"):
-- print_verrel()
--if (sys.argv[1] == "rpmtemplate_kmp"):
-- kmp=1
-- print_rpmtemplate()
--else:
-- print("Error: Unknown option 'sys.argv[i]'.")
-- exit()
--
-diff --git a/macros.kmp b/macros.kmp
-index d46aa04..8440e26 100644
---- a/macros.kmp
-+++ b/macros.kmp
-@@ -1,22 +1,64 @@
--# Use these macros to differentiate between __vendor and other KMP implementation(s).
--
--kernel_module_package_release 1
--
--__find_requires /usr/lib/rpm/__vendor/find-requires
--
--
--#kernel_module_package [ -n name ] [ -v version ] [ -r release ]
--# [ -f filelist][-p preamble]
--#
--
--%kernel_module_package_buildreqs %global kmodtool_generate_buildreqs 1 \
-- kernel-devel
--
--%kernel_module_package(n:v:r:f:p) %{expand:%( \
-- %define kmodtool /usr/lib/rpm/__vendor/kmodtool.py\
-- %define latest_kernel $(rpm -q --qf '%{VERSION}-%{RELEASE}\\\\n' `rpm -q kernel-devel` | head -n 1) \
-- %{!?kernel_version:%{expand:%%global kernel_version %{latest_kernel}}} \
-- %global kverrel %(%{kmodtool} verrel %{?kernel_version} 2>/dev/null) \
-- python3 %{kmodtool} rpmtemplate_kmp %{-n*}%{!-n:%name} %{kverrel} %{-f*}%{!-f:%filelist} %{-p*}%{!-p:%preamble} \
--)}
--
-+# Use these macros to differentiate between __vendor and other KMP implementation(s).
-+
-+kernel_module_package_release 1
-+
-+%__find_provides /usr/lib/rpm/find-provides
-+%__find_requires /usr/lib/rpm/__vendor/find-requires
-+
-+#kernel_module_package [ -n name ] [ -v version ] [ -r release ] [ -s script ]
-+# [ -f filelist] [ -x ] [ -p preamble ] flavor flavor ...
-+
-+%kernel_module_package_buildreqs %global kmodtool_generate_buildreqs 1 \
-+ kernel-devel
-+
-+%kernel_module_package(n:v:r:s:f:xp:) %{expand:%( \
-+ %define kmodtool %{-s*}%{!-s:/usr/lib/rpm/__vendor/kmodtool} \
-+ %define kmp_version %{-v*}%{!-v:%{version}} \
-+ %define kmp_release %{-r*}%{!-r:%{release}} \
-+ %define latest_kernel %(rpm -q --qf '%%{VERSION}-%%{RELEASE}.%%{ARCH}\\\\n' `rpm -q kernel-devel | head -n 1` | head -n 1) \
-+ %{!?kernel_version:%{expand:%%global kernel_version %{latest_kernel}}} \
-+ %global kverrel %(%kmodtool verrel %{?kernel_version} 2>/dev/null) \
-+ flavors="default" \
-+ if [ "i686" == "%{_target_cpu}" ] || [ "x86_64" == "%{_target_cpu}" ] \
-+ then \
-+ xenver=$(rpm -q kernel-xen-devel-%{kverrel}|head -n 1)\
-+ kdver=$(rpm -q kernel-kdump-devel-%{kverrel}|head -n 1)\
-+ if [ "kernel-xen-devel-%{kverrel}" == "$xenver" ] \
-+ then \
-+ flavors="$flavors xen" \
-+ fi \
-+ if [ "kernel-kdump-devel-%{kverrel}" == "$kdver" ] \
-+ then \
-+ flavors="$flavors kdump" \
-+ fi \
-+ fi \
-+ if [ -z "%*" ]; then \
-+ flavors_to_build=$flavors \
-+ elif [ -z "%{-x}" ]; then \
-+ flavors_to_build="%*" \
-+ else \
-+ flavors_to_build=" $flavors "\
-+ rm -rf /tmp/tmp.$$ \
-+ echo "[$flavors_to_build]" >/tmp/tmp.$$ \
-+ for i in %* \
-+ do \
-+ flavors_to_build=${flavors_to_build//$i /}
-+ done \
-+ fi \
-+ echo "%%global flavors_to_build ${flavors_to_build:-%%nil}" \
-+ echo "%%global kernel_source() /usr/src/kernels/%kverrel\\\$([ %%%%{1} = default ] || echo "%%%%{1}.")" \
-+ if [ ! -z "%{-f*}" ] \
-+ then \
-+ filelist="%{-f*}" \
-+ fi \
-+ if [ ! -z "%{-p*}" ] \
-+ then \
-+ preamble="%{-p*}" \
-+ fi \
-+ nobuildreqs="yes" \
-+ if [ "x%{kmodtool_generate_buildreqs}" != "x1" ] \
-+ then \
-+ nobuildreqs="no" \
-+ fi \
-+ kmp_override_filelist="$filelist" kmp_override_preamble="$preamble" kmp_nobuildreqs="$nobuildreqs" %{kmodtool} rpmtemplate_kmp %{-n*}%{!-n:%name} %{kverrel} $flavors_to_build 2>/dev/null \
-+)}
---
-2.33.0
-