Compare commits

..
Author SHA1 Message Date
Arjan van de Ven 07e1f033e1 version 11 2014-12-26 11:28:04 -05:00
Arjan van de Ven 45f22398ca don't "system" unless it's really really needed 2014-12-26 11:26:36 -05:00
Arjan van de Ven b538b457ce one more typo 2014-12-26 10:48:24 -05:00
Arjan van de Ven 09affa9bf5 make systemd not complain 2014-12-26 10:32:42 -05:00
Arjan van de Ven 2a217476f7 move the cache dir to /var/cache
for proper stateless operation
2014-12-26 10:32:05 -05:00
Arjan van de Ven 4d6639148f release 8 2014-12-25 19:29:02 -05:00
Arjan van de Ven 83509e34c7 XFS does nto support DT_DIR 2014-12-26 00:15:36 -05:00
6 changed files with 30 additions and 24 deletions
-1
View File
@@ -4,7 +4,6 @@ Description=Clear Linux debuginfo daemon
[Service]
Type=simple
ExecStart=/usr/bin/clr_debug_daemon
ExecStopPost=umount /run/user/0/debug-lib ; umount /run/user/0/debug-src
[Install]
WantedBy=multi-user.target
+1 -1
View File
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.66])
AC_INIT(clr-debug-info, 7, arjan@linux.intel.com)
AC_INIT(clr-debug-info, 11, arjan@linux.intel.com)
AM_INIT_AUTOMAKE([foreign -Wall -W])
AM_SILENT_RULES([yes])
AC_PROG_CC
+2 -2
View File
@@ -8,5 +8,5 @@
# See tmpfiles.d(5) for details
# Clear tmp directories separately, to make them easier to override
d /usr/lib/.debug 755 root root 10d
d /usr/src/.debug 755 root root 1d
d /var/cache/debuginfo/lib 755 root root 10d
d /var/cache/debuginfo/src 755 root root 1d
+8 -5
View File
@@ -608,18 +608,21 @@ int main(int argc, char *argv[])
{
char * fake_argv[20];
char *dir = "/usr/src/debug";
char *shadowdir = "/usr/src/.debug";
char *shadowdir = "/var/cache/debuginfo/src";
umask(0);
system("modprobe fuse");
if (access("/sys/module/fuse/", F_OK))
system("modprobe fuse");
signal(SIGPIPE,SIG_IGN);
system("mkdir -p /usr/lib/.debug &> /dev/null");
system("mkdir -p /usr/src/.debug &> /dev/null");
if (access("/var/cache/debuginfo/lib/", F_OK))
system("mkdir -p /var/cache/debuginfo/lib &> /dev/null");
if (access("/var/cache/debuginfo/src/", F_OK))
system("mkdir -p /var/cache/debuginfo/src &> /dev/null");
if (fork() == 0) {
dir = "/usr/lib/debug";
shadowdir = "/usr/lib/.debug";
shadowdir = "/var/cache/debuginfo/lib";
prefix = "lib";
}
+13 -11
View File
@@ -161,10 +161,11 @@ out:
static void recurse_dir(char *base1, char *base2, char *path)
{
DIR *dir;
char *fullpath1, *newpath;
char *fullpath1, *fullpath2, *newpath;
struct dirent *entry;
fullpath1 = NULL;
fullpath2 = NULL;
if (asprintf(&fullpath1, "%s%s", base1, path) < 0)
@@ -184,20 +185,21 @@ static void recurse_dir(char *base1, char *base2, char *path)
continue;
if (strcmp(entry->d_name, "..") == 0)
continue;
if (entry->d_type == DT_DIR) {
newpath = NULL;
if (asprintf(&newpath, "%s/%s", path, entry->d_name) >= 0) {
newpath = NULL;
fullpath2 = NULL;
asprintf(&fullpath2, "%s/%s", fullpath1, entry->d_name);
if (asprintf(&newpath, "%s/%s", path, entry->d_name) >= 0) {
struct stat sb;
stat(fullpath2, &sb);
if (entry->d_type == DT_DIR || S_ISDIR(sb.st_mode)) {
do_one_file(base1, base2, newpath, 1);
recurse_dir(base1, base2, newpath);
free(newpath);
}
} else {
newpath = NULL;
if (asprintf(&newpath, "%s/%s", path, entry->d_name) >= 0) {
} else {
do_one_file(base1, base2, newpath, 0);
free(newpath);
}
free(newpath);
}
}
closedir(dir);
+6 -4
View File
@@ -124,7 +124,7 @@ static int curl_get_file(const char *url, const char *prefix, time_t timestamp)
memset(&statbuf, 0, sizeof(statbuf));
stat(filename, &statbuf);
if (statbuf.st_size > 0 && asprintf(&command, "tar -C /usr/%s/.debug --no-same-owner -xf %s", prefix, filename) >= 0) {
if (statbuf.st_size > 0 && asprintf(&command, "tar -C /var/cache/debuginfo/%s --no-same-owner -xf %s", prefix, filename) >= 0) {
system(command);
free(command);
}
@@ -229,9 +229,11 @@ int main(int argc, char **argv)
curl_global_init(CURL_GLOBAL_ALL);
signal(SIGPIPE,SIG_IGN);
system("mkdir -p /usr/lib/.debug &> /dev/null");
system("mkdir -p /usr/src/.debug &> /dev/null");
if (access("/var/cache/debuginfo/lib/", F_OK))
system("mkdir -p /var/cache/debuginfo/lib/ &> /dev/null");
if (access("/var/cache/debuginfo/src/", F_OK))
system("mkdir -p /var/cache/debuginfo/src/ &> /dev/null");
sockfd = socket(AF_UNIX, SOCK_STREAM, 0);