core/systemd to 214-2

This commit is contained in:
Kevin Mihelich 2014-06-24 00:27:09 +00:00
parent c3dd2e17d0
commit b369863c31
8 changed files with 33 additions and 274 deletions

View file

@ -1,58 +0,0 @@
From c343be283b7152554bac0c02493a4e1759c163f7 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay@vrfy.org>
Date: Wed, 4 Jun 2014 11:14:48 +0200
Subject: [PATCH] fsck: disable "-l" option for now
https://bugs.freedesktop.org/show_bug.cgi?id=79576#c5
---
TODO | 4 +++-
src/fsck/fsck.c | 13 ++++++++++++-
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/TODO b/TODO
index 8169a57..fb118f1 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,7 @@
Bugfixes:
+* Re-enable "fsck -l" when it is ready:
+ https://bugs.freedesktop.org/show_bug.cgi?id=79576#c5
+
* Should systemctl status \* work on all unit types, not just .service?
* enabling an instance unit creates a pointless link, and
@@ -20,7 +23,6 @@ Bugfixes:
See the comment in sd_bus_unref() for more..
External:
-
* Fedora: when installing fedora with yum --installroot /var/run is a directory, not a symlink
https://bugzilla.redhat.com/show_bug.cgi?id=975864
diff --git a/src/fsck/fsck.c b/src/fsck/fsck.c
index 56cb52d..cb2f573 100644
--- a/src/fsck/fsck.c
+++ b/src/fsck/fsck.c
@@ -319,7 +319,18 @@ int main(int argc, char *argv[]) {
cmdline[i++] = "/sbin/fsck";
cmdline[i++] = arg_repair;
cmdline[i++] = "-T";
- cmdline[i++] = "-l";
+
+ /*
+ * Disable locking which conflict with udev's event
+ * ownershipi, until util-linux moves the flock
+ * synchronization file which prevents multiple fsck running
+ * on the same rotationg media, from the disk device
+ * node to a privately owned regular file.
+ *
+ * https://bugs.freedesktop.org/show_bug.cgi?id=79576#c5
+ *
+ * cmdline[i++] = "-l";
+ */
if (!root_directory)
cmdline[i++] = "-M";
--
2.0.0

View file

@ -1,33 +0,0 @@
From 2ae6cda520f5c925ba313b8e83ea8b58bc00112c Mon Sep 17 00:00:00 2001
From: Tom Gundersen <teg@jklm.no>
Date: Wed, 4 Jun 2014 21:29:08 +0200
Subject: [PATCH] networkd: link - intialize mac address
Otherwise .netwrok matching on MAC address will not work.
Based on patch by Dave Reisner, and bug originally reported by Max Pray.
Conflicts:
src/network/networkd-link.c
---
src/network/networkd-link.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
index 6677b94..9afb871 100644
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -75,6 +75,10 @@ static int link_new(Manager *manager, sd_rtnl_message *message, Link **ret) {
if (!link->ifname)
return -ENOMEM;
+ r = sd_rtnl_message_read_ether_addr(message, IFLA_ADDRESS, &link->mac);
+ if (r < 0)
+ return r;
+
r = asprintf(&link->state_file, "/run/systemd/network/links/%"PRIu64,
link->ifindex);
if (r < 0)
--
2.0.0

View file

@ -1,48 +0,0 @@
From 3d06f4183470d42361303086ed9dedd29c0ffc1b Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay@vrfy.org>
Date: Tue, 3 Jun 2014 10:46:51 +0200
Subject: [PATCH] udev: always close lock file descriptor
https://bugs.freedesktop.org/show_bug.cgi?id=79576
---
src/udev/udevd.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/src/udev/udevd.c b/src/udev/udevd.c
index 1c9488e..819ea3b 100644
--- a/src/udev/udevd.c
+++ b/src/udev/udevd.c
@@ -301,6 +301,7 @@ static void worker_new(struct event *event)
if (fd_lock >= 0 && flock(fd_lock, LOCK_SH|LOCK_NB) < 0) {
log_debug("Unable to flock(%s), skipping event handling: %m", udev_device_get_devnode(d));
err = -EWOULDBLOCK;
+ fd_lock = safe_close(fd_lock);
goto skip;
}
}
@@ -317,8 +318,7 @@ static void worker_new(struct event *event)
udev_device_update_db(dev);
}
- if (fd_lock >= 0)
- close(fd_lock);
+ safe_close(fd_lock);
/* send processed event back to libudev listeners */
udev_monitor_send_device(worker_monitor, NULL, dev);
@@ -377,10 +377,8 @@ skip:
}
out:
udev_device_unref(dev);
- if (fd_signal >= 0)
- close(fd_signal);
- if (fd_ep >= 0)
- close(fd_ep);
+ safe_close(fd_signal);
+ safe_close(fd_ep);
close(fd_inotify);
close(worker_watch[WRITE_END]);
udev_rules_unref(rules);
--
2.0.0

View file

@ -1,38 +0,0 @@
From e918a1b5a94f270186dca59156354acd2a596494 Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay@vrfy.org>
Date: Tue, 3 Jun 2014 16:49:38 +0200
Subject: [PATCH] udev: exclude device-mapper from block device ownership event
locking
---
src/udev/udevd.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/udev/udevd.c b/src/udev/udevd.c
index 819ea3b..6c05104 100644
--- a/src/udev/udevd.c
+++ b/src/udev/udevd.c
@@ -290,7 +290,19 @@ static void worker_new(struct event *event)
* acquired the lock, the external process will block until
* udev has finished its event handling.
*/
- if (streq_ptr("block", udev_device_get_subsystem(dev))) {
+
+ /*
+ * <kabi_> since we make check - device seems unused - we try
+ * ioctl to deactivate - and device is found to be opened
+ * <kay> sure, you try to take a write lock
+ * <kay> if you get it udev is out
+ * <kay> if you can't get it, udev is busy
+ * <kabi_> we cannot deactivate openned device (as it is in-use)
+ * <kay> maybe we should just exclude dm from that thing entirely
+ * <kabi_> IMHO this sounds like a good plan for this moment
+ */
+ if (streq_ptr("block", udev_device_get_subsystem(dev)) &&
+ !startswith("dm-", udev_device_get_sysname(dev))) {
struct udev_device *d = dev;
if (streq_ptr("partition", udev_device_get_devtype(d)))
--
2.0.0

View file

@ -1,33 +0,0 @@
From 638ca89c53e2b897cfb3f627f4acbc7d09af2f4c Mon Sep 17 00:00:00 2001
From: Christian Hesse <mail@eworm.de>
Date: Tue, 10 Jun 2014 15:51:15 +0200
Subject: [PATCH] udev: really exclude device-mapper from block device
ownership event locking
Arguments were wrong order, no?
This fixes commits:
e918a1b5a94f270186dca59156354acd2a596494
3d06f4183470d42361303086ed9dedd29c0ffc1b
---
* dreisner: avoid second hunk of patch which doesn't apply to v213
src/udev/udevd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/udev/udevd.c b/src/udev/udevd.c
index 0f3f3f0..160360e 100644
--- a/src/udev/udevd.c
+++ b/src/udev/udevd.c
@@ -304,7 +304,7 @@ static void worker_new(struct event *event)
* <kabi_> IMHO this sounds like a good plan for this moment
*/
if (streq_ptr("block", udev_device_get_subsystem(dev)) &&
- !startswith("dm-", udev_device_get_sysname(dev))) {
+ !startswith(udev_device_get_sysname(dev), "dm-")) {
struct udev_device *d = dev;
if (streq_ptr("partition", udev_device_get_devtype(d)))
--
2.0.0

View file

@ -1,26 +0,0 @@
From d8e40d62ab871a87fde421c4b246bb45bc3cbe2d Mon Sep 17 00:00:00 2001
From: Jonathan Liu <net147@gmail.com>
Date: Thu, 29 May 2014 01:17:25 +1000
Subject: [PATCH] units: use KillMode=mixed for systemd-nspawn@.service
This causes the container to shut down cleanly when the service is
stopped.
---
units/systemd-nspawn@.service.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/units/systemd-nspawn@.service.in b/units/systemd-nspawn@.service.in
index ff36e90..e373628 100644
--- a/units/systemd-nspawn@.service.in
+++ b/units/systemd-nspawn@.service.in
@@ -11,6 +11,7 @@ Documentation=man:systemd-nspawn(1)
[Service]
ExecStart=@bindir@/systemd-nspawn --quiet --keep-unit --boot --link-journal=guest --directory=/var/lib/container/%i
+KillMode=mixed
Type=notify
[Install]
--
1.9.3

View file

@ -6,8 +6,8 @@
pkgbase=systemd
pkgname=('systemd' 'libsystemd' 'systemd-sysvcompat')
pkgver=213
pkgrel=9.1
pkgver=214
pkgrel=2
arch=('i686' 'x86_64')
url="http://www.freedesktop.org/wiki/Software/systemd"
makedepends=('acl' 'cryptsetup' 'docbook-xsl' 'gobject-introspection' 'gperf'
@ -18,41 +18,15 @@ options=('strip' 'debug')
source=("http://www.freedesktop.org/software/$pkgname/$pkgname-$pkgver.tar.xz"
'initcpio-hook-udev'
'initcpio-install-systemd'
'initcpio-install-udev'
'0001-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch'
'0001-fsck-disable-l-option-for-now.patch'
'0001-udev-exclude-device-mapper-from-block-device-ownersh.patch'
'0001-udev-always-close-lock-file-descriptor.patch'
'0001-networkd-link-intialize-mac-address.patch'
'0001-udev-really-exclude-device-mapper-from-block-device-.patch')
md5sums=('06496edcf86ddf6d8c12d72ba78e735d'
'initcpio-install-udev')
md5sums=('eac4f9fc5bd18a0efc3fc20858baacf3'
'29245f7a240bfba66e2b1783b63b6b40'
'66cca7318e13eaf37c5b7db2efa69846'
'bde43090d4ac0ef048e3eaee8202a407'
'5f8ad7126970855614c7fa34b317728d'
'888cf85a92dd28bcf80e18539fef3915'
'f26803dda8811196c0564f928bfe69d1'
'2a14fe9876fa48f01cca3c1d575e5771'
'3d53d3bcd85ca0b2ff9f4e79d012808d'
'ae060fc00eeced6554e70d9a9c0eb42f')
prepare() {
cd "$pkgname-$pkgver"
patch -Np1 <"$srcdir/0001-units-use-KillMode-mixed-for-systemd-nspawn-.service.patch"
patch -Np1 <"$srcdir/0001-networkd-link-intialize-mac-address.patch"
patch -Np1 <"$srcdir/0001-fsck-disable-l-option-for-now.patch"
patch -Np1 <"$srcdir/0001-udev-always-close-lock-file-descriptor.patch"
patch -Np1 <"$srcdir/0001-udev-exclude-device-mapper-from-block-device-ownersh.patch"
patch -Np1 <"$srcdir/0001-udev-really-exclude-device-mapper-from-block-device-.patch"
}
'bde43090d4ac0ef048e3eaee8202a407')
build() {
cd "$pkgname-$pkgver"
export NM=gcc-nm RANLIB=gcc-ranlib
./configure \
--libexecdir=/usr/lib \
--localstatedir=/var \
@ -63,10 +37,10 @@ build() {
--disable-audit \
--disable-ima \
--disable-kdbus \
--disable-xattr \
--with-sysvinit-path= \
--with-sysvrcnd-path= \
--with-firmware-path="/usr/lib/firmware/updates:/usr/lib/firmware"
--with-firmware-path="/usr/lib/firmware/updates:/usr/lib/firmware" \
--disable-xattr
make
}
@ -112,6 +86,9 @@ package_systemd() {
rmdir "$pkgdir/etc/systemd/system/getty.target.wants" \
"$pkgdir/etc/systemd/system/network-online.target.wants"
# remove the coredump rule until minidumps are a thing.
rm "$pkgdir/usr/lib/sysctl.d/50-coredump.conf"
# get rid of RPM macros
rm -r "$pkgdir/usr/lib/rpm"

View file

@ -38,10 +38,6 @@ _dir_empty() {
post_common() {
systemd-machine-id-setup
# TODO: drop this for 214
# http://cgit.freedesktop.org/systemd/systemd/commit/?id=fdd2531170
add_privs usr/bin/systemd-detect-virt 'cap_dac_override,cap_sys_ptrace+ep'
udevadm hwdb --update
journalctl --update-catalog
}
@ -120,6 +116,27 @@ _213_4_changes() {
fi
}
_214_2_changes() {
# /run/systemd/network/resolv.conf -> /run/systemd/resolve/resolv.conf
if [[ etc/resolv.conf -ef run/systemd/network/resolv.conf ]]; then
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
if sd_booted; then
if [[ ! -d run/systemd/resolve ]]; then
mkdir run/systemd/resolve
fi
if [[ -f run/systemd/network/resolv.conf ]]; then
mv run/systemd/{network,resolve}/resolv.conf
fi
fi
fi
echo ':: coredumps are no longer sent to the journal by default. To re-enable:'
echo ' echo >/etc/sysctl.d/50-coredump.conf \'
echo ' "kernel.core_pattern=|/usr/lib/systemd/systemd-coredump %p %u %g %s %t %e"'
}
post_install() {
post_common "$@"
@ -144,7 +161,8 @@ post_upgrade() {
208-8
209-1
210-1
213-4)
213-4
214-2)
for v in "${upgrades[@]}"; do
if [[ $(vercmp "$v" "$2") -eq 1 ]]; then