[systemd/f18] pick post-v197 fixes
Michal Schmidt
michich at fedoraproject.org
Fri Jan 11 23:34:55 UTC 2013
commit d1a04b4502913eb6fa95eeb972d06de5f69aa9a2
Author: Michal Schmidt <mschmidt at redhat.com>
Date: Sat Jan 12 00:02:12 2013 +0100
pick post-v197 fixes
...-udev-net_id-skip-stacked-network-devices.patch | 39 ++++
...dbus-fix-serialization-of-calendar-timers.patch | 60 ++++++
...call-fclose-on-NULL-in-is_pci_multifuncti.patch | 33 ++++
...heck-return-of-fopen-before-setvbuf-in-lo.patch | 25 +++
0009-man-systemd-bootchart.xml-fix-typo.patch | 23 +++
0010-man-systemd.unit.xml-fix-typos.patch | 25 +++
...us-properly-serialize-calendar-timer-data.patch | 194 ++++++++++++++++++++
...-Fix-device-matching-in-the-accelerometer.patch | 49 +++++
systemd.spec | 14 ++-
9 files changed, 461 insertions(+), 1 deletions(-)
---
diff --git a/0005-udev-net_id-skip-stacked-network-devices.patch b/0005-udev-net_id-skip-stacked-network-devices.patch
new file mode 100644
index 0000000..8400a2c
--- /dev/null
+++ b/0005-udev-net_id-skip-stacked-network-devices.patch
@@ -0,0 +1,39 @@
+From 778ad8d8fd3855254d9c96bc1016c7bb7dc2e8da Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay at vrfy.org>
+Date: Tue, 8 Jan 2013 14:54:12 +0100
+Subject: [PATCH] udev: net_id - skip stacked network devices (cherry picked
+ from commit 72bc96f07868d532596477604b6fb41633ebd124)
+
+---
+ src/udev/udev-builtin-net_id.c | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c
+index d5db762..1975c6d 100644
+--- a/src/udev/udev-builtin-net_id.c
++++ b/src/udev/udev-builtin-net_id.c
+@@ -366,6 +366,7 @@ static int ieee_oui(struct udev_device *dev, struct netnames *names, bool test)
+
+ static int builtin_net_id(struct udev_device *dev, int argc, char *argv[], bool test) {
+ const char *s;
++ const char *p;
+ unsigned int i;
+ const char *devtype;
+ const char *prefix = "en";
+@@ -380,6 +381,16 @@ static int builtin_net_id(struct udev_device *dev, int argc, char *argv[], bool
+ if (i != 1)
+ return 0;
+
++ /* skip stacked devices, like VLANs, ... */
++ s = udev_device_get_sysattr_value(dev, "ifindex");
++ if (!s)
++ return EXIT_FAILURE;
++ p = udev_device_get_sysattr_value(dev, "iflink");
++ if (!p)
++ return EXIT_FAILURE;
++ if (strcmp(s, p) != 0)
++ return 0;
++
+ devtype = udev_device_get_devtype(dev);
+ if (devtype) {
+ if (streq("wlan", devtype))
diff --git a/0006-dbus-fix-serialization-of-calendar-timers.patch b/0006-dbus-fix-serialization-of-calendar-timers.patch
new file mode 100644
index 0000000..f34ec6f
--- /dev/null
+++ b/0006-dbus-fix-serialization-of-calendar-timers.patch
@@ -0,0 +1,60 @@
+From 15609a14fed7e091547984913d93db4e66ff107c Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Tue, 8 Jan 2013 20:00:01 +0100
+Subject: [PATCH] dbus: fix serialization of calendar timers (cherry picked
+ from commit 3761902e2e120849c283106fd4b78b6adec7367e)
+
+---
+ src/core/dbus-timer.c | 25 +++++++++++++++----------
+ 1 file changed, 15 insertions(+), 10 deletions(-)
+
+diff --git a/src/core/dbus-timer.c b/src/core/dbus-timer.c
+index 11d18cb..b22fcb5 100644
+--- a/src/core/dbus-timer.c
++++ b/src/core/dbus-timer.c
+@@ -69,22 +69,28 @@ static int bus_timer_append_timers(DBusMessageIter *i, const char *property, voi
+ return -ENOMEM;
+
+ LIST_FOREACH(value, k, p->values) {
+- char *buf;
++ _cleanup_free_ char *buf = NULL;
+ const char *t;
+ size_t l;
+ bool b;
+
+ t = timer_base_to_string(k->base);
+- assert(endswith(t, "Sec"));
+
+- /* s/Sec/USec/ */
+- l = strlen(t);
+- buf = new(char, l+2);
+- if (!buf)
+- return -ENOMEM;
++ if (endswith(t, "Sec")) {
++
++ /* s/Sec/USec/ */
++ l = strlen(t);
++ buf = new(char, l+2);
++ if (!buf)
++ return -ENOMEM;
+
+- memcpy(buf, t, l-3);
+- memcpy(buf+l-3, "USec", 5);
++ memcpy(buf, t, l-3);
++ memcpy(buf+l-3, "USec", 5);
++ } else {
++ buf = strdup(t);
++ if (!buf)
++ return -ENOMEM;
++ }
+
+ b = dbus_message_iter_open_container(&sub, DBUS_TYPE_STRUCT, NULL, &sub2) &&
+ dbus_message_iter_append_basic(&sub2, DBUS_TYPE_STRING, &buf) &&
+@@ -92,7 +98,6 @@ static int bus_timer_append_timers(DBusMessageIter *i, const char *property, voi
+ dbus_message_iter_append_basic(&sub2, DBUS_TYPE_UINT64, &k->next_elapse) &&
+ dbus_message_iter_close_container(&sub, &sub2);
+
+- free(buf);
+ if (!b)
+ return -ENOMEM;
+ }
diff --git a/0007-udev-don-t-call-fclose-on-NULL-in-is_pci_multifuncti.patch b/0007-udev-don-t-call-fclose-on-NULL-in-is_pci_multifuncti.patch
new file mode 100644
index 0000000..fd1299f
--- /dev/null
+++ b/0007-udev-don-t-call-fclose-on-NULL-in-is_pci_multifuncti.patch
@@ -0,0 +1,33 @@
+From 8177770c3f3b9bf38550c8b4b23e91f2c9dfe822 Mon Sep 17 00:00:00 2001
+From: Lukas Nykryn <lnykryn at redhat.com>
+Date: Wed, 9 Jan 2013 17:10:56 +0100
+Subject: [PATCH] udev: don't call fclose on NULL in is_pci_multifunction
+ (cherry picked from commit 3c123e0899b56c0587db36420da5e049c56d9e19)
+
+---
+ src/udev/udev-builtin-net_id.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/udev/udev-builtin-net_id.c b/src/udev/udev-builtin-net_id.c
+index 1975c6d..7c9564f 100644
+--- a/src/udev/udev-builtin-net_id.c
++++ b/src/udev/udev-builtin-net_id.c
+@@ -136,7 +136,7 @@ static int dev_pci_onboard(struct udev_device *dev, struct netnames *names) {
+ /* read the 256 bytes PCI configuration space to check the multi-function bit */
+ static bool is_pci_multifunction(struct udev_device *dev) {
+ char filename[256];
+- FILE *f;
++ FILE *f = NULL;
+ char config[64];
+ bool multi = false;
+
+@@ -151,7 +151,8 @@ static bool is_pci_multifunction(struct udev_device *dev) {
+ if ((config[PCI_HEADER_TYPE] & 0x80) != 0)
+ multi = true;
+ out:
+- fclose(f);
++ if(f)
++ fclose(f);
+ return multi;
+ }
+
diff --git a/0008-bootchart-check-return-of-fopen-before-setvbuf-in-lo.patch b/0008-bootchart-check-return-of-fopen-before-setvbuf-in-lo.patch
new file mode 100644
index 0000000..65c0a8e
--- /dev/null
+++ b/0008-bootchart-check-return-of-fopen-before-setvbuf-in-lo.patch
@@ -0,0 +1,25 @@
+From 3e20223710a1698b166df14b3a95011c72099cc7 Mon Sep 17 00:00:00 2001
+From: Lukas Nykryn <lnykryn at redhat.com>
+Date: Wed, 9 Jan 2013 17:10:57 +0100
+Subject: [PATCH] bootchart: check return of fopen before setvbuf in log.c
+ (cherry picked from commit 0908dd2fd5536cf15d75780980ac2eca37ff800f)
+
+---
+ src/bootchart/log.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/bootchart/log.c b/src/bootchart/log.c
+index 89c7b35..6c40913 100644
+--- a/src/bootchart/log.c
++++ b/src/bootchart/log.c
+@@ -364,9 +364,9 @@ schedstat_next:
+ if (!ps->smaps) {
+ sprintf(filename, "/proc/%d/smaps", pid);
+ ps->smaps = fopen(filename, "r");
+- setvbuf(ps->smaps, smaps_buf, _IOFBF, sizeof(smaps_buf));
+ if (!ps->smaps)
+ continue;
++ setvbuf(ps->smaps, smaps_buf, _IOFBF, sizeof(smaps_buf));
+ } else {
+ rewind(ps->smaps);
+ }
diff --git a/0009-man-systemd-bootchart.xml-fix-typo.patch b/0009-man-systemd-bootchart.xml-fix-typo.patch
new file mode 100644
index 0000000..6004153
--- /dev/null
+++ b/0009-man-systemd-bootchart.xml-fix-typo.patch
@@ -0,0 +1,23 @@
+From 7f0de4bf0c3a4471228dc55a14af7d43c411af4a Mon Sep 17 00:00:00 2001
+From: Thomas Hindoe Paaboel Andersen <phomes at gmail.com>
+Date: Wed, 9 Jan 2013 21:25:02 +0100
+Subject: [PATCH] man/systemd-bootchart.xml: fix typo (cherry picked from
+ commit 1959c6ce940786d33f91e19c41441bf4c9f6a768)
+
+---
+ man/systemd-bootchart.xml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/man/systemd-bootchart.xml b/man/systemd-bootchart.xml
+index 4d53824..8c4d7cc 100644
+--- a/man/systemd-bootchart.xml
++++ b/man/systemd-bootchart.xml
+@@ -100,7 +100,7 @@
+ <title>Output</title>
+
+ <para>Systemd-bootchart generates SVG graphs. In order to render these
+- on a graphica display any SVG capable viewer can be used. It should be
++ on a graphical display any SVG capable viewer can be used. It should be
+ noted that the SVG render engines in most browsers (including Chrome
+ and Firefox) are many times faster than dedicated graphical applications
+ like Gimp and Inkscape. Just point your browser at "file:///var/log"!
diff --git a/0010-man-systemd.unit.xml-fix-typos.patch b/0010-man-systemd.unit.xml-fix-typos.patch
new file mode 100644
index 0000000..91dee0d
--- /dev/null
+++ b/0010-man-systemd.unit.xml-fix-typos.patch
@@ -0,0 +1,25 @@
+From 3ce12acd4f95944e256aa2574e297230ab8a65c9 Mon Sep 17 00:00:00 2001
+From: Thomas Hindoe Paaboel Andersen <phomes at gmail.com>
+Date: Thu, 10 Jan 2013 00:19:44 +0100
+Subject: [PATCH] man/systemd.unit.xml: fix typos (cherry picked from commit
+ e711d102df3d3eafec9c51edfbb302c0fd8583f0)
+
+---
+ man/systemd.unit.xml | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/man/systemd.unit.xml b/man/systemd.unit.xml
+index 8570815..54671e7 100644
+--- a/man/systemd.unit.xml
++++ b/man/systemd.unit.xml
+@@ -961,8 +961,8 @@
+ an exclamation mark.</para>
+
+ <para><varname>ConditionACPower=</varname>
+- may may be used to check whether the
+- system has AC power, or is exlcusively
++ may be used to check whether the
++ system has AC power, or is exclusively
+ battery powered at the time of
+ activation of the unit. This takes a
+ boolean argument. If set to
diff --git a/0011-dbus-properly-serialize-calendar-timer-data.patch b/0011-dbus-properly-serialize-calendar-timer-data.patch
new file mode 100644
index 0000000..fe8cf22
--- /dev/null
+++ b/0011-dbus-properly-serialize-calendar-timer-data.patch
@@ -0,0 +1,194 @@
+From a3c5fe158e2cb202ce03561a07ae4fed79180063 Mon Sep 17 00:00:00 2001
+From: Lennart Poettering <lennart at poettering.net>
+Date: Thu, 10 Jan 2013 00:54:46 +0100
+Subject: [PATCH] dbus: properly serialize calendar timer data
+
+As it turns out the bus properties for timer units wre really broken,
+so let's clean this up for good and properly add calendar timer
+serialization. We really should get that right before finalizing the
+bus API documentation in the wiki...
+(cherry picked from commit b719810db446244ff708a2f5f08566af67ddab61)
+---
+ src/core/dbus-timer.c | 92 +++++++++++++++++++++++++++++++++++++-------------
+ src/core/timer.c | 2 +-
+ src/core/timer.h | 4 +--
+ src/shared/time-util.c | 2 ++
+ 4 files changed, 73 insertions(+), 27 deletions(-)
+
+diff --git a/src/core/dbus-timer.c b/src/core/dbus-timer.c
+index b22fcb5..75add81 100644
+--- a/src/core/dbus-timer.c
++++ b/src/core/dbus-timer.c
+@@ -30,8 +30,10 @@
+ #define BUS_TIMER_INTERFACE \
+ " <interface name=\"org.freedesktop.systemd1.Timer\">\n" \
+ " <property name=\"Unit\" type=\"s\" access=\"read\"/>\n" \
+- " <property name=\"Timers\" type=\"a(stt)\" access=\"read\"/>\n" \
+- " <property name=\"NextElapseUSec\" type=\"t\" access=\"read\"/>\n" \
++ " <property name=\"TimersMonotonic\" type=\"a(stt)\" access=\"read\"/>\n" \
++ " <property name=\"TimersCalendar\" type=\"a(sst)\" access=\"read\"/>\n" \
++ " <property name=\"NextElapseUSecRealtime\" type=\"t\" access=\"read\"/>\n" \
++ " <property name=\"NextElapseUSecMonotonic\" type=\"t\" access=\"read\"/>\n" \
+ " <property name=\"Result\" type=\"s\" access=\"read\"/>\n" \
+ " </interface>\n"
+
+@@ -52,11 +54,13 @@
+ const char bus_timer_interface[] _introspect_("Timer") = BUS_TIMER_INTERFACE;
+
+ const char bus_timer_invalidating_properties[] =
+- "Timers\0"
+- "NextElapseUSec\0"
++ "TimersMonotonic\0"
++ "TimersRealtime\0"
++ "NextElapseUSecRealtime\0"
++ "NextElapseUSecMonotonic\0"
+ "Result\0";
+
+-static int bus_timer_append_timers(DBusMessageIter *i, const char *property, void *data) {
++static int bus_timer_append_monotonic_timers(DBusMessageIter *i, const char *property, void *data) {
+ Timer *p = data;
+ DBusMessageIter sub, sub2;
+ TimerValue *k;
+@@ -74,23 +78,20 @@ static int bus_timer_append_timers(DBusMessageIter *i, const char *property, voi
+ size_t l;
+ bool b;
+
+- t = timer_base_to_string(k->base);
++ if (k->base == TIMER_CALENDAR)
++ continue;
+
+- if (endswith(t, "Sec")) {
++ t = timer_base_to_string(k->base);
++ assert(endswith(t, "Sec"));
+
+- /* s/Sec/USec/ */
+- l = strlen(t);
+- buf = new(char, l+2);
+- if (!buf)
+- return -ENOMEM;
++ /* s/Sec/USec/ */
++ l = strlen(t);
++ buf = new(char, l+2);
++ if (!buf)
++ return -ENOMEM;
+
+- memcpy(buf, t, l-3);
+- memcpy(buf+l-3, "USec", 5);
+- } else {
+- buf = strdup(t);
+- if (!buf)
+- return -ENOMEM;
+- }
++ memcpy(buf, t, l-3);
++ memcpy(buf+l-3, "USec", 5);
+
+ b = dbus_message_iter_open_container(&sub, DBUS_TYPE_STRUCT, NULL, &sub2) &&
+ dbus_message_iter_append_basic(&sub2, DBUS_TYPE_STRING, &buf) &&
+@@ -108,6 +109,48 @@ static int bus_timer_append_timers(DBusMessageIter *i, const char *property, voi
+ return 0;
+ }
+
++static int bus_timer_append_calendar_timers(DBusMessageIter *i, const char *property, void *data) {
++ Timer *p = data;
++ DBusMessageIter sub, sub2;
++ TimerValue *k;
++
++ assert(i);
++ assert(property);
++ assert(p);
++
++ if (!dbus_message_iter_open_container(i, DBUS_TYPE_ARRAY, "(sst)", &sub))
++ return -ENOMEM;
++
++ LIST_FOREACH(value, k, p->values) {
++ _cleanup_free_ char *buf = NULL;
++ const char *t;
++ bool b;
++ int j;
++
++ if (k->base != TIMER_CALENDAR)
++ continue;
++
++ t = timer_base_to_string(k->base);
++ j = calendar_spec_to_string(k->calendar_spec, &buf);
++ if (j < 0)
++ return j;
++
++ b = dbus_message_iter_open_container(&sub, DBUS_TYPE_STRUCT, NULL, &sub2) &&
++ dbus_message_iter_append_basic(&sub2, DBUS_TYPE_STRING, &t) &&
++ dbus_message_iter_append_basic(&sub2, DBUS_TYPE_STRING, &buf) &&
++ dbus_message_iter_append_basic(&sub2, DBUS_TYPE_UINT64, &k->next_elapse) &&
++ dbus_message_iter_close_container(&sub, &sub2);
++
++ if (!b)
++ return -ENOMEM;
++ }
++
++ if (!dbus_message_iter_close_container(i, &sub))
++ return -ENOMEM;
++
++ return 0;
++}
++
+ static int bus_timer_append_unit(DBusMessageIter *i, const char *property, void *data) {
+ Unit *u = data;
+ Timer *timer = TIMER(u);
+@@ -125,11 +168,12 @@ static int bus_timer_append_unit(DBusMessageIter *i, const char *property, void
+ static DEFINE_BUS_PROPERTY_APPEND_ENUM(bus_timer_append_timer_result, timer_result, TimerResult);
+
+ static const BusProperty bus_timer_properties[] = {
+- { "Unit", bus_timer_append_unit, "s", 0 },
+- { "Timers", bus_timer_append_timers, "a(stt)", 0 },
+- { "NextElapseUSec", bus_property_append_usec, "t", offsetof(Timer, next_elapse_monotonic) },
+- { "NextElapseUSecRealtime", bus_property_append_usec, "t", offsetof(Timer, next_elapse_realtime) },
+- { "Result", bus_timer_append_timer_result,"s", offsetof(Timer, result) },
++ { "Unit", bus_timer_append_unit, "s", 0 },
++ { "TimersMonotonic", bus_timer_append_monotonic_timers, "a(stt)", 0 },
++ { "TimersCalendar", bus_timer_append_calendar_timers, "a(sst)", 0 },
++ { "NextElapseUSecMonotonic", bus_property_append_usec, "t", offsetof(Timer, next_elapse_monotonic) },
++ { "NextElapseUSecRealtime", bus_property_append_usec, "t", offsetof(Timer, next_elapse_realtime) },
++ { "Result", bus_timer_append_timer_result, "s", offsetof(Timer, result) },
+ { NULL, }
+ };
+
+diff --git a/src/core/timer.c b/src/core/timer.c
+index 31ef176..4453aa0 100644
+--- a/src/core/timer.c
++++ b/src/core/timer.c
+@@ -323,7 +323,7 @@ static void timer_enter_waiting(Timer *t, bool initial) {
+ log_debug_unit(UNIT(t)->id,
+ "%s: Monotonic timer elapses in %s the next time.",
+ UNIT(t)->id,
+- format_timespan(buf, sizeof(buf), t->next_elapse_monotonic - ts.monotonic));
++ format_timespan(buf, sizeof(buf), t->next_elapse_monotonic > ts.monotonic ? t->next_elapse_monotonic - ts.monotonic : 0));
+
+ r = unit_watch_timer(UNIT(t), CLOCK_MONOTONIC, false, t->next_elapse_monotonic, &t->monotonic_watch);
+ if (r < 0)
+diff --git a/src/core/timer.h b/src/core/timer.h
+index 57a514a..10d3ce1 100644
+--- a/src/core/timer.h
++++ b/src/core/timer.h
+@@ -52,8 +52,8 @@ typedef struct TimerValue {
+ bool disabled;
+ clockid_t clock_id;
+
+- usec_t value;
+- CalendarSpec *calendar_spec;
++ usec_t value; /* only for monotonic events */
++ CalendarSpec *calendar_spec; /* only for calendar events */
+ usec_t next_elapse;
+
+ LIST_FIELDS(struct TimerValue, value);
+diff --git a/src/shared/time-util.c b/src/shared/time-util.c
+index 4fd8f08..e192d5e 100644
+--- a/src/shared/time-util.c
++++ b/src/shared/time-util.c
+@@ -230,6 +230,8 @@ char *format_timespan(char *buf, size_t l, usec_t t) {
+ const char *suffix;
+ usec_t usec;
+ } table[] = {
++ { "y", USEC_PER_YEAR },
++ { "month", USEC_PER_MONTH },
+ { "w", USEC_PER_WEEK },
+ { "d", USEC_PER_DAY },
+ { "h", USEC_PER_HOUR },
diff --git a/0012-udev-Fix-device-matching-in-the-accelerometer.patch b/0012-udev-Fix-device-matching-in-the-accelerometer.patch
new file mode 100644
index 0000000..f6a19c5
--- /dev/null
+++ b/0012-udev-Fix-device-matching-in-the-accelerometer.patch
@@ -0,0 +1,49 @@
+From d6a83f50da40578db6712c341e48fa4bef88fd6e Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess at hadess.net>
+Date: Thu, 10 Jan 2013 14:23:23 +0100
+Subject: [PATCH] udev: Fix device matching in the accelerometer
+
+As we were searching by ID_PATH, it would have been possible
+for us to find a sibling device instead of the device we were
+looking for.
+
+This fixes device matching on the WeTab with the upstream kernel,
+as it was trying to use the "Asus Laptop extra buttons" device
+instead of the accelerometer.
+(cherry picked from commit 1d010426c01044350b2b32d8b3af5d064f7dfe27)
+---
+ src/udev/accelerometer/accelerometer.c | 11 +----------
+ 1 file changed, 1 insertion(+), 10 deletions(-)
+
+diff --git a/src/udev/accelerometer/accelerometer.c b/src/udev/accelerometer/accelerometer.c
+index 21f5193..2fea388 100644
+--- a/src/udev/accelerometer/accelerometer.c
++++ b/src/udev/accelerometer/accelerometer.c
+@@ -257,7 +257,6 @@ int main (int argc, char** argv)
+
+ char devpath[PATH_MAX];
+ char *devnode;
+- const char *id_path;
+ struct udev_enumerate *enumerate;
+ struct udev_list_entry *list_entry;
+
+@@ -303,18 +302,10 @@ int main (int argc, char** argv)
+ return 1;
+ }
+
+- id_path = udev_device_get_property_value(dev, "ID_PATH");
+- if (id_path == NULL) {
+- fprintf (stderr, "unable to get property ID_PATH for '%s'", devpath);
+- return 0;
+- }
+-
+ /* Get the children devices and find the devnode */
+- /* FIXME: use udev_enumerate_add_match_parent() instead */
+ devnode = NULL;
+ enumerate = udev_enumerate_new(udev);
+- udev_enumerate_add_match_property(enumerate, "ID_PATH", id_path);
+- udev_enumerate_add_match_subsystem(enumerate, "input");
++ udev_enumerate_add_match_parent(enumerate, dev);
+ udev_enumerate_scan_devices(enumerate);
+ udev_list_entry_foreach(list_entry, udev_enumerate_get_list_entry(enumerate)) {
+ struct udev_device *device;
diff --git a/systemd.spec b/systemd.spec
index d9249e0..8e12b63 100644
--- a/systemd.spec
+++ b/systemd.spec
@@ -14,7 +14,7 @@ Name: systemd
Url: http://www.freedesktop.org/wiki/Software/systemd
Version: 197
-Release: 1%{?gitcommit:.git%{gitcommit}}%{?dist}
+Release: 1%{?gitcommit:.git%{gitcommit}}%{?dist}.1
# For a breakdown of the licensing, see README
License: LGPLv2+ and MIT and GPLv2+
Summary: A System and Service Manager
@@ -81,6 +81,15 @@ Patch0001: 0001-F18-units-don-t-always-use-sulogin-in-rescue.service.patch
Patch0002: 0002-F18-do-not-enable-persistent-network-device-naming.patch
Patch0003: 0003-F18-re-add-http-daemon.target.patch
Patch0004: 0004-F18-bring-back-single.service.patch
+# post-v197 fixes:
+Patch0005: 0005-udev-net_id-skip-stacked-network-devices.patch
+Patch0006: 0006-dbus-fix-serialization-of-calendar-timers.patch
+Patch0007: 0007-udev-don-t-call-fclose-on-NULL-in-is_pci_multifuncti.patch
+Patch0008: 0008-bootchart-check-return-of-fopen-before-setvbuf-in-lo.patch
+Patch0009: 0009-man-systemd-bootchart.xml-fix-typo.patch
+Patch0010: 0010-man-systemd.unit.xml-fix-typos.patch
+Patch0011: 0011-dbus-properly-serialize-calendar-timer-data.patch
+Patch0012: 0012-udev-Fix-device-matching-in-the-accelerometer.patch
Obsoletes: SysVinit < 2.86-24, sysvinit < 2.86-24
Provides: SysVinit = 2.86-24, sysvinit = 2.86-24
@@ -721,6 +730,9 @@ fi
%{_libdir}/pkgconfig/gudev-1.0*
%changelog
+* Sat Jan 12 2013 Michal Schmidt <mschmidt at redhat.com> - 197-1.fc18.1
+- Pick post-v197 fixes.
+
* Fri Jan 11 2013 Michal Schmidt <mschmidt at redhat.com> - 197-1
- Rebase to new upstream release.
More information about the scm-commits
mailing list