SHA256
1
0
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:
Robert Milasan 2013-01-09 09:46:41 +00:00 committed by Git OBS Bridge
parent 0227bf9cb1
commit 039f4cc39b
31 changed files with 1129 additions and 284 deletions

View File

@ -6,11 +6,11 @@ Subject: [PATCH] Add bootsplash handling for password dialogs
openSUSE uses bootsplash.org, so add a crude handling for setting the
splash screen to verbose when a password is asked...
---
diff --git a/src/ask-password-api.c b/src/ask-password-api.c
index da967ab..b89bcea 100644
--- a/src/shared/ask-password-api.c
+++ b/src/shared/ask-password-api.c
@@ -62,6 +62,9 @@ int ask_password_tty(
Index: systemd-195/src/shared/ask-password-api.c
===================================================================
--- systemd-195.orig/src/shared/ask-password-api.c
+++ systemd-195/src/shared/ask-password-api.c
@@ -63,6 +63,9 @@ int ask_password_tty(
bool reset_tty = false;
bool silent_mode = false;
bool dirty = false;
@ -20,7 +20,7 @@ index da967ab..b89bcea 100644
enum {
POLL_TTY,
POLL_INOTIFY
@@ -105,6 +108,19 @@ int ask_password_tty(
@@ -106,6 +109,19 @@ int ask_password_tty(
}
reset_tty = true;
@ -40,7 +40,7 @@ index da967ab..b89bcea 100644
}
zero(pollfd);
@@ -239,6 +255,12 @@ finish:
@@ -240,6 +256,12 @@ finish:
close_nointr_nofail(ttyfd);
}

View File

@ -7,10 +7,10 @@ Subject: [PATCH] handle disable_caplock and compose_table and kbd_rate
src/vconsole-setup.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++++-
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-189/src/vconsole/vconsole-setup.c
--- systemd-195.orig/src/vconsole/vconsole-setup.c
+++ systemd-195/src/vconsole/vconsole-setup.c
@@ -40,6 +40,7 @@
#include "log.h"
#include "macro.h"
@ -158,7 +158,7 @@ Index: systemd-189/src/vconsole/vconsole-setup.c
int r = EXIT_FAILURE;
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);
vc_keymap = t;
}
@ -174,7 +174,7 @@ Index: systemd-189/src/vconsole/vconsole-setup.c
NULL);
if (r < 0 && r != -ENOENT)
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);
@ -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)
r = EXIT_SUCCESS;
@@ -451,6 +566,14 @@ finish:
@@ -443,6 +558,14 @@ finish:
if (keymap_pid > 0)
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)
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_map);
free(vc_font_unimap);

View File

@ -12,11 +12,11 @@ Fixes https://bugzilla.novell.com/show_bug.cgi?id=721426
src/service.c | 8 +++++++-
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-37/src/core/service.c
@@ -2014,8 +2014,13 @@ static void service_enter_running(Servic
--- systemd-195.orig/src/core/service.c
+++ systemd-195/src/core/service.c
@@ -2136,8 +2136,13 @@ static void service_enter_running(Servic
cgroup_ok = cgroup_good(s);
if ((main_pid_ok > 0 || (main_pid_ok < 0 && cgroup_ok != 0)) &&

View File

@ -20,10 +20,10 @@ regarding this issue.
src/udevd.c | 13 ++++++++++---
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-190/src/libudev/libudev-device.c
--- systemd-195.orig/src/libudev/libudev-device.c
+++ systemd-195/src/libudev/libudev-device.c
@@ -68,6 +68,7 @@ struct udev_device {
struct udev_list tags_list;
unsigned long long int seqnum;
@ -71,10 +71,10 @@ Index: systemd-190/src/libudev/libudev-device.c
udev_device->watch_handle = -1;
/* copy global properties */
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-190/src/libudev/libudev-private.h
--- systemd-195.orig/src/libudev/libudev-private.h
+++ systemd-195/src/libudev/libudev-private.h
@@ -65,6 +65,7 @@ const char *udev_device_get_id_filename(
void udev_device_set_is_initialized(struct udev_device *udev_device);
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);
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);
Index: systemd-190/src/udev/udevd.c
Index: systemd-195/src/udev/udevd.c
===================================================================
--- systemd-190.orig/src/udev/udevd.c
+++ systemd-190/src/udev/udevd.c
@@ -387,7 +387,7 @@ out:
--- systemd-195.orig/src/udev/udevd.c
+++ systemd-195/src/udev/udevd.c
@@ -388,7 +388,7 @@ out:
}
}
@ -96,7 +96,7 @@ Index: systemd-190/src/udev/udevd.c
{
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;
}
@ -105,7 +105,7 @@ Index: systemd-190/src/udev/udevd.c
if (children_max > 1)
log_debug("maximum number (%i) of children reached\n", children);
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;
udev_list_node_append(&event->node, &event_list);
@ -119,7 +119,7 @@ Index: systemd-190/src/udev/udevd.c
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))
continue;

View File

@ -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
+++ udev-182/src/udev/udev-builtin-path_id.c
@@ -286,6 +286,85 @@ out:
--- systemd-195.orig/src/udev/udev-builtin-path_id.c
+++ systemd-195/src/udev/udev-builtin-path_id.c
@@ -302,6 +302,85 @@ out:
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)
{
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;
}

View File

@ -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
+++ udev-182/rules/60-persistent-storage.rules
--- systemd-195.orig/rules/60-persistent-storage.rules
+++ systemd-195/rules/60-persistent-storage.rules
@@ -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*|cciss*", ENV{DEVTYPE}=="partition", ENV{ID_SERIAL}=="?*", SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n"

View File

@ -1,8 +1,8 @@
Index: udev-182/src/udevd.c
Index: systemd-195/src/udev/udevd.c
===================================================================
--- udev-182.orig/src/udev/udevd.c
+++ udev-182/src/udev/udevd.c
@@ -1683,6 +1683,8 @@ int main(int argc, char *argv[])
--- systemd-195.orig/src/udev/udevd.c
+++ systemd-195/src/udev/udevd.c
@@ -1513,6 +1513,8 @@ int main(int argc, char *argv[])
dev = udev_monitor_receive_device(monitor);
if (dev != NULL) {
udev_device_set_usec_initialized(dev, now_usec());

View File

@ -9,11 +9,11 @@ and this leads to segfault when calling 'systemd-udevd -e'.
src/udev/udevd.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/udev/udevd.c b/src/udev/udevd.c
index ebd601e..ffc48a0 100644
--- a/src/udev/udevd.c
+++ b/src/udev/udevd.c
@@ -1097,7 +1097,7 @@ int main(int argc, char *argv[])
Index: systemd-195/src/udev/udevd.c
===================================================================
--- systemd-195.orig/src/udev/udevd.c
+++ systemd-195/src/udev/udevd.c
@@ -1104,7 +1104,7 @@ int main(int argc, char *argv[])
for (;;) {
int option;
@ -22,6 +22,3 @@ index ebd601e..ffc48a0 100644
if (option == -1)
break;
--
1.7.7

View 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;

View 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"

View 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"

View 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;
}

View 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;
}

View File

@ -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;

View 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;

View File

@ -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);

View File

@ -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);

View 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)

View File

@ -14,11 +14,11 @@ Fixes a FTBFS in Fedora Rawhide.
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index c4638d1..71ea6ad 100644
--- a/configure.ac
+++ b/configure.ac
@@ -171,7 +171,7 @@ CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\
Index: systemd-195/configure.ac
===================================================================
--- systemd-195.orig/configure.ac
+++ systemd-195/configure.ac
@@ -172,7 +172,7 @@ CC_CHECK_FLAGS_APPEND([with_ldflags], [L
-Wl,-z,now])
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])])
save_LIBS="$LIBS"
--
1.7.10.4

View File

@ -15,11 +15,11 @@ Walters' comment.]
src/core/dbus-manager.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/core/dbus-manager.c b/src/core/dbus-manager.c
index 2010241..3cf3e90 100644
--- a/src/core/dbus-manager.c
+++ b/src/core/dbus-manager.c
@@ -1436,7 +1436,6 @@ static DBusHandlerResult bus_manager_message_handler(DBusConnection *connection,
Index: systemd-195/src/core/dbus-manager.c
===================================================================
--- systemd-195.orig/src/core/dbus-manager.c
+++ systemd-195/src/core/dbus-manager.c
@@ -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);
if (r < 0) {
unit_file_list_free(h);
@ -27,6 +27,3 @@ index 2010241..3cf3e90 100644
return bus_send_error_reply(connection, message, NULL, r);
}
--
1.7.10.4

View File

@ -10,11 +10,11 @@ same session as the X session itself.
src/login/logind-dbus.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
index 4326e5b..8b6021d 100644
--- a/src/login/logind-dbus.c
+++ b/src/login/logind-dbus.c
@@ -415,8 +415,7 @@ static int bus_manager_create_session(Manager *m, DBusMessage *message, DBusMess
Index: systemd-195/src/login/logind-dbus.c
===================================================================
--- systemd-195.orig/src/login/logind-dbus.c
+++ systemd-195/src/login/logind-dbus.c
@@ -409,8 +409,7 @@ static int bus_manager_create_session(Ma
if (vtnr != 0)
return -EINVAL;
@ -24,6 +24,3 @@ index 4326e5b..8b6021d 100644
if (s) {
if (seat_can_multi_session(s)) {
--
1.7.10.4

View File

@ -24,102 +24,18 @@ Signed-off-by: Lee, Chun-Yi <jlee@suse.com>
src/core/mount-setup.c | 1 +
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
index cc2a2d9..ce8a8e7 100644
--- a/src/core/kmod-setup.c
+++ b/src/core/kmod-setup.c
@@ -31,9 +31,10 @@
#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 @@
Index: systemd-195/src/core/kmod-setup.c
===================================================================
--- systemd-195.orig/src/core/kmod-setup.c
+++ systemd-195/src/core/kmod-setup.c
@@ -30,10 +30,16 @@
#include "kmod-setup.h"
-static const char * const kmod_table[] = {
- "autofs4", "/sys/class/misc/autofs",
- "ipv6", "/sys/module/ipv6",
- "efivarfs", "/sys/firmware/efi/efivars",
- "unix", "/proc/net/unix"
- "autofs4", "/sys/class/misc/autofs",
- "ipv6", "/sys/module/ipv6",
- "unix", "/proc/net/unix"
+typedef struct Kmodule {
+ const char *name;
+ const char *directory;
@ -129,12 +45,11 @@ index ce8a8e7..383a6b2 100644
+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 } ,
};
#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,
const char *fn, const char *format, va_list args)
{
@ -144,7 +59,7 @@ index ce8a8e7..383a6b2 100644
}
#pragma GCC diagnostic pop
@@ -53,13 +60,15 @@ int kmod_setup(void) {
@@ -52,13 +59,15 @@ int kmod_setup(void) {
int err;
for (i = 0; i < ELEMENTSOF(kmod_table); i += 2) {
@ -162,7 +77,7 @@ index ce8a8e7..383a6b2 100644
if (!ctx) {
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);
@ -178,7 +93,7 @@ index ce8a8e7..383a6b2 100644
continue;
}
@@ -85,7 +93,7 @@ int kmod_setup(void) {
@@ -84,7 +92,7 @@ int kmod_setup(void) {
else if (err == KMOD_PROBE_APPLY_BLACKLIST)
log_info("Module '%s' is blacklisted", kmod_module_get_name(mod));
else
@ -187,52 +102,10 @@ index ce8a8e7..383a6b2 100644
kmod_module_unref(mod);
}
--
1.7.10.4
From 3dfb265083347cb5700dc38f7cc0f479f378e6e9 Mon Sep 17 00:00:00 2001
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
Index: systemd-195/src/core/mount-setup.c
===================================================================
--- systemd-195.orig/src/core/mount-setup.c
+++ systemd-195/src/core/mount-setup.c
@@ -46,14 +46,20 @@
#define TTY_GID 5
#endif
@ -256,7 +129,7 @@ index 9894c7f..98614d0 100644
} MountPoint;
/* 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
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 },
- { "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 },
@ -293,7 +165,7 @@ index 9894c7f..98614d0 100644
};
/* 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);
@ -303,7 +175,7 @@ index 9894c7f..98614d0 100644
/* Relabel first, just in case */
if (relabel)
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;
/* Skip securityfs in a container */
@ -312,7 +184,7 @@ index 9894c7f..98614d0 100644
return 0;
/* 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->flags,
p->options) < 0) {
@ -323,7 +195,7 @@ index 9894c7f..98614d0 100644
}
/* 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.options = options;
p.flags = MS_NOSUID|MS_NOEXEC|MS_NODEV;
@ -331,6 +203,31 @@ index 9894c7f..98614d0 100644
r = mount_one(&p, true);
free(controller);
--
1.7.10.4
Index: systemd-195/src/shared/util.c
===================================================================
--- 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);

View File

@ -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-189/src/core/service.c
@@ -145,6 +145,7 @@ static void service_init(Unit *u) {
--- systemd-195.orig/src/core/service.c
+++ systemd-195/src/core/service.c
@@ -146,6 +146,7 @@ static void service_init(Unit *u) {
#ifdef HAVE_SYSV_COMPAT
s->sysv_start_priority = -1;
s->sysv_start_priority_from_rcnd = -1;
@ -10,7 +10,7 @@ Index: systemd-189/src/core/service.c
#endif
s->socket_fd = -1;
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);
short_description = d;
@ -45,7 +45,7 @@ Index: systemd-189/src/core/service.c
} else if (state == LSB_DESCRIPTION) {
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 */
s->type = SERVICE_FORKING;
@ -55,7 +55,7 @@ Index: systemd-189/src/core/service.c
s->guess_main_pid = false;
s->restart = SERVICE_RESTART_NO;
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)) &&
(s->bus_name_good || s->type != SERVICE_DBUS)) {
#ifdef HAVE_SYSV_COMPAT
@ -64,10 +64,10 @@ Index: systemd-189/src/core/service.c
s->remain_after_exit = false;
#endif
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-189/src/core/service.h
--- systemd-195.orig/src/core/service.h
+++ systemd-195/src/core/service.h
@@ -176,6 +176,7 @@ struct Service {
bool is_sysv:1;
bool sysv_has_lsb:1;

View File

@ -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-36/src/systemctl/systemctl.c
@@ -4672,10 +4672,13 @@ static int parse_argv(int argc, char *ar
--- systemd-195.orig/src/systemctl/systemctl.c
+++ systemd-195/src/systemctl/systemctl.c
@@ -4678,10 +4678,13 @@ static int parse_argv(int argc, char *ar
/* Hmm, so some other init system is
* running, we need to forward this
* request to it. For now we simply

View File

@ -14,11 +14,11 @@ disks/read-only remount them anyway before going down.
src/core/shutdown.c | 7 +++++++
2 files changed, 8 insertions(+)
diff --git a/src/core/service.c b/src/core/service.c
index cf08485..df72aba 100644
--- a/src/core/service.c
+++ b/src/core/service.c
@@ -2485,6 +2485,7 @@ static int service_start_limit_test(Service *s) {
Index: systemd-195/src/core/service.c
===================================================================
--- systemd-195.orig/src/core/service.c
+++ systemd-195/src/core/service.c
@@ -2526,6 +2526,7 @@ static int service_start_limit_test(Serv
case SERVICE_START_LIMIT_REBOOT_IMMEDIATE:
log_warning("%s start request repeated too quickly, rebooting immediately.", UNIT(s)->id);
@ -26,10 +26,10 @@ index cf08485..df72aba 100644
reboot(RB_AUTOBOOT);
break;
diff --git a/src/core/shutdown.c b/src/core/shutdown.c
index cc8c57b..b59aef1 100644
--- a/src/core/shutdown.c
+++ b/src/core/shutdown.c
Index: systemd-195/src/core/shutdown.c
===================================================================
--- systemd-195.orig/src/core/shutdown.c
+++ systemd-195/src/core/shutdown.c
@@ -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 (!in_container) {
--
1.7.10.4

View File

@ -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
@ -12,8 +37,8 @@ Tue Dec 11 00:22:50 UTC 2012 - crrodriguez@opensuse.org
- detect-btrfs-ssd.patch: Fix btrfs detection on SSD.
- timedated-donot-close-bogus-dbus-connection.patch: Avoid
closing an non-existent dbus connection and getting assertion
failures.
closing an non-existent dbus connection and getting assertion
failures.
-------------------------------------------------------------------
Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com

View File

@ -178,6 +178,26 @@ Patch1005: 1005-udev-fix-sg-autoload-regression.patch
Patch1006: 1006-fix-devname-prefix.patch
# PATCH-FIX-UPSTREAM 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
Systemd is a system and service manager, compatible with SysV and LSB
@ -345,6 +365,16 @@ cp %{SOURCE7} m4/
%patch1005 -p1
%patch1006 -p1
%patch1007 -p1
%patch1008 -p1
%patch1009 -p1
%patch1010 -p1
%patch1011 -p1
%patch1012 -p1
%patch1013 -p1
%patch1014 -p1
%patch1015 -p1
%patch1016 -p1
%patch1017 -p1
#systemd
%patch1 -p1

View File

@ -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-190/src/vconsole/vconsole-setup.c
--- systemd-195.orig/src/vconsole/vconsole-setup.c
+++ systemd-195/src/vconsole/vconsole-setup.c
@@ -287,12 +287,14 @@ int main(int argc, char **argv) {
char *vc_kbd_delay = NULL;
char *vc_kbd_rate = NULL;
@ -17,7 +17,7 @@ Index: systemd-190/src/vconsole/vconsole-setup.c
int r = EXIT_FAILURE;
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;
}
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)
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_RATE", &vc_kbd_rate,
"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,
NULL);
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:
if (keymap_pid > 0)
wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid);
@ -74,11 +74,11 @@ Index: systemd-190/src/vconsole/vconsole-setup.c
#ifdef TARGET_SUSE
if (compose_table_pid > 0)
Index: systemd-190/Makefile.am
Index: systemd-195/Makefile.am
===================================================================
--- systemd-190.orig/Makefile.am
+++ systemd-190/Makefile.am
@@ -1989,6 +1989,19 @@ dist_udevrules_DATA += \
--- systemd-195.orig/Makefile.am
+++ systemd-195/Makefile.am
@@ -2017,6 +2017,19 @@ dist_udevrules_DATA += \
rules/61-accelerometer.rules
# ------------------------------------------------------------------------------
@ -98,11 +98,11 @@ Index: systemd-190/Makefile.am
if ENABLE_GUDEV
if ENABLE_GTK_DOC
SUBDIRS += \
Index: systemd-190/configure.ac
Index: systemd-195/configure.ac
===================================================================
--- systemd-190.orig/configure.ac
+++ systemd-190/configure.ac
@@ -598,6 +598,13 @@ fi
--- systemd-195.orig/configure.ac
+++ systemd-195/configure.ac
@@ -660,6 +660,13 @@ fi
with_distro=`echo ${with_distro} | tr '[[:upper:]]' '[[:lower:]]' `
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
SYSTEM_SYSVINIT_PATH=/etc/init.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
+++ systemd-190/rules/73-seat-numlock.rules
+++ systemd-195/rules/73-seat-numlock.rules
@@ -0,0 +1,8 @@
+# This file is part of systemd.
+#
@ -129,10 +129,10 @@ Index: systemd-190/rules/73-seat-numlock.rules
+# (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}"
Index: systemd-190/src/login/numlock-on.c
Index: systemd-195/src/login/numlock-on.c
===================================================================
--- /dev/null
+++ systemd-190/src/login/numlock-on.c
+++ systemd-195/src/login/numlock-on.c
@@ -0,0 +1,36 @@
+/*-*- 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 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-190/units/systemd-vconsole-setup.service.in
--- systemd-195.orig/units/systemd-vconsole-setup.service.in
+++ systemd-195/units/systemd-vconsole-setup.service.in
@@ -11,7 +11,7 @@ Documentation=man:systemd-vconsole-setup
DefaultDependencies=no
Conflicts=shutdown.target

View File

@ -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
@ -12,8 +37,8 @@ Tue Dec 11 00:22:50 UTC 2012 - crrodriguez@opensuse.org
- detect-btrfs-ssd.patch: Fix btrfs detection on SSD.
- timedated-donot-close-bogus-dbus-connection.patch: Avoid
closing an non-existent dbus connection and getting assertion
failures.
closing an non-existent dbus connection and getting assertion
failures.
-------------------------------------------------------------------
Mon Dec 10 14:22:21 UTC 2012 - coolo@suse.com

View File

@ -173,6 +173,26 @@ Patch1005: 1005-udev-fix-sg-autoload-regression.patch
Patch1006: 1006-fix-devname-prefix.patch
# PATCH-FIX-UPSTREAM 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
Systemd is a system and service manager, compatible with SysV and LSB
@ -340,6 +360,16 @@ cp %{SOURCE7} m4/
%patch1005 -p1
%patch1006 -p1
%patch1007 -p1
%patch1008 -p1
%patch1009 -p1
%patch1010 -p1
%patch1011 -p1
%patch1012 -p1
%patch1013 -p1
%patch1014 -p1
%patch1015 -p1
%patch1016 -p1
%patch1017 -p1
#systemd
%patch1 -p1

View File

@ -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.
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 40ba255..784dadc 100644
--- a/src/timedate/timedated.c
+++ b/src/timedate/timedated.c
@@ -936,7 +936,7 @@ static int connect_bus(DBusConnection **_bus) {
Index: systemd-195/src/timedate/timedated.c
===================================================================
--- systemd-195.orig/src/timedate/timedated.c
+++ systemd-195/src/timedate/timedated.c
@@ -943,7 +943,7 @@ static int connect_bus(DBusConnection **
if (!bus) {
log_error("Failed to get system D-Bus connection: %s", bus_error_message(&error));
r = -ECONNREFUSED;
@ -25,7 +25,7 @@ index 40ba255..784dadc 100644
}
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:
dbus_connection_close(bus);
dbus_connection_unref(bus);