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
