[systemd-commits] 6 commits - TODO src/analyze src/backlight src/delta src/libsystemd src/shared src/systemctl

Lennart Poettering lennart at kemper.freedesktop.org
Wed Apr 23 10:06:44 PDT 2014


 TODO                                |    3 +++
 src/analyze/analyze.c               |    2 +-
 src/backlight/backlight.c           |   10 +++++++---
 src/delta/delta.c                   |   24 ++++++++++--------------
 src/libsystemd/sd-bus/bus-dump.c    |    2 +-
 src/libsystemd/sd-bus/bus-objects.c |    4 +---
 src/shared/cgroup-show.c            |   12 +++++++-----
 src/shared/install.c                |    4 ++--
 src/shared/label.h                  |    2 --
 src/shared/util.c                   |   16 ++++++++++------
 src/shared/util.h                   |    4 +++-
 src/systemctl/systemctl.c           |   12 ++++++------
 12 files changed, 51 insertions(+), 44 deletions(-)

New commits:
commit 6b01f1d3911bd7c7eadbb8a3b4375bd3ac05c98f
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Apr 23 19:05:46 2014 +0200

    delta: draw arrows with draw_special_char()
    
    Let's unify generation of unicode chars at one place.
    
    Also, don't add an extra space into chars we print, except for the tree
    chars where this is really necessary.

diff --git a/src/analyze/analyze.c b/src/analyze/analyze.c
index 3d2d08f..ba236d9 100644
--- a/src/analyze/analyze.c
+++ b/src/analyze/analyze.c
@@ -645,7 +645,7 @@ static int list_dependencies_print(const char *name, unsigned int level, unsigne
         char ts[FORMAT_TIMESPAN_MAX], ts2[FORMAT_TIMESPAN_MAX];
 
         for (i = level; i != 0; i--)
-                printf("%s", draw_special_char(branches & (1 << (i-1)) ? DRAW_TREE_VERT : DRAW_TREE_SPACE));
+                printf("%s", draw_special_char(branches & (1 << (i-1)) ? DRAW_TREE_VERTICAL : DRAW_TREE_SPACE));
 
         printf("%s", draw_special_char(last ? DRAW_TREE_RIGHT : DRAW_TREE_BRANCH));
 
diff --git a/src/delta/delta.c b/src/delta/delta.c
index 8fc37c5..96a9fa5 100644
--- a/src/delta/delta.c
+++ b/src/delta/delta.c
@@ -85,10 +85,6 @@ static void pager_open_if_enabled(void) {
         pager_open(false);
 }
 
-static inline const char* arrow(void) {
-        return is_locale_utf8() ? "→" : "->";
-}
-
 static int equivalent(const char *a, const char *b) {
         _cleanup_free_ char *x = NULL, *y = NULL;
 
@@ -109,7 +105,7 @@ static int notify_override_masked(const char *top, const char *bottom) {
 
         printf("%s%s%s     %s %s %s\n",
                ansi_highlight_red(), "[MASKED]", ansi_highlight_off(),
-               top, arrow(), bottom);
+               top, draw_special_char(DRAW_ARROW), bottom);
         return 1;
 }
 
@@ -119,7 +115,7 @@ static int notify_override_equivalent(const char *top, const char *bottom) {
 
         printf("%s%s%s %s %s %s\n",
                ansi_highlight_green(), "[EQUIVALENT]", ansi_highlight_off(),
-               top, arrow(), bottom);
+               top, draw_special_char(DRAW_ARROW), bottom);
         return 1;
 }
 
@@ -129,7 +125,7 @@ static int notify_override_redirected(const char *top, const char *bottom) {
 
         printf("%s%s%s   %s %s %s\n",
                ansi_highlight(), "[REDIRECTED]", ansi_highlight_off(),
-               top, arrow(), bottom);
+               top, draw_special_char(DRAW_ARROW), bottom);
         return 1;
 }
 
@@ -139,7 +135,7 @@ static int notify_override_overridden(const char *top, const char *bottom) {
 
         printf("%s%s%s %s %s %s\n",
                ansi_highlight(), "[OVERRIDDEN]", ansi_highlight_off(),
-               top, arrow(), bottom);
+               top, draw_special_char(DRAW_ARROW), bottom);
         return 1;
 }
 
@@ -149,7 +145,7 @@ static int notify_override_extended(const char *top, const char *bottom) {
 
         printf("%s%s%s   %s %s %s\n",
                ansi_highlight(), "[EXTENDED]", ansi_highlight_off(),
-               top, arrow(), bottom);
+               top, draw_special_char(DRAW_ARROW), bottom);
         return 1;
 }
 
@@ -250,7 +246,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const
                         return -ENOMEM;
                 d = p + strlen(toppath) + 1;
 
-                log_debug("Adding at top: %s %s %s", d, arrow(), p);
+                log_debug("Adding at top: %s %s %s", d, draw_special_char(DRAW_ARROW), p);
                 k = hashmap_put(top, d, p);
                 if (k >= 0) {
                         p = strdup(p);
@@ -262,7 +258,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const
                         return k;
                 }
 
-                log_debug("Adding at bottom: %s %s %s", d, arrow(), p);
+                log_debug("Adding at bottom: %s %s %s", d, draw_special_char(DRAW_ARROW), p);
                 free(hashmap_remove(bottom, d));
                 k = hashmap_put(bottom, d, p);
                 if (k < 0) {
@@ -286,7 +282,7 @@ static int enumerate_dir_d(Hashmap *top, Hashmap *bottom, Hashmap *drops, const
                         return -ENOMEM;
 
                 log_debug("Adding to drops: %s %s %s %s %s",
-                          unit, arrow(), basename(p), arrow(), p);
+                          unit, draw_special_char(DRAW_ARROW), basename(p), draw_special_char(DRAW_ARROW), p);
                 k = hashmap_put(h, basename(p), p);
                 if (k < 0) {
                         free(p);
@@ -338,7 +334,7 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch
                 if (!p)
                         return -ENOMEM;
 
-                log_debug("Adding at top: %s %s %s", basename(p), arrow(), p);
+                log_debug("Adding at top: %s %s %s", basename(p), draw_special_char(DRAW_ARROW), p);
                 k = hashmap_put(top, basename(p), p);
                 if (k >= 0) {
                         p = strdup(p);
@@ -349,7 +345,7 @@ static int enumerate_dir(Hashmap *top, Hashmap *bottom, Hashmap *drops, const ch
                         return k;
                 }
 
-                log_debug("Adding at bottom: %s %s %s", basename(p), arrow(), p);
+                log_debug("Adding at bottom: %s %s %s", basename(p), draw_special_char(DRAW_ARROW), p);
                 free(hashmap_remove(bottom, basename(p)));
                 k = hashmap_put(bottom, basename(p), p);
                 if (k < 0) {
diff --git a/src/libsystemd/sd-bus/bus-dump.c b/src/libsystemd/sd-bus/bus-dump.c
index ea81644..6f4ce0c 100644
--- a/src/libsystemd/sd-bus/bus-dump.c
+++ b/src/libsystemd/sd-bus/bus-dump.c
@@ -54,7 +54,7 @@ int bus_message_dump(sd_bus_message *m, FILE *f, bool with_header) {
 
         if (with_header) {
                 fprintf(f,
-                        "%s%s%sType=%s%s%s  Endian=%c  Flags=%u  Version=%u  Priority=%lli",
+                        "%s%s%s Type=%s%s%s  Endian=%c  Flags=%u  Version=%u  Priority=%lli",
                         m->header->type == SD_BUS_MESSAGE_METHOD_ERROR ? ansi_highlight_red() :
                         m->header->type == SD_BUS_MESSAGE_METHOD_RETURN ? ansi_highlight_green() :
                         m->header->type != SD_BUS_MESSAGE_SIGNAL ? ansi_highlight() : "", draw_special_char(DRAW_TRIANGULAR_BULLET), ansi_highlight_off(),
diff --git a/src/shared/cgroup-show.c b/src/shared/cgroup-show.c
index ee14cee..c862ee9 100644
--- a/src/shared/cgroup-show.c
+++ b/src/shared/cgroup-show.c
@@ -78,10 +78,12 @@ static void show_pid_array(int pids[], unsigned n_pids, const char *prefix, unsi
 
                 get_process_cmdline(pids[i], n_columns, true, &t);
 
-                printf("%s%s%*lu %s\n",
-                       prefix,
-                       draw_special_char(extra ? DRAW_TRIANGULAR_BULLET :
-                                         ((more || i < n_pids-1) ? DRAW_TREE_BRANCH : DRAW_TREE_RIGHT)),
+                if (extra)
+                        printf("%s%s ", prefix, draw_special_char(DRAW_TRIANGULAR_BULLET));
+                else
+                        printf("%s%s", prefix, draw_special_char(((more || i < n_pids-1) ? DRAW_TREE_BRANCH : DRAW_TREE_RIGHT)));
+
+                printf("%*lu %s\n",
                        pid_width,
                        (unsigned long) pids[i],
                        strna(t));
@@ -181,7 +183,7 @@ int show_cgroup_by_path(const char *path, const char *prefix, unsigned n_columns
                                            basename(last));
 
                         if (!p1) {
-                                p1 = strappend(prefix, draw_special_char(DRAW_TREE_VERT));
+                                p1 = strappend(prefix, draw_special_char(DRAW_TREE_VERTICAL));
                                 if (!p1)
                                         return -ENOMEM;
                         }
diff --git a/src/shared/util.c b/src/shared/util.c
index b6285ab..5bf9c9f 100644
--- a/src/shared/util.c
+++ b/src/shared/util.c
@@ -5444,21 +5444,25 @@ out:
 
 const char *draw_special_char(DrawSpecialChar ch) {
         static const char *draw_table[2][_DRAW_SPECIAL_CHAR_MAX] = {
+
                 /* UTF-8 */ {
-                        [DRAW_TREE_VERT]          = "\342\224\202 ",            /* │  */
+                        [DRAW_TREE_VERTICAL]      = "\342\224\202 ",            /* │  */
                         [DRAW_TREE_BRANCH]        = "\342\224\234\342\224\200", /* ├─ */
                         [DRAW_TREE_RIGHT]         = "\342\224\224\342\224\200", /* └─ */
                         [DRAW_TREE_SPACE]         = "  ",                       /*    */
-                        [DRAW_TRIANGULAR_BULLET]  = "\342\200\243 ",            /* ‣  */
-                        [DRAW_BLACK_CIRCLE]       = "\342\227\217 ",            /* ●  */
+                        [DRAW_TRIANGULAR_BULLET]  = "\342\200\243",             /* ‣ */
+                        [DRAW_BLACK_CIRCLE]       = "\342\227\217",             /* ● */
+                        [DRAW_ARROW]              = "\342\206\222",             /* → */
                 },
+
                 /* ASCII fallback */ {
-                        [DRAW_TREE_VERT]          = "| ",
+                        [DRAW_TREE_VERTICAL]      = "| ",
                         [DRAW_TREE_BRANCH]        = "|-",
                         [DRAW_TREE_RIGHT]         = "`-",
                         [DRAW_TREE_SPACE]         = "  ",
-                        [DRAW_TRIANGULAR_BULLET]  = "> ",
-                        [DRAW_BLACK_CIRCLE]       = "* ",
+                        [DRAW_TRIANGULAR_BULLET]  = ">",
+                        [DRAW_BLACK_CIRCLE]       = "*",
+                        [DRAW_ARROW]              = "->",
                 }
         };
 
diff --git a/src/shared/util.h b/src/shared/util.h
index 5b060ef..d584a65 100644
--- a/src/shared/util.h
+++ b/src/shared/util.h
@@ -681,14 +681,16 @@ void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size,
 bool is_locale_utf8(void);
 
 typedef enum DrawSpecialChar {
-        DRAW_TREE_VERT,
+        DRAW_TREE_VERTICAL,
         DRAW_TREE_BRANCH,
         DRAW_TREE_RIGHT,
         DRAW_TREE_SPACE,
         DRAW_TRIANGULAR_BULLET,
         DRAW_BLACK_CIRCLE,
+        DRAW_ARROW,
         _DRAW_SPECIAL_CHAR_MAX
 } DrawSpecialChar;
+
 const char *draw_special_char(DrawSpecialChar ch);
 
 char *strreplace(const char *text, const char *old_string, const char *new_string);
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
index 1717c19..7bc8ece 100644
--- a/src/systemctl/systemctl.c
+++ b/src/systemctl/systemctl.c
@@ -1430,7 +1430,7 @@ static int list_dependencies_print(const char *name, int level, unsigned int bra
                                 printf("%s...\n",max_len % 2 ? "" : " ");
                                 return 0;
                         }
-                        printf("%s", draw_special_char(branches & (1 << i) ? DRAW_TREE_VERT : DRAW_TREE_SPACE));
+                        printf("%s", draw_special_char(branches & (1 << i) ? DRAW_TREE_VERTICAL : DRAW_TREE_SPACE));
                 }
                 len += 2;
 
@@ -1598,9 +1598,9 @@ static int list_dependencies_one(
 
                 state = check_one_unit(bus, *c, "activating\0active\0reloading\0", true);
                 if (state > 0)
-                        printf("%s%s%s", ansi_highlight_green(), draw_special_char(DRAW_BLACK_CIRCLE), ansi_highlight_off());
+                        printf("%s%s%s ", ansi_highlight_green(), draw_special_char(DRAW_BLACK_CIRCLE), ansi_highlight_off());
                 else
-                        printf("%s%s%s", ansi_highlight_red(), draw_special_char(DRAW_BLACK_CIRCLE), ansi_highlight_off());
+                        printf("%s%s%s ", ansi_highlight_red(), draw_special_char(DRAW_BLACK_CIRCLE), ansi_highlight_off());
 
                 r = list_dependencies_print(*c, level, branches, c[1] == NULL);
                 if (r < 0)
@@ -1833,7 +1833,7 @@ static void output_machines_list(struct machine_info *machine_infos, unsigned n)
                         on_failed = off_failed = "";
 
                 if (circle_len > 0)
-                        printf("%s%s%s", on_state, circle ? draw_special_char(DRAW_BLACK_CIRCLE) : "  ", off_state);
+                        printf("%s%s%s ", on_state, circle ? draw_special_char(DRAW_BLACK_CIRCLE) : " ", off_state);
 
                 if (m->is_host)
                         printf("%-*s (host) %s%-*s%s %s%*u%s %*u\n",
@@ -3234,7 +3234,7 @@ static void print_status_info(
         } else
                 active_on = active_off = "";
 
-        printf("%s%s%s%s", active_on, draw_special_char(DRAW_BLACK_CIRCLE), active_off, strna(i->id));
+        printf("%s%s%s %s", active_on, draw_special_char(DRAW_BLACK_CIRCLE), active_off, strna(i->id));
 
         if (i->description && !streq_ptr(i->id, i->description))
                 printf(" - %s", i->description);
@@ -4338,7 +4338,7 @@ static int show_system_status(sd_bus *bus) {
         } else
                 on = off = "";
 
-        printf("%s%s%s%s\n", on, draw_special_char(DRAW_BLACK_CIRCLE), off, arg_host ? arg_host : hn);
+        printf("%s%s%s %s\n", on, draw_special_char(DRAW_BLACK_CIRCLE), off, arg_host ? arg_host : hn);
 
         printf("    State: %s%s%s\n",
                on, strna(mi.state), off);

commit b91a3b02f3be899dd8a2ae22df5be8de78f5a175
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Apr 23 06:57:34 2014 +0200

    install: simplification

diff --git a/src/shared/install.c b/src/shared/install.c
index 6334833..acfba25 100644
--- a/src/shared/install.c
+++ b/src/shared/install.c
@@ -1494,8 +1494,8 @@ int unit_file_enable(
         supposed to be created, not the ones actually created. This is
         useful to determine whether the passed files had any
         installation data at all. */
-        r = install_context_apply(&c, &paths, config_path, root_dir, force, changes, n_changes);
-        return r;
+
+        return install_context_apply(&c, &paths, config_path, root_dir, force, changes, n_changes);
 }
 
 int unit_file_disable(

commit 113283c493cead39fc362bb8433f40d6c29ef6c8
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Apr 23 06:57:24 2014 +0200

    label: there is no label_retest_selinux() call

diff --git a/src/shared/label.h b/src/shared/label.h
index b190e69..7294820 100644
--- a/src/shared/label.h
+++ b/src/shared/label.h
@@ -42,8 +42,6 @@ int label_get_create_label_from_exe(const char *exe, char **label);
 
 int label_mkdir(const char *path, mode_t mode);
 
-void label_retest_selinux(void);
-
 int label_bind(int fd, const struct sockaddr *addr, socklen_t addrlen);
 
 int label_apply(const char *path, const char *label);

commit 1b02f301834ffe9211e3cc8f83ca6fd3c37ad508
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Apr 23 06:57:00 2014 +0200

    bus: simplification

diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c
index 539cf2a..8b12e89 100644
--- a/src/libsystemd/sd-bus/bus-objects.c
+++ b/src/libsystemd/sd-bus/bus-objects.c
@@ -2377,9 +2377,7 @@ _public_ int sd_bus_emit_interfaces_added_strv(sd_bus *bus, const char *path, ch
 
         do {
                 bus->nodes_modified = false;
-
-                if (m)
-                        m = sd_bus_message_unref(m);
+                m = sd_bus_message_unref(m);
 
                 r = sd_bus_message_new_signal(bus, &m, path, "org.freedesktop.DBus.ObjectManager", "InterfacesAdded");
                 if (r < 0)

commit c7fdf44d08e1217d40dc092fb90a65978a0f541f
Author: Lennart Poettering <lennart at poettering.net>
Date:   Wed Apr 23 06:55:54 2014 +0200

    backlight: warn if kernel exposes backlight device with bogus max_brightness
    
    We shouldn't silently tape over broken kernel drivers.

diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c
index 754a646..c708391 100644
--- a/src/backlight/backlight.c
+++ b/src/backlight/backlight.c
@@ -205,14 +205,18 @@ static unsigned get_max_brightness(struct udev_device *device) {
 
         max_brightness_str = udev_device_get_sysattr_value(device, "max_brightness");
         if (!max_brightness_str) {
-                log_warning("Failed to read 'max_brightness' attribute");
+                log_warning("Failed to read 'max_brightness' attribute.");
                 return 0;
         }
 
         r = safe_atou(max_brightness_str, &max_brightness);
         if (r < 0) {
-                log_warning("Failed to parse 'max_brightness' \"%s\": %s",
-                            max_brightness_str, strerror(-r));
+                log_warning("Failed to parse 'max_brightness' \"%s\": %s", max_brightness_str, strerror(-r));
+                return 0;
+        }
+
+        if (max_brightness <= 0) {
+                log_warning("Maximum brightness is 0, ignoring device.");
                 return 0;
         }
 

commit e30fa16e27cbd48f960113a1d72d9a15c3b2d67b
Author: Lennart Poettering <lennart at poettering.net>
Date:   Tue Apr 22 06:49:16 2014 +0200

    update TODO

diff --git a/TODO b/TODO
index ec66dda..17fe94a 100644
--- a/TODO
+++ b/TODO
@@ -32,6 +32,8 @@ External:
 
 Features:
 
+* Add timeout to early-boot, and shut down the system if it is hit. Solves the laptop-in-bag problem and is useful for embedded cases
+
 * sd-resolve: add callback api
 
 * ImmutableSystem=yes/no or so to mount /usr, /boot read-only/invisible, and leave /var and /etc writable
@@ -169,6 +171,7 @@ Features:
   ReadOnlyDirectories=... for whitelisting files for a service.
 
 * sd-bus:
+  - make AddMatch calls on dbus1 transports async
   - when kdbus doesn't take our message without memfds, try again with memfds
   - systemd-bus-proxyd needs to enforce good old XML policy
   - port exit-on-idle logic to byebye ioctl



More information about the systemd-commits mailing list