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
deb573f767
commit
0e78f272ba
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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)) &&
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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());
|
||||
|
@ -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
|
||||
|
||||
|
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 +-
|
||||
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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
30
systemd.spec
30
systemd.spec
@ -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
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user