Terminal multiplexers (tmux, screen) are broken in systemd-nspawn containers (#1282626)

Resolves: #1282626
This commit is contained in:
Jan Synacek 2016-01-07 14:06:04 +01:00
parent 6a25424b39
commit 9207cfc856
2 changed files with 47 additions and 1 deletions

View File

@ -0,0 +1,42 @@
From f56439ec3647962da92d130580c24b3d51c26019 Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@gentoo.org>
Date: Wed, 22 Jul 2015 22:34:57 -0400
Subject: [PATCH 1/4] nspawn: Don't pass uid mount option for devpts
Mounting devpts with a uid breaks pty allocation with recent glibc
versions, which expect that the kernel will set the correct owner for
user-allocated ptys.
The kernel seems to be smart enough to use the correct uid for root when
we switch to a user namespace.
This resolves #337.
---
src/nspawn/nspawn.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
index 198de30..9c8ffac 100644
--- a/src/nspawn/nspawn.c
+++ b/src/nspawn/nspawn.c
@@ -1785,15 +1785,13 @@ static int setup_pts(const char *dest) {
#ifdef HAVE_SELINUX
if (arg_selinux_apifs_context)
(void) asprintf(&options,
- "newinstance,ptmxmode=0666,mode=620,uid=" UID_FMT ",gid=" GID_FMT ",context=\"%s\"",
- arg_uid_shift,
+ "newinstance,ptmxmode=0666,mode=620,gid=" GID_FMT ",context=\"%s\"",
arg_uid_shift + TTY_GID,
arg_selinux_apifs_context);
else
#endif
(void) asprintf(&options,
- "newinstance,ptmxmode=0666,mode=620,uid=" UID_FMT ",gid=" GID_FMT,
- arg_uid_shift,
+ "newinstance,ptmxmode=0666,mode=620,gid=" GID_FMT,
arg_uid_shift + TTY_GID);
if (!options)
--
2.5.0

View File

@ -13,7 +13,7 @@
Name: systemd
Url: http://www.freedesktop.org/wiki/Software/systemd
Version: 222
Release: 11%{?gitcommit:.git%{gitcommit}}%{?dist}
Release: 12%{?gitcommit:.git%{gitcommit}}%{?dist}
# For a breakdown of the licensing, see README
License: LGPLv2+ and MIT and GPLv2+
Summary: A System and Service Manager
@ -103,6 +103,7 @@ Patch0067: 0067-libudev-simplify-udev_device_ensure_usec_initialized.patch
Patch0068: 0068-udev-fix-NULL-deref-when-executing-rules.patch
Patch0069: 0054-logind-never-select-closing-sessions-for-a-VT.patch
Patch0070: 0055-logind-release-VT-positions-when-closing-sessions.patch
Patch0071: 0071-nspawn-Don-t-pass-uid-mount-option-for-devpts.patch
Patch997: 0001-Re-apply-walters-unit-patch-for-F23-systemd-v222.patch
Patch998: 0001-Revert-core-mount-add-dependencies-to-dynamically-mo-v222.patch
@ -843,6 +844,9 @@ getent passwd systemd-journal-upload >/dev/null 2>&1 || useradd -r -l -g systemd
/usr/lib/firewalld/services/*
%changelog
* Thu Jan 7 2016 Jan Synáček <jsynacek@redhat.com> - 222-12
- Terminal multiplexers (tmux, screen) are broken in systemd-nspawn containers (#1282626)
* Tue Jan 5 2016 Jan Synáček <jsynacek@redhat.com> - 222-11
- re-apply patches that were removed by mistake (#1263208)