diff options
author | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-11-02 15:37:30 +0100 |
---|---|---|
committer | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-11-02 15:37:30 +0100 |
commit | 90d6a5be050eac9d0f6dc7a7216e412227312bc5 (patch) | |
tree | ef1b16a843915004549c0c895717a84c5bf19c38 | |
parent | e1be4826551cc7aa396d0e4b28770fb8eb12946b (diff) | |
parent | 1eec1e1b5c5f5c7a032b32165139274b170ec06f (diff) | |
download | abrt-90d6a5be050eac9d0f6dc7a7216e412227312bc5.tar.gz abrt-90d6a5be050eac9d0f6dc7a7216e412227312bc5.tar.xz abrt-90d6a5be050eac9d0f6dc7a7216e412227312bc5.zip |
Merge branch 'master' of ssh://git.fedorahosted.org/git/abrt
-rw-r--r-- | lib/Utils/DBusCommon.h | 6 | ||||
-rwxr-xr-x | scripts/dbg_mkrpm | 27 | ||||
-rwxr-xr-x | scripts/dbg_rpmbuildlocal | 11 | ||||
-rwxr-xr-x | scripts/dbg_rpminst | 23 | ||||
-rwxr-xr-x | scripts/dbg_unpkrpm | 8 | ||||
-rw-r--r-- | src/Applet/Applet.cpp | 2 | ||||
-rw-r--r-- | src/CLI/dbus.cpp | 8 | ||||
-rw-r--r-- | src/Daemon/CommLayerServerDBus.cpp | 6 | ||||
-rw-r--r-- | src/Daemon/Daemon.cpp | 15 | ||||
-rw-r--r-- | src/Daemon/com.redhat.abrt.service | 8 |
10 files changed, 95 insertions, 19 deletions
diff --git a/lib/Utils/DBusCommon.h b/lib/Utils/DBusCommon.h index b3e3af2c..2e3ed8a5 100644 --- a/lib/Utils/DBusCommon.h +++ b/lib/Utils/DBusCommon.h @@ -22,8 +22,8 @@ #include "CrashTypes.h" -#define CC_DBUS_NAME "com.redhat.abrt" -#define CC_DBUS_PATH "/com/redhat/abrt" -#define CC_DBUS_IFACE "com.redhat.abrt" +#define ABRTD_DBUS_NAME "com.redhat.abrt" +#define ABRTD_DBUS_PATH "/com/redhat/abrt" +#define ABRTD_DBUS_IFACE "com.redhat.abrt" #endif diff --git a/scripts/dbg_mkrpm b/scripts/dbg_mkrpm new file mode 100755 index 00000000..28b040e5 --- /dev/null +++ b/scripts/dbg_mkrpm @@ -0,0 +1,27 @@ +#!/bin/sh + +test -f abrt.spec || exit 1 +ABRTVER=`grep ^Version: abrt.spec | head -n1 | sed 's/.* //'` + +if ! test -f configure; then + echo "Autogenerating configure" + ./autogen.sh || { rm -f configure; exit 1; } +fi + + +T=/tmp/$$_$RANDOM +test -d "$T" && exit 1 + +rm -rf BUILDROOT "abrt-$ABRTVER" "abrt-$ABRTVER".tar "abrt-$ABRTVER".tar.gz \ + abrt*.rpm \ + 2>/dev/null + +mkdir -p "$T"/"abrt-$ABRTVER" || exit +cp -a * "$T"/"abrt-$ABRTVER" || exit +(cd "$T" && tar -c "abrt-$ABRTVER") >"abrt-$ABRTVER".tar || exit +rm -rf "$T" || exit + +gzip "abrt-$ABRTVER".tar || exit + + +./dbg_rpmbuildlocal -bb abrt.spec 2>&1 | tee -a "$0.log" diff --git a/scripts/dbg_rpmbuildlocal b/scripts/dbg_rpmbuildlocal new file mode 100755 index 00000000..e0ed7add --- /dev/null +++ b/scripts/dbg_rpmbuildlocal @@ -0,0 +1,11 @@ +#!/bin/sh + +exec rpmbuild \ +--define "_topdir $PWD" \ +--define "_builddir $PWD" \ +--define "_rpmdir $PWD" \ +--define "_sourcedir $PWD" \ +--define "_specdir $PWD" \ +--define "_srcrpmdir $PWD" \ +--define "_build_name_fmt %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm" \ +"$@" diff --git a/scripts/dbg_rpminst b/scripts/dbg_rpminst new file mode 100755 index 00000000..8255777a --- /dev/null +++ b/scripts/dbg_rpminst @@ -0,0 +1,23 @@ +#!/bin/sh + +while rpm -qa | grep abrt >/dev/null; do + rpm -qa | grep abrt | while read package; do + echo "$package: rpm -e `basename "$package" .rpm`" + rpm -e "`basename "$package" .rpm`" + done +done + +while true; do + r=0 + for package in *.rpm; do + test -f "$package" || continue + # Is it installed? + rpm -q "`basename "$package" .rpm`" >/dev/null && continue + # Try to install, record failure + echo "$package: rpm -i `basename "$package" .rpm`" + rpm -i "$package" || r=1 + done + test $r = 0 && break +done + +killall -HUP dbus-daemon diff --git a/scripts/dbg_unpkrpm b/scripts/dbg_unpkrpm new file mode 100755 index 00000000..143d4afa --- /dev/null +++ b/scripts/dbg_unpkrpm @@ -0,0 +1,8 @@ +#!/bin/sh + +rm -rf UNPACKED +mkdir -p UNPACKED + +for rpm in *.rpm; do + rpm2cpio "$rpm" | ( cd UNPACKED && cpio -i --make-directories) +done diff --git a/src/Applet/Applet.cpp b/src/Applet/Applet.cpp index c2d5467d..ea58b253 100644 --- a/src/Applet/Applet.cpp +++ b/src/Applet/Applet.cpp @@ -246,7 +246,7 @@ int main(int argc, char** argv) "Problem connecting to dbus, or applet is already running"); /* Show disabled icon if daemon is not running */ - if (!dbus_bus_name_has_owner(system_conn, CC_DBUS_NAME, &err)) + if (!dbus_bus_name_has_owner(system_conn, ABRTD_DBUS_NAME, &err)) { const char* msg = _("ABRT service is not running"); puts(msg); diff --git a/src/CLI/dbus.cpp b/src/CLI/dbus.cpp index f59633ec..3f7b0ae8 100644 --- a/src/CLI/dbus.cpp +++ b/src/CLI/dbus.cpp @@ -27,7 +27,7 @@ DBusConnection* s_dbus_conn; /* helpers */ static DBusMessage* new_call_msg(const char* method) { - DBusMessage* msg = dbus_message_new_method_call(CC_DBUS_NAME, CC_DBUS_PATH, CC_DBUS_IFACE, method); + DBusMessage* msg = dbus_message_new_method_call(ABRTD_DBUS_NAME, ABRTD_DBUS_PATH, ABRTD_DBUS_IFACE, method); if (!msg) die_out_of_memory(); return msg; @@ -72,7 +72,7 @@ static DBusMessage* send_get_reply_and_unref(DBusMessage* msg) DBusError err; dbus_error_init(&err); - if (dbus_message_is_signal(received, CC_DBUS_IFACE, "Update")) + if (dbus_message_is_signal(received, ABRTD_DBUS_IFACE, "Update")) { const char *update_msg; if (!dbus_message_get_args(received, &err, @@ -83,7 +83,7 @@ static DBusMessage* send_get_reply_and_unref(DBusMessage* msg) } printf(">> %s\n", update_msg); } - else if (dbus_message_is_signal(received, CC_DBUS_IFACE, "Warning")) + else if (dbus_message_is_signal(received, ABRTD_DBUS_IFACE, "Warning")) { const char *warning_msg; if (!dbus_message_get_args(received, &err, @@ -181,5 +181,5 @@ void handle_dbus_err(bool error_flag, DBusError *err) error_msg_and_die( "error requesting DBus name %s, possible reasons: " "abrt run by non-root; dbus config is incorrect", - CC_DBUS_NAME); + ABRTD_DBUS_NAME); } diff --git a/src/Daemon/CommLayerServerDBus.cpp b/src/Daemon/CommLayerServerDBus.cpp index dd904e4f..7fa75313 100644 --- a/src/Daemon/CommLayerServerDBus.cpp +++ b/src/Daemon/CommLayerServerDBus.cpp @@ -28,7 +28,7 @@ static DBusMessage* new_signal_msg(const char* member, const char* peer = NULL) { /* path, interface, member name */ - DBusMessage* msg = dbus_message_new_signal(CC_DBUS_PATH, CC_DBUS_IFACE, member); + DBusMessage* msg = dbus_message_new_signal(ABRTD_DBUS_PATH, ABRTD_DBUS_IFACE, member); if (!msg) die_out_of_memory(); /* Send unicast dbus signal if peer is known */ @@ -537,7 +537,7 @@ static void handle_dbus_err(bool error_flag, DBusError *err) error_msg_and_die( "Error requesting DBus name %s, possible reasons: " "abrt run by non-root; dbus config is incorrect", - CC_DBUS_NAME); + ABRTD_DBUS_NAME); } CCommLayerServerDBus::CCommLayerServerDBus() @@ -553,7 +553,7 @@ CCommLayerServerDBus::CCommLayerServerDBus() attach_dbus_conn_to_glib_main_loop(conn, "/com/redhat/abrt", message_received); VERB3 log("dbus_bus_request_name"); - int rc = dbus_bus_request_name(conn, CC_DBUS_NAME, DBUS_NAME_FLAG_REPLACE_EXISTING, &err); + int rc = dbus_bus_request_name(conn, ABRTD_DBUS_NAME, DBUS_NAME_FLAG_REPLACE_EXISTING, &err); //maybe check that r == DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER instead? handle_dbus_err(rc < 0, &err); VERB3 log("dbus init done"); diff --git a/src/Daemon/Daemon.cpp b/src/Daemon/Daemon.cpp index 188cd0d1..0e81dfdc 100644 --- a/src/Daemon/Daemon.cpp +++ b/src/Daemon/Daemon.cpp @@ -106,8 +106,9 @@ typedef struct cron_callback_data_t } cron_callback_data_t; -static uint8_t s_sig_caught; +static uint8_t s_sig_caught; /* must be one byte */ static int s_signal_pipe[2]; +static int s_signal_pipe_write = -1; static unsigned s_timeout; static bool s_exiting; @@ -443,10 +444,12 @@ static int Lock() /* we leak opened lfd intentionally */ } -static void handle_fatal_signal(int signal) +static void handle_fatal_signal(int signo) { - s_sig_caught = signal; - write(s_signal_pipe[1], &s_sig_caught, 1); + s_sig_caught = signo; + VERB3 log("Got signal %d", signo); + if (s_signal_pipe_write >= 0) + write(s_signal_pipe_write, &s_sig_caught, 1); } /* Signal pipe handler */ @@ -458,6 +461,7 @@ static gboolean handle_signal_cb(GIOChannel *gio, GIOCondition condition, gpoint if (len == 1) { /* we did receive a signal */ + VERB3 log("Got signal %d through signal pipe", signo); s_exiting = 1; return TRUE; } @@ -828,6 +832,9 @@ int main(int argc, char** argv) start_syslog_logging(); } + /* Only now we want signal pipe to work */ + s_signal_pipe_write = s_signal_pipe[1]; + /* Enter the event loop */ try { diff --git a/src/Daemon/com.redhat.abrt.service b/src/Daemon/com.redhat.abrt.service index e12c7ee3..b251ef7f 100644 --- a/src/Daemon/com.redhat.abrt.service +++ b/src/Daemon/com.redhat.abrt.service @@ -1,7 +1,7 @@ [D-BUS Service] Name=com.redhat.abrt -# We use small timeout of 33 seconds in order to make -# "abrtd exited while clients existed but were idle" situations -# to be triggered more often and thus better tested -Exec=/usr/sbin/abrtd -ds -t33 +# For testing, you may add -t33 to use small timeout of 33 seconds. +# This will make "abrtd exited while clients existed but were idle" +# situations easy to trigger +Exec=/usr/sbin/abrtd -ds User=root |