Richard Marko <[email protected]> writes:

> Required for reporter-ureport to work with kernel oopses.
>
> Signed-off-by: Richard Marko <[email protected]>
> ---
>  abrt.spec.in                             |  1 +
>  src/plugins/Makefile.am                  |  3 ++-
>  src/plugins/abrt-action-save-kernel-data | 27 +++++++++++++++++++++++++++
>  src/plugins/koops_event.conf             |  1 +
>  4 files changed, 31 insertions(+), 1 deletion(-)
>  create mode 100755 src/plugins/abrt-action-save-kernel-data
>
> diff --git a/abrt.spec.in b/abrt.spec.in
> index a1c00ba..65a03d3 100644
> --- a/abrt.spec.in
> +++ b/abrt.spec.in
> @@ -571,6 +571,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor 
> &>/dev/null || :
>  %endif
>  %{_bindir}/abrt-dump-oops
>  %{_bindir}/abrt-action-analyze-oops
> +%{_bindir}/abrt-action-save-kernel-data
>  %{_mandir}/man1/abrt-action-analyze-oops.1*
>  
>  %files addon-xorg
> diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
> index 675b1a7..8829c06 100644
> --- a/src/plugins/Makefile.am
> +++ b/src/plugins/Makefile.am
> @@ -4,7 +4,8 @@ bin_SCRIPTS = \
>      abrt-action-install-debuginfo \
>      abrt-action-analyze-core \
>      abrt-action-analyze-vmcore \
> -    abrt-action-list-dsos
> +    abrt-action-list-dsos \
> +    abrt-action-save-kernel-data
>  
>  bin_PROGRAMS = \
>      abrt-watch-log \
> diff --git a/src/plugins/abrt-action-save-kernel-data 
> b/src/plugins/abrt-action-save-kernel-data
> new file mode 100755
> index 0000000..2a4ce98
> --- /dev/null
> +++ b/src/plugins/abrt-action-save-kernel-data
> @@ -0,0 +1,27 @@
> +#!/bin/bash
> +#
> +# Save pkg_{name, arch, version, release} for kernel oopses.
> +#
> +# These files are required by reporter-ureporter (mandatory
> +# in uReport).
> +#
> +
> +test -f kernel || exit 1
> +
> +echo "Looking for kernel package"
> +package="$( rpm -q kernel kernel-PAE | grep "$( sed 's/ .*//' kernel )")"
> +if [ $? == 0 ]; then
> +        echo "Kernel package $package found"
> +        rpm -q --qf "%{name}\n" "$package" > pkg_name
> +        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"

System without kernel? :)

> +fi
> diff --git a/src/plugins/koops_event.conf b/src/plugins/koops_event.conf
> index 91759b1..9369131 100644
> --- a/src/plugins/koops_event.conf
> +++ b/src/plugins/koops_event.conf
> @@ -3,6 +3,7 @@ EVENT=post-create analyzer=Kerneloops
>          abrt-action-analyze-oops &&
>          dmesg >dmesg &&
>          abrt-action-generate-core-backtrace
> +        abrt-action-save-kernel-data
>  
>  # If you want behavior similar to one provided by kerneloops daemon
>  # distributed by kerneloops.org - that is, if you want

I don't think that is really good idea.

$ rpm -q kernel
kernel-3.3.0-0.20.el7.x86_64
kernel-3.5.0-0.23.el7.x86_64
kernel-3.5.0-0.24.el7.x86_64

Which kernel am I running?

$ uname -r
3.6.0-rc3

don't be lazy and parse it form oops (code which looks for kernel
version is already there)

-- 
Nikola

Reply via email to