Summary: | udiskctl can't connect to dbus after it moved from /var/run/ to /run/ | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Ivan Zakharyaschev <imz> |
Component: | udisks2 | Assignee: | Yuri N. Sedunov <aris> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P3 | CC: | aen, aris, evg, sem, shaba, shrek |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux | ||
Bug Depends on: | 32358 | ||
Bug Blocks: | 30940, 32322, 32659 |
Description
Ivan Zakharyaschev
2016-08-28 14:47:11 MSK
Workaround: rm -rf /var/run/dbus ln -s /run/dbus -T /var/run/dbus This is also a possible alternative solution: 4. make such a symlink in dbus package (but not if /var/run/ already points to /run/ ; and special care must be taken for removing the old content in /var/run/dbus) 5. make a symlink /var/run pointing to /run in filesystem package (not good for rpm, because a directory is replaced by a symlink). If any of the solutions is implemented, it would be nice reflect this in the dependencies of dbus package (so that installing it would guarantee that it works with other programs, e.g., Requires: udev >= X-altY) $ cat /lib/systemd/system/var-run.mount # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. [Unit] Description=Runtime Directory Before=local-fs.target # skip mounting if the directory does not exist or is a symlink ConditionPathIsDirectory=/var/run ConditionPathIsSymbolicLink=!/var/run [Mount] What=/run Where=/var/run Type=bind Options=bind Please, see bug #32358. I am know, is not good for rpm, but i think is best for system. В задании №171245 собирается glib2-2.50.1-alt2 c патчем. Проверьте. $ cat glib-2.50.1-alt-dbus_socket_path.patch --- gio/gdbusaddress.c~ 2016-10-22 18:04:51.465645168 +0300 +++ gio/gdbusaddress.c 2016-10-22 18:05:09.486853454 +0300 @@ -1601,7 +1601,7 @@ ret = g_strdup (g_getenv ("DBUS_SYSTEM_BUS_ADDRESS")); if (ret == NULL) { - ret = g_strdup ("unix:path=/var/run/dbus/system_bus_socket"); + ret = g_strdup ("unix:path=/run/dbus/system_bus_socket"); } break; 2imz@: проверьте, пожалуйста. glib2-2.50.1-alt2 -> sisyphus: * Sat Oct 22 2016 Yuri N. Sedunov <aris@altlinux> 2.50.1-alt2 - gio/gdbusaddress.c: s|var/run/dbus|/run/dbus| (ALT #32444, #32642) (In reply to comment #4) > В задании №171245 собирается glib2-2.50.1-alt2 c патчем. Проверьте. Описанная проблема ушла. > $ cat glib-2.50.1-alt-dbus_socket_path.patch > --- gio/gdbusaddress.c~ 2016-10-22 18:04:51.465645168 +0300 > +++ gio/gdbusaddress.c 2016-10-22 18:05:09.486853454 +0300 > @@ -1601,7 +1601,7 @@ > ret = g_strdup (g_getenv ("DBUS_SYSTEM_BUS_ADDRESS")); > if (ret == NULL) > { > - ret = g_strdup ("unix:path=/var/run/dbus/system_bus_socket"); > + ret = g_strdup ("unix:path=/run/dbus/system_bus_socket"); > } > break; А не добавить ли в пакет какой-нибудь Conflicts: dbus < 1.10.8-alt1 чтобы не разъезжалось при обновлениях (отдельных пакетов; а также как гарантия того, что при всяких копированиях отдельных пакетов в бранчи не случится несоответствие). Пакет dbus при установке должен пересоздавать сокет на новом месте, если это не так. |