systemd-250-9

Resolves: #2087778,#2116681,#2118297,#2118668
This commit is contained in:
Jan Macku 2022-08-18 13:35:33 +02:00
parent 0daf48d9aa
commit 50665f7e22
70 changed files with 47053 additions and 1 deletions

View File

@ -0,0 +1,604 @@
From 7cff4a47721c2cc07648e7a84a6dee2c5e930412 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Tue, 12 Apr 2022 22:01:10 +0200
Subject: [PATCH] Revert "shared/install: create relative symlinks for
enablement and aliasing"
This reverts commit d6c9411072901556176ac130f2ce71a33107aa93.
I still think this is something that needs to be done, but we're hitting some
unexplained failures, e.g. https://github.com/systemd/systemd/issues/22920.
So let's revert this for now, so -rc2 can be released, with a plan to return
to this after a release.
Closes #22920.
(cherry picked from commit 9aa3d6b41eadff6634bb3cf800064724171a7aad)
Resolves: #2118668
---
src/shared/install.c | 14 ++--
src/test/test-install-root.c | 65 ++++++++---------
test/test-systemctl-enable.sh | 130 ++++++++++++++++++----------------
3 files changed, 103 insertions(+), 106 deletions(-)
diff --git a/src/shared/install.c b/src/shared/install.c
index 96d64d32bb..eb5c3d5f91 100644
--- a/src/shared/install.c
+++ b/src/shared/install.c
@@ -1904,7 +1904,7 @@ static int install_info_symlink_alias(
if (!alias_path)
return -ENOMEM;
- q = create_symlink(lp, info->name, alias_path, force, changes, n_changes);
+ q = create_symlink(lp, info->path, alias_path, force, changes, n_changes);
r = r < 0 ? r : q;
}
@@ -1973,7 +1973,7 @@ static int install_info_symlink_wants(
}
STRV_FOREACH(s, list) {
- _cleanup_free_ char *dst = NULL;
+ _cleanup_free_ char *path = NULL, *dst = NULL;
q = install_name_printf(scope, info, *s, &dst);
if (q < 0) {
@@ -2003,15 +2003,11 @@ static int install_info_symlink_wants(
continue;
}
- _cleanup_free_ char *path = strjoin(config_path, "/", dst, suffix, n);
+ path = strjoin(config_path, "/", dst, suffix, n);
if (!path)
return -ENOMEM;
- _cleanup_free_ char *target = strjoin("../", info->name);
- if (!target)
- return -ENOMEM;
-
- q = create_symlink(lp, target, path, true, changes, n_changes);
+ q = create_symlink(lp, info->path, path, true, changes, n_changes);
if (r == 0)
r = q;
@@ -2919,7 +2915,7 @@ int unit_file_set_default(
return r;
new_path = strjoina(lp.persistent_config, "/" SPECIAL_DEFAULT_TARGET);
- return create_symlink(&lp, info->name, new_path, flags & UNIT_FILE_FORCE, changes, n_changes);
+ return create_symlink(&lp, info->path, new_path, flags & UNIT_FILE_FORCE, changes, n_changes);
}
int unit_file_get_default(
diff --git a/src/test/test-install-root.c b/src/test/test-install-root.c
index a36536b85b..c2980ccbbd 100644
--- a/src/test/test-install-root.c
+++ b/src/test/test-install-root.c
@@ -88,7 +88,7 @@ TEST(basic_mask_and_enable) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("a.service"), &changes, &n_changes) == 1);
assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../a.service"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/a.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/a.service");
assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes);
@@ -128,7 +128,7 @@ TEST(basic_mask_and_enable) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("d.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../a.service"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/a.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/a.service");
assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes);
@@ -147,7 +147,7 @@ TEST(basic_mask_and_enable) {
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/a.service");
assert_se(streq(changes[0].path, p));
assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[1].source, "../a.service"));
+ assert_se(streq(changes[1].source, "/usr/lib/systemd/system/a.service"));
assert_se(streq(changes[1].path, p));
unit_file_changes_free(changes, n_changes);
changes = NULL; n_changes = 0;
@@ -186,7 +186,7 @@ TEST(basic_mask_and_enable) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("f.service"), &changes, &n_changes) == 1);
assert_se(n_changes == 2);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../f.service"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/f.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/x.target.wants/f.service");
assert_se(streq(changes[0].path, p));
assert_se(changes[1].type_or_errno == UNIT_FILE_DESTINATION_NOT_PRESENT);
@@ -280,8 +280,7 @@ TEST(linked_units) {
q = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/linked.service");
for (i = 0 ; i < n_changes; i++) {
assert_se(changes[i].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(STR_IN_SET(changes[i].source,
- "../linked.service", "/opt/linked.service"));
+ assert_se(streq(changes[i].source, "/opt/linked.service"));
if (p && streq(changes[i].path, p))
p = NULL;
@@ -323,8 +322,7 @@ TEST(linked_units) {
q = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/linked2.service");
for (i = 0 ; i < n_changes; i++) {
assert_se(changes[i].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(STR_IN_SET(changes[i].source,
- "../linked2.service", "/opt/linked2.service"));
+ assert_se(streq(changes[i].source, "/opt/linked2.service"));
if (p && streq(changes[i].path, p))
p = NULL;
@@ -342,7 +340,7 @@ TEST(linked_units) {
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(startswith(changes[0].path, root));
assert_se(endswith(changes[0].path, "linked3.service"));
- assert_se(streq(changes[0].source, "../linked3.service"));
+ assert_se(streq(changes[0].source, "/opt/linked3.service"));
unit_file_changes_free(changes, n_changes);
changes = NULL; n_changes = 0;
}
@@ -373,7 +371,7 @@ TEST(default) {
assert_se(unit_file_set_default(LOOKUP_SCOPE_SYSTEM, 0, root, "test-default.target", &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "test-default-real.target"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/test-default-real.target"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR "/" SPECIAL_DEFAULT_TARGET);
assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes);
@@ -403,7 +401,7 @@ TEST(add_dependency) {
assert_se(unit_file_add_dependency(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("add-dependency-test-service.service"), "add-dependency-test-target.target", UNIT_WANTS, &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../real-add-dependency-test-service.service"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/real-add-dependency-test-service.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/real-add-dependency-test-target.target.wants/real-add-dependency-test-service.service");
assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes);
@@ -444,7 +442,7 @@ TEST(template_enable) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../template@.service"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/template@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/template@def.service");
assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes);
@@ -475,14 +473,13 @@ TEST(template_enable) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template@foo.service"), &changes, &n_changes) >= 0);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../template@foo.service"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/template@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/template@foo.service");
assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes);
changes = NULL; n_changes = 0;
- assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@.service", &state) >= 0);
- assert_se(state == UNIT_FILE_INDIRECT);
+ assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@.service", &state) >= 0 && state == UNIT_FILE_INDIRECT);
assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@def.service", &state) >= 0 && state == UNIT_FILE_DISABLED);
assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template@foo.service", &state) >= 0 && state == UNIT_FILE_ENABLED);
assert_se(unit_file_get_state(LOOKUP_SCOPE_SYSTEM, root, "template-symlink@foo.service", &state) >= 0 && state == UNIT_FILE_ENABLED);
@@ -509,7 +506,7 @@ TEST(template_enable) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("template-symlink@quux.service"), &changes, &n_changes) >= 0);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../template@quux.service"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/template@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/template@quux.service");
assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes);
@@ -555,7 +552,7 @@ TEST(indirect) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("indirectc.service"), &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../indirectb.service"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/indirectb.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/indirectb.service");
assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes);
@@ -607,7 +604,7 @@ TEST(preset_and_list) {
assert_se(unit_file_preset(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("preset-yes.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../preset-yes.service"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/preset-yes.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/preset-yes.service");
assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes);
@@ -644,7 +641,7 @@ TEST(preset_and_list) {
for (i = 0; i < n_changes; i++) {
if (changes[i].type_or_errno == UNIT_FILE_SYMLINK) {
- assert_se(streq(changes[i].source, "../preset-yes.service"));
+ assert_se(streq(changes[i].source, "/usr/lib/systemd/system/preset-yes.service"));
assert_se(streq(changes[i].path, p));
} else
assert_se(changes[i].type_or_errno == UNIT_FILE_UNLINK);
@@ -760,7 +757,7 @@ TEST(preset_order) {
assert_se(unit_file_preset(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("prefix-1.service"), UNIT_FILE_PRESET_FULL, &changes, &n_changes) >= 0);
assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../prefix-1.service"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/prefix-1.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/prefix-1.service");
assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes);
@@ -869,8 +866,8 @@ TEST(with_dropin) {
assert_se(n_changes == 2);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../with-dropin-1.service"));
- assert_se(streq(changes[1].source, "../with-dropin-1.service"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-1.service"));
+ assert_se(streq(changes[1].source, "/usr/lib/systemd/system/with-dropin-1.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-1.service");
assert_se(streq(changes[0].path, p));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/graphical.target.wants/with-dropin-1.service");
@@ -883,8 +880,8 @@ TEST(with_dropin) {
assert_se(n_changes == 2);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../with-dropin-2.service"));
- assert_se(streq(changes[1].source, "../with-dropin-2.service"));
+ assert_se(streq(changes[0].source, SYSTEM_CONFIG_UNIT_DIR"/with-dropin-2.service"));
+ assert_se(streq(changes[1].source, SYSTEM_CONFIG_UNIT_DIR"/with-dropin-2.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-2.service");
assert_se(streq(changes[0].path, p));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/graphical.target.wants/with-dropin-2.service");
@@ -897,8 +894,8 @@ TEST(with_dropin) {
assert_se(n_changes == 2);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../with-dropin-3.service"));
- assert_se(streq(changes[1].source, "../with-dropin-3.service"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-3.service"));
+ assert_se(streq(changes[1].source, "/usr/lib/systemd/system/with-dropin-3.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-3.service");
assert_se(streq(changes[0].path, p));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/graphical.target.wants/with-dropin-3.service");
@@ -911,8 +908,8 @@ TEST(with_dropin) {
assert_se(n_changes == 2);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../with-dropin-4a.service"));
- assert_se(streq(changes[1].source, "../with-dropin-4b.service"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-4a.service"));
+ assert_se(streq(changes[1].source, "/usr/lib/systemd/system/with-dropin-4b.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-4a.service");
assert_se(streq(changes[0].path, p));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-4b.service");
@@ -978,8 +975,8 @@ TEST(with_dropin_template) {
assert_se(n_changes == 2);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../with-dropin-1@instance-1.service"));
- assert_se(streq(changes[1].source, "../with-dropin-1@instance-1.service"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-1@.service"));
+ assert_se(streq(changes[1].source, "/usr/lib/systemd/system/with-dropin-1@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-1@instance-1.service");
assert_se(streq(changes[0].path, p));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/graphical.target.wants/with-dropin-1@instance-1.service");
@@ -991,8 +988,8 @@ TEST(with_dropin_template) {
assert_se(n_changes == 2);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
assert_se(changes[1].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../with-dropin-2@instance-1.service"));
- assert_se(streq(changes[1].source, "../with-dropin-2@instance-1.service"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-2@.service"));
+ assert_se(streq(changes[1].source, "/usr/lib/systemd/system/with-dropin-2@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-2@instance-1.service");
assert_se(streq(changes[0].path, p));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/graphical.target.wants/with-dropin-2@instance-1.service");
@@ -1003,7 +1000,7 @@ TEST(with_dropin_template) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-2@instance-2.service"), &changes, &n_changes) == 1);
assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../with-dropin-2@instance-2.service"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-2@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-2@instance-2.service");
assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes);
@@ -1012,7 +1009,7 @@ TEST(with_dropin_template) {
assert_se(unit_file_enable(LOOKUP_SCOPE_SYSTEM, 0, root, STRV_MAKE("with-dropin-3@.service"), &changes, &n_changes) == 1);
assert_se(n_changes == 1);
assert_se(changes[0].type_or_errno == UNIT_FILE_SYMLINK);
- assert_se(streq(changes[0].source, "../with-dropin-3@.service"));
+ assert_se(streq(changes[0].source, "/usr/lib/systemd/system/with-dropin-3@.service"));
p = strjoina(root, SYSTEM_CONFIG_UNIT_DIR"/multi-user.target.wants/with-dropin-3@instance-2.service");
assert_se(streq(changes[0].path, p));
unit_file_changes_free(changes, n_changes);
diff --git a/test/test-systemctl-enable.sh b/test/test-systemctl-enable.sh
index ac1bcc1cc7..0f9f220571 100644
--- a/test/test-systemctl-enable.sh
+++ b/test/test-systemctl-enable.sh
@@ -90,27 +90,27 @@ EOF
( ! "$systemctl" --root="$root" enable test1 )
test -h "$root/etc/systemd/system/default.target.wants/test1.service"
test -h "$root/etc/systemd/system/special.target.requires/test1.service"
-test -e "$root/etc/systemd/system/test1-goodalias.service"
+test ! -e "$root/etc/systemd/system/test1-goodalias.service"
test -h "$root/etc/systemd/system/test1-goodalias.service"
-test ! -h "$root/etc/systemd/system/test1@badalias.service"
-test ! -h "$root/etc/systemd/system/test1-badalias.target"
-test ! -h "$root/etc/systemd/system/test1-badalias.socket"
-test -e "$root/etc/systemd/system/test1-goodalias2.service"
+test ! -e "$root/etc/systemd/system/test1@badalias.service"
+test ! -e "$root/etc/systemd/system/test1-badalias.target"
+test ! -e "$root/etc/systemd/system/test1-badalias.socket"
test -h "$root/etc/systemd/system/test1-goodalias2.service"
: '-------aliases in reeanble----------------------------------'
( ! "$systemctl" --root="$root" reenable test1 )
-islink "$root/etc/systemd/system/default.target.wants/test1.service" "../test1.service"
-islink "$root/etc/systemd/system/test1-goodalias.service" "test1.service"
+test -h "$root/etc/systemd/system/default.target.wants/test1.service"
+test ! -e "$root/etc/systemd/system/test1-goodalias.service"
+test -h "$root/etc/systemd/system/test1-goodalias.service"
-test ! -h "$root/etc/systemd/system/test1@badalias.service"
-test ! -h "$root/etc/systemd/system/test1-badalias.target"
-test ! -h "$root/etc/systemd/system/test1-badalias.socket"
+test ! -e "$root/etc/systemd/system/test1@badalias.service"
+test ! -e "$root/etc/systemd/system/test1-badalias.target"
+test ! -e "$root/etc/systemd/system/test1-badalias.socket"
"$systemctl" --root="$root" disable test1
-test ! -h "$root/etc/systemd/system/default.target.wants/test1.service"
-test ! -h "$root/etc/systemd/system/special.target.requires/test1.service"
-test ! -h "$root/etc/systemd/system/test1-goodalias.service"
+test ! -e "$root/etc/systemd/system/default.target.wants/test1.service"
+test ! -e "$root/etc/systemd/system/special.target.requires/test1.service"
+test ! -e "$root/etc/systemd/system/test1-goodalias.service"
: '-------aliases when link already exists---------------------'
cat >"$root/etc/systemd/system/test1a.service" <<EOF
@@ -201,17 +201,17 @@ test ! -e "$root/etc/systemd/system/link1.path"
: '-------link and enable--------------------------------------'
"$systemctl" --root="$root" enable '/link1.path'
islink "$root/etc/systemd/system/link1.path" "/link1.path"
-islink "$root/etc/systemd/system/paths.target.wants/link1.path" "../link1.path"
+islink "$root/etc/systemd/system/paths.target.wants/link1.path" "/link1.path"
: '-------enable already linked same path----------------------'
"$systemctl" --root="$root" enable '/link1.path'
islink "$root/etc/systemd/system/link1.path" "/link1.path"
-islink "$root/etc/systemd/system/paths.target.wants/link1.path" "../link1.path"
+islink "$root/etc/systemd/system/paths.target.wants/link1.path" "/link1.path"
: '-------enable already linked different path-----------------'
( ! "$systemctl" --root="$root" enable '/subdir/link1.path' )
islink "$root/etc/systemd/system/link1.path" "/link1.path"
-islink "$root/etc/systemd/system/paths.target.wants/link1.path" "../link1.path"
+islink "$root/etc/systemd/system/paths.target.wants/link1.path" "/link1.path"
: '-------enable bad suffix------------------------------------'
cp "$root/link1.path" "$root/subdir/link1.suffix"
@@ -240,11 +240,11 @@ test ! -h "$root/etc/systemd/system/paths.target.wants/link1.path"
"$systemctl" --root="$root" enable 'link1.path'
islink "$root/etc/systemd/system/link1.path" "/link1.path"
-islink "$root/etc/systemd/system/paths.target.wants/link1.path" "../link1.path"
+islink "$root/etc/systemd/system/paths.target.wants/link1.path" "/link1.path"
"$systemctl" --root="$root" reenable 'link1.path'
islink "$root/etc/systemd/system/link1.path" "/link1.path"
-islink "$root/etc/systemd/system/paths.target.wants/link1.path" "../link1.path"
+islink "$root/etc/systemd/system/paths.target.wants/link1.path" "/link1.path"
: '-------manual link------------------------------------------'
cat >"$root/link3.suffix" <<EOF
@@ -257,7 +257,7 @@ ln -s "/link3.suffix" "$root/etc/systemd/system/link3.service"
SYSTEMD_LOG_LEVEL=debug SYSTEMD_LOG_LOCATION=1 "$systemctl" --root="$root" enable 'link3.service'
islink "$root/etc/systemd/system/link3.service" "/link3.suffix"
-islink "$root/etc/systemd/system/services.target.wants/link3.service" "../link3.service"
+islink "$root/etc/systemd/system/services.target.wants/link3.service" "/link3.suffix"
SYSTEMD_LOG_LEVEL=debug SYSTEMD_LOG_LOCATION=1 "$systemctl" --root="$root" disable 'link3.service'
test ! -h "$root/etc/systemd/system/link3.service"
@@ -293,7 +293,7 @@ test ! -h "$root/etc/systemd/system/services.target.wants/link5-also.service"
"$systemctl" --root="$root" enable 'link5-also.service'
test ! -h "$root/etc/systemd/system/services.target.wants/link5.service"
-islink "$root/etc/systemd/system/services.target.wants/link5-also.service" "../link5-also.service"
+islink "$root/etc/systemd/system/services.target.wants/link5-also.service" "/etc/systemd/system/link5-also.service"
: '-------template enablement----------------------------------'
cat >"$root/etc/systemd/system/templ1@.service" <<EOF
@@ -307,17 +307,17 @@ test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
"$systemctl" --root="$root" enable 'templ1@one.service'
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
-islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "../templ1@one.service"
+islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "/etc/systemd/system/templ1@.service"
"$systemctl" --root="$root" enable 'templ1@two.service'
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
-islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "../templ1@one.service"
-islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "../templ1@two.service"
+islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "/etc/systemd/system/templ1@.service"
+islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "/etc/systemd/system/templ1@.service"
"$systemctl" --root="$root" disable 'templ1@one.service'
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@one.service"
-islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "../templ1@two.service"
+islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "/etc/systemd/system/templ1@.service"
"$systemctl" --root="$root" disable 'templ1@two.service'
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
@@ -335,33 +335,33 @@ EOF
"$systemctl" --root="$root" enable 'templ1@.service'
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
-islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "../templ1@.service"
-islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "../templ1@.service"
+islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "/etc/systemd/system/templ1@.service"
+islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "/etc/systemd/system/templ1@.service"
"$systemctl" --root="$root" enable 'templ1@one.service'
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
-islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "../templ1@.service"
-islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "../templ1@.service"
-islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "../templ1@one.service"
-islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@one.service" "../templ1@one.service"
+islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "/etc/systemd/system/templ1@.service"
+islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "/etc/systemd/system/templ1@.service"
+islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "/etc/systemd/system/templ1@.service"
+islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@one.service" "/etc/systemd/system/templ1@.service"
"$systemctl" --root="$root" enable 'templ1@two.service'
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
-islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "../templ1@.service"
-islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "../templ1@.service"
-islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "../templ1@one.service"
-islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@one.service" "../templ1@one.service"
-islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "../templ1@two.service"
-islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@two.service" "../templ1@two.service"
+islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "/etc/systemd/system/templ1@.service"
+islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "/etc/systemd/system/templ1@.service"
+islink "$root/etc/systemd/system/services.target.wants/templ1@one.service" "/etc/systemd/system/templ1@.service"
+islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@one.service" "/etc/systemd/system/templ1@.service"
+islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "/etc/systemd/system/templ1@.service"
+islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@two.service" "/etc/systemd/system/templ1@.service"
"$systemctl" --root="$root" disable 'templ1@one.service'
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@.service"
-islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "../templ1@.service"
-islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "../templ1@.service"
+islink "$root/etc/systemd/system/services.target.wants/templ1@333.service" "/etc/systemd/system/templ1@.service"
+islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@333.service" "/etc/systemd/system/templ1@.service"
test ! -h "$root/etc/systemd/system/services.target.wants/templ1@one.service"
test ! -h "$root/etc/systemd/system/other@templ1.target.requires/templ1@one.service"
-islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "../templ1@two.service"
-islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@two.service" "../templ1@two.service"
+islink "$root/etc/systemd/system/services.target.wants/templ1@two.service" "/etc/systemd/system/templ1@.service"
+islink "$root/etc/systemd/system/other@templ1.target.requires/templ1@two.service" "/etc/systemd/system/templ1@.service"
# disable remaining links here
"$systemctl" --root="$root" disable 'templ1@.service'
@@ -400,18 +400,18 @@ RequiredBy=another-template@.target
EOF
"$systemctl" --root="$root" enable 'templ2@.service'
-islink "$root/etc/systemd/system/another-template@.target.requires/templ2@.service" "../templ2@.service"
+islink "$root/etc/systemd/system/another-template@.target.requires/templ2@.service" "/etc/systemd/system/templ2@.service"
"$systemctl" --root="$root" enable 'templ2@two.service'
-islink "$root/etc/systemd/system/another-template@.target.requires/templ2@.service" "../templ2@.service"
-islink "$root/etc/systemd/system/another-template@.target.requires/templ2@two.service" "../templ2@two.service"
+islink "$root/etc/systemd/system/another-template@.target.requires/templ2@.service" "/etc/systemd/system/templ2@.service"
+islink "$root/etc/systemd/system/another-template@.target.requires/templ2@two.service" "/etc/systemd/system/templ2@.service"
"$systemctl" --root="$root" disable 'templ2@other.service'
-islink "$root/etc/systemd/system/another-template@.target.requires/templ2@.service" "../templ2@.service"
-islink "$root/etc/systemd/system/another-template@.target.requires/templ2@two.service" "../templ2@two.service"
+islink "$root/etc/systemd/system/another-template@.target.requires/templ2@.service" "/etc/systemd/system/templ2@.service"
+islink "$root/etc/systemd/system/another-template@.target.requires/templ2@two.service" "/etc/systemd/system/templ2@.service"
"$systemctl" --root="$root" disable 'templ2@two.service'
-islink "$root/etc/systemd/system/another-template@.target.requires/templ2@.service" "../templ2@.service"
+islink "$root/etc/systemd/system/another-template@.target.requires/templ2@.service" "/etc/systemd/system/templ2@.service"
test ! -h "$root/etc/systemd/system/another-template@.target.requires/templ2@two.service"
"$systemctl" --root="$root" disable 'templ2@.service'
@@ -433,8 +433,8 @@ EOF
test ! -h "$root/etc/systemd/system/link4.service" # this is our file
test ! -h "$root/etc/systemd/system/link4@.service"
test ! -h "$root/etc/systemd/system/link4@inst.service"
-islink "$root/etc/systemd/system/link4alias.service" "link4.service"
-islink "$root/etc/systemd/system/link4alias2.service" "link4.service"
+islink "$root/etc/systemd/system/link4alias.service" "/etc/systemd/system/link4.service"
+islink "$root/etc/systemd/system/link4alias2.service" "/etc/systemd/system/link4.service"
"$systemctl" --root="$root" disable 'link4.service'
test ! -h "$root/etc/systemd/system/link4.service"
@@ -453,8 +453,8 @@ EOF
# Apparently this works. I'm not sure what to think.
"$systemctl" --root="$root" enable '/etc/systemd/system/link4.service'
test ! -h "$root/etc/systemd/system/link4.service" # this is our file
-islink "$root/etc/systemd/system/link4alias.service" "link4.service"
-islink "$root/etc/systemd/system/link4alias2.service" "link4.service"
+islink "$root/etc/systemd/system/link4alias.service" "/etc/systemd/system/link4.service"
+islink "$root/etc/systemd/system/link4alias2.service" "/etc/systemd/system/link4.service"
"$systemctl" --root="$root" disable '/etc/systemd/system/link4.service'
test ! -h "$root/etc/systemd/system/link4.service"
@@ -472,8 +472,8 @@ EOF
"$systemctl" --root="$root" enable 'link5.service'
test ! -h "$root/etc/systemd/system/link5.service" # this is our file
-islink "$root/etc/systemd/system/link5alias.service" "link5.service"
-islink "$root/etc/systemd/system/link5alias2.service" "link5.service"
+islink "$root/etc/systemd/system/link5alias.service" "/etc/systemd/system/link5.service"
+islink "$root/etc/systemd/system/link5alias2.service" "/etc/systemd/system/link5.service"
"$systemctl" --root="$root" disable 'link5.service'
test ! -h "$root/etc/systemd/system/link5alias.service"
@@ -495,6 +495,10 @@ islink "$root/etc/systemd/system/link5copy.service" '/link5copy.service'
test ! -h "$root/etc/systemd/system/link5alias.service"
test ! -h "$root/etc/systemd/system/link5alias2.service"
+# FIXME: we must create link5alias2 and link5alias as relative links to link5.service
+# When they are independent links to /link5.service, systemd doesn't know that
+# they are aliases, because we do not follow symlinks outside of the search paths.
+
"$systemctl" --root="$root" disable 'link5copy.service'
test ! -h "$root/etc/systemd/system/link5copy.service"
test ! -h "$root/etc/systemd/system/link5alias.service"
@@ -502,8 +506,8 @@ test ! -h "$root/etc/systemd/system/link5alias2.service"
"$systemctl" --root="$root" enable '/link5copy.service'
islink "$root/etc/systemd/system/link5copy.service" '/link5copy.service'
-islink "$root/etc/systemd/system/link5alias.service" 'link5copy.service'
-islink "$root/etc/systemd/system/link5alias2.service" 'link5copy.service'
+islink "$root/etc/systemd/system/link5alias.service" '/link5copy.service'
+islink "$root/etc/systemd/system/link5alias2.service" '/link5copy.service'
"$systemctl" --root="$root" disable 'link5copy.service'
test ! -h "$root/etc/systemd/system/link5copy.service"
@@ -522,10 +526,10 @@ EOF
"$systemctl" --root="$root" enable 'link5@.path'
test ! -h "$root/etc/systemd/system/link5@.path" # this is our file
-islink "$root/etc/systemd/system/target5@.target.wants/link5@.path" "../link5@.path"
-islink "$root/etc/systemd/system/target5@.target.requires/link5@.path" "../link5@.path"
-islink "$root/etc/systemd/system/target5@inst.target.wants/link5@.path" "../link5@.path"
-islink "$root/etc/systemd/system/target5@inst.target.requires/link5@.path" "../link5@.path"
+islink "$root/etc/systemd/system/target5@.target.wants/link5@.path" "/etc/systemd/system/link5@.path"
+islink "$root/etc/systemd/system/target5@.target.requires/link5@.path" "/etc/systemd/system/link5@.path"
+islink "$root/etc/systemd/system/target5@inst.target.wants/link5@.path" "/etc/systemd/system/link5@.path"
+islink "$root/etc/systemd/system/target5@inst.target.requires/link5@.path" "/etc/systemd/system/link5@.path"
"$systemctl" --root="$root" disable 'link5@.path'
test ! -h "$root/etc/systemd/system/link5@.path" # this is our file
@@ -564,7 +568,7 @@ check_alias() {
Alias=target@$1:%$1.socket
EOF
SYSTEMD_LOG_LEVEL=debug "$systemctl" --root="$root" enable 'some-some-link6@.socket' || return 1
- islink "$root/etc/systemd/system/target@$1:$2.socket" "some-some-link6@.socket" || return 2
+ islink "$root/etc/systemd/system/target@$1:$2.socket" "/etc/systemd/system/some-some-link6@.socket" || return 2
}
# TODO: our architecture names are different than what uname -m returns.
@@ -669,10 +673,10 @@ RequiredBy=another-target2@.target
EOF
"$systemctl" --root="$root" enable 'some-some-link7.socket'
-islink "$root/etc/systemd/system/target@some-some-link7.target.wants/some-some-link7.socket" "../some-some-link7.socket"
-islink "$root/etc/systemd/system/another-target@.target.wants/some-some-link7.socket" "../some-some-link7.socket"
-islink "$root/etc/systemd/system/target2@some-some-link7.target.requires/some-some-link7.socket" "../some-some-link7.socket"
-islink "$root/etc/systemd/system/another-target2@.target.requires/some-some-link7.socket" "../some-some-link7.socket"
+islink "$root/etc/systemd/system/target@some-some-link7.target.wants/some-some-link7.socket" "/etc/systemd/system/some-some-link7.socket"
+islink "$root/etc/systemd/system/another-target@.target.wants/some-some-link7.socket" "/etc/systemd/system/some-some-link7.socket"
+islink "$root/etc/systemd/system/target2@some-some-link7.target.requires/some-some-link7.socket" "/etc/systemd/system/some-some-link7.socket"
+islink "$root/etc/systemd/system/another-target2@.target.requires/some-some-link7.socket" "/etc/systemd/system/some-some-link7.socket"
"$systemctl" --root="$root" disable 'some-some-link7.socket'
test ! -h "$root/etc/systemd/system/target@some-some-link7.target.wants/some-some-link7.socket"

View File

@ -0,0 +1,322 @@
From 65038051854a48ed8c86bfcfdddfee9122fc2cab Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Wed, 16 Feb 2022 14:53:34 +0100
Subject: [PATCH] glyph-util: add new glyphs for up/down arrows
(cherry picked from commit fc03e80c6b19521ecf4f3af06865b2054e685f9a)
Related: #2118297
---
src/analyze/analyze-security.c | 2 +-
src/basic/chase-symlinks.c | 2 +-
src/basic/glyph-util.c | 10 ++++++++--
src/basic/glyph-util.h | 5 ++++-
src/delta/delta.c | 20 ++++++++++----------
src/partition/repart.c | 4 ++--
src/portable/portable.c | 6 +++---
src/portable/portablectl.c | 4 ++--
src/shared/cgroup-show.c | 2 +-
src/shared/install.c | 2 +-
src/test/test-locale-util.c | 5 ++++-
11 files changed, 37 insertions(+), 25 deletions(-)
diff --git a/src/analyze/analyze-security.c b/src/analyze/analyze-security.c
index e112922cbf..522d443f8a 100644
--- a/src/analyze/analyze-security.c
+++ b/src/analyze/analyze-security.c
@@ -1902,7 +1902,7 @@ static int assess(const SecurityInfo *info,
name = info->id;
printf("\n%s %sOverall exposure level for %s%s: %s%" PRIu64 ".%" PRIu64 " %s%s %s\n",
- special_glyph(SPECIAL_GLYPH_ARROW),
+ special_glyph(SPECIAL_GLYPH_ARROW_RIGHT),
ansi_highlight(),
name,
ansi_normal(),
diff --git a/src/basic/chase-symlinks.c b/src/basic/chase-symlinks.c
index 344e7e1bb7..61f8b3351b 100644
--- a/src/basic/chase-symlinks.c
+++ b/src/basic/chase-symlinks.c
@@ -41,7 +41,7 @@ static int log_unsafe_transition(int a, int b, const char *path, unsigned flags)
return log_warning_errno(SYNTHETIC_ERRNO(ENOLINK),
"Detected unsafe path transition %s (owned by %s) %s %s (owned by %s) during canonicalization of %s.",
- strna(n1), strna(user_a), special_glyph(SPECIAL_GLYPH_ARROW), strna(n2), strna(user_b), path);
+ strna(n1), strna(user_a), special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), strna(n2), strna(user_b), path);
}
static int log_autofs_mount_point(int fd, const char *path, unsigned flags) {
diff --git a/src/basic/glyph-util.c b/src/basic/glyph-util.c
index 8810738fc3..4583b7412c 100644
--- a/src/basic/glyph-util.c
+++ b/src/basic/glyph-util.c
@@ -39,6 +39,7 @@ const char *special_glyph(SpecialGlyph code) {
[SPECIAL_GLYPH_TREE_BRANCH] = "|-",
[SPECIAL_GLYPH_TREE_RIGHT] = "`-",
[SPECIAL_GLYPH_TREE_SPACE] = " ",
+ [SPECIAL_GLYPH_TREE_TOP] = ",-",
[SPECIAL_GLYPH_TRIANGULAR_BULLET] = ">",
[SPECIAL_GLYPH_BLACK_CIRCLE] = "*",
[SPECIAL_GLYPH_WHITE_CIRCLE] = "*",
@@ -51,7 +52,9 @@ const char *special_glyph(SpecialGlyph code) {
[SPECIAL_GLYPH_LIGHT_SHADE] = "-",
[SPECIAL_GLYPH_DARK_SHADE] = "X",
[SPECIAL_GLYPH_SIGMA] = "S",
- [SPECIAL_GLYPH_ARROW] = "->",
+ [SPECIAL_GLYPH_ARROW_RIGHT] = "->",
+ [SPECIAL_GLYPH_ARROW_UP] = "^",
+ [SPECIAL_GLYPH_ARROW_DOWN] = "v",
[SPECIAL_GLYPH_ELLIPSIS] = "...",
[SPECIAL_GLYPH_EXTERNAL_LINK] = "[LNK]",
[SPECIAL_GLYPH_ECSTATIC_SMILEY] = ":-]",
@@ -75,6 +78,7 @@ const char *special_glyph(SpecialGlyph code) {
[SPECIAL_GLYPH_TREE_BRANCH] = "\342\224\234\342\224\200", /* ├─ */
[SPECIAL_GLYPH_TREE_RIGHT] = "\342\224\224\342\224\200", /* └─ */
[SPECIAL_GLYPH_TREE_SPACE] = " ", /* */
+ [SPECIAL_GLYPH_TREE_TOP] = "\u250C\342\224\200", /* ┌─ */
/* Single glyphs in both cases */
[SPECIAL_GLYPH_TRIANGULAR_BULLET] = "\342\200\243", /* ‣ */
@@ -89,9 +93,11 @@ const char *special_glyph(SpecialGlyph code) {
[SPECIAL_GLYPH_LIGHT_SHADE] = "\342\226\221", /* ░ */
[SPECIAL_GLYPH_DARK_SHADE] = "\342\226\223", /* ▒ */
[SPECIAL_GLYPH_SIGMA] = "\316\243", /* Σ */
+ [SPECIAL_GLYPH_ARROW_UP] = "\u2191", /* ↑ (actually called: UPWARDS ARROW) */
+ [SPECIAL_GLYPH_ARROW_DOWN] = "\u2193", /* ↓ (actually called: DOWNWARDS ARROW) */
/* Single glyph in Unicode, two in ASCII */
- [SPECIAL_GLYPH_ARROW] = "\342\206\222", /* → (actually called: RIGHTWARDS ARROW) */
+ [SPECIAL_GLYPH_ARROW_RIGHT] = "\342\206\222", /* → (actually called: RIGHTWARDS ARROW) */
/* Single glyph in Unicode, three in ASCII */
[SPECIAL_GLYPH_ELLIPSIS] = "\342\200\246", /* … (actually called: HORIZONTAL ELLIPSIS) */
diff --git a/src/basic/glyph-util.h b/src/basic/glyph-util.h
index ddee210041..7e0a73842a 100644
--- a/src/basic/glyph-util.h
+++ b/src/basic/glyph-util.h
@@ -11,6 +11,7 @@ typedef enum SpecialGlyph {
SPECIAL_GLYPH_TREE_BRANCH,
SPECIAL_GLYPH_TREE_RIGHT,
SPECIAL_GLYPH_TREE_SPACE,
+ SPECIAL_GLYPH_TREE_TOP,
SPECIAL_GLYPH_TRIANGULAR_BULLET,
SPECIAL_GLYPH_BLACK_CIRCLE,
SPECIAL_GLYPH_WHITE_CIRCLE,
@@ -20,7 +21,9 @@ typedef enum SpecialGlyph {
SPECIAL_GLYPH_MU,
SPECIAL_GLYPH_CHECK_MARK,
SPECIAL_GLYPH_CROSS_MARK,
- SPECIAL_GLYPH_ARROW,
+ SPECIAL_GLYPH_ARROW_RIGHT,
+ SPECIAL_GLYPH_ARROW_UP,
+ SPECIAL_GLYPH_ARROW_DOWN,
SPECIAL_GLYPH_ELLIPSIS,
SPECIAL_GLYPH_LIGHT_SHADE,
SPECIAL_GLYPH_DARK_SHADE,
diff --git a/src/delta/delta.c b/src/delta/delta.c
index eafe1c05c4..aa5a546bce 100644
--- a/src/delta/delta.c
+++ b/src/delta/delta.c
@@ -91,7 +91,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_normal(),
- top, special_glyph(SPECIAL_GLYPH_ARROW), bottom);
+ top, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), bottom);
return 1;
}
@@ -101,7 +101,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_normal(),
- top, special_glyph(SPECIAL_GLYPH_ARROW), bottom);
+ top, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), bottom);
return 1;
}
@@ -111,7 +111,7 @@ static int notify_override_redirected(const char *top, const char *bottom) {
printf("%s%s%s %s %s %s\n",
ansi_highlight(), "[REDIRECTED]", ansi_normal(),
- top, special_glyph(SPECIAL_GLYPH_ARROW), bottom);
+ top, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), bottom);
return 1;
}
@@ -121,7 +121,7 @@ static int notify_override_overridden(const char *top, const char *bottom) {
printf("%s%s%s %s %s %s\n",
ansi_highlight(), "[OVERRIDDEN]", ansi_normal(),
- top, special_glyph(SPECIAL_GLYPH_ARROW), bottom);
+ top, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), bottom);
return 1;
}
@@ -131,7 +131,7 @@ static int notify_override_extended(const char *top, const char *bottom) {
printf("%s%s%s %s %s %s\n",
ansi_highlight(), "[EXTENDED]", ansi_normal(),
- top, special_glyph(SPECIAL_GLYPH_ARROW), bottom);
+ top, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), bottom);
return 1;
}
@@ -235,7 +235,7 @@ static int enumerate_dir_d(
return -ENOMEM;
d = p + strlen(toppath) + 1;
- log_debug("Adding at top: %s %s %s", d, special_glyph(SPECIAL_GLYPH_ARROW), p);
+ log_debug("Adding at top: %s %s %s", d, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), p);
k = ordered_hashmap_put(top, d, p);
if (k >= 0) {
p = strdup(p);
@@ -247,7 +247,7 @@ static int enumerate_dir_d(
return k;
}
- log_debug("Adding at bottom: %s %s %s", d, special_glyph(SPECIAL_GLYPH_ARROW), p);
+ log_debug("Adding at bottom: %s %s %s", d, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), p);
free(ordered_hashmap_remove(bottom, d));
k = ordered_hashmap_put(bottom, d, p);
if (k < 0) {
@@ -271,7 +271,7 @@ static int enumerate_dir_d(
return -ENOMEM;
log_debug("Adding to drops: %s %s %s %s %s",
- unit, special_glyph(SPECIAL_GLYPH_ARROW), basename(p), special_glyph(SPECIAL_GLYPH_ARROW), p);
+ unit, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), basename(p), special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), p);
k = ordered_hashmap_put(h, basename(p), p);
if (k < 0) {
free(p);
@@ -347,7 +347,7 @@ static int enumerate_dir(
if (!p)
return -ENOMEM;
- log_debug("Adding at top: %s %s %s", basename(p), special_glyph(SPECIAL_GLYPH_ARROW), p);
+ log_debug("Adding at top: %s %s %s", basename(p), special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), p);
r = ordered_hashmap_put(top, basename(p), p);
if (r >= 0) {
p = strdup(p);
@@ -356,7 +356,7 @@ static int enumerate_dir(
} else if (r != -EEXIST)
return r;
- log_debug("Adding at bottom: %s %s %s", basename(p), special_glyph(SPECIAL_GLYPH_ARROW), p);
+ log_debug("Adding at bottom: %s %s %s", basename(p), special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), p);
free(ordered_hashmap_remove(bottom, basename(p)));
r = ordered_hashmap_put(bottom, basename(p), p);
if (r < 0)
diff --git a/src/partition/repart.c b/src/partition/repart.c
index 67e379be55..9f95713130 100644
--- a/src/partition/repart.c
+++ b/src/partition/repart.c
@@ -1968,9 +1968,9 @@ static int format_size_change(uint64_t from, uint64_t to, char **ret) {
if (from == to || to == UINT64_MAX)
t = strdup(FORMAT_BYTES(from));
else
- t = strjoin(FORMAT_BYTES(from), " ", special_glyph(SPECIAL_GLYPH_ARROW), " ", FORMAT_BYTES(to));
+ t = strjoin(FORMAT_BYTES(from), " ", special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), " ", FORMAT_BYTES(to));
} else if (to != UINT64_MAX)
- t = strjoin(special_glyph(SPECIAL_GLYPH_ARROW), " ", FORMAT_BYTES(to));
+ t = strjoin(special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), " ", FORMAT_BYTES(to));
else {
*ret = NULL;
return 0;
diff --git a/src/portable/portable.c b/src/portable/portable.c
index 4c75dc0e0c..c1e253061f 100644
--- a/src/portable/portable.c
+++ b/src/portable/portable.c
@@ -1011,14 +1011,14 @@ static int install_profile_dropin(
r = copy_file_atomic(from, dropin, 0644, 0, 0, COPY_REFLINK);
if (r < 0)
- return log_debug_errno(r, "Failed to copy %s %s %s: %m", from, special_glyph(SPECIAL_GLYPH_ARROW), dropin);
+ return log_debug_errno(r, "Failed to copy %s %s %s: %m", from, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), dropin);
(void) portable_changes_add(changes, n_changes, PORTABLE_COPY, dropin, from);
} else {
if (symlink(from, dropin) < 0)
- return log_debug_errno(errno, "Failed to link %s %s %s: %m", from, special_glyph(SPECIAL_GLYPH_ARROW), dropin);
+ return log_debug_errno(errno, "Failed to link %s %s %s: %m", from, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), dropin);
(void) portable_changes_add(changes, n_changes, PORTABLE_SYMLINK, dropin, from);
}
@@ -1188,7 +1188,7 @@ static int install_image_symlink(
(void) mkdir_parents(sl, 0755);
if (symlink(image_path, sl) < 0)
- return log_debug_errno(errno, "Failed to link %s %s %s: %m", image_path, special_glyph(SPECIAL_GLYPH_ARROW), sl);
+ return log_debug_errno(errno, "Failed to link %s %s %s: %m", image_path, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), sl);
(void) portable_changes_add(changes, n_changes, PORTABLE_SYMLINK, sl, image_path);
return 0;
diff --git a/src/portable/portablectl.c b/src/portable/portablectl.c
index f4c57e14ae..585568acc1 100644
--- a/src/portable/portablectl.c
+++ b/src/portable/portablectl.c
@@ -433,12 +433,12 @@ static int print_changes(sd_bus_message *m) {
break;
if (streq(type, "symlink"))
- log_info("Created symlink %s %s %s.", path, special_glyph(SPECIAL_GLYPH_ARROW), source);
+ log_info("Created symlink %s %s %s.", path, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), source);
else if (streq(type, "copy")) {
if (isempty(source))
log_info("Copied %s.", path);
else
- log_info("Copied %s %s %s.", source, special_glyph(SPECIAL_GLYPH_ARROW), path);
+ log_info("Copied %s %s %s.", source, special_glyph(SPECIAL_GLYPH_ARROW_RIGHT), path);
} else if (streq(type, "unlink"))
log_info("Removed %s.", path);
else if (streq(type, "write"))
diff --git a/src/shared/cgroup-show.c b/src/shared/cgroup-show.c
index 48dd4d8001..f18420c1b6 100644
--- a/src/shared/cgroup-show.c
+++ b/src/shared/cgroup-show.c
@@ -228,7 +228,7 @@ static int show_cgroup_name(
printf("%s%s%s %s%s%s: %s\n",
prefix,
glyph == SPECIAL_GLYPH_TREE_BRANCH ? special_glyph(SPECIAL_GLYPH_TREE_VERTICAL) : " ",
- special_glyph(SPECIAL_GLYPH_ARROW),
+ special_glyph(SPECIAL_GLYPH_ARROW_RIGHT),
ansi_blue(), x, ansi_normal(),
y);
}
diff --git a/src/shared/install.c b/src/shared/install.c
index eb5c3d5f91..4c7d0d6cad 100644
--- a/src/shared/install.c
+++ b/src/shared/install.c
@@ -335,7 +335,7 @@ void unit_file_dump_changes(int r, const char *verb, const UnitFileChange *chang
if (!quiet)
log_info("Created symlink %s %s %s.",
changes[i].path,
- special_glyph(SPECIAL_GLYPH_ARROW),
+ special_glyph(SPECIAL_GLYPH_ARROW_RIGHT),
changes[i].source);
break;
case UNIT_FILE_UNLINK:
diff --git a/src/test/test-locale-util.c b/src/test/test-locale-util.c
index 3243e3c567..6ec3f7f00b 100644
--- a/src/test/test-locale-util.c
+++ b/src/test/test-locale-util.c
@@ -91,13 +91,16 @@ TEST(dump_special_glyphs) {
dump_glyph(SPECIAL_GLYPH_TREE_BRANCH);
dump_glyph(SPECIAL_GLYPH_TREE_RIGHT);
dump_glyph(SPECIAL_GLYPH_TREE_SPACE);
+ dump_glyph(SPECIAL_GLYPH_TREE_TOP);
dump_glyph(SPECIAL_GLYPH_TRIANGULAR_BULLET);
dump_glyph(SPECIAL_GLYPH_BLACK_CIRCLE);
dump_glyph(SPECIAL_GLYPH_WHITE_CIRCLE);
dump_glyph(SPECIAL_GLYPH_MULTIPLICATION_SIGN);
dump_glyph(SPECIAL_GLYPH_CIRCLE_ARROW);
dump_glyph(SPECIAL_GLYPH_BULLET);
- dump_glyph(SPECIAL_GLYPH_ARROW);
+ dump_glyph(SPECIAL_GLYPH_ARROW_RIGHT);
+ dump_glyph(SPECIAL_GLYPH_ARROW_UP);
+ dump_glyph(SPECIAL_GLYPH_ARROW_DOWN);
dump_glyph(SPECIAL_GLYPH_ELLIPSIS);
dump_glyph(SPECIAL_GLYPH_MU);
dump_glyph(SPECIAL_GLYPH_CHECK_MARK);

View File

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

View File

@ -0,0 +1,387 @@
From 72fb11cd3191e7546ff0bae802f5bd6e5e815647 Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Fri, 24 Jun 2022 09:59:44 +0200
Subject: [PATCH] =?UTF-8?q?tree-wide:=20allow=20ASCII=20fallback=20for=20?=
=?UTF-8?q?=E2=80=A6=20in=20logs?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
(cherry picked from commit 28e5e1e97f47067bce190ea6b3404907d63e4320)
Related: #2118297
---
src/basic/os-util.c | 6 +++--
src/binfmt/binfmt.c | 2 +-
src/boot/bootctl.c | 2 +-
src/core/dbus-manager.c | 2 +-
src/core/manager.c | 4 ++--
.../environment-d-generator.c | 3 ++-
src/home/homectl.c | 12 ++++++----
src/libsystemd/sd-event/sd-event.c | 4 +++-
src/nss-resolve/nss-resolve.c | 5 ++++-
src/resolve/resolved-varlink.c | 5 ++++-
src/shared/user-record.c | 22 ++++++++++++++-----
src/sysusers/sysusers.c | 12 +++++-----
src/tmpfiles/tmpfiles.c | 6 ++---
13 files changed, 56 insertions(+), 29 deletions(-)
diff --git a/src/basic/os-util.c b/src/basic/os-util.c
index acfff24319..880fb7e6bb 100644
--- a/src/basic/os-util.c
+++ b/src/basic/os-util.c
@@ -8,6 +8,7 @@
#include "fd-util.h"
#include "fileio.h"
#include "fs-util.h"
+#include "glyph-util.h"
#include "macro.h"
#include "os-util.h"
#include "parse-util.h"
@@ -146,8 +147,9 @@ int open_extension_release(const char *root, const char *extension, char **ret_p
if (k != 0)
continue;
- log_debug("%s/%s: 'user.extension-release.strict' attribute is false…",
- extension_release_dir_path, de->d_name);
+ log_debug("%s/%s: 'user.extension-release.strict' attribute is false%s",
+ extension_release_dir_path, de->d_name,
+ special_glyph(SPECIAL_GLYPH_ELLIPSIS));
/* We already found what we were looking for, but there's another candidate?
* We treat this as an error, as we want to enforce that there are no ambiguities
diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c
index 817ee387ff..71cb56aa4a 100644
--- a/src/binfmt/binfmt.c
+++ b/src/binfmt/binfmt.c
@@ -83,7 +83,7 @@ static int apply_file(const char *filename, bool ignore_enoent) {
return log_error_errno(r, "Failed to open file '%s': %m", filename);
}
- log_debug("Applying %s…", pp);
+ log_debug("Applying %s%s", pp, special_glyph(SPECIAL_GLYPH_ELLIPSIS));
for (unsigned line = 1;; line++) {
_cleanup_free_ char *text = NULL;
char *p;
diff --git a/src/boot/bootctl.c b/src/boot/bootctl.c
index c1adae4962..292907eb4a 100644
--- a/src/boot/bootctl.c
+++ b/src/boot/bootctl.c
@@ -1404,7 +1404,7 @@ static int are_we_installed(void) {
if (!p)
return log_oom();
- log_debug("Checking whether %s contains any files…", p);
+ log_debug("Checking whether %s contains any files%s", p, special_glyph(SPECIAL_GLYPH_ELLIPSIS));
r = dir_is_empty(p);
if (r < 0 && r != -ENOENT)
return log_error_errno(r, "Failed to check whether %s contains any files: %m", p);
diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c
index efba6331b9..0ce2d73857 100644
--- a/src/core/dbus-manager.c
+++ b/src/core/dbus-manager.c
@@ -1886,7 +1886,7 @@ static int method_enqueue_marked_jobs(sd_bus_message *message, void *userdata, s
if (r == 0)
return 1; /* No authorization for now, but the async polkit stuff will call us again when it has it */
- log_info("Queuing reload/restart jobs for marked units…");
+ log_info("Queuing reload/restart jobs for marked units%s", special_glyph(SPECIAL_GLYPH_ELLIPSIS));
_cleanup_(sd_bus_message_unrefp) sd_bus_message *reply = NULL;
r = sd_bus_message_new_method_return(message, &reply);
diff --git a/src/core/manager.c b/src/core/manager.c
index c01128adb4..5b7f5f55aa 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -1593,7 +1593,7 @@ static void manager_coldplug(Manager *m) {
assert(m);
- log_debug("Invoking unit coldplug() handlers…");
+ log_debug("Invoking unit coldplug() handlers%s", special_glyph(SPECIAL_GLYPH_ELLIPSIS));
/* Let's place the units back into their deserialized state */
HASHMAP_FOREACH_KEY(u, k, m->units) {
@@ -1614,7 +1614,7 @@ static void manager_catchup(Manager *m) {
assert(m);
- log_debug("Invoking unit catchup() handlers…");
+ log_debug("Invoking unit catchup() handlers%s", special_glyph(SPECIAL_GLYPH_ELLIPSIS));
/* Let's catch up on any state changes that happened while we were reloading/reexecing */
HASHMAP_FOREACH_KEY(u, k, m->units) {
diff --git a/src/environment-d-generator/environment-d-generator.c b/src/environment-d-generator/environment-d-generator.c
index 39c46c7c2b..12aafbc7d9 100644
--- a/src/environment-d-generator/environment-d-generator.c
+++ b/src/environment-d-generator/environment-d-generator.c
@@ -6,6 +6,7 @@
#include "def.h"
#include "env-file.h"
#include "escape.h"
+#include "glyph-util.h"
#include "log.h"
#include "path-lookup.h"
#include "strv.h"
@@ -55,7 +56,7 @@ static int load_and_print(void) {
* that in case of failure, a partial update is better than none. */
STRV_FOREACH(i, files) {
- log_debug("Reading %s…", *i);
+ log_debug("Reading %s%s", *i, special_glyph(SPECIAL_GLYPH_ELLIPSIS));
r = merge_env_file(&env, NULL, *i);
if (r == -ENOMEM)
diff --git a/src/home/homectl.c b/src/home/homectl.c
index f0d1dac6ab..23bf17f5cf 100644
--- a/src/home/homectl.c
+++ b/src/home/homectl.c
@@ -1683,9 +1683,13 @@ static int passwd_home(int argc, char *argv[], void *userdata) {
int r;
if (arg_pkcs11_token_uri)
- return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "To change the PKCS#11 security token use 'homectl update --pkcs11-token-uri=…'.");
+ return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
+ "To change the PKCS#11 security token use 'homectl update --pkcs11-token-uri=%s'.",
+ special_glyph(SPECIAL_GLYPH_ELLIPSIS));
if (arg_fido2_device)
- return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "To change the FIDO2 security token use 'homectl update --fido2-device=…'.");
+ return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
+ "To change the FIDO2 security token use 'homectl update --fido2-device=%s'.",
+ special_glyph(SPECIAL_GLYPH_ELLIPSIS));
if (identity_properties_specified())
return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "The 'passwd' verb does not permit changing other record properties at the same time.");
@@ -3600,8 +3604,8 @@ static int parse_argv(int argc, char *argv[]) {
return log_error_errno(r, "Failed to parse --rebalance-weight= argument: %s", optarg);
if (u < REBALANCE_WEIGHT_MIN || u > REBALANCE_WEIGHT_MAX)
- return log_error_errno(SYNTHETIC_ERRNO(ERANGE), "Rebalancing weight out of valid range %" PRIu64 "…%" PRIu64 ": %s",
- REBALANCE_WEIGHT_MIN, REBALANCE_WEIGHT_MAX, optarg);
+ return log_error_errno(SYNTHETIC_ERRNO(ERANGE), "Rebalancing weight out of valid range %" PRIu64 "%s%" PRIu64 ": %s",
+ REBALANCE_WEIGHT_MIN, special_glyph(SPECIAL_GLYPH_ELLIPSIS), REBALANCE_WEIGHT_MAX, optarg);
}
/* Drop from per machine stuff and everywhere */
diff --git a/src/libsystemd/sd-event/sd-event.c b/src/libsystemd/sd-event/sd-event.c
index dd257eadfe..b491033ca7 100644
--- a/src/libsystemd/sd-event/sd-event.c
+++ b/src/libsystemd/sd-event/sd-event.c
@@ -13,6 +13,7 @@
#include "event-source.h"
#include "fd-util.h"
#include "fs-util.h"
+#include "glyph-util.h"
#include "hashmap.h"
#include "list.h"
#include "macro.h"
@@ -405,7 +406,8 @@ _public_ int sd_event_new(sd_event** ret) {
e->epoll_fd = fd_move_above_stdio(e->epoll_fd);
if (secure_getenv("SD_EVENT_PROFILE_DELAYS")) {
- log_debug("Event loop profiling enabled. Logarithmic histogram of event loop iterations in the range 2^0 … 2^63 us will be logged every 5s.");
+ log_debug("Event loop profiling enabled. Logarithmic histogram of event loop iterations in the range 2^0 %s 2^63 us will be logged every 5s.",
+ special_glyph(SPECIAL_GLYPH_ELLIPSIS));
e->profile_delays = true;
}
diff --git a/src/nss-resolve/nss-resolve.c b/src/nss-resolve/nss-resolve.c
index e857d42db6..9ed2945a1e 100644
--- a/src/nss-resolve/nss-resolve.c
+++ b/src/nss-resolve/nss-resolve.c
@@ -10,6 +10,7 @@
#include "env-util.h"
#include "errno-util.h"
+#include "glyph-util.h"
#include "in-addr-util.h"
#include "macro.h"
#include "nss-util.h"
@@ -180,7 +181,9 @@ static int json_dispatch_address(const char *name, JsonVariant *variant, JsonDis
b = json_variant_integer(i);
if (b < 0 || b > 0xff)
- return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "Element %zu of JSON field '%s' is out of range 0…255.", k, strna(name));
+ return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL),
+ "Element %zu of JSON field '%s' is out of range 0%s255.",
+ k, strna(name), special_glyph(SPECIAL_GLYPH_ELLIPSIS));
buf.bytes[k++] = (uint8_t) b;
}
diff --git a/src/resolve/resolved-varlink.c b/src/resolve/resolved-varlink.c
index cc684608a6..a00dfee5dd 100644
--- a/src/resolve/resolved-varlink.c
+++ b/src/resolve/resolved-varlink.c
@@ -1,5 +1,6 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#include "glyph-util.h"
#include "in-addr-util.h"
#include "resolved-dns-synthesize.h"
#include "resolved-varlink.h"
@@ -371,7 +372,9 @@ static int json_dispatch_address(const char *name, JsonVariant *variant, JsonDis
b = json_variant_integer(i);
if (b < 0 || b > 0xff)
- return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "Element %zu of JSON field '%s' is out of range 0…255.", k, strna(name));
+ return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL),
+ "Element %zu of JSON field '%s' is out of range 0%s255.",
+ k, strna(name), special_glyph(SPECIAL_GLYPH_ELLIPSIS));
buf.bytes[k++] = (uint8_t) b;
}
diff --git a/src/shared/user-record.c b/src/shared/user-record.c
index 5b406d1f42..eae0915fc7 100644
--- a/src/shared/user-record.c
+++ b/src/shared/user-record.c
@@ -6,6 +6,7 @@
#include "dns-domain.h"
#include "env-util.h"
#include "fs-util.h"
+#include "glyph-util.h"
#include "hexdecoct.h"
#include "hostname-util.h"
#include "memory-util.h"
@@ -467,7 +468,9 @@ static int json_dispatch_umask(const char *name, JsonVariant *variant, JsonDispa
k = json_variant_unsigned(variant);
if (k > 0777)
- return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' outside of valid range 0…0777.", strna(name));
+ return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL),
+ "JSON field '%s' outside of valid range 0%s0777.",
+ strna(name), special_glyph(SPECIAL_GLYPH_ELLIPSIS));
*m = (mode_t) k;
return 0;
@@ -487,7 +490,9 @@ static int json_dispatch_access_mode(const char *name, JsonVariant *variant, Jso
k = json_variant_unsigned(variant);
if (k > 07777)
- return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' outside of valid range 0…07777.", strna(name));
+ return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL),
+ "JSON field '%s' outside of valid range 0%s07777.",
+ strna(name), special_glyph(SPECIAL_GLYPH_ELLIPSIS));
*m = (mode_t) k;
return 0;
@@ -578,7 +583,9 @@ static int json_dispatch_tasks_or_memory_max(const char *name, JsonVariant *vari
k = json_variant_unsigned(variant);
if (k <= 0 || k >= UINT64_MAX)
- return json_log(variant, flags, SYNTHETIC_ERRNO(ERANGE), "JSON field '%s' is not in valid range %" PRIu64 "…%" PRIu64 ".", strna(name), (uint64_t) 1, UINT64_MAX-1);
+ return json_log(variant, flags, SYNTHETIC_ERRNO(ERANGE),
+ "JSON field '%s' is not in valid range %" PRIu64 "%s%" PRIu64 ".",
+ strna(name), (uint64_t) 1, special_glyph(SPECIAL_GLYPH_ELLIPSIS), UINT64_MAX-1);
*limit = k;
return 0;
@@ -597,7 +604,10 @@ static int json_dispatch_weight(const char *name, JsonVariant *variant, JsonDisp
k = json_variant_unsigned(variant);
if (k <= CGROUP_WEIGHT_MIN || k >= CGROUP_WEIGHT_MAX)
- return json_log(variant, flags, SYNTHETIC_ERRNO(ERANGE), "JSON field '%s' is not in valid range %" PRIu64 "…%" PRIu64 ".", strna(name), (uint64_t) CGROUP_WEIGHT_MIN, (uint64_t) CGROUP_WEIGHT_MAX);
+ return json_log(variant, flags, SYNTHETIC_ERRNO(ERANGE),
+ "JSON field '%s' is not in valid range %" PRIu64 "%s%" PRIu64 ".",
+ strna(name), (uint64_t) CGROUP_WEIGHT_MIN,
+ special_glyph(SPECIAL_GLYPH_ELLIPSIS), (uint64_t) CGROUP_WEIGHT_MAX);
*weight = k;
return 0;
@@ -1010,7 +1020,9 @@ static int dispatch_rebalance_weight(const char *name, JsonVariant *variant, Jso
else if (u == 0)
*rebalance_weight = REBALANCE_WEIGHT_OFF;
else
- return json_log(variant, flags, SYNTHETIC_ERRNO(ERANGE), "Rebalance weight is out of valid range %" PRIu64 "…%" PRIu64 ".", REBALANCE_WEIGHT_MIN, REBALANCE_WEIGHT_MAX);
+ return json_log(variant, flags, SYNTHETIC_ERRNO(ERANGE),
+ "Rebalance weight is out of valid range %" PRIu64 "%s%" PRIu64 ".",
+ REBALANCE_WEIGHT_MIN, special_glyph(SPECIAL_GLYPH_ELLIPSIS), REBALANCE_WEIGHT_MAX);
return 0;
}
diff --git a/src/sysusers/sysusers.c b/src/sysusers/sysusers.c
index 6a2ca1afbb..05e2591b6a 100644
--- a/src/sysusers/sysusers.c
+++ b/src/sysusers/sysusers.c
@@ -405,7 +405,7 @@ static int write_temporary_passwd(const char *passwd_path, FILE **tmpfile, char
return 0;
if (arg_dry_run) {
- log_info("Would write /etc/passwd…");
+ log_info("Would write /etc/passwd%s", special_glyph(SPECIAL_GLYPH_ELLIPSIS));
return 0;
}
@@ -529,7 +529,7 @@ static int write_temporary_shadow(const char *shadow_path, FILE **tmpfile, char
return 0;
if (arg_dry_run) {
- log_info("Would write /etc/shadow…");
+ log_info("Would write /etc/shadow%s", special_glyph(SPECIAL_GLYPH_ELLIPSIS));
return 0;
}
@@ -667,7 +667,7 @@ static int write_temporary_group(const char *group_path, FILE **tmpfile, char **
return 0;
if (arg_dry_run) {
- log_info("Would write /etc/group…");
+ log_info("Would write /etc/group%s", special_glyph(SPECIAL_GLYPH_ELLIPSIS));
return 0;
}
@@ -773,7 +773,7 @@ static int write_temporary_gshadow(const char * gshadow_path, FILE **tmpfile, ch
return 0;
if (arg_dry_run) {
- log_info("Would write /etc/gshadow…");
+ log_info("Would write /etc/gshadow%s", special_glyph(SPECIAL_GLYPH_ELLIPSIS));
return 0;
}
@@ -2002,13 +2002,13 @@ static int read_config_files(char **args) {
STRV_FOREACH(f, files)
if (p && path_equal(*f, p)) {
- log_debug("Parsing arguments at position \"%s\"…", *f);
+ log_debug("Parsing arguments at position \"%s\"%s", *f, special_glyph(SPECIAL_GLYPH_ELLIPSIS));
r = parse_arguments(args);
if (r < 0)
return r;
} else {
- log_debug("Reading config file \"%s\"…", *f);
+ log_debug("Reading config file \"%s\"%s", *f, special_glyph(SPECIAL_GLYPH_ELLIPSIS));
/* Just warn, ignore result otherwise */
(void) read_config_file(*f, true);
diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
index 023207bc60..c6019ae2c8 100644
--- a/src/tmpfiles/tmpfiles.c
+++ b/src/tmpfiles/tmpfiles.c
@@ -3509,7 +3509,7 @@ static int read_config_file(char **config_dirs, const char *fn, bool ignore_enoe
assert(fn);
if (streq(fn, "-")) {
- log_debug("Reading config from stdin…");
+ log_debug("Reading config from stdin%s", special_glyph(SPECIAL_GLYPH_ELLIPSIS));
fn = "<stdin>";
f = stdin;
} else {
@@ -3523,7 +3523,7 @@ static int read_config_file(char **config_dirs, const char *fn, bool ignore_enoe
return log_error_errno(r, "Failed to open '%s': %m", fn);
}
- log_debug("Reading config file \"%s\"…", pp);
+ log_debug("Reading config file \"%s\"%s", pp, special_glyph(SPECIAL_GLYPH_ELLIPSIS));
fn = pp;
f = _f;
}
@@ -3626,7 +3626,7 @@ static int read_config_files(char **config_dirs, char **args, bool *invalid_conf
STRV_FOREACH(f, files)
if (p && path_equal(*f, p)) {
- log_debug("Parsing arguments at position \"%s\"…", *f);
+ log_debug("Parsing arguments at position \"%s\"%s", *f, special_glyph(SPECIAL_GLYPH_ELLIPSIS));
r = parse_arguments(config_dirs, args, invalid_config);
if (r < 0)

View File

@ -0,0 +1,115 @@
From fa06a45fa2dc0b7d15dc1394e679a9043fa2fee4 Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Sat, 16 Jul 2022 09:49:12 +0200
Subject: [PATCH] core: allow to set default timeout for devices
Fixes: #19879
(cherry picked from commit a0fe19f9f791c05af236265954b1d73e8fcf5468)
Resolves: #2116681
---
src/core/dbus-manager.c | 1 +
src/core/device.c | 2 +-
src/core/main.c | 4 ++++
src/core/manager.c | 1 +
src/core/manager.h | 1 +
src/core/system.conf.in | 1 +
6 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c
index 0ce2d73857..9d47d9c8a7 100644
--- a/src/core/dbus-manager.c
+++ b/src/core/dbus-manager.c
@@ -2706,6 +2706,7 @@ const sd_bus_vtable bus_manager_vtable[] = {
SD_BUS_PROPERTY("DefaultTimeoutStartUSec", "t", bus_property_get_usec, offsetof(Manager, default_timeout_start_usec), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("DefaultTimeoutStopUSec", "t", bus_property_get_usec, offsetof(Manager, default_timeout_stop_usec), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("DefaultTimeoutAbortUSec", "t", property_get_default_timeout_abort_usec, 0, 0),
+ SD_BUS_PROPERTY("DefaultDeviceTimeoutUSec", "t", bus_property_get_usec, offsetof(Manager, default_device_timeout_usec), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("DefaultRestartUSec", "t", bus_property_get_usec, offsetof(Manager, default_restart_usec), SD_BUS_VTABLE_PROPERTY_CONST),
SD_BUS_PROPERTY("DefaultStartLimitIntervalUSec", "t", bus_property_get_usec, offsetof(Manager, default_start_limit_interval), SD_BUS_VTABLE_PROPERTY_CONST),
/* The following two items are obsolete alias */
diff --git a/src/core/device.c b/src/core/device.c
index d2c5febd3f..cb6021cbd8 100644
--- a/src/core/device.c
+++ b/src/core/device.c
@@ -101,7 +101,7 @@ static void device_init(Unit *u) {
* indefinitely for plugged in devices, something which cannot
* happen for the other units since their operations time out
* anyway. */
- u->job_running_timeout = u->manager->default_timeout_start_usec;
+ u->job_running_timeout = u->manager->default_device_timeout_usec;
u->ignore_on_isolate = true;
diff --git a/src/core/main.c b/src/core/main.c
index 03efaa03be..7dedc5163b 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -132,6 +132,7 @@ static usec_t arg_default_restart_usec;
static usec_t arg_default_timeout_start_usec;
static usec_t arg_default_timeout_stop_usec;
static usec_t arg_default_timeout_abort_usec;
+static usec_t arg_default_device_timeout_usec;
static bool arg_default_timeout_abort_set;
static usec_t arg_default_start_limit_interval;
static unsigned arg_default_start_limit_burst;
@@ -725,6 +726,7 @@ static int parse_config_file(void) {
{ "Manager", "DefaultTimeoutStartSec", config_parse_sec, 0, &arg_default_timeout_start_usec },
{ "Manager", "DefaultTimeoutStopSec", config_parse_sec, 0, &arg_default_timeout_stop_usec },
{ "Manager", "DefaultTimeoutAbortSec", config_parse_default_timeout_abort, 0, NULL },
+ { "Manager", "DefaultDeviceTimeoutSec", config_parse_sec, 0, &arg_default_device_timeout_usec },
{ "Manager", "DefaultRestartSec", config_parse_sec, 0, &arg_default_restart_usec },
{ "Manager", "DefaultStartLimitInterval", config_parse_sec, 0, &arg_default_start_limit_interval }, /* obsolete alias */
{ "Manager", "DefaultStartLimitIntervalSec", config_parse_sec, 0, &arg_default_start_limit_interval },
@@ -809,6 +811,7 @@ static void set_manager_defaults(Manager *m) {
m->default_timeout_stop_usec = arg_default_timeout_stop_usec;
m->default_timeout_abort_usec = arg_default_timeout_abort_usec;
m->default_timeout_abort_set = arg_default_timeout_abort_set;
+ m->default_device_timeout_usec = arg_default_device_timeout_usec;
m->default_restart_usec = arg_default_restart_usec;
m->default_start_limit_interval = arg_default_start_limit_interval;
m->default_start_limit_burst = arg_default_start_limit_burst;
@@ -2437,6 +2440,7 @@ static void reset_arguments(void) {
arg_default_timeout_stop_usec = DEFAULT_TIMEOUT_USEC;
arg_default_timeout_abort_usec = DEFAULT_TIMEOUT_USEC;
arg_default_timeout_abort_set = false;
+ arg_default_device_timeout_usec = DEFAULT_TIMEOUT_USEC;
arg_default_start_limit_interval = DEFAULT_START_LIMIT_INTERVAL;
arg_default_start_limit_burst = DEFAULT_START_LIMIT_BURST;
arg_runtime_watchdog = 0;
diff --git a/src/core/manager.c b/src/core/manager.c
index 5b7f5f55aa..8057bafe61 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -806,6 +806,7 @@ int manager_new(LookupScope scope, ManagerTestRunFlags test_run_flags, Manager *
.default_timeout_start_usec = DEFAULT_TIMEOUT_USEC,
.default_timeout_stop_usec = DEFAULT_TIMEOUT_USEC,
.default_restart_usec = DEFAULT_RESTART_USEC,
+ .default_device_timeout_usec = DEFAULT_TIMEOUT_USEC,
.original_log_level = -1,
.original_log_target = _LOG_TARGET_INVALID,
diff --git a/src/core/manager.h b/src/core/manager.h
index 281d2a2138..e7a15e6b25 100644
--- a/src/core/manager.h
+++ b/src/core/manager.h
@@ -354,6 +354,7 @@ struct Manager {
ExecOutput default_std_output, default_std_error;
usec_t default_restart_usec, default_timeout_start_usec, default_timeout_stop_usec;
+ usec_t default_device_timeout_usec;
usec_t default_timeout_abort_usec;
bool default_timeout_abort_set;
diff --git a/src/core/system.conf.in b/src/core/system.conf.in
index 5913b5b0e4..7a150a482f 100644
--- a/src/core/system.conf.in
+++ b/src/core/system.conf.in
@@ -44,6 +44,7 @@
#DefaultTimeoutStartSec=90s
#DefaultTimeoutStopSec=90s
#DefaultTimeoutAbortSec=
+#DefaultDeviceTimeoutSec=90s
#DefaultRestartSec=100ms
#DefaultStartLimitIntervalSec=10s
#DefaultStartLimitBurst=5

View File

@ -0,0 +1,34 @@
From 873e5040948fb317de39ad40316d16fdc9d17ffe Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Sat, 16 Jul 2022 10:16:41 +0200
Subject: [PATCH] man: document DefaultDeviceTimeoutSec=
(cherry picked from commit 9e69bd4801588c12811c611a1c68b54cecbe1718)
Related: #2116681
---
man/systemd-system.conf.xml | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/man/systemd-system.conf.xml b/man/systemd-system.conf.xml
index b8e2b65625..bad790944d 100644
--- a/man/systemd-system.conf.xml
+++ b/man/systemd-system.conf.xml
@@ -326,6 +326,17 @@
100ms.</para></listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>DefaultDeviceTimeoutSec=</varname></term>
+
+ <listitem><para>Configures the default timeout for waiting for devices. It can be changed per
+ device via the <varname>x-systemd.device-timeout=</varname> option in <filename>/etc/fstab</filename>
+ and <filename>/etc/crypttab</filename> (see
+ <citerefentry><refentrytitle>systemd.mount</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
+ <citerefentry><refentrytitle>crypttab</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
+ Defaults to 90s.</para></listitem>
+ </varlistentry>
+
<varlistentry>
<term><varname>DefaultStartLimitIntervalSec=</varname></term>
<term><varname>DefaultStartLimitBurst=</varname></term>

View File

@ -0,0 +1,43 @@
From 3b5feb647f86c6db779806551093202b1ab020f2 Mon Sep 17 00:00:00 2001
From: David Tardon <dtardon@redhat.com>
Date: Sat, 16 Jul 2022 12:36:06 +0200
Subject: [PATCH] man: update dbus docs
(cherry picked from commit 141332ab55203adddadbf59ff7792a7e3438092c)
Related: #2116681
---
man/org.freedesktop.systemd1.xml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/man/org.freedesktop.systemd1.xml b/man/org.freedesktop.systemd1.xml
index e1abb7f389..6be60c865c 100644
--- a/man/org.freedesktop.systemd1.xml
+++ b/man/org.freedesktop.systemd1.xml
@@ -425,6 +425,8 @@ node /org/freedesktop/systemd1 {
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t DefaultTimeoutAbortUSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
+ readonly t DefaultDeviceTimeoutUSec = ...;
+ @org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly t DefaultRestartUSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly t DefaultStartLimitIntervalUSec = ...;
@@ -669,6 +671,8 @@ node /org/freedesktop/systemd1 {
<!--property DefaultTimeoutAbortUSec is not documented!-->
+ <!--property DefaultDeviceTimeoutUSec is not documented!-->
+
<!--property DefaultRestartUSec is not documented!-->
<!--property DefaultStartLimitIntervalUSec is not documented!-->
@@ -1073,6 +1077,8 @@ node /org/freedesktop/systemd1 {
<variablelist class="dbus-property" generated="True" extra-ref="DefaultTimeoutAbortUSec"/>
+ <variablelist class="dbus-property" generated="True" extra-ref="DefaultDeviceTimeoutUSec"/>
+
<variablelist class="dbus-property" generated="True" extra-ref="DefaultRestartUSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="DefaultStartLimitIntervalUSec"/>

View File

@ -0,0 +1,47 @@
From c064473f6993a04ad126770a3218da623316c543 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Sat, 25 Dec 2021 11:19:03 +0100
Subject: [PATCH] hwdb: 60-keyboard: Fix volume-button mapping on Asus TF103C
The Asus TF103C misses the home button in its PNP0C40 GPIO resources
causing the button mappings for the volume buttons to be off by one,
leading to the volume-up button sending home button presses and the
volume-down button sending volume-up button presses.
Add a 60-keyboard hwdb entry to correct the mappings. Note this is
split over 2 input devices because the soc_button_array driver
creates separate input devices for power + home and vol up/down.
This is done because power/home act as wakeup buttons where as
the volume buttons do not.
This means that after this fixup the home -> volume-up button
still acts as a wakeup button, there is nothing which can be done
about this without adding a kludge to the kernel which is not
worth the trouble (IMHO).
(cherry picked from commit 04b457d8ef9c93be3b2048c6f545cdbcf1b893a1)
Related: #2087778
---
hwdb.d/60-keyboard.hwdb | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index b614a22c8c..3d6e56983b 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -231,6 +231,14 @@ evdev:name:Asus Laptop extra buttons:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
evdev:input:b0003v0B05p1869*
KEYBOARD_KEY_ff31007c=f20 # Remap micmute to f20
+# Asus TF103C misses the home button in its PNP0C40 GPIO resources
+# causing the volume-button mappings to be off by one, correct this
+evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:*:svnASUSTeKCOMPUTERINC.:pnTF103C*:*
+ KEYBOARD_KEY_1=volumeup
+
+evdev:name:gpio-keys:phys:gpio-keys/input0:ev:100003:dmi:*:svnASUSTeKCOMPUTERINC.:pnTF103C*:*
+ KEYBOARD_KEY_0=volumedown
+
###########################################################
# BenQ
###########################################################

View File

@ -0,0 +1,28 @@
From c81a00694952469b1a3afa7c0345a5f2390c8024 Mon Sep 17 00:00:00 2001
From: Tyson Whitehead <twhitehead@gmail.com>
Date: Wed, 19 Jan 2022 22:38:21 -0500
Subject: [PATCH] hwdb: CH Pro Pedals not classified correctly due to no
buttons
(cherry picked from commit 230ed4c4bad8b3c1d9d746a80e6f78dc71d1c87f)
Related: #2087778
---
hwdb.d/60-input-id.hwdb | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/hwdb.d/60-input-id.hwdb b/hwdb.d/60-input-id.hwdb
index c4101cc2a5..f7b61fb980 100644
--- a/hwdb.d/60-input-id.hwdb
+++ b/hwdb.d/60-input-id.hwdb
@@ -70,4 +70,9 @@ id-input:modalias:input:b0005v046DpB00De0700*
# Logitech MX Keys
id-input:modalias:input:b0003v046Dp408Ae0111*
- ID_INPUT_MOUSE=0
+ ID_INPUT_MOUSE=0
+
+# CH Products Pro Pedals
+id-input:modalias:input:b0003v068Ep00F2e0100*
+ ID_INPUT_ACCELEROMETER=0
+ ID_INPUT_JOYSTICK=1

View File

@ -0,0 +1,27 @@
From d7ca24d57b5e6587238da4d5002c221af31e9735 Mon Sep 17 00:00:00 2001
From: Thomas Batten <stenstorpmc@gmail.com>
Date: Thu, 20 Jan 2022 19:24:00 +1030
Subject: [PATCH] hwdb: Add accel orientation quirk for the GPD Pocket 3
(cherry picked from commit 5888fa9b16c33e48d702313d80c9cb0253aec920)
Related: #2087778
---
hwdb.d/60-sensor.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index ab7b1adacd..c4ee7e0c7b 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -426,6 +426,10 @@ sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd03/20/201
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd05/25/2017:*svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnAMICorporation:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:*
ACCEL_LOCATION=base
+# GPD Pocket 3
+sensor:modalias:acpi:MXC6655*:dmi:*:svnGPD:pnG1621-02:*
+ ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
+
#########################################
# Hometech
########################################

View File

@ -0,0 +1,41 @@
From ea54689eebe58d1bbb908762731f179e50ac1c9a Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Fri, 21 Jan 2022 18:56:42 +0100
Subject: [PATCH] hostname: Allow overriding the chassis type from hwdb
Closes: #7390
(cherry picked from commit 4b35eb2579b226785f0d94129a7652450f9723fd)
Related: #2087778
---
src/hostname/hostnamed.c | 12 +++++++-----
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c
index b20a93ad81..559326b9f5 100644
--- a/src/hostname/hostnamed.c
+++ b/src/hostname/hostnamed.c
@@ -725,16 +725,18 @@ static int property_get_chassis(
sd_bus_error *error) {
Context *c = userdata;
- const char *name;
+ _cleanup_free_ char *dmi_chassis = NULL;
+ const char *name = NULL;
context_read_machine_info(c);
- if (isempty(c->data[PROP_CHASSIS]))
- name = fallback_chassis();
- else
+ if (isempty(c->data[PROP_CHASSIS])) {
+ if (get_dmi_data("ID_CHASSIS", NULL, &dmi_chassis) <= 0)
+ name = fallback_chassis();
+ } else
name = c->data[PROP_CHASSIS];
- return sd_bus_message_append(reply, "s", name);
+ return sd_bus_message_append(reply, "s", name ?: dmi_chassis);
}
static int property_get_uname_field(

View File

@ -0,0 +1,26 @@
From 1514432a3837d7feaf70e34fbfafc8137e539ea8 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Fri, 21 Jan 2022 18:57:21 +0100
Subject: [PATCH] hwdb: Add Microsoft Surface Pro 1 chassis quirk
See https://github.com/systemd/systemd/issues/7390#issuecomment-345546127
(cherry picked from commit bdf182debe715ff7876c610b0f93540437cb8b43)
Related: #2087778
---
hwdb.d/20-dmi-id.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/20-dmi-id.hwdb b/hwdb.d/20-dmi-id.hwdb
index a614473bd9..c7bf6cfab1 100644
--- a/hwdb.d/20-dmi-id.hwdb
+++ b/hwdb.d/20-dmi-id.hwdb
@@ -4,3 +4,7 @@
dmi:bvnLENOVO*
ID_SYSFS_ATTRIBUTE_MODEL=product_version
ID_VENDOR_FROM_DATABASE=Lenovo
+
+# Microsoft Surface 1's chassis type
+dmi:bvnMicrosoft Corporation*:pvrSurface with Windows 8 Pro*
+ ID_CHASSIS=tablet

View File

@ -0,0 +1,27 @@
From cf56e7ae888a0d5a1384b5a22398aa3e32c65b73 Mon Sep 17 00:00:00 2001
From: Seth Falco <seth@falco.fun>
Date: Thu, 27 Jan 2022 21:08:30 +0000
Subject: [PATCH] hwdb: treat logitech craft keyboard as a keyboard
(cherry picked from commit 7f74f7a916b8c2bd6e82b873334731427ba8cb80)
Related: #2087778
---
hwdb.d/60-input-id.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-input-id.hwdb b/hwdb.d/60-input-id.hwdb
index f7b61fb980..2d5681dea6 100644
--- a/hwdb.d/60-input-id.hwdb
+++ b/hwdb.d/60-input-id.hwdb
@@ -72,6 +72,10 @@ id-input:modalias:input:b0005v046DpB00De0700*
id-input:modalias:input:b0003v046Dp408Ae0111*
ID_INPUT_MOUSE=0
+# Logitech Craft Keyboard
+id-input:modalias:input:b0003v046Dp4066e0111*
+ ID_INPUT_MOUSE=0
+
# CH Products Pro Pedals
id-input:modalias:input:b0003v068Ep00F2e0100*
ID_INPUT_ACCELEROMETER=0

View File

@ -0,0 +1,27 @@
From 3821f3570e28a6f169bf539086882b34a6a7beb8 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Fri, 28 Jan 2022 11:08:43 +0900
Subject: [PATCH] test: frequency in mouse DPI is optional
Prompted by #22278.
(cherry picked from commit e912326e05cf753ddb703be0666336ee3386d6e0)
Related: #2087778
---
hwdb.d/parse_hwdb.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
index 0268bf9580..aef0331ace 100755
--- a/hwdb.d/parse_hwdb.py
+++ b/hwdb.d/parse_hwdb.py
@@ -121,7 +121,7 @@ def hwdb_grammar():
def property_grammar():
ParserElement.setDefaultWhitespaceChars(' ')
- dpi_setting = Group(Optional('*')('DEFAULT') + INTEGER('DPI') + Suppress('@') + INTEGER('HZ'))('SETTINGS*')
+ dpi_setting = Group(Optional('*')('DEFAULT') + INTEGER('DPI') + Optional(Suppress('@') + INTEGER('HZ')))('SETTINGS*')
mount_matrix_row = SIGNED_REAL + ',' + SIGNED_REAL + ',' + SIGNED_REAL
mount_matrix = Group(mount_matrix_row + ';' + mount_matrix_row + ';' + mount_matrix_row)('MOUNT_MATRIX')
xkb_setting = Optional(Word(alphanums + '+-/@._'))

View File

@ -0,0 +1,34 @@
From 7baf39a2264d38ee6c684c28fee5da879b87a2c5 Mon Sep 17 00:00:00 2001
From: Ryan Hendrickson <ryan.hendrickson@alum.mit.edu>
Date: Thu, 27 Jan 2022 18:06:14 -0500
Subject: [PATCH] hwdb: add two Elecom trackballs
(cherry picked from commit a663f5eef59a05ba64e313d2451000d8df754bcf)
Related: #2087778
---
hwdb.d/70-mouse.hwdb | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/hwdb.d/70-mouse.hwdb b/hwdb.d/70-mouse.hwdb
index 6302312456..66e74f667c 100644
--- a/hwdb.d/70-mouse.hwdb
+++ b/hwdb.d/70-mouse.hwdb
@@ -198,6 +198,17 @@ mouse:usb:v0461p4d46:name:USB Optical Mouse:*
mouse:usb:v056ep010d:name:ELECOM TrackBall Mouse HUGE TrackBall:*
MOUSE_DPI=500@125 *1000@125 1500@125
+# Elecom DEFT Pro TrackBall (M-DPT1MR)
+mouse:usb:v056ep0131:name:ELECOM TrackBall Mouse DEFT Pro TrackBall Mouse:*
+ MOUSE_DPI=*500 1000 1500
+ MOUSE_WHEEL_CLICK_ANGLE=10
+
+# Elecom Relacon (M-RT1DR)
+mouse:usb:v056ep0155:name:ELECOM ELECOM Relacon:*
+ ID_INPUT_TRACKBALL=1
+ MOUSE_DPI=*500 1000 1500
+ MOUSE_WHEEL_CLICK_ANGLE=30
+
##########################################
# Fujitsu Siemens
##########################################

View File

@ -0,0 +1,91 @@
From 125cb47adf05421d00e25aee4a143ef2c473aeb9 Mon Sep 17 00:00:00 2001
From: Davide Cavalca <davide@cavalca.name>
Date: Sun, 30 Jan 2022 09:28:52 -0800
Subject: [PATCH] hwdb: add new database file for PDA devices
Add a new database for handhelds (PDAs, calculators, etc.) that should be
accessible the seat owner.
The database is initially populated with Texas Instruments calculators
and linking cables, which removes the need to installing dedicated udev
rules for them.
(cherry picked from commit 7d75376e1f0a83dba76d3a08edbb50923e02e3d3)
Related: #2087778
---
hwdb.d/70-pda.hwdb | 39 +++++++++++++++++++++++++++++++++++++++
hwdb.d/meson.build | 1 +
hwdb.d/parse_hwdb.py | 1 +
3 files changed, 41 insertions(+)
create mode 100644 hwdb.d/70-pda.hwdb
diff --git a/hwdb.d/70-pda.hwdb b/hwdb.d/70-pda.hwdb
new file mode 100644
index 0000000000..e122acca6f
--- /dev/null
+++ b/hwdb.d/70-pda.hwdb
@@ -0,0 +1,39 @@
+# This file is part of systemd.
+#
+# Database for handhelds (PDAs, calculators, etc.) that should be accessible
+# the seat owner.
+#
+# Permitted keys:
+# Specify if a device is a signal analyzer
+# ID_PDA=1|0
+
+###########################################################
+# Texas Instruments
+###########################################################
+# SilverLink
+usb:v0451pE001*
+ ID_PDA=1
+
+# TI-84 Plus DirectLink
+usb:v0451pE003*
+ ID_PDA=1
+
+# TI-89 Titanium DirectLink
+usb:v0451pE004*
+ ID_PDA=1
+
+# TI-84 Plus Silver Edition DirectLink
+usb:v0451pE008*
+ ID_PDA=1
+
+# TI-Nspire DirectLink
+usb:v0451pE012*
+ ID_PDA=1
+
+# TI-Nspire Lab Cradle
+usb:v0451pE01C*
+ ID_PDA=1
+
+# TI-Nspire CX II DirectLink
+usb:v0451pE022*
+ ID_PDA=1
diff --git a/hwdb.d/meson.build b/hwdb.d/meson.build
index 8ff044131c..fc72ebb2bd 100644
--- a/hwdb.d/meson.build
+++ b/hwdb.d/meson.build
@@ -31,6 +31,7 @@ hwdb_files_test = files('''
70-cameras.hwdb
70-joystick.hwdb
70-mouse.hwdb
+ 70-pda.hwdb
70-pointingstick.hwdb
70-touchpad.hwdb
80-ieee1394-unit-function.hwdb
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
index aef0331ace..194a71ac08 100755
--- a/hwdb.d/parse_hwdb.py
+++ b/hwdb.d/parse_hwdb.py
@@ -136,6 +136,7 @@ def property_grammar():
('MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL', INTEGER),
('ID_AUTOSUSPEND', Or((Literal('0'), Literal('1')))),
('ID_PERSIST', Or((Literal('0'), Literal('1')))),
+ ('ID_PDA', Or((Literal('0'), Literal('1')))),
('ID_INPUT', Or((Literal('0'), Literal('1')))),
('ID_INPUT_ACCELEROMETER', Or((Literal('0'), Literal('1')))),
('ID_INPUT_JOYSTICK', Or((Literal('0'), Literal('1')))),

View File

@ -0,0 +1,41 @@
From 5d3c35c19083053128ec2c48e6393c2a9803d57e Mon Sep 17 00:00:00 2001
From: Dorian Clay <dorian@dorianclay.com>
Date: Sun, 30 Jan 2022 11:50:09 -0800
Subject: [PATCH] hwdb: add support for Surface Laptop 2 & 3 (#22303)
(cherry picked from commit 156d01b9ca4cb6d7b3877a3db7d20ed600dc40c0)
Related: #2087778
---
hwdb.d/60-evdev.hwdb | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/hwdb.d/60-evdev.hwdb b/hwdb.d/60-evdev.hwdb
index f896dde357..9fcb4a3ddf 100644
--- a/hwdb.d/60-evdev.hwdb
+++ b/hwdb.d/60-evdev.hwdb
@@ -591,6 +591,24 @@ evdev:name:MSFT0001:02 04F3:304B Touchpad:dmi:*svnLENOVO:*pvrLenovoLegionY9000X2
EVDEV_ABS_35=::31
EVDEV_ABS_36=::30
+#########################################
+# Microsoft
+#########################################
+
+# Surface Laptop 2 (13")
+evdev:name:Microsoft Surface 045E:0933 Touchpad:dmi:*svnMicrosoftCorporation:*pnSurfaceLaptop2**
+ EVDEV_ABS_00=::38
+ EVDEV_ABS_01=::38
+ EVDEV_ABS_35=::38
+ EVDEV_ABS_36=::38
+
+# Surface Laptop 3 (15")
+evdev:name:Microsoft Surface 045E:09AF Touchpad:dmi:*svnMicrosoftCorporation:*pnSurfaceLaptop3**
+ EVDEV_ABS_00=::39
+ EVDEV_ABS_01=::37
+ EVDEV_ABS_35=::39
+ EVDEV_ABS_36=::37
+
#########################################
# NEWYES
#########################################

View File

@ -0,0 +1,38 @@
From e193ca5f8828301fe569e28938f10fce3af5fcd3 Mon Sep 17 00:00:00 2001
From: Davide Cavalca <davide@cavalca.name>
Date: Thu, 3 Feb 2022 08:35:35 -0800
Subject: [PATCH] hwdb: add HP calculators
(cherry picked from commit 2b560c6e545346e9791962e37361ca044fca036e)
Related: #2087778
---
hwdb.d/70-pda.hwdb | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/hwdb.d/70-pda.hwdb b/hwdb.d/70-pda.hwdb
index e122acca6f..3fdb4efcdd 100644
--- a/hwdb.d/70-pda.hwdb
+++ b/hwdb.d/70-pda.hwdb
@@ -4,9 +4,20 @@
# the seat owner.
#
# Permitted keys:
-# Specify if a device is a signal analyzer
+# Specify if a device is a handheld
# ID_PDA=1|0
+###########################################################
+# HP Inc.
+###########################################################
+# HP x9G+ Calculator
+usb:v03F0p0121*
+ ID_PDA=1
+
+# HP Prime
+usb:v03F0p1541*
+ ID_PDA=1
+
###########################################################
# Texas Instruments
###########################################################

View File

@ -0,0 +1,29 @@
From 6b2ea92e5d8c4888b33a2d9f21b830933132d513 Mon Sep 17 00:00:00 2001
From: Matt Walton <matthew@nyrs.com>
Date: Fri, 4 Feb 2022 11:47:08 -0600
Subject: [PATCH] hwbd: 60-sensor.hwdb: Add Pipo W2Pro
Add accelerometer matrix for Pipo W2Pro tablet. Y-axis was backwards (normal <--> bottom-up).
(cherry picked from commit ec82f867eea000921fa0f93a9adf1f8fd7bfe2c5)
Related: #2087778
---
hwdb.d/60-sensor.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index c4ee7e0c7b..ea278913bc 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -751,6 +751,10 @@ sensor:modalias:acpi:SMO8500*:dmi:*:svnPEAQ:pnPEAQPMMC1010MD99187:*
sensor:modalias:acpi:KIOX000A*:dmi:*:svnPIPO:pnW2S:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
+# Pipo W2Pro
+sensor:modalias:acpi:KIOX0008*:dmi:*svnPIPO:pnW2pro:*
+ ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
+
# Pipo W4
sensor:modalias:acpi:SMO8500*:dmi:*:bvrV8L_WIN32_CHIPHD_*_DX:*:rvnAMICorporation:rnAptioCRB:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

View File

@ -0,0 +1,51 @@
From e8de40fbfab79cc86729e13b924251c1af8567ba Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Sun, 22 Jul 2018 00:25:51 +0200
Subject: [PATCH] hwdb: 60-keyboard: Support the buttons on CZC P10T tablet
The machine has tree buttons connected to an EC that acts as a regular
AT-compatible keyboard controller. It can be either in "Windows 7" or
"Android" mode. It boots up with the earlier, but the Android build on
the tablet switches it on bootup (Windows presumably leaves it as-is).
The "Windows 7" mode, the behavior is very inconvenient: the Home button
emits multiple key presses that presumably do something in Windws 7 while
the second button toggles the RF Kill Switch in addition to producing a
scancode (it's labeled "Back" on Android version of the tablet).
The "Android" mode just sends the good ol' scan codes and this patch
handles them. On mainline Linux, the "x86-android-tablets" driver makes
sure we're in the correct mode.
(cherry picked from commit f2f11dfbb7f30d279ab3c9b3c84de5496407112d)
Related: #2087778
---
hwdb.d/60-keyboard.hwdb | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 3d6e56983b..66561eac35 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -1891,6 +1891,20 @@ evdev:input:b0003v1038p0310*
KEYBOARD_KEY_7002f=f11
KEYBOARD_KEY_70046=f6
+###########################################################
+# CZC
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnCZC:pnODEON*TPC-10:*
+ KEYBOARD_KEY_01=leftmeta # Home button held for 2s
+ KEYBOARD_KEY_db=prog1 # Home button
+ KEYBOARD_KEY_dd=rfkill # Second button labeled Wi-Fi
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnViewSonic:pnVPAD10:*
+ KEYBOARD_KEY_01=leftmeta # Home button held for 2s
+ KEYBOARD_KEY_db=prog1 # Home button
+ KEYBOARD_KEY_dd=back # Second button labeled Back
+
###########################################################
# Other
###########################################################

View File

@ -0,0 +1,33 @@
From 67137663f67afa6c7ba9ef29f9b9c2e9288bb0bd Mon Sep 17 00:00:00 2001
From: prumian <100143890+prumian@users.noreply.github.com>
Date: Tue, 22 Feb 2022 07:47:39 +0100
Subject: [PATCH] hwdb: add CST Laser Trackball (#22583)
Set the default to 800DPI as this is what user manual suggests.
(cherry picked from commit d9ab110ddc453cac40a0b36cee5e5dc272e7aec7)
Related: #2087778
---
hwdb.d/70-mouse.hwdb | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hwdb.d/70-mouse.hwdb b/hwdb.d/70-mouse.hwdb
index 66e74f667c..723d145e34 100644
--- a/hwdb.d/70-mouse.hwdb
+++ b/hwdb.d/70-mouse.hwdb
@@ -166,6 +166,14 @@ mouse:bluetooth:v05acp030d:name:*:*
mouse:usb:v04f2p0963:name:Chicony 2.4G Multimedia Wireless Kit:*
MOUSE_DPI=1000@142
+##########################################
+# CST
+##########################################
+
+# CST Laser Trackball
+mouse:usb:v5332p1400:name:Clearly Superior Technologies. CST Laser Trackball:*
+ MOUSE_DPI=400@1000 *800@1000 1600@1000
+
##########################################
# Dell
##########################################

View File

@ -0,0 +1,27 @@
From 1730fc33578270d9ee83aec116d014333aacb67f Mon Sep 17 00:00:00 2001
From: Lan Tian <xuyh0120@outlook.com>
Date: Tue, 22 Feb 2022 01:43:32 -0600
Subject: [PATCH] hwdb: Force release calculator key on all HP OMEN laptops
(cherry picked from commit 70920214b6a1c1825a2724793497e6be2ba3c0fc)
Related: #2087778
---
hwdb.d/60-keyboard.hwdb | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 66561eac35..2606d0b66c 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -719,8 +719,8 @@ evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:*:svnHewlett-Packard:pnHPStr
evdev:name:gpio-keys:phys:gpio-keys/input0:ev:23:dmi:*:svnHewlett-Packard:pnHPStream7Tablet:*
KEYBOARD_KEY_0=unknown
-# HP Omen 15
-evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnOMENLaptop15*:pvr*
+# HP Omen
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnOMEN*:pvr*
KEYBOARD_KEY_a1=!calc
##########################################################

View File

@ -0,0 +1,36 @@
From ce32478594b4afc26c91ed63eb17c65ca988158c Mon Sep 17 00:00:00 2001
From: 4piu <16668056+4piu@users.noreply.github.com>
Date: Mon, 7 Mar 2022 16:38:08 +0800
Subject: [PATCH] Add support for NEC VersaPro VG-S
The brightness control key (Fn+F7 Fn+F8) and touchpad toggle key (Fn + Space) do not work on the NEC VersaPro VG-S laptop. Add the keycode to fix the problem.
(cherry picked from commit 19a04e807129e7790a0f2950cf67d79fe0df85cb)
Related: #2087778
---
hwdb.d/60-keyboard.hwdb | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 2606d0b66c..73b26089ab 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -1345,6 +1345,17 @@ evdev:name:MSI Laptop hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnM[iI][cC][rR][oO]-S[tT][a
KEYBOARD_KEY_0213=f22
KEYBOARD_KEY_0214=f23
+##########################################
+# NEC
+##########################################
+
+# VersaPro VG-S
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnNEC:pnPC-VK22TGSGS:pvr*
+ KEYBOARD_KEY_a8=f21 # Fn+Space touchpad toggle
+ KEYBOARD_KEY_67=brightnessdown # Fn+F7 brightness down
+ KEYBOARD_KEY_65=brightnessup # Fn+F8 brightness up
+ KEYBOARD_KEY_71=battery # Fn+F4 ECO
+
###########################################################
# Olimex
###########################################################

View File

@ -0,0 +1,29 @@
From ecf8c93eb9f181822c277746c729ab1545079c7d Mon Sep 17 00:00:00 2001
From: tawefogo <101180464+tawefogo@users.noreply.github.com>
Date: Tue, 8 Mar 2022 15:10:51 +0100
Subject: [PATCH] Fix mic mute on Acer TravelMate B311-31 (#22677)
(cherry picked from commit 6c5f368646c5de893d5cf05eb9a4a3892bc8228d)
Related: #2087778
---
hwdb.d/60-keyboard.hwdb | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 73b26089ab..780ed6183e 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -164,6 +164,12 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredator*PH*315-52:*
KEYBOARD_KEY_ef=kbdillumup # Fn+F10
KEYBOARD_KEY_f0=kbdillumdown # Fn+F9
+# Travelmate B311-31, B311R-31, B311RN-31
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMateB311-31*:pvr*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMateB311R-31*:pvr*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMateB311RN-31*:pvr*
+ KEYBOARD_KEY_8a=f20 # Microphone mute
+
# Travelmate C300
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*C3[01]0*:*
KEYBOARD_KEY_67=f24 # FIXME: rotate screen

View File

@ -0,0 +1,196 @@
From 41d06ed98ecbe4f65cfffc3877fbe4c87fadc6b4 Mon Sep 17 00:00:00 2001
From: Be <be@mixxx.org>
Date: Fri, 27 Aug 2021 22:30:50 -0500
Subject: [PATCH] Add AV production controllers to hwdb and add uaccess
This adds support for AV production controller devices, such
as DJ tables, music-oriented key pads, and others.
The USB vendor and product IDs come from Mixxx, Ctlra, and
Ardour.
Fixes #20533
Co-developed-by: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
(cherry picked from commit f2c36c0e2445fa95ba109017d4b768b2fd825c43)
Related: #2087778
---
hwdb.d/70-av-production.hwdb | 123 ++++++++++++++++++++++++++++++++++
hwdb.d/meson.build | 1 +
hwdb.d/parse_hwdb.py | 1 +
src/login/70-uaccess.rules.in | 9 +++
4 files changed, 134 insertions(+)
create mode 100644 hwdb.d/70-av-production.hwdb
diff --git a/hwdb.d/70-av-production.hwdb b/hwdb.d/70-av-production.hwdb
new file mode 100644
index 0000000000..17ac1b4fb6
--- /dev/null
+++ b/hwdb.d/70-av-production.hwdb
@@ -0,0 +1,123 @@
+# This file is part of systemd.
+#
+# Database for AV production controllers that should be accessible to the seat owner.
+#
+# This covers DJ tables, and music-oriented key pads
+#
+# To add local entries, copy this file to
+# /etc/udev/hwdb.d/
+# and add your rules there. To load the new rules execute (as root):
+# systemd-hwdb update
+# udevadm trigger
+
+################
+# Ableton
+################
+# Push 2
+usb:v2982p1967*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+################
+# Eks
+################
+# Otus
+usb:v1157p0300*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+#############################
+# Hercules (Guillemot Corp)
+#############################
+# DJ Console MP3e2
+usb:v06F8pB105*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# DJ Console MP3 LE / Glow
+usb:v06F8pB120*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# DJ Console Mk2
+usb:v06F8pB100*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# DJ Console Mk4
+usb:v06F8pB107*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+#####################
+# Native Instruments
+#####################
+
+# Maschine 2
+usb:v17CCp1140*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Maschine 2 Mikro
+usb:v17CCp1110*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Maschine 2 Studio
+usb:v17CCp1300*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Maschine Jam
+usb:v17CCp1500*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Maschine 3
+usb:v17CCp1600*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Traktor Kontrol D2
+usb:v17CCp1400*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Traktor Kontrol F1
+usb:v17CCp1120*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Traktor Kontrol S2 Mk2
+usb:v17CCp1320*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Traktor Kontrol S2 Mk3
+usb:v17CCp1710*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Traktor Kontrol S3
+usb:v17CCp1900*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Traktor Kontrol S4 Mk2
+usb:v17CCp1310*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Traktor Kontrol S4 Mk3
+usb:v17CCp1720*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Traktor Kontrol S5
+usb:v17CCp1420*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Traktor Kontrol S8
+usb:v17CCp1370*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Traktor Kontrol X1 Mk2
+usb:v17CCp1220*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Traktor Kontrol Z1
+usb:v17CCp1210*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Traktor Kontrol Z2
+usb:v17CCp1130*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+####################
+# Pioneer
+####################
+# CDJ 2000 NXS 2
+usb:v2B73p0005*
+ ID_AV_PRODUCTION_CONTROLLER=1
diff --git a/hwdb.d/meson.build b/hwdb.d/meson.build
index fc72ebb2bd..8f6a8a4486 100644
--- a/hwdb.d/meson.build
+++ b/hwdb.d/meson.build
@@ -28,6 +28,7 @@ hwdb_files_test = files('''
60-seat.hwdb
60-sensor.hwdb
70-analyzers.hwdb
+ 70-av-production.hwdb
70-cameras.hwdb
70-joystick.hwdb
70-mouse.hwdb
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
index 194a71ac08..93179b675c 100755
--- a/hwdb.d/parse_hwdb.py
+++ b/hwdb.d/parse_hwdb.py
@@ -135,6 +135,7 @@ def property_grammar():
('MOUSE_WHEEL_CLICK_COUNT', INTEGER),
('MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL', INTEGER),
('ID_AUTOSUSPEND', Or((Literal('0'), Literal('1')))),
+ ('ID_AV_PRODUCTION_CONTROLLER', Or((Literal('0'), Literal('1')))),
('ID_PERSIST', Or((Literal('0'), Literal('1')))),
('ID_PDA', Or((Literal('0'), Literal('1')))),
('ID_INPUT', Or((Literal('0'), Literal('1')))),
diff --git a/src/login/70-uaccess.rules.in b/src/login/70-uaccess.rules.in
index 052194b6c9..a3301be1bc 100644
--- a/src/login/70-uaccess.rules.in
+++ b/src/login/70-uaccess.rules.in
@@ -87,4 +87,13 @@ ENV{ID_SIGNAL_ANALYZER}=="?*", ENV{DEVTYPE}=="usb_device", TAG+="uaccess"
# rfkill / radio killswitches
KERNEL=="rfkill", SUBSYSTEM=="misc", TAG+="uaccess"
+# AV production controllers
+# Most of these devices use HID for the knobs, faders, buttons, encoders, and jog wheels.
+SUBSYSTEM=="hidraw", ENV{ID_AV_PRODUCTION_CONTROLLER}=="1", TAG+="uaccess"
+
+# Some devices use vendor defined protocols on USB Bulk endpoints for controllers.
+# Other devices transfer graphics to screens on the device through USB Bulk endpoints.
+# This also allows accessing HID devices with the libusb backend of hidapi.
+SUBSYSTEM=="usb", ENV{ID_AV_PRODUCTION_CONTROLLER}=="1", TAG+="uaccess"
+
LABEL="uaccess_end"

View File

@ -0,0 +1,65 @@
From 3467ee329568bf6a1b37de9c37ba914adf436291 Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
Date: Mon, 14 Mar 2022 10:50:45 -0300
Subject: [PATCH] hwdb: Add AV production access to Elgado Stream Deck devices
The Stream Deck products from Elgato are simple key pads
intended to be used as macro pads. They're popular within
the streaming community.
This commit adds all 5 Stream Deck variants available to
the AV production file.
See https://www.elgato.com/en/stream-deck
(cherry picked from commit e982320b44486b26c4d39f7c81012f6a0e2aaf77)
Related: #2087778
---
hwdb.d/70-av-production.hwdb | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/hwdb.d/70-av-production.hwdb b/hwdb.d/70-av-production.hwdb
index 17ac1b4fb6..a13d6981eb 100644
--- a/hwdb.d/70-av-production.hwdb
+++ b/hwdb.d/70-av-production.hwdb
@@ -2,7 +2,8 @@
#
# Database for AV production controllers that should be accessible to the seat owner.
#
-# This covers DJ tables, and music-oriented key pads
+# This covers DJ tables, music-oriented key pads, and streaming-oriented key pads
+# such as Elgato Stream Deck
#
# To add local entries, copy this file to
# /etc/udev/hwdb.d/
@@ -24,6 +25,29 @@ usb:v2982p1967*
usb:v1157p0300*
ID_AV_PRODUCTION_CONTROLLER=1
+################
+# Elgato
+################
+# Stream Deck Original (gen 1)
+usb:v0FD9p0060*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Stream Deck Mini
+usb:v0FD9p0063*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Stream Deck XL
+usb:v0FD9p006C*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Stream Deck Original (gen 2)
+usb:v0FD9p006D*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
+# Stream Deck MK.2
+usb:v0FD9p0080*
+ ID_AV_PRODUCTION_CONTROLLER=1
+
#############################
# Hercules (Guillemot Corp)
#############################

View File

@ -0,0 +1,35 @@
From aaca6dc45b898607afea3bf3d50ba7120458b054 Mon Sep 17 00:00:00 2001
From: AlexCatze <samsung5552015.st@gmail.com>
Date: Fri, 18 Mar 2022 14:45:43 +0200
Subject: [PATCH] Add HP Elitebook 2760p support (#22766)
(cherry picked from commit 1a34f913a6cfa22abfb6b3f69e2ba20112e19d87)
Related: #2087778
---
hwdb.d/60-keyboard.hwdb | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 780ed6183e..eeadd1a059 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -602,6 +602,18 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*G60*Notebook*PC:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2570p*:*
KEYBOARD_KEY_f8=wlan # Wireless HW switch button
+# Elitebook 2760p
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2760p*:*
+ KEYBOARD_KEY_89=battery # Fn+F8
+ KEYBOARD_KEY_f8=unknown # rfkill is also reported by HP Wireless hotkeys
+ KEYBOARD_KEY_86=volumeup
+ KEYBOARD_KEY_87=volumedown
+ KEYBOARD_KEY_92=brightnessdown
+ KEYBOARD_KEY_97=brightnessup
+ KEYBOARD_KEY_d8=!f23 # touchpad off
+ KEYBOARD_KEY_d9=!f22 # touchpad on
+ KEYBOARD_KEY_b3=unknown # FIXME: Auto brightness
+
# TX2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[tT][xX]2*:*
KEYBOARD_KEY_c2=media

View File

@ -0,0 +1,30 @@
From bfb6b8e75721c0d56d3a9ea8561f50f0f820b8a3 Mon Sep 17 00:00:00 2001
From: Andy Chi <andy.chi@canonical.com>
Date: Tue, 29 Mar 2022 15:36:13 +0800
Subject: [PATCH] hwdb: Add mic mute key mapping for HP Elite x360
On the new Elite x360 2 in 1 HP laptops, the microphone mute hotkey is "Fn+F8" and
the scancode for this hotkey is 0x81, but this scancode was mapped to
fn_esc in the HP generic keymap section. To fix this problem, we add
a machine specific keymap section to add the correct keymap rule.
(cherry picked from commit f09f6dc2c8f59b2b58159cc413b605a547c8646e)
Related: #2087778
---
hwdb.d/60-keyboard.hwdb | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index eeadd1a059..c196a1fd64 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -651,6 +651,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPLicrice:*
# HP EliteBook
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPEliteBook*:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteBook*:*
+# HP Elite x360
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPElite*x360*:*
# HP Elite Dragonfly
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteDragonfly*:*
# HP ProBook 440 G2

View File

@ -0,0 +1,73 @@
From 72d3b0c995403293f65ee9a47043ebd2fdafc1cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Tue, 29 Mar 2022 12:17:51 +0200
Subject: [PATCH] hwdb: fix parser to work with newer pyparsing
The handling of whitespace in pyparsing is a bother. There's some
global state, and per-element state, and it's hard to get a handle on
things. With python3-pyparsing-2.4.7-10.fc36.noarch the grammar would
not match. After handling of tabs was fixed to not accept duplicate tabs,
the grammar passes.
It seems that the entry for usb:v8087p8087*
was generated incorrectly because we treated the interface line
(with two TABs) as a device line (with one TAB).
(cherry picked from commit f73d6895872cb9caffc523e1eddc53c9b98cfdec)
Related: #2087778
---
hwdb.d/20-usb-vendor-model.hwdb | 3 ---
hwdb.d/ids_parser.py | 10 ++++++++--
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/hwdb.d/20-usb-vendor-model.hwdb b/hwdb.d/20-usb-vendor-model.hwdb
index f40a3947c7..9f457d9f65 100644
--- a/hwdb.d/20-usb-vendor-model.hwdb
+++ b/hwdb.d/20-usb-vendor-model.hwdb
@@ -69815,9 +69815,6 @@ usb:v8087p8008*
usb:v8087p800A*
ID_MODEL_FROM_DATABASE=Hub
-usb:v8087p8087*
- ID_MODEL_FROM_DATABASE=07da Centrino Advanced-N 6235
-
usb:v80EE*
ID_VENDOR_FROM_DATABASE=VirtualBox
diff --git a/hwdb.d/ids_parser.py b/hwdb.d/ids_parser.py
index 0ce79cd97e..811c12559b 100755
--- a/hwdb.d/ids_parser.py
+++ b/hwdb.d/ids_parser.py
@@ -6,7 +6,7 @@ import sys
from pyparsing import (Word, White, Literal, Regex,
LineEnd, SkipTo,
ZeroOrMore, OneOrMore, Combine, Optional, Suppress,
- Group,
+ Group, ParserElement,
stringEnd, pythonStyleComment)
EOL = LineEnd().suppress()
@@ -20,6 +20,8 @@ COMMENTLINE = pythonStyleComment + EOL
EMPTYLINE = LineEnd()
text_eol = lambda name: Regex(r'[^\n]+')(name) + EOL
+ParserElement.set_default_whitespace_chars(' \n')
+
def klass_grammar():
klass_line = Literal('C ').suppress() + NUM2('klass') + text_eol('text')
subclass_line = TAB + NUM2('subclass') + text_eol('text')
@@ -35,8 +37,12 @@ def klass_grammar():
def usb_ids_grammar():
vendor_line = NUM4('vendor') + text_eol('text')
device_line = TAB + NUM4('device') + text_eol('text')
+ interface_line = TAB + TAB + NUM4('interface') + NUM4('interface2') + text_eol('text')
+ device = (device_line +
+ ZeroOrMore(Group(interface_line)
+ ^ COMMENTLINE.suppress()))
vendor = (vendor_line('VENDOR') +
- ZeroOrMore(Group(device_line)('VENDOR_DEV*') ^ COMMENTLINE.suppress()))
+ ZeroOrMore(Group(device)('VENDOR_DEV*') ^ COMMENTLINE.suppress()))
klass = klass_grammar()

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,78 @@
From 67c40c730543daaa6ca87216afb9b777def06167 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Tue, 29 Mar 2022 12:22:21 +0200
Subject: [PATCH] hwdb: update autosuspend entries
(cherry picked from commit f1589efb7fe4ed71c0f73dded61d5925c06cd71e)
Related: #2087778
---
hwdb.d/60-autosuspend-fingerprint-reader.hwdb | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
index 91a0793747..b44e3e328b 100644
--- a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
+++ b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
@@ -148,6 +148,7 @@ usb:v04F3p0C58*
# Supported by libfprint driver elanmoc
usb:v04F3p0C7D*
usb:v04F3p0C7E*
+usb:v04F3p0C82*
ID_AUTOSUSPEND=1
ID_PERSIST=0
@@ -185,7 +186,6 @@ usb:v06CBp00DF*
usb:v06CBp00F9*
usb:v06CBp00FC*
usb:v06CBp00C2*
-usb:v06CBp00C9*
usb:v06CBp0100*
usb:v06CBp00F0*
usb:v06CBp0103*
@@ -272,15 +272,19 @@ usb:v06CBp008A*
usb:v06CBp009A*
usb:v06CBp009B*
usb:v06CBp00A2*
+usb:v06CBp00A8*
usb:v06CBp00B7*
usb:v06CBp00BB*
usb:v06CBp00BE*
usb:v06CBp00C4*
usb:v06CBp00CB*
+usb:v06CBp00C9*
usb:v06CBp00D8*
usb:v06CBp00DA*
+usb:v06CBp00DC*
usb:v06CBp00E7*
usb:v06CBp00E9*
+usb:v06CBp00FD*
usb:v0A5Cp5801*
usb:v0A5Cp5805*
usb:v0A5Cp5834*
@@ -292,6 +296,7 @@ usb:v0A5Cp5844*
usb:v0A5Cp5845*
usb:v0BDAp5812*
usb:v10A5p0007*
+usb:v10A5p9200*
usb:v1188p9545*
usb:v138Ap0007*
usb:v138Ap003A*
@@ -309,6 +314,7 @@ usb:v1491p0088*
usb:v16D1p1027*
usb:v1C7Ap0300*
usb:v1C7Ap0575*
+usb:v1C7Ap0576*
usb:v27C6p5042*
usb:v27C6p5110*
usb:v27C6p5117*
@@ -328,7 +334,9 @@ usb:v27C6p55A2*
usb:v27C6p55A4*
usb:v27C6p55B4*
usb:v27C6p5740*
+usb:v27C6p5E0A*
usb:v2808p9338*
+usb:v298Dp2020*
usb:v298Dp2033*
usb:v3538p0930*
ID_AUTOSUSPEND=1

View File

@ -0,0 +1,117 @@
From 24ac19e1816ab2ec93360d346edd16e3f678bf47 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Date: Wed, 6 Apr 2022 11:56:05 +0200
Subject: [PATCH] hwdb: drop boilerplate about match patterns being unstable
We've had this text since the beginning, but in fact the patterns must be
stable in order for people to create local hwdb entries. And we support that
and can't change the match patterns without being very careful. So let's just
drop the text.
(cherry picked from commit adbe000e3df5f91572bf4a77a2acd84ff5b87320)
Related: #2087778
---
hwdb.d/60-evdev.hwdb | 5 -----
hwdb.d/60-input-id.hwdb | 5 -----
hwdb.d/60-keyboard.hwdb | 5 -----
hwdb.d/60-sensor.hwdb | 5 -----
hwdb.d/70-mouse.hwdb | 5 -----
hwdb.d/70-pointingstick.hwdb | 4 ----
6 files changed, 29 deletions(-)
diff --git a/hwdb.d/60-evdev.hwdb b/hwdb.d/60-evdev.hwdb
index 9fcb4a3ddf..c97cd13557 100644
--- a/hwdb.d/60-evdev.hwdb
+++ b/hwdb.d/60-evdev.hwdb
@@ -3,11 +3,6 @@
# The lookup keys are composed in:
# 60-evdev.rules
#
-# Note: The format of the "evdev:" prefix match key is a contract between the
-# rules file and the hardware data, it might change in later revisions to
-# support more or better matches, it is not necessarily expected to be a stable
-# ABI.
-#
# Match string formats:
# evdev:<modalias>
# evdev:name:<device name>:dmi:<dmi string>
diff --git a/hwdb.d/60-input-id.hwdb b/hwdb.d/60-input-id.hwdb
index 2d5681dea6..802ed9a1e7 100644
--- a/hwdb.d/60-input-id.hwdb
+++ b/hwdb.d/60-input-id.hwdb
@@ -3,11 +3,6 @@
# The lookup keys are composed in:
# 60-input-id.rules
#
-# Note: The format of the "input-id:" prefix match key is a contract between
-# the rules file and the hardware data, it might change in later revisions to
-# support more or better matches, it is not necessarily expected to be a stable
-# ABI.
-#
# Match string formats:
# id-input:modalias:<modalias>
#
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index c196a1fd64..7c830fb9b1 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -13,11 +13,6 @@
# The lookup keys are composed in:
# 60-evdev.rules
#
-# Note: The format of the "evdev:" prefix match key is a contract between the
-# rules file and the hardware data, it might change in later revisions to
-# support more or better matches, it is not necessarily expected to be a stable
-# ABI.
-#
# Supported hardware matches are:
# - Generic input devices match:
# evdev:input:bZZZZvYYYYpXXXXeWWWW-VVVV
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index ea278913bc..b54539bf53 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -3,11 +3,6 @@
# The lookup keys are composed in:
# 60-sensor.rules
#
-# Note: The format of the "sensor:" prefix match key is a contract between the
-# rules file and the hardware data, it might change in later revisions to
-# support more or better matches, it is not necessarily expected to be a stable
-# ABI.
-#
# Match string formats:
# sensor:modalias:<parent modalias pattern>:dmi:<dmi pattern>
#
diff --git a/hwdb.d/70-mouse.hwdb b/hwdb.d/70-mouse.hwdb
index 723d145e34..4084019bde 100644
--- a/hwdb.d/70-mouse.hwdb
+++ b/hwdb.d/70-mouse.hwdb
@@ -6,11 +6,6 @@
# The lookup keys are composed in:
# 70-mouse.rules
#
-# Note: The format of the "mouse:" prefix match key is a contract between the
-# rules file and the hardware data, it might change in later revisions to
-# support more or better matches, it is not necessarily expected to be a stable
-# ABI.
-#
# Match key format:
# mouse:<subsystem>:v<vid>p<pid>:name:<name>:
#
diff --git a/hwdb.d/70-pointingstick.hwdb b/hwdb.d/70-pointingstick.hwdb
index 6039119b6a..00f28c6034 100644
--- a/hwdb.d/70-pointingstick.hwdb
+++ b/hwdb.d/70-pointingstick.hwdb
@@ -7,10 +7,6 @@
# The lookup keys are composed in:
# 60-evdev.rules
#
-# Note: The format of the "evdev:" prefix match key is a contract between the
-# rules file and the hardware data, it might change in later revisions to
-# support more or better matches, it is not necessarily a stable ABI.
-#
# Supported hardware matches are:
# - Generic input devices match:
# evdev:input:bZZZZvYYYYpXXXXeWWWW-VVVV

View File

@ -0,0 +1,34 @@
From 6575ea8356de2fc9b2aeadca2a8fbe60ef8eb0cf Mon Sep 17 00:00:00 2001
From: davijosw <82056592+davijosw@users.noreply.github.com>
Date: Mon, 18 Apr 2022 08:51:45 -0300
Subject: [PATCH] hwdb: Update 60-keyboard.hwdb (#23074)
Fix Fn+F1 (toggle touchpad) that wasn't working.
Closes #23058
(cherry picked from commit 39cd62c30c2e6bb5ec13ebc1ecf0d37ed015b1b8)
Related: #2087778
---
hwdb.d/60-keyboard.hwdb | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 7c830fb9b1..adf5e9ac35 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -1931,6 +1931,13 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnViewSonic:pnVPAD10:*
KEYBOARD_KEY_db=prog1 # Home button
KEYBOARD_KEY_dd=back # Second button labeled Back
+###########################################################
+# Positivo-Vaio
+###########################################################
+# Vaio FE14
+evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJFE41F11*:pvr*:*
+ KEYBOARD_KEY_76=f21 # Fn+F1 toggle touchpad
+
###########################################################
# Other
###########################################################

View File

@ -0,0 +1,35 @@
From e964195c2b0a68a83f265f19e76a2de285bf5768 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Mon, 18 Apr 2022 20:36:39 +0200
Subject: [PATCH] hwdb: 60-keyboard: Add Acer Aspire One AO532h keymappings
Add keymappings for the Acer Aspire One AO532h netbook.
Unmap the brightnesskeys because they send duplicate key events with
the ACPI video bus key events and add a mapping for the bluetooth
on/off hotkey.
(cherry picked from commit 5e3b8aeef30f8b46669280ecffc178fa43c8bf00)
Related: #2087778
---
hwdb.d/60-keyboard.hwdb | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index adf5e9ac35..2555b8d35a 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -154,6 +154,12 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*8930:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*7750G:*
KEYBOARD_KEY_e0=!pageup
+# Acer Aspire One AO532h
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAO532h:*
+ KEYBOARD_KEY_84=bluetooth
+ KEYBOARD_KEY_ce=unknown # Brightness Up, also emitted by acpi-video, ignore
+ KEYBOARD_KEY_ef=unknown # Brightness Down, also emitted by acpi-video, ignore
+
# Predator PH 315-52
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredator*PH*315-52:*
KEYBOARD_KEY_ef=kbdillumup # Fn+F10

View File

@ -0,0 +1,24 @@
From a5b4cee7ab052df914d482aa2d0ea52c5eed8b04 Mon Sep 17 00:00:00 2001
From: Matthew Blythe <mblythester+git@gmail.com>
Date: Thu, 21 Apr 2022 00:50:13 -0600
Subject: [PATCH] hwdb 60-keyboard Add HP/Compaq KBR0133
(cherry picked from commit 6ae16e01b59e4e06ecb14db55e9f34396b398014)
Related: #2087778
---
hwdb.d/60-keyboard.hwdb | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 2555b8d35a..e1c124d8b9 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -282,6 +282,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnCompaq*:pn*Evo*N*:*
KEYBOARD_KEY_9f=homepage
evdev:input:b0003v049Fp0051*
+evdev:input:b0003v049Fp008D*
KEYBOARD_KEY_0c0011=presentation
KEYBOARD_KEY_0c0012=addressbook
KEYBOARD_KEY_0c0013=info

View File

@ -0,0 +1,34 @@
From 3be73821644f6626df5c8261b301caa84f4599a6 Mon Sep 17 00:00:00 2001
From: davijosw <82056592+davijosw@users.noreply.github.com>
Date: Thu, 21 Apr 2022 22:41:37 -0300
Subject: [PATCH] hwdb: add resolutions for the Vaio FE14 touchpad (#23136)
(cherry picked from commit 2338b8f9c56e0b14f25e8633f6e8e636e68638c8)
Related: #2087778
---
hwdb.d/60-evdev.hwdb | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/hwdb.d/60-evdev.hwdb b/hwdb.d/60-evdev.hwdb
index c97cd13557..a7fbf2ad4d 100644
--- a/hwdb.d/60-evdev.hwdb
+++ b/hwdb.d/60-evdev.hwdb
@@ -624,6 +624,17 @@ evdev:input:b0003v258Ap001E*
EVDEV_ABS_35=::15
EVDEV_ABS_36=::15
+#########################################
+# Positivo-Vaio
+#########################################
+
+# Vaio FE14
+evdev:name:SYNA3602:00 0911:5288 Touchpad:dmi:*svnPositivoBahia-VAIO:pnVJFE41F11*
+ EVDEV_ABS_00=::28
+ EVDEV_ABS_01=::27
+ EVDEV_ABS_35=::28
+ EVDEV_ABS_36=::27
+
#########################################
# Razer
#########################################

View File

@ -0,0 +1,29 @@
From 79e73005cfb020a90aaf322c1bbc7a67b1ccfd4e Mon Sep 17 00:00:00 2001
From: Benjamin Berg <bberg@redhat.com>
Date: Fri, 22 Apr 2022 15:59:34 +0200
Subject: [PATCH] hwdb: Remap micmute to f20 for ASUS WMI hotkeys
For micmute userspace handles both micmute and f20, as Xorg cannot
handle the high keycode that the micmute key has. As such, adding the
remapping means that the key will work on Xorg clients and not just when
using wayland.
(cherry picked from commit 386885c4e6e3908c26582caddb07dead12713aa1)
Related: #2087778
---
hwdb.d/60-keyboard.hwdb | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index e1c124d8b9..f78bc6d9cb 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -233,6 +233,7 @@ evdev:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
evdev:name:Eee PC WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
evdev:name:Asus Laptop extra buttons:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
KEYBOARD_KEY_6b=f21 # Touchpad Toggle
+ KEYBOARD_KEY_7c=f20 # Remap micmute to f20
# USB keyboard in Asus FX503VD
evdev:input:b0003v0B05p1869*

View File

@ -0,0 +1,27 @@
From 8f1b3e4da6e030ac04319a44dcdcc5e0d09d7ecd Mon Sep 17 00:00:00 2001
From: Lance <Gero3977@gmail.com>
Date: Fri, 22 Apr 2022 04:22:34 -0700
Subject: [PATCH] hwdb: Fix rotation for HP Pro Tablet 408 G1
(cherry picked from commit 6dc18ca5ddd996ffbf83b42cb45f23496fe38c9d)
Related: #2087778
---
hwdb.d/60-sensor.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index b54539bf53..d6a584150c 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -453,6 +453,10 @@ sensor:modalias:acpi:SMO8500*:dmi:*:svnHewlett-Packard:pnHPStream8Tablet:*
sensor:modalias:i2c:bmc150_accel:dmi:*:svnHewlett-Packard:pnHPPavilionx2Detachable:*:rn815D:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
+# HP Pro Tablet 408 G1
+sensor:modalias:i2c:bmc150_accel:dmi:*:svnHewlett-Packard:pnHPProTablet408:*:rn8048:*
+ ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1
+
#########################################
# I.T.Works
#########################################

View File

@ -0,0 +1,39 @@
From ec796ff877b7e02b7bb261558ff7f9a411548f83 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Wed, 27 Apr 2022 17:32:21 +0900
Subject: [PATCH] hwdb: add keyboard mapping for HP ProBook 11G2
Closes #23108.
(cherry picked from commit d10329a08eb06ea4348a7411092404a1d935b5a8)
Related: #2087778
---
hwdb.d/60-keyboard.hwdb | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index f78bc6d9cb..9b06bab54d 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -724,6 +724,11 @@ evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*ProBook*455*G5*:*
KEYBOARD_KEY_85=unknown # lid close; also reported via special evdev
KEYBOARD_KEY_f8=wlan # Wireless HW switch button
+# HP ProBook 11G2
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPProBook11G2*:pvr*
+ KEYBOARD_KEY_d8=!f23 # Fn+F2: touchpad off
+ KEYBOARD_KEY_d9=!f22 # Fn+F2: touchpad on
+
# HP mt44 Mobile Thin Client
evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*mt44*Mobile*Thin*Client*:*
KEYBOARD_KEY_64=calendar # Calendar icon (Fn + F12)
@@ -1692,7 +1697,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700T*:*
# Galaxy Book (2021) NP750XDA-KD4SE
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn750XDA:pvr*
- KEYBOARD_KEY_81=!esc
+ KEYBOARD_KEY_81=!esc
KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down
KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume up

View File

@ -0,0 +1,29 @@
From f644073dc9ab0213afa9b44a9378166c400b398e Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Thu, 28 Apr 2022 17:41:48 +0200
Subject: [PATCH] hwdb: make sure "ninja update-hwdb" works on f35
let's restore compatibility with pyparsing from fedora 35, i.e.:
python3-pyparsing-2.4.7-9.fc35.noarch
(cherry picked from commit 133a0003691daafaefa378f770ae01d01931787d)
Related: #2087778
---
hwdb.d/ids_parser.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hwdb.d/ids_parser.py b/hwdb.d/ids_parser.py
index 811c12559b..ed2c615508 100755
--- a/hwdb.d/ids_parser.py
+++ b/hwdb.d/ids_parser.py
@@ -20,7 +20,7 @@ COMMENTLINE = pythonStyleComment + EOL
EMPTYLINE = LineEnd()
text_eol = lambda name: Regex(r'[^\n]+')(name) + EOL
-ParserElement.set_default_whitespace_chars(' \n')
+ParserElement.setDefaultWhitespaceChars(' \n')
def klass_grammar():
klass_line = Literal('C ').suppress() + NUM2('klass') + text_eol('text')

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,40 @@
From 101c779033314c5df131d5de48778524c7c82559 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Thu, 28 Apr 2022 17:43:27 +0200
Subject: [PATCH] hwdb: run "ninja update-hwdb-autosuspend" for v251-rc2
(cherry picked from commit 27c03586ea80bc75f3f747670b4c89ce340d5345)
Related: #2087778
---
hwdb.d/60-autosuspend-fingerprint-reader.hwdb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
index b44e3e328b..9704680cd1 100644
--- a/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
+++ b/hwdb.d/60-autosuspend-fingerprint-reader.hwdb
@@ -137,6 +137,7 @@ usb:v04F3p0C32*
usb:v04F3p0C33*
usb:v04F3p0C3D*
usb:v04F3p0C42*
+usb:v04F3p0C4B*
usb:v04F3p0C4D*
usb:v04F3p0C4F*
usb:v04F3p0C63*
@@ -192,6 +193,7 @@ usb:v06CBp0103*
usb:v06CBp0123*
usb:v06CBp0126*
usb:v06CBp0129*
+usb:v06CBp0168*
ID_AUTOSUSPEND=1
ID_PERSIST=0
@@ -261,7 +263,6 @@ usb:v138Ap0091*
# Known unsupported devices
usb:v04F3p036B*
usb:v04F3p0C00*
-usb:v04F3p0C4B*
usb:v04F3p0C4C*
usb:v04F3p0C57*
usb:v04F3p0C5E*

View File

@ -0,0 +1,25 @@
From 1704b021b3d662b6f2e64208370c5a944144531d Mon Sep 17 00:00:00 2001
From: techtino <w1682146@my.westminster.ac.uk>
Date: Sat, 30 Apr 2022 14:06:55 +0100
Subject: [PATCH] Fix orientation detection for Asus Transformer T100TAF,
copied T100TA rule
(cherry picked from commit ad44259225eabeb9755440506c261c6080a2f405)
Related: #2087778
---
hwdb.d/60-sensor.hwdb | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index d6a584150c..0dfaaaf467 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -123,6 +123,7 @@ sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pnT300CHI:*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnM80TA:*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100TA:*
+sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100TAF:*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pnT200TA:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1

View File

@ -0,0 +1,25 @@
From d16426ae82574ad5312f0b3aaee076be199fe302 Mon Sep 17 00:00:00 2001
From: Alice S <quarkyalice@disroot.org>
Date: Sun, 1 May 2022 14:49:18 -0700
Subject: [PATCH] Fix orientation detection for HP Pavilion X2 10-k010nr
(cherry picked from commit 8099abee00e3c6f53c292e8f8d33fc487e71a198)
Related: #2087778
---
hwdb.d/60-sensor.hwdb | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 0dfaaaf467..b5d9eda510 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -452,6 +452,8 @@ sensor:modalias:acpi:SMO8500*:dmi:*:svnHewlett-Packard:pnHPStream8Tablet:*
# HP Pavillion X2 10-n000nd
sensor:modalias:i2c:bmc150_accel:dmi:*:svnHewlett-Packard:pnHPPavilionx2Detachable:*:rn815D:*
+# HP Pavilion X2 10-k010nr
+sensor:modalias:i2c:bmc150_accel:dmi:*:svnHewlett-Packard:pnHPPavilionx2DetachablePC10:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1
# HP Pro Tablet 408 G1

25
0310-fix-typo.patch Normal file
View File

@ -0,0 +1,25 @@
From 612140f2207d0d6bf996acdf51b444c790f9f528 Mon Sep 17 00:00:00 2001
From: Yu Watanabe <watanabe.yu+github@gmail.com>
Date: Tue, 3 May 2022 01:16:32 +0900
Subject: [PATCH] fix typo
(cherry picked from commit 77f081f3632862eaaa43bbc744c9c897b373521c)
Related: #2087778
---
hwdb.d/60-sensor.hwdb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index b5d9eda510..70759145a8 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -450,7 +450,7 @@ sensor:modalias:acpi:SMO8500*:dmi:*:svnHewlett-Packard:pnHPStream7Tablet:*
sensor:modalias:acpi:SMO8500*:dmi:*:svnHewlett-Packard:pnHPStream8Tablet:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
-# HP Pavillion X2 10-n000nd
+# HP Pavilion X2 10-n000nd
sensor:modalias:i2c:bmc150_accel:dmi:*:svnHewlett-Packard:pnHPPavilionx2Detachable:*:rn815D:*
# HP Pavilion X2 10-k010nr
sensor:modalias:i2c:bmc150_accel:dmi:*:svnHewlett-Packard:pnHPPavilionx2DetachablePC10:*

View File

@ -0,0 +1,67 @@
From 1926de432e7ac0e7eddc18e127f57809e64ec162 Mon Sep 17 00:00:00 2001
From: rodin-ia <38556724+rodin-ia@users.noreply.github.com>
Date: Tue, 3 May 2022 22:40:55 +0200
Subject: [PATCH] Adding a description of the keyboard shortcut Fn+F12 for the
HP EliteBook 845 G7 device. (#23253)
udevadm info /dev/input/event4
P: /devices/platform/i8042/serio0/input/input4/event4
N: input/event4
L: 0
S: input/by-path/platform-i8042-serio-0-event-kbd
E: DEVPATH=/devices/platform/i8042/serio0/input/input4/event4
E: DEVNAME=/dev/input/event4
E: MAJOR=13
E: MINOR=68
E: SUBSYSTEM=input
E: USEC_INITIALIZED=4165584
E: KEYBOARD_KEY_81=f20
E: KEYBOARD_KEY_89=battery
E: KEYBOARD_KEY_8a=screenlock
E: KEYBOARD_KEY_8b=camera
E: KEYBOARD_KEY_8c=media
E: KEYBOARD_KEY_8e=dvd
E: KEYBOARD_KEY_92=brightnessdown
E: KEYBOARD_KEY_97=brightnessup
E: KEYBOARD_KEY_b1=help
E: KEYBOARD_KEY_b3=unknown
E: KEYBOARD_KEY_d7=wlan
E: KEYBOARD_KEY_ee=switchvideomode
E: KEYBOARD_KEY_68=unknown
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_BUS=i8042
E: ID_SERIAL=noserial
E: ID_PATH=platform-i8042-serio-0
E: ID_PATH_TAG=platform-i8042-serio-0
E: XKBMODEL=pc105
E: XKBLAYOUT=us
E: BACKSPACE=guess
E: LIBINPUT_DEVICE_GROUP=11/1/1:isa0060/serio0
E: DEVLINKS=/dev/input/by-path/platform-i8042-serio-0-event-kbd
E: TAGS=:power-switch:
E: CURRENT_TAGS=:power-switch:
(cherry picked from commit d31b8a66d187523dab5d19a9269c9543382e021d)
Related: #2087778
---
hwdb.d/60-keyboard.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 9b06bab54d..b852f33608 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -699,6 +699,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPEliteBookFolioG1:*
KEYBOARD_KEY_64=calendar
KEYBOARD_KEY_81=f20
+# HP EliteBook 845 G7
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteBook845G7*:pvr*
+ KEYBOARD_KEY_68=unknown # Fn+F12 HP Programmable Key
+
# HP ProBook 650
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*ProBook*650*:*
KEYBOARD_KEY_f8=wlan # Wireless HW switch button

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,27 @@
From be69b550c85a1882afd01daa24407272ff891bf0 Mon Sep 17 00:00:00 2001
From: lucagoc <77584602+lucagoc@users.noreply.github.com>
Date: Sat, 7 May 2022 18:30:22 +0200
Subject: [PATCH] hwdb: add rammus accelerometer support
(cherry picked from commit 97d670a4297d4d3ffd21748b70c1a669a67d4e0f)
Related: #2087778
---
hwdb.d/60-sensor.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 70759145a8..d883db22a1 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -395,6 +395,10 @@ sensor:modalias:platform:cros-ec-accel:dmi:*svnGoogle:pnVayne*:*
sensor:modalias:platform:cros-ec-accel:dmi:*Google_Nocturne*:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
+# rammus board (Asus Chromebook Flip C433)
+sensor:modalias:platform:cros-ec-accel:dmi:*svnGoogle:pnRammus*:*
+ ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1
+
#########################################
# GP-electronic
#########################################

View File

@ -0,0 +1,56 @@
From fab29ebaa62cfae9f56a7a108b35d17e4d2a16cd Mon Sep 17 00:00:00 2001
From: Mario Limonciello <superm1@gmail.com>
Date: Mon, 9 May 2022 20:16:22 -0500
Subject: [PATCH] Add support to set autosuspend delay via hwdb
(cherry picked from commit fa9a43a6905187195c9e86a61a906647726c3e55)
Related: #2087778
---
hwdb.d/60-autosuspend.hwdb | 4 ++++
hwdb.d/parse_hwdb.py | 1 +
rules.d/60-autosuspend.rules | 4 ++++
3 files changed, 9 insertions(+)
diff --git a/hwdb.d/60-autosuspend.hwdb b/hwdb.d/60-autosuspend.hwdb
index 1b6c1e1c8f..323611d000 100644
--- a/hwdb.d/60-autosuspend.hwdb
+++ b/hwdb.d/60-autosuspend.hwdb
@@ -24,8 +24,12 @@
#
# Allowed properties are:
# ID_AUTOSUSPEND=1
+# ID_AUTOSUSPEND_DELAY_MS=####
# ID_PERSIST=0
#
+# ID_AUTOSUSPEND_DELAY_MS adjusts the delay for autosuspend to something
+# different than the kernel default of 2000ms.
+#
# ID_PERSIST=0 allows disabling the kernels USB "persist" feature, which allows
# the continued use of devices after a power loss (due to suspend). Disable it
# if the device will loose state without a USB power session and the driver
diff --git a/hwdb.d/parse_hwdb.py b/hwdb.d/parse_hwdb.py
index 93179b675c..7bad559699 100755
--- a/hwdb.d/parse_hwdb.py
+++ b/hwdb.d/parse_hwdb.py
@@ -135,6 +135,7 @@ def property_grammar():
('MOUSE_WHEEL_CLICK_COUNT', INTEGER),
('MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL', INTEGER),
('ID_AUTOSUSPEND', Or((Literal('0'), Literal('1')))),
+ ('ID_AUTOSUSPEND_DELAY_MS', INTEGER),
('ID_AV_PRODUCTION_CONTROLLER', Or((Literal('0'), Literal('1')))),
('ID_PERSIST', Or((Literal('0'), Literal('1')))),
('ID_PDA', Or((Literal('0'), Literal('1')))),
diff --git a/rules.d/60-autosuspend.rules b/rules.d/60-autosuspend.rules
index 332d052caa..ce31a920ed 100644
--- a/rules.d/60-autosuspend.rules
+++ b/rules.d/60-autosuspend.rules
@@ -15,4 +15,8 @@ ENV{ID_AUTOSUSPEND}=="1", TEST=="power/control", \
ENV{ID_PERSIST}=="0", TEST=="power/persist", \
ATTR{power/persist}="0"
+# Set up an autosuspend delay if hwdb say so
+ENV{ID_AUTOSUSPEND_DELAY_MS}!="", TEST=="power/control", \
+ ATTR{power/autosuspend_delay_ms}="$env{ID_AUTOSUSPEND_DELAY_MS}"
+
LABEL="autosuspend_end"

View File

@ -0,0 +1,47 @@
From fd6e7c8949218df6b61a5b9186aba3f9d1d91f75 Mon Sep 17 00:00:00 2001
From: Mario Limonciello <superm1@gmail.com>
Date: Mon, 9 May 2022 20:16:26 -0500
Subject: [PATCH] Set autosuspend delay for Fibocom LG850-GL
It has been shown that the autosuspend delay for this device enacted
by modem manager will race with suspend and cause system suspend
failures.
This occurred in ChromiumOS on a chromebook, but there is no reason
it won't happen in regular notebooks with the same WWAN. To avoid
the failure delay autosuspend to a frequency longer than the polling
rate used by modem manager.
Link: https://chromium-review.googlesource.com/c/chromiumos/overlays/board-overlays/+/3635003
Link: https://github.com/freedesktop/ModemManager/blob/43e76bf1bbca8207e37d3fbddfed4bb8578f0170/src/mm-iface-modem.c#L1633
(cherry picked from commit f32049eda3b06deaae3d6d7d06a9dfd16528c443)
Related: #2087778
---
hwdb.d/60-autosuspend.hwdb | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/hwdb.d/60-autosuspend.hwdb b/hwdb.d/60-autosuspend.hwdb
index 323611d000..07f7fa9344 100644
--- a/hwdb.d/60-autosuspend.hwdb
+++ b/hwdb.d/60-autosuspend.hwdb
@@ -75,13 +75,18 @@ usb:v0627p0001:*QEMU USB Tablet*
ID_AUTOSUSPEND=1
#########################################
-# Sierra Wireless
+# WWAN
#########################################
# Sierra Wireless EM7345 4G LTE modem
usb:v1199pA001*
ID_AUTOSUSPEND=1
+# Fibocom LG850-GL
+usb:v2CB7p0007*
+ ID_AUTOSUSPEND=1
+ ID_AUTOSUSPEND_DELAY_MS=7000
+
#########################################
# Wacom
#########################################

View File

@ -0,0 +1,32 @@
From bb13a4603d6e25e792836598b7f0aa21e42cd08e Mon Sep 17 00:00:00 2001
From: Yutsuten <mateus.etto@gmail.com>
Date: Tue, 10 May 2022 00:01:20 +0900
Subject: [PATCH] Add HUION Inspiroy H420X to hwdb
(cherry picked from commit ffa3da1dc20f8f3edb341a7476a82883fe40f3a6)
Related: #2087778
---
hwdb.d/60-evdev.hwdb | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/hwdb.d/60-evdev.hwdb b/hwdb.d/60-evdev.hwdb
index a7fbf2ad4d..2d1751b478 100644
--- a/hwdb.d/60-evdev.hwdb
+++ b/hwdb.d/60-evdev.hwdb
@@ -378,6 +378,15 @@ evdev:name:SynPS/2 Synaptics TouchPad:*svnHP:pnHPENVYx360Convertible15m-cn0xxx:*
EVDEV_ABS_35=1302:5640:36
EVDEV_ABS_36=1119:4741:61
+#########################################
+# HUION
+#########################################
+
+# HUION Inpiroy H420X
+evdev:input:b0003v256Cp0064*
+ EVDEV_ABS_00=::200
+ EVDEV_ABS_01=::200
+
#########################################
# Lenovo
#########################################

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,30 @@
From a80d44db309d07425e1efe06722220876caf1f8d Mon Sep 17 00:00:00 2001
From: Nikolai Grigoriev <2364632+ngrigoriev@users.noreply.github.com>
Date: Sat, 14 May 2022 17:39:02 -0400
Subject: [PATCH] hwdb: add touchpad parameters for Lenovo T15g Gen1 (#23373)
(cherry picked from commit 5a6bcbb00134e4f810bcefa0c6e1340c75e6981e)
Related: #2087778
---
hwdb.d/60-evdev.hwdb | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/hwdb.d/60-evdev.hwdb b/hwdb.d/60-evdev.hwdb
index 2d1751b478..da4eb0070a 100644
--- a/hwdb.d/60-evdev.hwdb
+++ b/hwdb.d/60-evdev.hwdb
@@ -588,6 +588,13 @@ evdev:name:SynPS/2 Synaptics TouchPad:dmi:*:svnLENOVO:*pvrThinkPadP14sGen2a:*
EVDEV_ABS_35=::44
EVDEV_ABS_36=::52
+# Lenovo ThinkPad T15g Gen1
+evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*pvrThinkPadT15gGen1**
+ EVDEV_ABS_00=::44
+ EVDEV_ABS_01=::50
+ EVDEV_ABS_35=::44
+ EVDEV_ABS_36=::50
+
# Lenovo Legion Y9000X2020
evdev:name:MSFT0001:02 04F3:304B Touchpad:dmi:*svnLENOVO:*pvrLenovoLegionY9000X2020:*
EVDEV_ABS_00=::31

View File

@ -0,0 +1,26 @@
From a3a1bb14b60c215bd39c5ffde16ffe85fcafe109 Mon Sep 17 00:00:00 2001
From: Martin <zach@b1-systems.de>
Date: Sun, 15 May 2022 00:51:59 +0200
Subject: [PATCH] hwdb: Add accel orientation for the I15-TG
Add accel orientation for the Cube iWork 10 I15-TG
(cherry picked from commit c4c336e0cdf66a4c0922f2b77a7e6e3811287114)
Related: #2087778
---
hwdb.d/60-sensor.hwdb | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index d883db22a1..3fb308f3f1 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -277,6 +277,7 @@ sensor:modalias:acpi:KIOX000A*:dmi:*:svnCube:pni18B:*
# Cube iWork 10 Flagship
sensor:modalias:acpi:BOSC0200*:dmi:*:svnCube:pnI15-TC:*
+sensor:modalias:acpi:BOSC0200*:dmi:*:svnALLDOCUBE:pnI15-TG:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
# Cube iWork 11 Stylus

View File

@ -0,0 +1,32 @@
From 8373d5f5a1c9604a1a87cdc04668000720fe3155 Mon Sep 17 00:00:00 2001
From: Nikolai Kostrigin <nickel@altlinux.org>
Date: Fri, 13 May 2022 17:13:00 +0300
Subject: [PATCH] hwdb: fix accelerometer mount matrix for Aquarius NS483
Signed-off-by: Nikolai Kostrigin <nickel@altlinux.org>
(cherry picked from commit e4bb1a07ef834f4e4eabe1fa21e838586e7dd2a3)
Related: #2087778
---
hwdb.d/60-sensor.hwdb | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 3fb308f3f1..104fe05187 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -106,6 +106,14 @@ sensor:modalias:acpi:BOSC0200*:dmi:*svn*Acer*:*pn*Spin*SP111-33:*
sensor:modalias:acpi:BOSC0200*:dmi:*svnAcer*:*pnSpinSP111-34:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
+#########################################
+# Aquarius
+#########################################
+
+# Aquarius NS483
+sensor:modalias:acpi:MXC6655*:dmi:*:svnAquarius*:pnNS483:*
+ ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
+
#########################################
# Archos
#########################################

View File

@ -0,0 +1,37 @@
From 20537f77e4b66c5e657174a4f29dfaf883b8929c Mon Sep 17 00:00:00 2001
From: Pablo Ceballos <pceballos@google.com>
Date: Fri, 13 May 2022 23:33:07 +0000
Subject: [PATCH] hwdb: Add Google Hangouts Meet speakermic
This device implements the phone mute HID usage as a toggle switch,
where 1 indicates muted, and 0 indicates unmuted. However, for a key
event 1 indicates that the key has been pressed and 0 indicates it has
been released. This mismatch causes issues, so prevent key events from
being generated for this HID usage.
(cherry picked from commit 2d251543211dae43bcf6f01ed32a3dbe8fef1ea7)
Related: #2087778
---
hwdb.d/60-keyboard.hwdb | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index b852f33608..2e4f6f4293 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -511,6 +511,14 @@ evdev:input:b0003v0458p0708*
KEYBOARD_KEY_0900fd=scale
KEYBOARD_KEY_0900fc=screenlock
+###########################################################
+# Google
+###########################################################
+
+# Google Hangouts Meet speakermic
+evdev:input:b0003v18D1p8001*
+ KEYBOARD_KEY_b002f=reserved # Disable micmute key
+
###########################################################
# Hewlett Packard
###########################################################

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,30 @@
From 45ba681f5f1a27f0b0b87bf961bce014fe73e056 Mon Sep 17 00:00:00 2001
From: Pablo Ceballos <pceballos@google.com>
Date: Thu, 26 May 2022 22:23:35 +0000
Subject: [PATCH] hwdb: Add Google Meet speakermic
It has the same issue as the Google Hangouts Meet speakermic but a
different VID/PID.
(cherry picked from commit 1a2134fb51ab1e84c213f2a309dab25da3a5369d)
Related: #2087778
---
hwdb.d/60-keyboard.hwdb | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 2e4f6f4293..7204e4ea2a 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -515,8 +515,9 @@ evdev:input:b0003v0458p0708*
# Google
###########################################################
-# Google Hangouts Meet speakermic
+# Google Hangouts Meet speakermic and Google Meet speakermic
evdev:input:b0003v18D1p8001*
+evdev:input:b0003v18D1p8007*
KEYBOARD_KEY_b002f=reserved # Disable micmute key
###########################################################

View File

@ -0,0 +1,31 @@
From 3e7648919309c1dfc677a1d383ddba0937fa14a9 Mon Sep 17 00:00:00 2001
From: Maccraft123 <maccraft123mc@gmail.com>
Date: Thu, 2 Jun 2022 20:05:22 +0200
Subject: [PATCH] hwdb: Add accel orientation quirk for the Aya Neo Next
(cherry picked from commit cc9e3a55d3d3558c309b1ebbde0f2cc26d69ee54)
Related: #2087778
---
hwdb.d/60-sensor.hwdb | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 104fe05187..3de4616f7f 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -170,6 +170,14 @@ sensor:modalias:acpi:BOSC0200*:dmi:*svn*ASUSTeK*:*pn*TP412UA:*
sensor:modalias:acpi:SMO8500*:dmi:*:svnStandard:pnWCBT1011::*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
+#########################################
+# AYANEO
+#########################################
+
+# AYANEO NEXT
+sensor:modalias:acpi:BMI0160*:dmi:*:svnAYANEO:pn*NEXT*:*
+ ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
+
#########################################
# Chuwi
#########################################

View File

@ -0,0 +1,31 @@
From b6eda5abff85cb5764900d1da944096ece4b657c Mon Sep 17 00:00:00 2001
From: Jeremy Soller <jackpot51@gmail.com>
Date: Wed, 8 Jun 2022 07:59:46 -0600
Subject: [PATCH] hwdb: Add HP Dev One
This enables the microphone mute and programmable hotkey for the HP Dev
One.
(cherry picked from commit 295e0291bff52a12d4ce7d7481c4da464002fbb6)
Related: #2087778
---
hwdb.d/60-keyboard.hwdb | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 7204e4ea2a..51c631929e 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -764,6 +764,11 @@ evdev:name:gpio-keys:phys:gpio-keys/input0:ev:23:dmi:*:svnHewlett-Packard:pnHPSt
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnOMEN*:pvr*
KEYBOARD_KEY_a1=!calc
+# HP Dev One
+evdev:atkbd:dmi:*:rvnHP:rn8A78:*
+ KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button
+ KEYBOARD_KEY_f9=prog1 # Fn+F12; Programmable hotkey
+
##########################################################
# Huawei
##########################################################

View File

@ -0,0 +1,27 @@
From 82d43b95791c5303f6e83f9de496aa377cb56702 Mon Sep 17 00:00:00 2001
From: Jan Luebbe <sho@stratum0.net>
Date: Mon, 13 Jun 2022 16:40:18 +0200
Subject: [PATCH] hwdb: analyzers: remove generic "STM Device in DFU Mode"
The USB ID v0483pDF11 is used by the ROM code in many STMicroelectronics
devices (for firmware download) and not just signal analyzers.
(cherry picked from commit 5d049ff9204b9aad48c62c296def4daa4b53005e)
Related: #2087778
---
hwdb.d/70-analyzers.hwdb | 1 -
1 file changed, 1 deletion(-)
diff --git a/hwdb.d/70-analyzers.hwdb b/hwdb.d/70-analyzers.hwdb
index 899ece3a01..0a1911507a 100644
--- a/hwdb.d/70-analyzers.hwdb
+++ b/hwdb.d/70-analyzers.hwdb
@@ -29,7 +29,6 @@ usb:v1679p3001*
# Power Delivery Analyzers
usb:v1679p6003*
-usb:v0483pDF11*
ID_SIGNAL_ANALYZER=1
###########################################################

View File

@ -0,0 +1,27 @@
From cdaf92f134f358ad681678162a4bbf50e4a6477a Mon Sep 17 00:00:00 2001
From: Akihiko Odaki <akihiko.odaki@gmail.com>
Date: Sat, 11 Jun 2022 07:58:52 +0900
Subject: [PATCH] hwdb: Add Lenovo ThinkPad C13 Yoga
(cherry picked from commit c3b8113af061eaf696fec46a1a9f38600d588f32)
Related: #2087778
---
hwdb.d/60-sensor.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 3de4616f7f..971fac84d5 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -416,6 +416,10 @@ sensor:modalias:platform:cros-ec-accel:dmi:*Google_Nocturne*:*
sensor:modalias:platform:cros-ec-accel:dmi:*svnGoogle:pnRammus*:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1
+# Lenovo ThinkPad C13 Yoga
+sensor:modalias:platform:cros-ec-accel:dmi:*svnGoogle:pnMorphius*:*
+ ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1
+
#########################################
# GP-electronic
#########################################

View File

@ -0,0 +1,24 @@
From 5278a0144c6824f430d74a60d67f61a921d464e7 Mon Sep 17 00:00:00 2001
From: Michal Stanke <michal@stanke.cz>
Date: Mon, 11 Jul 2022 14:11:12 +0200
Subject: [PATCH] Fix automatic screen rotation for Asus Transformer T100TAM
(cherry picked from commit 81706277965be18afd819f0e458baa6bf49fdc2e)
Related: #2087778
---
hwdb.d/60-sensor.hwdb | 1 +
1 file changed, 1 insertion(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 971fac84d5..b1a83e8561 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -132,6 +132,7 @@ sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pnT300CHI:*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnM80TA:*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100TA:*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100TAF:*
+sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100TAM:*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pnT200TA:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1

View File

@ -0,0 +1,29 @@
From 8e0965646e6e00945d866c1131a261f1c4cf4fca Mon Sep 17 00:00:00 2001
From: Mitchell Freiderich <MrCowKing@users.noreply.github.com>
Date: Mon, 18 Jul 2022 01:03:44 -0500
Subject: [PATCH] hwdb: Add Acer Aspire A317-33 (#24050)
Enables the power button on the Acer Aspire 3 A317-33
(cherry picked from commit 0216462f0836596fb0b2bf7b819bfd1d5b45b951)
Related: #2087778
---
hwdb.d/60-keyboard.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
index 51c631929e..095bb34cd8 100644
--- a/hwdb.d/60-keyboard.hwdb
+++ b/hwdb.d/60-keyboard.hwdb
@@ -154,6 +154,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*8930:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*7750G:*
KEYBOARD_KEY_e0=!pageup
+# Acer Aspire 3 A317-33
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspireA317-33:*
+ KEYBOARD_KEY_55=power
+
# Acer Aspire One AO532h
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAO532h:*
KEYBOARD_KEY_84=bluetooth

View File

@ -0,0 +1,28 @@
From c4ca5a1a08e052cb4c5be621a9128d3fe1bb8111 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joaqu=C3=ADn=20Ignacio=20Aramend=C3=ADa?=
<samsagax@gmail.com>
Date: Sat, 30 Jul 2022 16:56:04 -0300
Subject: [PATCH] Add ACCEL_MOUNT_MATRIX for OXP Mini
(cherry picked from commit e18569cc7271ba8b2b2be90cbb285980915cf4a2)
Related: #2087778
---
hwdb.d/60-sensor.hwdb | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index b1a83e8561..fc688ef4d3 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -767,6 +767,10 @@ sensor:modalias:acpi:BOSC0200*:dmi:*svnONE-NETBOOKTECHNOLOGYCO*:pnOne-Mix3Pro:*
sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInc.:bvr5.12:bd07/17/2019:*svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnDefaultstring:rnDefaultstring:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
+# One-Netbook OneXPlayer Mini (and maybe others)
+sensor:modalias:acpi:BMI0160*:dmi:*:rnONEXPLAYER:rvrV01:*
+ ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, -1
+
#########################################
# Peaq
#########################################

View File

@ -0,0 +1,33 @@
From 8a7803d8c57ad39d05541ce6e6c0460eeae9da01 Mon Sep 17 00:00:00 2001
From: Gio <thelookouts@hotmail.com>
Date: Wed, 3 Aug 2022 04:26:03 -0400
Subject: [PATCH] Added DERE DBook D10 (#24173)
* Added DERE DBook D10
(cherry picked from commit 2d2efed2eeebad6860e9fa4880d02286175dcffa)
Related: #2087778
---
hwdb.d/60-sensor.hwdb | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index fc688ef4d3..1c3f6b62bb 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -339,6 +339,14 @@ sensor:modalias:acpi:INVN6500*:dmi:*svnDellInc.*:pnVenue8Pro3845:*
sensor:modalias:acpi:INVN6500*:dmi:*svnDell*:pnVenue10Pro5055:*
ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, 1
+#########################################
+# DERE
+#########################################
+
+# DBook D10
+sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInternational,LLC.:bvrJP2V1.05:bd04/27/2022:br1.5:efr1.3:svnDefaultstring:*
+ ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
+
#########################################
# DEXP
#########################################

View File

@ -0,0 +1,28 @@
From e70784afa017a3d721a2fd5202ae31b12d806069 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Tue, 9 Aug 2022 18:08:24 +0200
Subject: [PATCH] hwdb: analyzers: Clarify the type of devices we want listed
(cherry picked from commit 838d0fd3d5f890e986c631eda2a4945b0c661d19)
Related: #2087778
---
hwdb.d/70-analyzers.hwdb | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/hwdb.d/70-analyzers.hwdb b/hwdb.d/70-analyzers.hwdb
index 0a1911507a..7f31ca3ea3 100644
--- a/hwdb.d/70-analyzers.hwdb
+++ b/hwdb.d/70-analyzers.hwdb
@@ -1,8 +1,9 @@
# This file is part of systemd.
#
# Database for signal analyzers (protocol analyzers, logic analyzers,
-# oscilloscopes, multimeters, bench power supplies, etc.) that should
-# be accessible to the seat owner.
+# oscilloscopes, multimeters, bench power supplies, etc.) or just
+# anything that has to do with electronics and that should be
+# accessible to the seat owner.
#
# Permitted keys:
# Specify if a device is a signal analyzer

View File

@ -0,0 +1,38 @@
From 056b1d368b14e9664b69499cbcba49bc04be7e52 Mon Sep 17 00:00:00 2001
From: Bastien Nocera <hadess@hadess.net>
Date: Thu, 21 Apr 2022 11:11:22 +0200
Subject: [PATCH] hwdb: Add Greaseweazle "drives" to the list of analyzers
They're floppy disk flux readers and writers used in digital
preservation and can be broadly considered to be "analyzers" of magnetic
fluxes.
This will have the intended side-effect of giving access to the device
to users at the console, obsoleting:
https://github.com/keirf/greaseweazle/blob/master/scripts/49-greaseweazle.rules
(cherry picked from commit 9ab755dce50bfb6f1f614f57fe3a8b65b570b5b9)
Related: #2087778
---
hwdb.d/70-analyzers.hwdb | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/hwdb.d/70-analyzers.hwdb b/hwdb.d/70-analyzers.hwdb
index 7f31ca3ea3..821ebcb1ca 100644
--- a/hwdb.d/70-analyzers.hwdb
+++ b/hwdb.d/70-analyzers.hwdb
@@ -9,6 +9,13 @@
# Specify if a device is a signal analyzer
# ID_SIGNAL_ANALYZER=1|0
+###########################################################
+# Greaseweazle
+###########################################################
+# Greaseweazle
+usb:v1209p4D69*
+ ID_SIGNAL_ANALYZER=1
+
###########################################################
# Total Phase
###########################################################

View File

@ -0,0 +1,59 @@
From f06a6ff8b3dba8ba48ca5bb6ebaa04a86b4c06d6 Mon Sep 17 00:00:00 2001
From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Date: Wed, 10 Aug 2022 22:09:32 +0300
Subject: [PATCH] hwdb: Apply existing accel orientation quirk to all
Chromebooks
The cros-ec-accel and cros-ec-accel-legacy kernel modules internally
correct for the board-specific accelerometer mounting orientations.
Their sensor outputs are in a standard reference frame consistent across
different boards, so the orientation matrix already added for a number
of devices should apply to every device using cros-ec accelerometers.
The different matrix for the 'Nocturne' board seems to be an error.
Replace the existing hwdb rules for select Chromebooks with generic
rules that apply to all Chromebooks.
(cherry picked from commit 1800f7098a3e91a1d28697ef11a15e4b4193d21f)
Related: #2087778
---
hwdb.d/60-sensor.hwdb | 22 ++++------------------
1 file changed, 4 insertions(+), 18 deletions(-)
diff --git a/hwdb.d/60-sensor.hwdb b/hwdb.d/60-sensor.hwdb
index 1c3f6b62bb..7978675943 100644
--- a/hwdb.d/60-sensor.hwdb
+++ b/hwdb.d/60-sensor.hwdb
@@ -406,27 +406,13 @@ sensor:modalias:acpi:KXCJ9000*:dmi:*:bvrZY-8-BI-PX4S70VTR400-X423B-005-D:*:rvnAM
#########################################
# Google Chromebooks
#########################################
-sensor:modalias:platform:cros-ec-accel:dmi:*:svnGOOGLE:*
- ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1
-
-# caroline board (Samsung Chromebook Pro) reports itself as svnGoogle
-sensor:modalias:platform:cros-ec-accel:dmi:*:svnGoogle:pnCaroline*:*
- ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1
-
-# Dell Inspiron Chromebook 14 2-in-1
-sensor:modalias:platform:cros-ec-accel:dmi:*svnGoogle:pnVayne*:*
- ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1
-
-# nocturne board (Google Pixel Slate)
-sensor:modalias:platform:cros-ec-accel:dmi:*Google_Nocturne*:*
- ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1
-# rammus board (Asus Chromebook Flip C433)
-sensor:modalias:platform:cros-ec-accel:dmi:*svnGoogle:pnRammus*:*
+# CrOS EC & kernel drivers internally correct for per-board sensor orientations,
+# but they return values in the inverse direction (Android & W3C specs vs HID).
+sensor:modalias:platform:cros-ec-accel:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1
-# Lenovo ThinkPad C13 Yoga
-sensor:modalias:platform:cros-ec-accel:dmi:*svnGoogle:pnMorphius*:*
+sensor:modalias:platform:cros-ec-accel-legacy:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, -1
#########################################

View File

@ -21,7 +21,7 @@
Name: systemd
Url: https://www.freedesktop.org/wiki/Software/systemd
Version: 250
Release: 8%{?dist}
Release: 9%{?dist}
# For a breakdown of the licensing, see README
License: LGPLv2+ and MIT and GPLv2+
Summary: System and Service Manager
@ -343,6 +343,75 @@ Patch0262: 0262-test-mark-partition-bootable.patch
Patch0263: 0263-test-bump-the-data-partition-size-if-we-don-t-strip-.patch
Patch0264: 0264-test-use-PBKDF2-with-capped-iterations-instead-of-Ar.patch
Patch0265: 0265-locale-drop-unnecessary-allocation.patch
Patch0266: 0266-Revert-shared-install-create-relative-symlinks-for-e.patch
Patch0267: 0267-glyph-util-add-new-glyphs-for-up-down-arrows.patch
Patch0268: 0268-tree-wide-allow-ASCII-fallback-for-in-logs.patch
Patch0269: 0269-tree-wide-allow-ASCII-fallback-for-in-logs.patch
Patch0270: 0270-core-allow-to-set-default-timeout-for-devices.patch
Patch0271: 0271-man-document-DefaultDeviceTimeoutSec.patch
Patch0272: 0272-man-update-dbus-docs.patch
Patch0273: 0273-hwdb-60-keyboard-Fix-volume-button-mapping-on-Asus-T.patch
Patch0274: 0274-hwdb-CH-Pro-Pedals-not-classified-correctly-due-to-n.patch
Patch0275: 0275-hwdb-Add-accel-orientation-quirk-for-the-GPD-Pocket-.patch
Patch0276: 0276-hostname-Allow-overriding-the-chassis-type-from-hwdb.patch
Patch0277: 0277-hwdb-Add-Microsoft-Surface-Pro-1-chassis-quirk.patch
Patch0278: 0278-hwdb-treat-logitech-craft-keyboard-as-a-keyboard.patch
Patch0279: 0279-test-frequency-in-mouse-DPI-is-optional.patch
Patch0280: 0280-hwdb-add-two-Elecom-trackballs.patch
Patch0281: 0281-hwdb-add-new-database-file-for-PDA-devices.patch
Patch0282: 0282-hwdb-add-support-for-Surface-Laptop-2-3-22303.patch
Patch0283: 0283-hwdb-add-HP-calculators.patch
Patch0284: 0284-hwbd-60-sensor.hwdb-Add-Pipo-W2Pro.patch
Patch0285: 0285-hwdb-60-keyboard-Support-the-buttons-on-CZC-P10T-tab.patch
Patch0286: 0286-hwdb-add-CST-Laser-Trackball-22583.patch
Patch0287: 0287-hwdb-Force-release-calculator-key-on-all-HP-OMEN-lap.patch
Patch0288: 0288-Add-support-for-NEC-VersaPro-VG-S.patch
Patch0289: 0289-Fix-mic-mute-on-Acer-TravelMate-B311-31-22677.patch
Patch0290: 0290-Add-AV-production-controllers-to-hwdb-and-add-uacces.patch
Patch0291: 0291-hwdb-Add-AV-production-access-to-Elgado-Stream-Deck-.patch
Patch0292: 0292-Add-HP-Elitebook-2760p-support-22766.patch
Patch0293: 0293-hwdb-Add-mic-mute-key-mapping-for-HP-Elite-x360.patch
Patch0294: 0294-hwdb-fix-parser-to-work-with-newer-pyparsing.patch
Patch0295: 0295-hwdb-update-for-v251.patch
Patch0296: 0296-hwdb-update-autosuspend-entries.patch
Patch0297: 0297-hwdb-drop-boilerplate-about-match-patterns-being-uns.patch
Patch0298: 0298-hwdb-Update-60-keyboard.hwdb-23074.patch
Patch0299: 0299-hwdb-60-keyboard-Add-Acer-Aspire-One-AO532h-keymappi.patch
Patch0300: 0300-hwdb-60-keyboard-Add-HP-Compaq-KBR0133.patch
Patch0301: 0301-hwdb-add-resolutions-for-the-Vaio-FE14-touchpad-2313.patch
Patch0302: 0302-hwdb-Remap-micmute-to-f20-for-ASUS-WMI-hotkeys.patch
Patch0303: 0303-hwdb-Fix-rotation-for-HP-Pro-Tablet-408-G1.patch
Patch0304: 0304-hwdb-add-keyboard-mapping-for-HP-ProBook-11G2.patch
Patch0305: 0305-hwdb-make-sure-ninja-update-hwdb-works-on-f35.patch
Patch0306: 0306-hwbd-run-update-hwdb-for-v251-rc2.patch
Patch0307: 0307-hwdb-run-ninja-update-hwdb-autosuspend-for-v251-rc2.patch
Patch0308: 0308-Fix-orientation-detection-for-Asus-Transformer-T100T.patch
Patch0309: 0309-Fix-orientation-detection-for-HP-Pavilion-X2-10-k010.patch
Patch0310: 0310-fix-typo.patch
Patch0311: 0311-Adding-a-description-of-the-keyboard-shortcut-Fn-F12.patch
Patch0312: 0312-hwdb-run-update-hwdb.patch
Patch0313: 0313-hwdb-add-rammus-accelerometer-support.patch
Patch0314: 0314-Add-support-to-set-autosuspend-delay-via-hwdb.patch
Patch0315: 0315-Set-autosuspend-delay-for-Fibocom-LG850-GL.patch
Patch0316: 0316-Add-HUION-Inspiroy-H420X-to-hwdb.patch
Patch0317: 0317-hwdb-run-update-hwdb-for-v251-rc3.patch
Patch0318: 0318-hwdb-add-touchpad-parameters-for-Lenovo-T15g-Gen1-23.patch
Patch0319: 0319-hwdb-Add-accel-orientation-for-the-I15-TG.patch
Patch0320: 0320-hwdb-fix-accelerometer-mount-matrix-for-Aquarius-NS4.patch
Patch0321: 0321-hwdb-Add-Google-Hangouts-Meet-speakermic.patch
Patch0322: 0322-hwdb-update-via-ninja-C-build-update-hwdb.patch
Patch0323: 0323-hwdb-Add-Google-Meet-speakermic.patch
Patch0324: 0324-hwdb-Add-accel-orientation-quirk-for-the-Aya-Neo-Nex.patch
Patch0325: 0325-hwdb-Add-HP-Dev-One.patch
Patch0326: 0326-hwdb-analyzers-remove-generic-STM-Device-in-DFU-Mode.patch
Patch0327: 0327-hwdb-Add-Lenovo-ThinkPad-C13-Yoga.patch
Patch0328: 0328-Fix-automatic-screen-rotation-for-Asus-Transformer-T.patch
Patch0329: 0329-hwdb-Add-Acer-Aspire-A317-33-24050.patch
Patch0330: 0330-Add-ACCEL_MOUNT_MATRIX-for-OXP-Mini.patch
Patch0331: 0331-Added-DERE-DBook-D10-24173.patch
Patch0332: 0332-hwdb-analyzers-Clarify-the-type-of-devices-we-want-l.patch
Patch0333: 0333-hwdb-Add-Greaseweazle-drives-to-the-list-of-analyzer.patch
Patch0334: 0334-hwdb-Apply-existing-accel-orientation-quirk-to-all-C.patch
# Downstream-only patches (90009999)
@ -1124,6 +1193,77 @@ getent passwd systemd-oom &>/dev/null || useradd -r -l -g systemd-oom -d / -s /s
%files standalone-sysusers -f .file-list-standalone-sysusers
%changelog
* Thu Aug 18 2022 systemd maintenance team <systemd-maint@redhat.com> - 250-9
- Revert "shared/install: create relative symlinks for enablement and aliasing" (#2118668)
- glyph-util: add new glyphs for up/down arrows (#2118297)
- tree-wide: allow ASCII fallback for in logs (#2118297)
- tree-wide: allow ASCII fallback for in logs (#2118297)
- core: allow to set default timeout for devices (#2116681)
- man: document DefaultDeviceTimeoutSec= (#2116681)
- man: update dbus docs (#2116681)
- hwdb: 60-keyboard: Fix volume-button mapping on Asus TF103C (#2087778)
- hwdb: CH Pro Pedals not classified correctly due to no buttons (#2087778)
- hwdb: Add accel orientation quirk for the GPD Pocket 3 (#2087778)
- hostname: Allow overriding the chassis type from hwdb (#2087778)
- hwdb: Add Microsoft Surface Pro 1 chassis quirk (#2087778)
- hwdb: treat logitech craft keyboard as a keyboard (#2087778)
- test: frequency in mouse DPI is optional (#2087778)
- hwdb: add two Elecom trackballs (#2087778)
- hwdb: add new database file for PDA devices (#2087778)
- hwdb: add support for Surface Laptop 2 & 3 (#22303) (#2087778)
- hwdb: add HP calculators (#2087778)
- hwbd: 60-sensor.hwdb: Add Pipo W2Pro (#2087778)
- hwdb: 60-keyboard: Support the buttons on CZC P10T tablet (#2087778)
- hwdb: add CST Laser Trackball (#22583) (#2087778)
- hwdb: Force release calculator key on all HP OMEN laptops (#2087778)
- Add support for NEC VersaPro VG-S (#2087778)
- Fix mic mute on Acer TravelMate B311-31 (#22677) (#2087778)
- Add AV production controllers to hwdb and add uaccess (#2087778)
- hwdb: Add AV production access to Elgado Stream Deck devices (#2087778)
- Add HP Elitebook 2760p support (#22766) (#2087778)
- hwdb: Add mic mute key mapping for HP Elite x360 (#2087778)
- hwdb: fix parser to work with newer pyparsing (#2087778)
- hwdb: update for v251 (#2087778)
- hwdb: update autosuspend entries (#2087778)
- hwdb: drop boilerplate about match patterns being unstable (#2087778)
- hwdb: Update 60-keyboard.hwdb (#23074) (#2087778)
- hwdb: 60-keyboard: Add Acer Aspire One AO532h keymappings (#2087778)
- hwdb 60-keyboard Add HP/Compaq KBR0133 (#2087778)
- hwdb: add resolutions for the Vaio FE14 touchpad (#23136) (#2087778)
- hwdb: Remap micmute to f20 for ASUS WMI hotkeys (#2087778)
- hwdb: Fix rotation for HP Pro Tablet 408 G1 (#2087778)
- hwdb: add keyboard mapping for HP ProBook 11G2 (#2087778)
- hwdb: make sure "ninja update-hwdb" works on f35 (#2087778)
- hwbd: run "update-hwdb" for v251-rc2 (#2087778)
- hwdb: run "ninja update-hwdb-autosuspend" for v251-rc2 (#2087778)
- Fix orientation detection for Asus Transformer T100TAF, copied T100TA rule (#2087778)
- Fix orientation detection for HP Pavilion X2 10-k010nr (#2087778)
- fix typo (#2087778)
- Adding a description of the keyboard shortcut Fn+F12 for the HP EliteBook 845 G7 device. (#23253) (#2087778)
- hwdb: run "update-hwdb" (#2087778)
- hwdb: add rammus accelerometer support (#2087778)
- Add support to set autosuspend delay via hwdb (#2087778)
- Set autosuspend delay for Fibocom LG850-GL (#2087778)
- Add HUION Inspiroy H420X to hwdb (#2087778)
- hwdb: run 'update-hwdb' for v251-rc3 (#2087778)
- hwdb: add touchpad parameters for Lenovo T15g Gen1 (#23373) (#2087778)
- hwdb: Add accel orientation for the I15-TG (#2087778)
- hwdb: fix accelerometer mount matrix for Aquarius NS483 (#2087778)
- hwdb: Add Google Hangouts Meet speakermic (#2087778)
- hwdb: update via ninja -C build update-hwdb (#2087778)
- hwdb: Add Google Meet speakermic (#2087778)
- hwdb: Add accel orientation quirk for the Aya Neo Next (#2087778)
- hwdb: Add HP Dev One (#2087778)
- hwdb: analyzers: remove generic "STM Device in DFU Mode" (#2087778)
- hwdb: Add Lenovo ThinkPad C13 Yoga (#2087778)
- Fix automatic screen rotation for Asus Transformer T100TAM (#2087778)
- hwdb: Add Acer Aspire A317-33 (#24050) (#2087778)
- Add ACCEL_MOUNT_MATRIX for OXP Mini (#2087778)
- Added DERE DBook D10 (#24173) (#2087778)
- hwdb: analyzers: Clarify the type of devices we want listed (#2087778)
- hwdb: Add Greaseweazle "drives" to the list of analyzers (#2087778)
- hwdb: Apply existing accel orientation quirk to all Chromebooks (#2087778)
* Wed Jul 20 2022 systemd maintenance team <systemd-maint@redhat.com> - 250-8
- core: shorten long unit names that are based on paths and append path hash at the end (#2083493)
- tests: add test case for long unit names (#2083493)