forked from pool/systemd
- udev: path_id - handle Hyper-V devices
add: 1008-udev-path_id-handle-Hyper-V-devices.patch - keymap: Update the list of Samsung Series 9 models add: 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch - keymap: Add Samsung 700T add: 1010-keymap-Add-Samsung-700T.patch - libudev: avoid leak during realloc failure add: 1011-libudev-avoid-leak-during-realloc-failure.patch - libudev: do not resolve $attr{device} symlinks add: 1012-libudev-do-not-resolve-attr-device-symlinks.patch - libudev: validate 'udev' argument to udev_enumerate_new() add: 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch - udev: fix whitespace add: 1014-udev-fix-whitespace.patch - udev: properly handle symlink removal by 'change' event add: 1015-udev-properly-handle-symlink-removal-by-change-event.patch - udev: builtin - do not fail builtin initialization if one of them returns an error add: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch - udev: use usec_t and now() add: 1017-udev-use-usec_t-and-now.patch closing an non-existent dbus connection and getting assertion failures. - udev: path_id - handle Hyper-V devices add: 1008-udev-path_id-handle-Hyper-V-devices.patch - keymap: Update the list of Samsung Series 9 models add: 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch - keymap: Add Samsung 700T add: 1010-keymap-Add-Samsung-700T.patch OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=327
This commit is contained in:
parent
0227bf9cb1
commit
039f4cc39b
@ -6,11 +6,11 @@ Subject: [PATCH] Add bootsplash handling for password dialogs
|
|||||||
openSUSE uses bootsplash.org, so add a crude handling for setting the
|
openSUSE uses bootsplash.org, so add a crude handling for setting the
|
||||||
splash screen to verbose when a password is asked...
|
splash screen to verbose when a password is asked...
|
||||||
---
|
---
|
||||||
diff --git a/src/ask-password-api.c b/src/ask-password-api.c
|
Index: systemd-195/src/shared/ask-password-api.c
|
||||||
index da967ab..b89bcea 100644
|
===================================================================
|
||||||
--- a/src/shared/ask-password-api.c
|
--- systemd-195.orig/src/shared/ask-password-api.c
|
||||||
+++ b/src/shared/ask-password-api.c
|
+++ systemd-195/src/shared/ask-password-api.c
|
||||||
@@ -62,6 +62,9 @@ int ask_password_tty(
|
@@ -63,6 +63,9 @@ int ask_password_tty(
|
||||||
bool reset_tty = false;
|
bool reset_tty = false;
|
||||||
bool silent_mode = false;
|
bool silent_mode = false;
|
||||||
bool dirty = false;
|
bool dirty = false;
|
||||||
@ -20,7 +20,7 @@ index da967ab..b89bcea 100644
|
|||||||
enum {
|
enum {
|
||||||
POLL_TTY,
|
POLL_TTY,
|
||||||
POLL_INOTIFY
|
POLL_INOTIFY
|
||||||
@@ -105,6 +108,19 @@ int ask_password_tty(
|
@@ -106,6 +109,19 @@ int ask_password_tty(
|
||||||
}
|
}
|
||||||
|
|
||||||
reset_tty = true;
|
reset_tty = true;
|
||||||
@ -40,7 +40,7 @@ index da967ab..b89bcea 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
zero(pollfd);
|
zero(pollfd);
|
||||||
@@ -239,6 +255,12 @@ finish:
|
@@ -240,6 +256,12 @@ finish:
|
||||||
close_nointr_nofail(ttyfd);
|
close_nointr_nofail(ttyfd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,10 +7,10 @@ Subject: [PATCH] handle disable_caplock and compose_table and kbd_rate
|
|||||||
src/vconsole-setup.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++++-
|
src/vconsole-setup.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||||
1 files changed, 121 insertions(+), 3 deletions(-)
|
1 files changed, 121 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
Index: systemd-189/src/vconsole/vconsole-setup.c
|
Index: systemd-195/src/vconsole/vconsole-setup.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-189.orig/src/vconsole/vconsole-setup.c
|
--- systemd-195.orig/src/vconsole/vconsole-setup.c
|
||||||
+++ systemd-189/src/vconsole/vconsole-setup.c
|
+++ systemd-195/src/vconsole/vconsole-setup.c
|
||||||
@@ -40,6 +40,7 @@
|
@@ -40,6 +40,7 @@
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "macro.h"
|
#include "macro.h"
|
||||||
@ -158,7 +158,7 @@ Index: systemd-189/src/vconsole/vconsole-setup.c
|
|||||||
int r = EXIT_FAILURE;
|
int r = EXIT_FAILURE;
|
||||||
pid_t font_pid = 0, keymap_pid = 0;
|
pid_t font_pid = 0, keymap_pid = 0;
|
||||||
|
|
||||||
@@ -281,10 +387,15 @@ int main(int argc, char **argv) {
|
@@ -273,10 +379,15 @@ int main(int argc, char **argv) {
|
||||||
free(vc_keymap);
|
free(vc_keymap);
|
||||||
vc_keymap = t;
|
vc_keymap = t;
|
||||||
}
|
}
|
||||||
@ -174,7 +174,7 @@ Index: systemd-189/src/vconsole/vconsole-setup.c
|
|||||||
NULL);
|
NULL);
|
||||||
if (r < 0 && r != -ENOENT)
|
if (r < 0 && r != -ENOENT)
|
||||||
log_warning("Failed to read /etc/sysconfig/keyboard: %s", strerror(-r));
|
log_warning("Failed to read /etc/sysconfig/keyboard: %s", strerror(-r));
|
||||||
@@ -443,7 +554,11 @@ int main(int argc, char **argv) {
|
@@ -435,7 +546,11 @@ int main(int argc, char **argv) {
|
||||||
disable_utf8(fd);
|
disable_utf8(fd);
|
||||||
|
|
||||||
|
|
||||||
@ -187,7 +187,7 @@ Index: systemd-189/src/vconsole/vconsole-setup.c
|
|||||||
load_font(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0)
|
load_font(vc, vc_font, vc_font_map, vc_font_unimap, &font_pid) >= 0)
|
||||||
r = EXIT_SUCCESS;
|
r = EXIT_SUCCESS;
|
||||||
|
|
||||||
@@ -451,6 +566,14 @@ finish:
|
@@ -443,6 +558,14 @@ finish:
|
||||||
if (keymap_pid > 0)
|
if (keymap_pid > 0)
|
||||||
wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid);
|
wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid);
|
||||||
|
|
||||||
@ -202,7 +202,7 @@ Index: systemd-189/src/vconsole/vconsole-setup.c
|
|||||||
if (font_pid > 0)
|
if (font_pid > 0)
|
||||||
wait_for_terminate_and_warn(KBD_SETFONT, font_pid);
|
wait_for_terminate_and_warn(KBD_SETFONT, font_pid);
|
||||||
|
|
||||||
@@ -458,6 +581,12 @@ finish:
|
@@ -450,6 +573,12 @@ finish:
|
||||||
free(vc_font);
|
free(vc_font);
|
||||||
free(vc_font_map);
|
free(vc_font_map);
|
||||||
free(vc_font_unimap);
|
free(vc_font_unimap);
|
||||||
|
@ -12,11 +12,11 @@ Fixes https://bugzilla.novell.com/show_bug.cgi?id=721426
|
|||||||
src/service.c | 8 +++++++-
|
src/service.c | 8 +++++++-
|
||||||
1 files changed, 7 insertions(+), 1 deletions(-)
|
1 files changed, 7 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
Index: systemd-37/src/service.c
|
Index: systemd-195/src/core/service.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-37.orig/src/core/service.c
|
--- systemd-195.orig/src/core/service.c
|
||||||
+++ systemd-37/src/core/service.c
|
+++ systemd-195/src/core/service.c
|
||||||
@@ -2014,8 +2014,13 @@ static void service_enter_running(Servic
|
@@ -2136,8 +2136,13 @@ static void service_enter_running(Servic
|
||||||
cgroup_ok = cgroup_good(s);
|
cgroup_ok = cgroup_good(s);
|
||||||
|
|
||||||
if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) &&
|
if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) &&
|
||||||
|
@ -20,10 +20,10 @@ regarding this issue.
|
|||||||
src/udevd.c | 13 ++++++++++---
|
src/udevd.c | 13 ++++++++++---
|
||||||
4 files changed, 32 insertions(+), 3 deletions(-)
|
4 files changed, 32 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
Index: systemd-190/src/libudev/libudev-device.c
|
Index: systemd-195/src/libudev/libudev-device.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-190.orig/src/libudev/libudev-device.c
|
--- systemd-195.orig/src/libudev/libudev-device.c
|
||||||
+++ systemd-190/src/libudev/libudev-device.c
|
+++ systemd-195/src/libudev/libudev-device.c
|
||||||
@@ -68,6 +68,7 @@ struct udev_device {
|
@@ -68,6 +68,7 @@ struct udev_device {
|
||||||
struct udev_list tags_list;
|
struct udev_list tags_list;
|
||||||
unsigned long long int seqnum;
|
unsigned long long int seqnum;
|
||||||
@ -71,10 +71,10 @@ Index: systemd-190/src/libudev/libudev-device.c
|
|||||||
udev_device->watch_handle = -1;
|
udev_device->watch_handle = -1;
|
||||||
/* copy global properties */
|
/* copy global properties */
|
||||||
udev_list_entry_foreach(list_entry, udev_get_properties_list_entry(udev))
|
udev_list_entry_foreach(list_entry, udev_get_properties_list_entry(udev))
|
||||||
Index: systemd-190/src/libudev/libudev-private.h
|
Index: systemd-195/src/libudev/libudev-private.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-190.orig/src/libudev/libudev-private.h
|
--- systemd-195.orig/src/libudev/libudev-private.h
|
||||||
+++ systemd-190/src/libudev/libudev-private.h
|
+++ systemd-195/src/libudev/libudev-private.h
|
||||||
@@ -65,6 +65,7 @@ const char *udev_device_get_id_filename(
|
@@ -65,6 +65,7 @@ const char *udev_device_get_id_filename(
|
||||||
void udev_device_set_is_initialized(struct udev_device *udev_device);
|
void udev_device_set_is_initialized(struct udev_device *udev_device);
|
||||||
int udev_device_add_tag(struct udev_device *udev_device, const char *tag);
|
int udev_device_add_tag(struct udev_device *udev_device, const char *tag);
|
||||||
@ -83,11 +83,11 @@ Index: systemd-190/src/libudev/libudev-private.h
|
|||||||
unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device);
|
unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device);
|
||||||
void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned long long usec_initialized);
|
void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned long long usec_initialized);
|
||||||
int udev_device_get_devlink_priority(struct udev_device *udev_device);
|
int udev_device_get_devlink_priority(struct udev_device *udev_device);
|
||||||
Index: systemd-190/src/udev/udevd.c
|
Index: systemd-195/src/udev/udevd.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-190.orig/src/udev/udevd.c
|
--- systemd-195.orig/src/udev/udevd.c
|
||||||
+++ systemd-190/src/udev/udevd.c
|
+++ systemd-195/src/udev/udevd.c
|
||||||
@@ -387,7 +387,7 @@ out:
|
@@ -388,7 +388,7 @@ out:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ Index: systemd-190/src/udev/udevd.c
|
|||||||
{
|
{
|
||||||
struct udev_list_node *loop;
|
struct udev_list_node *loop;
|
||||||
|
|
||||||
@@ -413,7 +413,7 @@ static void event_run(struct event *even
|
@@ -414,7 +414,7 @@ static void event_run(struct event *even
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,7 +105,7 @@ Index: systemd-190/src/udev/udevd.c
|
|||||||
if (children_max > 1)
|
if (children_max > 1)
|
||||||
log_debug("maximum number (%i) of children reached\n", children);
|
log_debug("maximum number (%i) of children reached\n", children);
|
||||||
return;
|
return;
|
||||||
@@ -447,6 +447,13 @@ static int event_queue_insert(struct ude
|
@@ -450,6 +450,13 @@ static int event_queue_insert(struct ude
|
||||||
|
|
||||||
event->state = EVENT_QUEUED;
|
event->state = EVENT_QUEUED;
|
||||||
udev_list_node_append(&event->node, &event_list);
|
udev_list_node_append(&event->node, &event_list);
|
||||||
@ -119,7 +119,7 @@ Index: systemd-190/src/udev/udevd.c
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -552,7 +559,7 @@ static void event_queue_start(struct ude
|
@@ -559,7 +566,7 @@ static void event_queue_start(struct ude
|
||||||
if (is_devpath_busy(event))
|
if (is_devpath_busy(event))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Index: udev-182/src/udev-builtin-path_id.c
|
Index: systemd-195/src/udev/udev-builtin-path_id.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- udev-182.orig/src/udev/udev-builtin-path_id.c
|
--- systemd-195.orig/src/udev/udev-builtin-path_id.c
|
||||||
+++ udev-182/src/udev/udev-builtin-path_id.c
|
+++ systemd-195/src/udev/udev-builtin-path_id.c
|
||||||
@@ -286,6 +286,85 @@ out:
|
@@ -302,6 +302,85 @@ out:
|
||||||
return hostdev;
|
return hostdev;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,7 +88,7 @@ Index: udev-182/src/udev-builtin-path_id.c
|
|||||||
static struct udev_device *handle_scsi(struct udev_device *parent, char **path)
|
static struct udev_device *handle_scsi(struct udev_device *parent, char **path)
|
||||||
{
|
{
|
||||||
const char *devtype;
|
const char *devtype;
|
||||||
@@ -322,16 +401,8 @@ static struct udev_device *handle_scsi(s
|
@@ -338,16 +417,8 @@ static struct udev_device *handle_scsi(s
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: udev-182/rules/60-persistent-storage.rules
|
Index: systemd-195/rules/60-persistent-storage.rules
|
||||||
===================================================================
|
===================================================================
|
||||||
--- udev-182.orig/rules/60-persistent-storage.rules
|
--- systemd-195.orig/rules/60-persistent-storage.rules
|
||||||
+++ udev-182/rules/60-persistent-storage.rules
|
+++ systemd-195/rules/60-persistent-storage.rules
|
||||||
@@ -44,6 +44,10 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk",
|
@@ -44,6 +44,10 @@ KERNEL=="cciss*", ENV{DEVTYPE}=="disk",
|
||||||
KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
|
KERNEL=="sd*|sr*|cciss*", ENV{DEVTYPE}=="disk", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}"
|
||||||
KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
|
KERNEL=="sd*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Index: udev-182/src/udevd.c
|
Index: systemd-195/src/udev/udevd.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- udev-182.orig/src/udev/udevd.c
|
--- systemd-195.orig/src/udev/udevd.c
|
||||||
+++ udev-182/src/udev/udevd.c
|
+++ systemd-195/src/udev/udevd.c
|
||||||
@@ -1683,6 +1683,8 @@ int main(int argc, char *argv[])
|
@@ -1513,6 +1513,8 @@ int main(int argc, char *argv[])
|
||||||
dev = udev_monitor_receive_device(monitor);
|
dev = udev_monitor_receive_device(monitor);
|
||||||
if (dev != NULL) {
|
if (dev != NULL) {
|
||||||
udev_device_set_usec_initialized(dev, now_usec());
|
udev_device_set_usec_initialized(dev, now_usec());
|
||||||
|
@ -9,11 +9,11 @@ and this leads to segfault when calling 'systemd-udevd -e'.
|
|||||||
src/udev/udevd.c | 2 +-
|
src/udev/udevd.c | 2 +-
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/udev/udevd.c b/src/udev/udevd.c
|
Index: systemd-195/src/udev/udevd.c
|
||||||
index ebd601e..ffc48a0 100644
|
===================================================================
|
||||||
--- a/src/udev/udevd.c
|
--- systemd-195.orig/src/udev/udevd.c
|
||||||
+++ b/src/udev/udevd.c
|
+++ systemd-195/src/udev/udevd.c
|
||||||
@@ -1097,7 +1097,7 @@ int main(int argc, char *argv[])
|
@@ -1104,7 +1104,7 @@ int main(int argc, char *argv[])
|
||||||
for (;;) {
|
for (;;) {
|
||||||
int option;
|
int option;
|
||||||
|
|
||||||
@ -22,6 +22,3 @@ index ebd601e..ffc48a0 100644
|
|||||||
if (option == -1)
|
if (option == -1)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
--
|
|
||||||
1.7.7
|
|
||||||
|
|
||||||
|
72
1008-udev-path_id-handle-Hyper-V-devices.patch
Normal file
72
1008-udev-path_id-handle-Hyper-V-devices.patch
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
From a24d03b8ee2ca62cd1273e27cf4e79ddcc0fbb1c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Hannes Reinecke <hare@suse.de>
|
||||||
|
Date: Fri, 23 Nov 2012 14:12:39 +0100
|
||||||
|
Subject: [PATCH] udev: path_id - handle Hyper-V devices
|
||||||
|
|
||||||
|
Hyper-V has an abstract bus, which gets renumbered on guest
|
||||||
|
startup. So instead of the bus numbers we should be using
|
||||||
|
the device GUIDs, which can be retrieved from the 'device_id'
|
||||||
|
sysfs attribute.
|
||||||
|
---
|
||||||
|
src/udev/udev-builtin-path_id.c | 41 +++++++++++++++++++++++++++++++++++++++
|
||||||
|
1 files changed, 41 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
Index: systemd-195/src/udev/udev-builtin-path_id.c
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/udev/udev-builtin-path_id.c
|
||||||
|
+++ systemd-195/src/udev/udev-builtin-path_id.c
|
||||||
|
@@ -381,6 +381,42 @@ out:
|
||||||
|
return hostdev;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static struct udev_device *handle_scsi_hyperv(struct udev_device *parent, char **path) {
|
||||||
|
+ struct udev_device *hostdev;
|
||||||
|
+ struct udev_device *vmbusdev;
|
||||||
|
+ const char *guid_str;
|
||||||
|
+ char *lun = NULL;
|
||||||
|
+ char guid[38];
|
||||||
|
+ size_t i, k;
|
||||||
|
+
|
||||||
|
+ hostdev = udev_device_get_parent_with_subsystem_devtype(parent, "scsi", "scsi_host");
|
||||||
|
+ if (!hostdev)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
+ vmbusdev = udev_device_get_parent(hostdev);
|
||||||
|
+ if (!vmbusdev)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
+ guid_str = udev_device_get_sysattr_value(vmbusdev, "device_id");
|
||||||
|
+ if (!guid_str)
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
+ if (strlen(guid_str) < 37 || guid_str[0] != '{' || guid_str[36] != '}')
|
||||||
|
+ return NULL;
|
||||||
|
+
|
||||||
|
+ for (i = 1, k = 0; i < 36; i++) {
|
||||||
|
+ if (guid_str[i] == '-')
|
||||||
|
+ continue;
|
||||||
|
+ guid[k++] = guid_str[i];
|
||||||
|
+ }
|
||||||
|
+ guid[k] = '\0';
|
||||||
|
+
|
||||||
|
+ format_lun_number(parent, &lun);
|
||||||
|
+ path_prepend(path, "vmbus-%s-%s", guid, lun);
|
||||||
|
+ free(lun);
|
||||||
|
+ return parent;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static struct udev_device *handle_scsi(struct udev_device *parent, char **path)
|
||||||
|
{
|
||||||
|
const char *devtype;
|
||||||
|
@@ -422,6 +458,11 @@ static struct udev_device *handle_scsi(s
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (strstr(name, "/vmbus_") != NULL) {
|
||||||
|
+ parent = handle_scsi_hyperv(parent, path);
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
parent = handle_scsi_default(parent, path);
|
||||||
|
out:
|
||||||
|
return parent;
|
136
1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch
Normal file
136
1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
From 68c77c2f6168dca0ce7b5edb81612cd6be39e63d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alessandro Crismani <alessandro.crismani@gmail.com>
|
||||||
|
Date: Wed, 8 Aug 2012 14:19:32 +0200
|
||||||
|
Subject: [PATCH] keymap: Update the list of Samsung Series 9 models
|
||||||
|
|
||||||
|
Currently, keymaps are provided only for the NP90X3A laptop. Samsung
|
||||||
|
introduced updated models, codenamed 900X3B, 900X3C, 900X4B, 900X4C,
|
||||||
|
which are currently not matched by udev rules. This patch includes the
|
||||||
|
newer modules in udev rules and move the samsung-n90x3a file defining
|
||||||
|
keys to a more generic samsung-series-9 file.
|
||||||
|
|
||||||
|
The patch was tested on a 900X4C laptop, and other people reported
|
||||||
|
that the rules also work for 900X3B and 900X3C ones.
|
||||||
|
---
|
||||||
|
delete mode 100644 keymaps-force-release/samsung-90x3a
|
||||||
|
create mode 100644 keymaps-force-release/samsung-series-9
|
||||||
|
delete mode 100644 keymaps/samsung-90x3a
|
||||||
|
create mode 100644 keymaps/samsung-series-9
|
||||||
|
|
||||||
|
From 68c77c2f6168dca0ce7b5edb81612cd6be39e63d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alessandro Crismani <alessandro.crismani@gmail.com>
|
||||||
|
Date: Wed, 8 Aug 2012 14:19:32 +0200
|
||||||
|
Subject: [PATCH] keymap: Update the list of Samsung Series 9 models
|
||||||
|
|
||||||
|
Currently, keymaps are provided only for the NP90X3A laptop. Samsung
|
||||||
|
introduced updated models, codenamed 900X3B, 900X3C, 900X4B, 900X4C,
|
||||||
|
which are currently not matched by udev rules. This patch includes the
|
||||||
|
newer modules in udev rules and move the samsung-n90x3a file defining
|
||||||
|
keys to a more generic samsung-series-9 file.
|
||||||
|
|
||||||
|
The patch was tested on a 900X4C laptop, and other people reported
|
||||||
|
that the rules also work for 900X3B and 900X3C ones.
|
||||||
|
---
|
||||||
|
Makefile.am | 4 ++--
|
||||||
|
keymaps-force-release/samsung-90x3a | 6 ------
|
||||||
|
keymaps-force-release/samsung-series-9 | 6 ++++++
|
||||||
|
keymaps/samsung-90x3a | 5 -----
|
||||||
|
keymaps/samsung-series-9 | 5 +++++
|
||||||
|
src/udev/keymap/95-keyboard-force-release.rules | 2 +-
|
||||||
|
src/udev/keymap/95-keymap.rules | 2 +-
|
||||||
|
7 files changed, 15 insertions(+), 15 deletions(-)
|
||||||
|
delete mode 100644 keymaps-force-release/samsung-90x3a
|
||||||
|
create mode 100644 keymaps-force-release/samsung-series-9
|
||||||
|
delete mode 100644 keymaps/samsung-90x3a
|
||||||
|
create mode 100644 keymaps/samsung-series-9
|
||||||
|
|
||||||
|
Index: systemd-195/Makefile.am
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/Makefile.am
|
||||||
|
+++ systemd-195/Makefile.am
|
||||||
|
@@ -2272,7 +2272,7 @@ dist_udevkeymap_DATA = \
|
||||||
|
keymaps/onkyo \
|
||||||
|
keymaps/oqo-model2 \
|
||||||
|
keymaps/samsung-other \
|
||||||
|
- keymaps/samsung-90x3a \
|
||||||
|
+ keymaps/samsung-series-9 \
|
||||||
|
keymaps/samsung-sq1us \
|
||||||
|
keymaps/samsung-sx20s \
|
||||||
|
keymaps/toshiba-satellite_a100 \
|
||||||
|
@@ -2286,7 +2286,7 @@ dist_udevkeymapforcerel_DATA = \
|
||||||
|
keymaps-force-release/dell-xps \
|
||||||
|
keymaps-force-release/hp-other \
|
||||||
|
keymaps-force-release/samsung-other \
|
||||||
|
- keymaps-force-release/samsung-90x3a \
|
||||||
|
+ keymaps-force-release/samsung-series-9 \
|
||||||
|
keymaps-force-release/common-volume-keys
|
||||||
|
|
||||||
|
src/udev/keymap/keys.txt: Makefile
|
||||||
|
Index: systemd-195/keymaps-force-release/samsung-90x3a
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/keymaps-force-release/samsung-90x3a
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,6 +0,0 @@
|
||||||
|
-# list of scancodes (hex or decimal), optional comment
|
||||||
|
-0xCE # Fn+F8 keyboard backlit up
|
||||||
|
-0x8D # Fn+F7 keyboard backlit down
|
||||||
|
-0x97 # Fn+F12 wifi on/off
|
||||||
|
-0x96 # Fn+F1 performance mode (?)
|
||||||
|
-0xD5 # Fn+F6 battery life extender
|
||||||
|
Index: systemd-195/keymaps-force-release/samsung-series-9
|
||||||
|
===================================================================
|
||||||
|
--- /dev/null
|
||||||
|
+++ systemd-195/keymaps-force-release/samsung-series-9
|
||||||
|
@@ -0,0 +1,6 @@
|
||||||
|
+# list of scancodes (hex or decimal), optional comment
|
||||||
|
+0xCE # Fn+F8 keyboard backlit up
|
||||||
|
+0x8D # Fn+F7 keyboard backlit down
|
||||||
|
+0x97 # Fn+F12 wifi on/off
|
||||||
|
+0x96 # Fn+F1 performance mode (?)
|
||||||
|
+0xD5 # Fn+F6 battery life extender
|
||||||
|
Index: systemd-195/keymaps/samsung-90x3a
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/keymaps/samsung-90x3a
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,5 +0,0 @@
|
||||||
|
-0x96 kbdillumup # Fn+F8 keyboard backlit up
|
||||||
|
-0x97 kbdillumdown # Fn+F7 keyboard backlit down
|
||||||
|
-0xD5 wlan # Fn+F12 wifi on/off
|
||||||
|
-0xCE prog1 # Fn+F1 performance mode
|
||||||
|
-0x8D prog2 # Fn+F6 battery life extender
|
||||||
|
Index: systemd-195/keymaps/samsung-series-9
|
||||||
|
===================================================================
|
||||||
|
--- /dev/null
|
||||||
|
+++ systemd-195/keymaps/samsung-series-9
|
||||||
|
@@ -0,0 +1,5 @@
|
||||||
|
+0x96 kbdillumup # Fn+F8 keyboard backlit up
|
||||||
|
+0x97 kbdillumdown # Fn+F7 keyboard backlit down
|
||||||
|
+0xD5 wlan # Fn+F12 wifi on/off
|
||||||
|
+0xCE prog1 # Fn+F1 performance mode
|
||||||
|
+0x8D prog2 # Fn+F6 battery life extender
|
||||||
|
Index: systemd-195/src/udev/keymap/95-keyboard-force-release.rules
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/udev/keymap/95-keyboard-force-release.rules
|
||||||
|
+++ systemd-195/src/udev/keymap/95-keyboard-force-release.rules
|
||||||
|
@@ -19,7 +19,7 @@ DRIVER!="atkbd", GOTO="force_release_end
|
||||||
|
ENV{DMI_VENDOR}="$attr{[dmi/id]sys_vendor}"
|
||||||
|
|
||||||
|
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", RUN+="keyboard-force-release.sh $devpath samsung-other"
|
||||||
|
-ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+="keyboard-force-release.sh $devpath samsung-90x3a"
|
||||||
|
+ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*|*900X3*|*900X4*", RUN+="keyboard-force-release.sh $devpath samsung-series-9"
|
||||||
|
|
||||||
|
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Studio 1557|Studio 1558", RUN+="keyboard-force-release.sh $devpath common-volume-keys"
|
||||||
|
ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Latitude E*|Latitude *U|Precision M*", RUN+="keyboard-force-release.sh $devpath dell-touchpad"
|
||||||
|
Index: systemd-195/src/udev/keymap/95-keymap.rules
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/udev/keymap/95-keymap.rules
|
||||||
|
+++ systemd-195/src/udev/keymap/95-keymap.rules
|
||||||
|
@@ -147,7 +147,7 @@ ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][n
|
||||||
|
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*SX20S*", RUN+="keymap $name samsung-sx20s"
|
||||||
|
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="SQ1US", RUN+="keymap $name samsung-sq1us"
|
||||||
|
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*700Z*", RUN+="keymap $name 0xBA ejectcd 0x96 keyboardbrightnessup 0x97 keyboardbrightnessdown"
|
||||||
|
-ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+="keymap $name samsung-90x3a"
|
||||||
|
+ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*|*900X3*|*900X4*", RUN+="keymap $name samsung-series-9"
|
||||||
|
|
||||||
|
ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="SATELLITE A100", RUN+="keymap $name toshiba-satellite_a100"
|
||||||
|
ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="Satellite A110", RUN+="keymap $name toshiba-satellite_a110"
|
22
1010-keymap-Add-Samsung-700T.patch
Normal file
22
1010-keymap-Add-Samsung-700T.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
From a5dea3d43b3866b48c66d6bef9663cf8372fd96c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Martin Pitt <martinpitt@gnome.org>
|
||||||
|
Date: Wed, 28 Nov 2012 21:33:26 +0100
|
||||||
|
Subject: [PATCH] keymap: Add Samsung 700T
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=879691
|
||||||
|
---
|
||||||
|
src/udev/keymap/95-keymap.rules | 1 +
|
||||||
|
1 files changed, 1 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
Index: systemd-195/src/udev/keymap/95-keymap.rules
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/udev/keymap/95-keymap.rules
|
||||||
|
+++ systemd-195/src/udev/keymap/95-keymap.rules
|
||||||
|
@@ -147,6 +147,7 @@ ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][n
|
||||||
|
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*SX20S*", RUN+="keymap $name samsung-sx20s"
|
||||||
|
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="SQ1US", RUN+="keymap $name samsung-sq1us"
|
||||||
|
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*700Z*", RUN+="keymap $name 0xBA ejectcd 0x96 keyboardbrightnessup 0x97 keyboardbrightnessdown"
|
||||||
|
+ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*700T*", RUN+="keymap $name 0xAD leftmeta"
|
||||||
|
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*|*900X3*|*900X4*", RUN+="keymap $name samsung-series-9"
|
||||||
|
|
||||||
|
ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="SATELLITE A100", RUN+="keymap $name toshiba-satellite_a100"
|
36
1011-libudev-avoid-leak-during-realloc-failure.patch
Normal file
36
1011-libudev-avoid-leak-during-realloc-failure.patch
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
From cf2292f5ac87087f57dbd632a25a332c9d194ebf Mon Sep 17 00:00:00 2001
|
||||||
|
From: Mauro Dreissig <mukadr@gmail.com>
|
||||||
|
Date: Sun, 11 Nov 2012 22:07:51 -0200
|
||||||
|
Subject: [PATCH] libudev: avoid leak during realloc failure
|
||||||
|
|
||||||
|
---
|
||||||
|
src/libudev/libudev-list.c | 6 ++++--
|
||||||
|
1 files changed, 4 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
Index: systemd-195/src/libudev/libudev-list.c
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/libudev/libudev-list.c
|
||||||
|
+++ systemd-195/src/libudev/libudev-list.c
|
||||||
|
@@ -177,18 +177,20 @@ struct udev_list_entry *udev_list_entry_
|
||||||
|
if (list->unique) {
|
||||||
|
/* allocate or enlarge sorted array if needed */
|
||||||
|
if (list->entries_cur >= list->entries_max) {
|
||||||
|
+ struct udev_list_entry **entries;
|
||||||
|
unsigned int add;
|
||||||
|
|
||||||
|
add = list->entries_max;
|
||||||
|
if (add < 1)
|
||||||
|
add = 64;
|
||||||
|
- list->entries = realloc(list->entries, (list->entries_max + add) * sizeof(struct udev_list_entry *));
|
||||||
|
- if (list->entries == NULL) {
|
||||||
|
+ entries = realloc(list->entries, (list->entries_max + add) * sizeof(struct udev_list_entry *));
|
||||||
|
+ if (entries == NULL) {
|
||||||
|
free(entry->name);
|
||||||
|
free(entry->value);
|
||||||
|
free(entry);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
+ list->entries = entries;
|
||||||
|
list->entries_max += add;
|
||||||
|
}
|
||||||
|
|
40
1012-libudev-do-not-resolve-attr-device-symlinks.patch
Normal file
40
1012-libudev-do-not-resolve-attr-device-symlinks.patch
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
From 5ae18ddc0d86673520c0dd6b59ccac8afc8aa605 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kay Sievers <kay@vrfy.org>
|
||||||
|
Date: Tue, 20 Nov 2012 18:07:57 +0100
|
||||||
|
Subject: [PATCH] libudev: do not resolve $attr{device} symlinks
|
||||||
|
|
||||||
|
---
|
||||||
|
src/libudev/libudev-device.c | 19 ++++++++++---------
|
||||||
|
1 files changed, 10 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
Index: systemd-195/src/libudev/libudev-device.c
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/libudev/libudev-device.c
|
||||||
|
+++ systemd-195/src/libudev/libudev-device.c
|
||||||
|
@@ -1369,16 +1369,17 @@ _public_ const char *udev_device_get_sys
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
|
- /* resolve link to a device and return its syspath */
|
||||||
|
- util_strscpyl(path, sizeof(path), udev_device->syspath, "/", sysattr, NULL);
|
||||||
|
- dev = udev_device_new_from_syspath(udev_device->udev, path);
|
||||||
|
- if (dev != NULL) {
|
||||||
|
- list_entry = udev_list_entry_add(&udev_device->sysattr_value_list, sysattr,
|
||||||
|
- udev_device_get_syspath(dev));
|
||||||
|
- val = udev_list_entry_get_value(list_entry);
|
||||||
|
- udev_device_unref(dev);
|
||||||
|
+ /* resolve custom link to a device and return its syspath */
|
||||||
|
+ if (!streq(sysattr, "device")) {
|
||||||
|
+ util_strscpyl(path, sizeof(path), udev_device->syspath, "/", sysattr, NULL);
|
||||||
|
+ dev = udev_device_new_from_syspath(udev_device->udev, path);
|
||||||
|
+ if (dev != NULL) {
|
||||||
|
+ list_entry = udev_list_entry_add(&udev_device->sysattr_value_list, sysattr,
|
||||||
|
+ udev_device_get_syspath(dev));
|
||||||
|
+ val = udev_list_entry_get_value(list_entry);
|
||||||
|
+ udev_device_unref(dev);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
-
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
|||||||
|
From e68893075083a7461b1572233d23fdb23541d630 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Michael Terry <michael.terry@canonical.com>
|
||||||
|
Date: Fri, 14 Dec 2012 09:02:13 -0500
|
||||||
|
Subject: [PATCH] libudev: validate 'udev' argument to udev_enumerate_new()
|
||||||
|
|
||||||
|
https://bugs.freedesktop.org/show_bug.cgi?id=58289
|
||||||
|
---
|
||||||
|
src/libudev/libudev-enumerate.c | 2 ++
|
||||||
|
1 files changed, 2 insertions(+), 0 deletions(-)
|
||||||
|
|
||||||
|
Index: systemd-195/src/libudev/libudev-enumerate.c
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/libudev/libudev-enumerate.c
|
||||||
|
+++ systemd-195/src/libudev/libudev-enumerate.c
|
||||||
|
@@ -73,6 +73,8 @@ _public_ struct udev_enumerate *udev_enu
|
||||||
|
{
|
||||||
|
struct udev_enumerate *udev_enumerate;
|
||||||
|
|
||||||
|
+ if (udev == NULL)
|
||||||
|
+ return NULL;
|
||||||
|
udev_enumerate = calloc(1, sizeof(struct udev_enumerate));
|
||||||
|
if (udev_enumerate == NULL)
|
||||||
|
return NULL;
|
56
1014-udev-fix-whitespace.patch
Normal file
56
1014-udev-fix-whitespace.patch
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
From 3fd0c4c66df45ee457cfb5e4ca8e285914ebc32f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kay Sievers <kay@vrfy.org>
|
||||||
|
Date: Tue, 20 Nov 2012 18:07:14 +0100
|
||||||
|
Subject: [PATCH] udev: fix whitespace
|
||||||
|
|
||||||
|
---
|
||||||
|
src/udev/udev-event.c | 36 ++++++++++++++++++------------------
|
||||||
|
1 files changed, 18 insertions(+), 18 deletions(-)
|
||||||
|
|
||||||
|
Index: systemd-195/src/udev/udev-event.c
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/udev/udev-event.c
|
||||||
|
+++ systemd-195/src/udev/udev-event.c
|
||||||
|
@@ -90,24 +90,24 @@ size_t udev_event_apply_format(struct ud
|
||||||
|
const char fmt;
|
||||||
|
enum subst_type type;
|
||||||
|
} map[] = {
|
||||||
|
- { .name = "devnode", .fmt = 'N', .type = SUBST_DEVNODE },
|
||||||
|
- { .name = "tempnode", .fmt = 'N', .type = SUBST_DEVNODE },
|
||||||
|
- { .name = "attr", .fmt = 's', .type = SUBST_ATTR },
|
||||||
|
- { .name = "sysfs", .fmt = 's', .type = SUBST_ATTR },
|
||||||
|
- { .name = "env", .fmt = 'E', .type = SUBST_ENV },
|
||||||
|
- { .name = "kernel", .fmt = 'k', .type = SUBST_KERNEL },
|
||||||
|
- { .name = "number", .fmt = 'n', .type = SUBST_KERNEL_NUMBER },
|
||||||
|
- { .name = "driver", .fmt = 'd', .type = SUBST_DRIVER },
|
||||||
|
- { .name = "devpath", .fmt = 'p', .type = SUBST_DEVPATH },
|
||||||
|
- { .name = "id", .fmt = 'b', .type = SUBST_ID },
|
||||||
|
- { .name = "major", .fmt = 'M', .type = SUBST_MAJOR },
|
||||||
|
- { .name = "minor", .fmt = 'm', .type = SUBST_MINOR },
|
||||||
|
- { .name = "result", .fmt = 'c', .type = SUBST_RESULT },
|
||||||
|
- { .name = "parent", .fmt = 'P', .type = SUBST_PARENT },
|
||||||
|
- { .name = "name", .fmt = 'D', .type = SUBST_NAME },
|
||||||
|
- { .name = "links", .fmt = 'L', .type = SUBST_LINKS },
|
||||||
|
- { .name = "root", .fmt = 'r', .type = SUBST_ROOT },
|
||||||
|
- { .name = "sys", .fmt = 'S', .type = SUBST_SYS },
|
||||||
|
+ { .name = "devnode", .fmt = 'N', .type = SUBST_DEVNODE },
|
||||||
|
+ { .name = "tempnode", .fmt = 'N', .type = SUBST_DEVNODE },
|
||||||
|
+ { .name = "attr", .fmt = 's', .type = SUBST_ATTR },
|
||||||
|
+ { .name = "sysfs", .fmt = 's', .type = SUBST_ATTR },
|
||||||
|
+ { .name = "env", .fmt = 'E', .type = SUBST_ENV },
|
||||||
|
+ { .name = "kernel", .fmt = 'k', .type = SUBST_KERNEL },
|
||||||
|
+ { .name = "number", .fmt = 'n', .type = SUBST_KERNEL_NUMBER },
|
||||||
|
+ { .name = "driver", .fmt = 'd', .type = SUBST_DRIVER },
|
||||||
|
+ { .name = "devpath", .fmt = 'p', .type = SUBST_DEVPATH },
|
||||||
|
+ { .name = "id", .fmt = 'b', .type = SUBST_ID },
|
||||||
|
+ { .name = "major", .fmt = 'M', .type = SUBST_MAJOR },
|
||||||
|
+ { .name = "minor", .fmt = 'm', .type = SUBST_MINOR },
|
||||||
|
+ { .name = "result", .fmt = 'c', .type = SUBST_RESULT },
|
||||||
|
+ { .name = "parent", .fmt = 'P', .type = SUBST_PARENT },
|
||||||
|
+ { .name = "name", .fmt = 'D', .type = SUBST_NAME },
|
||||||
|
+ { .name = "links", .fmt = 'L', .type = SUBST_LINKS },
|
||||||
|
+ { .name = "root", .fmt = 'r', .type = SUBST_ROOT },
|
||||||
|
+ { .name = "sys", .fmt = 'S', .type = SUBST_SYS },
|
||||||
|
};
|
||||||
|
const char *from;
|
||||||
|
char *s;
|
@ -0,0 +1,69 @@
|
|||||||
|
From bf9d233f781f27841be6638ee745e9c80bda5f4d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kay Sievers <kay@vrfy.org>
|
||||||
|
Date: Tue, 13 Nov 2012 02:05:06 +0100
|
||||||
|
Subject: [PATCH] udev: properly handle symlink removal by 'change' event
|
||||||
|
|
||||||
|
If a 'change' event is supposed to remove created symlinks, we create
|
||||||
|
a new device structure from the sysfs device and fill it with the list
|
||||||
|
of links, to compute the delta of the old and new list of links to apply.
|
||||||
|
If the device is already 'remove'd by the kernel though, udev fails to
|
||||||
|
create the device structure, so the links are not removed properly.
|
||||||
|
|
||||||
|
> From: Neil Brown <nfbrown@suse.com>
|
||||||
|
> Date: Thu, 8 Nov 2012 10:39:06 +0100
|
||||||
|
> Subject: [PATCH] If a 'change' event does not get handled by udev until
|
||||||
|
> after the device has subsequently disappeared, udev mis-handles
|
||||||
|
> it. This can happen with 'md' devices which emit a change
|
||||||
|
> event and then a remove event when they are stopped. It is
|
||||||
|
> normally only noticed if udev is very busy (lots of arrays
|
||||||
|
> being stopped at once) or the machine is otherwise loaded
|
||||||
|
> and reponding slowly.
|
||||||
|
>
|
||||||
|
> There are two problems.
|
||||||
|
>
|
||||||
|
> 1/ udev_device_new_from_syspath() will refuse to create the device
|
||||||
|
> structure if the device does not exist in /sys, and particularly if
|
||||||
|
> the uevent file does not exist.
|
||||||
|
> If a 'db' file does exist, that is sufficient evidence that the device
|
||||||
|
> is genuine and should be created. Equally if we have just received an
|
||||||
|
> event from the kernel about the device, it must be real.
|
||||||
|
>
|
||||||
|
> This patch just disabled the test for the 'uevent' file, it doesn't
|
||||||
|
> try imposing any other tests - it isn't clear that they are really
|
||||||
|
> needed.
|
||||||
|
>
|
||||||
|
> 2/ udev_event_execute_rules() calls udev_device_read_db() on a 'device'
|
||||||
|
> structure that is largely uninitialised and in particular does not
|
||||||
|
> have the 'subsystem' set. udev_device_read_db() needs the subsystem
|
||||||
|
> so it tries to read the 'subsystem' symlink out of sysfs. If the
|
||||||
|
> device is already deleted, this naturally fails.
|
||||||
|
> udev_event_execute_rules() knows the subsystem (as it was in the
|
||||||
|
> event message) so this patch simply sets the subsystem for the device
|
||||||
|
> structure to be loaded to match the subsystem of the device structure
|
||||||
|
> that is handling the event.
|
||||||
|
>
|
||||||
|
> With these two changes, deleted handling of change events will still
|
||||||
|
> correctly remove any symlinks that are not needed any more.
|
||||||
|
|
||||||
|
Use udev_device_new() instead of allowing udev_device_new_from_syspath()
|
||||||
|
to proceed without a sysfs device.
|
||||||
|
---
|
||||||
|
src/udev/udev-event.c | 4 +++-
|
||||||
|
1 files changed, 3 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
|
Index: systemd-195/src/udev/udev-event.c
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/udev/udev-event.c
|
||||||
|
+++ systemd-195/src/udev/udev-event.c
|
||||||
|
@@ -797,8 +797,10 @@ int udev_event_execute_rules(struct udev
|
||||||
|
if (major(udev_device_get_devnum(dev)) != 0)
|
||||||
|
udev_node_remove(dev);
|
||||||
|
} else {
|
||||||
|
- event->dev_db = udev_device_new_from_syspath(event->udev, udev_device_get_syspath(dev));
|
||||||
|
+ event->dev_db = udev_device_new(event->udev);
|
||||||
|
if (event->dev_db != NULL) {
|
||||||
|
+ udev_device_set_syspath(event->dev_db, udev_device_get_syspath(dev));
|
||||||
|
+ udev_device_set_subsystem(event->dev_db, udev_device_get_subsystem(dev));
|
||||||
|
udev_device_read_db(event->dev_db, NULL);
|
||||||
|
udev_device_set_info_loaded(event->dev_db);
|
||||||
|
|
@ -0,0 +1,64 @@
|
|||||||
|
Index: systemd-195/src/udev/udev-builtin.c
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/udev/udev-builtin.c
|
||||||
|
+++ systemd-195/src/udev/udev-builtin.c
|
||||||
|
@@ -42,24 +42,18 @@ static const struct udev_builtin *builti
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
-int udev_builtin_init(struct udev *udev)
|
||||||
|
+void udev_builtin_init(struct udev *udev)
|
||||||
|
{
|
||||||
|
unsigned int i;
|
||||||
|
- int err = 0;
|
||||||
|
|
||||||
|
if (initialized)
|
||||||
|
- return 0;
|
||||||
|
+ return;
|
||||||
|
|
||||||
|
- for (i = 0; i < ELEMENTSOF(builtins); i++) {
|
||||||
|
- if (builtins[i]->init) {
|
||||||
|
- err = builtins[i]->init(udev);
|
||||||
|
- if (err < 0)
|
||||||
|
- break;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
+ for (i = 0; i < ELEMENTSOF(builtins); i++)
|
||||||
|
+ if (builtins[i]->init)
|
||||||
|
+ builtins[i]->init(udev);
|
||||||
|
|
||||||
|
initialized = true;
|
||||||
|
- return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
void udev_builtin_exit(struct udev *udev)
|
||||||
|
@@ -79,13 +73,11 @@ void udev_builtin_exit(struct udev *udev
|
||||||
|
bool udev_builtin_validate(struct udev *udev)
|
||||||
|
{
|
||||||
|
unsigned int i;
|
||||||
|
- bool change = false;
|
||||||
|
|
||||||
|
for (i = 0; i < ELEMENTSOF(builtins); i++)
|
||||||
|
- if (builtins[i]->validate)
|
||||||
|
- if (builtins[i]->validate(udev))
|
||||||
|
- change = true;
|
||||||
|
- return change;
|
||||||
|
+ if (builtins[i]->validate && builtins[i]->validate(udev))
|
||||||
|
+ return true;
|
||||||
|
+ return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void udev_builtin_list(struct udev *udev)
|
||||||
|
Index: systemd-195/src/udev/udev.h
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/udev/udev.h
|
||||||
|
+++ systemd-195/src/udev/udev.h
|
||||||
|
@@ -167,7 +167,7 @@ extern const struct udev_builtin udev_bu
|
||||||
|
extern const struct udev_builtin udev_builtin_usb_db;
|
||||||
|
extern const struct udev_builtin udev_builtin_usb_id;
|
||||||
|
extern const struct udev_builtin udev_builtin_uaccess;
|
||||||
|
-int udev_builtin_init(struct udev *udev);
|
||||||
|
+void udev_builtin_init(struct udev *udev);
|
||||||
|
void udev_builtin_exit(struct udev *udev);
|
||||||
|
enum udev_builtin_cmd udev_builtin_lookup(const char *command);
|
||||||
|
const char *udev_builtin_name(enum udev_builtin_cmd cmd);
|
335
1017-udev-use-usec_t-and-now.patch
Normal file
335
1017-udev-use-usec_t-and-now.patch
Normal file
@ -0,0 +1,335 @@
|
|||||||
|
Index: systemd-195/src/libudev/libudev-device-private.c
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/libudev/libudev-device-private.c
|
||||||
|
+++ systemd-195/src/libudev/libudev-device-private.c
|
||||||
|
@@ -147,7 +147,7 @@ int udev_device_update_db(struct udev_de
|
||||||
|
}
|
||||||
|
|
||||||
|
if (udev_device_get_usec_initialized(udev_device) > 0)
|
||||||
|
- fprintf(f, "I:%llu\n", udev_device_get_usec_initialized(udev_device));
|
||||||
|
+ fprintf(f, "I:%llu\n", (unsigned long long)udev_device_get_usec_initialized(udev_device));
|
||||||
|
|
||||||
|
udev_list_entry_foreach(list_entry, udev_device_get_properties_list_entry(udev_device)) {
|
||||||
|
if (!udev_list_entry_get_num(list_entry))
|
||||||
|
Index: systemd-195/src/libudev/libudev-device.c
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/libudev/libudev-device.c
|
||||||
|
+++ systemd-195/src/libudev/libudev-device.c
|
||||||
|
@@ -67,7 +67,7 @@ struct udev_device {
|
||||||
|
struct udev_list sysattr_list;
|
||||||
|
struct udev_list tags_list;
|
||||||
|
unsigned long long int seqnum;
|
||||||
|
- unsigned long long int usec_initialized;
|
||||||
|
+ usec_t usec_initialized;
|
||||||
|
int timeout;
|
||||||
|
int devlink_priority;
|
||||||
|
int refcount;
|
||||||
|
@@ -262,7 +262,7 @@ static int udev_device_set_devtype(struc
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
-static int udev_device_set_subsystem(struct udev_device *udev_device, const char *subsystem)
|
||||||
|
+int udev_device_set_subsystem(struct udev_device *udev_device, const char *subsystem)
|
||||||
|
{
|
||||||
|
free(udev_device->subsystem);
|
||||||
|
udev_device->subsystem = strdup(subsystem);
|
||||||
|
@@ -1286,7 +1286,7 @@ _public_ const char *udev_device_get_act
|
||||||
|
**/
|
||||||
|
_public_ unsigned long long int udev_device_get_usec_since_initialized(struct udev_device *udev_device)
|
||||||
|
{
|
||||||
|
- unsigned long long now_ts;
|
||||||
|
+ usec_t now_ts;
|
||||||
|
|
||||||
|
if (udev_device == NULL)
|
||||||
|
return 0;
|
||||||
|
@@ -1294,23 +1294,23 @@ _public_ unsigned long long int udev_dev
|
||||||
|
udev_device_read_db(udev_device, NULL);
|
||||||
|
if (udev_device->usec_initialized == 0)
|
||||||
|
return 0;
|
||||||
|
- now_ts = now_usec();
|
||||||
|
+ now_ts = now(CLOCK_MONOTONIC);
|
||||||
|
if (now_ts == 0)
|
||||||
|
return 0;
|
||||||
|
return now_ts - udev_device->usec_initialized;
|
||||||
|
}
|
||||||
|
|
||||||
|
-unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device)
|
||||||
|
+usec_t udev_device_get_usec_initialized(struct udev_device *udev_device)
|
||||||
|
{
|
||||||
|
return udev_device->usec_initialized;
|
||||||
|
}
|
||||||
|
|
||||||
|
-void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned long long usec_initialized)
|
||||||
|
+void udev_device_set_usec_initialized(struct udev_device *udev_device, usec_t usec_initialized)
|
||||||
|
{
|
||||||
|
char num[32];
|
||||||
|
|
||||||
|
udev_device->usec_initialized = usec_initialized;
|
||||||
|
- snprintf(num, sizeof(num), "%llu", usec_initialized);
|
||||||
|
+ snprintf(num, sizeof(num), "%llu", (unsigned long long)usec_initialized);
|
||||||
|
udev_device_add_property(udev_device, "USEC_INITIALIZED", num);
|
||||||
|
}
|
||||||
|
|
||||||
|
Index: systemd-195/src/libudev/libudev-private.h
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/libudev/libudev-private.h
|
||||||
|
+++ systemd-195/src/libudev/libudev-private.h
|
||||||
|
@@ -48,6 +48,7 @@ struct udev_list_entry *udev_get_propert
|
||||||
|
/* libudev-device.c */
|
||||||
|
struct udev_device *udev_device_new(struct udev *udev);
|
||||||
|
mode_t udev_device_get_devnode_mode(struct udev_device *udev_device);
|
||||||
|
+int udev_device_set_subsystem(struct udev_device *udev_device, const char *subsystem);
|
||||||
|
int udev_device_set_syspath(struct udev_device *udev_device, const char *syspath);
|
||||||
|
int udev_device_set_devnode(struct udev_device *udev_device, const char *devnode);
|
||||||
|
int udev_device_add_devlink(struct udev_device *udev_device, const char *devlink);
|
||||||
|
@@ -66,8 +67,8 @@ void udev_device_set_is_initialized(stru
|
||||||
|
int udev_device_add_tag(struct udev_device *udev_device, const char *tag);
|
||||||
|
void udev_device_cleanup_tags_list(struct udev_device *udev_device);
|
||||||
|
int udev_device_get_timeout(struct udev_device *udev_device);
|
||||||
|
-unsigned long long udev_device_get_usec_initialized(struct udev_device *udev_device);
|
||||||
|
-void udev_device_set_usec_initialized(struct udev_device *udev_device, unsigned long long usec_initialized);
|
||||||
|
+usec_t udev_device_get_usec_initialized(struct udev_device *udev_device);
|
||||||
|
+void udev_device_set_usec_initialized(struct udev_device *udev_device, usec_t usec_initialized);
|
||||||
|
int udev_device_get_devlink_priority(struct udev_device *udev_device);
|
||||||
|
int udev_device_set_devlink_priority(struct udev_device *udev_device, int prio);
|
||||||
|
int udev_device_get_watch_handle(struct udev_device *udev_device);
|
||||||
|
@@ -166,7 +167,5 @@ uid_t util_lookup_user(struct udev *udev
|
||||||
|
gid_t util_lookup_group(struct udev *udev, const char *group);
|
||||||
|
int util_resolve_subsys_kernel(struct udev *udev, const char *string,
|
||||||
|
char *result, size_t maxsize, int read_value);
|
||||||
|
-unsigned long long ts_usec(const struct timespec *ts);
|
||||||
|
-unsigned long long now_usec(void);
|
||||||
|
ssize_t print_kmsg(const char *fmt, ...) __attribute__((format(printf, 1, 2)));
|
||||||
|
#endif
|
||||||
|
Index: systemd-195/src/libudev/libudev-util.c
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/libudev/libudev-util.c
|
||||||
|
+++ systemd-195/src/libudev/libudev-util.c
|
||||||
|
@@ -691,23 +691,6 @@ uint64_t util_string_bloom64(const char
|
||||||
|
return bits;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#define USEC_PER_SEC 1000000ULL
|
||||||
|
-#define NSEC_PER_USEC 1000ULL
|
||||||
|
-unsigned long long ts_usec(const struct timespec *ts)
|
||||||
|
-{
|
||||||
|
- return (unsigned long long) ts->tv_sec * USEC_PER_SEC +
|
||||||
|
- (unsigned long long) ts->tv_nsec / NSEC_PER_USEC;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-unsigned long long now_usec(void)
|
||||||
|
-{
|
||||||
|
- struct timespec ts;
|
||||||
|
-
|
||||||
|
- if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0)
|
||||||
|
- return 0;
|
||||||
|
- return ts_usec(&ts);
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
ssize_t print_kmsg(const char *fmt, ...)
|
||||||
|
{
|
||||||
|
int fd;
|
||||||
|
Index: systemd-195/src/udev/udev-event.c
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/udev/udev-event.c
|
||||||
|
+++ systemd-195/src/udev/udev-event.c
|
||||||
|
@@ -48,7 +48,7 @@ struct udev_event *udev_event_new(struct
|
||||||
|
event->udev = udev;
|
||||||
|
udev_list_init(udev, &event->run_list, false);
|
||||||
|
event->fd_signal = -1;
|
||||||
|
- event->birth_usec = now_usec();
|
||||||
|
+ event->birth_usec = now(CLOCK_MONOTONIC);
|
||||||
|
event->timeout_usec = 30 * 1000 * 1000;
|
||||||
|
return event;
|
||||||
|
}
|
||||||
|
@@ -466,9 +466,9 @@ static void spawn_read(struct udev_event
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (event->timeout_usec > 0) {
|
||||||
|
- unsigned long long age_usec;
|
||||||
|
+ usec_t age_usec;
|
||||||
|
|
||||||
|
- age_usec = now_usec() - event->birth_usec;
|
||||||
|
+ age_usec = now(CLOCK_MONOTONIC) - event->birth_usec;
|
||||||
|
if (age_usec >= event->timeout_usec) {
|
||||||
|
log_error("timeout '%s'\n", cmd);
|
||||||
|
goto out;
|
||||||
|
@@ -554,9 +554,9 @@ static int spawn_wait(struct udev_event
|
||||||
|
int fdcount;
|
||||||
|
|
||||||
|
if (event->timeout_usec > 0) {
|
||||||
|
- unsigned long long age_usec;
|
||||||
|
+ usec_t age_usec;
|
||||||
|
|
||||||
|
- age_usec = now_usec() - event->birth_usec;
|
||||||
|
+ age_usec = now(CLOCK_MONOTONIC) - event->birth_usec;
|
||||||
|
if (age_usec >= event->timeout_usec)
|
||||||
|
timeout = 1000;
|
||||||
|
else
|
||||||
|
@@ -862,7 +862,7 @@ int udev_event_execute_rules(struct udev
|
||||||
|
if (event->dev_db != NULL && udev_device_get_usec_initialized(event->dev_db) > 0)
|
||||||
|
udev_device_set_usec_initialized(event->dev, udev_device_get_usec_initialized(event->dev_db));
|
||||||
|
else if (udev_device_get_usec_initialized(event->dev) == 0)
|
||||||
|
- udev_device_set_usec_initialized(event->dev, now_usec());
|
||||||
|
+ udev_device_set_usec_initialized(event->dev, now(CLOCK_MONOTONIC));
|
||||||
|
|
||||||
|
/* (re)write database file */
|
||||||
|
udev_device_update_db(dev);
|
||||||
|
Index: systemd-195/src/udev/udev-rules.c
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/udev/udev-rules.c
|
||||||
|
+++ systemd-195/src/udev/udev-rules.c
|
||||||
|
@@ -47,7 +47,7 @@ struct uid_gid {
|
||||||
|
struct udev_rules {
|
||||||
|
struct udev *udev;
|
||||||
|
char **dirs;
|
||||||
|
- unsigned long long *dirs_ts_usec;
|
||||||
|
+ usec_t *dirs_ts_usec;
|
||||||
|
int resolve_names;
|
||||||
|
|
||||||
|
/* every key in the rules file becomes a token */
|
||||||
|
@@ -1691,7 +1691,7 @@ bool udev_rules_check_timestamp(struct u
|
||||||
|
if (stat(rules->dirs[i], &stats) < 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
- if (rules->dirs_ts_usec[i] == ts_usec(&stats.st_mtim))
|
||||||
|
+ if (rules->dirs_ts_usec[i] == timespec_load(&stats.st_mtim))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
/* first check */
|
||||||
|
@@ -1701,7 +1701,7 @@ bool udev_rules_check_timestamp(struct u
|
||||||
|
}
|
||||||
|
|
||||||
|
/* update timestamp */
|
||||||
|
- rules->dirs_ts_usec[i] = ts_usec(&stats.st_mtim);
|
||||||
|
+ rules->dirs_ts_usec[i] = timespec_load(&stats.st_mtim);
|
||||||
|
}
|
||||||
|
out:
|
||||||
|
return changed;
|
||||||
|
Index: systemd-195/src/udev/udev.h
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/udev/udev.h
|
||||||
|
+++ systemd-195/src/udev/udev.h
|
||||||
|
@@ -41,8 +41,8 @@ struct udev_event {
|
||||||
|
gid_t gid;
|
||||||
|
struct udev_list run_list;
|
||||||
|
int exec_delay;
|
||||||
|
- unsigned long long birth_usec;
|
||||||
|
- unsigned long long timeout_usec;
|
||||||
|
+ usec_t birth_usec;
|
||||||
|
+ usec_t timeout_usec;
|
||||||
|
int fd_signal;
|
||||||
|
unsigned int builtin_run;
|
||||||
|
unsigned int builtin_ret;
|
||||||
|
Index: systemd-195/src/udev/udevadm-settle.c
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/udev/udevadm-settle.c
|
||||||
|
+++ systemd-195/src/udev/udevadm-settle.c
|
||||||
|
@@ -47,9 +47,9 @@ static int adm_settle(struct udev *udev,
|
||||||
|
{ "help", no_argument, NULL, 'h' },
|
||||||
|
{}
|
||||||
|
};
|
||||||
|
- unsigned long long start_usec = now_usec();
|
||||||
|
- unsigned long long start = 0;
|
||||||
|
- unsigned long long end = 0;
|
||||||
|
+ usec_t start_usec = now(CLOCK_MONOTONIC);
|
||||||
|
+ usec_t start = 0;
|
||||||
|
+ usec_t end = 0;
|
||||||
|
int quiet = 0;
|
||||||
|
const char *exists = NULL;
|
||||||
|
unsigned int timeout = 120;
|
||||||
|
@@ -123,7 +123,7 @@ static int adm_settle(struct udev *udev,
|
||||||
|
start = 0;
|
||||||
|
end = 0;
|
||||||
|
}
|
||||||
|
- log_debug("start=%llu end=%llu current=%llu\n", start, end, kernel_seq);
|
||||||
|
+ log_debug("start=%llu end=%llu current=%llu\n", (unsigned long long)start, (unsigned long long)end, kernel_seq);
|
||||||
|
} else {
|
||||||
|
if (end > 0) {
|
||||||
|
log_error("seq-end needs seq-start parameter, ignoring\n");
|
||||||
|
@@ -199,9 +199,9 @@ static int adm_settle(struct udev *udev,
|
||||||
|
}
|
||||||
|
|
||||||
|
if (timeout > 0) {
|
||||||
|
- unsigned long long age_usec;
|
||||||
|
+ usec_t age_usec;
|
||||||
|
|
||||||
|
- age_usec = now_usec() - start_usec;
|
||||||
|
+ age_usec = now(CLOCK_MONOTONIC) - start_usec;
|
||||||
|
if (age_usec / (1000 * 1000) >= timeout) {
|
||||||
|
struct udev_list_entry *list_entry;
|
||||||
|
|
||||||
|
Index: systemd-195/src/udev/udevd.c
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/udev/udevd.c
|
||||||
|
+++ systemd-195/src/udev/udevd.c
|
||||||
|
@@ -122,7 +122,7 @@ struct worker {
|
||||||
|
struct udev_monitor *monitor;
|
||||||
|
enum worker_state state;
|
||||||
|
struct event *event;
|
||||||
|
- unsigned long long event_start_usec;
|
||||||
|
+ usec_t event_start_usec;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* passed from worker to main process */
|
||||||
|
@@ -378,7 +378,7 @@ out:
|
||||||
|
worker->monitor = worker_monitor;
|
||||||
|
worker->pid = pid;
|
||||||
|
worker->state = WORKER_RUNNING;
|
||||||
|
- worker->event_start_usec = now_usec();
|
||||||
|
+ worker->event_start_usec = now(CLOCK_MONOTONIC);
|
||||||
|
worker->event = event;
|
||||||
|
event->state = EVENT_RUNNING;
|
||||||
|
udev_list_node_append(&worker->node, &worker_list);
|
||||||
|
@@ -409,7 +409,7 @@ static void event_run(struct event *even
|
||||||
|
worker_ref(worker);
|
||||||
|
worker->event = event;
|
||||||
|
worker->state = WORKER_RUNNING;
|
||||||
|
- worker->event_start_usec = now_usec();
|
||||||
|
+ worker->event_start_usec = now(CLOCK_MONOTONIC);
|
||||||
|
event->state = EVENT_RUNNING;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
@@ -1381,7 +1381,7 @@ int main(int argc, char *argv[])
|
||||||
|
udev_list_node_init(&worker_list);
|
||||||
|
|
||||||
|
for (;;) {
|
||||||
|
- static unsigned long long last_usec;
|
||||||
|
+ static usec_t last_usec;
|
||||||
|
struct epoll_event ev[8];
|
||||||
|
int fdcount;
|
||||||
|
int timeout;
|
||||||
|
@@ -1452,7 +1452,7 @@ int main(int argc, char *argv[])
|
||||||
|
if (worker->state != WORKER_RUNNING)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
- if ((now_usec() - worker->event_start_usec) > 30 * 1000 * 1000) {
|
||||||
|
+ if ((now(CLOCK_MONOTONIC) - worker->event_start_usec) > 30 * 1000 * 1000) {
|
||||||
|
log_error("worker [%u] %s timeout; kill it\n", worker->pid,
|
||||||
|
worker->event ? worker->event->devpath : "<idle>");
|
||||||
|
kill(worker->pid, SIGKILL);
|
||||||
|
@@ -1486,13 +1486,13 @@ int main(int argc, char *argv[])
|
||||||
|
}
|
||||||
|
|
||||||
|
/* check for changed config, every 3 seconds at most */
|
||||||
|
- if ((now_usec() - last_usec) > 3 * 1000 * 1000) {
|
||||||
|
+ if ((now(CLOCK_MONOTONIC) - last_usec) > 3 * 1000 * 1000) {
|
||||||
|
if (udev_rules_check_timestamp(rules))
|
||||||
|
reload = true;
|
||||||
|
if (udev_builtin_validate(udev))
|
||||||
|
reload = true;
|
||||||
|
|
||||||
|
- last_usec = now_usec();
|
||||||
|
+ last_usec = now(CLOCK_MONOTONIC);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* reload requested, HUP signal received, rules changed, builtin changed */
|
||||||
|
@@ -1512,7 +1512,7 @@ int main(int argc, char *argv[])
|
||||||
|
|
||||||
|
dev = udev_monitor_receive_device(monitor);
|
||||||
|
if (dev != NULL) {
|
||||||
|
- udev_device_set_usec_initialized(dev, now_usec());
|
||||||
|
+ udev_device_set_usec_initialized(dev, now(CLOCK_MONOTONIC));
|
||||||
|
if (rules == NULL)
|
||||||
|
rules = udev_rules_new(udev, resolve_names);
|
||||||
|
if (event_queue_insert(dev) < 0)
|
@ -14,11 +14,11 @@ Fixes a FTBFS in Fedora Rawhide.
|
|||||||
configure.ac | 2 +-
|
configure.ac | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
Index: systemd-195/configure.ac
|
||||||
index c4638d1..71ea6ad 100644
|
===================================================================
|
||||||
--- a/configure.ac
|
--- systemd-195.orig/configure.ac
|
||||||
+++ b/configure.ac
|
+++ systemd-195/configure.ac
|
||||||
@@ -171,7 +171,7 @@ CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\
|
@@ -172,7 +172,7 @@ CC_CHECK_FLAGS_APPEND([with_ldflags], [L
|
||||||
-Wl,-z,now])
|
-Wl,-z,now])
|
||||||
AC_SUBST([OUR_LDFLAGS], $with_ldflags)
|
AC_SUBST([OUR_LDFLAGS], $with_ldflags)
|
||||||
|
|
||||||
@ -27,6 +27,3 @@ index c4638d1..71ea6ad 100644
|
|||||||
AC_SEARCH_LIBS([dlsym], [dl], [], [AC_MSG_ERROR([*** Dynamic linking loader library not found])])
|
AC_SEARCH_LIBS([dlsym], [dl], [], [AC_MSG_ERROR([*** Dynamic linking loader library not found])])
|
||||||
|
|
||||||
save_LIBS="$LIBS"
|
save_LIBS="$LIBS"
|
||||||
--
|
|
||||||
1.7.10.4
|
|
||||||
|
|
||||||
|
@ -15,11 +15,11 @@ Walters' comment.]
|
|||||||
src/core/dbus-manager.c | 1 -
|
src/core/dbus-manager.c | 1 -
|
||||||
1 file changed, 1 deletion(-)
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c
|
Index: systemd-195/src/core/dbus-manager.c
|
||||||
index 2010241..3cf3e90 100644
|
===================================================================
|
||||||
--- a/src/core/dbus-manager.c
|
--- systemd-195.orig/src/core/dbus-manager.c
|
||||||
+++ b/src/core/dbus-manager.c
|
+++ systemd-195/src/core/dbus-manager.c
|
||||||
@@ -1436,7 +1436,6 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection,
|
@@ -1432,7 +1432,6 @@ static DBusHandlerResult bus_manager_mes
|
||||||
r = unit_file_get_list(m->running_as == SYSTEMD_SYSTEM ? UNIT_FILE_SYSTEM : UNIT_FILE_USER, NULL, h);
|
r = unit_file_get_list(m->running_as == SYSTEMD_SYSTEM ? UNIT_FILE_SYSTEM : UNIT_FILE_USER, NULL, h);
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
unit_file_list_free(h);
|
unit_file_list_free(h);
|
||||||
@ -27,6 +27,3 @@ index 2010241..3cf3e90 100644
|
|||||||
return bus_send_error_reply(connection, message, NULL, r);
|
return bus_send_error_reply(connection, message, NULL, r);
|
||||||
}
|
}
|
||||||
|
|
||||||
--
|
|
||||||
1.7.10.4
|
|
||||||
|
|
||||||
|
@ -10,11 +10,11 @@ same session as the X session itself.
|
|||||||
src/login/logind-dbus.c | 3 +--
|
src/login/logind-dbus.c | 3 +--
|
||||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
|
Index: systemd-195/src/login/logind-dbus.c
|
||||||
index 4326e5b..8b6021d 100644
|
===================================================================
|
||||||
--- a/src/login/logind-dbus.c
|
--- systemd-195.orig/src/login/logind-dbus.c
|
||||||
+++ b/src/login/logind-dbus.c
|
+++ systemd-195/src/login/logind-dbus.c
|
||||||
@@ -415,8 +415,7 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message, DBusMess
|
@@ -409,8 +409,7 @@ static int bus_manager_create_session(Ma
|
||||||
if (vtnr != 0)
|
if (vtnr != 0)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
@ -24,6 +24,3 @@ index 4326e5b..8b6021d 100644
|
|||||||
|
|
||||||
if (s) {
|
if (s) {
|
||||||
if (seat_can_multi_session(s)) {
|
if (seat_can_multi_session(s)) {
|
||||||
--
|
|
||||||
1.7.10.4
|
|
||||||
|
|
||||||
|
@ -24,102 +24,18 @@ Signed-off-by: Lee, Chun-Yi <jlee@suse.com>
|
|||||||
src/core/mount-setup.c | 1 +
|
src/core/mount-setup.c | 1 +
|
||||||
2 files changed, 5 insertions(+), 3 deletions(-)
|
2 files changed, 5 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
|
Index: systemd-195/src/core/kmod-setup.c
|
||||||
index cc2a2d9..ce8a8e7 100644
|
===================================================================
|
||||||
--- a/src/core/kmod-setup.c
|
--- systemd-195.orig/src/core/kmod-setup.c
|
||||||
+++ b/src/core/kmod-setup.c
|
+++ systemd-195/src/core/kmod-setup.c
|
||||||
@@ -31,9 +31,10 @@
|
@@ -30,10 +30,16 @@
|
||||||
#include "kmod-setup.h"
|
|
||||||
|
|
||||||
static const char * const kmod_table[] = {
|
|
||||||
- "autofs4", "/sys/class/misc/autofs",
|
|
||||||
- "ipv6", "/sys/module/ipv6",
|
|
||||||
- "unix", "/proc/net/unix"
|
|
||||||
+ "autofs4", "/sys/class/misc/autofs",
|
|
||||||
+ "ipv6", "/sys/module/ipv6",
|
|
||||||
+ "efivarfs", "/sys/firmware/efi/efivars",
|
|
||||||
+ "unix", "/proc/net/unix"
|
|
||||||
};
|
|
||||||
|
|
||||||
#pragma GCC diagnostic push
|
|
||||||
diff --git a/src/core/mount-setup.c b/src/core/mount-setup.c
|
|
||||||
index 0fd112f..9894c7f 100644
|
|
||||||
--- a/src/core/mount-setup.c
|
|
||||||
+++ b/src/core/mount-setup.c
|
|
||||||
@@ -66,6 +66,7 @@ static const MountPoint mount_table[] = {
|
|
||||||
{ "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, true, true },
|
|
||||||
{ "devtmpfs", "/dev", "devtmpfs", "mode=755", MS_NOSUID|MS_STRICTATIME, true, true },
|
|
||||||
{ "securityfs", "/sys/kernel/security", "securityfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false, false },
|
|
||||||
+ { "efivarfs", "/sys/firmware/efi/efivars", "efivarfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false, false },
|
|
||||||
{ "tmpfs", "/dev/shm", "tmpfs", "mode=1777", MS_NOSUID|MS_NODEV|MS_STRICTATIME, true, true },
|
|
||||||
{ "devpts", "/dev/pts", "devpts", "mode=620,gid=" STRINGIFY(TTY_GID), MS_NOSUID|MS_NOEXEC, false, true },
|
|
||||||
{ "tmpfs", "/run", "tmpfs", "mode=755", MS_NOSUID|MS_NODEV|MS_STRICTATIME, true, true },
|
|
||||||
--
|
|
||||||
1.7.10.4
|
|
||||||
|
|
||||||
From c1e5704657315b436c0409e8172c1fcb76adccad Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kay Sievers <kay@vrfy.org>
|
|
||||||
Date: Sun, 4 Nov 2012 16:06:27 +0100
|
|
||||||
Subject: [PATCH] shared: add is_efiboot()
|
|
||||||
|
|
||||||
---
|
|
||||||
src/shared/util.c | 4 ++++
|
|
||||||
src/shared/util.h | 2 ++
|
|
||||||
2 files changed, 6 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/shared/util.c b/src/shared/util.c
|
|
||||||
index 2a8afae..9983695 100644
|
|
||||||
--- a/src/shared/util.c
|
|
||||||
+++ b/src/shared/util.c
|
|
||||||
@@ -77,6 +77,10 @@ char **saved_argv = NULL;
|
|
||||||
static volatile unsigned cached_columns = 0;
|
|
||||||
static volatile unsigned cached_lines = 0;
|
|
||||||
|
|
||||||
+bool is_efiboot(void) {
|
|
||||||
+ return access("/sys/firmware/efi", F_OK) >= 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
size_t page_size(void) {
|
|
||||||
static __thread size_t pgsz = 0;
|
|
||||||
long r;
|
|
||||||
diff --git a/src/shared/util.h b/src/shared/util.h
|
|
||||||
index e387b12..99972cc 100644
|
|
||||||
--- a/src/shared/util.h
|
|
||||||
+++ b/src/shared/util.h
|
|
||||||
@@ -90,6 +90,8 @@ union dirent_storage {
|
|
||||||
#define ANSI_HIGHLIGHT_YELLOW_ON "\x1B[1;33m"
|
|
||||||
#define ANSI_HIGHLIGHT_OFF "\x1B[0m"
|
|
||||||
|
|
||||||
+bool is_efiboot(void);
|
|
||||||
+
|
|
||||||
usec_t now(clockid_t clock);
|
|
||||||
|
|
||||||
dual_timestamp* dual_timestamp_get(dual_timestamp *ts);
|
|
||||||
--
|
|
||||||
1.7.10.4
|
|
||||||
|
|
||||||
From 1022373284b7562431fb0a6dba45db8af089a0e3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kay Sievers <kay@vrfy.org>
|
|
||||||
Date: Sun, 4 Nov 2012 16:54:19 +0100
|
|
||||||
Subject: [PATCH] kmod-setup: add conditional module loading callback
|
|
||||||
|
|
||||||
---
|
|
||||||
src/core/kmod-setup.c | 32 ++++++++++++++++++++------------
|
|
||||||
1 file changed, 20 insertions(+), 12 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
|
|
||||||
index ce8a8e7..383a6b2 100644
|
|
||||||
--- a/src/core/kmod-setup.c
|
|
||||||
+++ b/src/core/kmod-setup.c
|
|
||||||
@@ -30,11 +30,17 @@
|
|
||||||
|
|
||||||
#include "kmod-setup.h"
|
#include "kmod-setup.h"
|
||||||
|
|
||||||
-static const char * const kmod_table[] = {
|
-static const char * const kmod_table[] = {
|
||||||
- "autofs4", "/sys/class/misc/autofs",
|
- "autofs4", "/sys/class/misc/autofs",
|
||||||
- "ipv6", "/sys/module/ipv6",
|
- "ipv6", "/sys/module/ipv6",
|
||||||
- "efivarfs", "/sys/firmware/efi/efivars",
|
- "unix", "/proc/net/unix"
|
||||||
- "unix", "/proc/net/unix"
|
|
||||||
+typedef struct Kmodule {
|
+typedef struct Kmodule {
|
||||||
+ const char *name;
|
+ const char *name;
|
||||||
+ const char *directory;
|
+ const char *directory;
|
||||||
@ -129,12 +45,11 @@ index ce8a8e7..383a6b2 100644
|
|||||||
+static const KModule kmod_table[] = {
|
+static const KModule kmod_table[] = {
|
||||||
+ { "autofs4", "/sys/class/misc/autofs", NULL } ,
|
+ { "autofs4", "/sys/class/misc/autofs", NULL } ,
|
||||||
+ { "ipv6", "/sys/module/ipv6", NULL },
|
+ { "ipv6", "/sys/module/ipv6", NULL },
|
||||||
+ { "efivarfs", "/sys/firmware/efi/efivars", NULL },
|
|
||||||
+ { "unix", "/proc/net/unix", NULL } ,
|
+ { "unix", "/proc/net/unix", NULL } ,
|
||||||
};
|
};
|
||||||
|
|
||||||
#pragma GCC diagnostic push
|
#pragma GCC diagnostic push
|
||||||
@@ -42,7 +48,8 @@ static const char * const kmod_table[] = {
|
@@ -41,7 +47,8 @@ static const char * const kmod_table[] =
|
||||||
static void systemd_kmod_log(void *data, int priority, const char *file, int line,
|
static void systemd_kmod_log(void *data, int priority, const char *file, int line,
|
||||||
const char *fn, const char *format, va_list args)
|
const char *fn, const char *format, va_list args)
|
||||||
{
|
{
|
||||||
@ -144,7 +59,7 @@ index ce8a8e7..383a6b2 100644
|
|||||||
}
|
}
|
||||||
#pragma GCC diagnostic pop
|
#pragma GCC diagnostic pop
|
||||||
|
|
||||||
@@ -53,13 +60,15 @@ int kmod_setup(void) {
|
@@ -52,13 +59,15 @@ int kmod_setup(void) {
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
for (i = 0; i < ELEMENTSOF(kmod_table); i += 2) {
|
for (i = 0; i < ELEMENTSOF(kmod_table); i += 2) {
|
||||||
@ -162,7 +77,7 @@ index ce8a8e7..383a6b2 100644
|
|||||||
|
|
||||||
if (!ctx) {
|
if (!ctx) {
|
||||||
ctx = kmod_new(NULL, NULL);
|
ctx = kmod_new(NULL, NULL);
|
||||||
@@ -69,13 +78,12 @@ int kmod_setup(void) {
|
@@ -68,13 +77,12 @@ int kmod_setup(void) {
|
||||||
}
|
}
|
||||||
|
|
||||||
kmod_set_log_fn(ctx, systemd_kmod_log, NULL);
|
kmod_set_log_fn(ctx, systemd_kmod_log, NULL);
|
||||||
@ -178,7 +93,7 @@ index ce8a8e7..383a6b2 100644
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,7 +93,7 @@ int kmod_setup(void) {
|
@@ -84,7 +92,7 @@ int kmod_setup(void) {
|
||||||
else if (err == KMOD_PROBE_APPLY_BLACKLIST)
|
else if (err == KMOD_PROBE_APPLY_BLACKLIST)
|
||||||
log_info("Module '%s' is blacklisted", kmod_module_get_name(mod));
|
log_info("Module '%s' is blacklisted", kmod_module_get_name(mod));
|
||||||
else
|
else
|
||||||
@ -187,52 +102,10 @@ index ce8a8e7..383a6b2 100644
|
|||||||
|
|
||||||
kmod_module_unref(mod);
|
kmod_module_unref(mod);
|
||||||
}
|
}
|
||||||
--
|
Index: systemd-195/src/core/mount-setup.c
|
||||||
1.7.10.4
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/core/mount-setup.c
|
||||||
From 3dfb265083347cb5700dc38f7cc0f479f378e6e9 Mon Sep 17 00:00:00 2001
|
+++ systemd-195/src/core/mount-setup.c
|
||||||
From: Kay Sievers <kay@vrfy.org>
|
|
||||||
Date: Sun, 4 Nov 2012 16:55:23 +0100
|
|
||||||
Subject: [PATCH] kmod-setup: mounting efivarfs, *after* we tried to mount it,
|
|
||||||
is pointless
|
|
||||||
|
|
||||||
The mount() system call, which we issue before loading modules, will trigger
|
|
||||||
a modprobe by the kernel and block until it returns. Trying to load it again
|
|
||||||
later, will have exactly the same result as the first time.
|
|
||||||
---
|
|
||||||
src/core/kmod-setup.c | 1 -
|
|
||||||
1 file changed, 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
|
|
||||||
index 383a6b2..20ab232 100644
|
|
||||||
--- a/src/core/kmod-setup.c
|
|
||||||
+++ b/src/core/kmod-setup.c
|
|
||||||
@@ -39,7 +39,6 @@ typedef struct Kmodule {
|
|
||||||
static const KModule kmod_table[] = {
|
|
||||||
{ "autofs4", "/sys/class/misc/autofs", NULL } ,
|
|
||||||
{ "ipv6", "/sys/module/ipv6", NULL },
|
|
||||||
- { "efivarfs", "/sys/firmware/efi/efivars", NULL },
|
|
||||||
{ "unix", "/proc/net/unix", NULL } ,
|
|
||||||
};
|
|
||||||
|
|
||||||
--
|
|
||||||
1.7.10.4
|
|
||||||
|
|
||||||
From 6aa220e019f9dffd96590b06b68f937985204109 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kay Sievers <kay@vrfy.org>
|
|
||||||
Date: Sun, 4 Nov 2012 17:03:48 +0100
|
|
||||||
Subject: [PATCH] mount-setup: try mounting 'efivarfs' only if the system
|
|
||||||
bootet with EFI
|
|
||||||
|
|
||||||
---
|
|
||||||
TODO | 3 ---
|
|
||||||
src/core/mount-setup.c | 50 ++++++++++++++++++++++++++++++++----------------
|
|
||||||
2 files changed, 34 insertions(+), 19 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/core/mount-setup.c b/src/core/mount-setup.c
|
|
||||||
index 9894c7f..98614d0 100644
|
|
||||||
--- a/src/core/mount-setup.c
|
|
||||||
+++ b/src/core/mount-setup.c
|
|
||||||
@@ -46,14 +46,20 @@
|
@@ -46,14 +46,20 @@
|
||||||
#define TTY_GID 5
|
#define TTY_GID 5
|
||||||
#endif
|
#endif
|
||||||
@ -256,7 +129,7 @@ index 9894c7f..98614d0 100644
|
|||||||
} MountPoint;
|
} MountPoint;
|
||||||
|
|
||||||
/* The first three entries we might need before SELinux is up. The
|
/* The first three entries we might need before SELinux is up. The
|
||||||
@@ -62,16 +68,26 @@ typedef struct MountPoint {
|
@@ -62,15 +68,26 @@ typedef struct MountPoint {
|
||||||
#define N_EARLY_MOUNT 4
|
#define N_EARLY_MOUNT 4
|
||||||
|
|
||||||
static const MountPoint mount_table[] = {
|
static const MountPoint mount_table[] = {
|
||||||
@ -264,7 +137,6 @@ index 9894c7f..98614d0 100644
|
|||||||
- { "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, true, true },
|
- { "sysfs", "/sys", "sysfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, true, true },
|
||||||
- { "devtmpfs", "/dev", "devtmpfs", "mode=755", MS_NOSUID|MS_STRICTATIME, true, true },
|
- { "devtmpfs", "/dev", "devtmpfs", "mode=755", MS_NOSUID|MS_STRICTATIME, true, true },
|
||||||
- { "securityfs", "/sys/kernel/security", "securityfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false, false },
|
- { "securityfs", "/sys/kernel/security", "securityfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false, false },
|
||||||
- { "efivarfs", "/sys/firmware/efi/efivars", "efivarfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, false, false },
|
|
||||||
- { "tmpfs", "/dev/shm", "tmpfs", "mode=1777", MS_NOSUID|MS_NODEV|MS_STRICTATIME, true, true },
|
- { "tmpfs", "/dev/shm", "tmpfs", "mode=1777", MS_NOSUID|MS_NODEV|MS_STRICTATIME, true, true },
|
||||||
- { "devpts", "/dev/pts", "devpts", "mode=620,gid=" STRINGIFY(TTY_GID), MS_NOSUID|MS_NOEXEC, false, true },
|
- { "devpts", "/dev/pts", "devpts", "mode=620,gid=" STRINGIFY(TTY_GID), MS_NOSUID|MS_NOEXEC, false, true },
|
||||||
- { "tmpfs", "/run", "tmpfs", "mode=755", MS_NOSUID|MS_NODEV|MS_STRICTATIME, true, true },
|
- { "tmpfs", "/run", "tmpfs", "mode=755", MS_NOSUID|MS_NODEV|MS_STRICTATIME, true, true },
|
||||||
@ -293,7 +165,7 @@ index 9894c7f..98614d0 100644
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* These are API file systems that might be mounted by other software,
|
/* These are API file systems that might be mounted by other software,
|
||||||
@@ -119,6 +135,9 @@ static int mount_one(const MountPoint *p, bool relabel) {
|
@@ -118,6 +135,9 @@ static int mount_one(const MountPoint *p
|
||||||
|
|
||||||
assert(p);
|
assert(p);
|
||||||
|
|
||||||
@ -303,7 +175,7 @@ index 9894c7f..98614d0 100644
|
|||||||
/* Relabel first, just in case */
|
/* Relabel first, just in case */
|
||||||
if (relabel)
|
if (relabel)
|
||||||
label_fix(p->where, true, true);
|
label_fix(p->where, true, true);
|
||||||
@@ -131,7 +150,7 @@ static int mount_one(const MountPoint *p, bool relabel) {
|
@@ -130,7 +150,7 @@ static int mount_one(const MountPoint *p
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* Skip securityfs in a container */
|
/* Skip securityfs in a container */
|
||||||
@ -312,7 +184,7 @@ index 9894c7f..98614d0 100644
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* The access mode here doesn't really matter too much, since
|
/* The access mode here doesn't really matter too much, since
|
||||||
@@ -149,8 +168,8 @@ static int mount_one(const MountPoint *p, bool relabel) {
|
@@ -148,8 +168,8 @@ static int mount_one(const MountPoint *p
|
||||||
p->type,
|
p->type,
|
||||||
p->flags,
|
p->flags,
|
||||||
p->options) < 0) {
|
p->options) < 0) {
|
||||||
@ -323,7 +195,7 @@ index 9894c7f..98614d0 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Relabel again, since we now mounted something fresh here */
|
/* Relabel again, since we now mounted something fresh here */
|
||||||
@@ -289,7 +308,6 @@ int mount_cgroup_controllers(char ***join_controllers) {
|
@@ -288,7 +308,6 @@ int mount_cgroup_controllers(char ***joi
|
||||||
p.type = "cgroup";
|
p.type = "cgroup";
|
||||||
p.options = options;
|
p.options = options;
|
||||||
p.flags = MS_NOSUID|MS_NOEXEC|MS_NODEV;
|
p.flags = MS_NOSUID|MS_NOEXEC|MS_NODEV;
|
||||||
@ -331,6 +203,31 @@ index 9894c7f..98614d0 100644
|
|||||||
|
|
||||||
r = mount_one(&p, true);
|
r = mount_one(&p, true);
|
||||||
free(controller);
|
free(controller);
|
||||||
--
|
Index: systemd-195/src/shared/util.c
|
||||||
1.7.10.4
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/shared/util.c
|
||||||
|
+++ systemd-195/src/shared/util.c
|
||||||
|
@@ -75,6 +75,10 @@ char **saved_argv = NULL;
|
||||||
|
static volatile unsigned cached_columns = 0;
|
||||||
|
static volatile unsigned cached_lines = 0;
|
||||||
|
|
||||||
|
+bool is_efiboot(void) {
|
||||||
|
+ return access("/sys/firmware/efi", F_OK) >= 0;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
size_t page_size(void) {
|
||||||
|
static __thread size_t pgsz = 0;
|
||||||
|
long r;
|
||||||
|
Index: systemd-195/src/shared/util.h
|
||||||
|
===================================================================
|
||||||
|
--- systemd-195.orig/src/shared/util.h
|
||||||
|
+++ systemd-195/src/shared/util.h
|
||||||
|
@@ -90,6 +90,8 @@ union dirent_storage {
|
||||||
|
#define ANSI_HIGHLIGHT_YELLOW_ON "\x1B[1;33m"
|
||||||
|
#define ANSI_HIGHLIGHT_OFF "\x1B[0m"
|
||||||
|
|
||||||
|
+bool is_efiboot(void);
|
||||||
|
+
|
||||||
|
usec_t now(clockid_t clock);
|
||||||
|
|
||||||
|
dual_timestamp* dual_timestamp_get(dual_timestamp *ts);
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Index: systemd-189/src/core/service.c
|
Index: systemd-195/src/core/service.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-189.orig/src/core/service.c
|
--- systemd-195.orig/src/core/service.c
|
||||||
+++ systemd-189/src/core/service.c
|
+++ systemd-195/src/core/service.c
|
||||||
@@ -145,6 +145,7 @@ static void service_init(Unit *u) {
|
@@ -146,6 +146,7 @@ static void service_init(Unit *u) {
|
||||||
#ifdef HAVE_SYSV_COMPAT
|
#ifdef HAVE_SYSV_COMPAT
|
||||||
s->sysv_start_priority = -1;
|
s->sysv_start_priority = -1;
|
||||||
s->sysv_start_priority_from_rcnd = -1;
|
s->sysv_start_priority_from_rcnd = -1;
|
||||||
@ -10,7 +10,7 @@ Index: systemd-189/src/core/service.c
|
|||||||
#endif
|
#endif
|
||||||
s->socket_fd = -1;
|
s->socket_fd = -1;
|
||||||
s->guess_main_pid = true;
|
s->guess_main_pid = true;
|
||||||
@@ -877,6 +878,34 @@ static int service_load_sysv_path(Servic
|
@@ -906,6 +907,34 @@ static int service_load_sysv_path(Servic
|
||||||
free(short_description);
|
free(short_description);
|
||||||
short_description = d;
|
short_description = d;
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ Index: systemd-189/src/core/service.c
|
|||||||
} else if (state == LSB_DESCRIPTION) {
|
} else if (state == LSB_DESCRIPTION) {
|
||||||
|
|
||||||
if (startswith(l, "#\t") || startswith(l, "# ")) {
|
if (startswith(l, "#\t") || startswith(l, "# ")) {
|
||||||
@@ -935,7 +964,8 @@ static int service_load_sysv_path(Servic
|
@@ -963,7 +992,8 @@ static int service_load_sysv_path(Servic
|
||||||
|
|
||||||
/* Special setting for all SysV services */
|
/* Special setting for all SysV services */
|
||||||
s->type = SERVICE_FORKING;
|
s->type = SERVICE_FORKING;
|
||||||
@ -55,7 +55,7 @@ Index: systemd-189/src/core/service.c
|
|||||||
s->guess_main_pid = false;
|
s->guess_main_pid = false;
|
||||||
s->restart = SERVICE_RESTART_NO;
|
s->restart = SERVICE_RESTART_NO;
|
||||||
s->exec_context.ignore_sigpipe = false;
|
s->exec_context.ignore_sigpipe = false;
|
||||||
@@ -2107,7 +2137,7 @@ static void service_enter_running(Servic
|
@@ -2138,7 +2168,7 @@ static void service_enter_running(Servic
|
||||||
if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) &&
|
if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) &&
|
||||||
(s->bus_name_good || s->type != SERVICE_DBUS)) {
|
(s->bus_name_good || s->type != SERVICE_DBUS)) {
|
||||||
#ifdef HAVE_SYSV_COMPAT
|
#ifdef HAVE_SYSV_COMPAT
|
||||||
@ -64,10 +64,10 @@ Index: systemd-189/src/core/service.c
|
|||||||
s->remain_after_exit = false;
|
s->remain_after_exit = false;
|
||||||
#endif
|
#endif
|
||||||
service_set_state(s, SERVICE_RUNNING);
|
service_set_state(s, SERVICE_RUNNING);
|
||||||
Index: systemd-189/src/core/service.h
|
Index: systemd-195/src/core/service.h
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-189.orig/src/core/service.h
|
--- systemd-195.orig/src/core/service.h
|
||||||
+++ systemd-189/src/core/service.h
|
+++ systemd-195/src/core/service.h
|
||||||
@@ -176,6 +176,7 @@ struct Service {
|
@@ -176,6 +176,7 @@ struct Service {
|
||||||
bool is_sysv:1;
|
bool is_sysv:1;
|
||||||
bool sysv_has_lsb:1;
|
bool sysv_has_lsb:1;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
Index: systemd-36/src/systemctl.c
|
Index: systemd-195/src/systemctl/systemctl.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-36.orig/src/systemctl/systemctl.c
|
--- systemd-195.orig/src/systemctl/systemctl.c
|
||||||
+++ systemd-36/src/systemctl/systemctl.c
|
+++ systemd-195/src/systemctl/systemctl.c
|
||||||
@@ -4672,10 +4672,13 @@ static int parse_argv(int argc, char *ar
|
@@ -4678,10 +4678,13 @@ static int parse_argv(int argc, char *ar
|
||||||
/* Hmm, so some other init system is
|
/* Hmm, so some other init system is
|
||||||
* running, we need to forward this
|
* running, we need to forward this
|
||||||
* request to it. For now we simply
|
* request to it. For now we simply
|
||||||
|
@ -14,11 +14,11 @@ disks/read-only remount them anyway before going down.
|
|||||||
src/core/shutdown.c | 7 +++++++
|
src/core/shutdown.c | 7 +++++++
|
||||||
2 files changed, 8 insertions(+)
|
2 files changed, 8 insertions(+)
|
||||||
|
|
||||||
diff --git a/src/core/service.c b/src/core/service.c
|
Index: systemd-195/src/core/service.c
|
||||||
index cf08485..df72aba 100644
|
===================================================================
|
||||||
--- a/src/core/service.c
|
--- systemd-195.orig/src/core/service.c
|
||||||
+++ b/src/core/service.c
|
+++ systemd-195/src/core/service.c
|
||||||
@@ -2485,6 +2485,7 @@ static int service_start_limit_test(Service *s) {
|
@@ -2526,6 +2526,7 @@ static int service_start_limit_test(Serv
|
||||||
|
|
||||||
case SERVICE_START_LIMIT_REBOOT_IMMEDIATE:
|
case SERVICE_START_LIMIT_REBOOT_IMMEDIATE:
|
||||||
log_warning("%s start request repeated too quickly, rebooting immediately.", UNIT(s)->id);
|
log_warning("%s start request repeated too quickly, rebooting immediately.", UNIT(s)->id);
|
||||||
@ -26,10 +26,10 @@ index cf08485..df72aba 100644
|
|||||||
reboot(RB_AUTOBOOT);
|
reboot(RB_AUTOBOOT);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
diff --git a/src/core/shutdown.c b/src/core/shutdown.c
|
Index: systemd-195/src/core/shutdown.c
|
||||||
index cc8c57b..b59aef1 100644
|
===================================================================
|
||||||
--- a/src/core/shutdown.c
|
--- systemd-195.orig/src/core/shutdown.c
|
||||||
+++ b/src/core/shutdown.c
|
+++ systemd-195/src/core/shutdown.c
|
||||||
@@ -273,6 +273,13 @@ int main(int argc, char *argv[]) {
|
@@ -273,6 +273,13 @@ int main(int argc, char *argv[]) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -44,6 +44,3 @@ index cc8c57b..b59aef1 100644
|
|||||||
if (cmd == LINUX_REBOOT_CMD_KEXEC) {
|
if (cmd == LINUX_REBOOT_CMD_KEXEC) {
|
||||||
|
|
||||||
if (!in_container) {
|
if (!in_container) {
|
||||||
--
|
|
||||||
1.7.10.4
|
|
||||||
|
|
||||||
|
@ -1,3 +1,28 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jan 9 09:43:15 UTC 2013 - rmilasan@suse.com
|
||||||
|
|
||||||
|
- udev: path_id - handle Hyper-V devices
|
||||||
|
add: 1008-udev-path_id-handle-Hyper-V-devices.patch
|
||||||
|
- keymap: Update the list of Samsung Series 9 models
|
||||||
|
add: 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch
|
||||||
|
- keymap: Add Samsung 700T
|
||||||
|
add: 1010-keymap-Add-Samsung-700T.patch
|
||||||
|
- libudev: avoid leak during realloc failure
|
||||||
|
add: 1011-libudev-avoid-leak-during-realloc-failure.patch
|
||||||
|
- libudev: do not resolve $attr{device} symlinks
|
||||||
|
add: 1012-libudev-do-not-resolve-attr-device-symlinks.patch
|
||||||
|
- libudev: validate 'udev' argument to udev_enumerate_new()
|
||||||
|
add: 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch
|
||||||
|
- udev: fix whitespace
|
||||||
|
add: 1014-udev-fix-whitespace.patch
|
||||||
|
- udev: properly handle symlink removal by 'change' event
|
||||||
|
add: 1015-udev-properly-handle-symlink-removal-by-change-event.patch
|
||||||
|
- udev: builtin - do not fail builtin initialization if one of
|
||||||
|
them returns an error
|
||||||
|
add: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch
|
||||||
|
- udev: use usec_t and now()
|
||||||
|
add: 1017-udev-use-usec_t-and-now.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Jan 8 12:47:43 UTC 2013 - rmilasan@suse.com
|
Tue Jan 8 12:47:43 UTC 2013 - rmilasan@suse.com
|
||||||
|
|
||||||
@ -12,8 +37,8 @@ Tue Dec 11 00:22:50 UTC 2012 - crrodriguez@opensuse.org
|
|||||||
|
|
||||||
- detect-btrfs-ssd.patch: Fix btrfs detection on SSD.
|
- detect-btrfs-ssd.patch: Fix btrfs detection on SSD.
|
||||||
- timedated-donot-close-bogus-dbus-connection.patch: Avoid
|
- timedated-donot-close-bogus-dbus-connection.patch: Avoid
|
||||||
closing an non-existent dbus connection and getting assertion
|
closing an non-existent dbus connection and getting assertion
|
||||||
failures.
|
failures.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com
|
Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com
|
||||||
|
@ -178,6 +178,26 @@ Patch1005: 1005-udev-fix-sg-autoload-regression.patch
|
|||||||
Patch1006: 1006-fix-devname-prefix.patch
|
Patch1006: 1006-fix-devname-prefix.patch
|
||||||
# PATCH-FIX-UPSTREAM 1007-udevd-add-missing-to-getopt_long-e.patch
|
# PATCH-FIX-UPSTREAM 1007-udevd-add-missing-to-getopt_long-e.patch
|
||||||
Patch1007: 1007-udevd-add-missing-to-getopt_long-e.patch
|
Patch1007: 1007-udevd-add-missing-to-getopt_long-e.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1008-udev-path_id-handle-Hyper-V-devices.patch
|
||||||
|
Patch1008: 1008-udev-path_id-handle-Hyper-V-devices.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch
|
||||||
|
Patch1009: 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1010-keymap-Add-Samsung-700T.patch
|
||||||
|
Patch1010: 1010-keymap-Add-Samsung-700T.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1011-libudev-avoid-leak-during-realloc-failure.patch
|
||||||
|
Patch1011: 1011-libudev-avoid-leak-during-realloc-failure.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1012-libudev-do-not-resolve-attr-device-symlinks.patch
|
||||||
|
Patch1012: 1012-libudev-do-not-resolve-attr-device-symlinks.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch
|
||||||
|
Patch1013: 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1014-udev-fix-whitespace.patch
|
||||||
|
Patch1014: 1014-udev-fix-whitespace.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1015-udev-properly-handle-symlink-removal-by-change-event.patch
|
||||||
|
Patch1015: 1015-udev-properly-handle-symlink-removal-by-change-event.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch
|
||||||
|
Patch1016: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1017-udev-use-usec_t-and-now.patch
|
||||||
|
Patch1017: 1017-udev-use-usec_t-and-now.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Systemd is a system and service manager, compatible with SysV and LSB
|
Systemd is a system and service manager, compatible with SysV and LSB
|
||||||
@ -345,6 +365,16 @@ cp %{SOURCE7} m4/
|
|||||||
%patch1005 -p1
|
%patch1005 -p1
|
||||||
%patch1006 -p1
|
%patch1006 -p1
|
||||||
%patch1007 -p1
|
%patch1007 -p1
|
||||||
|
%patch1008 -p1
|
||||||
|
%patch1009 -p1
|
||||||
|
%patch1010 -p1
|
||||||
|
%patch1011 -p1
|
||||||
|
%patch1012 -p1
|
||||||
|
%patch1013 -p1
|
||||||
|
%patch1014 -p1
|
||||||
|
%patch1015 -p1
|
||||||
|
%patch1016 -p1
|
||||||
|
%patch1017 -p1
|
||||||
|
|
||||||
#systemd
|
#systemd
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
Index: systemd-190/src/vconsole/vconsole-setup.c
|
Index: systemd-195/src/vconsole/vconsole-setup.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-190.orig/src/vconsole/vconsole-setup.c
|
--- systemd-195.orig/src/vconsole/vconsole-setup.c
|
||||||
+++ systemd-190/src/vconsole/vconsole-setup.c
|
+++ systemd-195/src/vconsole/vconsole-setup.c
|
||||||
@@ -287,12 +287,14 @@ int main(int argc, char **argv) {
|
@@ -287,12 +287,14 @@ int main(int argc, char **argv) {
|
||||||
char *vc_kbd_delay = NULL;
|
char *vc_kbd_delay = NULL;
|
||||||
char *vc_kbd_rate = NULL;
|
char *vc_kbd_rate = NULL;
|
||||||
@ -17,7 +17,7 @@ Index: systemd-190/src/vconsole/vconsole-setup.c
|
|||||||
int r = EXIT_FAILURE;
|
int r = EXIT_FAILURE;
|
||||||
pid_t font_pid = 0, keymap_pid = 0;
|
pid_t font_pid = 0, keymap_pid = 0;
|
||||||
|
|
||||||
@@ -388,6 +390,37 @@ int main(int argc, char **argv) {
|
@@ -380,6 +382,37 @@ int main(int argc, char **argv) {
|
||||||
vc_keymap = t;
|
vc_keymap = t;
|
||||||
}
|
}
|
||||||
disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0;
|
disable_capslock = vc_kbd_disable_caps_lock && strcasecmp(vc_kbd_disable_caps_lock, "YES") == 0;
|
||||||
@ -55,7 +55,7 @@ Index: systemd-190/src/vconsole/vconsole-setup.c
|
|||||||
|
|
||||||
#elif defined(TARGET_SUSE)
|
#elif defined(TARGET_SUSE)
|
||||||
r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE,
|
r = parse_env_file("/etc/sysconfig/keyboard", NEWLINE,
|
||||||
@@ -395,6 +428,7 @@ int main(int argc, char **argv) {
|
@@ -387,6 +420,7 @@ int main(int argc, char **argv) {
|
||||||
"KBD_DELAY", &vc_kbd_delay,
|
"KBD_DELAY", &vc_kbd_delay,
|
||||||
"KBD_RATE", &vc_kbd_rate,
|
"KBD_RATE", &vc_kbd_rate,
|
||||||
"KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock,
|
"KBD_DISABLE_CAPS_LOCK", &vc_kbd_disable_caps_lock,
|
||||||
@ -63,7 +63,7 @@ Index: systemd-190/src/vconsole/vconsole-setup.c
|
|||||||
"COMPOSETABLE", &vc_compose_table,
|
"COMPOSETABLE", &vc_compose_table,
|
||||||
NULL);
|
NULL);
|
||||||
if (r < 0 && r != -ENOENT)
|
if (r < 0 && r != -ENOENT)
|
||||||
@@ -565,6 +599,10 @@ int main(int argc, char **argv) {
|
@@ -557,6 +591,10 @@ int main(int argc, char **argv) {
|
||||||
finish:
|
finish:
|
||||||
if (keymap_pid > 0)
|
if (keymap_pid > 0)
|
||||||
wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid);
|
wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid);
|
||||||
@ -74,11 +74,11 @@ Index: systemd-190/src/vconsole/vconsole-setup.c
|
|||||||
|
|
||||||
#ifdef TARGET_SUSE
|
#ifdef TARGET_SUSE
|
||||||
if (compose_table_pid > 0)
|
if (compose_table_pid > 0)
|
||||||
Index: systemd-190/Makefile.am
|
Index: systemd-195/Makefile.am
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-190.orig/Makefile.am
|
--- systemd-195.orig/Makefile.am
|
||||||
+++ systemd-190/Makefile.am
|
+++ systemd-195/Makefile.am
|
||||||
@@ -1989,6 +1989,19 @@ dist_udevrules_DATA += \
|
@@ -2017,6 +2017,19 @@ dist_udevrules_DATA += \
|
||||||
rules/61-accelerometer.rules
|
rules/61-accelerometer.rules
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
@ -98,11 +98,11 @@ Index: systemd-190/Makefile.am
|
|||||||
if ENABLE_GUDEV
|
if ENABLE_GUDEV
|
||||||
if ENABLE_GTK_DOC
|
if ENABLE_GTK_DOC
|
||||||
SUBDIRS += \
|
SUBDIRS += \
|
||||||
Index: systemd-190/configure.ac
|
Index: systemd-195/configure.ac
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-190.orig/configure.ac
|
--- systemd-195.orig/configure.ac
|
||||||
+++ systemd-190/configure.ac
|
+++ systemd-195/configure.ac
|
||||||
@@ -598,6 +598,13 @@ fi
|
@@ -660,6 +660,13 @@ fi
|
||||||
with_distro=`echo ${with_distro} | tr '[[:upper:]]' '[[:lower:]]' `
|
with_distro=`echo ${with_distro} | tr '[[:upper:]]' '[[:lower:]]' `
|
||||||
AC_DEFINE_UNQUOTED(DISTRIBUTION, ["${with_distro}"], [Target Distribution])
|
AC_DEFINE_UNQUOTED(DISTRIBUTION, ["${with_distro}"], [Target Distribution])
|
||||||
|
|
||||||
@ -116,10 +116,10 @@ Index: systemd-190/configure.ac
|
|||||||
# Location of the init scripts as mandated by LSB
|
# Location of the init scripts as mandated by LSB
|
||||||
SYSTEM_SYSVINIT_PATH=/etc/init.d
|
SYSTEM_SYSVINIT_PATH=/etc/init.d
|
||||||
SYSTEM_SYSVRCND_PATH=/etc/rc.d
|
SYSTEM_SYSVRCND_PATH=/etc/rc.d
|
||||||
Index: systemd-190/rules/73-seat-numlock.rules
|
Index: systemd-195/rules/73-seat-numlock.rules
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ systemd-190/rules/73-seat-numlock.rules
|
+++ systemd-195/rules/73-seat-numlock.rules
|
||||||
@@ -0,0 +1,8 @@
|
@@ -0,0 +1,8 @@
|
||||||
+# This file is part of systemd.
|
+# This file is part of systemd.
|
||||||
+#
|
+#
|
||||||
@ -129,10 +129,10 @@ Index: systemd-190/rules/73-seat-numlock.rules
|
|||||||
+# (at your option) any later version.
|
+# (at your option) any later version.
|
||||||
+
|
+
|
||||||
+SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}"
|
+SUBSYSTEM=="tty", ACTION=="add", KERNEL=="tty[0-9]|tty1[0-2]", TEST=="/run/numlock-on", RUN+="numlock-on $env{DEVNAME}"
|
||||||
Index: systemd-190/src/login/numlock-on.c
|
Index: systemd-195/src/login/numlock-on.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ systemd-190/src/login/numlock-on.c
|
+++ systemd-195/src/login/numlock-on.c
|
||||||
@@ -0,0 +1,36 @@
|
@@ -0,0 +1,36 @@
|
||||||
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
|
+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
|
||||||
+
|
+
|
||||||
@ -170,10 +170,10 @@ Index: systemd-190/src/login/numlock-on.c
|
|||||||
+ return EX_IOERR;
|
+ return EX_IOERR;
|
||||||
+ return execv(args[0], args);
|
+ return execv(args[0], args);
|
||||||
+}
|
+}
|
||||||
Index: systemd-190/units/systemd-vconsole-setup.service.in
|
Index: systemd-195/units/systemd-vconsole-setup.service.in
|
||||||
===================================================================
|
===================================================================
|
||||||
--- systemd-190.orig/units/systemd-vconsole-setup.service.in
|
--- systemd-195.orig/units/systemd-vconsole-setup.service.in
|
||||||
+++ systemd-190/units/systemd-vconsole-setup.service.in
|
+++ systemd-195/units/systemd-vconsole-setup.service.in
|
||||||
@@ -11,7 +11,7 @@ Documentation=man:systemd-vconsole-setup
|
@@ -11,7 +11,7 @@ Documentation=man:systemd-vconsole-setup
|
||||||
DefaultDependencies=no
|
DefaultDependencies=no
|
||||||
Conflicts=shutdown.target
|
Conflicts=shutdown.target
|
||||||
|
@ -1,3 +1,28 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jan 9 09:42:50 UTC 2013 - rmilasan@suse.com
|
||||||
|
|
||||||
|
- udev: path_id - handle Hyper-V devices
|
||||||
|
add: 1008-udev-path_id-handle-Hyper-V-devices.patch
|
||||||
|
- keymap: Update the list of Samsung Series 9 models
|
||||||
|
add: 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch
|
||||||
|
- keymap: Add Samsung 700T
|
||||||
|
add: 1010-keymap-Add-Samsung-700T.patch
|
||||||
|
- libudev: avoid leak during realloc failure
|
||||||
|
add: 1011-libudev-avoid-leak-during-realloc-failure.patch
|
||||||
|
- libudev: do not resolve $attr{device} symlinks
|
||||||
|
add: 1012-libudev-do-not-resolve-attr-device-symlinks.patch
|
||||||
|
- libudev: validate 'udev' argument to udev_enumerate_new()
|
||||||
|
add: 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch
|
||||||
|
- udev: fix whitespace
|
||||||
|
add: 1014-udev-fix-whitespace.patch
|
||||||
|
- udev: properly handle symlink removal by 'change' event
|
||||||
|
add: 1015-udev-properly-handle-symlink-removal-by-change-event.patch
|
||||||
|
- udev: builtin - do not fail builtin initialization if one of
|
||||||
|
them returns an error
|
||||||
|
add: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch
|
||||||
|
- udev: use usec_t and now()
|
||||||
|
add: 1017-udev-use-usec_t-and-now.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Jan 8 12:47:43 UTC 2013 - rmilasan@suse.com
|
Tue Jan 8 12:47:43 UTC 2013 - rmilasan@suse.com
|
||||||
|
|
||||||
@ -12,8 +37,8 @@ Tue Dec 11 00:22:50 UTC 2012 - crrodriguez@opensuse.org
|
|||||||
|
|
||||||
- detect-btrfs-ssd.patch: Fix btrfs detection on SSD.
|
- detect-btrfs-ssd.patch: Fix btrfs detection on SSD.
|
||||||
- timedated-donot-close-bogus-dbus-connection.patch: Avoid
|
- timedated-donot-close-bogus-dbus-connection.patch: Avoid
|
||||||
closing an non-existent dbus connection and getting assertion
|
closing an non-existent dbus connection and getting assertion
|
||||||
failures.
|
failures.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com
|
Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com
|
||||||
|
30
systemd.spec
30
systemd.spec
@ -173,6 +173,26 @@ Patch1005: 1005-udev-fix-sg-autoload-regression.patch
|
|||||||
Patch1006: 1006-fix-devname-prefix.patch
|
Patch1006: 1006-fix-devname-prefix.patch
|
||||||
# PATCH-FIX-UPSTREAM 1007-udevd-add-missing-to-getopt_long-e.patch
|
# PATCH-FIX-UPSTREAM 1007-udevd-add-missing-to-getopt_long-e.patch
|
||||||
Patch1007: 1007-udevd-add-missing-to-getopt_long-e.patch
|
Patch1007: 1007-udevd-add-missing-to-getopt_long-e.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1008-udev-path_id-handle-Hyper-V-devices.patch
|
||||||
|
Patch1008: 1008-udev-path_id-handle-Hyper-V-devices.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch
|
||||||
|
Patch1009: 1009-keymap-Update-the-list-of-Samsung-Series-9-models.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1010-keymap-Add-Samsung-700T.patch
|
||||||
|
Patch1010: 1010-keymap-Add-Samsung-700T.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1011-libudev-avoid-leak-during-realloc-failure.patch
|
||||||
|
Patch1011: 1011-libudev-avoid-leak-during-realloc-failure.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1012-libudev-do-not-resolve-attr-device-symlinks.patch
|
||||||
|
Patch1012: 1012-libudev-do-not-resolve-attr-device-symlinks.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch
|
||||||
|
Patch1013: 1013-libudev-validate-udev-argument-to-udev_enumerate_new.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1014-udev-fix-whitespace.patch
|
||||||
|
Patch1014: 1014-udev-fix-whitespace.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1015-udev-properly-handle-symlink-removal-by-change-event.patch
|
||||||
|
Patch1015: 1015-udev-properly-handle-symlink-removal-by-change-event.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch
|
||||||
|
Patch1016: 1016-udev-builtin-do-not-fail-builtin-initialization-if-o.patch
|
||||||
|
# PATCH-FIX-UPSTREAM 1017-udev-use-usec_t-and-now.patch
|
||||||
|
Patch1017: 1017-udev-use-usec_t-and-now.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Systemd is a system and service manager, compatible with SysV and LSB
|
Systemd is a system and service manager, compatible with SysV and LSB
|
||||||
@ -340,6 +360,16 @@ cp %{SOURCE7} m4/
|
|||||||
%patch1005 -p1
|
%patch1005 -p1
|
||||||
%patch1006 -p1
|
%patch1006 -p1
|
||||||
%patch1007 -p1
|
%patch1007 -p1
|
||||||
|
%patch1008 -p1
|
||||||
|
%patch1009 -p1
|
||||||
|
%patch1010 -p1
|
||||||
|
%patch1011 -p1
|
||||||
|
%patch1012 -p1
|
||||||
|
%patch1013 -p1
|
||||||
|
%patch1014 -p1
|
||||||
|
%patch1015 -p1
|
||||||
|
%patch1016 -p1
|
||||||
|
%patch1017 -p1
|
||||||
|
|
||||||
#systemd
|
#systemd
|
||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
|
@ -12,11 +12,11 @@ Date: Mon Dec 3 00:50:55 2012 +0000
|
|||||||
process 14920: arguments to dbus_connection_unref() were incorrect, assertion "connection != NULL" failed in file ../../dbus/dbus-connection.c line 2776.
|
process 14920: arguments to dbus_connection_unref() were incorrect, assertion "connection != NULL" failed in file ../../dbus/dbus-connection.c line 2776.
|
||||||
This is normally a bug in some application using the D-Bus library.
|
This is normally a bug in some application using the D-Bus library.
|
||||||
|
|
||||||
diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
|
Index: systemd-195/src/timedate/timedated.c
|
||||||
index 40ba255..784dadc 100644
|
===================================================================
|
||||||
--- a/src/timedate/timedated.c
|
--- systemd-195.orig/src/timedate/timedated.c
|
||||||
+++ b/src/timedate/timedated.c
|
+++ systemd-195/src/timedate/timedated.c
|
||||||
@@ -936,7 +936,7 @@ static int connect_bus(DBusConnection **_bus) {
|
@@ -943,7 +943,7 @@ static int connect_bus(DBusConnection **
|
||||||
if (!bus) {
|
if (!bus) {
|
||||||
log_error("Failed to get system D-Bus connection: %s", bus_error_message(&error));
|
log_error("Failed to get system D-Bus connection: %s", bus_error_message(&error));
|
||||||
r = -ECONNREFUSED;
|
r = -ECONNREFUSED;
|
||||||
@ -25,7 +25,7 @@ index 40ba255..784dadc 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
dbus_connection_set_exit_on_disconnect(bus, FALSE);
|
dbus_connection_set_exit_on_disconnect(bus, FALSE);
|
||||||
@@ -968,7 +968,7 @@ static int connect_bus(DBusConnection **_bus) {
|
@@ -975,7 +975,7 @@ static int connect_bus(DBusConnection **
|
||||||
fail:
|
fail:
|
||||||
dbus_connection_close(bus);
|
dbus_connection_close(bus);
|
||||||
dbus_connection_unref(bus);
|
dbus_connection_unref(bus);
|
||||||
|
Loading…
Reference in New Issue
Block a user