forked from pool/systemd
.
OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=778
This commit is contained in:
parent
720539c531
commit
3b1ac91cdb
26
0001-activate-fix-fd-leak-in-do_accept.patch
Normal file
26
0001-activate-fix-fd-leak-in-do_accept.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From aa44499da15a8fa7026463555a7a27e55e4e24a8 Mon Sep 17 00:00:00 2001
|
||||
From: Philippe De Swert <philippedeswert@gmail.com>
|
||||
Date: Wed, 10 Sep 2014 22:14:41 +0300
|
||||
Subject: [PATCH] activate: fix fd leak in do_accept()
|
||||
|
||||
Found with Coverity.
|
||||
---
|
||||
src/activate/activate.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git src/activate/activate.c src/activate/activate.c
|
||||
index 8942773..0a1df37 100644
|
||||
--- src/activate/activate.c
|
||||
+++ src/activate/activate.c
|
||||
@@ -242,7 +242,7 @@ static int launch1(const char* child, char** argv, char **env, int fd) {
|
||||
|
||||
static int do_accept(const char* name, char **argv, char **envp, int fd) {
|
||||
_cleanup_free_ char *local = NULL, *peer = NULL;
|
||||
- int fd2;
|
||||
+ _cleanup_close_ int fd2 = -1;
|
||||
|
||||
fd2 = accept(fd, NULL, NULL);
|
||||
if (fd2 < 0) {
|
||||
--
|
||||
1.7.9.2
|
||||
|
30
0002-analyze-avoid-a-null-dereference.patch
Normal file
30
0002-analyze-avoid-a-null-dereference.patch
Normal file
@ -0,0 +1,30 @@
|
||||
From d725a138c5c311ba06567d6841933aa5b7b6a435 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
|
||||
Date: Thu, 11 Sep 2014 23:41:44 +0200
|
||||
Subject: [PATCH] analyze: avoid a null dereference
|
||||
|
||||
If we have an error in the early sd_bus_* calls then unit_times
|
||||
will still be null.
|
||||
|
||||
Found with coverity. Fixes: CID#996464
|
||||
---
|
||||
src/analyze/analyze.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git src/analyze/analyze.c src/analyze/analyze.c
|
||||
index d860a02..1281d6b 100644
|
||||
--- src/analyze/analyze.c
|
||||
+++ src/analyze/analyze.c
|
||||
@@ -277,7 +277,8 @@ static int acquire_time_data(sd_bus *bus, struct unit_times **out) {
|
||||
return c;
|
||||
|
||||
fail:
|
||||
- free_unit_times(unit_times, (unsigned) c);
|
||||
+ if (unit_times)
|
||||
+ free_unit_times(unit_times, (unsigned) c);
|
||||
return r;
|
||||
}
|
||||
|
||||
--
|
||||
1.7.9.2
|
||||
|
27
0003-analyze-fix-mem-leak.patch
Normal file
27
0003-analyze-fix-mem-leak.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From 0ee9613d98cbe1f36ffc98c6bfa51dd2b798fc6d Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
|
||||
Date: Sat, 13 Sep 2014 12:29:43 +0200
|
||||
Subject: [PATCH] analyze: fix mem leak
|
||||
|
||||
Found with Coverity. Fixes: CID#1237756
|
||||
---
|
||||
src/analyze/analyze.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git src/analyze/analyze.c src/analyze/analyze.c
|
||||
index 1281d6b..82f5cf3 100644
|
||||
--- src/analyze/analyze.c
|
||||
+++ src/analyze/analyze.c
|
||||
@@ -848,7 +848,8 @@ static int list_dependencies(sd_bus *bus, const char *name) {
|
||||
char ts[FORMAT_TIMESPAN_MAX];
|
||||
struct unit_times *times;
|
||||
int r;
|
||||
- const char *path, *id;
|
||||
+ const char *id;
|
||||
+ _cleanup_free_ char *path = NULL;
|
||||
_cleanup_bus_message_unref_ sd_bus_message *reply = NULL;
|
||||
_cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
|
||||
struct boot_times *boot;
|
||||
--
|
||||
1.7.9.2
|
||||
|
@ -0,0 +1,33 @@
|
||||
From b76388e123e8d73ded1fd53937d816b314948517 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Biebl <biebl@debian.org>
|
||||
Date: Thu, 11 Sep 2014 00:49:36 +0200
|
||||
Subject: [PATCH] backlight: Avoid error when state restore is disabled
|
||||
|
||||
When the state restore is disabled, we would print:
|
||||
"Unknown verb: load" instead of simply skipping loading the
|
||||
state.
|
||||
---
|
||||
src/backlight/backlight.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git src/backlight/backlight.c src/backlight/backlight.c
|
||||
index 4d94ebf..0a2bac6 100644
|
||||
--- src/backlight/backlight.c
|
||||
+++ src/backlight/backlight.c
|
||||
@@ -372,9 +372,12 @@ int main(int argc, char *argv[]) {
|
||||
* device probing should be complete), so that the validity
|
||||
* check at boot time doesn't have to be reliable. */
|
||||
|
||||
- if (streq(argv[1], "load") && shall_restore_state()) {
|
||||
+ if (streq(argv[1], "load")) {
|
||||
_cleanup_free_ char *value = NULL;
|
||||
|
||||
+ if (!shall_restore_state())
|
||||
+ return EXIT_SUCCESS;
|
||||
+
|
||||
if (!validate_device(udev, device))
|
||||
return EXIT_SUCCESS;
|
||||
|
||||
--
|
||||
1.7.9.2
|
||||
|
35
0005-bus-avoid-using-m-kdbus-after-freeing-it.patch
Normal file
35
0005-bus-avoid-using-m-kdbus-after-freeing-it.patch
Normal file
@ -0,0 +1,35 @@
|
||||
Based on fd989a0bc999d79719408ac28b126d9c9016bcb5 Mon Sep 17 00:00:00 2001
|
||||
From: Philippe De Swert <philippedeswert@gmail.com>
|
||||
Date: Wed, 10 Sep 2014 12:20:38 +0300
|
||||
Subject: [PATCH] bus: avoid using m->kdbus after freeing it
|
||||
|
||||
m->kdbus could be freed before it is released. Changing the
|
||||
order fixes the issue.
|
||||
|
||||
Found with Coverity. Fixes: CID#1237798
|
||||
---
|
||||
src/libsystemd/sd-bus/bus-message.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
--- src/libsystemd/sd-bus/bus-message.c
|
||||
+++ src/libsystemd/sd-bus/bus-message.c 2014-09-16 10:31:37.538735664 +0000
|
||||
@@ -126,9 +126,6 @@ static void message_free(sd_bus_message
|
||||
|
||||
message_reset_parts(m);
|
||||
|
||||
- if (m->free_kdbus)
|
||||
- free(m->kdbus);
|
||||
-
|
||||
if (m->release_kdbus) {
|
||||
uint64_t off;
|
||||
|
||||
@@ -136,6 +133,9 @@ static void message_free(sd_bus_message
|
||||
ioctl(m->bus->input_fd, KDBUS_CMD_FREE, &off);
|
||||
}
|
||||
|
||||
+ if (m->free_kdbus)
|
||||
+ free(m->kdbus);
|
||||
+
|
||||
if (m->bus)
|
||||
sd_bus_unref(m->bus);
|
||||
|
32
0006-bus-unref-buscreds-on-failure.patch
Normal file
32
0006-bus-unref-buscreds-on-failure.patch
Normal file
@ -0,0 +1,32 @@
|
||||
From 2b347169b9046ff2d735ef23e62a8c74f5151600 Mon Sep 17 00:00:00 2001
|
||||
From: Philippe De Swert <philippedeswert@gmail.com>
|
||||
Date: Wed, 10 Sep 2014 12:20:42 +0300
|
||||
Subject: [PATCH] bus: unref buscreds on failure
|
||||
|
||||
Actually unref the buscreds when we are not going to return a
|
||||
pointer to them. As when bus_creds_add_more fails we immediately
|
||||
return the error code otherwise and leak the new buscreds.
|
||||
Found with coverity. Fixes: CID#1237761
|
||||
---
|
||||
src/libsystemd/sd-bus/sd-bus.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git src/libsystemd/sd-bus/sd-bus.c src/libsystemd/sd-bus/sd-bus.c
|
||||
index 78e91b9..83b3aa1 100644
|
||||
--- src/libsystemd/sd-bus/sd-bus.c
|
||||
+++ src/libsystemd/sd-bus/sd-bus.c
|
||||
@@ -3339,8 +3339,10 @@ _public_ int sd_bus_get_peer_creds(sd_bus *bus, uint64_t mask, sd_bus_creds **re
|
||||
}
|
||||
|
||||
r = bus_creds_add_more(c, mask, pid, 0);
|
||||
- if (r < 0)
|
||||
+ if (r < 0) {
|
||||
+ sd_bus_creds_unref(c);
|
||||
return r;
|
||||
+ }
|
||||
|
||||
*ret = c;
|
||||
return 0;
|
||||
--
|
||||
1.7.9.2
|
||||
|
25
0007-core-fix-a-potential-mem-leak.patch
Normal file
25
0007-core-fix-a-potential-mem-leak.patch
Normal file
@ -0,0 +1,25 @@
|
||||
Based on 4d5e13a125cf8d77d432225ab69826caa1d1cf59 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
|
||||
Date: Sat, 13 Sep 2014 12:35:06 +0200
|
||||
Subject: [PATCH] core: fix a potential mem leak
|
||||
|
||||
Found with Coverity. Fixes: CID#996438
|
||||
---
|
||||
src/core/load-fragment.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
--- src/core/load-fragment.c
|
||||
+++ src/core/load-fragment.c 2014-09-16 10:35:13.354235607 +0000
|
||||
@@ -1294,8 +1294,11 @@ int config_parse_timer(const char *unit,
|
||||
}
|
||||
|
||||
v = new0(TimerValue, 1);
|
||||
- if (!v)
|
||||
+ if (!v) {
|
||||
+ if (c)
|
||||
+ free(c);
|
||||
return log_oom();
|
||||
+ }
|
||||
|
||||
v->base = b;
|
||||
v->clock_id = id;
|
@ -0,0 +1,31 @@
|
||||
From b9289d4c6e13ec5fb67bfce69c826d93b004da6a Mon Sep 17 00:00:00 2001
|
||||
From: Philippe De Swert <philippedeswert@gmail.com>
|
||||
Date: Fri, 12 Sep 2014 16:49:48 +0300
|
||||
Subject: [PATCH] core: smack-setup: Actually allow for succesfully loading
|
||||
CIPSO policy
|
||||
|
||||
The line under the last switch statement *loaded_policy = true;
|
||||
would never be executed. As all switch cases return 0. Thus the
|
||||
policy would never be marked as loaded.
|
||||
|
||||
Found with Coverity. Fixes: CID#1237785
|
||||
---
|
||||
src/core/smack-setup.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git src/core/smack-setup.c src/core/smack-setup.c
|
||||
index 5f6dabf..5d8a26c 100644
|
||||
--- src/core/smack-setup.c
|
||||
+++ src/core/smack-setup.c
|
||||
@@ -158,7 +158,7 @@ int smack_setup(bool *loaded_policy) {
|
||||
return 0;
|
||||
case 0:
|
||||
log_info("Successfully loaded Smack/CIPSO policies.");
|
||||
- return 0;
|
||||
+ break;
|
||||
default:
|
||||
log_warning("Failed to load Smack/CIPSO access rules: %s, ignoring.",
|
||||
strerror(abs(r)));
|
||||
--
|
||||
1.7.9.2
|
||||
|
50
0009-journal-do-not-leak-mmaps-on-OOM.patch
Normal file
50
0009-journal-do-not-leak-mmaps-on-OOM.patch
Normal file
@ -0,0 +1,50 @@
|
||||
From b67ddc7bbe31cde7f69f9814204d9bb1d4623c47 Mon Sep 17 00:00:00 2001
|
||||
From: Philippe De Swert <philippedeswert@gmail.com>
|
||||
Date: Wed, 10 Sep 2014 12:20:41 +0300
|
||||
Subject: [PATCH] journal: do not leak mmaps on OOM
|
||||
|
||||
After a section of memory is succesfully allocated, some of the following
|
||||
actions can still fail due to lack of memory. In this case -ENOMEM is
|
||||
returned without actually freeing the already mapped memory.
|
||||
Found with coverity. Fixes: CID#1237762
|
||||
---
|
||||
src/journal/mmap-cache.c | 10 +++++++---
|
||||
1 file changed, 7 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git src/journal/mmap-cache.c src/journal/mmap-cache.c
|
||||
index 7dbbb5e..908562d 100644
|
||||
--- src/journal/mmap-cache.c
|
||||
+++ src/journal/mmap-cache.c
|
||||
@@ -496,15 +496,15 @@ static int add_mmap(
|
||||
|
||||
c = context_add(m, context);
|
||||
if (!c)
|
||||
- return -ENOMEM;
|
||||
+ goto outofmem;
|
||||
|
||||
f = fd_add(m, fd);
|
||||
if (!f)
|
||||
- return -ENOMEM;
|
||||
+ goto outofmem;
|
||||
|
||||
w = window_add(m);
|
||||
if (!w)
|
||||
- return -ENOMEM;
|
||||
+ goto outofmem;
|
||||
|
||||
w->keep_always = keep_always;
|
||||
w->ptr = d;
|
||||
@@ -522,6 +522,10 @@ static int add_mmap(
|
||||
if (ret)
|
||||
*ret = (uint8_t*) w->ptr + (offset - w->offset);
|
||||
return 1;
|
||||
+
|
||||
+outofmem:
|
||||
+ munmap(d, wsize);
|
||||
+ return -ENOMEM;
|
||||
}
|
||||
|
||||
int mmap_cache_get(
|
||||
--
|
||||
1.7.9.2
|
||||
|
30
0010-manager-use-correct-cleanup-function.patch
Normal file
30
0010-manager-use-correct-cleanup-function.patch
Normal file
@ -0,0 +1,30 @@
|
||||
From 807d0cca2b0daf4cd725298c1b5e062b1126f15b Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Hindoe Paaboel Andersen <phomes@gmail.com>
|
||||
Date: Thu, 11 Sep 2014 21:14:53 +0200
|
||||
Subject: [PATCH] manager: use correct cleanup function
|
||||
|
||||
Close the dir instead of attempt to free it.
|
||||
|
||||
Introduced in 874310b7b68c4c0d36ff07397db30a959bb7dae5
|
||||
|
||||
Found with coverity. Fixes: CID#996368
|
||||
---
|
||||
src/core/manager.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git src/core/manager.c src/core/manager.c
|
||||
index 9abdf47..095111e 100644
|
||||
--- src/core/manager.c
|
||||
+++ src/core/manager.c
|
||||
@@ -896,7 +896,7 @@ static int manager_coldplug(Manager *m) {
|
||||
|
||||
static void manager_build_unit_path_cache(Manager *m) {
|
||||
char **i;
|
||||
- _cleanup_free_ DIR *d = NULL;
|
||||
+ _cleanup_closedir_ DIR *d = NULL;
|
||||
int r;
|
||||
|
||||
assert(m);
|
||||
--
|
||||
1.7.9.2
|
||||
|
349
1078-udev-remove-userspace-firmware-loading-support.patch
Normal file
349
1078-udev-remove-userspace-firmware-loading-support.patch
Normal file
@ -0,0 +1,349 @@
|
||||
From be2ea723b1d023b3d385d3b791ee4607cbfb20ca Mon Sep 17 00:00:00 2001
|
||||
From: Kay Sievers <kay@vrfy.org>
|
||||
Date: Sat, 30 Aug 2014 11:34:20 +0200
|
||||
Subject: [PATCH] udev: remove userspace firmware loading support
|
||||
|
||||
---
|
||||
Makefile.am | 12 ---
|
||||
README | 9 +--
|
||||
TODO | 1 -
|
||||
configure.ac | 20 -----
|
||||
src/udev/udev-builtin-firmware.c | 154 ---------------------------------------
|
||||
src/udev/udev-builtin.c | 3 -
|
||||
src/udev/udev.h | 6 --
|
||||
src/udev/udevd.c | 13 ----
|
||||
|
||||
Index: systemd-210/configure.ac
|
||||
===================================================================
|
||||
--- systemd-210.orig/configure.ac
|
||||
+++ systemd-210/configure.ac
|
||||
@@ -902,25 +902,6 @@ if test "x$have_myhostname" != "xno"; th
|
||||
fi
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
-AC_ARG_WITH(firmware-path,
|
||||
- AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]],
|
||||
- [Firmware search path (default="")]),
|
||||
- [], [with_firmware_path=""])
|
||||
-OLD_IFS=$IFS
|
||||
-IFS=:
|
||||
-for i in $with_firmware_path; do
|
||||
- if test "x${FIRMWARE_PATH}" = "x"; then
|
||||
- FIRMWARE_PATH="\\\"${i}/\\\""
|
||||
- else
|
||||
- FIRMWARE_PATH="${FIRMWARE_PATH}, \\\"${i}/\\\""
|
||||
- fi
|
||||
-done
|
||||
-IFS=$OLD_IFS
|
||||
-AC_SUBST(FIRMWARE_PATH)
|
||||
-AS_IF([test "x${FIRMWARE_PATH}" != "x"], [ AC_DEFINE(HAVE_FIRMWARE, 1, [Define if FIRMWARE is available]) ])
|
||||
-AM_CONDITIONAL(ENABLE_FIRMWARE, [test "x${FIRMWARE_PATH}" != "x"])
|
||||
-
|
||||
-# ------------------------------------------------------------------------------
|
||||
AC_ARG_ENABLE([gudev],
|
||||
AS_HELP_STRING([--disable-gudev], [disable Gobject libudev support @<:@default=enabled@:>@]),
|
||||
[], [enable_gudev=yes])
|
||||
@@ -1137,7 +1118,6 @@ AC_MSG_RESULT([
|
||||
Build Python: ${PYTHON}
|
||||
Installation Python: ${PYTHON_BINARY}
|
||||
sphinx binary: ${SPHINX_BUILD}
|
||||
- firmware path: ${FIRMWARE_PATH}
|
||||
PAM modules dir: ${with_pamlibdir}
|
||||
PAM configuration dir: ${with_pamconfdir}
|
||||
D-Bus policy dir: ${with_dbuspolicydir}
|
||||
Index: systemd-210/Makefile.am
|
||||
===================================================================
|
||||
--- systemd-210.orig/Makefile.am
|
||||
+++ systemd-210/Makefile.am
|
||||
@@ -2677,18 +2677,6 @@ libudev_core_la_LIBADD = \
|
||||
$(BLKID_LIBS) \
|
||||
$(KMOD_LIBS)
|
||||
|
||||
-libudev_core_la_CPPFLAGS = \
|
||||
- $(AM_CPPFLAGS) \
|
||||
- -DFIRMWARE_PATH="$(FIRMWARE_PATH)"
|
||||
-
|
||||
-if ENABLE_FIRMWARE
|
||||
-libudev_core_la_SOURCES += \
|
||||
- src/udev/udev-builtin-firmware.c
|
||||
-
|
||||
-dist_udevrules_DATA += \
|
||||
- rules/50-firmware.rules
|
||||
-endif
|
||||
-
|
||||
if HAVE_KMOD
|
||||
libudev_core_la_SOURCES += \
|
||||
src/udev/udev-builtin-kmod.c
|
||||
Index: systemd-210/README
|
||||
===================================================================
|
||||
--- systemd-210.orig/README
|
||||
+++ systemd-210/README
|
||||
@@ -51,14 +51,14 @@ REQUIREMENTS:
|
||||
|
||||
Linux kernel >= 3.8 for Smack support
|
||||
|
||||
- Udev will fail to work with the legacy layout:
|
||||
+ Udev will fail to work with the legacy sysfs layout:
|
||||
CONFIG_SYSFS_DEPRECATED=n
|
||||
|
||||
Legacy hotplug slows down the system and confuses udev:
|
||||
CONFIG_UEVENT_HELPER_PATH=""
|
||||
|
||||
- Userspace firmware loading is deprecated, will go away, and
|
||||
- sometimes causes problems:
|
||||
+ Userspace firmware loading is not supported and should
|
||||
+ be disabled in the kernel
|
||||
CONFIG_FW_LOADER_USER_HELPER=n
|
||||
|
||||
Some udev rules and virtualization detection relies on it:
|
||||
Index: systemd-210/src/udev/udev-builtin.c
|
||||
===================================================================
|
||||
--- systemd-210.orig/src/udev/udev-builtin.c
|
||||
+++ systemd-210/src/udev/udev-builtin.c
|
||||
@@ -34,9 +34,6 @@ static const struct udev_builtin *builti
|
||||
[UDEV_BUILTIN_BLKID] = &udev_builtin_blkid,
|
||||
#endif
|
||||
[UDEV_BUILTIN_BTRFS] = &udev_builtin_btrfs,
|
||||
-#ifdef HAVE_FIRMWARE
|
||||
- [UDEV_BUILTIN_FIRMWARE] = &udev_builtin_firmware,
|
||||
-#endif
|
||||
[UDEV_BUILTIN_HWDB] = &udev_builtin_hwdb,
|
||||
[UDEV_BUILTIN_INPUT_ID] = &udev_builtin_input_id,
|
||||
[UDEV_BUILTIN_KEYBOARD] = &udev_builtin_keyboard,
|
||||
Index: systemd-210/src/udev/udev-builtin-firmware.c
|
||||
===================================================================
|
||||
--- systemd-210.orig/src/udev/udev-builtin-firmware.c
|
||||
+++ /dev/null
|
||||
@@ -1,157 +0,0 @@
|
||||
-/*
|
||||
- * firmware - Kernel firmware loader
|
||||
- *
|
||||
- * Copyright (C) 2009 Piter Punk <piterpunk@slackware.com>
|
||||
- * Copyright (C) 2009-2011 Kay Sievers <kay@vrfy.org>
|
||||
- *
|
||||
- * This program is free software; you can redistribute it and/or
|
||||
- * modify it under the terms of the GNU General Public License as
|
||||
- * published by the Free Software Foundation; either version 2 of the
|
||||
- * License, or (at your option) any later version.
|
||||
- *
|
||||
- * This program is distributed in the hope that it will be useful, but
|
||||
- * WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
- * General Public License for more details:*
|
||||
- */
|
||||
-
|
||||
-#include <unistd.h>
|
||||
-#include <stdlib.h>
|
||||
-#include <string.h>
|
||||
-#include <stdio.h>
|
||||
-#include <getopt.h>
|
||||
-#include <errno.h>
|
||||
-#include <stdbool.h>
|
||||
-#include <sys/utsname.h>
|
||||
-#include <sys/stat.h>
|
||||
-
|
||||
-#include "udev.h"
|
||||
-
|
||||
-static bool set_loading(struct udev *udev, char *loadpath, const char *state)
|
||||
-{
|
||||
- FILE *ldfile;
|
||||
-
|
||||
- ldfile = fopen(loadpath, "we");
|
||||
- if (ldfile == NULL) {
|
||||
- log_error("error: can not open '%s'", loadpath);
|
||||
- return false;
|
||||
- };
|
||||
- fprintf(ldfile, "%s\n", state);
|
||||
- fclose(ldfile);
|
||||
- return true;
|
||||
-}
|
||||
-
|
||||
-static bool copy_firmware(struct udev *udev, const char *source, const char *target, size_t size)
|
||||
-{
|
||||
- char *buf;
|
||||
- FILE *fsource = NULL, *ftarget = NULL;
|
||||
- bool ret = false;
|
||||
-
|
||||
- buf = malloc(size);
|
||||
- if (buf == NULL) {
|
||||
- log_error("No memory available to load firmware file");
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- log_debug("writing '%s' (%zi) to '%s'", source, size, target);
|
||||
-
|
||||
- fsource = fopen(source, "re");
|
||||
- if (fsource == NULL)
|
||||
- goto exit;
|
||||
- ftarget = fopen(target, "we");
|
||||
- if (ftarget == NULL)
|
||||
- goto exit;
|
||||
- if (fread(buf, size, 1, fsource) != 1)
|
||||
- goto exit;
|
||||
- if (fwrite(buf, size, 1, ftarget) == 1)
|
||||
- ret = true;
|
||||
-exit:
|
||||
- if (ftarget != NULL)
|
||||
- fclose(ftarget);
|
||||
- if (fsource != NULL)
|
||||
- fclose(fsource);
|
||||
- free(buf);
|
||||
- return ret;
|
||||
-}
|
||||
-
|
||||
-static int builtin_firmware(struct udev_device *dev, int argc, char *argv[], bool test)
|
||||
-{
|
||||
- struct udev *udev = udev_device_get_udev(dev);
|
||||
- static const char *searchpath[] = { FIRMWARE_PATH };
|
||||
- char loadpath[UTIL_PATH_SIZE];
|
||||
- char datapath[UTIL_PATH_SIZE];
|
||||
- char fwpath[UTIL_PATH_SIZE];
|
||||
- const char *firmware;
|
||||
- FILE *fwfile = NULL;
|
||||
- struct utsname kernel;
|
||||
- struct stat statbuf;
|
||||
- unsigned int i;
|
||||
- int rc = EXIT_SUCCESS;
|
||||
-
|
||||
- firmware = udev_device_get_property_value(dev, "FIRMWARE");
|
||||
- if (firmware == NULL) {
|
||||
- log_error("firmware parameter missing");
|
||||
- rc = EXIT_FAILURE;
|
||||
- goto exit;
|
||||
- }
|
||||
-
|
||||
- /* lookup firmware file */
|
||||
- uname(&kernel);
|
||||
- for (i = 0; i < ELEMENTSOF(searchpath); i++) {
|
||||
- strscpyl(fwpath, sizeof(fwpath), searchpath[i], kernel.release, "/", firmware, NULL);
|
||||
- fwfile = fopen(fwpath, "re");
|
||||
- if (fwfile != NULL)
|
||||
- break;
|
||||
-
|
||||
- strscpyl(fwpath, sizeof(fwpath), searchpath[i], firmware, NULL);
|
||||
- fwfile = fopen(fwpath, "re");
|
||||
- if (fwfile != NULL)
|
||||
- break;
|
||||
- }
|
||||
-
|
||||
- strscpyl(loadpath, sizeof(loadpath), udev_device_get_syspath(dev), "/loading", NULL);
|
||||
-
|
||||
- if (fwfile == NULL) {
|
||||
- log_debug("did not find firmware file '%s'", firmware);
|
||||
- rc = EXIT_FAILURE;
|
||||
- /*
|
||||
- * Do not cancel the request in the initrd, the real root might have
|
||||
- * the firmware file and the 'coldplug' run in the real root will find
|
||||
- * this pending request and fulfill or cancel it.
|
||||
- * */
|
||||
- if (!in_initrd())
|
||||
- set_loading(udev, loadpath, "-1");
|
||||
- goto exit;
|
||||
- }
|
||||
-
|
||||
- if (stat(fwpath, &statbuf) < 0 || statbuf.st_size == 0) {
|
||||
- if (!in_initrd())
|
||||
- set_loading(udev, loadpath, "-1");
|
||||
- rc = EXIT_FAILURE;
|
||||
- goto exit;
|
||||
- }
|
||||
-
|
||||
- if (!set_loading(udev, loadpath, "1"))
|
||||
- goto exit;
|
||||
-
|
||||
- strscpyl(datapath, sizeof(datapath), udev_device_get_syspath(dev), "/data", NULL);
|
||||
- if (!copy_firmware(udev, fwpath, datapath, statbuf.st_size)) {
|
||||
- log_error("error sending firmware '%s' to device", firmware);
|
||||
- set_loading(udev, loadpath, "-1");
|
||||
- rc = EXIT_FAILURE;
|
||||
- goto exit;
|
||||
- };
|
||||
-
|
||||
- set_loading(udev, loadpath, "0");
|
||||
-exit:
|
||||
- if (fwfile)
|
||||
- fclose(fwfile);
|
||||
- return rc;
|
||||
-}
|
||||
-
|
||||
-const struct udev_builtin udev_builtin_firmware = {
|
||||
- .name = "firmware",
|
||||
- .cmd = builtin_firmware,
|
||||
- .help = "kernel firmware loader",
|
||||
- .run_once = true,
|
||||
-};
|
||||
Index: systemd-210/src/udev/udevd.c
|
||||
===================================================================
|
||||
--- systemd-210.orig/src/udev/udevd.c
|
||||
+++ systemd-210/src/udev/udevd.c
|
||||
@@ -100,9 +100,6 @@ struct event {
|
||||
dev_t devnum;
|
||||
int ifindex;
|
||||
bool is_block;
|
||||
-#ifdef HAVE_FIRMWARE
|
||||
- bool nodelay;
|
||||
-#endif
|
||||
};
|
||||
|
||||
static inline struct event *node_to_event(struct udev_list_node *node)
|
||||
@@ -474,10 +471,6 @@ static int event_queue_insert(struct ude
|
||||
event->devnum = udev_device_get_devnum(dev);
|
||||
event->is_block = streq("block", udev_device_get_subsystem(dev));
|
||||
event->ifindex = udev_device_get_ifindex(dev);
|
||||
-#ifdef HAVE_FIRMWARE
|
||||
- if (streq(udev_device_get_subsystem(dev), "firmware"))
|
||||
- event->nodelay = true;
|
||||
-#endif
|
||||
|
||||
udev_queue_export_device_queued(udev_queue_export, dev);
|
||||
log_debug("seq %llu queued, '%s' '%s'", udev_device_get_seqnum(dev),
|
||||
@@ -557,12 +550,6 @@ static bool is_devpath_busy(struct event
|
||||
return true;
|
||||
}
|
||||
|
||||
-#ifdef HAVE_FIRMWARE
|
||||
- /* allow to bypass the dependency tracking */
|
||||
- if (event->nodelay)
|
||||
- continue;
|
||||
-#endif
|
||||
-
|
||||
/* parent device event found */
|
||||
if (event->devpath[common] == '/') {
|
||||
event->delaying_seqnum = loop_event->seqnum;
|
||||
Index: systemd-210/src/udev/udev.h
|
||||
===================================================================
|
||||
--- systemd-210.orig/src/udev/udev.h
|
||||
+++ systemd-210/src/udev/udev.h
|
||||
@@ -141,9 +141,6 @@ enum udev_builtin_cmd {
|
||||
UDEV_BUILTIN_BLKID,
|
||||
#endif
|
||||
UDEV_BUILTIN_BTRFS,
|
||||
-#ifdef HAVE_FIRMWARE
|
||||
- UDEV_BUILTIN_FIRMWARE,
|
||||
-#endif
|
||||
UDEV_BUILTIN_HWDB,
|
||||
UDEV_BUILTIN_INPUT_ID,
|
||||
UDEV_BUILTIN_KEYBOARD,
|
||||
@@ -172,9 +169,6 @@ struct udev_builtin {
|
||||
extern const struct udev_builtin udev_builtin_blkid;
|
||||
#endif
|
||||
extern const struct udev_builtin udev_builtin_btrfs;
|
||||
-#ifdef HAVE_FIRMWARE
|
||||
-extern const struct udev_builtin udev_builtin_firmware;
|
||||
-#endif
|
||||
extern const struct udev_builtin udev_builtin_hwdb;
|
||||
extern const struct udev_builtin udev_builtin_input_id;
|
||||
extern const struct udev_builtin udev_builtin_keyboard;
|
||||
Index: systemd-210/TODO
|
||||
===================================================================
|
||||
--- systemd-210.orig/TODO
|
||||
+++ systemd-210/TODO
|
||||
@@ -541,7 +541,6 @@ Features:
|
||||
* ExecOnFailure=/usr/bin/foo
|
||||
|
||||
* udev:
|
||||
- - remove src/udev/udev-builtin-firmware.c (CONFIG_FW_LOADER_USER_HELPER=n)
|
||||
- move to LGPL
|
||||
- kill scsi_id
|
||||
- add trigger --subsystem-match=usb/usb_device device
|
||||
|
349
1079-udev-remove-userspace-firmware-loading-support.patch
Normal file
349
1079-udev-remove-userspace-firmware-loading-support.patch
Normal file
@ -0,0 +1,349 @@
|
||||
From be2ea723b1d023b3d385d3b791ee4607cbfb20ca Mon Sep 17 00:00:00 2001
|
||||
From: Kay Sievers <kay@vrfy.org>
|
||||
Date: Sat, 30 Aug 2014 11:34:20 +0200
|
||||
Subject: [PATCH] udev: remove userspace firmware loading support
|
||||
|
||||
---
|
||||
Makefile.am | 12 ---
|
||||
README | 9 +--
|
||||
TODO | 1 -
|
||||
configure.ac | 20 -----
|
||||
src/udev/udev-builtin-firmware.c | 154 ---------------------------------------
|
||||
src/udev/udev-builtin.c | 3 -
|
||||
src/udev/udev.h | 6 --
|
||||
src/udev/udevd.c | 13 ----
|
||||
|
||||
Index: systemd-210/configure.ac
|
||||
===================================================================
|
||||
--- systemd-210.orig/configure.ac
|
||||
+++ systemd-210/configure.ac
|
||||
@@ -902,25 +902,6 @@ if test "x$have_myhostname" != "xno"; th
|
||||
fi
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
-AC_ARG_WITH(firmware-path,
|
||||
- AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]],
|
||||
- [Firmware search path (default="")]),
|
||||
- [], [with_firmware_path=""])
|
||||
-OLD_IFS=$IFS
|
||||
-IFS=:
|
||||
-for i in $with_firmware_path; do
|
||||
- if test "x${FIRMWARE_PATH}" = "x"; then
|
||||
- FIRMWARE_PATH="\\\"${i}/\\\""
|
||||
- else
|
||||
- FIRMWARE_PATH="${FIRMWARE_PATH}, \\\"${i}/\\\""
|
||||
- fi
|
||||
-done
|
||||
-IFS=$OLD_IFS
|
||||
-AC_SUBST(FIRMWARE_PATH)
|
||||
-AS_IF([test "x${FIRMWARE_PATH}" != "x"], [ AC_DEFINE(HAVE_FIRMWARE, 1, [Define if FIRMWARE is available]) ])
|
||||
-AM_CONDITIONAL(ENABLE_FIRMWARE, [test "x${FIRMWARE_PATH}" != "x"])
|
||||
-
|
||||
-# ------------------------------------------------------------------------------
|
||||
AC_ARG_ENABLE([gudev],
|
||||
AS_HELP_STRING([--disable-gudev], [disable Gobject libudev support @<:@default=enabled@:>@]),
|
||||
[], [enable_gudev=yes])
|
||||
@@ -1137,7 +1118,6 @@ AC_MSG_RESULT([
|
||||
Build Python: ${PYTHON}
|
||||
Installation Python: ${PYTHON_BINARY}
|
||||
sphinx binary: ${SPHINX_BUILD}
|
||||
- firmware path: ${FIRMWARE_PATH}
|
||||
PAM modules dir: ${with_pamlibdir}
|
||||
PAM configuration dir: ${with_pamconfdir}
|
||||
D-Bus policy dir: ${with_dbuspolicydir}
|
||||
Index: systemd-210/Makefile.am
|
||||
===================================================================
|
||||
--- systemd-210.orig/Makefile.am
|
||||
+++ systemd-210/Makefile.am
|
||||
@@ -2677,18 +2677,6 @@ libudev_core_la_LIBADD = \
|
||||
$(BLKID_LIBS) \
|
||||
$(KMOD_LIBS)
|
||||
|
||||
-libudev_core_la_CPPFLAGS = \
|
||||
- $(AM_CPPFLAGS) \
|
||||
- -DFIRMWARE_PATH="$(FIRMWARE_PATH)"
|
||||
-
|
||||
-if ENABLE_FIRMWARE
|
||||
-libudev_core_la_SOURCES += \
|
||||
- src/udev/udev-builtin-firmware.c
|
||||
-
|
||||
-dist_udevrules_DATA += \
|
||||
- rules/50-firmware.rules
|
||||
-endif
|
||||
-
|
||||
if HAVE_KMOD
|
||||
libudev_core_la_SOURCES += \
|
||||
src/udev/udev-builtin-kmod.c
|
||||
Index: systemd-210/README
|
||||
===================================================================
|
||||
--- systemd-210.orig/README
|
||||
+++ systemd-210/README
|
||||
@@ -51,14 +51,14 @@ REQUIREMENTS:
|
||||
|
||||
Linux kernel >= 3.8 for Smack support
|
||||
|
||||
- Udev will fail to work with the legacy layout:
|
||||
+ Udev will fail to work with the legacy sysfs layout:
|
||||
CONFIG_SYSFS_DEPRECATED=n
|
||||
|
||||
Legacy hotplug slows down the system and confuses udev:
|
||||
CONFIG_UEVENT_HELPER_PATH=""
|
||||
|
||||
- Userspace firmware loading is deprecated, will go away, and
|
||||
- sometimes causes problems:
|
||||
+ Userspace firmware loading is not supported and should
|
||||
+ be disabled in the kernel
|
||||
CONFIG_FW_LOADER_USER_HELPER=n
|
||||
|
||||
Some udev rules and virtualization detection relies on it:
|
||||
Index: systemd-210/src/udev/udev-builtin.c
|
||||
===================================================================
|
||||
--- systemd-210.orig/src/udev/udev-builtin.c
|
||||
+++ systemd-210/src/udev/udev-builtin.c
|
||||
@@ -34,9 +34,6 @@ static const struct udev_builtin *builti
|
||||
[UDEV_BUILTIN_BLKID] = &udev_builtin_blkid,
|
||||
#endif
|
||||
[UDEV_BUILTIN_BTRFS] = &udev_builtin_btrfs,
|
||||
-#ifdef HAVE_FIRMWARE
|
||||
- [UDEV_BUILTIN_FIRMWARE] = &udev_builtin_firmware,
|
||||
-#endif
|
||||
[UDEV_BUILTIN_HWDB] = &udev_builtin_hwdb,
|
||||
[UDEV_BUILTIN_INPUT_ID] = &udev_builtin_input_id,
|
||||
[UDEV_BUILTIN_KEYBOARD] = &udev_builtin_keyboard,
|
||||
Index: systemd-210/src/udev/udev-builtin-firmware.c
|
||||
===================================================================
|
||||
--- systemd-210.orig/src/udev/udev-builtin-firmware.c
|
||||
+++ /dev/null
|
||||
@@ -1,157 +0,0 @@
|
||||
-/*
|
||||
- * firmware - Kernel firmware loader
|
||||
- *
|
||||
- * Copyright (C) 2009 Piter Punk <piterpunk@slackware.com>
|
||||
- * Copyright (C) 2009-2011 Kay Sievers <kay@vrfy.org>
|
||||
- *
|
||||
- * This program is free software; you can redistribute it and/or
|
||||
- * modify it under the terms of the GNU General Public License as
|
||||
- * published by the Free Software Foundation; either version 2 of the
|
||||
- * License, or (at your option) any later version.
|
||||
- *
|
||||
- * This program is distributed in the hope that it will be useful, but
|
||||
- * WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
- * General Public License for more details:*
|
||||
- */
|
||||
-
|
||||
-#include <unistd.h>
|
||||
-#include <stdlib.h>
|
||||
-#include <string.h>
|
||||
-#include <stdio.h>
|
||||
-#include <getopt.h>
|
||||
-#include <errno.h>
|
||||
-#include <stdbool.h>
|
||||
-#include <sys/utsname.h>
|
||||
-#include <sys/stat.h>
|
||||
-
|
||||
-#include "udev.h"
|
||||
-
|
||||
-static bool set_loading(struct udev *udev, char *loadpath, const char *state)
|
||||
-{
|
||||
- FILE *ldfile;
|
||||
-
|
||||
- ldfile = fopen(loadpath, "we");
|
||||
- if (ldfile == NULL) {
|
||||
- log_error("error: can not open '%s'", loadpath);
|
||||
- return false;
|
||||
- };
|
||||
- fprintf(ldfile, "%s\n", state);
|
||||
- fclose(ldfile);
|
||||
- return true;
|
||||
-}
|
||||
-
|
||||
-static bool copy_firmware(struct udev *udev, const char *source, const char *target, size_t size)
|
||||
-{
|
||||
- char *buf;
|
||||
- FILE *fsource = NULL, *ftarget = NULL;
|
||||
- bool ret = false;
|
||||
-
|
||||
- buf = malloc(size);
|
||||
- if (buf == NULL) {
|
||||
- log_error("No memory available to load firmware file");
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- log_debug("writing '%s' (%zi) to '%s'", source, size, target);
|
||||
-
|
||||
- fsource = fopen(source, "re");
|
||||
- if (fsource == NULL)
|
||||
- goto exit;
|
||||
- ftarget = fopen(target, "we");
|
||||
- if (ftarget == NULL)
|
||||
- goto exit;
|
||||
- if (fread(buf, size, 1, fsource) != 1)
|
||||
- goto exit;
|
||||
- if (fwrite(buf, size, 1, ftarget) == 1)
|
||||
- ret = true;
|
||||
-exit:
|
||||
- if (ftarget != NULL)
|
||||
- fclose(ftarget);
|
||||
- if (fsource != NULL)
|
||||
- fclose(fsource);
|
||||
- free(buf);
|
||||
- return ret;
|
||||
-}
|
||||
-
|
||||
-static int builtin_firmware(struct udev_device *dev, int argc, char *argv[], bool test)
|
||||
-{
|
||||
- struct udev *udev = udev_device_get_udev(dev);
|
||||
- static const char *searchpath[] = { FIRMWARE_PATH };
|
||||
- char loadpath[UTIL_PATH_SIZE];
|
||||
- char datapath[UTIL_PATH_SIZE];
|
||||
- char fwpath[UTIL_PATH_SIZE];
|
||||
- const char *firmware;
|
||||
- FILE *fwfile = NULL;
|
||||
- struct utsname kernel;
|
||||
- struct stat statbuf;
|
||||
- unsigned int i;
|
||||
- int rc = EXIT_SUCCESS;
|
||||
-
|
||||
- firmware = udev_device_get_property_value(dev, "FIRMWARE");
|
||||
- if (firmware == NULL) {
|
||||
- log_error("firmware parameter missing");
|
||||
- rc = EXIT_FAILURE;
|
||||
- goto exit;
|
||||
- }
|
||||
-
|
||||
- /* lookup firmware file */
|
||||
- uname(&kernel);
|
||||
- for (i = 0; i < ELEMENTSOF(searchpath); i++) {
|
||||
- strscpyl(fwpath, sizeof(fwpath), searchpath[i], kernel.release, "/", firmware, NULL);
|
||||
- fwfile = fopen(fwpath, "re");
|
||||
- if (fwfile != NULL)
|
||||
- break;
|
||||
-
|
||||
- strscpyl(fwpath, sizeof(fwpath), searchpath[i], firmware, NULL);
|
||||
- fwfile = fopen(fwpath, "re");
|
||||
- if (fwfile != NULL)
|
||||
- break;
|
||||
- }
|
||||
-
|
||||
- strscpyl(loadpath, sizeof(loadpath), udev_device_get_syspath(dev), "/loading", NULL);
|
||||
-
|
||||
- if (fwfile == NULL) {
|
||||
- log_debug("did not find firmware file '%s'", firmware);
|
||||
- rc = EXIT_FAILURE;
|
||||
- /*
|
||||
- * Do not cancel the request in the initrd, the real root might have
|
||||
- * the firmware file and the 'coldplug' run in the real root will find
|
||||
- * this pending request and fulfill or cancel it.
|
||||
- * */
|
||||
- if (!in_initrd())
|
||||
- set_loading(udev, loadpath, "-1");
|
||||
- goto exit;
|
||||
- }
|
||||
-
|
||||
- if (stat(fwpath, &statbuf) < 0 || statbuf.st_size == 0) {
|
||||
- if (!in_initrd())
|
||||
- set_loading(udev, loadpath, "-1");
|
||||
- rc = EXIT_FAILURE;
|
||||
- goto exit;
|
||||
- }
|
||||
-
|
||||
- if (!set_loading(udev, loadpath, "1"))
|
||||
- goto exit;
|
||||
-
|
||||
- strscpyl(datapath, sizeof(datapath), udev_device_get_syspath(dev), "/data", NULL);
|
||||
- if (!copy_firmware(udev, fwpath, datapath, statbuf.st_size)) {
|
||||
- log_error("error sending firmware '%s' to device", firmware);
|
||||
- set_loading(udev, loadpath, "-1");
|
||||
- rc = EXIT_FAILURE;
|
||||
- goto exit;
|
||||
- };
|
||||
-
|
||||
- set_loading(udev, loadpath, "0");
|
||||
-exit:
|
||||
- if (fwfile)
|
||||
- fclose(fwfile);
|
||||
- return rc;
|
||||
-}
|
||||
-
|
||||
-const struct udev_builtin udev_builtin_firmware = {
|
||||
- .name = "firmware",
|
||||
- .cmd = builtin_firmware,
|
||||
- .help = "kernel firmware loader",
|
||||
- .run_once = true,
|
||||
-};
|
||||
Index: systemd-210/src/udev/udevd.c
|
||||
===================================================================
|
||||
--- systemd-210.orig/src/udev/udevd.c
|
||||
+++ systemd-210/src/udev/udevd.c
|
||||
@@ -100,9 +100,6 @@ struct event {
|
||||
dev_t devnum;
|
||||
int ifindex;
|
||||
bool is_block;
|
||||
-#ifdef HAVE_FIRMWARE
|
||||
- bool nodelay;
|
||||
-#endif
|
||||
};
|
||||
|
||||
static inline struct event *node_to_event(struct udev_list_node *node)
|
||||
@@ -474,10 +471,6 @@ static int event_queue_insert(struct ude
|
||||
event->devnum = udev_device_get_devnum(dev);
|
||||
event->is_block = streq("block", udev_device_get_subsystem(dev));
|
||||
event->ifindex = udev_device_get_ifindex(dev);
|
||||
-#ifdef HAVE_FIRMWARE
|
||||
- if (streq(udev_device_get_subsystem(dev), "firmware"))
|
||||
- event->nodelay = true;
|
||||
-#endif
|
||||
|
||||
log_debug("seq %llu queued, '%s' '%s'", udev_device_get_seqnum(dev),
|
||||
udev_device_get_action(dev), udev_device_get_subsystem(dev));
|
||||
@@ -557,12 +550,6 @@ static bool is_devpath_busy(struct event
|
||||
return true;
|
||||
}
|
||||
|
||||
-#ifdef HAVE_FIRMWARE
|
||||
- /* allow to bypass the dependency tracking */
|
||||
- if (event->nodelay)
|
||||
- continue;
|
||||
-#endif
|
||||
-
|
||||
/* parent device event found */
|
||||
if (event->devpath[common] == '/') {
|
||||
event->delaying_seqnum = loop_event->seqnum;
|
||||
Index: systemd-210/src/udev/udev.h
|
||||
===================================================================
|
||||
--- systemd-210.orig/src/udev/udev.h
|
||||
+++ systemd-210/src/udev/udev.h
|
||||
@@ -141,9 +141,6 @@ enum udev_builtin_cmd {
|
||||
UDEV_BUILTIN_BLKID,
|
||||
#endif
|
||||
UDEV_BUILTIN_BTRFS,
|
||||
-#ifdef HAVE_FIRMWARE
|
||||
- UDEV_BUILTIN_FIRMWARE,
|
||||
-#endif
|
||||
UDEV_BUILTIN_HWDB,
|
||||
UDEV_BUILTIN_INPUT_ID,
|
||||
UDEV_BUILTIN_KEYBOARD,
|
||||
@@ -172,9 +169,6 @@ struct udev_builtin {
|
||||
extern const struct udev_builtin udev_builtin_blkid;
|
||||
#endif
|
||||
extern const struct udev_builtin udev_builtin_btrfs;
|
||||
-#ifdef HAVE_FIRMWARE
|
||||
-extern const struct udev_builtin udev_builtin_firmware;
|
||||
-#endif
|
||||
extern const struct udev_builtin udev_builtin_hwdb;
|
||||
extern const struct udev_builtin udev_builtin_input_id;
|
||||
extern const struct udev_builtin udev_builtin_keyboard;
|
||||
Index: systemd-210/TODO
|
||||
===================================================================
|
||||
--- systemd-210.orig/TODO
|
||||
+++ systemd-210/TODO
|
||||
@@ -541,7 +541,6 @@ Features:
|
||||
* ExecOnFailure=/usr/bin/foo
|
||||
|
||||
* udev:
|
||||
- - remove src/udev/udev-builtin-firmware.c (CONFIG_FW_LOADER_USER_HELPER=n)
|
||||
- move to LGPL
|
||||
- kill scsi_id
|
||||
- add trigger --subsystem-match=usb/usb_device device
|
||||
|
@ -1,3 +1,24 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 16 10:45:33 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add upstream patches as real fixes
|
||||
0001-activate-fix-fd-leak-in-do_accept.patch
|
||||
0002-analyze-avoid-a-null-dereference.patch
|
||||
0003-analyze-fix-mem-leak.patch
|
||||
0004-backlight-Avoid-error-when-state-restore-is-disabled.patch
|
||||
0005-bus-avoid-using-m-kdbus-after-freeing-it.patch
|
||||
0006-bus-unref-buscreds-on-failure.patch
|
||||
0007-core-fix-a-potential-mem-leak.patch
|
||||
0008-core-smack-setup-Actually-allow-for-succesfully-load.patch
|
||||
0009-journal-do-not-leak-mmaps-on-OOM.patch
|
||||
0010-manager-use-correct-cleanup-function.patch
|
||||
- Intergrate the work of Robert and rename the patch
|
||||
1068-udev-remove-userspace-firmware-loading-support.patch
|
||||
to 1078-udev-remove-userspace-firmware-loading-support.patch
|
||||
Also add patch
|
||||
1079-udev-remove-userspace-firmware-loading-support.patch
|
||||
to apply the same change for opensuse 13.2 and above
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 16 10:21:02 UTC 2014 - werner@suse.de
|
||||
|
||||
@ -20,6 +41,12 @@ Tue Sep 16 09:10:52 UTC 2014 - werner@suse.de
|
||||
1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch (bnc#889297)
|
||||
1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch (bnc#889297)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 16 07:55:37 UTC 2014 - rmilasan@suse.com
|
||||
|
||||
- udev: remove userspace firmware loading support (bnc#889297).
|
||||
Add 1068-udev-remove-userspace-firmware-loading-support.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 13 13:35:33 UTC 2014 - rmilasan@suse.com
|
||||
|
||||
|
@ -836,6 +836,26 @@ Patch402: 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch
|
||||
Patch403: 0009-hwdb-update.patch
|
||||
# PATCH-FIX-UPSTREAM bnc896664: Allow to override default target without --force
|
||||
Patch404: 0001-systemctl-allow-to-change-the-default-target-without.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch405: 0001-activate-fix-fd-leak-in-do_accept.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch406: 0002-analyze-avoid-a-null-dereference.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch407: 0003-analyze-fix-mem-leak.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch408: 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch409: 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch410: 0006-bus-unref-buscreds-on-failure.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch411: 0007-core-fix-a-potential-mem-leak.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch412: 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch413: 0009-journal-do-not-leak-mmaps-on-OOM.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch414: 0010-manager-use-correct-cleanup-function.patch
|
||||
|
||||
# UDEV PATCHES
|
||||
# ============
|
||||
@ -997,6 +1017,10 @@ Patch1075: 1075-udev-timeout-increase-timeout.patch
|
||||
Patch1076: 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch
|
||||
# PATCH-FIX-UPSTREAM 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch
|
||||
Patch1077: 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch
|
||||
# PATCH-FIX-UPSTREAM 1078-udev-remove-userspace-firmware-loading-support.patch
|
||||
Patch1078: 1078-udev-remove-userspace-firmware-loading-support.patch
|
||||
# PATCH-FIX-UPSTREAM 1079-udev-remove-userspace-firmware-loading-support.patch
|
||||
Patch1079: 1079-udev-remove-userspace-firmware-loading-support.patch
|
||||
|
||||
%description
|
||||
Systemd is a system and service manager, compatible with SysV and LSB
|
||||
@ -1562,6 +1586,16 @@ cp %{SOURCE7} m4/
|
||||
%patch402 -p0
|
||||
%patch403 -p0
|
||||
%patch404 -p0
|
||||
%patch405 -p0
|
||||
%patch406 -p0
|
||||
%patch407 -p0
|
||||
%patch408 -p0
|
||||
%patch409 -p0
|
||||
%patch410 -p0
|
||||
%patch411 -p0
|
||||
%patch412 -p0
|
||||
%patch413 -p0
|
||||
%patch414 -p0
|
||||
|
||||
# udev patches
|
||||
%patch1001 -p1
|
||||
@ -1665,6 +1699,13 @@ cp %{SOURCE7} m4/
|
||||
%else
|
||||
%patch1077 -p0
|
||||
%endif
|
||||
%if 0%{?suse_version} > 1310
|
||||
%if %{with udevsettle}
|
||||
%patch1079 -p1
|
||||
%else
|
||||
%patch1078 -p1
|
||||
%endif
|
||||
%endif
|
||||
|
||||
# remove patch backups
|
||||
find -name '*.orig' -exec rm -f '{}' \+
|
||||
|
@ -1,3 +1,24 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 16 10:45:33 UTC 2014 - werner@suse.de
|
||||
|
||||
- Add upstream patches as real fixes
|
||||
0001-activate-fix-fd-leak-in-do_accept.patch
|
||||
0002-analyze-avoid-a-null-dereference.patch
|
||||
0003-analyze-fix-mem-leak.patch
|
||||
0004-backlight-Avoid-error-when-state-restore-is-disabled.patch
|
||||
0005-bus-avoid-using-m-kdbus-after-freeing-it.patch
|
||||
0006-bus-unref-buscreds-on-failure.patch
|
||||
0007-core-fix-a-potential-mem-leak.patch
|
||||
0008-core-smack-setup-Actually-allow-for-succesfully-load.patch
|
||||
0009-journal-do-not-leak-mmaps-on-OOM.patch
|
||||
0010-manager-use-correct-cleanup-function.patch
|
||||
- Intergrate the work of Robert and rename the patch
|
||||
1068-udev-remove-userspace-firmware-loading-support.patch
|
||||
to 1078-udev-remove-userspace-firmware-loading-support.patch
|
||||
Also add patch
|
||||
1079-udev-remove-userspace-firmware-loading-support.patch
|
||||
to apply the same change for opensuse 13.2 and above
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 16 10:21:02 UTC 2014 - werner@suse.de
|
||||
|
||||
@ -20,6 +41,12 @@ Tue Sep 16 09:10:52 UTC 2014 - werner@suse.de
|
||||
1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch (bnc#889297)
|
||||
1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch (bnc#889297)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Sep 16 07:55:37 UTC 2014 - rmilasan@suse.com
|
||||
|
||||
- udev: remove userspace firmware loading support (bnc#889297).
|
||||
Add 1068-udev-remove-userspace-firmware-loading-support.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Sep 13 13:35:33 UTC 2014 - rmilasan@suse.com
|
||||
|
||||
|
41
systemd.spec
41
systemd.spec
@ -831,6 +831,26 @@ Patch402: 0008-hwdb-Update-database-of-Bluetooth-company-identifier.patch
|
||||
Patch403: 0009-hwdb-update.patch
|
||||
# PATCH-FIX-UPSTREAM bnc896664: Allow to override default target without --force
|
||||
Patch404: 0001-systemctl-allow-to-change-the-default-target-without.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch405: 0001-activate-fix-fd-leak-in-do_accept.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch406: 0002-analyze-avoid-a-null-dereference.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch407: 0003-analyze-fix-mem-leak.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch408: 0004-backlight-Avoid-error-when-state-restore-is-disabled.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch409: 0005-bus-avoid-using-m-kdbus-after-freeing-it.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch410: 0006-bus-unref-buscreds-on-failure.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch411: 0007-core-fix-a-potential-mem-leak.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch412: 0008-core-smack-setup-Actually-allow-for-succesfully-load.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch413: 0009-journal-do-not-leak-mmaps-on-OOM.patch
|
||||
# PATCH-FIX-UPSTREAM added at 2014/09/16
|
||||
Patch414: 0010-manager-use-correct-cleanup-function.patch
|
||||
|
||||
# UDEV PATCHES
|
||||
# ============
|
||||
@ -992,6 +1012,10 @@ Patch1075: 1075-udev-timeout-increase-timeout.patch
|
||||
Patch1076: 1076-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch
|
||||
# PATCH-FIX-UPSTREAM 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch
|
||||
Patch1077: 1077-udev-timeout-warn-after-a-third-of-the-timeout-befor.patch
|
||||
# PATCH-FIX-UPSTREAM 1078-udev-remove-userspace-firmware-loading-support.patch
|
||||
Patch1078: 1078-udev-remove-userspace-firmware-loading-support.patch
|
||||
# PATCH-FIX-UPSTREAM 1079-udev-remove-userspace-firmware-loading-support.patch
|
||||
Patch1079: 1079-udev-remove-userspace-firmware-loading-support.patch
|
||||
|
||||
%description
|
||||
Systemd is a system and service manager, compatible with SysV and LSB
|
||||
@ -1557,6 +1581,16 @@ cp %{SOURCE7} m4/
|
||||
%patch402 -p0
|
||||
%patch403 -p0
|
||||
%patch404 -p0
|
||||
%patch405 -p0
|
||||
%patch406 -p0
|
||||
%patch407 -p0
|
||||
%patch408 -p0
|
||||
%patch409 -p0
|
||||
%patch410 -p0
|
||||
%patch411 -p0
|
||||
%patch412 -p0
|
||||
%patch413 -p0
|
||||
%patch414 -p0
|
||||
|
||||
# udev patches
|
||||
%patch1001 -p1
|
||||
@ -1660,6 +1694,13 @@ cp %{SOURCE7} m4/
|
||||
%else
|
||||
%patch1077 -p0
|
||||
%endif
|
||||
%if 0%{?suse_version} > 1310
|
||||
%if %{with udevsettle}
|
||||
%patch1079 -p1
|
||||
%else
|
||||
%patch1078 -p1
|
||||
%endif
|
||||
%endif
|
||||
|
||||
# remove patch backups
|
||||
find -name '*.orig' -exec rm -f '{}' \+
|
||||
|
Loading…
Reference in New Issue
Block a user