diff --git a/.gitignore b/.gitignore index b1c214e..8485078 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ abrt-1.1.13.tar.gz /abrt-2.0.18.tar.gz /abrt-2.0.19.tar.gz /abrt-2.0.20.tar.gz +/abrt-2.1.0.tar.gz diff --git a/abrt.spec b/abrt.spec index 6f8cb9e..8dbe702 100644 --- a/abrt.spec +++ b/abrt.spec @@ -24,7 +24,7 @@ Summary: Automatic bug detection and reporting tool Name: abrt -Version: 2.0.20 +Version: 2.1.0 Release: 1%{?dist} License: GPLv2+ Group: Applications/System @@ -47,8 +47,9 @@ BuildRequires: libtool BuildRequires: nss-devel BuildRequires: asciidoc BuildRequires: xmlto -BuildRequires: libreport-devel >= 2.0.14-1 +BuildRequires: libreport-devel >= 2.1.0-1 BuildRequires: btparser-devel +Requires: libreport >= 2.1.0-1 %if %{with systemd} Requires: systemd-units @@ -87,6 +88,7 @@ Summary: %{name}'s gui Group: User Interface/Desktops Requires: %{name} = %{version}-%{release} Requires: %{name}-dbus = %{version}-%{release} +Requires: gnome-abrt BuildRequires: libreport-gtk-devel # we used to have abrt-applet, now abrt-gui includes it: Provides: abrt-applet = %{version}-%{release} @@ -214,6 +216,7 @@ Requires: abrt-addon-xorg Requires: gdb >= 7.0-3 Requires: elfutils Requires: abrt-gui +Requires: gnome-abrt Requires: abrt-plugin-bodhi Requires: libreport-plugin-logger, libreport-plugin-bugzilla Requires: libreport-plugin-ureport @@ -236,6 +239,18 @@ ABRT DBus service which provides org.freedesktop.problems API on dbus and uses PolicyKit to authorize to access the problem data. +%package python +Summary: ABRT Python API +Group: System Environment/Libraries +Requires: %{name} = %{version}-%{release} +BuildRequires: python-nose +BuildRequires: python-sphinx +BuildArch: noarch + +%description python +High-level API for querying, creating and manipulating +problems handled by ABRT in Python. + %prep %setup -q #RHEL @@ -260,16 +275,10 @@ find $RPM_BUILD_ROOT -name '*.la' -or -name '*.a' | xargs rm -f mkdir -p ${RPM_BUILD_ROOT}/%{_initrddir} mkdir -p $RPM_BUILD_ROOT/var/cache/abrt-di mkdir -p $RPM_BUILD_ROOT/var/run/abrt -mkdir -p $RPM_BUILD_ROOT/var/spool/abrt +mkdir -p $RPM_BUILD_ROOT/var/tmp/abrt mkdir -p $RPM_BUILD_ROOT/var/spool/abrt-upload desktop-file-install \ - --dir ${RPM_BUILD_ROOT}%{_datadir}/applications \ - --vendor %{desktopvendor} \ - --delete-original \ - ${RPM_BUILD_ROOT}%{_datadir}/applications/%{name}.desktop - -desktop-file-install \ --dir ${RPM_BUILD_ROOT}%{_sysconfdir}/xdg/autostart \ src/applet/abrt-applet.desktop @@ -287,6 +296,70 @@ make check %define abrt_gid_uid 173 getent group abrt >/dev/null || groupadd -f -g %{abrt_gid_uid} --system abrt getent passwd abrt >/dev/null || useradd --system -g abrt -u %{abrt_gid_uid} -d /etc/abrt -s /sbin/nologin abrt + +OLD_LOCATION="/var/spool/abrt" +NEW_LOCATION="/var/tmp/abrt" +# $1 == 1 if install; 2 if upgrade +if [ "$1" -eq 2 ] +then + test -d "$OLD_LOCATION" || exit 0 + mkdir -p "$NEW_LOCATION" + + #restorecon "$NEW_LOCATION" + find "$OLD_LOCATION" -maxdepth 1 -type f -exec cp '{}' "$NEW_LOCATION" \; + + for DD in `find "$OLD_LOCATION" -maxdepth 1 -type d` + do + # skip dump location self + if [ "$DD" == "$OLD_LOCATION" ]; then + continue + fi + + # skip symlinks + if [ -L "$DD" ]; then + continue + fi + + # check if time element exists, if so then consider a directory as dump + # directory and move it to the new location + if [ -f "$DD/time" ]; then + NEW_DD="$NEW_LOCATION/"`basename $DD` + + # to be sure we do not override anything + if [ -d "$NEW_DD" ]; then + continue + fi + + if cp --recursive -- "$DD" "$NEW_DD"; then + # owner of dump dir is identified by his group + # so get the owner of dump dir + OWNER_GID=`stat -c "%g" "$DD"` + + # use group's user in case where group contains only single user + if [ $(getent passwd | cut -f3,4,5 -d: | grep -c ":$OWNER_GID:") -eq 1 ]; then + OWNER_UID=`getent passwd | cut -f3,4,5 -d: | grep ":$OWNER_GID:" | cut -f1 -d:` + else + # otherwise get owner from dd's uid element + OWNER_UID=`cat "$NEW_DD/uid"` + fi + + getent passwd "$OWNER_UID" >/dev/null || { + # if user doesn't exist pass the ownership to root + OWNER_UID=0 + } + + # set new schema of ownership + chown --recursive "$OWNER_UID":abrt "$NEW_DD" && { + chmod 770 "$NEW_DD" + find "$NEW_DD" -type d -exec chmod 770 '{}' \; + find "$NEW_DD" -type f -exec chmod 660 '{}' \; + } + fi + fi + done +fi +# doesn't mather if it fails or not for any reason +restorecon -R "$NEW_LOCATION" || true exit 0 %post @@ -487,7 +560,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %config(noreplace) %{_sysconfdir}/libreport/events.d/abrt_event.conf %config(noreplace) %{_sysconfdir}/libreport/events.d/smart_event.conf %config(noreplace) %{_sysconfdir}/libreport/events.d/smolt_event.conf -%dir %attr(0755, abrt, abrt) %{_localstatedir}/spool/%{name} +%dir %attr(0755, abrt, abrt) %{_localstatedir}/tmp/%{name} %dir %attr(0700, abrt, abrt) %{_localstatedir}/spool/%{name}-upload # abrtd runs as root %dir %attr(0755, root, root) %{_localstatedir}/run/%{name} @@ -522,7 +595,6 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_bindir}/abrt-gui %dir %{_datadir}/%{name} # all glade, gtkbuilder and py files for gui -%{_datadir}/applications/%{desktopvendor}-%{name}.desktop %{_datadir}/icons/hicolor/*/apps/* %{_datadir}/icons/hicolor/*/status/* %{_datadir}/%{name}/icons/hicolor/*/status/* @@ -622,7 +694,7 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_sysconfdir}/libreport/events.d/python_event.conf %{_bindir}/abrt-action-analyze-python %{_mandir}/man1/abrt-action-analyze-python.1* -%{python_site}/abrt*.py* +%{python_sitearch}/abrt*.py* %{python_site}/abrt.pth %files cli @@ -649,7 +721,47 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %{_datadir}/polkit-1/actions/abrt_polkit.policy %config(noreplace) %{_sysconfdir}/libreport/events.d/dbus_event.conf +%files python +%{python_sitelib}/problem/ +%{_mandir}/man5/abrt-python.5.gz +%{_defaultdocdir}/%{name}-python-%{version}/examples/ + %changelog +* Mon Feb 04 2013 Jakub Filak 2.1.0-1 +- pkg-config: export defaultdumplocation variable +- configure: set default dump location to /var/tmp/abrt +- abrtd: sanitize mode and ovner of all elements +- updated translation +- abrtd-inotify-flood test: expend it to check for another inotify-related bug +- gnome-abrt is default GUI +- applet: on requrest open gnome-abrt instead of abrt-gui +- Make it so that g_io_channel_read_chars(channel_inotify) does not buffer data. +- multilib fixes +- daemon: unify accessibility check before delete with dbus +- dbus: move dir accessibility check from abrt to libreport +- dbus: user dd_chown instead of own impl. +- allow default dump directory to be configured through cmd line args +- introduce abrt-python +- reporter-bz: post a comment to dup bug, if we found a dup. version 2. +- replace left over magic dd modes by macro +- synchronize default dump dir mode with libreport +- replace all occurrences of hardcoded dump location by a variable +- harvest-vmcore: read dump dir path from configuration +- use lchown when chowning files over dbus +- use lchown when chowning newly created problem directory +- verify-that-report-edits test: fix to account for new CLI interface +- koops: add all x86 TRAP prefixes to list of suspicious strings +- koops: put all suspicious strings to global variable +- applet: extend comment. No code changes +- applet: introduce shortened reporting +- abrt-applet: handle SIGTERM and perform nice termination +- abrt-applet: update the seen list on every possible action +- applet: don't notify outdated new problems +- Add and use "report-cli" event instead of removed "report-cli -r" option +- fixed the relro flags rhbz#812284 +- applet: unref unused GIOChannel +- Resolves: #892230, #895742 + * Thu Dec 20 2012 Jiri Moskovcak 2.0.20-1 - New version 2.0.20 - Fix typo: usefull->useful diff --git a/sources b/sources index 4e227c2..7cf78b1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -ac614c632546897c1dce8d9c691dea28 abrt-2.0.20.tar.gz +4327e9d2d730d0b7677b4a5f0f792e08 abrt-2.1.0.tar.gz