From: "Fabian Groffen" <grobian@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/portage-utils:master commit in: /
Date: Sun, 29 Sep 2019 12:18:16 +0000 (UTC) [thread overview]
Message-ID: <1569759198.f05c78008b1754a79e31e793a67d07ed8f5d11bc.grobian@gentoo> (raw)
commit: f05c78008b1754a79e31e793a67d07ed8f5d11bc
Author: sbesl <sambesselink <AT> planet <DOT> nl>
AuthorDate: Fri Aug 9 22:31:57 2019 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Sun Sep 29 12:13:18 2019 +0000
URL: https://gitweb.gentoo.org/proj/portage-utils.git/commit/?id=f05c7800
Make qfile also check the prune lib registry
Modifications by Fabian Groffen <grobian <AT> gentoo.org>:
- indentation fixes
- declarations go on top
- no C99 features
- adapt style to 0.80 release
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
qfile.c | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 103 insertions(+), 2 deletions(-)
diff --git a/qfile.c b/qfile.c
index bc5c9ac..63b47da 100644
--- a/qfile.c
+++ b/qfile.c
@@ -20,7 +20,7 @@
#include "rmspace.h"
#include "tree.h"
-#define QFILE_FLAGS "F:doRx:S" COMMON_FLAGS
+#define QFILE_FLAGS "F:doRx:SP" COMMON_FLAGS
static struct option const qfile_long_opts[] = {
{"format", a_argument, NULL, 'F'},
{"slots", no_argument, NULL, 'S'},
@@ -28,6 +28,7 @@ static struct option const qfile_long_opts[] = {
{"dir", no_argument, NULL, 'd'},
{"orphans", no_argument, NULL, 'o'},
{"exclude", a_argument, NULL, 'x'},
+ {"skip-plibreg",no_argument, NULL, 'P'},
COMMON_LONG_OPTS
};
static const char * const qfile_opts_help[] = {
@@ -37,6 +38,7 @@ static const char * const qfile_opts_help[] = {
"Also match directories for single component arguments",
"List orphan files",
"Don't look in package <arg> (used with --orphans)",
+ "Don't look in the prunelib registry",
COMMON_OPTS_HELP
};
#define qfile_usage(ret) usage(ret, QFILE_FLAGS, qfile_long_opts, qfile_opts_help, NULL, lookup_applet_idx("qfile"))
@@ -53,6 +55,7 @@ typedef struct {
char **dirnames;
char **realdirnames;
short *non_orphans;
+ int *results;
} qfile_args_t;
struct qfile_opt_state {
@@ -69,10 +72,88 @@ struct qfile_opt_state {
bool basename;
bool orphans;
bool assume_root_prefix;
+ bool skip_plibreg;
const char *format;
bool need_full_atom;
};
+/*
+ * As a final step, check if file is in the plib_reg
+ */
+static int qfile_check_plibreg(void *priv)
+{
+ struct qfile_opt_state *state = priv;
+
+ char fn_plibreg[_Q_PATH_MAX];
+ int fd_plibreg;
+ FILE *fp_plibreg;
+ struct stat cst;
+
+ char file[_Q_PATH_MAX];
+ char *line = NULL;
+ size_t len = 0;
+ int found = 0;
+ int i;
+
+ qfile_args_t *args = &state->args;
+ char **base_names = args->basenames;
+ char **dir_names = args->dirnames;
+ short *non_orphans = args->non_orphans;
+ int *results = args->results;
+
+ /* Open plibreg */
+ snprintf(fn_plibreg, _Q_PATH_MAX, "%s%s",
+ CONFIG_EPREFIX, "var/lib/portage/preserved_libs_registry");
+ fp_plibreg = NULL;
+ fd_plibreg = open(fn_plibreg, O_RDONLY|O_CLOEXEC, 0);
+ if (fd_plibreg == -1)
+ return 0;
+ if (fstat(fd_plibreg, &cst)) {
+ close(fd_plibreg);
+ return 0;
+ }
+ if ((fp_plibreg = fdopen(fd_plibreg, "r")) == NULL) {
+ close(fd_plibreg);
+ return 0;
+ }
+
+ for (i = 0; i < args->length; i++) {
+ if (base_names[i] == NULL)
+ continue;
+ if (non_orphans && non_orphans[i])
+ continue;
+ if (results[i] == 1)
+ continue;
+
+ if (dir_names[i] != NULL)
+ snprintf(file, sizeof(file), "%s/%s", dir_names[i], base_names[i]);
+ else
+ snprintf(file, sizeof(file), "%s", base_names[i]);
+
+ while (getline(&line, &len, fp_plibreg) != -1)
+ if (strstr(line, file) != NULL) {
+ found++;
+ if (!quiet)
+ printf("%splib_registry%s\n", BLUE, NORM);
+ else
+ printf("%splib_registry%s: %s\n", BLUE, NORM, file);
+ }
+ }
+
+ if (line)
+ free(line);
+
+ return found;
+}
+
+/*
+ * 1. Do package exclusion tests
+ * 2. Run through CONTENTS file, perform tests and fail-by-continue
+ * 3. On success bump and return retvalue 'found'
+ *
+ * We assume the people calling us have chdir(/var/db/pkg) and so
+ * we use relative paths throughout here.
+ */
static int qfile_cb(tree_pkg_ctx *pkg_ctx, void *priv)
{
struct qfile_opt_state *state = priv;
@@ -88,6 +169,7 @@ static int qfile_cb(tree_pkg_ctx *pkg_ctx, void *priv)
char **dir_names = args->dirnames;
char **real_dir_names = args->realdirnames;
short *non_orphans = args->non_orphans;
+ int *results = args->results;
int found = 0;
/* If exclude_pkg is not NULL, check it. We are looking for files
@@ -116,6 +198,7 @@ static int qfile_cb(tree_pkg_ctx *pkg_ctx, void *priv)
if (fp == NULL)
goto qlist_done;
+ /* Run through CONTENTS file */
while (getline(&state->buf, &state->buflen, fp) != -1) {
size_t dirname_len;
contents_entry *e;
@@ -224,6 +307,9 @@ static int qfile_cb(tree_pkg_ctx *pkg_ctx, void *priv)
} else {
non_orphans[i] = 1;
}
+
+ /* Success */
+ results[i] = 1;
found++;
}
}
@@ -250,6 +336,7 @@ static void destroy_qfile_args(qfile_args_t *qfile_args)
free(qfile_args->dirnames);
free(qfile_args->realdirnames);
free(qfile_args->non_orphans);
+ free(qfile_args->results);
memset(qfile_args, 0, sizeof(qfile_args_t));
}
@@ -268,6 +355,7 @@ prepare_qfile_args(const int argc, const char **argv, struct qfile_opt_state *st
char **basenames = NULL;
char **dirnames = NULL;
char **realdirnames = NULL;
+ int *results = NULL;
char tmppath[_Q_PATH_MAX];
char abspath[_Q_PATH_MAX];
@@ -279,6 +367,7 @@ prepare_qfile_args(const int argc, const char **argv, struct qfile_opt_state *st
basenames = xcalloc(argc, sizeof(char*));
dirnames = xcalloc(argc, sizeof(char*));
realdirnames = xcalloc(argc, sizeof(char*));
+ results = xcalloc(argc, sizeof(int));
for (i = 0; i < argc; ++i) {
/* Record basename, but if it is ".", ".." or "/" */
@@ -375,6 +464,7 @@ prepare_qfile_args(const int argc, const char **argv, struct qfile_opt_state *st
args->dirnames = dirnames;
args->realdirnames = realdirnames;
args->length = argc;
+ args->results = results;
if (state->orphans)
args->non_orphans = xcalloc(argc, sizeof(short));
@@ -390,6 +480,7 @@ int qfile_main(int argc, char **argv)
.basename = false,
.orphans = false,
.assume_root_prefix = false,
+ .skip_plibreg = false,
.format = NULL,
};
int i, nb_of_queries, found = 0;
@@ -403,6 +494,7 @@ int qfile_main(int argc, char **argv)
case 'd': state.basename = true; break;
case 'o': state.orphans = true; break;
case 'R': state.assume_root_prefix = true; break;
+ case 'P': state.skip_plibreg = true; break;
case 'x':
if (state.exclude_pkg)
err("--exclude can only be used once.");
@@ -471,7 +563,8 @@ int qfile_main(int argc, char **argv)
/* Prepare the qfile(...) arguments structure */
nb_of_queries = prepare_qfile_args(argc, (const char **) argv, &state);
- /* Now do the actual `qfile` checking */
+
+ /* Now do the actual `qfile` checking by looking at CONTENTS of all pkgs */
if (nb_of_queries > 0) {
tree_ctx *vdb = tree_open_vdb(portroot, portvdb);
if (vdb != NULL) {
@@ -480,6 +573,14 @@ int qfile_main(int argc, char **argv)
}
}
+ /* Also check the prune lib registry.
+ * But only for files we otherwise couldn't account for. If we'd
+ * check plib_reg for all files, we would get duplicate messages for
+ * files that were re-added to CONTENTS files after a version
+ * upgrade (which are also recorded in plib_reg). */
+ if (nb_of_queries > 0 && !state.skip_plibreg)
+ found += qfile_check_plibreg(&state);
+
if (state.args.non_orphans) {
/* display orphan files */
for (i = 0; i < state.args.length; i++) {
next reply other threads:[~2019-09-29 12:18 UTC|newest]
Thread overview: 593+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-29 12:18 Fabian Groffen [this message]
-- strict thread matches above, loose matches on Subject: below --
2024-12-02 7:26 [gentoo-commits] proj/portage-utils:master commit in: / Fabian Groffen
2024-07-03 19:44 Fabian Groffen
2024-06-28 19:51 Fabian Groffen
2024-06-27 19:19 Fabian Groffen
2024-04-20 13:05 Fabian Groffen
2024-03-29 11:22 Fabian Groffen
2024-03-29 10:58 Fabian Groffen
2024-03-29 10:57 Fabian Groffen
2024-01-02 13:16 Fabian Groffen
2024-01-02 13:16 Fabian Groffen
2024-01-02 7:57 Fabian Groffen
2024-01-01 10:37 Fabian Groffen
2023-12-20 21:32 Mike Frysinger
2023-07-18 6:28 Fabian Groffen
2023-07-18 6:28 Fabian Groffen
2023-04-21 19:11 Fabian Groffen
2023-03-01 21:00 Fabian Groffen
2023-02-22 20:06 Fabian Groffen
2023-02-07 8:10 Fabian Groffen
2022-12-15 9:13 Fabian Groffen
2022-12-15 9:03 Fabian Groffen
2022-12-15 9:03 Fabian Groffen
2022-11-16 8:59 Fabian Groffen
2022-08-29 8:44 Fabian Groffen
2022-08-29 8:44 Fabian Groffen
2022-08-28 12:26 Fabian Groffen
2022-08-28 12:26 Fabian Groffen
2022-06-14 6:36 Fabian Groffen
2022-05-26 14:53 Fabian Groffen
2022-05-20 17:15 Fabian Groffen
2022-04-06 19:31 Fabian Groffen
2022-02-27 12:29 Fabian Groffen
2022-02-23 11:57 Fabian Groffen
2022-02-23 11:57 Fabian Groffen
2022-02-12 18:31 Fabian Groffen
2022-02-12 18:31 Fabian Groffen
2022-02-12 18:31 Fabian Groffen
2022-02-12 17:13 Fabian Groffen
2022-02-12 17:13 Fabian Groffen
2022-02-12 17:13 Fabian Groffen
2022-02-12 17:13 Fabian Groffen
2022-02-12 17:13 Fabian Groffen
2022-02-12 16:14 Fabian Groffen
2022-02-07 7:16 Fabian Groffen
2022-02-06 15:21 Fabian Groffen
2022-02-06 14:51 Fabian Groffen
2022-02-06 14:29 Fabian Groffen
2022-02-06 14:29 Fabian Groffen
2022-01-31 8:01 Fabian Groffen
2021-12-31 15:36 Fabian Groffen
2021-12-31 15:36 Fabian Groffen
2021-12-31 15:36 Fabian Groffen
2021-12-29 12:20 Fabian Groffen
2021-12-27 18:13 Fabian Groffen
2021-12-26 13:59 Fabian Groffen
2021-12-25 9:15 Fabian Groffen
2021-12-23 12:55 Fabian Groffen
2021-12-21 11:30 Fabian Groffen
2021-12-13 8:39 Fabian Groffen
2021-12-13 8:39 Fabian Groffen
2021-12-13 8:39 Fabian Groffen
2021-11-13 14:27 Fabian Groffen
2021-11-13 14:27 Fabian Groffen
2021-11-07 10:53 Fabian Groffen
2021-10-09 12:03 Fabian Groffen
2021-10-03 11:15 Fabian Groffen
2021-10-03 8:54 Fabian Groffen
2021-09-27 18:14 Fabian Groffen
2021-07-06 6:43 Fabian Groffen
2021-07-05 8:40 Fabian Groffen
2021-07-01 10:07 Fabian Groffen
2021-07-01 10:05 Fabian Groffen
2021-06-30 6:26 Fabian Groffen
2021-06-24 6:44 Fabian Groffen
2021-06-23 7:14 Fabian Groffen
2021-06-21 20:04 Fabian Groffen
2021-06-17 6:27 Fabian Groffen
2021-06-16 20:11 Fabian Groffen
2021-06-16 19:21 Fabian Groffen
2021-06-16 19:21 Fabian Groffen
2021-06-16 19:21 Fabian Groffen
2021-06-16 19:21 Fabian Groffen
2021-06-16 19:21 Fabian Groffen
2021-06-16 19:21 Fabian Groffen
2021-06-16 19:19 Fabian Groffen
2021-06-01 19:43 Fabian Groffen
2021-06-01 19:43 Fabian Groffen
2021-05-31 19:14 Fabian Groffen
2021-05-15 12:19 Fabian Groffen
2021-05-10 9:16 Fabian Groffen
2021-05-02 11:32 Fabian Groffen
2021-05-02 11:25 Fabian Groffen
2021-05-02 11:25 Fabian Groffen
2021-05-01 19:32 Fabian Groffen
2021-05-01 8:40 Fabian Groffen
2021-03-13 20:32 Fabian Groffen
2021-02-20 12:06 Fabian Groffen
2021-02-20 11:44 Fabian Groffen
2021-02-20 11:44 Fabian Groffen
2021-02-17 20:23 Fabian Groffen
2020-11-29 9:13 Fabian Groffen
2020-11-21 10:53 Fabian Groffen
2020-11-21 10:45 Fabian Groffen
2020-11-21 10:00 Fabian Groffen
2020-11-21 9:53 Fabian Groffen
2020-11-21 8:53 Fabian Groffen
2020-11-14 17:06 Fabian Groffen
2020-11-14 17:06 Fabian Groffen
2020-11-13 9:32 Fabian Groffen
2020-10-04 19:30 Fabian Groffen
2020-10-04 19:06 Fabian Groffen
2020-10-04 18:46 Fabian Groffen
2020-10-04 18:44 Fabian Groffen
2020-10-04 12:33 Fabian Groffen
2020-10-04 11:54 Fabian Groffen
2020-10-04 11:31 Fabian Groffen
2020-10-04 11:09 Fabian Groffen
2020-08-17 14:34 Fabian Groffen
2020-08-17 13:08 Fabian Groffen
2020-08-17 13:08 Fabian Groffen
2020-08-14 10:44 Fabian Groffen
2020-08-14 10:09 Fabian Groffen
2020-08-14 9:35 Fabian Groffen
2020-08-14 9:35 Fabian Groffen
2020-08-02 7:39 Fabian Groffen
2020-07-08 8:12 Fabian Groffen
2020-06-28 19:11 Fabian Groffen
2020-06-28 15:58 Fabian Groffen
2020-06-27 9:38 Fabian Groffen
2020-06-27 9:38 Fabian Groffen
2020-05-25 19:01 Fabian Groffen
2020-05-25 18:29 Fabian Groffen
2020-05-25 18:25 Fabian Groffen
2020-05-25 18:08 Fabian Groffen
2020-05-25 18:05 Fabian Groffen
2020-05-25 11:20 Fabian Groffen
2020-05-25 11:12 Fabian Groffen
2020-05-25 10:43 Fabian Groffen
2020-05-25 10:43 Fabian Groffen
2020-05-21 11:13 Fabian Groffen
2020-05-17 12:35 Fabian Groffen
2020-05-17 12:35 Fabian Groffen
2020-05-17 12:35 Fabian Groffen
2020-05-17 12:35 Fabian Groffen
2020-05-17 8:27 Fabian Groffen
2020-05-17 8:27 Fabian Groffen
2020-05-17 8:15 Fabian Groffen
2020-05-16 18:51 Fabian Groffen
2020-05-16 14:30 Fabian Groffen
2020-05-16 13:06 Fabian Groffen
2020-05-16 13:06 Fabian Groffen
2020-05-02 8:45 Fabian Groffen
2020-04-27 7:46 Fabian Groffen
2020-02-21 8:50 Fabian Groffen
2020-02-21 8:18 Fabian Groffen
2020-01-31 14:45 Fabian Groffen
2020-01-31 13:26 Fabian Groffen
2020-01-31 13:26 Fabian Groffen
2020-01-31 13:26 Fabian Groffen
2020-01-31 10:49 Fabian Groffen
2020-01-31 10:49 Fabian Groffen
2020-01-31 10:49 Fabian Groffen
2020-01-26 19:31 Fabian Groffen
2020-01-25 12:20 Fabian Groffen
2020-01-25 12:20 Fabian Groffen
2020-01-25 12:11 Fabian Groffen
2020-01-25 10:01 Fabian Groffen
2020-01-25 9:45 Fabian Groffen
2020-01-25 9:11 Fabian Groffen
2020-01-25 9:11 Fabian Groffen
2020-01-25 9:03 Fabian Groffen
2020-01-25 9:03 Fabian Groffen
2020-01-25 9:03 Fabian Groffen
2020-01-25 9:03 Fabian Groffen
2020-01-25 9:03 Fabian Groffen
2020-01-22 20:11 Fabian Groffen
2020-01-22 20:11 Fabian Groffen
2020-01-22 20:11 Fabian Groffen
2020-01-22 20:04 Fabian Groffen
2020-01-22 20:04 Fabian Groffen
2020-01-22 20:04 Fabian Groffen
2020-01-22 20:04 Fabian Groffen
2020-01-22 19:54 Fabian Groffen
2020-01-22 19:54 Fabian Groffen
2020-01-22 19:54 Fabian Groffen
2020-01-22 19:54 Fabian Groffen
2020-01-22 19:54 Fabian Groffen
2020-01-22 19:54 Fabian Groffen
2020-01-22 19:54 Fabian Groffen
2020-01-20 19:54 Fabian Groffen
2020-01-19 19:36 Fabian Groffen
2020-01-19 19:36 Fabian Groffen
2020-01-19 19:36 Fabian Groffen
2020-01-19 19:36 Fabian Groffen
2020-01-19 19:36 Fabian Groffen
2020-01-19 19:36 Fabian Groffen
2020-01-19 19:09 Fabian Groffen
2020-01-19 19:09 Fabian Groffen
2020-01-19 19:09 Fabian Groffen
2020-01-19 19:09 Fabian Groffen
2020-01-19 19:09 Fabian Groffen
2020-01-19 19:09 Fabian Groffen
2020-01-19 19:09 Fabian Groffen
2020-01-19 19:09 Fabian Groffen
2020-01-19 16:40 Fabian Groffen
2020-01-19 16:37 Fabian Groffen
2020-01-19 16:37 Fabian Groffen
2020-01-19 12:37 Fabian Groffen
2020-01-19 12:37 Fabian Groffen
2020-01-19 12:37 Fabian Groffen
2020-01-19 12:37 Fabian Groffen
2020-01-19 12:37 Fabian Groffen
2020-01-19 12:37 Fabian Groffen
2020-01-19 12:37 Fabian Groffen
2020-01-19 12:37 Fabian Groffen
2020-01-18 13:09 Fabian Groffen
2020-01-06 8:03 Fabian Groffen
2020-01-06 7:36 Fabian Groffen
2020-01-05 16:08 Fabian Groffen
2020-01-05 16:08 Fabian Groffen
2020-01-05 16:08 Fabian Groffen
2020-01-05 13:28 Fabian Groffen
2020-01-04 20:02 Fabian Groffen
2020-01-04 19:48 Fabian Groffen
2020-01-04 13:28 Fabian Groffen
2020-01-04 10:44 Fabian Groffen
2020-01-04 10:38 Fabian Groffen
2020-01-04 10:27 Fabian Groffen
2020-01-04 10:20 Fabian Groffen
2020-01-03 15:05 Fabian Groffen
2020-01-03 14:58 Fabian Groffen
2020-01-03 10:36 Fabian Groffen
2020-01-02 20:27 Fabian Groffen
2020-01-02 20:00 Fabian Groffen
2020-01-02 15:32 Fabian Groffen
2020-01-02 15:09 Fabian Groffen
2020-01-02 15:09 Fabian Groffen
2020-01-02 14:07 Fabian Groffen
2020-01-02 14:07 Fabian Groffen
2020-01-02 14:07 Fabian Groffen
2020-01-02 14:07 Fabian Groffen
2020-01-02 11:55 Fabian Groffen
2020-01-02 9:47 Fabian Groffen
2020-01-01 19:57 Fabian Groffen
2019-12-31 9:10 Fabian Groffen
2019-12-31 9:05 Fabian Groffen
2019-12-29 12:35 Fabian Groffen
2019-12-29 9:57 Fabian Groffen
2019-12-27 21:45 Fabian Groffen
2019-12-27 21:14 Fabian Groffen
2019-12-27 19:16 Fabian Groffen
2019-12-14 17:01 Fabian Groffen
2019-12-14 17:01 Fabian Groffen
2019-12-14 17:01 Fabian Groffen
2019-12-08 11:53 Fabian Groffen
2019-11-29 13:56 Fabian Groffen
2019-11-29 13:22 Fabian Groffen
2019-11-25 19:51 Fabian Groffen
2019-11-25 19:39 Fabian Groffen
2019-11-19 20:28 Fabian Groffen
2019-11-19 20:28 Fabian Groffen
2019-11-17 15:12 Fabian Groffen
2019-11-17 15:12 Fabian Groffen
2019-11-17 15:12 Fabian Groffen
2019-11-17 15:12 Fabian Groffen
2019-11-17 15:12 Fabian Groffen
2019-11-15 13:52 Fabian Groffen
2019-11-13 18:19 Fabian Groffen
2019-11-13 12:59 Fabian Groffen
2019-11-13 12:53 Fabian Groffen
2019-11-13 12:53 Fabian Groffen
2019-11-09 10:35 Fabian Groffen
2019-10-27 12:23 Fabian Groffen
2019-10-20 10:11 Fabian Groffen
2019-10-12 12:47 Fabian Groffen
2019-10-03 11:50 Fabian Groffen
2019-09-28 13:28 Fabian Groffen
2019-09-28 13:06 Fabian Groffen
2019-09-26 19:28 Fabian Groffen
2019-09-26 19:28 Fabian Groffen
2019-09-26 14:06 Fabian Groffen
2019-09-26 14:06 Fabian Groffen
2019-09-21 20:23 Fabian Groffen
2019-09-21 20:17 Fabian Groffen
2019-09-21 19:53 Fabian Groffen
2019-09-10 18:25 Fabian Groffen
2019-08-17 8:37 Fabian Groffen
2019-07-18 17:55 Fabian Groffen
2019-07-14 18:51 Fabian Groffen
2019-07-14 16:27 Fabian Groffen
2019-07-14 16:27 Fabian Groffen
2019-07-14 16:00 Fabian Groffen
2019-07-14 13:09 Fabian Groffen
2019-07-14 13:09 Fabian Groffen
2019-07-14 8:37 Fabian Groffen
2019-06-27 8:54 Fabian Groffen
2019-06-26 19:32 Fabian Groffen
2019-06-19 10:44 Fabian Groffen
2019-06-13 10:52 Fabian Groffen
2019-06-13 9:28 Fabian Groffen
2019-06-13 8:41 Fabian Groffen
2019-06-11 17:55 Fabian Groffen
2019-06-10 18:38 Fabian Groffen
2019-06-10 15:29 Fabian Groffen
2019-06-10 13:31 Fabian Groffen
2019-06-10 12:50 Fabian Groffen
2019-06-10 10:12 Fabian Groffen
2019-06-10 10:09 Fabian Groffen
2019-06-10 10:09 Fabian Groffen
2019-06-10 10:09 Fabian Groffen
2019-06-10 10:09 Fabian Groffen
2019-06-10 10:09 Fabian Groffen
2019-06-09 9:23 Fabian Groffen
2019-06-08 18:42 Fabian Groffen
2019-06-08 18:25 Fabian Groffen
2019-06-08 18:13 Fabian Groffen
2019-06-08 18:13 Fabian Groffen
2019-06-08 18:13 Fabian Groffen
2019-06-08 18:13 Fabian Groffen
2019-06-07 12:20 Fabian Groffen
2019-06-06 13:52 Fabian Groffen
2019-06-06 13:46 Fabian Groffen
2019-06-06 13:46 Fabian Groffen
2019-06-06 8:14 Fabian Groffen
2019-06-05 7:57 Fabian Groffen
2019-05-30 10:23 Fabian Groffen
2019-05-30 10:09 Fabian Groffen
2019-05-30 8:55 Fabian Groffen
2019-05-25 16:04 Fabian Groffen
2019-05-25 14:54 Fabian Groffen
2019-05-25 14:04 Fabian Groffen
2019-05-25 12:19 Fabian Groffen
2019-05-24 12:26 Fabian Groffen
2019-05-22 8:54 Fabian Groffen
2019-05-21 14:42 Fabian Groffen
2019-05-21 14:37 Fabian Groffen
2019-05-21 14:12 Fabian Groffen
2019-05-21 14:12 Fabian Groffen
2019-05-20 12:15 Fabian Groffen
2019-05-20 10:46 Fabian Groffen
2019-05-16 17:13 Fabian Groffen
2019-05-16 17:13 Fabian Groffen
2019-05-16 17:13 Fabian Groffen
2019-05-16 17:13 Fabian Groffen
2019-05-16 13:18 Fabian Groffen
2019-05-15 9:42 Fabian Groffen
2019-05-13 13:39 Fabian Groffen
2019-05-12 9:58 Fabian Groffen
2019-05-12 9:58 Fabian Groffen
2019-05-12 9:58 Fabian Groffen
2019-05-11 11:11 Fabian Groffen
2019-05-11 7:14 Fabian Groffen
2019-05-11 7:14 Fabian Groffen
2019-05-11 7:14 Fabian Groffen
2019-05-11 7:14 Fabian Groffen
2019-05-10 15:32 Fabian Groffen
2019-05-10 15:32 Fabian Groffen
2019-05-10 7:30 Fabian Groffen
2019-05-10 7:30 Fabian Groffen
2019-05-10 7:30 Fabian Groffen
2019-05-07 6:19 Fabian Groffen
2019-05-07 6:19 Fabian Groffen
2019-05-06 16:04 Fabian Groffen
2019-05-06 6:41 Fabian Groffen
2019-05-04 17:23 Fabian Groffen
2019-05-04 11:53 Fabian Groffen
2019-05-03 11:45 Fabian Groffen
2019-05-03 8:50 Fabian Groffen
2019-05-03 8:50 Fabian Groffen
2019-05-03 8:50 Fabian Groffen
2019-05-03 8:50 Fabian Groffen
2019-05-02 16:09 Fabian Groffen
2019-05-02 8:29 Fabian Groffen
2019-04-30 8:02 Fabian Groffen
2019-04-30 7:54 Fabian Groffen
2019-04-28 18:10 Fabian Groffen
2019-04-27 9:01 Fabian Groffen
2019-04-27 8:33 Fabian Groffen
2019-04-25 17:36 Fabian Groffen
2019-04-25 9:48 Fabian Groffen
2019-04-25 9:48 Fabian Groffen
2019-04-25 9:48 Fabian Groffen
2019-04-25 9:22 Fabian Groffen
2019-04-25 9:22 Fabian Groffen
2019-04-25 9:22 Fabian Groffen
2019-04-25 9:22 Fabian Groffen
2019-04-14 10:52 Fabian Groffen
2019-03-27 20:52 Fabian Groffen
2019-03-27 20:37 Fabian Groffen
2019-03-27 20:18 Fabian Groffen
2019-03-18 13:14 Fabian Groffen
2019-03-18 13:14 Fabian Groffen
2019-03-18 13:14 Fabian Groffen
2019-03-12 8:05 Fabian Groffen
2019-03-01 13:51 Fabian Groffen
2019-02-28 18:37 Fabian Groffen
2019-02-28 18:37 Fabian Groffen
2019-02-27 21:18 Fabian Groffen
2019-02-27 20:53 Fabian Groffen
2019-02-23 15:22 Fabian Groffen
2018-12-28 9:08 Fabian Groffen
2018-12-24 16:02 Fabian Groffen
2018-12-20 18:24 Fabian Groffen
2018-12-20 18:24 Fabian Groffen
2018-12-09 10:42 Fabian Groffen
2018-11-20 14:25 Fabian Groffen
2018-10-26 13:50 Fabian Groffen
2018-10-26 13:50 Fabian Groffen
2018-08-06 7:25 Fabian Groffen
2018-08-06 7:25 Fabian Groffen
2018-08-01 13:28 Fabian Groffen
2018-07-18 20:20 Fabian Groffen
2018-06-28 9:35 Fabian Groffen
2018-06-28 9:35 Fabian Groffen
2018-05-18 16:58 Fabian Groffen
2018-05-18 12:19 Fabian Groffen
2018-05-18 12:19 Fabian Groffen
2018-05-18 10:15 Fabian Groffen
2018-04-18 13:58 Fabian Groffen
2018-04-17 20:12 Fabian Groffen
2018-04-15 15:41 Fabian Groffen
2018-04-15 15:38 Fabian Groffen
2018-04-09 7:15 Fabian Groffen
2018-04-09 7:15 Fabian Groffen
2018-04-04 13:16 Fabian Groffen
2018-04-03 20:13 Fabian Groffen
2018-04-03 13:39 Fabian Groffen
2018-04-02 17:27 Fabian Groffen
2018-04-01 10:22 Fabian Groffen
2018-04-01 10:22 Fabian Groffen
2018-03-31 6:54 Fabian Groffen
2018-03-31 6:54 Fabian Groffen
2018-03-31 6:54 Fabian Groffen
2018-03-31 6:54 Fabian Groffen
2018-03-30 5:56 Fabian Groffen
2018-03-30 5:56 Fabian Groffen
2018-03-26 19:08 Fabian Groffen
2018-03-25 14:00 Fabian Groffen
2018-03-23 20:17 Fabian Groffen
2018-03-23 20:17 Fabian Groffen
2018-03-23 15:27 Fabian Groffen
2018-03-23 15:27 Fabian Groffen
2018-03-23 13:17 Fabian Groffen
2018-03-23 11:29 Fabian Groffen
2018-03-23 11:08 Fabian Groffen
2018-03-23 9:37 Fabian Groffen
2018-01-08 12:33 Fabian Groffen
2018-01-08 12:33 Fabian Groffen
2017-12-29 11:45 Fabian Groffen
2017-12-29 11:45 Fabian Groffen
2017-12-29 11:45 Fabian Groffen
2017-11-27 7:55 Robin H. Johnson
2017-11-27 7:55 Robin H. Johnson
2017-02-07 3:03 Mike Frysinger
2016-12-29 2:33 Mike Frysinger
2016-12-29 2:25 Mike Frysinger
2016-12-29 2:25 Mike Frysinger
2016-12-29 2:25 Mike Frysinger
2016-12-29 2:25 Mike Frysinger
2016-12-29 2:25 Mike Frysinger
2016-12-29 2:25 Mike Frysinger
2016-12-20 19:15 Mike Frysinger
2016-12-20 16:55 Mike Frysinger
2016-11-27 5:46 Mike Frysinger
2016-11-27 5:46 Mike Frysinger
2016-11-27 5:46 Mike Frysinger
2016-11-27 1:52 Mike Frysinger
2016-11-27 1:50 Mike Frysinger
2016-11-27 0:00 Mike Frysinger
2016-11-26 23:48 Mike Frysinger
2016-11-26 23:46 Mike Frysinger
2016-11-26 23:24 Mike Frysinger
2016-11-26 23:17 Mike Frysinger
2016-11-15 3:34 Mike Frysinger
2016-11-15 3:34 Mike Frysinger
2016-11-15 3:34 Mike Frysinger
2016-11-15 3:34 Mike Frysinger
2016-11-15 3:34 Mike Frysinger
2016-11-12 17:17 Mike Frysinger
2016-06-21 20:53 Mike Frysinger
2016-06-20 3:22 Mike Frysinger
2016-04-04 15:47 Mike Frysinger
2016-04-01 21:42 Mike Frysinger
2016-04-01 21:42 Mike Frysinger
2016-03-28 4:53 Mike Frysinger
2016-03-28 4:53 Mike Frysinger
2016-03-28 4:53 Mike Frysinger
2016-02-22 20:37 Mike Frysinger
2016-02-22 20:37 Mike Frysinger
2016-02-22 20:37 Mike Frysinger
2016-02-22 20:37 Mike Frysinger
2016-02-17 7:15 Mike Frysinger
2016-02-14 1:26 Mike Frysinger
2016-02-14 1:26 Mike Frysinger
2016-02-14 1:26 Mike Frysinger
2016-01-29 5:53 Mike Frysinger
2016-01-05 0:25 Mike Frysinger
2015-12-17 5:06 Mike Frysinger
2015-12-17 5:06 Mike Frysinger
2015-12-17 5:06 Mike Frysinger
2015-12-17 5:06 Mike Frysinger
2015-11-28 2:44 Mike Frysinger
2015-11-28 2:44 Mike Frysinger
2015-11-28 2:44 Mike Frysinger
2015-11-28 2:44 Mike Frysinger
2015-11-28 2:44 Mike Frysinger
2015-11-28 2:44 Mike Frysinger
2015-11-28 2:44 Mike Frysinger
2015-11-28 2:44 Mike Frysinger
2015-11-28 2:44 Mike Frysinger
2015-11-28 2:44 Mike Frysinger
2015-11-28 2:44 Mike Frysinger
2015-11-28 2:44 Mike Frysinger
2015-11-26 10:52 Mike Frysinger
2015-11-26 10:52 Mike Frysinger
2015-11-26 10:39 Mike Frysinger
2015-11-26 10:39 Mike Frysinger
2015-11-26 10:39 Mike Frysinger
2015-11-26 10:39 Mike Frysinger
2015-11-26 10:39 Mike Frysinger
2015-11-26 10:39 Mike Frysinger
2015-11-26 10:39 Mike Frysinger
2015-11-26 8:59 Mike Frysinger
2015-11-26 8:00 Mike Frysinger
2015-09-15 18:27 Mike Frysinger
2015-06-23 8:58 Mike Frysinger
2015-06-06 6:20 Mike Frysinger
2015-06-06 6:20 Mike Frysinger
2015-06-06 6:20 Mike Frysinger
2015-06-06 6:20 Mike Frysinger
2015-06-03 15:44 Mike Frysinger
2015-06-03 15:44 Mike Frysinger
2015-05-31 8:31 Mike Frysinger
2015-05-19 17:37 Mike Frysinger
2015-05-19 17:37 Mike Frysinger
2015-05-19 17:37 Mike Frysinger
2015-05-19 17:37 Mike Frysinger
2015-05-19 17:37 Mike Frysinger
2015-05-19 17:37 Mike Frysinger
2015-02-24 1:26 Mike Frysinger
2015-02-24 1:26 Mike Frysinger
2015-02-24 1:26 Mike Frysinger
2015-02-24 1:26 Mike Frysinger
2015-02-24 1:26 Mike Frysinger
2015-02-24 1:26 Mike Frysinger
2015-02-24 1:26 Mike Frysinger
2015-02-24 1:26 Mike Frysinger
2015-02-24 1:26 Mike Frysinger
2015-02-24 1:26 Mike Frysinger
2015-02-24 1:26 Mike Frysinger
2015-02-24 1:26 Mike Frysinger
2015-02-24 1:26 Mike Frysinger
2015-02-24 1:26 Mike Frysinger
2015-02-21 18:06 Mike Frysinger
2015-02-21 0:00 Mike Frysinger
2015-02-21 0:00 Mike Frysinger
2015-02-20 22:28 Mike Frysinger
2015-02-19 7:49 Mike Frysinger
2014-10-19 16:56 Mike Frysinger
2014-06-16 18:01 Mike Frysinger
2014-03-16 6:34 Mike Frysinger
2014-03-16 6:34 Mike Frysinger
2014-03-16 6:14 Mike Frysinger
2014-03-16 6:14 Mike Frysinger
2014-03-16 6:14 Mike Frysinger
2014-03-15 6:02 Mike Frysinger
2014-03-11 4:53 Mike Frysinger
2014-03-11 4:53 Mike Frysinger
2014-03-10 8:45 Mike Frysinger
2014-03-10 8:45 Mike Frysinger
2014-03-10 8:45 Mike Frysinger
2014-03-10 6:00 Mike Frysinger
2014-03-10 6:00 Mike Frysinger
2014-03-10 6:00 Mike Frysinger
2014-03-10 6:00 Mike Frysinger
2014-03-10 6:00 Mike Frysinger
2014-03-08 5:51 Mike Frysinger
2014-03-08 5:51 Mike Frysinger
2014-03-08 5:51 Mike Frysinger
2014-03-08 5:51 Mike Frysinger
2014-03-08 5:51 Mike Frysinger
2014-03-08 5:51 Mike Frysinger
2014-03-08 5:51 Mike Frysinger
2014-03-08 5:51 Mike Frysinger
2014-03-08 5:51 Mike Frysinger
2014-03-08 5:51 Mike Frysinger
2014-03-08 5:51 Mike Frysinger
2014-03-08 5:51 Mike Frysinger
2014-03-08 5:51 Mike Frysinger
2014-03-08 5:51 Mike Frysinger
2014-03-08 5:51 Mike Frysinger
2014-03-08 5:51 Mike Frysinger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1569759198.f05c78008b1754a79e31e793a67d07ed8f5d11bc.grobian@gentoo \
--to=grobian@gentoo.org \
--cc=gentoo-commits@lists.gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox