On 08/03/2012 04:55 PM, Richard Marko wrote:
> Required for reporter-ureport to work with kernel oopses.
>
> Signed-off-by: Richard Marko <[email protected]>
> ---
> 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