Merge branch 'f15'

This commit is contained in:
Lennart Poettering 2011-05-26 19:19:27 +02:00
commit 6ce7d6425e
8 changed files with 399 additions and 23 deletions

6
.gitignore vendored
View File

@ -18,3 +18,9 @@ systemd-*src.rpm
/systemd-18.tar.bz2
/systemd-19.tar.bz2
/systemd-20.tar.bz2
/systemd-21.tar.bz2
/systemd-22.tar.bz2
/systemd-23.tar.bz2
/systemd-24.tar.bz2
/systemd-25.tar.bz2
/systemd-26.tar.bz2

View File

@ -0,0 +1,37 @@
From cda2b84a69905aafe2f8c6bd3f1c9eefe92b6bbb Mon Sep 17 00:00:00 2001
From: Michal Schmidt <mschmidt@redhat.com>
Date: Wed, 25 May 2011 16:17:17 +0200
Subject: [PATCH] dbus-common: fix segfault when a DBus message has no
interface
dbus_message_get_interface() may return NULL.
https://bugzilla.redhat.com/show_bug.cgi?id=707483
---
src/dbus-common.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/dbus-common.c b/src/dbus-common.c
index 9bf0dab..5db077b 100644
--- a/src/dbus-common.c
+++ b/src/dbus-common.c
@@ -418,9 +418,13 @@ DBusHandlerResult bus_default_message_handler(
return bus_send_error_reply(c, message, &error, -EINVAL);
}
- } else if (!nulstr_contains(interfaces, dbus_message_get_interface(message))) {
- dbus_set_error_const(&error, DBUS_ERROR_UNKNOWN_INTERFACE, "Unknown interface");
- return bus_send_error_reply(c, message, &error, -EINVAL);
+ } else {
+ const char *interface = dbus_message_get_interface(message);
+
+ if (!interface || !nulstr_contains(interfaces, interface)) {
+ dbus_set_error_const(&error, DBUS_ERROR_UNKNOWN_INTERFACE, "Unknown interface");
+ return bus_send_error_reply(c, message, &error, -EINVAL);
+ }
}
if (reply) {
--
1.7.5.2

View File

@ -0,0 +1,41 @@
From 53d5582fa006b0eb528f5dc3f4ba978abd8ac5a3 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Mon, 16 May 2011 23:31:06 +0200
Subject: [PATCH] pam: downgrade a few log msgs
---
src/pam-module.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/pam-module.c b/src/pam-module.c
index 93eb929..03864fe 100644
--- a/src/pam-module.c
+++ b/src/pam-module.c
@@ -505,7 +505,7 @@ _public_ PAM_EXTERN int pam_sm_open_session(
goto finish;
}
- pam_syslog(handle, LOG_INFO, "Moving new user session for %s into control group %s.", username, buf);
+ pam_syslog(handle, LOG_DEBUG, "Moving new user session for %s into control group %s.", username, buf);
if ((r = create_user_group(handle, SYSTEMD_CGROUP_CONTROLLER, buf, pw, true, true)) != PAM_SUCCESS)
goto finish;
@@ -676,13 +676,13 @@ _public_ PAM_EXTERN int pam_sm_close_session(
}
if (kill_session && check_user_lists(handle, pw->pw_uid, kill_only_users, kill_exclude_users)) {
- pam_syslog(handle, LOG_INFO, "Killing remaining processes of user session %s of %s.", id, username);
+ pam_syslog(handle, LOG_DEBUG, "Killing remaining processes of user session %s of %s.", id, username);
/* Kill processes in session cgroup, and delete it */
if ((r = cg_kill_recursive_and_wait(SYSTEMD_CGROUP_CONTROLLER, session_path, true)) < 0)
pam_syslog(handle, LOG_ERR, "Failed to kill session cgroup: %s", strerror(-r));
} else {
- pam_syslog(handle, LOG_INFO, "Moving remaining processes of user session %s of %s into control group %s.", id, username, nosession_path);
+ pam_syslog(handle, LOG_DEBUG, "Moving remaining processes of user session %s of %s into control group %s.", id, username, nosession_path);
/* Migrate processes from session to user
* cgroup. First, try to create the user group
--
1.7.5.2

View File

@ -0,0 +1,27 @@
From 3afe3725fcf21fab7204243b9485a118e499b4a3 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Wed, 25 May 2011 13:09:08 +0200
Subject: [PATCH] readahead-collect: ignore EACCES for fanotify
At the start of auditd, we are temporarily not able to read
from the fanotify fd. Ignoring it, seems to work.
---
src/readahead-collect.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/readahead-collect.c b/src/readahead-collect.c
index 3c48a02..913a340 100644
--- a/src/readahead-collect.c
+++ b/src/readahead-collect.c
@@ -380,7 +380,7 @@ static int collect(const char *root) {
if ((n = read(fanotify_fd, &data, sizeof(data))) < 0) {
- if (errno == EINTR || errno == EAGAIN)
+ if (errno == EINTR || errno == EAGAIN || errno == EACCES)
continue;
log_error("Failed to read event: %m");
--
1.7.5.2

View File

@ -0,0 +1,25 @@
From a96257af783f1d2c35a957466856e62ebf82bcad Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
Date: Tue, 3 May 2011 17:58:28 +0200
Subject: [PATCH] vconsole: use open_terminal() instead of open()
---
src/vconsole-setup.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/vconsole-setup.c b/src/vconsole-setup.c
index 1be260b..68ebac9 100644
--- a/src/vconsole-setup.c
+++ b/src/vconsole-setup.c
@@ -176,7 +176,7 @@ int main(int argc, char **argv) {
else
vc = "/dev/tty0";
- if ((fd = open(vc, O_RDWR|O_CLOEXEC)) < 0) {
+ if ((fd = open_terminal(vc, O_RDWR|O_CLOEXEC)) < 0) {
log_error("Failed to open %s: %m", vc);
goto finish;
}
--
1.7.5.2

View File

@ -1 +1 @@
c1c98eed410ec108b8bf74e4d94d5d66 systemd-20.tar.bz2
b7c468aa400c64d02d533eba6359e283 systemd-26.tar.bz2

148
systemd-sysv-convert Executable file
View File

@ -0,0 +1,148 @@
#!/usr/bin/python
# -*- Mode: Python; python-indent: 8; indent-tabs-mode: t -*-
import sys, os, argparse, errno
def find_service(service, runlevel):
priority = -1
for l in os.listdir("/etc/rc%i.d" % runlevel):
if len(l) < 4:
continue
if l[0] != 'S' or l[3:] != service:
continue
p = int(l[1:3])
if p >= 0 and p <= 99 and p >= priority:
priority = p;
return priority
def lookup_database(services):
try:
database = open("/var/lib/systemd/sysv-convert/database", "r")
except IOError, e:
if e.errno != errno.ENOENT:
raise e
return {}
found = {}
k = 0
for line in database:
service, r, p = line.strip().split("\t", 3)
k += 1
try:
runlevel = int(r)
priority = int(p)
except ValueError, e:
sys.stderr.write("Failed to parse database line %i. Ignoring." % k)
continue
if runlevel not in (2, 3, 4, 5):
sys.stderr.write("Runlevel out of bounds in database line %i. Ignoring." % k)
continue
if priority < 0 or priority > 99:
sys.stderr.write("Priority out of bounds in database line %i. Ignoring." % k)
continue
if service not in services:
continue
if service not in found:
found[service] = {}
if runlevel not in found[service] or found[service][runlevel] < priority:
found[service][runlevel] = priority
return found
def mkdir_p(path):
try:
os.makedirs(path, 0755)
except OSError, e:
if e.errno != errno.EEXIST:
raise e
if os.geteuid() != 0:
sys.stderr.write("Need to be root.\n")
sys.exit(1)
parser = argparse.ArgumentParser(description='Save and Restore SysV Service Runlevel Information')
parser.add_argument('services', metavar='SERVICE', type=str, nargs='+',
help='Service names')
parser.add_argument('--save', dest='save', action='store_const',
const=True, default=False,
help='Save SysV runlevel information for one or more services')
parser.add_argument('--show', dest='show', action='store_const',
const=True, default=False,
help='Show saved SysV runlevel information for one or more services')
parser.add_argument('--apply', dest='apply', action='store_const',
const=True, default=False,
help='Apply saved SysV runlevel information for one or more services to systemd counterparts')
a = parser.parse_args()
if a.save:
for service in a.services:
if not os.access("/etc/rc.d/init.d/%s" % service, os.F_OK):
sys.stderr.write("SysV service %s does not exist.\n" % service)
sys.exit(1)
mkdir_p("/var/lib/systemd/sysv-convert")
database = open("/var/lib/systemd/sysv-convert/database", "a")
for runlevel in (2, 3, 4, 5):
priority = find_service(service, runlevel)
if priority >= 0:
database.write("%s\t%s\t%s\n" % (service, runlevel, priority))
elif a.show:
found = lookup_database(a.services)
if len(found) <= 0:
sys.stderr.write("No information about passed services found.\n")
sys.exit(1)
for service, data in found.iteritems():
for runlevel, priority in data.iteritems():
sys.stdout.write("SysV service %s enabled in runlevel %s at priority %s\n" % (service, runlevel, priority))
elif a.apply:
for service in a.services:
if not os.access("/lib/systemd/system/%s.service" % service, os.F_OK):
sys.stderr.write("systemd service %s.service does not exist.\n" % service)
sys.exit(1)
found = lookup_database(a.services)
if len(found) <= 0:
sys.stderr.write("No information about passed services found.\n")
sys.exit(1)
for service, data in found.iteritems():
for runlevel in data.iterkeys():
sys.stderr.write("ln -sf /lib/systemd/system/%s.service /etc/systemd/system/runlevel%i.target.wants/%s.service\n" % (service, runlevel, service))
mkdir_p("/etc/systemd/system/runlevel%i.target.wants" % runlevel)
try:
os.symlink("/lib/systemd/system/%s.service" % service,
"/etc/systemd/system/runlevel%i.target.wants/%s.service" % (runlevel, service))
except OSError, e:
if e.errno != errno.EEXIST:
raise e
else:
parser.print_help()

View File

@ -1,8 +1,8 @@
Name: systemd
Url: http://www.freedesktop.org/wiki/Software/systemd
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Version: 20
Release: 1%{?dist}
Version: 26
Release: 2%{?dist}
License: GPLv2+
Group: System Environment/Base
Summary: A System and Service Manager
@ -25,23 +25,30 @@ BuildRequires: libtool
BuildRequires: make
Requires(post): authconfig
Requires: systemd-units = %{version}-%{release}
Requires: dbus >= 1.3.2
Requires: udev >= 160
Requires: dbus >= 1.4.6-3.fc15
Requires: udev >= 167
Requires: libudev >= 160
Requires: initscripts >= 9.22
Conflicts: selinux-policy < 3.8.7
Requires: initscripts >= 9.28
Requires: filesystem >= 2.4.40
Conflicts: selinux-policy < 3.9.16-12.fc15
Requires: kernel >= 2.6.35.2-9.fc14
Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.bz2
# Adds support for the %%{_unitdir} macro
Source1: macros.systemd
Source2: systemd-sysv-convert
Patch0: 0001-dbus-common-fix-segfault-when-a-DBus-message-has-no-.patch
Patch1: 0001-readahead-collect-ignore-EACCES-for-fanotify.patch
Patch2: 0001-vconsole-use-open_terminal-instead-of-open.patch
Patch3: 0001-pam-downgrade-a-few-log-msgs.patch
# For sysvinit tools
Obsoletes: SysVinit < 2.86-24, sysvinit < 2.86-24
Provides: SysVinit = 2.86-24, sysvinit = 2.86-24
Provides: sysvinit-userspace
Provides: systemd-sysvinit
Obsoletes: systemd-sysvinit
Obsoletes: upstart < 0.6.5-11
Obsoletes: upstart-sysvinit < 0.6.5-11
Obsoletes: upstart < 1.2-3
Obsoletes: upstart-sysvinit < 1.2-3
Conflicts: upstart-sysvinit
Obsoletes: readahead < 1:1.5.7-3
Provides: readahead = 1:1.5.7-3
@ -76,8 +83,20 @@ Requires: polkit
%description gtk
Graphical front-end for systemd.
%package sysv
Group: System Environment/Base
Summary: SysV tools for systemd
Requires: %{name} = %{version}-%{release}
%description sysv
SysV compatibility tools for systemd
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%build
%configure --with-rootdir= --with-distro=fedora
@ -110,20 +129,26 @@ touch %{buildroot}%{_sysconfdir}/systemd/system/runlevel3.target
touch %{buildroot}%{_sysconfdir}/systemd/system/runlevel4.target
touch %{buildroot}%{_sysconfdir}/systemd/system/runlevel5.target
touch %{buildroot}%{_sysconfdir}/machine-id
# Make sure these directories are properly owned
mkdir -p %{buildroot}/lib/systemd/system/basic.target.wants
mkdir -p %{buildroot}/lib/systemd/system/default.target.wants
mkdir -p %{buildroot}/lib/systemd/system/dbus.target.wants
mkdir -p %{buildroot}/lib/systemd/system/syslog.target.wants
# Create new-style configuration files so that we can ghost-own them
touch %{buildroot}%{_sysconfdir}/hostname
touch %{buildroot}%{_sysconfdir}/vconsole.conf
touch %{buildroot}%{_sysconfdir}/locale.conf
touch %{buildroot}%{_sysconfdir}/os-release
touch %{buildroot}%{_sysconfdir}/machine-id
touch %{buildroot}%{_sysconfdir}/machine-info
# Install RPM macros file for systemd
mkdir -p %{buildroot}%{_sysconfdir}/rpm/
install -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/rpm/
# Mask legacy stuff
ln -s rescue.service %{buildroot}/lib/systemd/system/single.service
# Install SysV conversion tool for systemd
install -m 0755 %{SOURCE2} %{buildroot}%{_bindir}/
%clean
rm -rf $RPM_BUILD_ROOT
@ -156,10 +181,7 @@ if [ $1 -eq 1 ] ; then
# Enable the services we install by default.
/bin/systemctl enable \
getty@.service \
getty.target \
remote-fs.target \
quotaon.service \
quotacheck.service \
systemd-readahead-replay.service \
systemd-readahead-collect.service \
hwclock-load.service > /dev/null 2>&1 || :
@ -169,10 +191,7 @@ fi
if [ $1 -eq 0 ] ; then
/bin/systemctl disable \
getty@.service \
getty.target \
remote-fs.target \
quotaon.service \
quotacheck.service \
systemd-readahead-replay.service \
systemd-readahead-collect.service \
hwclock-load.service > /dev/null 2>&1 || :
@ -188,21 +207,33 @@ fi
%files
%defattr(-,root,root,-)
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf
%config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf
%config(noreplace) %{_sysconfdir}/systemd/system.conf
%dir %{_sysconfdir}/systemd/user
%{_sysconfdir}/xdg/systemd
%{_sysconfdir}/tmpfiles.d/systemd.conf
%{_sysconfdir}/tmpfiles.d/x11.conf
%{_libdir}/../lib/tmpfiles.d/systemd.conf
%{_libdir}/../lib/tmpfiles.d/x11.conf
%{_libdir}/../lib/tmpfiles.d/legacy.conf
%ghost %config(noreplace) %{_sysconfdir}/hostname
%ghost %config(noreplace) %{_sysconfdir}/vconsole.conf
%ghost %config(noreplace) %{_sysconfdir}/locale.conf
%ghost %config(noreplace) %{_sysconfdir}/os-release
%ghost %config(noreplace) %{_sysconfdir}/machine-id
%ghost %config(noreplace) %{_sysconfdir}/machine-info
/bin/systemd
/bin/systemd-notify
/bin/systemd-ask-password
/bin/systemd-tty-ask-password-agent
/bin/systemd-machine-id-setup
/usr/bin/systemd-nspawn
/usr/bin/systemd-stdio-bridge
/usr/bin/systemd-analyze
/lib/systemd/systemd-*
/lib/udev/rules.d/*.rules
%dir /lib/systemd/system-generators
%dir /lib/systemd/system-shutdown
/lib/systemd/system-generators/systemd-cryptsetup-generator
/lib/systemd/system-generators/systemd-getty-generator
/%{_lib}/security/pam_systemd.so
/sbin/init
/sbin/reboot
@ -214,23 +245,34 @@ fi
%{_bindir}/systemd-cgls
%{_mandir}/man1/*
%exclude %{_mandir}/man1/systemctl.*
%exclude %{_mandir}/man1/systemadm.*
%{_mandir}/man3/*
%{_mandir}/man5/*
%{_mandir}/man7/*
%{_mandir}/man8/*
%{_datadir}/systemd
%{_libdir}/../lib/systemd
%{_datadir}/dbus-1/services/org.freedesktop.systemd1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service
%{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service
%{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml
%{_docdir}/systemd
%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
%{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy
%files units
%defattr(-,root,root,-)
%dir %{_sysconfdir}/systemd
%dir %{_sysconfdir}/systemd/system
%dir %{_sysconfdir}/tmpfiles.d
%dir %{_sysconfdir}/sysctl.d
%dir %{_sysconfdir}/modules-load.d
%dir %{_sysconfdir}/binfmt.d
%dir %{_sysconfdir}/bash_completion.d
%dir /lib/systemd
%dir %{_libdir}/../lib/tmpfiles.d
%dir %{_libdir}/../lib/sysctl.d
%dir %{_libdir}/../lib/modules-load.d
%dir %{_libdir}/../lib/binfmt.d
/lib/systemd/system
/bin/systemctl
/bin/systemd-tmpfiles
@ -251,10 +293,60 @@ fi
%defattr(-,root,root,-)
%{_bindir}/systemadm
%{_bindir}/systemd-gnome-ask-password-agent
%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
%{_mandir}/man1/systemadm.*
%files sysv
%{_bindir}/systemd-sysv-convert
%changelog
* Wed May 25 2011 Lennart Poettering <lpoetter@redhat.com> - 26-2
- Bugfix release
- https://bugzilla.redhat.com/show_bug.cgi?id=707507
- https://bugzilla.redhat.com/show_bug.cgi?id=707483
- https://bugzilla.redhat.com/show_bug.cgi?id=705427
- https://bugzilla.redhat.com/show_bug.cgi?id=707577
* Sat Apr 30 2011 Lennart Poettering <lpoetter@redhat.com> - 26-1
- New upstream release
- https://bugzilla.redhat.com/show_bug.cgi?id=699394
- https://bugzilla.redhat.com/show_bug.cgi?id=698198
- https://bugzilla.redhat.com/show_bug.cgi?id=698674
- https://bugzilla.redhat.com/show_bug.cgi?id=699114
- https://bugzilla.redhat.com/show_bug.cgi?id=699128
* Thu Apr 21 2011 Lennart Poettering <lpoetter@redhat.com> - 25-1
- New upstream release
- https://bugzilla.redhat.com/show_bug.cgi?id=694788
- https://bugzilla.redhat.com/show_bug.cgi?id=694321
- https://bugzilla.redhat.com/show_bug.cgi?id=690253
- https://bugzilla.redhat.com/show_bug.cgi?id=688661
- https://bugzilla.redhat.com/show_bug.cgi?id=682662
- https://bugzilla.redhat.com/show_bug.cgi?id=678555
- https://bugzilla.redhat.com/show_bug.cgi?id=628004
* Wed Apr 6 2011 Lennart Poettering <lpoetter@redhat.com> - 24-1
- New upstream release
- https://bugzilla.redhat.com/show_bug.cgi?id=694079
- https://bugzilla.redhat.com/show_bug.cgi?id=693289
- https://bugzilla.redhat.com/show_bug.cgi?id=693274
- https://bugzilla.redhat.com/show_bug.cgi?id=693161
* Tue Apr 5 2011 Lennart Poettering <lpoetter@redhat.com> - 23-1
- New upstream release
- Include systemd-sysv-convert
* Fri Apr 1 2011 Lennart Poettering <lpoetter@redhat.com> - 22-1
- New upstream release
* Wed Mar 30 2011 Lennart Poettering <lpoetter@redhat.com> - 21-2
- The quota services are now pulled in by mount points, hence no need to enable them explicitly
* Tue Mar 29 2011 Lennart Poettering <lpoetter@redhat.com> - 21-1
- New upstream release
* Mon Mar 28 2011 Matthias Clasen <mclasen@redhat.com> - 20-2
- Apply upstream patch to not send untranslated messages to plymouth
* Tue Mar 8 2011 Lennart Poettering <lpoetter@redhat.com> - 20-1
- New upstream release