|
Nikola Pajkovsky |
8750f0 |
From 9bbdff4c7e766743a74e204f464f75936656fae7 Mon Sep 17 00:00:00 2001
|
|
Nikola Pajkovsky |
8750f0 |
From: Nikola Pajkovsky <npajkovs@redhat.com>
|
|
Nikola Pajkovsky |
8750f0 |
Date: Wed, 20 Jul 2011 14:45:42 +0200
|
|
Nikola Pajkovsky |
8750f0 |
Subject: [PATCH] rhbz#671354 - [RFE] Configurable core dump location
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
Signed-off-by: Nikola Pajkovsky <npajkovs@redhat.com>
|
|
Nikola Pajkovsky |
8750f0 |
(cherry picked from commit 6c1e469bb663bde9501ed62dbec68fbff65aadbf)
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
Conflicts:
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
src/cli/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
src/cli/list.c
|
|
Nikola Pajkovsky |
8750f0 |
src/hooks/abrt-hook-ccpp.c
|
|
Nikola Pajkovsky |
8750f0 |
src/lib/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
src/lib/abrt_conf.c
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
diff --git a/configure.ac b/configure.ac
|
|
Nikola Pajkovsky |
8750f0 |
index d53bcd1..21cc302 100644
|
|
Nikola Pajkovsky |
8750f0 |
--- a/configure.ac
|
|
Nikola Pajkovsky |
8750f0 |
+++ b/configure.ac
|
|
Nikola Pajkovsky |
8750f0 |
@@ -100,14 +100,8 @@ PLUGINS_LIB_DIR='${libdir}/${PACKAGE_NAME}'
|
|
Nikola Pajkovsky |
8750f0 |
ENABLE_SOCKET_OR_DBUS='-DENABLE_DBUS=1'
|
|
Nikola Pajkovsky |
8750f0 |
LIBEXEC_DIR='${libexecdir}'
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
-DEBUG_DUMPS_DIR='${localstatedir}/spool/${PACKAGE_NAME}'
|
|
Nikola Pajkovsky |
8750f0 |
DEBUG_INFO_DIR='${localstatedir}/cache/${PACKAGE_NAME}-di'
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
-AC_ARG_WITH(debugdumpsdir,
|
|
Nikola Pajkovsky |
8750f0 |
- [AS_HELP_STRING([--with-debugdumpdir=DIR],
|
|
Nikola Pajkovsky |
8750f0 |
- [Directory where debugdumps are created])],
|
|
Nikola Pajkovsky |
8750f0 |
- [DEBUG_DUMPS_DIR="$withval"])
|
|
Nikola Pajkovsky |
8750f0 |
-
|
|
Nikola Pajkovsky |
8750f0 |
AC_ARG_WITH(debuginfosdir,
|
|
Nikola Pajkovsky |
8750f0 |
[AS_HELP_STRING([--with-debuginfodir=DIR],
|
|
Nikola Pajkovsky |
8750f0 |
[Directory where debuginfo is stored])],
|
|
Nikola Pajkovsky |
8750f0 |
@@ -120,7 +114,6 @@ AC_SUBST(REPORT_PLUGINS_CONF_DIR)
|
|
Nikola Pajkovsky |
8750f0 |
AC_SUBST(EVENTS_CONF_DIR)
|
|
Nikola Pajkovsky |
8750f0 |
AC_SUBST(EVENTS_DIR)
|
|
Nikola Pajkovsky |
8750f0 |
AC_SUBST(PLUGINS_LIB_DIR)
|
|
Nikola Pajkovsky |
8750f0 |
-AC_SUBST(DEBUG_DUMPS_DIR)
|
|
Nikola Pajkovsky |
8750f0 |
AC_SUBST(DEBUG_INFO_DIR)
|
|
Nikola Pajkovsky |
8750f0 |
AC_SUBST(LIBEXEC_DIR)
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
diff --git a/src/applet/Makefile.am b/src/applet/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
index db5266d..247bee2 100644
|
|
Nikola Pajkovsky |
8750f0 |
--- a/src/applet/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
+++ b/src/applet/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
@@ -9,7 +9,6 @@ abrt_applet_CPPFLAGS = \
|
|
Nikola Pajkovsky |
8750f0 |
-DBIN_DIR=\"$(bindir)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DVAR_RUN=\"$(VAR_RUN)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DCONF_DIR=\"$(CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
- -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_CONF_DIR=\"$(PLUGINS_CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DICON_DIR=\"${datadir}/abrt/icons/hicolor/48x48/status\" \
|
|
Nikola Pajkovsky |
8750f0 |
diff --git a/src/daemon/Makefile.am b/src/daemon/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
index 9f4db01..70a1641 100644
|
|
Nikola Pajkovsky |
8750f0 |
--- a/src/daemon/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
+++ b/src/daemon/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
@@ -23,7 +23,6 @@ abrtd_CPPFLAGS = \
|
|
Nikola Pajkovsky |
8750f0 |
-DBIN_DIR=\"$(bindir)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DVAR_RUN=\"$(VAR_RUN)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DCONF_DIR=\"$(CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
- -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DDEBUG_INFO_DIR=\"$(DEBUG_INFO_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_CONF_DIR=\"$(PLUGINS_CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
@@ -47,7 +46,6 @@ abrt_server_CPPFLAGS = \
|
|
Nikola Pajkovsky |
8750f0 |
-DBIN_DIR=\"$(bindir)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DVAR_RUN=\"$(VAR_RUN)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DCONF_DIR=\"$(CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
- -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DDEBUG_INFO_DIR=\"$(DEBUG_INFO_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_CONF_DIR=\"$(PLUGINS_CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
@@ -69,7 +67,6 @@ abrt_action_save_package_data_CPPFLAGS = \
|
|
Nikola Pajkovsky |
8750f0 |
-DVAR_RUN=\"$(VAR_RUN)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DCONF_DIR=\"$(CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DLOCALSTATEDIR='"$(localstatedir)"' \
|
|
Nikola Pajkovsky |
8750f0 |
- -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DDEBUG_INFO_DIR=\"$(DEBUG_INFO_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_CONF_DIR=\"$(PLUGINS_CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
diff --git a/src/daemon/abrt-server.c b/src/daemon/abrt-server.c
|
|
Nikola Pajkovsky |
8750f0 |
index 8153ad6..78e4ebd 100644
|
|
Nikola Pajkovsky |
8750f0 |
--- a/src/daemon/abrt-server.c
|
|
Nikola Pajkovsky |
8750f0 |
+++ b/src/daemon/abrt-server.c
|
|
Nikola Pajkovsky |
8750f0 |
@@ -100,7 +100,8 @@ static int create_debug_dump()
|
|
Nikola Pajkovsky |
8750f0 |
This directory is renamed to final directory name after
|
|
Nikola Pajkovsky |
8750f0 |
all files have been stored into it.
|
|
Nikola Pajkovsky |
8750f0 |
*/
|
|
Nikola Pajkovsky |
8750f0 |
- char *path = xasprintf(DEBUG_DUMPS_DIR"/%s-%s-%u.new",
|
|
Nikola Pajkovsky |
8750f0 |
+ char *path = xasprintf("%s/%s-%s-%u.new",
|
|
Nikola Pajkovsky |
8750f0 |
+ g_settings_dump_location,
|
|
Nikola Pajkovsky |
8750f0 |
dir_basename,
|
|
Nikola Pajkovsky |
8750f0 |
iso_date_string(NULL),
|
|
Nikola Pajkovsky |
8750f0 |
pid);
|
|
Nikola Pajkovsky |
8750f0 |
@@ -150,8 +151,8 @@ static int create_debug_dump()
|
|
Nikola Pajkovsky |
8750f0 |
*/
|
|
Nikola Pajkovsky |
8750f0 |
unsigned maxsize = g_settings_nMaxCrashReportsSize + g_settings_nMaxCrashReportsSize / 4;
|
|
Nikola Pajkovsky |
8750f0 |
maxsize |= 63;
|
|
Nikola Pajkovsky |
8750f0 |
- check_free_space(maxsize);
|
|
Nikola Pajkovsky |
8750f0 |
- trim_debug_dumps(DEBUG_DUMPS_DIR, maxsize * (double)(1024*1024), path);
|
|
Nikola Pajkovsky |
8750f0 |
+ check_free_space(maxsize, g_settings_dump_location);
|
|
Nikola Pajkovsky |
8750f0 |
+ trim_debug_dumps(g_settings_dump_location, maxsize * (double)(1024*1024), path);
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
free(path);
|
|
Nikola Pajkovsky |
8750f0 |
@@ -162,15 +163,19 @@ static int create_debug_dump()
|
|
Nikola Pajkovsky |
8750f0 |
/* Remove dump dir */
|
|
Nikola Pajkovsky |
8750f0 |
static int delete_path(const char *dump_dir_name)
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
- /* If doesn't start with "DEBUG_DUMPS_DIR/"... */
|
|
Nikola Pajkovsky |
8750f0 |
- if (strncmp(dump_dir_name, DEBUG_DUMPS_DIR"/", strlen(DEBUG_DUMPS_DIR"/")) != 0
|
|
Nikola Pajkovsky |
8750f0 |
+ /* If doesn't start with "g_settings_dump_location/"... */
|
|
Nikola Pajkovsky |
8750f0 |
+ char *dump_location = xasprintf("%s/", g_settings_dump_location);
|
|
Nikola Pajkovsky |
8750f0 |
+ log("%s", dump_location);
|
|
Nikola Pajkovsky |
8750f0 |
+ if (strncmp(dump_dir_name, dump_location, strlen(dump_location)) != 0
|
|
Nikola Pajkovsky |
8750f0 |
/* or contains "/." anywhere (-> might contain ".." component) */
|
|
Nikola Pajkovsky |
8750f0 |
- || strstr(dump_dir_name + strlen(DEBUG_DUMPS_DIR), "/.")
|
|
Nikola Pajkovsky |
8750f0 |
+ || strstr(dump_dir_name + strlen(g_settings_dump_location), "/.")
|
|
Nikola Pajkovsky |
8750f0 |
) {
|
|
Nikola Pajkovsky |
8750f0 |
/* Then refuse to operate on it (someone is attacking us??) */
|
|
Nikola Pajkovsky |
8750f0 |
error_msg("Bad dump directory name '%s', not deleting", dump_dir_name);
|
|
Nikola Pajkovsky |
8750f0 |
+ free(dump_location);
|
|
Nikola Pajkovsky |
8750f0 |
return 400; /* Bad Request */
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
+ free(dump_location);
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
struct dump_dir *dd = dd_opendir(dump_dir_name, /*flags:*/ 0);
|
|
Nikola Pajkovsky |
8750f0 |
if (!dd)
|
|
Nikola Pajkovsky |
8750f0 |
@@ -491,10 +496,14 @@ int main(int argc, char **argv)
|
|
Nikola Pajkovsky |
8750f0 |
client_uid = cr.uid;
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
+ load_abrt_conf();
|
|
Nikola Pajkovsky |
8750f0 |
+
|
|
Nikola Pajkovsky |
8750f0 |
int r = perform_http_xact();
|
|
Nikola Pajkovsky |
8750f0 |
if (r == 0)
|
|
Nikola Pajkovsky |
8750f0 |
r = 200;
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
+ free_abrt_conf_data();
|
|
Nikola Pajkovsky |
8750f0 |
+
|
|
Nikola Pajkovsky |
8750f0 |
printf("HTTP/1.1 %u \r\n\r\n", r);
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
return (r >= 400); /* Error if 400+ */
|
|
Nikola Pajkovsky |
8750f0 |
diff --git a/src/daemon/abrt.conf b/src/daemon/abrt.conf
|
|
Nikola Pajkovsky |
8750f0 |
index cb0dbbb..58a7019 100644
|
|
Nikola Pajkovsky |
8750f0 |
--- a/src/daemon/abrt.conf
|
|
Nikola Pajkovsky |
8750f0 |
+++ b/src/daemon/abrt.conf
|
|
Nikola Pajkovsky |
8750f0 |
@@ -27,3 +27,8 @@ BlackListedPaths = /usr/share/doc/*,*/example*
|
|
Nikola Pajkovsky |
8750f0 |
# Max size for crash storage [MiB] or 0 for unlimited
|
|
Nikola Pajkovsky |
8750f0 |
#
|
|
Nikola Pajkovsky |
8750f0 |
MaxCrashReportsSize = 1000
|
|
Nikola Pajkovsky |
8750f0 |
+
|
|
Nikola Pajkovsky |
8750f0 |
+# Specify where you want to store coredumps and all files which are needed for
|
|
Nikola Pajkovsky |
8750f0 |
+# reporting. (default:/var/spool/abrt)
|
|
Nikola Pajkovsky |
8750f0 |
+#
|
|
Nikola Pajkovsky |
8750f0 |
+#DumpLocation = /var/spool/abrt
|
|
Nikola Pajkovsky |
8750f0 |
diff --git a/src/daemon/abrtd.c b/src/daemon/abrtd.c
|
|
Nikola Pajkovsky |
8750f0 |
index 8a22ab8..3da3130 100644
|
|
Nikola Pajkovsky |
8750f0 |
--- a/src/daemon/abrtd.c
|
|
Nikola Pajkovsky |
8750f0 |
+++ b/src/daemon/abrtd.c
|
|
Nikola Pajkovsky |
8750f0 |
@@ -290,7 +290,7 @@ static int is_crash_a_dup(const char *dump_dir_name, void *param)
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
/* Scan crash dumps looking for a dup */
|
|
Nikola Pajkovsky |
8750f0 |
//TODO: explain why this is safe wrt concurrent runs
|
|
Nikola Pajkovsky |
8750f0 |
- DIR *dir = opendir(DEBUG_DUMPS_DIR);
|
|
Nikola Pajkovsky |
8750f0 |
+ DIR *dir = opendir(g_settings_dump_location);
|
|
Nikola Pajkovsky |
8750f0 |
if (dir != NULL)
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
struct dirent *dent;
|
|
Nikola Pajkovsky |
8750f0 |
@@ -301,7 +301,7 @@ static int is_crash_a_dup(const char *dump_dir_name, void *param)
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
int different;
|
|
Nikola Pajkovsky |
8750f0 |
char *uid, *uuid;
|
|
Nikola Pajkovsky |
8750f0 |
- char *dump_dir_name2 = concat_path_file(DEBUG_DUMPS_DIR, dent->d_name);
|
|
Nikola Pajkovsky |
8750f0 |
+ char *dump_dir_name2 = concat_path_file(g_settings_dump_location, dent->d_name);
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
if (strcmp(dump_dir_name, dump_dir_name2) == 0)
|
|
Nikola Pajkovsky |
8750f0 |
goto next; /* we are never a dup of ourself */
|
|
Nikola Pajkovsky |
8750f0 |
@@ -518,7 +518,8 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin
|
|
Nikola Pajkovsky |
8750f0 |
if (fork() == 0)
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
xchdir(dir);
|
|
Nikola Pajkovsky |
8750f0 |
- execlp("abrt-handle-upload", "abrt-handle-upload", DEBUG_DUMPS_DIR, dir, name, (char*)NULL);
|
|
Nikola Pajkovsky |
8750f0 |
+ execlp("abrt-handle-upload", "abrt-handle-upload",
|
|
Nikola Pajkovsky |
8750f0 |
+ g_settings_dump_location, dir, name, (char*)NULL);
|
|
Nikola Pajkovsky |
8750f0 |
error_msg_and_die("Can't execute '%s'", "abrt-handle-upload");
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
@@ -543,13 +544,14 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
char *worst_dir = NULL;
|
|
Nikola Pajkovsky |
8750f0 |
while (g_settings_nMaxCrashReportsSize > 0
|
|
Nikola Pajkovsky |
8750f0 |
- && get_dirsize_find_largest_dir(DEBUG_DUMPS_DIR, &worst_dir, name) / (1024*1024) >= g_settings_nMaxCrashReportsSize
|
|
Nikola Pajkovsky |
8750f0 |
+ && get_dirsize_find_largest_dir(g_settings_dump_location, &worst_dir, name) / (1024*1024) >= g_settings_nMaxCrashReportsSize
|
|
Nikola Pajkovsky |
8750f0 |
&& worst_dir
|
|
Nikola Pajkovsky |
8750f0 |
) {
|
|
Nikola Pajkovsky |
8750f0 |
- log("Size of '%s' >= %u MB, deleting '%s'", DEBUG_DUMPS_DIR, g_settings_nMaxCrashReportsSize, worst_dir);
|
|
Nikola Pajkovsky |
8750f0 |
+ log("Size of '%s' >= %u MB, deleting '%s'",
|
|
Nikola Pajkovsky |
8750f0 |
+ g_settings_dump_location, g_settings_nMaxCrashReportsSize, worst_dir);
|
|
Nikola Pajkovsky |
8750f0 |
send_dbus_sig_QuotaExceeded(_("The size of the report exceeded the quota. Please check system's MaxCrashReportsSize value in abrt.conf."));
|
|
Nikola Pajkovsky |
8750f0 |
/* deletes both directory and DB record */
|
|
Nikola Pajkovsky |
8750f0 |
- char *d = concat_path_file(DEBUG_DUMPS_DIR, worst_dir);
|
|
Nikola Pajkovsky |
8750f0 |
+ char *d = concat_path_file(g_settings_dump_location, worst_dir);
|
|
Nikola Pajkovsky |
8750f0 |
free(worst_dir);
|
|
Nikola Pajkovsky |
8750f0 |
worst_dir = NULL;
|
|
Nikola Pajkovsky |
8750f0 |
delete_dump_dir(d);
|
|
Nikola Pajkovsky |
8750f0 |
@@ -559,7 +561,7 @@ static gboolean handle_inotify_cb(GIOChannel *gio, GIOCondition condition, gpoin
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
char *fullname = NULL;
|
|
Nikola Pajkovsky |
8750f0 |
problem_data_t *problem_data = NULL;
|
|
Nikola Pajkovsky |
8750f0 |
- fullname = concat_path_file(DEBUG_DUMPS_DIR, name);
|
|
Nikola Pajkovsky |
8750f0 |
+ fullname = concat_path_file(g_settings_dump_location, name);
|
|
Nikola Pajkovsky |
8750f0 |
mw_result_t res = LoadDebugDump(fullname, &problem_data);
|
|
Nikola Pajkovsky |
8750f0 |
const char *first = problem_data ? get_problem_item_content_or_NULL(problem_data, CD_DUMPDIR) : NULL;
|
|
Nikola Pajkovsky |
8750f0 |
switch (res)
|
|
Nikola Pajkovsky |
8750f0 |
@@ -693,7 +695,7 @@ static void sanitize_dump_dir_rights()
|
|
Nikola Pajkovsky |
8750f0 |
* us with thousands of bogus or malicious dumps */
|
|
Nikola Pajkovsky |
8750f0 |
/* 07000 bits are setuid, setgit, and sticky, and they must be unset */
|
|
Nikola Pajkovsky |
8750f0 |
/* 00777 bits are usual "rwxrwxrwx" access rights */
|
|
Nikola Pajkovsky |
8750f0 |
- ensure_writable_dir(DEBUG_DUMPS_DIR, 0755, "abrt");
|
|
Nikola Pajkovsky |
8750f0 |
+ ensure_writable_dir(g_settings_dump_location, 0755, "abrt");
|
|
Nikola Pajkovsky |
8750f0 |
/* debuginfo cache */
|
|
Nikola Pajkovsky |
8750f0 |
ensure_writable_dir(DEBUG_INFO_DIR, 0775, "abrt");
|
|
Nikola Pajkovsky |
8750f0 |
/* temp dir */
|
|
Nikola Pajkovsky |
8750f0 |
@@ -823,10 +825,10 @@ int main(int argc, char** argv)
|
|
Nikola Pajkovsky |
8750f0 |
perror_msg_and_die("inotify_init failed");
|
|
Nikola Pajkovsky |
8750f0 |
close_on_exec_on(inotify_fd);
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
- /* Watching DEBUG_DUMPS_DIR for new files... */
|
|
Nikola Pajkovsky |
8750f0 |
- if (inotify_add_watch(inotify_fd, DEBUG_DUMPS_DIR, IN_CREATE | IN_MOVED_TO) < 0)
|
|
Nikola Pajkovsky |
8750f0 |
+ /* Watching 'g_settings_dump_location' for new files... */
|
|
Nikola Pajkovsky |
8750f0 |
+ if (inotify_add_watch(inotify_fd, g_settings_dump_location, IN_CREATE | IN_MOVED_TO) < 0)
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
- perror_msg("inotify_add_watch failed on '%s'", DEBUG_DUMPS_DIR);
|
|
Nikola Pajkovsky |
8750f0 |
+ perror_msg("inotify_add_watch failed on '%s'", g_settings_dump_location);
|
|
Nikola Pajkovsky |
8750f0 |
goto init_error;
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
if (g_settings_sWatchCrashdumpArchiveDir)
|
|
Nikola Pajkovsky |
8750f0 |
diff --git a/src/gui-gtk/Makefile.am b/src/gui-gtk/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
index 5025082..a2bb755 100644
|
|
Nikola Pajkovsky |
8750f0 |
--- a/src/gui-gtk/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
+++ b/src/gui-gtk/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
@@ -9,7 +9,6 @@ abrt_gui_CFLAGS = \
|
|
Nikola Pajkovsky |
8750f0 |
-DBIN_DIR=\"$(bindir)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DVAR_RUN=\"$(VAR_RUN)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DCONF_DIR=\"$(CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
- -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_CONF_DIR=\"$(PLUGINS_CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DICON_DIR=\"${datadir}/abrt/icons/hicolor/48x48/status\" \
|
|
Nikola Pajkovsky |
8750f0 |
@@ -25,7 +24,8 @@ abrt_gui_LDADD = \
|
|
Nikola Pajkovsky |
8750f0 |
-lglib-2.0 \
|
|
Nikola Pajkovsky |
8750f0 |
-lgthread-2.0 \
|
|
Nikola Pajkovsky |
8750f0 |
$(GTK_LIBS) \
|
|
Nikola Pajkovsky |
8750f0 |
- $(LIBREPORT_GTK_LIBS)
|
|
Nikola Pajkovsky |
8750f0 |
+ $(LIBREPORT_GTK_LIBS) \
|
|
Nikola Pajkovsky |
8750f0 |
+ ../lib/libabrt.la
|
|
Nikola Pajkovsky |
8750f0 |
# $(LIBNOTIFY_LIBS)
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
#test_report_SOURCES = \
|
|
Nikola Pajkovsky |
8750f0 |
diff --git a/src/gui-gtk/main.c b/src/gui-gtk/main.c
|
|
Nikola Pajkovsky |
8750f0 |
index e465d7b..2e45090 100644
|
|
Nikola Pajkovsky |
8750f0 |
--- a/src/gui-gtk/main.c
|
|
Nikola Pajkovsky |
8750f0 |
+++ b/src/gui-gtk/main.c
|
|
Nikola Pajkovsky |
8750f0 |
@@ -721,7 +721,6 @@ int main(int argc, char **argv)
|
|
Nikola Pajkovsky |
8750f0 |
"\b [-vp] [DIR]...\n"
|
|
Nikola Pajkovsky |
8750f0 |
"\n"
|
|
Nikola Pajkovsky |
8750f0 |
"Shows list of ABRT dump directories in specified DIR(s)\n"
|
|
Nikola Pajkovsky |
8750f0 |
- "(default DIRs: "DEBUG_DUMPS_DIR" $HOME/.abrt/spool)"
|
|
Nikola Pajkovsky |
8750f0 |
);
|
|
Nikola Pajkovsky |
8750f0 |
enum {
|
|
Nikola Pajkovsky |
8750f0 |
OPT_v = 1 << 0,
|
|
Nikola Pajkovsky |
8750f0 |
@@ -739,8 +738,9 @@ int main(int argc, char **argv)
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
GtkWidget *main_window = create_main_window();
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
+ load_abrt_conf();
|
|
Nikola Pajkovsky |
8750f0 |
const char *default_dirs[] = {
|
|
Nikola Pajkovsky |
8750f0 |
- "/var/spool/abrt",
|
|
Nikola Pajkovsky |
8750f0 |
+ g_settings_dump_location,
|
|
Nikola Pajkovsky |
8750f0 |
NULL,
|
|
Nikola Pajkovsky |
8750f0 |
NULL,
|
|
Nikola Pajkovsky |
8750f0 |
};
|
|
Nikola Pajkovsky |
8750f0 |
@@ -777,5 +777,6 @@ int main(int argc, char **argv)
|
|
Nikola Pajkovsky |
8750f0 |
/* Enter main loop */
|
|
Nikola Pajkovsky |
8750f0 |
gtk_main();
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
+ free_abrt_conf_data();
|
|
Nikola Pajkovsky |
8750f0 |
return 0;
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
diff --git a/src/hooks/Makefile.am b/src/hooks/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
index 95cd363..f202776 100644
|
|
Nikola Pajkovsky |
8750f0 |
--- a/src/hooks/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
+++ b/src/hooks/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
@@ -14,7 +14,6 @@ abrt_hook_ccpp_SOURCES = \
|
|
Nikola Pajkovsky |
8750f0 |
abrt_hook_ccpp_CPPFLAGS = \
|
|
Nikola Pajkovsky |
8750f0 |
-I$(srcdir)/../include \
|
|
Nikola Pajkovsky |
8750f0 |
-I$(srcdir)/../lib \
|
|
Nikola Pajkovsky |
8750f0 |
- -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DCONF_DIR=\"$(CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DVAR_RUN=\"$(VAR_RUN)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_CONF_DIR=\"$(PLUGINS_CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
diff --git a/src/hooks/abrt-hook-ccpp.c b/src/hooks/abrt-hook-ccpp.c
|
|
Nikola Pajkovsky |
8750f0 |
index da3b337..5d837c3 100644
|
|
Nikola Pajkovsky |
8750f0 |
--- a/src/hooks/abrt-hook-ccpp.c
|
|
Nikola Pajkovsky |
8750f0 |
+++ b/src/hooks/abrt-hook-ccpp.c
|
|
Nikola Pajkovsky |
8750f0 |
@@ -309,13 +309,11 @@ int main(int argc, char** argv)
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
struct stat sb;
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
- if (argc < 9) /* no argv[8]? */
|
|
Nikola Pajkovsky |
8750f0 |
+ if (argc < 8)
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
- /* percent specifier: %s %c %p %u %g %t %e %h */
|
|
Nikola Pajkovsky |
8750f0 |
- /* argv: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] */
|
|
Nikola Pajkovsky |
8750f0 |
- // [OLD_PATTERN] is deprecated, so removing it from help:
|
|
Nikola Pajkovsky |
8750f0 |
- //error_msg_and_die("Usage: %s DUMPDIR SIGNO CORE_SIZE_LIMIT PID UID GID TIME BINARY_NAME [HOSTNAME [OLD_PATTERN]]", argv[0]);
|
|
Nikola Pajkovsky |
8750f0 |
- error_msg_and_die("Usage: %s DUMPDIR SIGNO CORE_SIZE_LIMIT PID UID GID TIME BINARY_NAME [HOSTNAME]", argv[0]);
|
|
Nikola Pajkovsky |
8750f0 |
+ /* percent specifier: %s %c %p %u %g %t %e %h */
|
|
Nikola Pajkovsky |
8750f0 |
+ /* argv: [0] [1] [2] [3] [4] [5] [6] [7] [8]*/
|
|
Nikola Pajkovsky |
8750f0 |
+ error_msg_and_die("Usage: %s SIGNO CORE_SIZE_LIMIT PID UID GID TIME BINARY_NAME [HOSTNAME]", argv[0]);
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
/* Not needed on 2.6.30.
|
|
Nikola Pajkovsky |
8750f0 |
@@ -337,20 +335,23 @@ int main(int argc, char** argv)
|
|
Nikola Pajkovsky |
8750f0 |
logmode = LOGMODE_SYSLOG;
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
errno = 0;
|
|
Nikola Pajkovsky |
8750f0 |
- const char* dddir = argv[1];
|
|
Nikola Pajkovsky |
8750f0 |
- const char* signal_str = argv[2];
|
|
Nikola Pajkovsky |
8750f0 |
+ /* Parse abrt.conf */
|
|
Nikola Pajkovsky |
8750f0 |
+ load_abrt_conf();
|
|
Nikola Pajkovsky |
8750f0 |
+
|
|
Nikola Pajkovsky |
8750f0 |
+ const char* signal_str = argv[1];
|
|
Nikola Pajkovsky |
8750f0 |
int signal_no = xatoi_positive(signal_str);
|
|
Nikola Pajkovsky |
8750f0 |
- off_t ulimit_c = strtoull(argv[3], NULL, 10);
|
|
Nikola Pajkovsky |
8750f0 |
+ off_t ulimit_c = strtoull(argv[2], NULL, 10);
|
|
Nikola Pajkovsky |
8750f0 |
if (ulimit_c < 0) /* unlimited? */
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
/* set to max possible >0 value */
|
|
Nikola Pajkovsky |
8750f0 |
ulimit_c = ~((off_t)1 << (sizeof(off_t)*8-1));
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
- pid_t pid = xatoi_positive(argv[4]);
|
|
Nikola Pajkovsky |
8750f0 |
- uid_t uid = xatoi_positive(argv[5]);
|
|
Nikola Pajkovsky |
8750f0 |
+ pid_t pid = xatoi_positive(argv[3]);
|
|
Nikola Pajkovsky |
8750f0 |
+ uid_t uid = xatoi_positive(argv[4]);
|
|
Nikola Pajkovsky |
8750f0 |
if (errno || pid <= 0)
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
- perror_msg_and_die("pid '%s' or limit '%s' is bogus", argv[4], argv[3]);
|
|
Nikola Pajkovsky |
8750f0 |
+ free_abrt_conf_data();
|
|
Nikola Pajkovsky |
8750f0 |
+ perror_msg_and_die("pid '%s' or limit '%s' is bogus", argv[3], argv[2]);
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
FILE *saved_core_pattern = fopen(VAR_RUN"/abrt/saved_core_pattern", "r");
|
|
Nikola Pajkovsky |
8750f0 |
@@ -360,52 +361,27 @@ int main(int argc, char** argv)
|
|
Nikola Pajkovsky |
8750f0 |
fclose(saved_core_pattern);
|
|
Nikola Pajkovsky |
8750f0 |
/* If we have a saved pattern and it's not a "|PROG ARGS" thing... */
|
|
Nikola Pajkovsky |
8750f0 |
if (s && s[0] != '|')
|
|
Nikola Pajkovsky |
8750f0 |
- {
|
|
Nikola Pajkovsky |
8750f0 |
core_basename = s;
|
|
Nikola Pajkovsky |
8750f0 |
- argv[10] = NULL; /* don't use old way to pass OLD_PATTERN */
|
|
Nikola Pajkovsky |
8750f0 |
- }
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
struct utsname uts;
|
|
Nikola Pajkovsky |
8750f0 |
- if (!argv[9]) /* no HOSTNAME? */
|
|
Nikola Pajkovsky |
8750f0 |
+ if (!argv[8]) /* no HOSTNAME? */
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
uname(&uts;;
|
|
Nikola Pajkovsky |
8750f0 |
- argv[9] = uts.nodename;
|
|
Nikola Pajkovsky |
8750f0 |
- }
|
|
Nikola Pajkovsky |
8750f0 |
- else /* argv[9]=HOSTNAME exists.*/
|
|
Nikola Pajkovsky |
8750f0 |
- if (argv[10]) /* OLD_PATTERN? (deprecated) */
|
|
Nikola Pajkovsky |
8750f0 |
- {
|
|
Nikola Pajkovsky |
8750f0 |
- char *buf = (char*) xzalloc(strlen(argv[10]) / 2 + 2);
|
|
Nikola Pajkovsky |
8750f0 |
- char *end = hex2bin(buf, argv[10], strlen(argv[10]));
|
|
Nikola Pajkovsky |
8750f0 |
- if (end && end > buf && end[-1] == '\0')
|
|
Nikola Pajkovsky |
8750f0 |
- {
|
|
Nikola Pajkovsky |
8750f0 |
- core_basename = buf;
|
|
Nikola Pajkovsky |
8750f0 |
- //log("core_basename:'%s'", core_basename);
|
|
Nikola Pajkovsky |
8750f0 |
- }
|
|
Nikola Pajkovsky |
8750f0 |
- else
|
|
Nikola Pajkovsky |
8750f0 |
- {
|
|
Nikola Pajkovsky |
8750f0 |
- /* Until recently, kernels were truncating expanded core pattern.
|
|
Nikola Pajkovsky |
8750f0 |
- * In this case, we end up here...
|
|
Nikola Pajkovsky |
8750f0 |
- */
|
|
Nikola Pajkovsky |
8750f0 |
- error_msg("bad old pattern '%s', ignoring and using 'core'", argv[10]);
|
|
Nikola Pajkovsky |
8750f0 |
- /* core_basename = "core"; - already is */
|
|
Nikola Pajkovsky |
8750f0 |
- free(buf);
|
|
Nikola Pajkovsky |
8750f0 |
- }
|
|
Nikola Pajkovsky |
8750f0 |
+ argv[8] = uts.nodename;
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
int src_fd_binary;
|
|
Nikola Pajkovsky |
8750f0 |
char *executable = get_executable(pid, &src_fd_binary);
|
|
Nikola Pajkovsky |
8750f0 |
if (executable && strstr(executable, "/abrt-hook-ccpp"))
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
+ free_abrt_conf_data();
|
|
Nikola Pajkovsky |
8750f0 |
error_msg_and_die("pid %lu is '%s', not dumping it to avoid recursion",
|
|
Nikola Pajkovsky |
8750f0 |
(long)pid, executable);
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
char *user_pwd = get_cwd(pid); /* may be NULL on error */
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
- /* Parse abrt.conf */
|
|
Nikola Pajkovsky |
8750f0 |
- load_abrt_conf();
|
|
Nikola Pajkovsky |
8750f0 |
- free_abrt_conf_data(); /* can do this because we need only g_settings_nMaxCrashReportsSize */
|
|
Nikola Pajkovsky |
8750f0 |
/* ... and plugins/CCpp.conf */
|
|
Nikola Pajkovsky |
8750f0 |
bool setting_MakeCompatCore;
|
|
Nikola Pajkovsky |
8750f0 |
bool setting_SaveBinaryImage;
|
|
Nikola Pajkovsky |
8750f0 |
@@ -430,7 +406,7 @@ int main(int argc, char** argv)
|
|
Nikola Pajkovsky |
8750f0 |
int user_core_fd = -1;
|
|
Nikola Pajkovsky |
8750f0 |
if (setting_MakeCompatCore && ulimit_c != 0)
|
|
Nikola Pajkovsky |
8750f0 |
/* note: checks "user_pwd == NULL" inside; updates core_basename */
|
|
Nikola Pajkovsky |
8750f0 |
- user_core_fd = open_user_core(user_pwd, uid, pid, &argv[2]);
|
|
Nikola Pajkovsky |
8750f0 |
+ user_core_fd = open_user_core(user_pwd, uid, pid, &argv[1]);
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
if (executable == NULL)
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
@@ -475,7 +451,7 @@ int main(int argc, char** argv)
|
|
Nikola Pajkovsky |
8750f0 |
*/
|
|
Nikola Pajkovsky |
8750f0 |
unsigned maxsize = g_settings_nMaxCrashReportsSize + g_settings_nMaxCrashReportsSize / 4;
|
|
Nikola Pajkovsky |
8750f0 |
maxsize |= 63;
|
|
Nikola Pajkovsky |
8750f0 |
- check_free_space(maxsize);
|
|
Nikola Pajkovsky |
8750f0 |
+ check_free_space(maxsize, g_settings_dump_location);
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
char path[PATH_MAX];
|
|
Nikola Pajkovsky |
8750f0 |
@@ -483,7 +459,7 @@ int main(int argc, char** argv)
|
|
Nikola Pajkovsky |
8750f0 |
/* Check /var/spool/abrt/last-ccpp marker, do not dump repeated crashes
|
|
Nikola Pajkovsky |
8750f0 |
* if they happen too often. Else, write new marker value.
|
|
Nikola Pajkovsky |
8750f0 |
*/
|
|
Nikola Pajkovsky |
8750f0 |
- snprintf(path, sizeof(path), "%s/last-ccpp", dddir);
|
|
Nikola Pajkovsky |
8750f0 |
+ snprintf(path, sizeof(path), "%s/last-ccpp", g_settings_dump_location);
|
|
Nikola Pajkovsky |
8750f0 |
int fd = open(path, O_RDWR | O_CREAT, 0600);
|
|
Nikola Pajkovsky |
8750f0 |
if (fd >= 0)
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
@@ -502,6 +478,7 @@ int main(int argc, char** argv)
|
|
Nikola Pajkovsky |
8750f0 |
error_msg("not dumping repeating crash in '%s'", executable);
|
|
Nikola Pajkovsky |
8750f0 |
if (setting_MakeCompatCore)
|
|
Nikola Pajkovsky |
8750f0 |
goto create_user_core;
|
|
Nikola Pajkovsky |
8750f0 |
+ free_abrt_conf_data();
|
|
Nikola Pajkovsky |
8750f0 |
return 1;
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
@@ -521,7 +498,7 @@ int main(int argc, char** argv)
|
|
Nikola Pajkovsky |
8750f0 |
* and maybe crash again...
|
|
Nikola Pajkovsky |
8750f0 |
* Unlike dirs, mere files are ignored by abrtd.
|
|
Nikola Pajkovsky |
8750f0 |
*/
|
|
Nikola Pajkovsky |
8750f0 |
- snprintf(path, sizeof(path), "%s/%s-coredump", dddir, last_slash);
|
|
Nikola Pajkovsky |
8750f0 |
+ snprintf(path, sizeof(path), "%s/%s-coredump", g_settings_dump_location, last_slash);
|
|
Nikola Pajkovsky |
8750f0 |
int abrt_core_fd = xopen3(path, O_WRONLY | O_CREAT | O_TRUNC, 0644);
|
|
Nikola Pajkovsky |
8750f0 |
off_t core_size = copyfd_eof(STDIN_FILENO, abrt_core_fd, COPYFD_SPARSE);
|
|
Nikola Pajkovsky |
8750f0 |
if (core_size < 0 || fsync(abrt_core_fd) != 0)
|
|
Nikola Pajkovsky |
8750f0 |
@@ -529,16 +506,21 @@ int main(int argc, char** argv)
|
|
Nikola Pajkovsky |
8750f0 |
unlink(path);
|
|
Nikola Pajkovsky |
8750f0 |
/* copyfd_eof logs the error including errno string,
|
|
Nikola Pajkovsky |
8750f0 |
* but it does not log file name */
|
|
Nikola Pajkovsky |
8750f0 |
+ free_abrt_conf_data();
|
|
Nikola Pajkovsky |
8750f0 |
error_msg_and_die("error saving coredump to %s", path);
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
log("saved core dump of pid %lu (%s) to %s (%llu bytes)", (long)pid, executable, path, (long long)core_size);
|
|
Nikola Pajkovsky |
8750f0 |
+ free_abrt_conf_data();
|
|
Nikola Pajkovsky |
8750f0 |
return 0;
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
unsigned path_len = snprintf(path, sizeof(path), "%s/ccpp-%s-%lu.new",
|
|
Nikola Pajkovsky |
8750f0 |
- dddir, iso_date_string(NULL), (long)pid);
|
|
Nikola Pajkovsky |
8750f0 |
+ g_settings_dump_location, iso_date_string(NULL), (long)pid);
|
|
Nikola Pajkovsky |
8750f0 |
if (path_len >= (sizeof(path) - sizeof("/"FILENAME_COREDUMP)))
|
|
Nikola Pajkovsky |
8750f0 |
+ {
|
|
Nikola Pajkovsky |
8750f0 |
+ free_abrt_conf_data();
|
|
Nikola Pajkovsky |
8750f0 |
return 1;
|
|
Nikola Pajkovsky |
8750f0 |
+ }
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
struct dump_dir *dd = dd_create(path, uid, 0640);
|
|
Nikola Pajkovsky |
8750f0 |
if (dd)
|
|
Nikola Pajkovsky |
8750f0 |
@@ -588,6 +570,7 @@ int main(int argc, char** argv)
|
|
Nikola Pajkovsky |
8750f0 |
if (sz < 0 || fsync(dst_fd_binary) != 0)
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
unlink(path);
|
|
Nikola Pajkovsky |
8750f0 |
+ free_abrt_conf_data();
|
|
Nikola Pajkovsky |
8750f0 |
error_msg_and_die("error saving binary image to %s", path);
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
close(dst_fd_binary);
|
|
Nikola Pajkovsky |
8750f0 |
@@ -606,7 +589,8 @@ int main(int argc, char** argv)
|
|
Nikola Pajkovsky |
8750f0 |
unlink(core_basename);
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
errno = sv_errno;
|
|
Nikola Pajkovsky |
8750f0 |
- perror_msg_and_die("can't open '%s'", path);
|
|
Nikola Pajkovsky |
8750f0 |
+ free_abrt_conf_data();
|
|
Nikola Pajkovsky |
8750f0 |
+ perror_msg_and_die("Can't open '%s'", path);
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
fchown(abrt_core_fd, dd->dd_uid, dd->dd_gid);
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
@@ -636,6 +620,7 @@ int main(int argc, char** argv)
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
/* copyfd_sparse logs the error including errno string,
|
|
Nikola Pajkovsky |
8750f0 |
* but it does not log file name */
|
|
Nikola Pajkovsky |
8750f0 |
+ free_abrt_conf_data();
|
|
Nikola Pajkovsky |
8750f0 |
error_msg_and_die("error writing %s", path);
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
log("saved core dump of pid %lu (%s) to %s (%llu bytes)", (long)pid, executable, path, (long long)core_size);
|
|
Nikola Pajkovsky |
8750f0 |
@@ -667,16 +652,20 @@ int main(int argc, char** argv)
|
|
Nikola Pajkovsky |
8750f0 |
*/
|
|
Nikola Pajkovsky |
8750f0 |
unsigned maxsize = g_settings_nMaxCrashReportsSize + g_settings_nMaxCrashReportsSize / 4;
|
|
Nikola Pajkovsky |
8750f0 |
maxsize |= 63;
|
|
Nikola Pajkovsky |
8750f0 |
- trim_debug_dumps(DEBUG_DUMPS_DIR, maxsize * (double)(1024*1024), path);
|
|
Nikola Pajkovsky |
8750f0 |
+ trim_debug_dumps(g_settings_dump_location, maxsize * (double)(1024*1024), path);
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
+ free_abrt_conf_data();
|
|
Nikola Pajkovsky |
8750f0 |
return 0;
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
/* We didn't create abrt dump, but may need to create compat coredump */
|
|
Nikola Pajkovsky |
8750f0 |
create_user_core:
|
|
Nikola Pajkovsky |
8750f0 |
if (user_core_fd < 0)
|
|
Nikola Pajkovsky |
8750f0 |
+ {
|
|
Nikola Pajkovsky |
8750f0 |
+ free_abrt_conf_data();
|
|
Nikola Pajkovsky |
8750f0 |
return 0;
|
|
Nikola Pajkovsky |
8750f0 |
+ }
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
off_t core_size = copyfd_size(STDIN_FILENO, user_core_fd, ulimit_c, COPYFD_SPARSE);
|
|
Nikola Pajkovsky |
8750f0 |
if (core_size < 0 || fsync(user_core_fd) != 0) {
|
|
Nikola Pajkovsky |
8750f0 |
@@ -684,15 +673,17 @@ int main(int argc, char** argv)
|
|
Nikola Pajkovsky |
8750f0 |
perror_msg("error writing %s/%s", user_pwd, core_basename);
|
|
Nikola Pajkovsky |
8750f0 |
xchdir(user_pwd);
|
|
Nikola Pajkovsky |
8750f0 |
unlink(core_basename);
|
|
Nikola Pajkovsky |
8750f0 |
+ free_abrt_conf_data();
|
|
Nikola Pajkovsky |
8750f0 |
return 1;
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
if (ulimit_c == 0 || core_size > ulimit_c)
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
xchdir(user_pwd);
|
|
Nikola Pajkovsky |
8750f0 |
unlink(core_basename);
|
|
Nikola Pajkovsky |
8750f0 |
+ free_abrt_conf_data();
|
|
Nikola Pajkovsky |
8750f0 |
return 1;
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
log("saved core dump of pid %lu to %s/%s (%llu bytes)", (long)pid, user_pwd, core_basename, (long long)core_size);
|
|
Nikola Pajkovsky |
8750f0 |
-
|
|
Nikola Pajkovsky |
8750f0 |
+ free_abrt_conf_data();
|
|
Nikola Pajkovsky |
8750f0 |
return 0;
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
diff --git a/src/hooks/abrt-install-ccpp-hook b/src/hooks/abrt-install-ccpp-hook
|
|
Nikola Pajkovsky |
8750f0 |
index 12a443f..2450eba 100755
|
|
Nikola Pajkovsky |
8750f0 |
--- a/src/hooks/abrt-install-ccpp-hook
|
|
Nikola Pajkovsky |
8750f0 |
+++ b/src/hooks/abrt-install-ccpp-hook
|
|
Nikola Pajkovsky |
8750f0 |
@@ -11,9 +11,9 @@ SAVED_PATTERN_DIR="/var/run/abrt"
|
|
Nikola Pajkovsky |
8750f0 |
SAVED_PATTERN_FILE="/var/run/abrt/saved_core_pattern"
|
|
Nikola Pajkovsky |
8750f0 |
HOOK_BIN="/usr/libexec/abrt-hook-ccpp"
|
|
Nikola Pajkovsky |
8750f0 |
# Must match percent_specifiers[] order in abrt-hook-ccpp.c:
|
|
Nikola Pajkovsky |
8750f0 |
-PATTERN="|$HOOK_BIN /var/spool/abrt %s %c %p %u %g %t %e"
|
|
Nikola Pajkovsky |
8750f0 |
+PATTERN="|$HOOK_BIN %s %c %p %u %g %t %e"
|
|
Nikola Pajkovsky |
8750f0 |
# Same, but with bogus "executable name" parameter
|
|
Nikola Pajkovsky |
8750f0 |
-PATTERN1="|$HOOK_BIN /var/spool/abrt %s %c %p %u %g %t e"
|
|
Nikola Pajkovsky |
8750f0 |
+PATTERN1="|$HOOK_BIN %s %c %p %u %g %t e"
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
# core_pipe_limit specifies how many dump_helpers can run at the same time
|
|
Nikola Pajkovsky |
8750f0 |
# 0 - means unlimited, but it's not guaranteed that /proc/<pid> of crashing
|
|
Nikola Pajkovsky |
8750f0 |
diff --git a/src/lib/Makefile.am b/src/lib/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
index 163e7c3..43364dc 100644
|
|
Nikola Pajkovsky |
8750f0 |
--- a/src/lib/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
+++ b/src/lib/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
@@ -20,7 +20,6 @@ libabrt_la_CPPFLAGS = \
|
|
Nikola Pajkovsky |
8750f0 |
-I$(srcdir)/../lib \
|
|
Nikola Pajkovsky |
8750f0 |
-DLOCALSTATEDIR='"$(localstatedir)"' \
|
|
Nikola Pajkovsky |
8750f0 |
-DVAR_RUN=\"$(VAR_RUN)\" \
|
|
Nikola Pajkovsky |
8750f0 |
- -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_CONF_DIR=\"$(PLUGINS_CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DCONF_DIR=\"$(CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
diff --git a/src/lib/abrt_conf.c b/src/lib/abrt_conf.c
|
|
Nikola Pajkovsky |
8750f0 |
index 2a1cf36..2e13f2d 100644
|
|
Nikola Pajkovsky |
8750f0 |
--- a/src/lib/abrt_conf.c
|
|
Nikola Pajkovsky |
8750f0 |
+++ b/src/lib/abrt_conf.c
|
|
Nikola Pajkovsky |
8750f0 |
@@ -26,6 +26,7 @@ char * g_settings_sWatchCrashdumpArchiveDir = NULL;
|
|
Nikola Pajkovsky |
8750f0 |
unsigned int g_settings_nMaxCrashReportsSize = 1000;
|
|
Nikola Pajkovsky |
8750f0 |
bool g_settings_bProcessUnpackaged = false;
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
+char * g_settings_dump_location = NULL;
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
void free_abrt_conf_data()
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
@@ -40,6 +41,9 @@ void free_abrt_conf_data()
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
free(g_settings_sWatchCrashdumpArchiveDir);
|
|
Nikola Pajkovsky |
8750f0 |
g_settings_sWatchCrashdumpArchiveDir = NULL;
|
|
Nikola Pajkovsky |
8750f0 |
+
|
|
Nikola Pajkovsky |
8750f0 |
+ free(g_settings_dump_location);
|
|
Nikola Pajkovsky |
8750f0 |
+ g_settings_dump_location = NULL;
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
static GList *parse_list(const char* list)
|
|
Nikola Pajkovsky |
8750f0 |
@@ -118,6 +122,14 @@ static void ParseCommon(map_string_h *settings, const char *conf_filename)
|
|
Nikola Pajkovsky |
8750f0 |
g_settings_bProcessUnpackaged = string_to_bool(value);
|
|
Nikola Pajkovsky |
8750f0 |
g_hash_table_remove(settings, "ProcessUnpackaged");
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
+ value = g_hash_table_lookup(settings, "DumpLocation");
|
|
Nikola Pajkovsky |
8750f0 |
+ if (value)
|
|
Nikola Pajkovsky |
8750f0 |
+ {
|
|
Nikola Pajkovsky |
8750f0 |
+ g_settings_dump_location = xstrdup(value);
|
|
Nikola Pajkovsky |
8750f0 |
+ g_hash_table_remove(settings, "DumpLocation");
|
|
Nikola Pajkovsky |
8750f0 |
+ }
|
|
Nikola Pajkovsky |
8750f0 |
+ else
|
|
Nikola Pajkovsky |
8750f0 |
+ g_settings_dump_location = xstrdup("/var/spool/abrt");
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
GHashTableIter iter;
|
|
Nikola Pajkovsky |
8750f0 |
char *name;
|
|
Nikola Pajkovsky |
8750f0 |
diff --git a/src/lib/abrt_conf.h b/src/lib/abrt_conf.h
|
|
Nikola Pajkovsky |
8750f0 |
index 2ca7542..f45972e 100644
|
|
Nikola Pajkovsky |
8750f0 |
--- a/src/lib/abrt_conf.h
|
|
Nikola Pajkovsky |
8750f0 |
+++ b/src/lib/abrt_conf.h
|
|
Nikola Pajkovsky |
8750f0 |
@@ -37,6 +37,8 @@ extern bool g_settings_bOpenGPGCheck;
|
|
Nikola Pajkovsky |
8750f0 |
extern bool g_settings_bProcessUnpackaged;
|
|
Nikola Pajkovsky |
8750f0 |
#define g_settings_sWatchCrashdumpArchiveDir abrt_g_settings_sWatchCrashdumpArchiveDir
|
|
Nikola Pajkovsky |
8750f0 |
extern char * g_settings_sWatchCrashdumpArchiveDir;
|
|
Nikola Pajkovsky |
8750f0 |
+#define g_settings_dump_location abrt_g_settings_dump_location
|
|
Nikola Pajkovsky |
8750f0 |
+extern char * g_settings_dump_location;
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
#define load_abrt_conf abrt_load_abrt_conf
|
|
Nikola Pajkovsky |
8750f0 |
int load_abrt_conf();
|
|
Nikola Pajkovsky |
8750f0 |
diff --git a/src/lib/hooklib.c b/src/lib/hooklib.c
|
|
Nikola Pajkovsky |
8750f0 |
index b5fcec2..5ebec97 100644
|
|
Nikola Pajkovsky |
8750f0 |
--- a/src/lib/hooklib.c
|
|
Nikola Pajkovsky |
8750f0 |
+++ b/src/lib/hooklib.c
|
|
Nikola Pajkovsky |
8750f0 |
@@ -19,12 +19,12 @@
|
|
Nikola Pajkovsky |
8750f0 |
#include "internal_libreport.h"
|
|
Nikola Pajkovsky |
8750f0 |
#include "hooklib.h"
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
-void check_free_space(unsigned setting_MaxCrashReportsSize)
|
|
Nikola Pajkovsky |
8750f0 |
+void check_free_space(unsigned setting_MaxCrashReportsSize, const char *dump_location)
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
struct statvfs vfs;
|
|
Nikola Pajkovsky |
8750f0 |
- if (statvfs(DEBUG_DUMPS_DIR, &vfs) != 0)
|
|
Nikola Pajkovsky |
8750f0 |
+ if (statvfs(dump_location, &vfs) != 0)
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
- perror_msg_and_die("statvfs('%s')", DEBUG_DUMPS_DIR);
|
|
Nikola Pajkovsky |
8750f0 |
+ perror_msg_and_die("statvfs('%s')", dump_location);
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
/* Check that at least MaxCrashReportsSize/4 MBs are free */
|
|
Nikola Pajkovsky |
8750f0 |
@@ -34,7 +34,8 @@ void check_free_space(unsigned setting_MaxCrashReportsSize)
|
|
Nikola Pajkovsky |
8750f0 |
unsigned long fs_free_mb_x4 = ((unsigned long long)vfs.f_bfree / (1024/4)) * vfs.f_bsize / 1024;
|
|
Nikola Pajkovsky |
8750f0 |
if (fs_free_mb_x4 < setting_MaxCrashReportsSize)
|
|
Nikola Pajkovsky |
8750f0 |
{
|
|
Nikola Pajkovsky |
8750f0 |
- error_msg_and_die("aborting dump: only %luMiB is available on %s", fs_free_mb_x4 / 4, DEBUG_DUMPS_DIR);
|
|
Nikola Pajkovsky |
8750f0 |
+ error_msg_and_die("aborting dump: only %luMiB is available on %s",
|
|
Nikola Pajkovsky |
8750f0 |
+ fs_free_mb_x4 / 4, dump_location);
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
}
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
diff --git a/src/lib/hooklib.h b/src/lib/hooklib.h
|
|
Nikola Pajkovsky |
8750f0 |
index 1add7d0..0cb3f60 100644
|
|
Nikola Pajkovsky |
8750f0 |
--- a/src/lib/hooklib.h
|
|
Nikola Pajkovsky |
8750f0 |
+++ b/src/lib/hooklib.h
|
|
Nikola Pajkovsky |
8750f0 |
@@ -23,7 +23,7 @@ extern "C" {
|
|
Nikola Pajkovsky |
8750f0 |
#endif
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
#define check_free_space abrt_check_free_space
|
|
Nikola Pajkovsky |
8750f0 |
-void check_free_space(unsigned setting_MaxCrashReportsSize);
|
|
Nikola Pajkovsky |
8750f0 |
+void check_free_space(unsigned setting_MaxCrashReportsSize, const char *dump_location);
|
|
Nikola Pajkovsky |
8750f0 |
|
|
Nikola Pajkovsky |
8750f0 |
#define trim_debug_dumps abrt_trim_debug_dumps
|
|
Nikola Pajkovsky |
8750f0 |
void trim_debug_dumps(const char *dirname, double cap_size, const char *exclude_path);
|
|
Nikola Pajkovsky |
8750f0 |
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
index 543b424..de75c70 100644
|
|
Nikola Pajkovsky |
8750f0 |
--- a/src/plugins/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
+++ b/src/plugins/Makefile.am
|
|
Nikola Pajkovsky |
8750f0 |
@@ -119,7 +119,6 @@ abrt_dump_oops_CPPFLAGS = \
|
|
Nikola Pajkovsky |
8750f0 |
-DVAR_RUN=\"$(VAR_RUN)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DCONF_DIR=\"$(CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DLOCALSTATEDIR='"$(localstatedir)"' \
|
|
Nikola Pajkovsky |
8750f0 |
- -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DDEBUG_INFO_DIR=\"$(DEBUG_INFO_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_CONF_DIR=\"$(PLUGINS_CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
@@ -140,7 +139,6 @@ abrt_action_analyze_c_CPPFLAGS = \
|
|
Nikola Pajkovsky |
8750f0 |
-DVAR_RUN=\"$(VAR_RUN)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DCONF_DIR=\"$(CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DLOCALSTATEDIR='"$(localstatedir)"' \
|
|
Nikola Pajkovsky |
8750f0 |
- -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DDEBUG_INFO_DIR=\"$(DEBUG_INFO_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_CONF_DIR=\"$(PLUGINS_CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
@@ -160,7 +158,6 @@ abrt_action_analyze_python_CPPFLAGS = \
|
|
Nikola Pajkovsky |
8750f0 |
-DVAR_RUN=\"$(VAR_RUN)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DCONF_DIR=\"$(CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DLOCALSTATEDIR='"$(localstatedir)"' \
|
|
Nikola Pajkovsky |
8750f0 |
- -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DDEBUG_INFO_DIR=\"$(DEBUG_INFO_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_CONF_DIR=\"$(PLUGINS_CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
@@ -181,7 +178,6 @@ abrt_action_analyze_oops_CPPFLAGS = \
|
|
Nikola Pajkovsky |
8750f0 |
-DVAR_RUN=\"$(VAR_RUN)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DCONF_DIR=\"$(CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DLOCALSTATEDIR='"$(localstatedir)"' \
|
|
Nikola Pajkovsky |
8750f0 |
- -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DDEBUG_INFO_DIR=\"$(DEBUG_INFO_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_CONF_DIR=\"$(PLUGINS_CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
@@ -201,7 +197,6 @@ abrt_action_trim_files_CPPFLAGS = \
|
|
Nikola Pajkovsky |
8750f0 |
-DVAR_RUN=\"$(VAR_RUN)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DCONF_DIR=\"$(CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DLOCALSTATEDIR='"$(localstatedir)"' \
|
|
Nikola Pajkovsky |
8750f0 |
- -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DDEBUG_INFO_DIR=\"$(DEBUG_INFO_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_CONF_DIR=\"$(PLUGINS_CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
@@ -222,7 +217,6 @@ abrt_action_generate_backtrace_CPPFLAGS = \
|
|
Nikola Pajkovsky |
8750f0 |
-DVAR_RUN=\"$(VAR_RUN)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DCONF_DIR=\"$(CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DLOCALSTATEDIR='"$(localstatedir)"' \
|
|
Nikola Pajkovsky |
8750f0 |
- -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DDEBUG_INFO_DIR=\"$(DEBUG_INFO_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_CONF_DIR=\"$(PLUGINS_CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
@@ -242,7 +236,6 @@ abrt_action_analyze_backtrace_CPPFLAGS = \
|
|
Nikola Pajkovsky |
8750f0 |
-DVAR_RUN=\"$(VAR_RUN)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DCONF_DIR=\"$(CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DLOCALSTATEDIR='"$(localstatedir)"' \
|
|
Nikola Pajkovsky |
8750f0 |
- -DDEBUG_DUMPS_DIR=\"$(DEBUG_DUMPS_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DDEBUG_INFO_DIR=\"$(DEBUG_INFO_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_LIB_DIR=\"$(PLUGINS_LIB_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
-DPLUGINS_CONF_DIR=\"$(PLUGINS_CONF_DIR)\" \
|
|
Nikola Pajkovsky |
8750f0 |
--
|
|
Nikola Pajkovsky |
8750f0 |
1.7.6
|
|
Nikola Pajkovsky |
8750f0 |
|