ryantimwilson / rpms / systemd

Forked from rpms/systemd a month ago
Clone
8d419f
From 73cbf82d726a7b50c9b7dec9a0a0c285b0de9993 Mon Sep 17 00:00:00 2001
8d419f
From: David Tardon <dtardon@redhat.com>
8d419f
Date: Fri, 24 Jun 2022 09:13:42 +0200
8d419f
Subject: [PATCH] =?UTF-8?q?tree-wide:=20allow=20ASCII=20fallback=20for=20?=
8d419f
 =?UTF-8?q?=E2=86=92=20in=20logs?=
8d419f
MIME-Version: 1.0
8d419f
Content-Type: text/plain; charset=UTF-8
8d419f
Content-Transfer-Encoding: 8bit
8d419f
8d419f
(cherry picked from commit e2341b6bc325932b3f9f10874956952cbdbd6361)
8d419f
8d419f
Resolves: #2118297
8d419f
---
8d419f
 src/basic/unit-file.c                  | 13 +++++-----
8d419f
 src/core/dbus-service.c                |  3 ++-
8d419f
 src/core/manager-serialize.c           |  6 +++--
8d419f
 src/core/namespace.c                   |  7 +++--
8d419f
 src/core/socket.c                      |  3 ++-
8d419f
 src/home/homed-home.c                  |  4 ++-
8d419f
 src/home/homed-manager.c               |  7 +++--
8d419f
 src/home/homework-luks.c               |  6 ++++-
8d419f
 src/home/homework-mount.c              |  4 ++-
8d419f
 src/libsystemd/sd-bus/sd-bus.c         |  4 ++-
8d419f
 src/network/networkd-link.c            | 15 +++++++----
8d419f
 src/partition/repart.c                 |  7 ++---
8d419f
 src/resolve/resolved-dns-query.c       | 11 ++++++--
8d419f
 src/resolve/resolved-dns-transaction.c | 14 +++++-----
8d419f
 src/run-generator/run-generator.c      |  4 ++-
8d419f
 src/shared/devnode-acl.c               |  5 ++--
8d419f
 src/shared/dns-domain.c                |  8 +++---
8d419f
 src/shared/install.c                   |  3 ++-
8d419f
 src/shared/mount-util.c                |  5 ++--
8d419f
 src/shared/varlink.c                   |  4 ++-
8d419f
 src/udev/udev-builtin-net_id.c         | 36 +++++++++++++++-----------
8d419f
 21 files changed, 110 insertions(+), 59 deletions(-)
8d419f
8d419f
diff --git a/src/basic/unit-file.c b/src/basic/unit-file.c
8d419f
index 83c29bb25f..2f5ec5b702 100644
8d419f
--- a/src/basic/unit-file.c
8d419f
+++ b/src/basic/unit-file.c
8d419f
@@ -348,13 +348,13 @@ int unit_file_resolve_symlink(
8d419f
                 if (r < 0)
8d419f
                         return r;
8d419f
                 if (is_path(tail))
8d419f
-                        log_warning("Suspicious symlink %s/%s→%s, treating as alias.",
8d419f
-                                    dir, filename, simplified);
8d419f
+                        log_warning("Suspicious symlink %s/%s %s %s, treating as alias.",
8d419f
+                                    dir, filename, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), simplified);
8d419f
 
8d419f
                 dst = resolve_destination_target ? TAKE_PTR(simplified) : TAKE_PTR(target_name);
8d419f
 
8d419f
         } else {
8d419f
-                log_debug("Linked unit file: %s/%s → %s", dir, filename, simplified);
8d419f
+                log_debug("Linked unit file: %s/%s %s %s", dir, filename, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), simplified);
8d419f
 
8d419f
                 if (resolve_destination_target)
8d419f
                         dst = TAKE_PTR(simplified);
8d419f
@@ -569,8 +569,8 @@ int unit_file_build_name_map(
8d419f
 
8d419f
                         r = hashmap_ensure_put(&ids, &string_hash_ops_free_free, key, dst);
8d419f
                         if (r < 0)
8d419f
-                                return log_warning_errno(r, "Failed to add entry to hashmap (%s→%s): %m",
8d419f
-                                                         de->d_name, dst);
8d419f
+                                return log_warning_errno(r, "Failed to add entry to hashmap (%s%s%s): %m",
8d419f
+                                                         de->d_name, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), dst);
8d419f
                         key = dst = NULL;
8d419f
                 }
8d419f
         }
8d419f
@@ -612,7 +612,8 @@ int unit_file_build_name_map(
8d419f
 
8d419f
                 r = string_strv_hashmap_put(&names, dst, src);
8d419f
                 if (r < 0)
8d419f
-                        return log_warning_errno(r, "Failed to add entry to hashmap (%s→%s): %m", dst, src);
8d419f
+                        return log_warning_errno(r, "Failed to add entry to hashmap (%s%s%s): %m",
8d419f
+                                                 dst, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), src);
8d419f
         }
8d419f
 
8d419f
         if (cache_timestamp_hash)
8d419f
diff --git a/src/core/dbus-service.c b/src/core/dbus-service.c
8d419f
index e90fe4f596..3f7c161b0e 100644
8d419f
--- a/src/core/dbus-service.c
8d419f
+++ b/src/core/dbus-service.c
8d419f
@@ -493,7 +493,8 @@ static int bus_service_set_transient_property(
8d419f
                                         return log_oom();
8d419f
 
8d419f
                                 if (!UNIT_WRITE_FLAGS_NOOP(flags))
8d419f
-                                        log_unit_notice(u, "Transient unit's PIDFile= property references path below legacy directory /var/run, updating %s → %s; please update client accordingly.", n, z);
8d419f
+                                        log_unit_notice(u, "Transient unit's PIDFile= property references path below legacy directory /var/run, updating %s %s %s; please update client accordingly.",
8d419f
+                                                        n, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), z);
8d419f
 
8d419f
                                 free_and_replace(n, z);
8d419f
                         }
8d419f
diff --git a/src/core/manager-serialize.c b/src/core/manager-serialize.c
8d419f
index 60a35f48f3..007af3ee1f 100644
8d419f
--- a/src/core/manager-serialize.c
8d419f
+++ b/src/core/manager-serialize.c
8d419f
@@ -307,9 +307,11 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) {
8d419f
 
8d419f
                                 r = fd_get_path(fd, &fn);
8d419f
                                 if (r < 0)
8d419f
-                                        log_debug_errno(r, "Received serialized fd %i → %m", fd);
8d419f
+                                        log_debug_errno(r, "Received serialized fd %i %s %m",
8d419f
+                                                        fd, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT));
8d419f
                                 else
8d419f
-                                        log_debug("Received serialized fd %i → %s", fd, strna(fn));
8d419f
+                                        log_debug("Received serialized fd %i %s %s",
8d419f
+                                                  fd, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), strna(fn));
8d419f
                         }
8d419f
                 }
8d419f
         }
8d419f
diff --git a/src/core/namespace.c b/src/core/namespace.c
8d419f
index 4bd63f6227..3bf6524935 100644
8d419f
--- a/src/core/namespace.c
8d419f
+++ b/src/core/namespace.c
8d419f
@@ -17,6 +17,7 @@
8d419f
 #include "extension-release.h"
8d419f
 #include "fd-util.h"
8d419f
 #include "format-util.h"
8d419f
+#include "glyph-util.h"
8d419f
 #include "label.h"
8d419f
 #include "list.h"
8d419f
 #include "loop-util.h"
8d419f
@@ -1210,7 +1211,8 @@ static int follow_symlink(
8d419f
                                        "Symlink loop on '%s'.",
8d419f
                                        mount_entry_path(m));
8d419f
 
8d419f
-        log_debug("Followed mount entry path symlink %s → %s.", mount_entry_path(m), target);
8d419f
+        log_debug("Followed mount entry path symlink %s %s %s.",
8d419f
+                  mount_entry_path(m), special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), target);
8d419f
 
8d419f
         mount_entry_consume_prefix(m, TAKE_PTR(target));
8d419f
 
8d419f
@@ -1308,7 +1310,8 @@ static int apply_one_mount(
8d419f
                 if (r < 0)
8d419f
                         return log_debug_errno(r, "Failed to follow symlinks on %s: %m", mount_entry_source(m));
8d419f
 
8d419f
-                log_debug("Followed source symlinks %s → %s.", mount_entry_source(m), chased);
8d419f
+                log_debug("Followed source symlinks %s %s %s.",
8d419f
+                          mount_entry_source(m), special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), chased);
8d419f
 
8d419f
                 free_and_replace(m->source_malloc, chased);
8d419f
 
8d419f
diff --git a/src/core/socket.c b/src/core/socket.c
8d419f
index 8da9f14db6..cdb1e75e7a 100644
8d419f
--- a/src/core/socket.c
8d419f
+++ b/src/core/socket.c
8d419f
@@ -1291,7 +1291,8 @@ static int socket_symlink(Socket *s) {
8d419f
                 }
8d419f
 
8d419f
                 if (r < 0)
8d419f
-                        log_unit_warning_errno(UNIT(s), r, "Failed to create symlink %s → %s, ignoring: %m", p, *i);
8d419f
+                        log_unit_warning_errno(UNIT(s), r, "Failed to create symlink %s %s %s, ignoring: %m",
8d419f
+                                               p, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), *i);
8d419f
         }
8d419f
 
8d419f
         return 0;
8d419f
diff --git a/src/home/homed-home.c b/src/home/homed-home.c
8d419f
index 1340cf30d3..c78918ab1a 100644
8d419f
--- a/src/home/homed-home.c
8d419f
+++ b/src/home/homed-home.c
8d419f
@@ -19,6 +19,7 @@
8d419f
 #include "fileio.h"
8d419f
 #include "filesystems.h"
8d419f
 #include "fs-util.h"
8d419f
+#include "glyph-util.h"
8d419f
 #include "home-util.h"
8d419f
 #include "homed-home-bus.h"
8d419f
 #include "homed-home.h"
8d419f
@@ -479,8 +480,9 @@ static void home_set_state(Home *h, HomeState state) {
8d419f
         new_state = home_get_state(h); /* Query the new state, since the 'state' variable might be set to -1,
8d419f
                                         * in which case we synthesize an high-level state on demand */
8d419f
 
8d419f
-        log_info("%s: changing state %s → %s", h->user_name,
8d419f
+        log_info("%s: changing state %s %s %s", h->user_name,
8d419f
                  home_state_to_string(old_state),
8d419f
+                 special_glyph(SPECIAL_GLYPH_ARROW_RIGHT),
8d419f
                  home_state_to_string(new_state));
8d419f
 
8d419f
         home_update_pin_fd(h, new_state);
8d419f
diff --git a/src/home/homed-manager.c b/src/home/homed-manager.c
8d419f
index f04b87e366..f70c9f95e4 100644
8d419f
--- a/src/home/homed-manager.c
8d419f
+++ b/src/home/homed-manager.c
8d419f
@@ -23,6 +23,7 @@
8d419f
 #include "fileio.h"
8d419f
 #include "format-util.h"
8d419f
 #include "fs-util.h"
8d419f
+#include "glyph-util.h"
8d419f
 #include "gpt.h"
8d419f
 #include "home-util.h"
8d419f
 #include "homed-conf.h"
8d419f
@@ -1939,8 +1940,10 @@ static int manager_rebalance_calculate(Manager *m) {
8d419f
                     (m->rebalance_state == REBALANCE_GROWING && h->rebalance_goal < h->rebalance_size))
8d419f
                         h->rebalance_pending = false;
8d419f
                 else {
8d419f
-                        log_debug("Rebalancing home directory '%s' %s → %s.", h->user_name,
8d419f
-                                  FORMAT_BYTES(h->rebalance_size), FORMAT_BYTES(h->rebalance_goal));
8d419f
+                        log_debug("Rebalancing home directory '%s' %s %s %s.", h->user_name,
8d419f
+                                  FORMAT_BYTES(h->rebalance_size),
8d419f
+                                  special_glyph(SPECIAL_GLYPH_ARROW_RIGHT),
8d419f
+                                  FORMAT_BYTES(h->rebalance_goal));
8d419f
                         h->rebalance_pending = true;
8d419f
                 }
8d419f
 
8d419f
diff --git a/src/home/homework-luks.c b/src/home/homework-luks.c
8d419f
index f8f4afb253..f5653b4e14 100644
8d419f
--- a/src/home/homework-luks.c
8d419f
+++ b/src/home/homework-luks.c
8d419f
@@ -28,6 +28,7 @@
8d419f
 #include "filesystems.h"
8d419f
 #include "fs-util.h"
8d419f
 #include "fsck-util.h"
8d419f
+#include "glyph-util.h"
8d419f
 #include "home-util.h"
8d419f
 #include "homework-luks.h"
8d419f
 #include "homework-mount.h"
8d419f
@@ -3312,12 +3313,15 @@ int home_resize_luks(
8d419f
         if (resize_type == CAN_RESIZE_OFFLINE && FLAGS_SET(flags, HOME_SETUP_ALREADY_ACTIVATED))
8d419f
                 return log_error_errno(SYNTHETIC_ERRNO(ETXTBSY), "File systems of this type can only be resized offline, but is currently online.");
8d419f
 
8d419f
-        log_info("Ready to resize image size %s → %s, partition size %s → %s, file system size %s → %s.",
8d419f
+        log_info("Ready to resize image size %s %s %s, partition size %s %s %s, file system size %s %s %s.",
8d419f
                  FORMAT_BYTES(old_image_size),
8d419f
+                 special_glyph(SPECIAL_GLYPH_ARROW_RIGHT),
8d419f
                  FORMAT_BYTES(new_image_size),
8d419f
                  FORMAT_BYTES(setup->partition_size),
8d419f
+                 special_glyph(SPECIAL_GLYPH_ARROW_RIGHT),
8d419f
                  FORMAT_BYTES(new_partition_size),
8d419f
                  FORMAT_BYTES(old_fs_size),
8d419f
+                 special_glyph(SPECIAL_GLYPH_ARROW_RIGHT),
8d419f
                  FORMAT_BYTES(new_fs_size));
8d419f
 
8d419f
         r = prepare_resize_partition(
8d419f
diff --git a/src/home/homework-mount.c b/src/home/homework-mount.c
8d419f
index 0b028dad37..6dc665e323 100644
8d419f
--- a/src/home/homework-mount.c
8d419f
+++ b/src/home/homework-mount.c
8d419f
@@ -7,6 +7,7 @@
8d419f
 #include "alloc-util.h"
8d419f
 #include "fd-util.h"
8d419f
 #include "format-util.h"
8d419f
+#include "glyph-util.h"
8d419f
 #include "home-util.h"
8d419f
 #include "homework-mount.h"
8d419f
 #include "homework.h"
8d419f
@@ -283,7 +284,8 @@ int home_shift_uid(int dir_fd, const char *target, uid_t stored_uid, uid_t expos
8d419f
         if (r < 0)
8d419f
                 return log_error_errno(errno, "Failed to apply UID/GID map: %m");
8d419f
 
8d419f
-        log_debug("Applied uidmap mount to %s. Mapping is " UID_FMT " → " UID_FMT ".", strna(target), stored_uid, exposed_uid);
8d419f
+        log_debug("Applied uidmap mount to %s. Mapping is " UID_FMT " %s " UID_FMT ".",
8d419f
+                  strna(target), stored_uid, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), exposed_uid);
8d419f
 
8d419f
         if (ret_mount_fd)
8d419f
                 *ret_mount_fd = TAKE_FD(mount_fd);
8d419f
diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c
8d419f
index 9e1d29cc1d..d117199cf9 100644
8d419f
--- a/src/libsystemd/sd-bus/sd-bus.c
8d419f
+++ b/src/libsystemd/sd-bus/sd-bus.c
8d419f
@@ -30,6 +30,7 @@
8d419f
 #include "def.h"
8d419f
 #include "errno-util.h"
8d419f
 #include "fd-util.h"
8d419f
+#include "glyph-util.h"
8d419f
 #include "hexdecoct.h"
8d419f
 #include "hostname-util.h"
8d419f
 #include "io-util.h"
8d419f
@@ -521,7 +522,8 @@ void bus_set_state(sd_bus *bus, enum bus_state state) {
8d419f
         if (state == bus->state)
8d419f
                 return;
8d419f
 
8d419f
-        log_debug("Bus %s: changing state %s → %s", strna(bus->description), table[bus->state], table[state]);
8d419f
+        log_debug("Bus %s: changing state %s %s %s", strna(bus->description),
8d419f
+                  table[bus->state], special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), table[state]);
8d419f
         bus->state = state;
8d419f
 }
8d419f
 
8d419f
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
8d419f
index f409d1f33a..15c188cb6d 100644
8d419f
--- a/src/network/networkd-link.c
8d419f
+++ b/src/network/networkd-link.c
8d419f
@@ -26,6 +26,7 @@
8d419f
 #include "fileio.h"
8d419f
 #include "format-util.h"
8d419f
 #include "fs-util.h"
8d419f
+#include "glyph-util.h"
8d419f
 #include "ipvlan.h"
8d419f
 #include "missing_network.h"
8d419f
 #include "netlink-util.h"
8d419f
@@ -2122,7 +2123,8 @@ static int link_update_master(Link *link, sd_netlink_message *message) {
8d419f
         else if (master_ifindex == 0)
8d419f
                 log_link_debug(link, "Leaved from master interface: %i", link->master_ifindex);
8d419f
         else
8d419f
-                log_link_debug(link, "Master interface is changed: %i → %i", link->master_ifindex, master_ifindex);
8d419f
+                log_link_debug(link, "Master interface changed: %i %s %i", link->master_ifindex,
8d419f
+                               special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), master_ifindex);
8d419f
 
8d419f
         link_drop_from_master(link);
8d419f
 
8d419f
@@ -2158,8 +2160,10 @@ static int link_update_hardware_address(Link *link, sd_netlink_message *message)
8d419f
         if (link->hw_addr.length == 0)
8d419f
                 log_link_debug(link, "Saved hardware address: %s", HW_ADDR_TO_STR(&addr));
8d419f
         else {
8d419f
-                log_link_debug(link, "Hardware address is changed: %s → %s",
8d419f
-                               HW_ADDR_TO_STR(&link->hw_addr), HW_ADDR_TO_STR(&addr));
8d419f
+                log_link_debug(link, "Hardware address is changed: %s %s %s",
8d419f
+                               HW_ADDR_TO_STR(&link->hw_addr),
8d419f
+                               special_glyph(SPECIAL_GLYPH_ARROW_RIGHT),
8d419f
+                               HW_ADDR_TO_STR(&addr));
8d419f
 
8d419f
                 if (hashmap_get(link->manager->links_by_hw_addr, &link->hw_addr) == link)
8d419f
                         hashmap_remove(link->manager->links_by_hw_addr, &link->hw_addr);
8d419f
@@ -2256,8 +2260,9 @@ static int link_update_mtu(Link *link, sd_netlink_message *message) {
8d419f
                 return 0;
8d419f
 
8d419f
         if (link->mtu != 0)
8d419f
-                log_link_debug(link, "MTU is changed: %"PRIu32" → %"PRIu32" (min: %"PRIu32", max: %"PRIu32")",
8d419f
-                               link->mtu, mtu, link->min_mtu, link->max_mtu);
8d419f
+                log_link_debug(link, "MTU is changed: %"PRIu32" %s %"PRIu32" (min: %"PRIu32", max: %"PRIu32")",
8d419f
+                               link->mtu, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), mtu,
8d419f
+                               link->min_mtu, link->max_mtu);
8d419f
 
8d419f
         link->mtu = mtu;
8d419f
 
8d419f
diff --git a/src/partition/repart.c b/src/partition/repart.c
8d419f
index 9f95713130..d41411caeb 100644
8d419f
--- a/src/partition/repart.c
8d419f
+++ b/src/partition/repart.c
8d419f
@@ -1096,7 +1096,8 @@ static int config_parse_size4096(
8d419f
                 *sz = parsed;
8d419f
 
8d419f
         if (*sz != parsed)
8d419f
-                log_syntax(unit, LOG_NOTICE, filename, line, r, "Rounded %s= size %" PRIu64 " → %" PRIu64 ", a multiple of 4096.", lvalue, parsed, *sz);
8d419f
+                log_syntax(unit, LOG_NOTICE, filename, line, r, "Rounded %s= size %" PRIu64 " %s %" PRIu64 ", a multiple of 4096.",
8d419f
+                           lvalue, parsed, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), *sz);
8d419f
 
8d419f
         return 0;
8d419f
 }
8d419f
@@ -4295,8 +4296,8 @@ static int parse_argv(int argc, char *argv[]) {
8d419f
                                 return log_error_errno(SYNTHETIC_ERRNO(ERANGE), "Specified image size too large, refusing.");
8d419f
 
8d419f
                         if (rounded != parsed)
8d419f
-                                log_warning("Specified size is not a multiple of 4096, rounding up automatically. (%" PRIu64 " → %" PRIu64 ")",
8d419f
-                                            parsed, rounded);
8d419f
+                                log_warning("Specified size is not a multiple of 4096, rounding up automatically. (%" PRIu64 " %s %" PRIu64 ")",
8d419f
+                                            parsed, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), rounded);
8d419f
 
8d419f
                         arg_size = rounded;
8d419f
                         arg_size_auto = false;
8d419f
diff --git a/src/resolve/resolved-dns-query.c b/src/resolve/resolved-dns-query.c
8d419f
index 3b5e456db2..ddb66c4659 100644
8d419f
--- a/src/resolve/resolved-dns-query.c
8d419f
+++ b/src/resolve/resolved-dns-query.c
8d419f
@@ -3,6 +3,7 @@
8d419f
 #include "alloc-util.h"
8d419f
 #include "dns-domain.h"
8d419f
 #include "dns-type.h"
8d419f
+#include "glyph-util.h"
8d419f
 #include "hostname-util.h"
8d419f
 #include "local-addresses.h"
8d419f
 #include "resolved-dns-query.h"
8d419f
@@ -1016,7 +1017,10 @@ static int dns_query_cname_redirect(DnsQuery *q, const DnsResourceRecord *cname)
8d419f
         if (r < 0)
8d419f
                 return r;
8d419f
         if (r > 0)
8d419f
-                log_debug("Following CNAME/DNAME %s → %s.", dns_question_first_name(q->question_idna), dns_question_first_name(nq_idna));
8d419f
+                log_debug("Following CNAME/DNAME %s %s %s.",
8d419f
+                          dns_question_first_name(q->question_idna),
8d419f
+                          special_glyph(SPECIAL_GLYPH_ARROW_RIGHT),
8d419f
+                          dns_question_first_name(nq_idna));
8d419f
 
8d419f
         k = dns_question_is_equal(q->question_idna, q->question_utf8);
8d419f
         if (k < 0)
8d419f
@@ -1030,7 +1034,10 @@ static int dns_query_cname_redirect(DnsQuery *q, const DnsResourceRecord *cname)
8d419f
                 if (k < 0)
8d419f
                         return k;
8d419f
                 if (k > 0)
8d419f
-                        log_debug("Following UTF8 CNAME/DNAME %s → %s.", dns_question_first_name(q->question_utf8), dns_question_first_name(nq_utf8));
8d419f
+                        log_debug("Following UTF8 CNAME/DNAME %s %s %s.",
8d419f
+                                  dns_question_first_name(q->question_utf8),
8d419f
+                                  special_glyph(SPECIAL_GLYPH_ARROW_RIGHT),
8d419f
+                                  dns_question_first_name(nq_utf8));
8d419f
         }
8d419f
 
8d419f
         if (r == 0 && k == 0) /* No actual cname happened? */
8d419f
diff --git a/src/resolve/resolved-dns-transaction.c b/src/resolve/resolved-dns-transaction.c
8d419f
index 0cf9912712..1ae8103a14 100644
8d419f
--- a/src/resolve/resolved-dns-transaction.c
8d419f
+++ b/src/resolve/resolved-dns-transaction.c
8d419f
@@ -8,6 +8,7 @@
8d419f
 #include "errno-list.h"
8d419f
 #include "errno-util.h"
8d419f
 #include "fd-util.h"
8d419f
+#include "glyph-util.h"
8d419f
 #include "random-util.h"
8d419f
 #include "resolved-dns-cache.h"
8d419f
 #include "resolved-dns-transaction.h"
8d419f
@@ -2591,21 +2592,22 @@ int dns_transaction_request_dnssec_keys(DnsTransaction *t) {
8d419f
                         r = dns_name_parent(&name);
8d419f
                         if (r > 0) {
8d419f
                                 type = DNS_TYPE_SOA;
8d419f
-                                log_debug("Requesting parent SOA (→ %s) to validate transaction %" PRIu16 " (%s, unsigned empty DS response).",
8d419f
-                                          name, t->id, dns_resource_key_name(dns_transaction_key(t)));
8d419f
+                                log_debug("Requesting parent SOA (%s %s) to validate transaction %" PRIu16 " (%s, unsigned empty DS response).",
8d419f
+                                          special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), name, t->id,
8d419f
+                                          dns_resource_key_name(dns_transaction_key(t)));
8d419f
                         } else
8d419f
                                 name = NULL;
8d419f
 
8d419f
                 } else if (IN_SET(dns_transaction_key(t)->type, DNS_TYPE_SOA, DNS_TYPE_NS)) {
8d419f
 
8d419f
                         type = DNS_TYPE_DS;
8d419f
-                        log_debug("Requesting DS (→ %s) to validate transaction %" PRIu16 " (%s, unsigned empty SOA/NS response).",
8d419f
-                                  name, t->id, name);
8d419f
+                        log_debug("Requesting DS (%s %s) to validate transaction %" PRIu16 " (%s, unsigned empty SOA/NS response).",
8d419f
+                                  special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), name, t->id, name);
8d419f
 
8d419f
                 } else {
8d419f
                         type = DNS_TYPE_SOA;
8d419f
-                        log_debug("Requesting SOA (→ %s) to validate transaction %" PRIu16 " (%s, unsigned empty non-SOA/NS/DS response).",
8d419f
-                                  name, t->id, name);
8d419f
+                        log_debug("Requesting SOA (%s %s) to validate transaction %" PRIu16 " (%s, unsigned empty non-SOA/NS/DS response).",
8d419f
+                                  special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), name, t->id, name);
8d419f
                 }
8d419f
 
8d419f
                 if (name) {
8d419f
diff --git a/src/run-generator/run-generator.c b/src/run-generator/run-generator.c
8d419f
index fb62209704..e3fb7f24fe 100644
8d419f
--- a/src/run-generator/run-generator.c
8d419f
+++ b/src/run-generator/run-generator.c
8d419f
@@ -7,6 +7,7 @@
8d419f
 #include "fd-util.h"
8d419f
 #include "fileio.h"
8d419f
 #include "generator.h"
8d419f
+#include "glyph-util.h"
8d419f
 #include "mkdir.h"
8d419f
 #include "proc-cmdline.h"
8d419f
 #include "special.h"
8d419f
@@ -116,7 +117,8 @@ static int generate(void) {
8d419f
         /* And now redirect default.target to our new target */
8d419f
         p = strjoina(arg_dest, "/" SPECIAL_DEFAULT_TARGET);
8d419f
         if (symlink("kernel-command-line.target", p) < 0)
8d419f
-                return log_error_errno(errno, "Failed to link unit file kernel-command-line.target → %s: %m", p);
8d419f
+                return log_error_errno(errno, "Failed to link unit file kernel-command-line.target %s %s: %m",
8d419f
+                                       special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), p);
8d419f
 
8d419f
         return 0;
8d419f
 }
8d419f
diff --git a/src/shared/devnode-acl.c b/src/shared/devnode-acl.c
8d419f
index 89ff566832..21d8130e0d 100644
8d419f
--- a/src/shared/devnode-acl.c
8d419f
+++ b/src/shared/devnode-acl.c
8d419f
@@ -12,6 +12,7 @@
8d419f
 #include "escape.h"
8d419f
 #include "fd-util.h"
8d419f
 #include "format-util.h"
8d419f
+#include "glyph-util.h"
8d419f
 #include "set.h"
8d419f
 #include "string-util.h"
8d419f
 #include "util.h"
8d419f
@@ -242,8 +243,8 @@ int devnode_acl_all(const char *seat,
8d419f
         SET_FOREACH(n, nodes) {
8d419f
                 int k;
8d419f
 
8d419f
-                log_debug("Changing ACLs at %s for seat %s (uid "UID_FMT"→"UID_FMT"%s%s)",
8d419f
-                          n, seat, old_uid, new_uid,
8d419f
+                log_debug("Changing ACLs at %s for seat %s (uid "UID_FMT"%s"UID_FMT"%s%s)",
8d419f
+                          n, seat, old_uid, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), new_uid,
8d419f
                           del ? " del" : "", add ? " add" : "");
8d419f
 
8d419f
                 k = devnode_acl(n, flush, del, old_uid, add, new_uid);
8d419f
diff --git a/src/shared/dns-domain.c b/src/shared/dns-domain.c
8d419f
index f54b187a1b..49ce9cfa10 100644
8d419f
--- a/src/shared/dns-domain.c
8d419f
+++ b/src/shared/dns-domain.c
8d419f
@@ -7,6 +7,7 @@
8d419f
 
8d419f
 #include "alloc-util.h"
8d419f
 #include "dns-domain.h"
8d419f
+#include "glyph-util.h"
8d419f
 #include "hashmap.h"
8d419f
 #include "hexdecoct.h"
8d419f
 #include "hostname-util.h"
8d419f
@@ -1300,7 +1301,7 @@ int dns_name_apply_idna(const char *name, char **ret) {
8d419f
                 r = sym_idn2_lookup_u8((uint8_t*) name, (uint8_t**) &t,
8d419f
                                        IDN2_NFC_INPUT | IDN2_TRANSITIONAL);
8d419f
 
8d419f
-        log_debug("idn2_lookup_u8: %s → %s", name, t);
8d419f
+        log_debug("idn2_lookup_u8: %s %s %s", name, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), t);
8d419f
         if (r == IDN2_OK) {
8d419f
                 if (!startswith(name, "xn--")) {
8d419f
                         _cleanup_free_ char *s = NULL;
8d419f
@@ -1314,8 +1315,9 @@ int dns_name_apply_idna(const char *name, char **ret) {
8d419f
                         }
8d419f
 
8d419f
                         if (!streq_ptr(name, s)) {
8d419f
-                                log_debug("idn2 roundtrip failed: \"%s\" → \"%s\" → \"%s\", ignoring.",
8d419f
-                                          name, t, s);
8d419f
+                                log_debug("idn2 roundtrip failed: \"%s\" %s \"%s\" %s \"%s\", ignoring.",
8d419f
+                                          name, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), t,
8d419f
+                                          special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), s);
8d419f
                                 *ret = NULL;
8d419f
                                 return 0;
8d419f
                         }
8d419f
diff --git a/src/shared/install.c b/src/shared/install.c
8d419f
index 4c7d0d6cad..d3661521a9 100644
8d419f
--- a/src/shared/install.c
8d419f
+++ b/src/shared/install.c
8d419f
@@ -523,7 +523,8 @@ static int create_symlink(
8d419f
         }
8d419f
 
8d419f
         if (chroot_unit_symlinks_equivalent(lp, new_path, dest, old_path)) {
8d419f
-                log_debug("Symlink %s → %s already exists", new_path, dest);
8d419f
+                log_debug("Symlink %s %s %s already exists",
8d419f
+                          new_path, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), dest);
8d419f
                 return 1;
8d419f
         }
8d419f
 
8d419f
diff --git a/src/shared/mount-util.c b/src/shared/mount-util.c
8d419f
index 12c7044f04..e0c8cff14a 100644
8d419f
--- a/src/shared/mount-util.c
8d419f
+++ b/src/shared/mount-util.c
8d419f
@@ -17,6 +17,7 @@
8d419f
 #include "fd-util.h"
8d419f
 #include "fileio.h"
8d419f
 #include "fs-util.h"
8d419f
+#include "glyph-util.h"
8d419f
 #include "hashmap.h"
8d419f
 #include "label.h"
8d419f
 #include "libmount-util.h"
8d419f
@@ -672,8 +673,8 @@ int mount_verbose_full(
8d419f
                 log_debug("Bind-mounting %s on %s (%s \"%s\")...",
8d419f
                           what, where, strnull(fl), strempty(o));
8d419f
         else if (f & MS_MOVE)
8d419f
-                log_debug("Moving mount %s → %s (%s \"%s\")...",
8d419f
-                          what, where, strnull(fl), strempty(o));
8d419f
+                log_debug("Moving mount %s %s %s (%s \"%s\")...",
8d419f
+                          what, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), where, strnull(fl), strempty(o));
8d419f
         else
8d419f
                 log_debug("Mounting %s (%s) on %s (%s \"%s\")...",
8d419f
                           strna(what), strna(type), where, strnull(fl), strempty(o));
8d419f
diff --git a/src/shared/varlink.c b/src/shared/varlink.c
8d419f
index e0038dfd28..f18301d3c4 100644
8d419f
--- a/src/shared/varlink.c
8d419f
+++ b/src/shared/varlink.c
8d419f
@@ -6,6 +6,7 @@
8d419f
 #include "alloc-util.h"
8d419f
 #include "errno-util.h"
8d419f
 #include "fd-util.h"
8d419f
+#include "glyph-util.h"
8d419f
 #include "hashmap.h"
8d419f
 #include "io-util.h"
8d419f
 #include "list.h"
8d419f
@@ -236,8 +237,9 @@ static void varlink_set_state(Varlink *v, VarlinkState state) {
8d419f
                 varlink_log(v, "Setting state %s",
8d419f
                             varlink_state_to_string(state));
8d419f
         else
8d419f
-                varlink_log(v, "Changing state %s → %s",
8d419f
+                varlink_log(v, "Changing state %s %s %s",
8d419f
                             varlink_state_to_string(v->state),
8d419f
+                            special_glyph(SPECIAL_GLYPH_ARROW_RIGHT),
8d419f
                             varlink_state_to_string(state));
8d419f
 
8d419f
         v->state = state;
8d419f
diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c
8d419f
index 673ed7a7ca..1ca7983cfe 100644
8d419f
--- a/src/udev/udev-builtin-net_id.c
8d419f
+++ b/src/udev/udev-builtin-net_id.c
8d419f
@@ -28,6 +28,7 @@
8d419f
 #include "dirent-util.h"
8d419f
 #include "fd-util.h"
8d419f
 #include "fileio.h"
8d419f
+#include "glyph-util.h"
8d419f
 #include "netif-naming-scheme.h"
8d419f
 #include "parse-util.h"
8d419f
 #include "proc-cmdline.h"
8d419f
@@ -215,9 +216,9 @@ static int dev_pci_onboard(sd_device *dev, const LinkInfo *info, NetNames *names
8d419f
                 l = strpcpyf(&s, l, "d%lu", dev_port);
8d419f
         if (l == 0)
8d419f
                 names->pci_onboard[0] = '\0';
8d419f
-        log_device_debug(dev, "Onboard index identifier: index=%lu phys_port=%s dev_port=%lu → %s",
8d419f
+        log_device_debug(dev, "Onboard index identifier: index=%lu phys_port=%s dev_port=%lu %s %s",
8d419f
                          idx, strempty(info->phys_port_name), dev_port,
8d419f
-                         empty_to_na(names->pci_slot));
8d419f
+                         special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), empty_to_na(names->pci_slot));
8d419f
 
8d419f
         if (sd_device_get_sysattr_value(names->pcidev, "label", &names->pci_onboard_label) >= 0)
8d419f
                 log_device_debug(dev, "Onboard label from PCI device: %s", names->pci_onboard_label);
8d419f
@@ -393,9 +394,9 @@ static int dev_pci_slot(sd_device *dev, const LinkInfo *info, NetNames *names) {
8d419f
         if (l == 0)
8d419f
                 names->pci_path[0] = '\0';
8d419f
 
8d419f
-        log_device_debug(dev, "PCI path identifier: domain=%u bus=%u slot=%u func=%u phys_port=%s dev_port=%lu → %s",
8d419f
+        log_device_debug(dev, "PCI path identifier: domain=%u bus=%u slot=%u func=%u phys_port=%s dev_port=%lu %s %s",
8d419f
                          domain, bus, slot, func, strempty(info->phys_port_name), dev_port,
8d419f
-                         empty_to_na(names->pci_path));
8d419f
+                         special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), empty_to_na(names->pci_path));
8d419f
 
8d419f
         /* ACPI _SUN — slot user number */
8d419f
         r = sd_device_new_from_subsystem_sysname(&pci, "subsystem", "pci");
8d419f
@@ -487,9 +488,9 @@ static int dev_pci_slot(sd_device *dev, const LinkInfo *info, NetNames *names) {
8d419f
                 if (l == 0)
8d419f
                         names->pci_slot[0] = '\0';
8d419f
 
8d419f
-                log_device_debug(dev, "Slot identifier: domain=%u slot=%"PRIu32" func=%u phys_port=%s dev_port=%lu → %s",
8d419f
+                log_device_debug(dev, "Slot identifier: domain=%u slot=%"PRIu32" func=%u phys_port=%s dev_port=%lu %s %s",
8d419f
                                  domain, hotplug_slot, func, strempty(info->phys_port_name), dev_port,
8d419f
-                                 empty_to_na(names->pci_slot));
8d419f
+                                 special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), empty_to_na(names->pci_slot));
8d419f
         }
8d419f
 
8d419f
         return 0;
8d419f
@@ -529,7 +530,8 @@ static int names_vio(sd_device *dev, NetNames *names) {
8d419f
 
8d419f
         xsprintf(names->vio_slot, "v%u", slotid);
8d419f
         names->type = NET_VIO;
8d419f
-        log_device_debug(dev, "Vio slot identifier: slotid=%u → %s", slotid, names->vio_slot);
8d419f
+        log_device_debug(dev, "Vio slot identifier: slotid=%u %s %s",
8d419f
+                         slotid, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), names->vio_slot);
8d419f
         return 0;
8d419f
 }
8d419f
 
8d419f
@@ -596,8 +598,8 @@ static int names_platform(sd_device *dev, NetNames *names, bool test) {
8d419f
 
8d419f
         xsprintf(names->platform_path, "a%s%xi%u", vendor, model, instance);
8d419f
         names->type = NET_PLATFORM;
8d419f
-        log_device_debug(dev, "Platform identifier: vendor=%s model=%u instance=%u → %s",
8d419f
-                         vendor, model, instance, names->platform_path);
8d419f
+        log_device_debug(dev, "Platform identifier: vendor=%s model=%u instance=%u %s %s",
8d419f
+                         vendor, model, instance, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), names->platform_path);
8d419f
         return 0;
8d419f
 }
8d419f
 
8d419f
@@ -718,8 +720,9 @@ static int names_usb(sd_device *dev, NetNames *names) {
8d419f
         if (l == 0)
8d419f
                 return log_device_debug_errno(dev, SYNTHETIC_ERRNO(ENAMETOOLONG),
8d419f
                                               "Generated USB name would be too long.");
8d419f
-        log_device_debug(dev, "USB name identifier: ports=%.*s config=%s interface=%s → %s",
8d419f
-                         (int) strlen(ports), sysname + (ports - name), config, interf, names->usb_ports);
8d419f
+        log_device_debug(dev, "USB name identifier: ports=%.*s config=%s interface=%s %s %s",
8d419f
+                         (int) strlen(ports), sysname + (ports - name), config, interf,
8d419f
+                         special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), names->usb_ports);
8d419f
         names->type = NET_USB;
8d419f
         return 0;
8d419f
 }
8d419f
@@ -752,7 +755,8 @@ static int names_bcma(sd_device *dev, NetNames *names) {
8d419f
                 xsprintf(names->bcma_core, "b%u", core);
8d419f
 
8d419f
         names->type = NET_BCMA;
8d419f
-        log_device_debug(dev, "BCMA core identifier: core=%u → \"%s\"", core, names->bcma_core);
8d419f
+        log_device_debug(dev, "BCMA core identifier: core=%u %s \"%s\"",
8d419f
+                         core, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), names->bcma_core);
8d419f
         return 0;
8d419f
 }
8d419f
 
8d419f
@@ -813,7 +817,8 @@ static int names_ccw(sd_device *dev, NetNames *names) {
8d419f
                 return log_device_debug_errno(dev, SYNTHETIC_ERRNO(ENAMETOOLONG),
8d419f
                                               "Generated CCW name would be too long.");
8d419f
         names->type = NET_CCW;
8d419f
-        log_device_debug(dev, "CCW identifier: ccw_busid=%s → \"%s\"", bus_id, names->ccw_busid);
8d419f
+        log_device_debug(dev, "CCW identifier: ccw_busid=%s %s \"%s\"",
8d419f
+                         bus_id, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), names->ccw_busid);
8d419f
         return 0;
8d419f
 }
8d419f
 
8d419f
@@ -1027,8 +1032,9 @@ static int builtin_net_id(sd_device *dev, sd_netlink **rtnl, int argc, char *arg
8d419f
 
8d419f
                 xsprintf(str, "%sx%s", prefix, HW_ADDR_TO_STR_FULL(&info.hw_addr, HW_ADDR_TO_STRING_NO_COLON));
8d419f
                 udev_builtin_add_property(dev, test, "ID_NET_NAME_MAC", str);
8d419f
-                log_device_debug(dev, "MAC address identifier: hw_addr=%s → %s",
8d419f
-                                 HW_ADDR_TO_STR(&info.hw_addr), str + strlen(prefix));
8d419f
+                log_device_debug(dev, "MAC address identifier: hw_addr=%s %s %s",
8d419f
+                                 HW_ADDR_TO_STR(&info.hw_addr),
8d419f
+                                 special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), str + strlen(prefix));
8d419f
 
8d419f
                 ieee_oui(dev, &info, test);
8d419f
         }