On 08/03/2012 04:55 PM, Richard Marko wrote:
Required for reporter-ureport to work with kernel oopses.
Signed-off-by: Richard Marko <rmarko(a)redhat.com>
---
src/plugins/koops_event.conf | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/src/plugins/koops_event.conf b/src/plugins/koops_event.conf
index 4d75110..e050cae 100644
--- a/src/plugins/koops_event.conf
+++ b/src/plugins/koops_event.conf
@@ -4,6 +4,24 @@ EVENT=post-create analyzer=Kerneloops
dmesg >dmesg &&
abrt-action-generate-core-backtrace
+ echo "Looking for kernel package"
+ package=$( rpm -q kernel | grep $( cat kernel | cut -d' ' -f1 ))
This fails on my machine because I have kernel-PAE-3.4.2-1.fc16.i686
package. Looks like we need rpm -qa and grep for "kernel.*VERSION"
"cat kernel | cut -d' ' -f1" can be optimized into one fewer command:
"sed 's/ .*//' kernel"
+ if [ $? == 0 ]; then
+ echo "Kernel package $package found"
+ rpm -q --qf "%{name}\n" $package > pkg_name
Please use "$package" and "$(subst)", not $package and $(subst).
Just paranoia: you want it to be one "shell word"?
Then it must be quoted. I do it even when I _know_
there are no spaces - I want to develop a good habit
and avoid a bug when it _will_ have spaces.
+ rpm -q --qf "%{arch}\n" $package >
pkg_arch
+ rpm -q --qf "%{version}\n" $package > pkg_version
+ rpm -q --qf "%{release}\n" $package > pkg_release
+ epoch=$( rpm -q --qf "%{epoch}" $package )
+ if [ $epoch == "(none)" ]; then
+ echo "0" > pkg_epoch
+ else
+ echo "$epoch" > pkg_epoch
+ fi
+ else
+ echo "Kernel package not found"
+ fi
+
# If you want behavior similar to one provided by kerneloops daemon
# distributed by
kerneloops.org - that is, if you want
# oopses to be reported automatically and immediately without