diff --git a/find-provides.ksyms b/find-provides.ksyms index a58978b..796a090 100755 --- a/find-provides.ksyms +++ b/find-provides.ksyms @@ -2,7 +2,7 @@ IFS=$'\n' -for module in $(grep -E '/lib/modules/.+\.ko(\.gz|\.bz2|\.xz)?$'); do +for module in $(grep -E '/lib/modules/.+\.ko(\.gz|\.bz2|\.xz)?$') "$@"; do tmpfile="" if [ "x${module%.ko}" = "x${module}" ]; then tmpfile=$(mktemp -t ${0##*/}.XXXXXX.ko) diff --git a/find-requires.ksyms b/find-requires.ksyms index d574681..ae45d94 100755 --- a/find-requires.ksyms +++ b/find-requires.ksyms @@ -123,7 +123,7 @@ check_kabi() { fi } -modules=($(grep -E '/lib/modules/.+\.ko(\.gz|\.bz2|\.xz)?$')) +modules=($(grep -E '/lib/modules/.+\.ko(\.gz|\.bz2|\.xz)?$') "$@") if [ ${#modules[@]} -gt 0 ]; then kernel=$(/sbin/modinfo -F vermagic "${modules[0]}" | sed -e 's: .*::' -e q) diff --git a/kernel-srpm-macros.spec b/kernel-srpm-macros.spec index 42e6e85..20e1ee8 100644 --- a/kernel-srpm-macros.spec +++ b/kernel-srpm-macros.spec @@ -16,11 +16,14 @@ Conflicts: redhat-rpm-config <= 184 Source0: macros.kernel-srpm Source1: macros.kmp -# Dependency generator scripts (deprecated) +# Dependency generator scripts Source100: find-provides.ksyms Source101: find-requires.ksyms Source102: firmware.prov Source103: modalias.prov +Source104: provided_ksyms.attr +Source105: required_ksyms.attr +Source106: modalias.attr # Dependency generators & their rules Source200: kmod.attr @@ -81,7 +84,7 @@ mkdir -p %{buildroot}%{rrcdir}/find-provides.d mkdir -p %{buildroot}%{_fileattrsdir} install -p -m 755 -t %{buildroot}%{rrcdir} kmodtool rpmsort symset-table install -p -m 755 -t %{buildroot}%{rrcdir} find-provides.ksyms find-requires.ksyms -install -p -m 644 -t %{buildroot}%{rrcdir}/find-provides.d firmware.prov modalias.prov +install -p -m 755 -t %{buildroot}%{rrcdir}/find-provides.d firmware.prov modalias.prov install -p -m 755 -t %{buildroot}%{rrcdir} brp-kmod-restore-perms brp-kmod-set-exec-bit install -p -m 644 -t %{buildroot}%{_rpmconfigdir}/macros.d macros.kmp install -p -m 644 -t %{buildroot}%{_fileattrsdir} kmod.attr @@ -89,6 +92,9 @@ install -p -m 644 -t %{buildroot}%{_fileattrsdir} kmod.attr install -p -m 644 -t "%{buildroot}%{_fileattrsdir}" kabi.attr install -p -m 755 -t "%{buildroot}%{_rpmconfigdir}" kabi.sh +install -p -m 644 -t "%{buildroot}%{_fileattrsdir}" provided_ksyms.attr required_ksyms.attr +install -p -m 644 -t "%{buildroot}%{_fileattrsdir}" modalias.attr + %files %{_rpmconfigdir}/macros.d/macros.kernel-srpm %{_fileattrsdir}/kmod.attr @@ -97,6 +103,9 @@ install -p -m 755 -t "%{buildroot}%{_rpmconfigdir}" kabi.sh %{_rpmconfigdir}/kabi.sh %{_rpmconfigdir}/macros.d/macros.kmp %{_fileattrsdir}/kabi.attr +%{_fileattrsdir}/modalias.attr +%{_fileattrsdir}/provided_ksyms.attr +%{_fileattrsdir}/required_ksyms.attr %dir %{rrcdir}/find-provides.d %{rrcdir}/brp-kmod-restore-perms %{rrcdir}/brp-kmod-set-exec-bit diff --git a/kmodtool b/kmodtool index fdb6582..6c43725 100755 --- a/kmodtool +++ b/kmodtool @@ -168,9 +168,6 @@ get_rpmtemplate () echo "Release: %{kmod_release}" fi - # Turn of the internal dep generator so we will use the kmod scripts. - echo "%global _use_internal_dependency_generator 0" - cat <= ${verrel}${dotvariant} Provides: kernel${dashvariant}-modules >= ${verrel} diff --git a/macros.kmp b/macros.kmp index 8eb6157..f8034ee 100644 --- a/macros.kmp +++ b/macros.kmp @@ -9,9 +9,6 @@ redhat_kmp_has_post_hooks 1 %__kmod_brps_added 0 -%__find_provides /usr/lib/rpm/redhat/find-provides -%__find_requires /usr/lib/rpm/redhat/find-requires - #kernel_module_package [ -n name ] [ -v version ] [ -r release ] [ -s script ] # [ -f filelist] [ -x ] [ -p preamble ] flavor flavor ... diff --git a/modalias.attr b/modalias.attr new file mode 100644 index 0000000..cb5f183 --- /dev/null +++ b/modalias.attr @@ -0,0 +1,2 @@ +%__modalias_provides /usr/lib/rpm/redhat/find-provides.d/modalias.prov +%__modalias_path .*\.(ko|ko\.gz|ko\.bz2|ko\.xz)$ diff --git a/provided_ksyms.attr b/provided_ksyms.attr new file mode 100644 index 0000000..309a06a --- /dev/null +++ b/provided_ksyms.attr @@ -0,0 +1,2 @@ +%__provided_ksyms_provides /usr/lib/rpm/redhat/find-provides.ksyms +%__provided_ksyms_path .*\.(ko|ko\.gz|ko\.bz2|ko\.xz)$ diff --git a/required_ksyms.attr b/required_ksyms.attr new file mode 100644 index 0000000..2c9e979 --- /dev/null +++ b/required_ksyms.attr @@ -0,0 +1,4 @@ +%__required_ksyms_requires /usr/lib/rpm/redhat/find-requires.ksyms +%__required_ksyms_path .*\.(ko|ko\.gz|ko\.bz2|ko\.xz)$ +# Exclude built-in kernel modules +%__required_ksyms_exclude_path ^/lib/modules/[1-9][^/]*/kernel/.*