From 3fbfc730fd60282ae26299b54dec92f9cfe9aff2 Mon Sep 17 00:00:00 2001 From: Debaucher Date: Tue, 8 Jul 2025 11:45:20 +0800 Subject: [PATCH 1/6] =?UTF-8?q?[add]=E6=B7=BB=E5=8A=A0-t=E5=92=8C-d?= =?UTF-8?q?=E5=8F=82=E6=95=B0=EF=BC=8C=E5=88=86=E5=88=AB=E7=94=A8=E4=BA=8E?= =?UTF-8?q?=E6=8C=87=E5=AE=9A=E7=9B=B8=E5=AF=B9CPU=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E5=92=8C=E9=87=87=E6=A0=B7=E6=97=B6=E9=95=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bootchart.c | 34 ++++++++++++++++++++++++++++++++-- src/bootchart.conf | 2 +- src/store.c | 41 ++++++++++++++++++++++++++++++++++++----- src/svg.c | 3 +++ 4 files changed, 72 insertions(+), 8 deletions(-) diff --git a/src/bootchart.c b/src/bootchart.c index 15aaa2e..aa55417 100644 --- a/src/bootchart.c +++ b/src/bootchart.c @@ -84,6 +84,8 @@ bool arg_filter = true; bool arg_show_cmdline = false; bool arg_show_cgroup = false; bool arg_pss = false; +bool arg_from_nowtime = false; +int arg_duration = 0; bool arg_percpu = false; int arg_samples_len = DEFAULT_SAMPLES_LEN; /* we record len+1 (1 start sample) */ double arg_hz = DEFAULT_HZ; @@ -132,6 +134,8 @@ static void help(void) { printf("Usage: %s [OPTIONS]\n\n" "Options:\n" " -r --rel Record time relative to recording\n" + " -t --nowtime Caculate process run-time relative to now\n" + " -d --duration=DUR Duration of recording [%g], unit is seconds\n" " -f --freq=FREQ Sample frequency [%g]\n" " -n --samples=N Stop sampling at [%d] samples\n" " -x --scale-x=N Scale the graph horizontally [%g] \n" @@ -163,6 +167,8 @@ static int parse_argv(int argc, char *argv[]) { static const struct option options[] = { {"rel", no_argument, NULL, 'r' }, + {"nowtime", no_argument, NULL, 't' }, + {"duration", required_argument, NULL, 'd' }, {"freq", required_argument, NULL, 'f' }, {"samples", required_argument, NULL, 'n' }, {"pss", no_argument, NULL, 'p' }, @@ -183,12 +189,27 @@ static int parse_argv(int argc, char *argv[]) { if (getpid() == 1) opterr = 0; - while ((c = getopt_long(argc, argv, "erpf:n:o:i:FCchx:y:", options, NULL)) >= 0) + while ((c = getopt_long(argc, argv, "ertdpf:n:o:i:FCchx:y:", options, NULL)) >= 0) switch (c) { case 'r': arg_relative = true; break; + case 't': + arg_from_nowtime = true; + break; + case 'd': + r = safe_atoi(optarg, &arg_duration); + if (r < 0) + log_warning_errno(r, "failed to parse --duration/-d argument '%s': %m", + optarg); + if (arg_samples_len != DEFAULT_SAMPLES_LEN) + { + log_warning("--duration/-d and --samples/-n are mutually exclusive."); + return -EINVAL; + } + arg_samples_len = 0; // 先设置为0, 等参数解析完成后再设置 + break; case 'f': r = safe_atod(optarg, &arg_hz); if (r < 0) @@ -205,6 +226,11 @@ static int parse_argv(int argc, char *argv[]) { arg_show_cgroup = true; break; case 'n': + if (arg_samples_len != DEFAULT_SAMPLES_LEN) + { + log_warning("--samples/-n and --duration/-d are mutually exclusive."); + return -EINVAL; + } r = safe_atoi(optarg, &arg_samples_len); if (r < 0) log_warning_errno(r, "failed to parse --samples/-n argument '%s': %m", @@ -256,6 +282,9 @@ static int parse_argv(int argc, char *argv[]) { return -EINVAL; } + if (arg_duration > 0) + arg_samples_len = arg_duration * arg_hz; + return 1; } @@ -399,7 +428,8 @@ int main(int argc, char *argv[]) { LIST_HEAD_INIT(head); /* main program loop */ - for (samples = 0; !exiting && samples < arg_samples_len; samples++) { + for (samples = 0; !exiting && samples < arg_samples_len; samples++) + { int res; double sample_stop; double elapsed; diff --git a/src/bootchart.conf b/src/bootchart.conf index 030a2a1..48010e6 100644 --- a/src/bootchart.conf +++ b/src/bootchart.conf @@ -16,7 +16,7 @@ #Frequency=25.0 #Relative=no #Filter=yes -#Output= +Output=/tmp #Init= #PlotMemoryUsage=no #PlotEntropyGraph=no diff --git a/src/store.c b/src/store.c index 785d408..251ade1 100644 --- a/src/store.c +++ b/src/store.c @@ -148,6 +148,7 @@ int log_sample(DIR *proc, struct ps_sched_struct *ps_prev = NULL; int procfd; int taskfd = -1; + extern bool arg_from_nowtime; sampledata = *ptr; @@ -231,7 +232,8 @@ int log_sample(DIR *proc, } } - while ((ent = readdir(proc)) != NULL) { + while ((ent = readdir(proc)) != NULL) + { char filename[PATH_MAX]; int pid; struct ps_struct *ps; @@ -252,7 +254,8 @@ int log_sample(DIR *proc, } /* end of our LL? then append a new record */ - if (ps->pid != pid) { + if (ps->pid != pid) + { _cleanup_fclose_ FILE *st = NULL; char t[32]; struct ps_struct *parent; @@ -321,6 +324,30 @@ int log_sample(DIR *proc, if (r < 0) goto no_sched; + if (arg_from_nowtime) + { + // 第一次采样也读取CPU 时间 + if (ps->schedstat < 0) + { + sprintf(filename, "%d/schedstat", pid); + ps->schedstat = openat(procfd, filename, O_RDONLY|O_CLOEXEC); + if (ps->schedstat < 0) + continue; + } + + s = pread(ps->schedstat, buf, sizeof(buf) - 1, 0); + if (s <= 0) + continue; + + buf[s] = '\0'; + + if (!sscanf(buf, "%s %s %*s", rt, wt)) + continue; + + ps->sample->runtime = atoll(rt); // 全CPU 运行时间总计 + ps->total = 0; + } + ps->starttime /= 1000.0; no_sched: @@ -386,7 +413,9 @@ int log_sample(DIR *proc, *children = ps; } } - } + } // 新进程添加完成 + + /* else -> found pid, append data in ps */ /* below here is all continuous logging parts - we get here on every @@ -413,11 +442,13 @@ int log_sample(DIR *proc, if (!ps->sample->next) return log_oom(); + // 如果是第一个采样,执行到这段代码的时候会跳过first sample,所以会导致ps->first->runtime == 0 + // 所以在first sample采样的时候要把相关数据也采集一遍 ps->sample->next->prev = ps->sample; ps->sample = ps->sample->next; ps->last = ps->sample; - ps->sample->runtime = atoll(rt); - ps->sample->waittime = atoll(wt); + ps->sample->runtime = atoll(rt); // 全CPU 运行时间总计 + ps->sample->waittime = atoll(wt); // 全CPU 调度等待时间总计 ps->sample->sampledata = sampledata; ps->sample->ps_new = ps; if (ps_prev) diff --git a/src/svg.c b/src/svg.c index 9183de4..eecf259 100644 --- a/src/svg.c +++ b/src/svg.c @@ -1055,6 +1055,9 @@ static void svg_ps_bars(FILE *of, /* leave some trace of what we actually filtered etc. */ fprintf(of, "\n", enc_name, ps->pid, ps->ppid, to_ms(ps->total)); + printf("%s first runtime: %.03fms, last runtime: %.03fms\n", + ps->name, + to_ms(ps->first->runtime), to_ms(ps->last->runtime)); starttime = ps->first->sampledata->sampletime; From 50fbff8f76442185b897f8fa49028f5bff3c1d3b Mon Sep 17 00:00:00 2001 From: Debaucher Date: Tue, 8 Jul 2025 15:09:55 +0800 Subject: [PATCH 2/6] =?UTF-8?q?[fix]=E4=BF=AE=E5=A4=8D-d=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E6=AD=A3=E7=A1=AE=E8=AF=BB=E5=85=A5=E5=80=BC?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bootchart.c | 2 +- src/svg.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/bootchart.c b/src/bootchart.c index aa55417..f828762 100644 --- a/src/bootchart.c +++ b/src/bootchart.c @@ -189,7 +189,7 @@ static int parse_argv(int argc, char *argv[]) { if (getpid() == 1) opterr = 0; - while ((c = getopt_long(argc, argv, "ertdpf:n:o:i:FCchx:y:", options, NULL)) >= 0) + while ((c = getopt_long(argc, argv, "ertd:pf:n:o:i:FCchx:y:", options, NULL)) >= 0) switch (c) { case 'r': diff --git a/src/svg.c b/src/svg.c index eecf259..9f1c3c8 100644 --- a/src/svg.c +++ b/src/svg.c @@ -1039,7 +1039,8 @@ static void svg_ps_bars(FILE *of, /* pass 2 - ps boxes */ ps = ps_first; - while ((ps = get_next_ps(ps, ps_first))) { + while ((ps = get_next_ps(ps, ps_first))) + { _cleanup_free_ char *enc_name = NULL, *escaped = NULL; double endtime; double starttime; From f32216513b84b93f7caa1c8422a921fc1d6b6484 Mon Sep 17 00:00:00 2001 From: Debaucher Date: Tue, 8 Jul 2025 16:36:23 +0800 Subject: [PATCH 3/6] =?UTF-8?q?[fix]=E4=BF=AE=E6=94=B9=E4=BA=86=E5=AF=B9?= =?UTF-8?q?=E4=BA=8Earg=5Ffrom=5Fnowtime=E7=9A=84=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=EF=BC=8C=E7=AC=AC=E4=B8=80=E4=B8=AA=E9=87=87?= =?UTF-8?q?=E6=A0=B7=E5=B8=A7=E7=9A=84=E6=95=B0=E6=8D=AE=E6=98=AF=E5=AE=8C?= =?UTF-8?q?=E6=95=B4=E7=9A=84=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/bootchart.h | 4 +++ src/store.c | 78 +++++++++++++++++++++++++++++-------------------- src/svg.c | 7 +++-- 3 files changed, 56 insertions(+), 33 deletions(-) diff --git a/src/bootchart.h b/src/bootchart.h index 1b0895e..1cb5796 100644 --- a/src/bootchart.h +++ b/src/bootchart.h @@ -31,6 +31,8 @@ #define MAXCPUS 512 #define MAXPIDS 4194304 +// #define PRINT_DEBUG() + struct block_stat_struct { /* /proc/vmstat pgpgin & pgpgout */ int bi; @@ -103,6 +105,8 @@ struct ps_struct { }; extern bool arg_relative; +extern bool arg_from_nowtime; +extern int arg_duration; extern bool arg_filter; extern bool arg_show_cmdline; extern bool arg_show_cgroup; diff --git a/src/store.c b/src/store.c index 251ade1..dcb3e7a 100644 --- a/src/store.c +++ b/src/store.c @@ -119,6 +119,16 @@ static void garbage_collect_dead_processes(struct ps_struct *ps_first) { } } +static inline int _get_cpu_time_from_schedstat(FILE* statfp, double* rt, double* wt) +{ + char trt[256]; + char twt[256]; + if (!sscanf(statfp, "%s %s %*s", trt, twt)) + return -1; + *rt = atoll(trt); + *wt = atoll(twt); + return 0; +} int log_sample(DIR *proc, int sample, @@ -148,7 +158,7 @@ int log_sample(DIR *proc, struct ps_sched_struct *ps_prev = NULL; int procfd; int taskfd = -1; - extern bool arg_from_nowtime; + bool newproc = false; sampledata = *ptr; @@ -230,7 +240,7 @@ int log_sample(DIR *proc, buf[n] = '\0'; sampledata->entropy_avail = atoi(buf); } - } + } //系统级整体数据解析完成 while ((ent = readdir(proc)) != NULL) { @@ -247,7 +257,8 @@ int log_sample(DIR *proc, continue; ps = ps_first; - while (ps->next_running) { + while (ps->next_running) + { ps = ps->next_running; if (ps->pid == pid) break; @@ -324,29 +335,30 @@ int log_sample(DIR *proc, if (r < 0) goto no_sched; - if (arg_from_nowtime) - { - // 第一次采样也读取CPU 时间 - if (ps->schedstat < 0) - { - sprintf(filename, "%d/schedstat", pid); - ps->schedstat = openat(procfd, filename, O_RDONLY|O_CLOEXEC); - if (ps->schedstat < 0) - continue; - } + // if (arg_from_nowtime) + // { + // // 第一次采样也读取CPU 时间 + // if (ps->schedstat < 0) + // { + // sprintf(filename, "%d/schedstat", pid); + // ps->schedstat = openat(procfd, filename, O_RDONLY|O_CLOEXEC); + // if (ps->schedstat < 0) + // continue; + // } - s = pread(ps->schedstat, buf, sizeof(buf) - 1, 0); - if (s <= 0) - continue; + // s = pread(ps->schedstat, buf, sizeof(buf) - 1, 0); + // if (s <= 0) + // continue; - buf[s] = '\0'; + // buf[s] = '\0'; - if (!sscanf(buf, "%s %s %*s", rt, wt)) - continue; + // if (!sscanf(buf, "%s %s %*s", rt, wt)) + // continue; - ps->sample->runtime = atoll(rt); // 全CPU 运行时间总计 - ps->total = 0; - } + // ps->sample->runtime = atoll(rt); // 全CPU 运行时间总计 + // ps->total = 0; + // } + newproc = true; ps->starttime /= 1000.0; @@ -413,7 +425,7 @@ int log_sample(DIR *proc, *children = ps; } } - } // 新进程添加完成 + } // 新进程添加完成,但是注意这里的第一个sample结构体并不会被后续代码操作 /* else -> found pid, append data in ps */ @@ -438,15 +450,18 @@ int log_sample(DIR *proc, if (!sscanf(buf, "%s %s %*s", rt, wt)) continue; - ps->sample->next = new0(struct ps_sched_struct, 1); - if (!ps->sample->next) - return log_oom(); + if (!newproc || !arg_from_nowtime) + { + ps->sample->next = new0(struct ps_sched_struct, 1); + if (!ps->sample->next) + return log_oom(); - // 如果是第一个采样,执行到这段代码的时候会跳过first sample,所以会导致ps->first->runtime == 0 - // 所以在first sample采样的时候要把相关数据也采集一遍 - ps->sample->next->prev = ps->sample; - ps->sample = ps->sample->next; - ps->last = ps->sample; + // 如果是第一个采样,执行到这段代码的时候会跳过first sample,所以会导致ps->first->runtime == 0 + // 所以在first sample采样的时候要把相关数据也采集一遍 + ps->sample->next->prev = ps->sample; + ps->sample = ps->sample->next; + ps->last = ps->sample; + } ps->sample->runtime = atoll(rt); // 全CPU 运行时间总计 ps->sample->waittime = atoll(wt); // 全CPU 调度等待时间总计 ps->sample->sampledata = sampledata; @@ -464,6 +479,7 @@ int log_sample(DIR *proc, */ /* Browse directory "/proc/[pid]/task" to know the thread ids of process [pid] */ + // 计算所有线程的信息数据 snprintf(filename, sizeof(filename), PID_FMT "/task", pid); taskfd = openat(procfd, filename, O_RDONLY|O_DIRECTORY|O_CLOEXEC); if (taskfd >= 0) { diff --git a/src/svg.c b/src/svg.c index 9f1c3c8..0506b2a 100644 --- a/src/svg.c +++ b/src/svg.c @@ -911,7 +911,10 @@ static bool ps_filter(struct ps_struct *ps) { /* drop stuff that doesn't use any real CPU time */ if (ps->total <= 0.001) + { + printf("Dropping process %s [%d] with no CPU time\n", ps->name, ps->pid); return true; + } return 0; } @@ -1056,8 +1059,8 @@ static void svg_ps_bars(FILE *of, /* leave some trace of what we actually filtered etc. */ fprintf(of, "\n", enc_name, ps->pid, ps->ppid, to_ms(ps->total)); - printf("%s first runtime: %.03fms, last runtime: %.03fms\n", - ps->name, + printf("%s[%d] first runtime: %.03fms, last runtime: %.03fms\n", + ps->name, ps->pid, to_ms(ps->first->runtime), to_ms(ps->last->runtime)); starttime = ps->first->sampledata->sampletime; From d21a93d3a8266d7e5d0721a1fbef1fea68e8b803 Mon Sep 17 00:00:00 2001 From: Debaucher Date: Tue, 8 Jul 2025 17:21:35 +0800 Subject: [PATCH 4/6] =?UTF-8?q?[fix]=E4=BF=AE=E5=A4=8D=E4=BA=86ps->total?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E7=9A=84=E6=97=B6=E5=80=99=E5=8F=AA=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E4=BA=86=E4=B8=BB=E7=BA=BF=E7=A8=8BCPU=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store.c | 34 ++++++++-------------------------- 1 file changed, 8 insertions(+), 26 deletions(-) diff --git a/src/store.c b/src/store.c index dcb3e7a..a555efe 100644 --- a/src/store.c +++ b/src/store.c @@ -335,29 +335,6 @@ int log_sample(DIR *proc, if (r < 0) goto no_sched; - // if (arg_from_nowtime) - // { - // // 第一次采样也读取CPU 时间 - // if (ps->schedstat < 0) - // { - // sprintf(filename, "%d/schedstat", pid); - // ps->schedstat = openat(procfd, filename, O_RDONLY|O_CLOEXEC); - // if (ps->schedstat < 0) - // continue; - // } - - // s = pread(ps->schedstat, buf, sizeof(buf) - 1, 0); - // if (s <= 0) - // continue; - - // buf[s] = '\0'; - - // if (!sscanf(buf, "%s %s %*s", rt, wt)) - // continue; - - // ps->sample->runtime = atoll(rt); // 全CPU 运行时间总计 - // ps->total = 0; - // } newproc = true; ps->starttime /= 1000.0; @@ -395,6 +372,7 @@ int log_sample(DIR *proc, * these are used to paint the tree coherently later * each parent has a LL of children, and a LL of siblings */ + // 设置进程的父子关系 if (pid != 1) { /* nothing to do for init atm */ @@ -425,6 +403,7 @@ int log_sample(DIR *proc, *children = ps; } } + printf("Found new process [%s]%d -> Parent %d\n", ps->name, pid, ps->ppid); } // 新进程添加完成,但是注意这里的第一个sample结构体并不会被后续代码操作 @@ -470,8 +449,6 @@ int log_sample(DIR *proc, ps_prev->cross = ps->sample; ps_prev = ps->sample; - ps->total = (ps->last->runtime - ps->first->runtime) - / 1000000000.0; /* Take into account CPU runtime/waittime spent in non-main threads of the process * by parsing "/proc/[pid]/task/[tid]/schedstat" for all [tid] != [pid] @@ -482,7 +459,8 @@ int log_sample(DIR *proc, // 计算所有线程的信息数据 snprintf(filename, sizeof(filename), PID_FMT "/task", pid); taskfd = openat(procfd, filename, O_RDONLY|O_DIRECTORY|O_CLOEXEC); - if (taskfd >= 0) { + if (taskfd >= 0) + { _cleanup_closedir_ DIR *taskdir = NULL; taskdir = fdopendir(taskfd); @@ -530,6 +508,10 @@ int log_sample(DIR *proc, } } + // 将total的计算移到这里,解决total计算只处理了主线程的问题 + ps->total = (ps->last->runtime - ps->first->runtime) + / 1000000000.0; + if (!arg_pss) goto catch_rename; From b129b3b496ab043bd72c15546f21f9334c24e4f2 Mon Sep 17 00:00:00 2001 From: Debaucher Date: Tue, 8 Jul 2025 17:41:47 +0800 Subject: [PATCH 5/6] =?UTF-8?q?[modifiy]=E5=8F=96=E6=B6=88=E4=B8=80?= =?UTF-8?q?=E4=BA=9Bdebug=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/store.c | 2 ++ src/svg.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/src/store.c b/src/store.c index a555efe..631815a 100644 --- a/src/store.c +++ b/src/store.c @@ -403,7 +403,9 @@ int log_sample(DIR *proc, *children = ps; } } +#ifdef BOOTCHART_DEBUG printf("Found new process [%s]%d -> Parent %d\n", ps->name, pid, ps->ppid); +#endif } // 新进程添加完成,但是注意这里的第一个sample结构体并不会被后续代码操作 diff --git a/src/svg.c b/src/svg.c index 0506b2a..74e77bf 100644 --- a/src/svg.c +++ b/src/svg.c @@ -912,7 +912,9 @@ static bool ps_filter(struct ps_struct *ps) { /* drop stuff that doesn't use any real CPU time */ if (ps->total <= 0.001) { +#ifdef BOOTCHART_DEBUG printf("Dropping process %s [%d] with no CPU time\n", ps->name, ps->pid); +#endif return true; } @@ -1059,9 +1061,11 @@ static void svg_ps_bars(FILE *of, /* leave some trace of what we actually filtered etc. */ fprintf(of, "\n", enc_name, ps->pid, ps->ppid, to_ms(ps->total)); +#ifdef BOOTCHART_DEBUG printf("%s[%d] first runtime: %.03fms, last runtime: %.03fms\n", ps->name, ps->pid, to_ms(ps->first->runtime), to_ms(ps->last->runtime)); +#endif starttime = ps->first->sampledata->sampletime; From c33b60783241b65c190d9c7a5531463a6a26eeee Mon Sep 17 00:00:00 2001 From: Debaucher Date: Wed, 9 Jul 2025 11:30:07 +0800 Subject: [PATCH 6/6] =?UTF-8?q?[add]=E6=B7=BB=E5=8A=A0debian=E7=9B=AE?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- debian/autoreconf.after | 222 +++++++++++++++++++++++++++++++++++++++ debian/autoreconf.before | 198 ++++++++++++++++++++++++++++++++++ debian/changelog | 123 ++++++++++++++++++++++ debian/control | 45 ++++++++ debian/copyright | 51 +++++++++ debian/docs | 1 + debian/gbp.conf | 4 + debian/rules | 7 ++ debian/salsa-ci.yml | 4 + debian/source/format | 1 + debian/tests/bootchart | 51 +++++++++ debian/tests/control | 2 + debian/upstream/metadata | 4 + debian/watch | 3 + 14 files changed, 716 insertions(+) create mode 100644 debian/autoreconf.after create mode 100644 debian/autoreconf.before create mode 100644 debian/changelog create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/docs create mode 100644 debian/gbp.conf create mode 100755 debian/rules create mode 100644 debian/salsa-ci.yml create mode 100644 debian/source/format create mode 100644 debian/tests/bootchart create mode 100644 debian/tests/control create mode 100644 debian/upstream/metadata create mode 100644 debian/watch diff --git a/debian/autoreconf.after b/debian/autoreconf.after new file mode 100644 index 0000000..ae118ec --- /dev/null +++ b/debian/autoreconf.after @@ -0,0 +1,222 @@ +symlink ./m4/intltool.m4 +symlink ./build/.libs/libutils.la +symlink ./po/Makefile.in.in +377b16af7f362324ef6741681a3a7699 ./install_depends.sh +c3fcc39a9745316eee69d2a3fadc3921 ./config.h.in~ +3be9524adbc33584341d3da4549e26c7 ./configure~ +3e13993641e2533bd50c4a745467ded1 ./autom4te.cache/traces.3 +3e13993641e2533bd50c4a745467ded1 ./autom4te.cache/traces.1 +dbcc51d0cccd69200ab0ff0ceca128f3 ./autom4te.cache/output.1 +964a6fa6b196df7e479682411ef3191f ./autom4te.cache/traces.2 +dbcc51d0cccd69200ab0ff0ceca128f3 ./autom4te.cache/output.0 +844ea2ca5deb33b0725b8791524fc072 ./autom4te.cache/output.3 +e18f64697e616f498c964d5fc2a95a30 ./autom4te.cache/requests +807817b8a3294ea5a474bebecbb1b4f0 ./autom4te.cache/traces.0 +dbcc51d0cccd69200ab0ff0ceca128f3 ./autom4te.cache/output.2 +977b5a5821f9013ef0cd54824d232a20 ./m4/libtool.m4 +accb0d822cc0d126ab79f39fde9f9a11 ./m4/arch.m4 +30bf3f59677ca1f75150b5a2f399550b ./m4/.gitignore +98312682443b415dc42558ee6c7f25a9 ./m4/ltoptions.m4 +665ef728f05b03734804931333632de4 ./m4/ltversion.m4 +057a003c14ef81b6c16d1dc54d491105 ./m4/ltsugar.m4 +fc8c18fdd9bda25c8259086a766e98aa ./m4/attributes.m4 +9b7401bd4ac107b4225a6f580fe740a4 ./m4/ax_normalize_path.m4 +42fc54566fd6a8055fad65f78f32960c ./m4/lt~obsolete.m4 +c1afc0a8cbf22d213d60d6031d0bb659 ./units/.gitignore +b65f4dc9969ed48813c6b24d4395eb9b ./units/systemd-bootchart.service.in +28dbb66b336e213aacc399c8e8d6ed12 ./build/libtool +deb9cabfb2d4412aed3c71fe0efb5ce1 ./build/units/systemd-bootchart.service +2c890373599b6a1b304f92939750205a ./build/config.log +7086fcf3a092ef1e99c22ce3fbfbce4e ./build/man/bootchart.conf.d.5 +bd0f725649e6122b313fe12061f87488 ./build/man/systemd-bootchart.1 +cecabdeb01ce5c0973430c5770e7e04a ./build/man/bootchart.conf.5 +3205a10b08e6b0c6fd1d842e299e07f9 ./build/src/libutils_la-fd-util.lo +741442742cb53825465e529c926c6862 ./build/src/libutils_la-strxcpyx.lo +89838bf489e2c4affe6a6f21913fca08 ./build/src/libutils_la-strv.lo +14ee00c389bddfb91c1e7f85af02da0e ./build/src/libutils_la-hash-funcs.lo +e787444a4c98ae7459165bf3d18b03df ./build/src/libutils_la-fs-util.lo +95686b955e1860797616513d1bfe638c ./build/src/libutils_la-alloc-util.lo +972498e63caaa28468e2b0de4f36c577 ./build/src/libutils_la-parse-util.lo +7859f85ad37df820131287a9faf28d92 ./build/src/libutils_la-process-util.lo +f34ede05f96626e5bf4c2f755d050d24 ./build/src/.deps/libutils_la-dirent-util.Plo +45b8e3cf37995c6d2af675a669b3273c ./build/src/.deps/libutils_la-alloc-util.Plo +5bca4745099ad4415adec480b3ef9dd2 ./build/src/.deps/libutils_la-utf8.Plo +6fb722312cb5d205c305580e08570aea ./build/src/.deps/libutils_la-cgroup-util.Plo +5f119dde96bf6cf7b2d1b312715018d9 ./build/src/.deps/libutils_la-hashmap.Plo +c2b689f587214adce0848aaa0106bb1b ./build/src/.deps/libutils_la-conf-files.Plo +a888a960f2791a2ade4bed1a57b9d7d7 ./build/src/.deps/libutils_la-random-util.Plo +d7c36270cbe6ee4f97041e6a49617acc ./build/src/.deps/libutils_la-terminal-util.Plo +352d8dca54e36013fe374a5ef67ecabd ./build/src/.deps/libutils_la-fs-util.Plo +922c5452b8834656f5aa155894a52445 ./build/src/.deps/libutils_la-strv.Plo +b7109f3d8d94ca0616a84d386862c421 ./build/src/.deps/libutils_la-io-util.Plo +544ddceadd059fde08ab86a1583c045b ./build/src/.deps/libutils_la-path-util.Plo +d37118a6d9cdd45c1f3c2d027d852993 ./build/src/.deps/libutils_la-process-util.Plo +114860b3d2a39b13013768fa9f504e4c ./build/src/.deps/store.Po +8368ceb969d8fe06dd15376c2c7497ef ./build/src/.deps/libutils_la-string-util.Plo +708b340b7b4fbf4a929ac6ce56770c53 ./build/src/.deps/bootchart.Po +0c59aadae9188f3e10363183a0e59fcf ./build/src/.deps/libutils_la-log.Plo +0b2a447c80a428e017cc8362b77c5240 ./build/src/.deps/libutils_la-time-util.Plo +b3a6284a7ff091955e5e5342303dc3b8 ./build/src/.deps/libutils_la-strxcpyx.Plo +faa3a7b1e632e1a47e6330e7ff459ebd ./build/src/.deps/libutils_la-mempool.Plo +0a879089f39a613ea067282089d2714c ./build/src/.deps/libutils_la-util.Plo +14589c1f5ae3f3e9bb0ec9ef8e6bbc70 ./build/src/.deps/libutils_la-hash-funcs.Plo +9947f7c7db31a99afe44f8becd817f40 ./build/src/.deps/libutils_la-conf-parser.Plo +b7eebb625eef662dbf7c9d9a6aef8403 ./build/src/.deps/libutils_la-parse-util.Plo +5252cc436aa3082a6413e8729d6cd313 ./build/src/.deps/libutils_la-siphash24.Plo +63c35b17602239a77d3f885e05f4bce6 ./build/src/.deps/svg.Po +d41d8cd98f00b204e9800998ecf8427e ./build/src/.deps/.dirstamp +994b4b7d17b6084d445aaa4c2cf8fdae ./build/src/.deps/libutils_la-fd-util.Plo +9c8537fb7db4c426a1f31cf12d90a53a ./build/src/.deps/libutils_la-fileio.Plo +426085d2e12635e41ffa13293270bc0b ./build/src/bootchart.o +b908ef66a521ef9867df6e6c07835deb ./build/src/libutils_la-string-util.lo +5b8697945ffeff7a27997aac33f8c3ea ./build/src/libutils_la-time-util.lo +aef1deacc46c91c0a9e7e3c62ca3c10a ./build/src/libutils_la-fileio.lo +89d9f8a501e84df912319662e79ee5bc ./build/src/libutils_la-log.lo +0d95d99e36ea783b6847b45952eb3705 ./build/src/libutils_la-dirent-util.lo +03406ea2e6fc82a6fc616c894f3a302d ./build/src/libutils_la-conf-parser.lo +c1921df67b36d3114f0d4646719f3aa1 ./build/src/libutils_la-io-util.lo +bf58bb8ccad932cf2fde369dfe02a9ce ./build/src/libutils_la-utf8.lo +f398642767378fbbe3c786dc53de0b10 ./build/src/svg.o +cf974dc55cb13240b85c4fd0bc804080 ./build/src/libutils_la-util.lo +605559e49d90302ef0354d1fba8f5491 ./build/src/libutils_la-terminal-util.lo +949d44797c30a20ad6c6cf932a8ad4a6 ./build/src/store.o +f812c9fed73fabf736d2b3430c5f4a94 ./build/src/libutils_la-siphash24.lo +bdcb566e91f1148b795819146e717281 ./build/src/libutils_la-cgroup-util.lo +aab493e91a60be21b660423bcb6e0915 ./build/src/libutils_la-random-util.lo +fe51001895364aee211d62a4a822a2fe ./build/src/libutils_la-hashmap.lo +a27edf8993544de7b96be19cd62dce5b ./build/src/libutils_la-conf-files.lo +b7b83ab76cf12f12716904a2ae052eea ./build/src/.libs/libutils_la-terminal-util.o +d9a79c3548defbceb3c7fa8f2da159c1 ./build/src/.libs/libutils_la-alloc-util.o +a64dc89db9e2c310bfe66e54ef566fda ./build/src/.libs/libutils_la-random-util.o +f75605eddb147231efa9d705ad3e4bf6 ./build/src/.libs/libutils_la-strv.o +e8a62251c522a0da67e731d166cbac85 ./build/src/.libs/libutils_la-strxcpyx.o +26eadce08acbbd0231749da14a6a868d ./build/src/.libs/libutils_la-conf-files.o +d71d78ecb28d617bdc5b56374ce2ac1d ./build/src/.libs/libutils_la-path-util.o +54faf822d8344bb3755a08bcbaa5eae1 ./build/src/.libs/libutils_la-parse-util.o +eb2939be90f3d20ac2c6b0c23f902a1e ./build/src/.libs/libutils_la-utf8.o +42f58ff5a71f5945198c4c57a398877b ./build/src/.libs/libutils_la-conf-parser.o +b699df79d58074e6652a2e2e718bec86 ./build/src/.libs/libutils_la-fd-util.o +ecf6c26a33187fbdfa426233a4aededa ./build/src/.libs/libutils_la-cgroup-util.o +c6dd993dbe5b6a846d2ea24c1cf7e178 ./build/src/.libs/libutils_la-util.o +b0ea355469dc1567b0a575316c7601b7 ./build/src/.libs/libutils_la-io-util.o +515b82b3470c14cdb386b9c94a560d84 ./build/src/.libs/libutils_la-fileio.o +a4d6dd916514addadd90113059b70173 ./build/src/.libs/libutils_la-process-util.o +150b5a1a51b7586dd2cc690848c6d518 ./build/src/.libs/libutils_la-dirent-util.o +4d05cfae7c8e3b1889f0a3366ef91b06 ./build/src/.libs/libutils_la-hashmap.o +51ba1d3f54c7d4d5fdf4fc8dba561916 ./build/src/.libs/libutils_la-log.o +ee39c793317491fdd40e7c7f6c8674e7 ./build/src/.libs/libutils_la-mempool.o +739313051ef660daab5f09f17aeeb0a1 ./build/src/.libs/libutils_la-fs-util.o +42ea41c57076c9f30f45cec468e92342 ./build/src/.libs/libutils_la-time-util.o +553e06ce2458601e21aba75c700459cd ./build/src/.libs/libutils_la-hash-funcs.o +5138aa9925a34915a3060957721216f4 ./build/src/.libs/libutils_la-string-util.o +ae0d4cf71d078dcbfe782a12137462f5 ./build/src/.libs/libutils_la-siphash24.o +d41d8cd98f00b204e9800998ecf8427e ./build/src/.dirstamp +67f50c60a0600646f2455dd70b21f096 ./build/src/libutils_la-mempool.lo +ba4b58cb7191fd81c1ad8748dc1a5167 ./build/src/libutils_la-path-util.lo +737e10e0e9430df8d00f73d5ec48df92 ./build/Makefile +d893b9e1c78852b6d3dac30863b147f4 ./build/config.status +5ab7a188164b832ab7d9a0a25d8dd369 ./build/libutils.la +5e899079548cc0dfcba5f2005eee7084 ./build/systemd-bootchart +5b4ca56d55157907052aeab4995fef53 ./build/config.h +b2708fd3c4fee210a9334d5c751eee76 ./build/.libs/libutils.a +91023a1d58d69b4916a8609882d782a8 ./build/stamp-h1 +cdcd7355d7f0547b8290d11e60aa7ed4 ./po/.gitignore +43073d2b230c655c2a27a7f1229fc6fe ./.gitignore +edda0492170de2c710e38eb676fd2a1d ./.github/workflows/ci.yml +7087d8f2dca8cbf6447753514fb161a2 ./man/custom-man.xsl +db4b6933775a71bbe4359652fd21b4ab ./man/systemd-bootchart.xml +b8205214553412d2b7bc0382180b729d ./man/.gitignore +d1322e751321d96d204d4a55e0b730fe ./man/bootchart.conf.xml +c8eee28824d8c22e222b51968ec9cddf ./man/standard-conf.xml +48fa0a5bab5f1961ebfedef0877d3c86 ./man/standard-options.xml +ae14886b8aec428c9cbb83e537562459 ./Makefile.in +751419260aa954499f7abaabaa882bbe ./LICENSE.GPL2 +df86776dc185d4d87c1f542caf0cfb05 ./src/_sd-common.h +efe04ae41058d08de5dc12540e66b2b4 ./src/cgroup-util.c +6d1731c8aac6ece96df450607485eeca ./src/util.c +021e22ec27dc5072673c066599c21408 ./src/utf8.c +053ad02573eca17b00b03ae7085aafec ./src/siphash24.c +28fb7223a9e667a3ecbcc1186d125999 ./src/alloc-util.h +6ee7ccb7725e972d82bfafeaed9659ec ./src/svg.h +594c39ae4f9f1803eb1bdbd0ea863e01 ./src/alloc-util.c +b5e7da7ffcd675f6fb4f500688f774d7 ./src/random-util.h +231d1e037e1360c848d3d53468ed694b ./src/io-util.c +0be53082f471e5e54d85eb3e5d8254a8 ./src/util.h +c8b5f98146230f3a67bef03ba7a245c8 ./src/cgroup-util.h +f5ce77e75c5a4bfb9680f46efcf7d35c ./src/fileio.c +4c9e2e9acd26bacdb1bce8db51cac183 ./src/utf8.h +49a7aa6b763b064073f00d1e8b0a2d0b ./src/parse-util.c +7cc496d1717f2132f1bf064ac6265f13 ./src/fs-util.h +57c1d62841effdcf13e4637f9fc77741 ./src/fs-util.c +a07155b62323a8976415ba23085b0fa3 ./src/stdio-util.h +51a200082dcb88d8d42604d6f4d5939b ./src/bootchart.conf +7d6aa8bda950e79bee603b4a2e161cd5 ./src/log.c +2609951fc730215811afd4631fd664aa ./src/strv.c +4a6ec9ec267df8e1f2081362cb87fae1 ./src/path-util.c +2df3afde7883b535d2583a499c55de6e ./src/unaligned.h +5b3d2e501816359f0e9d1df50c6e7588 ./src/time-util.c +3aafe3fcc7edf5354b19b4050021de3d ./src/hashmap.c +51d3cb93dce28853fe9416ce0466d218 ./src/macro.h +b888bda757b68ae833c8fe26c881c8e0 ./src/Makefile +ab875a6d0a636e26e172a23bc0c1fd75 ./src/fd-util.h +49adf9ab42789ca711add86d7fb308eb ./src/conf-parser.c +7f87bde7153da26f216f2b3411ffe734 ./src/build.h +55d776bb4d6ec39c59baa8f62cb1d61d ./src/strxcpyx.h +9978b48f253476779594f53c2a366885 ./src/log.h +6a011b3dee64c0a17a2c8a871d3844db ./src/bootchart.h +a0f4bcf06833534cd7a4633a73445536 ./src/architecture.h +797e96e4f438ca07e91fc57607512b72 ./src/mempool.h +305e55338baa25b75e3258ee47bd5120 ./src/dirent-util.c +1679368c24bd9372f9e58baef504a5ed ./src/siphash24.h +baaeb1f5cb9187bddb4bcf4c4fdb7ad8 ./src/process-util.c +9cc15a9a959176bbd45eef11af2eb746 ./src/set.h +1576713e3d69ab44ddc085f9d95d3987 ./src/string-util.c +3178a5c7acce1bb77dfa5eb827f90312 ./src/bootchart.c +67852a879b5b4b05a17b3e1db591fa3d ./src/store.c +30628d37d8896e76595fb541d6ffa16c ./src/mempool.c +5807d536e962ad222bda7d5cfaca6af4 ./src/terminal-util.c +c72a4629e0129bee2d0e9882405966ff ./src/conf-files.c +5e8620063b39d79ceb492eb16b104da7 ./src/def.h +e6e48cebe9c47da2311ac8517c225997 ./src/time-util.h +d6436a83142d029994893f4b02a568e5 ./src/strv.h +c9d9b148f95fb4a3ead67fa6d369ead0 ./src/process-util.h +9e576622e4f2172ea1e95b373f0db3da ./src/store.h +95af9044d6745b12abd31069617355a8 ./src/conf-parser.h +e692ee54ed6b4f4ec2d390b49b024dff ./src/svg.c +086ada3b896f1cffcbe46356980ab140 ./src/fd-util.c +0e4105b28d478ed0d7d21c52b6c5b56c ./src/list.h +cdcee35c4fed64553aaaf73bf33ed41a ./src/fileio.h +80d864c10331e74ee7203e8815f1a7bd ./src/random-util.c +9908473d6fcaafeb44ffcb2f4b73d80e ./src/hash-funcs.c +b8f22e74dec3fc79ce0d5f5c707b11f9 ./src/formats-util.h +f3cf87b8dba341a1ec2480d430be95ea ./src/parse-util.h +94febc8d13b68938aa14f8faa62dd7af ./src/hash-funcs.h +1cd0ddd3f190bf93ec85a1623bb5e17e ./src/io-util.h +2a536e225a711b3fb7fb017ed4544e3a ./src/terminal-util.h +41e8f3df1b04c922e41bcdbed327253f ./src/hashmap.h +4842d798fb1d0a566e9edbf17a22ee00 ./src/sd-messages.h +3dd2a316d5c534f6e54d8be4df10d65b ./src/missing.h +ae3632e7c2938dbe4364240f00dd2a1b ./src/attributes.h +505c3c5b01ee275e16c1f5ffc8fae983 ./src/dirent-util.h +ea8ca7ab30795d904235e3e97e725637 ./src/conf-files.h +5472deff0ed38594d9d9c8d5c73c8170 ./src/string-util.h +1a2a4d5adcec93b80ef9cdc4c6779c9b ./src/path-util.h +34a476d651b0d052c50248b249b1d16e ./src/strxcpyx.c +a55a301d81836119ee3dfd45b8a5fc2b ./autogen.sh +8f60e4504f9ef65a9ede825617158803 ./tests/run +c4298c9b3104c3e01d7964326957a340 ./README +761b9d083bd4741484292ce03510f40a ./build-aux/test-driver +086b8da5a251be943f06d3a927bbe60e ./build-aux/missing +7b40bf051e76f597c5e40b14bc2df7ec ./build-aux/config.sub +0e7bbbcbab44193b41459a5c981d1507 ./build-aux/config.guess +b090c5891571c820e91d345a9551af44 ./build-aux/install-sh +b816f92498a6ec8138d9ec53a14bcaa4 ./build-aux/compile +6ecafe15a6088eb7a2f4f2aadbb240ce ./build-aux/depcomp +1a33c3961ce973cdcfc810d81931645c ./build-aux/ltmain.sh +855ef2c77d9eb5e3f07a717e235d28ec ./configure.ac +3be9524adbc33584341d3da4549e26c7 ./configure +004626cec5dff8b05244eb9dd515862b ./Makefile.am +4fbd65380cdd255951079008b364516c ./LICENSE.LGPL2.1 +14173f1f00b539d08c5453caddd5348b ./aclocal.m4 +c3fcc39a9745316eee69d2a3fadc3921 ./config.h.in +a84adb10220cd27413908abde9afbdc5 ./TODO diff --git a/debian/autoreconf.before b/debian/autoreconf.before new file mode 100644 index 0000000..0b9e084 --- /dev/null +++ b/debian/autoreconf.before @@ -0,0 +1,198 @@ +symlink ./m4/intltool.m4 +symlink ./build/.libs/libutils.la +symlink ./po/Makefile.in.in +377b16af7f362324ef6741681a3a7699 ./install_depends.sh +accb0d822cc0d126ab79f39fde9f9a11 ./m4/arch.m4 +30bf3f59677ca1f75150b5a2f399550b ./m4/.gitignore +fc8c18fdd9bda25c8259086a766e98aa ./m4/attributes.m4 +9b7401bd4ac107b4225a6f580fe740a4 ./m4/ax_normalize_path.m4 +c1afc0a8cbf22d213d60d6031d0bb659 ./units/.gitignore +b65f4dc9969ed48813c6b24d4395eb9b ./units/systemd-bootchart.service.in +28dbb66b336e213aacc399c8e8d6ed12 ./build/libtool +deb9cabfb2d4412aed3c71fe0efb5ce1 ./build/units/systemd-bootchart.service +2c890373599b6a1b304f92939750205a ./build/config.log +7086fcf3a092ef1e99c22ce3fbfbce4e ./build/man/bootchart.conf.d.5 +bd0f725649e6122b313fe12061f87488 ./build/man/systemd-bootchart.1 +cecabdeb01ce5c0973430c5770e7e04a ./build/man/bootchart.conf.5 +3205a10b08e6b0c6fd1d842e299e07f9 ./build/src/libutils_la-fd-util.lo +741442742cb53825465e529c926c6862 ./build/src/libutils_la-strxcpyx.lo +89838bf489e2c4affe6a6f21913fca08 ./build/src/libutils_la-strv.lo +14ee00c389bddfb91c1e7f85af02da0e ./build/src/libutils_la-hash-funcs.lo +e787444a4c98ae7459165bf3d18b03df ./build/src/libutils_la-fs-util.lo +95686b955e1860797616513d1bfe638c ./build/src/libutils_la-alloc-util.lo +972498e63caaa28468e2b0de4f36c577 ./build/src/libutils_la-parse-util.lo +7859f85ad37df820131287a9faf28d92 ./build/src/libutils_la-process-util.lo +f34ede05f96626e5bf4c2f755d050d24 ./build/src/.deps/libutils_la-dirent-util.Plo +45b8e3cf37995c6d2af675a669b3273c ./build/src/.deps/libutils_la-alloc-util.Plo +5bca4745099ad4415adec480b3ef9dd2 ./build/src/.deps/libutils_la-utf8.Plo +6fb722312cb5d205c305580e08570aea ./build/src/.deps/libutils_la-cgroup-util.Plo +5f119dde96bf6cf7b2d1b312715018d9 ./build/src/.deps/libutils_la-hashmap.Plo +c2b689f587214adce0848aaa0106bb1b ./build/src/.deps/libutils_la-conf-files.Plo +a888a960f2791a2ade4bed1a57b9d7d7 ./build/src/.deps/libutils_la-random-util.Plo +d7c36270cbe6ee4f97041e6a49617acc ./build/src/.deps/libutils_la-terminal-util.Plo +352d8dca54e36013fe374a5ef67ecabd ./build/src/.deps/libutils_la-fs-util.Plo +922c5452b8834656f5aa155894a52445 ./build/src/.deps/libutils_la-strv.Plo +b7109f3d8d94ca0616a84d386862c421 ./build/src/.deps/libutils_la-io-util.Plo +544ddceadd059fde08ab86a1583c045b ./build/src/.deps/libutils_la-path-util.Plo +d37118a6d9cdd45c1f3c2d027d852993 ./build/src/.deps/libutils_la-process-util.Plo +114860b3d2a39b13013768fa9f504e4c ./build/src/.deps/store.Po +8368ceb969d8fe06dd15376c2c7497ef ./build/src/.deps/libutils_la-string-util.Plo +708b340b7b4fbf4a929ac6ce56770c53 ./build/src/.deps/bootchart.Po +0c59aadae9188f3e10363183a0e59fcf ./build/src/.deps/libutils_la-log.Plo +0b2a447c80a428e017cc8362b77c5240 ./build/src/.deps/libutils_la-time-util.Plo +b3a6284a7ff091955e5e5342303dc3b8 ./build/src/.deps/libutils_la-strxcpyx.Plo +faa3a7b1e632e1a47e6330e7ff459ebd ./build/src/.deps/libutils_la-mempool.Plo +0a879089f39a613ea067282089d2714c ./build/src/.deps/libutils_la-util.Plo +14589c1f5ae3f3e9bb0ec9ef8e6bbc70 ./build/src/.deps/libutils_la-hash-funcs.Plo +9947f7c7db31a99afe44f8becd817f40 ./build/src/.deps/libutils_la-conf-parser.Plo +b7eebb625eef662dbf7c9d9a6aef8403 ./build/src/.deps/libutils_la-parse-util.Plo +5252cc436aa3082a6413e8729d6cd313 ./build/src/.deps/libutils_la-siphash24.Plo +63c35b17602239a77d3f885e05f4bce6 ./build/src/.deps/svg.Po +d41d8cd98f00b204e9800998ecf8427e ./build/src/.deps/.dirstamp +994b4b7d17b6084d445aaa4c2cf8fdae ./build/src/.deps/libutils_la-fd-util.Plo +9c8537fb7db4c426a1f31cf12d90a53a ./build/src/.deps/libutils_la-fileio.Plo +426085d2e12635e41ffa13293270bc0b ./build/src/bootchart.o +b908ef66a521ef9867df6e6c07835deb ./build/src/libutils_la-string-util.lo +5b8697945ffeff7a27997aac33f8c3ea ./build/src/libutils_la-time-util.lo +aef1deacc46c91c0a9e7e3c62ca3c10a ./build/src/libutils_la-fileio.lo +89d9f8a501e84df912319662e79ee5bc ./build/src/libutils_la-log.lo +0d95d99e36ea783b6847b45952eb3705 ./build/src/libutils_la-dirent-util.lo +03406ea2e6fc82a6fc616c894f3a302d ./build/src/libutils_la-conf-parser.lo +c1921df67b36d3114f0d4646719f3aa1 ./build/src/libutils_la-io-util.lo +bf58bb8ccad932cf2fde369dfe02a9ce ./build/src/libutils_la-utf8.lo +f398642767378fbbe3c786dc53de0b10 ./build/src/svg.o +cf974dc55cb13240b85c4fd0bc804080 ./build/src/libutils_la-util.lo +605559e49d90302ef0354d1fba8f5491 ./build/src/libutils_la-terminal-util.lo +949d44797c30a20ad6c6cf932a8ad4a6 ./build/src/store.o +f812c9fed73fabf736d2b3430c5f4a94 ./build/src/libutils_la-siphash24.lo +bdcb566e91f1148b795819146e717281 ./build/src/libutils_la-cgroup-util.lo +aab493e91a60be21b660423bcb6e0915 ./build/src/libutils_la-random-util.lo +fe51001895364aee211d62a4a822a2fe ./build/src/libutils_la-hashmap.lo +a27edf8993544de7b96be19cd62dce5b ./build/src/libutils_la-conf-files.lo +b7b83ab76cf12f12716904a2ae052eea ./build/src/.libs/libutils_la-terminal-util.o +d9a79c3548defbceb3c7fa8f2da159c1 ./build/src/.libs/libutils_la-alloc-util.o +a64dc89db9e2c310bfe66e54ef566fda ./build/src/.libs/libutils_la-random-util.o +f75605eddb147231efa9d705ad3e4bf6 ./build/src/.libs/libutils_la-strv.o +e8a62251c522a0da67e731d166cbac85 ./build/src/.libs/libutils_la-strxcpyx.o +26eadce08acbbd0231749da14a6a868d ./build/src/.libs/libutils_la-conf-files.o +d71d78ecb28d617bdc5b56374ce2ac1d ./build/src/.libs/libutils_la-path-util.o +54faf822d8344bb3755a08bcbaa5eae1 ./build/src/.libs/libutils_la-parse-util.o +eb2939be90f3d20ac2c6b0c23f902a1e ./build/src/.libs/libutils_la-utf8.o +42f58ff5a71f5945198c4c57a398877b ./build/src/.libs/libutils_la-conf-parser.o +b699df79d58074e6652a2e2e718bec86 ./build/src/.libs/libutils_la-fd-util.o +ecf6c26a33187fbdfa426233a4aededa ./build/src/.libs/libutils_la-cgroup-util.o +c6dd993dbe5b6a846d2ea24c1cf7e178 ./build/src/.libs/libutils_la-util.o +b0ea355469dc1567b0a575316c7601b7 ./build/src/.libs/libutils_la-io-util.o +515b82b3470c14cdb386b9c94a560d84 ./build/src/.libs/libutils_la-fileio.o +a4d6dd916514addadd90113059b70173 ./build/src/.libs/libutils_la-process-util.o +150b5a1a51b7586dd2cc690848c6d518 ./build/src/.libs/libutils_la-dirent-util.o +4d05cfae7c8e3b1889f0a3366ef91b06 ./build/src/.libs/libutils_la-hashmap.o +51ba1d3f54c7d4d5fdf4fc8dba561916 ./build/src/.libs/libutils_la-log.o +ee39c793317491fdd40e7c7f6c8674e7 ./build/src/.libs/libutils_la-mempool.o +739313051ef660daab5f09f17aeeb0a1 ./build/src/.libs/libutils_la-fs-util.o +42ea41c57076c9f30f45cec468e92342 ./build/src/.libs/libutils_la-time-util.o +553e06ce2458601e21aba75c700459cd ./build/src/.libs/libutils_la-hash-funcs.o +5138aa9925a34915a3060957721216f4 ./build/src/.libs/libutils_la-string-util.o +ae0d4cf71d078dcbfe782a12137462f5 ./build/src/.libs/libutils_la-siphash24.o +d41d8cd98f00b204e9800998ecf8427e ./build/src/.dirstamp +67f50c60a0600646f2455dd70b21f096 ./build/src/libutils_la-mempool.lo +ba4b58cb7191fd81c1ad8748dc1a5167 ./build/src/libutils_la-path-util.lo +737e10e0e9430df8d00f73d5ec48df92 ./build/Makefile +d893b9e1c78852b6d3dac30863b147f4 ./build/config.status +5ab7a188164b832ab7d9a0a25d8dd369 ./build/libutils.la +5e899079548cc0dfcba5f2005eee7084 ./build/systemd-bootchart +5b4ca56d55157907052aeab4995fef53 ./build/config.h +b2708fd3c4fee210a9334d5c751eee76 ./build/.libs/libutils.a +91023a1d58d69b4916a8609882d782a8 ./build/stamp-h1 +cdcd7355d7f0547b8290d11e60aa7ed4 ./po/.gitignore +43073d2b230c655c2a27a7f1229fc6fe ./.gitignore +edda0492170de2c710e38eb676fd2a1d ./.github/workflows/ci.yml +7087d8f2dca8cbf6447753514fb161a2 ./man/custom-man.xsl +db4b6933775a71bbe4359652fd21b4ab ./man/systemd-bootchart.xml +b8205214553412d2b7bc0382180b729d ./man/.gitignore +d1322e751321d96d204d4a55e0b730fe ./man/bootchart.conf.xml +c8eee28824d8c22e222b51968ec9cddf ./man/standard-conf.xml +48fa0a5bab5f1961ebfedef0877d3c86 ./man/standard-options.xml +ae14886b8aec428c9cbb83e537562459 ./Makefile.in +751419260aa954499f7abaabaa882bbe ./LICENSE.GPL2 +df86776dc185d4d87c1f542caf0cfb05 ./src/_sd-common.h +efe04ae41058d08de5dc12540e66b2b4 ./src/cgroup-util.c +6d1731c8aac6ece96df450607485eeca ./src/util.c +021e22ec27dc5072673c066599c21408 ./src/utf8.c +053ad02573eca17b00b03ae7085aafec ./src/siphash24.c +28fb7223a9e667a3ecbcc1186d125999 ./src/alloc-util.h +6ee7ccb7725e972d82bfafeaed9659ec ./src/svg.h +594c39ae4f9f1803eb1bdbd0ea863e01 ./src/alloc-util.c +b5e7da7ffcd675f6fb4f500688f774d7 ./src/random-util.h +231d1e037e1360c848d3d53468ed694b ./src/io-util.c +0be53082f471e5e54d85eb3e5d8254a8 ./src/util.h +c8b5f98146230f3a67bef03ba7a245c8 ./src/cgroup-util.h +f5ce77e75c5a4bfb9680f46efcf7d35c ./src/fileio.c +4c9e2e9acd26bacdb1bce8db51cac183 ./src/utf8.h +49a7aa6b763b064073f00d1e8b0a2d0b ./src/parse-util.c +7cc496d1717f2132f1bf064ac6265f13 ./src/fs-util.h +57c1d62841effdcf13e4637f9fc77741 ./src/fs-util.c +a07155b62323a8976415ba23085b0fa3 ./src/stdio-util.h +51a200082dcb88d8d42604d6f4d5939b ./src/bootchart.conf +7d6aa8bda950e79bee603b4a2e161cd5 ./src/log.c +2609951fc730215811afd4631fd664aa ./src/strv.c +4a6ec9ec267df8e1f2081362cb87fae1 ./src/path-util.c +2df3afde7883b535d2583a499c55de6e ./src/unaligned.h +5b3d2e501816359f0e9d1df50c6e7588 ./src/time-util.c +3aafe3fcc7edf5354b19b4050021de3d ./src/hashmap.c +51d3cb93dce28853fe9416ce0466d218 ./src/macro.h +b888bda757b68ae833c8fe26c881c8e0 ./src/Makefile +ab875a6d0a636e26e172a23bc0c1fd75 ./src/fd-util.h +49adf9ab42789ca711add86d7fb308eb ./src/conf-parser.c +7f87bde7153da26f216f2b3411ffe734 ./src/build.h +55d776bb4d6ec39c59baa8f62cb1d61d ./src/strxcpyx.h +9978b48f253476779594f53c2a366885 ./src/log.h +6a011b3dee64c0a17a2c8a871d3844db ./src/bootchart.h +a0f4bcf06833534cd7a4633a73445536 ./src/architecture.h +797e96e4f438ca07e91fc57607512b72 ./src/mempool.h +305e55338baa25b75e3258ee47bd5120 ./src/dirent-util.c +1679368c24bd9372f9e58baef504a5ed ./src/siphash24.h +baaeb1f5cb9187bddb4bcf4c4fdb7ad8 ./src/process-util.c +9cc15a9a959176bbd45eef11af2eb746 ./src/set.h +1576713e3d69ab44ddc085f9d95d3987 ./src/string-util.c +3178a5c7acce1bb77dfa5eb827f90312 ./src/bootchart.c +67852a879b5b4b05a17b3e1db591fa3d ./src/store.c +30628d37d8896e76595fb541d6ffa16c ./src/mempool.c +5807d536e962ad222bda7d5cfaca6af4 ./src/terminal-util.c +c72a4629e0129bee2d0e9882405966ff ./src/conf-files.c +5e8620063b39d79ceb492eb16b104da7 ./src/def.h +e6e48cebe9c47da2311ac8517c225997 ./src/time-util.h +d6436a83142d029994893f4b02a568e5 ./src/strv.h +c9d9b148f95fb4a3ead67fa6d369ead0 ./src/process-util.h +9e576622e4f2172ea1e95b373f0db3da ./src/store.h +95af9044d6745b12abd31069617355a8 ./src/conf-parser.h +e692ee54ed6b4f4ec2d390b49b024dff ./src/svg.c +086ada3b896f1cffcbe46356980ab140 ./src/fd-util.c +0e4105b28d478ed0d7d21c52b6c5b56c ./src/list.h +cdcee35c4fed64553aaaf73bf33ed41a ./src/fileio.h +80d864c10331e74ee7203e8815f1a7bd ./src/random-util.c +9908473d6fcaafeb44ffcb2f4b73d80e ./src/hash-funcs.c +b8f22e74dec3fc79ce0d5f5c707b11f9 ./src/formats-util.h +f3cf87b8dba341a1ec2480d430be95ea ./src/parse-util.h +94febc8d13b68938aa14f8faa62dd7af ./src/hash-funcs.h +1cd0ddd3f190bf93ec85a1623bb5e17e ./src/io-util.h +2a536e225a711b3fb7fb017ed4544e3a ./src/terminal-util.h +41e8f3df1b04c922e41bcdbed327253f ./src/hashmap.h +4842d798fb1d0a566e9edbf17a22ee00 ./src/sd-messages.h +3dd2a316d5c534f6e54d8be4df10d65b ./src/missing.h +ae3632e7c2938dbe4364240f00dd2a1b ./src/attributes.h +505c3c5b01ee275e16c1f5ffc8fae983 ./src/dirent-util.h +ea8ca7ab30795d904235e3e97e725637 ./src/conf-files.h +5472deff0ed38594d9d9c8d5c73c8170 ./src/string-util.h +1a2a4d5adcec93b80ef9cdc4c6779c9b ./src/path-util.h +34a476d651b0d052c50248b249b1d16e ./src/strxcpyx.c +a55a301d81836119ee3dfd45b8a5fc2b ./autogen.sh +8f60e4504f9ef65a9ede825617158803 ./tests/run +c4298c9b3104c3e01d7964326957a340 ./README +855ef2c77d9eb5e3f07a717e235d28ec ./configure.ac +3be9524adbc33584341d3da4549e26c7 ./configure +004626cec5dff8b05244eb9dd515862b ./Makefile.am +4fbd65380cdd255951079008b364516c ./LICENSE.LGPL2.1 +14173f1f00b539d08c5453caddd5348b ./aclocal.m4 +c3fcc39a9745316eee69d2a3fadc3921 ./config.h.in +a84adb10220cd27413908abde9afbdc5 ./TODO diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..e5cc597 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,123 @@ +systemd-bootchart (236-1) unstable; urgency=medium + + [ liuyunhe ] + * add -t argument, when arg is set, the runtime counts will start from + nowtime + * add -d argument, when arg is set, we can specify the running duration + * fix the issue of CPU costs statistics are inaccurate while the threads + costs were not count by ps->total + + -- liuyunhe Wed, 09 Jul 2025 10:40:37 +0800 + +systemd-bootchart (235-2) unstable; urgency=medium + + [ Chris Hofstaedtler ] + * Assume UsrMerged install layout (DEP17 M2) (Closes: #1060363) + + -- Michael Biebl Wed, 10 Jan 2024 01:15:40 +0100 + +systemd-bootchart (235-1) unstable; urgency=medium + + [ Debian Janitor ] + * Remove constraints unnecessary since buster + * Trim trailing whitespace. + * Set upstream metadata fields: Bug-Database, Bug-Submit, Repository- + Browse. + + [ Luca Boccassi ] + * New upstream version 235 + * Drop Add-riscv64-support.patch, merged upstream + * Add myself to Uploaders + * Bump Standards-Version to 4.6.2, no changes + + -- Luca Boccassi Sat, 04 Nov 2023 00:20:04 +0000 + +systemd-bootchart (234-2) unstable; urgency=medium + + * Bump Standards-Version to 4.6.1 (no further changes required) + * Add riscv64 support (Closes: #1010255) + * Update debian/watch to version 4 + + -- Michael Biebl Sun, 24 Jul 2022 14:50:08 +0200 + +systemd-bootchart (234-1) unstable; urgency=medium + + * New upstream version 234 + * Rebase patches + + -- Michael Biebl Sun, 20 Dec 2020 20:55:05 +0100 + +systemd-bootchart (233-3) unstable; urgency=medium + + * Switch to debhelper-compat and bump compat level to 13 + * Switch to dh_installsystemd + * Bump Standards-Version to 4.5.1 + * Drop obsolete Breaks/Replaces + * Increase max PID and CPU constants. + The numbers were insufficient for modern servers. + Also avoid crash in svg_ps_bars which might be happening due to the + previous low max pids number. (Closes: #976922) + + -- Michael Biebl Sat, 12 Dec 2020 16:00:36 +0100 + +systemd-bootchart (233-2) unstable; urgency=medium + + [ Michael Biebl ] + * Update Vcs-* to point to https://salsa.debian.org + * Set Rules-Requires-Root to no + + [ Nicolas Braud-Santoni ] + * debian/copyright: Point to CC-1.0 license in /usr/share/common-licenses/ + (Closes: #882630) + + [ Martin Pitt ] + * debian/copyright: Use https URL for Format: + * Bump Standards-Version to 4.1.3 + * debian/copyright: Move global wildcard section to the top. + Fixes lintian warning + global-files-wildcard-not-first-paragraph-in-dep5-copyright. + + -- Martin Pitt Sun, 25 Mar 2018 23:53:27 +0200 + +systemd-bootchart (233-1) unstable; urgency=medium + + * New upstream version 233 + * Drop debian/patches/Revert-bootchart-fix-per-cpu-small-scales.patch + * Bump Standards-Version to 4.1.0 + + -- Michael Biebl Sat, 16 Sep 2017 19:12:17 +0200 + +systemd-bootchart (232-1) unstable; urgency=medium + + [ Michael Biebl ] + * New upstream version 232 + * Bump debhelper compat level to 10 for automatic dh-autoreconf + * Update Vcs-* following the latest recommendation + * Revert "bootchart: fix per-cpu & small scales." + + [ Felipe Sateler ] + * Do not enable systemd-bootchart.service by default + + -- Michael Biebl Sun, 18 Jun 2017 23:44:18 +0200 + +systemd-bootchart (231-1) unstable; urgency=medium + + * New upstream release. + * Use the git archive (gzipped) instead of the release tarball. The latter + is compressed using xz and causes failures with pristine-tar. + + -- Michael Biebl Wed, 14 Sep 2016 22:36:25 +0200 + +systemd-bootchart (230-2) unstable; urgency=medium + + * Fix paths in man pages + * Install upstream README which documents required kernel interfaces + + -- Michael Biebl Sun, 03 Jul 2016 14:52:06 +0200 + +systemd-bootchart (230-1) unstable; urgency=medium + + * Initial release. This got split off from the main systemd sources in + version 230. + + -- Martin Pitt Wed, 22 Jun 2016 15:13:08 +0200 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..fce1ded --- /dev/null +++ b/debian/control @@ -0,0 +1,45 @@ +Source: systemd-bootchart +Section: admin +Priority: optional +Maintainer: Debian systemd Maintainers +Uploaders: Michael Biebl , + Luca Boccassi , + Marco d'Itri , + Sjoerd Simons , + Martin Pitt +Standards-Version: 4.6.2 +Rules-Requires-Root: no +Vcs-Git: https://salsa.debian.org/systemd-team/systemd-bootchart.git +Vcs-Browser: https://salsa.debian.org/systemd-team/systemd-bootchart +Homepage: https://github.com/systemd/systemd-bootchart/ +Build-Depends: debhelper-compat (= 13), + intltool, + pkg-config, + libsystemd-dev, + xsltproc, + docbook-xsl, + docbook-xml, + +Package: systemd-bootchart +Architecture: linux-any +Multi-Arch: foreign +Depends: ${shlibs:Depends}, + ${misc:Depends}, +Description: boot performance graphing tool + systemd-bootchart is a tool, usually run at system startup, that collects the + CPU load, disk load, memory usage, as well as per-process information from a + running system. Collected results are output as an SVG graph. Normally, + systemd-bootchart is invoked by the kernel by passing + init=/lib/systemd/systemd-bootchart on the kernel command line. + systemd-bootchart will then fork the real init off to resume normal system + startup, while monitoring and logging startup information in the background. + . + After collecting a certain amount of data (usually 15–30 seconds, default 20s) + the logging stops and a graph is generated from the logged information. This + graph contains vital clues as to which resources are being used, in which + order, and where possible problems exist in the startup sequence of the + system. It is essentially a more detailed version of the systemd-analyze plot + function. + . + bootchart can also be used at any moment in time to collect and graph some + data for an amount of time. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..ec2a3f7 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,51 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: systemd-bootchart +Upstream-Contact: systemd-devel@lists.freedesktop.org +Source: https://github.com/systemd/systemd-bootchart/ + +Files: * +Copyright: Copyright 2000, 2005 Red Hat, Inc. + Copyright 2008-2013 Kay Sievers + Copyright 2010-2015 Lennart Poettering + Copyright 2013 Zbigniew Jędrzejewski-Szmek + Copyright 2014 Michal Schmidt + Copyright 2014 Tom Gundersen + Copyright 2015 Ronny Chevalier + Copyright (C) 1999, 2000 Tom Tromey + Copyright (C) 2009-2013 Intel Corporation +License: LGPL-2.1+ + +Files: src/siphash24.h + src/siphash24.c +Copyright: 2012 Jean-Philippe Aumasson + 2012 Daniel J. Bernstein +License: CC0-1.0 + To the extent possible under law, the author(s) have dedicated all copyright + and related and neighboring rights to this software to the public domain + worldwide. This software is distributed without any warranty. + . + The full text of the CC0 1.0 Universal license is available + https://creativecommons.org/publicdomain/zero/1.0/ and in + /usr/share/common-licenses/CC0-1.0 on Debian systems starting with Buster. + +Files: debian/* +Copyright: (C) 2016 Martin Pitt +License: LGPL-2.1+ + +License: LGPL-2.1+ + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1, or (at your option) + any later version. + . + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + . + You should have received a copy of the GNU Lesser General Public License along + with this program; if not, write to the Free Software Foundation, + Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + . + On Debian systems, the complete text of the GNU Lesser General Public + License version 2.1 can be found in ‘/usr/share/common-licenses/LGPL-2.1’. diff --git a/debian/docs b/debian/docs new file mode 100644 index 0000000..e845566 --- /dev/null +++ b/debian/docs @@ -0,0 +1 @@ +README diff --git a/debian/gbp.conf b/debian/gbp.conf new file mode 100644 index 0000000..478d845 --- /dev/null +++ b/debian/gbp.conf @@ -0,0 +1,4 @@ +[DEFAULT] +pristine-tar = True +patch-numbers = False +debian-branch = master diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..0d94553 --- /dev/null +++ b/debian/rules @@ -0,0 +1,7 @@ +#! /usr/bin/make -f + +%: + dh $@ + +override_dh_installsystemd: + dh_installsystemd --no-enable diff --git a/debian/salsa-ci.yml b/debian/salsa-ci.yml new file mode 100644 index 0000000..33c3a64 --- /dev/null +++ b/debian/salsa-ci.yml @@ -0,0 +1,4 @@ +--- +include: + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml + - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..89ae9db --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (native) diff --git a/debian/tests/bootchart b/debian/tests/bootchart new file mode 100644 index 0000000..c8b7f62 --- /dev/null +++ b/debian/tests/bootchart @@ -0,0 +1,51 @@ +#!/bin/sh +# Author: Martin Pitt +set -e + +if ! [ -e /etc/default/grub ]; then + echo "Not using grub, skipping" + exit 0 +fi + +if ! [ -x /tmp/autopkgtest-reboot ]; then + echo "autopkgtest testbed does not support reboot, skipping" + exit 0 +fi + +if [ ! -e /proc/schedstat ]; then + echo "CONFIG_SCHEDSTAT not enabled on this kernel, bootchart not available" + exit 0 +fi + +# first stage: prepare bootchart boot +if [ -z "$ADT_REBOOT_MARK" ]; then + # append init= boot option + mkdir -p /etc/default/grub.d + cur_default=$(grep -h ^GRUB_CMDLINE_LINUX_DEFAULT /etc/default/grub $(ls /etc/default/grub.d/*.cfg 2>/dev/null || true) | tail -n1) + cur_default=$(echo "$cur_default" | sed 's!"$! init=/lib/systemd/systemd-bootchart"!') + echo "$cur_default" > /etc/default/grub.d/99-init-bootchart.cfg + update-grub 2>&1 + rm /etc/default/grub.d/99-init-bootchart.cfg + + /tmp/autopkgtest-reboot b1 +fi + +# second stage: should have booted with bootchart +update-grub 2>&1 # restore original initramfs + +timeout=180 +while [ ! -s /run/log/bootchart*.svg -a $timeout -ge 0 ]; do + timeout=$((timeout - 5)) + sleep 5 + echo "waiting for bootchart... (${timeout}s left)" +done +if [ ! -s /run/log/bootchart*.svg ]; then + echo "timed out waiting for bootchart" >&2 + exit 1 +fi + +if ! grep -q 'DOCTYPE svg' /run/log/bootchart*.svg; then + echo "ERROR: invalid bootchart:" >&2 + cat /run/log/bootchart*.svg >&2 + exit 1 +fi diff --git a/debian/tests/control b/debian/tests/control new file mode 100644 index 0000000..b3766c0 --- /dev/null +++ b/debian/tests/control @@ -0,0 +1,2 @@ +Tests: bootchart +Restrictions: needs-root, isolation-machine diff --git a/debian/upstream/metadata b/debian/upstream/metadata new file mode 100644 index 0000000..e0f754a --- /dev/null +++ b/debian/upstream/metadata @@ -0,0 +1,4 @@ +--- +Bug-Database: https://github.com/systemd/systemd-bootchart/issues +Bug-Submit: https://github.com/systemd/systemd-bootchart/issues/new +Repository-Browse: https://github.com/systemd/systemd-bootchart diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..3dc7bf6 --- /dev/null +++ b/debian/watch @@ -0,0 +1,3 @@ +version=4 +opts=filenamemangle=s/.+\/v?(\d+)\S*\.tar\.gz/systemd-bootchart-$1\.tar\.gz/,pgpmode=none \ + https://github.com/systemd/systemd-bootchart/tags .*/v?(\d+)\S*\.tar\.gz