Commit 1cba5cf9 authored by Maxime Ripard's avatar Maxime Ripard Committed by Peter Korsgaard
Browse files

Bump systemd to version 44



[Peter: handle missing posix_fallocate in uClibc patch]
Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
parent 7a67da44
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
commit 7264278fbbdc1dc6c30fedc902d1337594aa6ff6
Author: Lennart Poettering <lennart@poettering.net>
Date:   Wed Mar 21 23:47:44 2012 +0100

    journal: PAGE_SIZE is not known on ppc and other archs
    
    Let's use NAME_MAX, as suggested by Dan Walsh

diff --git a/src/journal/journald.c b/src/journal/journald.c
index d27cb60..87390bd 100644
--- a/src/journal/journald.c
+++ b/src/journal/journald.c
@@ -29,7 +29,6 @@
 #include <sys/ioctl.h>
 #include <linux/sockios.h>
 #include <sys/statvfs.h>
-#include <sys/user.h>
 
 #include <systemd/sd-journal.h>
 #include <systemd/sd-login.h>
@@ -2149,10 +2148,20 @@ static int process_event(Server *s, struct epoll_event *ev) {
                         size_t label_len = 0;
                         union {
                                 struct cmsghdr cmsghdr;
+
+                                /* We use NAME_MAX space for the
+                                 * SELinux label here. The kernel
+                                 * currently enforces no limit, but
+                                 * according to suggestions from the
+                                 * SELinux people this will change and
+                                 * it will probably be identical to
+                                 * NAME_MAX. For now we use that, but
+                                 * this should be updated one day when
+                                 * the final limit is known.*/
                                 uint8_t buf[CMSG_SPACE(sizeof(struct ucred)) +
                                             CMSG_SPACE(sizeof(struct timeval)) +
-                                            CMSG_SPACE(sizeof(int)) +
-                                            CMSG_SPACE(PAGE_SIZE)]; /* selinux label */
+                                            CMSG_SPACE(sizeof(int)) + /* fd */
+                                            CMSG_SPACE(NAME_MAX)]; /* selinux label */
                         } control;
                         ssize_t n;
                         int v;
+25 −6
Original line number Diff line number Diff line
@@ -9,14 +9,15 @@ support to uClibc).

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
---
 src/journal/journal-file.c |    2 ++
 src/macro.h                |   15 +++++++++++++++
 1 file changed, 15 insertions(+)
 2 files changed, 17 insertions(+)

Index: systemd-37/src/macro.h
Index: systemd-44/src/macro.h
===================================================================
--- systemd-37.orig/src/macro.h
+++ systemd-37/src/macro.h
@@ -27,6 +27,21 @@
--- systemd-44.orig/src/macro.h
+++ systemd-44/src/macro.h
@@ -28,6 +28,21 @@
 #include <sys/uio.h>
 #include <inttypes.h>
 
@@ -38,3 +39,21 @@ Index: systemd-37/src/macro.h
 #define _printf_attr_(a,b) __attribute__ ((format (printf, a, b)))
 #define _sentinel_ __attribute__ ((sentinel))
 #define _noreturn_ __attribute__((noreturn))
Index: systemd-44/src/journal/journal-file.c
===================================================================
--- systemd-44.orig/src/journal/journal-file.c
+++ systemd-44/src/journal/journal-file.c
@@ -229,11 +229,13 @@
                 }
         }
 
+#ifndef __UCLIBC__
         /* Note that the glibc fallocate() fallback is very
            inefficient, hence we try to minimize the allocation area
            as we can. */
         if (posix_fallocate(f->fd, old_size, new_size - old_size) < 0)
                 return -errno;
+#endif
 
         if (fstat(f->fd, &f->last_stat) < 0)
                 return -errno;
+15 −9
Original line number Diff line number Diff line
@@ -3,9 +3,9 @@
# systemd
#
#############################################################
SYSTEMD_VERSION = 37
SYSTEMD_VERSION = 44
SYSTEMD_SITE = http://www.freedesktop.org/software/systemd/
SYSTEMD_SOURCE = systemd-$(SYSTEMD_VERSION).tar.bz2
SYSTEMD_SOURCE = systemd-$(SYSTEMD_VERSION).tar.xz
SYSTEMD_DEPENDENCIES = \
	host-intltool \
	libcap \
@@ -32,7 +32,8 @@ SYSTEMD_CONF_OPT += \
	--with-dbusinterfacedir=/usr/share/dbus-1/interfaces \
	--with-udevrulesdir=/etc/udev/rules.d \
	--with-sysvinit-path=/etc/init.d/ \
	--without-sysvrcd-path
	--without-sysvrcd-path \
	--enable-split-usr

ifeq ($(BR2_PACKAGE_ACL),y)
	SYSTEMD_CONF_OPT += --enable-acl
@@ -41,21 +42,26 @@ else
	SYSTEMD_CONF_OPT += --disable-acl
endif

ifneq ($(BR2_LARGEFILE),y)
	SYSTEMD_CONF_OPT += --disable-largefile
endif

# mq_getattr needs -lrt
SYSTEMD_MAKE_OPT += LIBS=-lrt
SYSTEMD_MAKE_OPT += LDFLAGS+=-ldl

define SYSTEMD_INSTALL_INIT_HOOK
	ln -fs ../bin/systemd $(TARGET_DIR)/sbin/init
	ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/halt
	ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/poweroff
	ln -fs ../bin/systemctl $(TARGET_DIR)/sbin/reboot
	ln -fs ../usr/lib/systemd/systemd $(TARGET_DIR)/sbin/init
	ln -fs ../usr/bin/systemctl $(TARGET_DIR)/sbin/halt
	ln -fs ../usr/bin/systemctl $(TARGET_DIR)/sbin/poweroff
	ln -fs ../usr/bin/systemctl $(TARGET_DIR)/sbin/reboot

	ln -fs ../../../../lib/systemd/system/multi-user.target $(TARGET_DIR)/etc/systemd/system/default.target
	ln -fs ../../../usr/lib/systemd/system/multi-user.target $(TARGET_DIR)/etc/systemd/system/default.target
endef

define SYSTEMD_INSTALL_TTY_HOOK
	rm -f $(TARGET_DIR)/etc/systemd/system/getty.target.wants/getty@tty1.service
	ln -fs ../../../../lib/systemd/system/serial-getty@.service $(TARGET_DIR)/etc/systemd/system/getty.target.wants/serial-getty@$(BR2_TARGET_GENERIC_GETTY_PORT).service
	ln -fs ../../../../usr/lib/systemd/system/serial-getty@.service $(TARGET_DIR)/etc/systemd/system/getty.target.wants/serial-getty@$(BR2_TARGET_GENERIC_GETTY_PORT).service
endef

SYSTEMD_POST_INSTALL_TARGET_HOOKS += \