On 08/27/2012 09:05 PM, Nikola Pajkovsky wrote:
> 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)
>
Well, that actually seems like a good result as we don't really care
about uReports sent from people running custom kernels.

-- 
Richard Marko

Reply via email to