From 9f855ab0c452fa42a5fa13ddbaa1f310e4d06d18 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 16 Feb 2011 22:30:14 +0100 Subject: [PATCH] New upstream release --- fix-popen.patch | 63 ------------------------------------------------- systemd.spec | 10 ++++---- 2 files changed, 6 insertions(+), 67 deletions(-) delete mode 100644 fix-popen.patch diff --git a/fix-popen.patch b/fix-popen.patch deleted file mode 100644 index 0bca1b0..0000000 --- a/fix-popen.patch +++ /dev/null @@ -1,63 +0,0 @@ -diff --git a/src/systemctl.c b/src/systemctl.c -index 8cdc01a..c09b31d 100644 ---- a/src/systemctl.c -+++ b/src/systemctl.c -@@ -141,6 +141,9 @@ static void spawn_ask_password_agent(void) { - if (!arg_ask_password) - return; - -+ if (arg_user) -+ return; -+ - parent = getpid(); - - /* Spawns a temporary TTY agent, making sure it goes away when -@@ -151,13 +154,15 @@ static void spawn_ask_password_agent(void) { - - if (child == 0) { - /* In the child */ -- - const char * const args[] = { - SYSTEMD_TTY_ASK_PASSWORD_AGENT_BINARY_PATH, - "--watch", - NULL - }; - -+ int fd; -+ -+ /* Make sure the agent goes away when the parent dies */ - if (prctl(PR_SET_PDEATHSIG, SIGTERM) < 0) - _exit(EXIT_FAILURE); - -@@ -166,6 +171,31 @@ static void spawn_ask_password_agent(void) { - if (getppid() != parent) - _exit(EXIT_SUCCESS); - -+ /* Don't leak fds to the agent */ -+ close_all_fds(NULL, 0); -+ -+ /* Detach from stdin/stdout/stderr. and reopen -+ * /dev/tty for them. This is important to ensure that -+ * when systemctl is started via popen() or a similar -+ * call that expects to read EOF we actually do -+ * generate EOF and not delay this indefinitely by -+ * because we keep an unused copy of stdin around. */ -+ if ((fd = open("/dev/tty", O_RDWR)) < 0) { -+ log_error("Failed to open /dev/tty: %m"); -+ _exit(EXIT_FAILURE); -+ } -+ -+ close(STDIN_FILENO); -+ close(STDOUT_FILENO); -+ close(STDERR_FILENO); -+ -+ dup2(fd, STDIN_FILENO); -+ dup2(fd, STDOUT_FILENO); -+ dup2(fd, STDERR_FILENO); -+ -+ if (fd > 2) -+ close(fd); -+ - execv(args[0], (char **) args); - _exit(EXIT_FAILURE); - } diff --git a/systemd.spec b/systemd.spec index de87ffc..7ef32a7 100644 --- a/systemd.spec +++ b/systemd.spec @@ -1,8 +1,8 @@ Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -Version: 17 -Release: 6%{?dist} +Version: 18 +Release: 1%{?dist} License: GPLv2+ Group: System Environment/Base Summary: A System and Service Manager @@ -44,7 +44,6 @@ Obsoletes: upstart-sysvinit < 0.6.5-11 Conflicts: upstart-sysvinit Obsoletes: readahead < 1:1.5.7-3 Provides: readahead = 1:1.5.7-3 -Patch0: fix-popen.patch %description systemd is a system and service manager for Linux, compatible with @@ -78,7 +77,6 @@ Graphical front-end for systemd. %prep %setup -q -%patch0 -p1 %build %configure --with-rootdir= --with-distro=fedora @@ -220,6 +218,7 @@ fi %dir /lib/systemd /lib/systemd/system /bin/systemctl +/bin/systemd-tmpfiles %{_sysconfdir}/bash_completion.d/systemctl-bash-completion.sh %{_sysconfdir}/rpm/macros.systemd %{_mandir}/man1/systemctl.* @@ -241,6 +240,9 @@ fi %{_mandir}/man1/systemadm.* %changelog +* Wed Feb 16 2011 Lennart Poettering - 18-1 +- New upstream release + * Mon Feb 14 2011 Bill Nottingham - 17-6 - bump upstart obsoletes (#676815)