diff options
-rw-r--r-- | NEWS | 61 | ||||
-rw-r--r-- | hwdb/20-bluetooth-vendor-product.hwdb | 33 | ||||
-rw-r--r-- | hwdb/70-mouse.hwdb | 9 | ||||
-rw-r--r-- | src/basic/cgroup-util.c | 7 | ||||
-rw-r--r-- | src/core/cgroup.c | 2 | ||||
-rw-r--r-- | src/core/scope.c | 2 | ||||
-rw-r--r-- | src/libsystemd/sd-bus/test-bus-creds.c | 6 | ||||
-rw-r--r-- | src/login/logind-dbus.c | 21 | ||||
-rw-r--r-- | src/network/networkd-dhcp4.c | 6 | ||||
-rw-r--r-- | src/network/networkd-manager.c | 6 | ||||
-rw-r--r-- | src/test/test-engine.c | 2 | ||||
-rw-r--r-- | src/test/test-path.c | 2 | ||||
-rw-r--r-- | src/test/test-sched-prio.c | 2 | ||||
-rw-r--r-- | src/udev/udevd.c | 2 | ||||
-rw-r--r-- | units/systemd-bus-proxyd.service.m4.in | 5 |
15 files changed, 140 insertions, 26 deletions
@@ -1,5 +1,66 @@ systemd System and Service Manager +CHANGES WITH 226: + + * The DHCP implementation of systemd-networkd gained a set of new + features: + + - Server and client now support transmission and reception of + timezone information. It can be configured via the newly introduced + network options 'DHCP.UseTimezone=', 'DHCPServer.EmitTimezone=', + and 'DHCPServer.Timezone='. + Transmission of timezone information is enabled for containers by + default now. Furthermore, if systemd-timesyncd is running, it will + be updated with the received information. + + - The DHCP server now supports emitting DNS and NTP information. It + can be enabled and configured via 'EmitDNS=', 'DNS=', 'EmitNTP=', + and 'NTP='. + If transmission of DNS and NTP information is enabled, but no + specific data-set is configured, the uplink information is used. + + - Lease timeouts can now be configured via 'MaxLeaseTimeSec=' and + 'DefaultLeaseTimeSec='. + + - The DHCP server now supports improved predictability of leases. + Clients are more likely to get the same lease information back, + even if the server loses state. + + - The DHCP server supports two new configuration options to specify + the lease pool, 'PoolOffset=' and 'PoolSize='. + + * The encapsulation limit of tunnels in systemd-networkd can now be + configured via 'EncapsulationLimit='. It allows modifying the maximum + additional levels of encapsulation that are permitted to be prepended + to a packet. + + * systemd now supports the concept of user-buses over session-buses, if + used with dbus-1.10 (and enabled via dbus --enable-user-session). + + * systemd-networkd now supports predictable interface names for virtio + devices. + + * systemd now optionally supports the unified cgroup hierarchy. If + enabled via the kernel command-line option + 'systemd.unified_cgroup_hierarchy=1', systemd will try to mount the + unified cgroup hierarchy directly on /sys/fs/cgroup. If not enabled, + or not available, systemd will fall back to legacy cgroups. + Host system and containers can mix and match legacy and unified + hierarchies as they wish. By default, nspawn will use the same + hierarchy as the host. + Please note that the unified hierarchy is an experimental kernel + feature and is likely to change in one of the next kernel releases. + Therefore, it should not be enabled by default. + + Contributions from: Cristian Rodríguez, Daniel Mack, David Herrmann, + Eugene Yakubovich, Evgeny Vereshchagin, Filipe Brandenburger, Jan + Alexander Steffens (heftig), Jan Synacek, Kay Sievers, Lennart + Poettering, Mangix, Marcel Holtmann, Martin Pitt, Michal Sekletar, Peter + Hutterer, Piotr Drąg, reverendhomer, Robin Hack, Susant Sahani, Sylvain + Pasche, Thomas Hindoe Paaboel Andersen, Tom Gundersen + + -- Berlin, 2015-09-XX + CHANGES WITH 225: * machinectl gained a new verb 'shell' which opens a fresh shell on the diff --git a/hwdb/20-bluetooth-vendor-product.hwdb b/hwdb/20-bluetooth-vendor-product.hwdb index 5835d9a103..5a7f28729d 100644 --- a/hwdb/20-bluetooth-vendor-product.hwdb +++ b/hwdb/20-bluetooth-vendor-product.hwdb @@ -1898,3 +1898,36 @@ bluetooth:v0275* bluetooth:v0276* ID_VENDOR_FROM_DATABASE=E.G.O. Elektro-Gertebau GmbH + +bluetooth:v0277* + ID_VENDOR_FROM_DATABASE=bewhere inc + +bluetooth:v0278* + ID_VENDOR_FROM_DATABASE=Johnson Outdoors Inc + +bluetooth:v0279* + ID_VENDOR_FROM_DATABASE=steute Schaltgerate GmbH & Co. KG + +bluetooth:v027A* + ID_VENDOR_FROM_DATABASE=Ekomini inc. + +bluetooth:v027B* + ID_VENDOR_FROM_DATABASE=DEFA AS + +bluetooth:v027C* + ID_VENDOR_FROM_DATABASE=Aseptika Ltd + +bluetooth:v027D* + ID_VENDOR_FROM_DATABASE=HUAWEI Technologies Co., Ltd. ( 华为技术有限公司 ) + +bluetooth:v027E* + ID_VENDOR_FROM_DATABASE=HabitAware, LLC + +bluetooth:v027F* + ID_VENDOR_FROM_DATABASE=ruwido austria gmbh + +bluetooth:v0280* + ID_VENDOR_FROM_DATABASE=ITEC corporation + +bluetooth:v0281* + ID_VENDOR_FROM_DATABASE=StoneL diff --git a/hwdb/70-mouse.hwdb b/hwdb/70-mouse.hwdb index 781a7ec240..5a9034040c 100644 --- a/hwdb/70-mouse.hwdb +++ b/hwdb/70-mouse.hwdb @@ -401,6 +401,15 @@ mouse:bluetooth:v045ep07f3:name:Arc Touch Mouse SE: MOUSE_DPI=1000@2000 ########################################## +# Mionix +########################################## + +#Mionix Avior 7000 +mouse:usb:v22d4p1308:name:Laview Technology Mionix Avior 7000: + MOUSE_DPI=400@1000 *1600@1000 7000@1000 + MOUSE_WHEEL_CLICK_ANGLE=15 + +########################################## # Oklick ########################################## diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c index 218de0b376..0ebe570bb8 100644 --- a/src/basic/cgroup-util.c +++ b/src/basic/cgroup-util.c @@ -540,10 +540,7 @@ int cg_get_path(const char *controller, const char *path, const char *suffix, ch else { const char *dn; - if (controller) - dn = controller_to_dirname(controller); - else - dn = NULL; + dn = controller_to_dirname(controller); r = join_path_legacy(dn, path, suffix, fs); } @@ -1913,7 +1910,7 @@ int cg_attach_many_everywhere(CGroupMask supported, const char *path, Set* pids, } int cg_migrate_everywhere(CGroupMask supported, const char *from, const char *to, cg_migrate_callback_t to_callback, void *userdata) { - CGroupController c; + CGroupController c; int r, unified; if (!path_equal(from, to)) { diff --git a/src/core/cgroup.c b/src/core/cgroup.c index a70b4d33ae..1e78f871c7 100644 --- a/src/core/cgroup.c +++ b/src/core/cgroup.c @@ -1076,7 +1076,7 @@ int unit_search_main_pid(Unit *u, pid_t *ret) { } static int unit_watch_pids_in_path(Unit *u, const char *path) { - _cleanup_closedir_ DIR *d = NULL; + _cleanup_closedir_ DIR *d = NULL; _cleanup_fclose_ FILE *f = NULL; int ret = 0, r; diff --git a/src/core/scope.c b/src/core/scope.c index 44cd324f58..35cf0621be 100644 --- a/src/core/scope.c +++ b/src/core/scope.c @@ -138,7 +138,7 @@ static int scope_verify(Scope *s) { return 0; if (set_isempty(UNIT(s)->pids) && - !manager_is_reloading_or_reexecuting(UNIT(s)->manager) <= 0 && + !manager_is_reloading_or_reexecuting(UNIT(s)->manager) && !unit_has_name(UNIT(s), SPECIAL_INIT_SCOPE)) { log_unit_error(UNIT(s), "Scope has no PIDs. Refusing."); return -EINVAL; diff --git a/src/libsystemd/sd-bus/test-bus-creds.c b/src/libsystemd/sd-bus/test-bus-creds.c index edd5033db2..580117165a 100644 --- a/src/libsystemd/sd-bus/test-bus-creds.c +++ b/src/libsystemd/sd-bus/test-bus-creds.c @@ -22,11 +22,17 @@ #include "sd-bus.h" #include "bus-dump.h" #include "bus-util.h" +#include "cgroup-util.h" int main(int argc, char *argv[]) { _cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL; int r; + if (cg_unified() == -ENOEXEC) { + puts("Skipping test: /sys/fs/cgroup/ not available"); + return EXIT_TEST_SKIP; + } + r = sd_bus_creds_new_from_pid(&creds, 0, _SD_BUS_CREDS_ALL); assert_se(r >= 0); diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c index 5b2b36b9c0..7cc68d4865 100644 --- a/src/login/logind-dbus.c +++ b/src/login/logind-dbus.c @@ -1339,8 +1339,7 @@ static int bus_manager_log_shutdown( InhibitWhat w, const char *unit_name) { - const char *p; - const char *q; + const char *p, *q; assert(m); assert(unit_name); @@ -1365,8 +1364,8 @@ static int bus_manager_log_shutdown( q = NULL; } - if (m->wall_message) - p = strjoina(p, " (", m->wall_message, ")", NULL); + if (!isempty(m->wall_message)) + p = strjoina(p, " (", m->wall_message, ")"); return log_struct(LOG_NOTICE, LOG_MESSAGE_ID(SD_MESSAGE_SHUTDOWN), @@ -2294,7 +2293,7 @@ static int method_set_wall_message( int r; Manager *m = userdata; char *wall_message; - bool enable_wall_messages; + int enable_wall_messages; assert(message); assert(m); @@ -2310,15 +2309,19 @@ static int method_set_wall_message( UID_INVALID, &m->polkit_registry, error); - if (r < 0) return r; if (r == 0) return 1; /* Will call us back */ - r = free_and_strdup(&m->wall_message, wall_message); - if (r < 0) - return log_oom(); + if (isempty(wall_message)) + m->wall_message = mfree(m->wall_message); + else { + r = free_and_strdup(&m->wall_message, wall_message); + if (r < 0) + return log_oom(); + } + m->enable_wall_messages = enable_wall_messages; return sd_bus_reply_method_return(message, NULL); diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c index 36601367bf..4ffb01382f 100644 --- a/src/network/networkd-dhcp4.c +++ b/src/network/networkd-dhcp4.c @@ -60,7 +60,7 @@ static int link_set_dhcp_routes(Link *link) { assert(link->dhcp_lease); r = sd_dhcp_lease_get_router(link->dhcp_lease, &gateway); - if (r < 0 && r != -ENOENT) + if (r < 0 && r != -ENODATA) return log_link_warning_errno(link, r, "DHCP error: could not get gateway: %m"); if (r >= 0) { @@ -112,7 +112,7 @@ static int link_set_dhcp_routes(Link *link) { } n = sd_dhcp_lease_get_routes(link->dhcp_lease, &static_routes); - if (n == -ENOENT) + if (n == -ENODATA) return 0; if (n < 0) return log_link_warning_errno(link, n, "DHCP error: could not get routes: %m"); @@ -378,7 +378,7 @@ static int dhcp_lease_acquired(sd_dhcp_client *client, Link *link) { prefixlen = in_addr_netmask_to_prefixlen(&netmask); r = sd_dhcp_lease_get_router(lease, &gateway); - if (r < 0 && r != -ENOENT) + if (r < 0 && r != -ENODATA) return log_link_error_errno(link, r, "DHCP error: Could not get gateway: %m"); if (r >= 0) diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c index 16f732f244..92b607297d 100644 --- a/src/network/networkd-manager.c +++ b/src/network/networkd-manager.c @@ -757,7 +757,7 @@ int manager_save(Manager *m) { r = set_put_in_addrv(dns, addresses, r); if (r < 0) return r; - } else if (r < 0 && r != -ENOENT) + } else if (r < 0 && r != -ENODATA) return r; } @@ -769,7 +769,7 @@ int manager_save(Manager *m) { r = set_put_in_addrv(ntp, addresses, r); if (r < 0) return r; - } else if (r < 0 && r != -ENOENT) + } else if (r < 0 && r != -ENODATA) return r; } @@ -781,7 +781,7 @@ int manager_save(Manager *m) { r = set_put_strdup(domains, domainname); if (r < 0) return r; - } else if (r != -ENOENT) + } else if (r != -ENODATA) return r; } } diff --git a/src/test/test-engine.c b/src/test/test-engine.c index a7ab21a415..6596069ade 100644 --- a/src/test/test-engine.c +++ b/src/test/test-engine.c @@ -38,7 +38,7 @@ int main(int argc, char *argv[]) { /* prepare the test */ assert_se(set_unit_path(TEST_DIR) >= 0); r = manager_new(MANAGER_USER, true, &m); - if (IN_SET(r, -EPERM, -EACCES, -EADDRINUSE, -EHOSTDOWN, -ENOENT)) { + if (IN_SET(r, -EPERM, -EACCES, -EADDRINUSE, -EHOSTDOWN, -ENOENT, -ENOEXEC)) { printf("Skipping test: manager_new: %s", strerror(-r)); return EXIT_TEST_SKIP; } diff --git a/src/test/test-path.c b/src/test/test-path.c index 5d190378f1..676c9f1793 100644 --- a/src/test/test-path.c +++ b/src/test/test-path.c @@ -40,7 +40,7 @@ static int setup_test(Manager **m) { assert_se(m); r = manager_new(MANAGER_USER, true, &tmp); - if (IN_SET(r, -EPERM, -EACCES, -EADDRINUSE, -EHOSTDOWN, -ENOENT)) { + if (IN_SET(r, -EPERM, -EACCES, -EADDRINUSE, -EHOSTDOWN, -ENOENT, -ENOEXEC)) { printf("Skipping test: manager_new: %s", strerror(-r)); return -EXIT_TEST_SKIP; } diff --git a/src/test/test-sched-prio.c b/src/test/test-sched-prio.c index f915539e00..ebc9110c4d 100644 --- a/src/test/test-sched-prio.c +++ b/src/test/test-sched-prio.c @@ -35,7 +35,7 @@ int main(int argc, char *argv[]) { /* prepare the test */ assert_se(set_unit_path(TEST_DIR) >= 0); r = manager_new(MANAGER_USER, true, &m); - if (IN_SET(r, -EPERM, -EACCES, -EADDRINUSE, -EHOSTDOWN, -ENOENT)) { + if (IN_SET(r, -EPERM, -EACCES, -EADDRINUSE, -EHOSTDOWN, -ENOENT, -ENOEXEC)) { printf("Skipping test: manager_new: %s", strerror(-r)); return EXIT_TEST_SKIP; } diff --git a/src/udev/udevd.c b/src/udev/udevd.c index 28ac44fb8e..f354ced2e2 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -1706,7 +1706,7 @@ int main(int argc, char *argv[]) { by PID1. otherwise we are not guaranteed to have a dedicated cgroup */ r = cg_pid_get_path(SYSTEMD_CGROUP_CONTROLLER, 0, &cgroup); if (r < 0) { - if (r == -ENOENT) + if (r == -ENOENT || r == -ENOEXEC) log_debug_errno(r, "did not find dedicated cgroup: %m"); else log_warning_errno(r, "failed to get cgroup: %m"); diff --git a/units/systemd-bus-proxyd.service.m4.in b/units/systemd-bus-proxyd.service.m4.in index 64f5ac7d17..e75cdb1a59 100644 --- a/units/systemd-bus-proxyd.service.m4.in +++ b/units/systemd-bus-proxyd.service.m4.in @@ -18,3 +18,8 @@ PrivateDevices=yes PrivateNetwork=yes ProtectSystem=full ProtectHome=yes + +# The proxy manages connections of all users, so it needs an elevated file +# limit. It does proper per-user accounting (indirectly via kdbus), therefore, +# the effective per-user limits stay the same. +LimitNOFILE=16384 |