public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/musl:master commit in: app-misc/screen/files/, app-misc/screen/
@ 2018-11-17  0:37 Anthony G. Basile
  0 siblings, 0 replies; only message in thread
From: Anthony G. Basile @ 2018-11-17  0:37 UTC (permalink / raw
  To: gentoo-commits

commit:     8f4bd10e4365a3e97d075d4170d439f2dde1c0f5
Author:     xdch47 <xdch47 <AT> posteo <DOT> de>
AuthorDate: Fri Nov 16 14:31:56 2018 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Sat Nov 17 00:36:46 2018 +0000
URL:        https://gitweb.gentoo.org/proj/musl.git/commit/?id=8f4bd10e

app-misc/screen: build without utmp for musl

Package-Manager: Portage-2.3.51, Repoman-2.3.11
RepoMan-Options: --force
Manifest-Sign-Key: 0DEDF1A904568BAD1FC45C283DCC44782ED07E1C
Signed-off-by: Anthony G. Basile <blueness <AT> gentoo.org>

 app-misc/screen/Manifest                           |  18 ++
 .../screen/files/screen-4.3.0-no-utempter.patch    |  14 +
 app-misc/screen/files/screen-4.5.1-texinfo.patch   |  13 +
 app-misc/screen/files/screen-4.6.2-utmp-exit.patch |  55 ++++
 app-misc/screen/files/screenrc                     | 356 +++++++++++++++++++++
 app-misc/screen/metadata.xml                       |  35 ++
 app-misc/screen/screen-4.5.1.ebuild                | 163 ++++++++++
 app-misc/screen/screen-4.6.0.ebuild                | 161 ++++++++++
 app-misc/screen/screen-4.6.1.ebuild                | 161 ++++++++++
 app-misc/screen/screen-4.6.2.ebuild                | 163 ++++++++++
 app-misc/screen/screen-9999.ebuild                 | 152 +++++++++
 11 files changed, 1291 insertions(+)

diff --git a/app-misc/screen/Manifest b/app-misc/screen/Manifest
new file mode 100644
index 0000000..46ad105
--- /dev/null
+++ b/app-misc/screen/Manifest
@@ -0,0 +1,18 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+DIST screen-4.5.1.tar.gz 963153 BLAKE2B 8f7e20a0a3dde58435fc500714b49af97b4f2f225d34394170572e79ab9a8b49beac6c054021db367a01b6da91deaa726284a25c86eb57e11dcd09ad5dc44cb4 SHA512 ca53477ad38264be38efb1d10a1337b647dd061127162c77533b17a30d046cd0caabe38e4a9e5389aac30d5dc62eb53e7877411e69adae36d0ca869bd0a82804
+DIST screen-4.6.0.tar.gz 849062 BLAKE2B e08915bb34d4e356eb33c479f1b2dc7a8f4a855e9d1c27490ff31cfc88b4bd9dfb11101dd0e4508f3b37b023b9f9b987dfaff4c6cc930e994d22fcb024cf341d SHA512 2ee7cc51c62a478e72eda0647f3f347e63f40384e19bc11b074158bd94cdb628c6425b1dd7a472496d56bff11a30a9dc58859c2e7e539fae2a8718ed9b0f96d7
+DIST screen-4.6.1.tar.gz 848979 BLAKE2B e78874b6d8723c52f827ab5e6b665102d7fd831f03a0006f9d31e000535ccce95ce08e2d302e34ba2d567167a917c8bd3b875843828d1951bcb38ab6ae4e0acf SHA512 e5d029400ed5b509ebddc1f55812c33536d6f5ce91119537c7d06e1fa7dee84939c43337df4638f61c818ce0412f4d08fe212202162a4483a9e84bbc4b3e4336
+DIST screen-4.6.2.tar.gz 845210 BLAKE2B feea244e2e0c8f638442a524cd7cac93c6c5e576541bf1321fb32bc9424abf53415d00ebcb4a13a9613788c1baad6e132f209bd0a017b100e0687b3658603aea SHA512 224bd16ad5ae501d1b8bb7d2ba9cc19e6a0743de5a5b320109c2f6bf3b1ca564cc7094ed9211be13733d9d769cde77d13fe236341d448cad0518038ab1e85c99
+-----BEGIN PGP SIGNATURE-----
+
+iQEzBAEBCAAdFiEEDe3xqQRWi60fxFwoPcxEeC7QfhwFAlvu1NoACgkQPcxEeC7Q
+fhyRJQgAnr43VlPa10cSJ4ndRWpxo0C0uXlmcBA12TthcwDrOPoU44QOlaai8qy8
+ZitvREY6W5fBgsfAz1OVAef1jlLLHJK+0k58CVdedQdtpbwOcBtFc1ZOWKYwXGxK
+kx8LSG44XcroLe3m9YWs+Y5+l3Db5FyLMbG/WSC1jwCZrRznrdzOC5U/5UDcqLZP
+IBAn1aqwnotO6t5rWnM2HBJ8i1K7f1xo3B7lnnYHEQqVJ/qCWqNbOVMUAfnpZhvM
+y9Nat9XjRuSaxsdnhqfncsdSPtnb+2nywfGZyjbSApNZ5xL3LdR8OADwko6ukRBP
+MpBJaPNhUVNQGEqu0eKEwDZheN824g==
+=3fDd
+-----END PGP SIGNATURE-----

diff --git a/app-misc/screen/files/screen-4.3.0-no-utempter.patch b/app-misc/screen/files/screen-4.3.0-no-utempter.patch
new file mode 100644
index 0000000..e11be5b
--- /dev/null
+++ b/app-misc/screen/files/screen-4.3.0-no-utempter.patch
@@ -0,0 +1,14 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -878,11 +878,6 @@
+ #include <utmp.h>
+ #endif
+ ],[struct utmp u; u.ut_host[0] = 0;], AC_DEFINE(UTHOST))
+-AC_CHECK_HEADER(utempter.h, have_utempter=yes, have_utempter=no)
+-if test "$have_utempter" = yes; then
+-  AC_DEFINE(HAVE_UTEMPTER)
+-  LIBS="$LIBS -lutempter"
+-fi
+ 
+ dnl
+ dnl    ****  loadav  ****

diff --git a/app-misc/screen/files/screen-4.5.1-texinfo.patch b/app-misc/screen/files/screen-4.5.1-texinfo.patch
new file mode 100644
index 0000000..8d7a5e5
--- /dev/null
+++ b/app-misc/screen/files/screen-4.5.1-texinfo.patch
@@ -0,0 +1,13 @@
+--- a/doc/screen.texinfo
++++ b/doc/screen.texinfo
+@@ -5796,8 +5796,8 @@
+ ============
+ 
+ @example
+-     Thomas Renninger <treen@suse.com>,
+-     Axel Beckert <abe@deuxchevaux.org>,
++     Thomas Renninger <treen@@suse.com>,
++     Axel Beckert <abe@@deuxchevaux.org>,
+      Ken Beal <kbeal@@amber.ssd.csd.harris.com>,
+      Rudolf Koenig <rfkoenig@@informatik.uni-erlangen.de>,
+      Toerless Eckert <eckert@@informatik.uni-erlangen.de>,

diff --git a/app-misc/screen/files/screen-4.6.2-utmp-exit.patch b/app-misc/screen/files/screen-4.6.2-utmp-exit.patch
new file mode 100644
index 0000000..11adf69
--- /dev/null
+++ b/app-misc/screen/files/screen-4.6.2-utmp-exit.patch
@@ -0,0 +1,55 @@
+From 2f1b9dfe03133c9b77ea450aed088d65128dc547 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Amadeusz=20S=C5=82awi=C5=84ski?= <amade@asmblr.net>
+Date: Tue, 5 Apr 2016 12:47:08 +0200
+Subject: [PATCH] check if we have ut_exit in utmpx struct
+
+---
+ acconfig.h   | 5 +++++
+ configure.ac | 4 ++++
+ utmp.c       | 2 ++
+ 3 files changed, 11 insertions(+)
+
+diff --git a/acconfig.h b/acconfig.h
+index 656e117..d173c9c 100644
+--- a/acconfig.h
++++ b/acconfig.h
+@@ -215,6 +215,11 @@
+ #undef HAVE_UTEMPTER
+ 
+ /*
++ * Define if your utmpx has ut_exit struct
++ */
++#undef HAVE_UT_EXIT
++
++/*
+  * If your system has the calls setreuid() and setregid(),
+  * define HAVE_SETREUID. Otherwise screen will use a forked process to
+  * safely create output files without retaining any special privileges.
+diff --git a/configure.ac b/configure.ac
+index 1a75020..8457619 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -374,6 +374,10 @@ if test "$have_utempter" = yes; then
+   AC_DEFINE(HAVE_UTEMPTER)
+   LIBS="$LIBS -lutempter"
+ fi
++AC_CHECKING(ut_exit)
++AC_TRY_COMPILE([
++#include <utmpx.h>
++],[struct utmpx u; u.ut_exit.e_exit;], AC_DEFINE(HAVE_UT_EXIT))
+ 
+ dnl
+ dnl    ****  signal handling  ****
+diff --git a/utmp.c b/utmp.c
+index da8d7ff..c864d07 100644
+--- a/utmp.c
++++ b/utmp.c
+@@ -381,7 +381,7 @@ static int pututslot(slot_t slot, struct utmpx *u, char *host, Window *win)
+ struct utmp *u;
+ {
+   u->ut_type = DEAD_PROCESS;
+-#if (!defined(linux) || defined(EMPTY)) && !defined(__CYGWIN__)
++#if defined(HAVE_UT_EXIT)
+   u->ut_exit.e_termination = 0;
+   u->ut_exit.e_exit = 0;
+ #endif

diff --git a/app-misc/screen/files/screenrc b/app-misc/screen/files/screenrc
new file mode 100644
index 0000000..7c3478a
--- /dev/null
+++ b/app-misc/screen/files/screenrc
@@ -0,0 +1,356 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+#
+# /etc/screenrc
+#
+# This is the system wide screenrc.
+#
+# You can use this file to change the default behavior of screen system wide
+# or copy it to ~/.screenrc and use it as a starting point for your own
+# settings.
+#
+# Commands in this file are used to set options, bind screen functions to
+# keys, redefine terminal capabilities, and to automatically establish one or
+# more windows at the beginning of your screen session.
+#
+# This is not a comprehensive list of options, look at the screen manual for
+# details on everything that you can put in this file.
+#
+#
+
+# ==============================================================================
+# SCREEN SETTINGS
+# ==============================================================================
+
+# ESCAPE - the COMMAND CHARACTER
+# ===============================================================
+# escape ^aa  # default
+# escape ^^^^ # suggested binding (Control-^) for Emacs users
+
+
+# PASSWORD
+# ===============================================================
+# This commands sets the *internal* password for the screen session.
+# WARNING!! If this is set then a "lock" command will only let you in to the
+# session after you enter the user's account password and then *also*
+# the internal password for that session. This gives additional safety but,
+# if you forget the internal password then you cannot resume your session.
+# Use :password to generate a password
+# password ODSJQf.4IJN7E    # "1234"
+
+
+# VARIABLES
+# ===============================================================
+# No annoying audible bell, using "visual bell"
+# vbell on				# default: off
+# vbell_msg "   -- Bell,Bell!! --   "	# default: "Wuff,Wuff!!"
+
+# Automatically detach on hangup.
+  autodetach on				# default: on
+
+# Don't display the copyright page
+  startup_message off			# default: on
+
+# Uses nethack-style messages
+# nethack on				# default: off
+
+# Affects the copying of text regions
+  crlf off				# default: off
+
+# Enable/disable multiuser mode. Standard screen operation is singleuser.
+# In multiuser mode the commands acladd, aclchg, aclgrp and acldel can be used
+# to enable (and disable) other user accessing this screen session.
+# Requires suid-root.
+  multiuser off
+
+# Change default scrollback value for new windows
+  defscrollback 1000			# default: 100
+
+# Define the time that all windows monitored for silence should
+# wait before displaying a message. Default 30 seconds.
+  silencewait 15			# default: 30
+
+# bufferfile:   The file to use for commands
+#               "readbuf" ('<') and  "writebuf" ('>'):
+  bufferfile            $HOME/.screen_exchange
+#
+# hardcopydir:  The directory which contains all hardcopies.
+# hardcopydir           ~/.hardcopy
+# hardcopydir           ~/.screen
+#
+# shell:  Default process started in screen's windows.
+# Makes it possible to use a different shell inside screen
+# than is set as the default login shell.
+# If begins with a '-' character, the shell will be started as a login shell.
+# shell                 zsh
+# shell                 bash
+# shell                 ksh
+  shell -$SHELL
+
+# shellaka '> |tcsh'
+# shelltitle '$ |bash'
+
+# emulate .logout message
+  pow_detach_msg "Screen session of \$LOGNAME \$:cr:\$:nl:ended."
+
+# caption always " %w --- %c:%s"
+# caption always "%3n %t%? @%u%?%? [%h]%?%=%c"
+
+# advertise hardstatus support to $TERMCAP
+# termcapinfo  * '' 'hs:ts=\E_:fs=\E\\:ds=\E_\E\\'
+
+# set every new windows hardstatus line to somenthing descriptive
+# defhstatus "screen: ^En (^Et)"
+
+# don't kill window after the process died
+# zombie "^["
+
+# ignore displays that block on output
+defnonblock on
+
+# XTERM TWEAKS
+# ===============================================================
+
+# xterm understands both im/ic and doesn't have a status line.
+# Note: Do not specify im and ic in the real termcap/info file as
+# some programs (e.g. vi) will not work anymore.
+  termcap  xterm* hs@:cs=\E[%i%d;%dr:im=\E[4h:ei=\E[4l
+  terminfo xterm* hs@:cs=\E[%i%p1%d;%p2%dr:im=\E[4h:ei=\E[4l
+
+# 80/132 column switching must be enabled for ^AW to work
+# change init sequence to not switch width
+  termcapinfo  xterm* Z0=\E[?3h:Z1=\E[?3l:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l
+
+# Make the output buffer large for (fast) xterms.
+# termcapinfo xterm* OL=10000
+  termcapinfo xterm* OL=100
+
+# tell screen that xterm can switch to dark background and has function
+# keys.
+  termcapinfo xterm* 'VR=\E[?5h:VN=\E[?5l'
+  termcapinfo xterm* 'k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~'
+  termcapinfo xterm* 'kh=\EOH:kI=\E[2~:kD=\E[3~:kH=\EOF:kP=\E[5~:kN=\E[6~'
+
+# special xterm hardstatus: use the window title.
+  termcapinfo xterm* 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'
+
+#terminfo xterm 'vb=\E[?5h$<200/>\E[?5l'
+  termcapinfo xterm* 'vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l'
+
+# emulate part of the 'K' charset
+  termcapinfo xterm* 'XC=K%,%\E(B,[\304,\\\\\326,]\334,{\344,|\366,}\374,~\337'
+
+# xterm-52 tweaks:
+# - uses background color for delete operations
+  termcapinfo xterm* be
+
+# Do not use xterm's alternative window buffer, it breaks scrollback (see bug #61195)
+  termcapinfo xterm*|xs ti@:te=\E[2J
+
+# WYSE TERMINALS
+# ===============================================================
+
+#wyse-75-42 must have flow control (xo = "terminal uses xon/xoff")
+#essential to have it here, as this is a slow terminal.
+  termcapinfo wy75-42 xo:hs@
+
+# New termcap sequences for cursor application mode.
+  termcapinfo wy* CS=\E[?1h:CE=\E[?1l:vi=\E[?25l:ve=\E[?25h:VR=\E[?5h:VN=\E[?5l:cb=\E[1K:CD=\E[1J
+
+
+# OTHER TERMINALS
+# ===============================================================
+
+# make hp700 termcap/info better
+  termcapinfo  hp700 'Z0=\E[?3h:Z1=\E[?3l:hs:ts=\E[62"p\E[0$~\E[2$~\E[1$}:fs=\E[0}\E[61"p:ds=\E[62"p\E[1$~\E[61"p:ic@'
+
+# Extend the vt100 desciption by some sequences.
+  termcap  vt100* ms:AL=\E[%dL:DL=\E[%dM:UP=\E[%dA:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC
+  terminfo vt100* ms:AL=\E[%p1%dL:DL=\E[%p1%dM:UP=\E[%p1%dA:DO=\E[%p1%dB:LE=\E[%p1%dD:RI=\E[%p1%dC
+  termcapinfo linux C8
+# old rxvt versions also need this
+# termcapinfo rxvt C8
+
+
+# KEYBINDINGS
+# ==============================================================
+# The "bind" command assign keys to (internal) commands
+# SCREEN checks all the keys you type; you type the key
+# which is known as the "command character" then SCREEN
+# eats this key, too, and checks whether this key is
+# "bound" to a command.  If so then SCREEN will execute it.
+#
+# The command "bind" allows you to chose which keys
+# will be assigned to the commands.
+#
+# Some commands are bound to several keys -
+# usually to both some letter and its corresponding
+# control key combination, eg the command
+# "(create) screen" is bound to both 'c' and '^C'.
+#
+# The following list shows the default bindings:
+#
+# break       ^B b
+# clear       C
+# colon       :
+# copy        ^[ [
+# detach      ^D d
+# digraph     ^V
+# displays    *
+# dumptermcap .
+# fit         F
+# flow        ^F f
+# focus       ^I
+# hardcopy    h
+# help        ?
+# history     { }
+# info        i
+# kill        K k
+# lastmsg     ^M m
+# license     ,
+# log         H
+# login       L
+# meta        x
+# monitor     M
+# next        ^@ ^N sp n
+# number      N
+# only        Q
+# other       ^X
+# pow_break   B
+# pow_detach  D
+# prev        ^H ^P p ^?
+# quit        \
+# readbuf     <
+# redisplay   ^L l
+# remove      X
+# removebuf   =
+# reset       Z
+# screen      ^C c
+# select      " '
+# silence     _
+# split       S
+# suspend     ^Z z
+# time        ^T t
+# title       A
+# vbell       ^G
+# version     v
+# width       W
+# windows     ^W w
+# wrap        ^R r
+# writebuf    >
+# xoff        ^S s
+# xon         ^Q q
+# ^]  paste .
+# -   select -
+# 0   select 0
+# 1   select 1
+# 2   select 2
+# 3   select 3
+# 4   select 4
+# 5   select 5
+# 6   select 6
+# 7   select 7
+# 8   select 8
+# 9   select 9
+# I   login on
+# O   login off
+# ]   paste .
+#
+
+# And here are the default bind commands if you need them:
+#
+# bind A title
+# bind C clear
+# bind D pow_detach
+# bind F fit
+# bind H log
+# bind I login on
+# bind K kill
+# bind L login
+# bind M monitor
+# bind N number
+# bind O login off
+# bind Q only
+# bind S split
+# bind W width
+# bind X remove
+# bind Z reset
+
+# Let's remove some dangerous key bindings ...
+  bind k
+  bind ^k
+# bind .  dumptermcap # default
+  bind .
+# bind ^\ quit        # default
+  bind ^\
+# bind \\ quit        # default
+  bind \\
+# bind ^h ???         # default
+  bind ^h
+# bind h  hardcopy    # default
+  bind h
+
+# ... and make them better.
+  bind 'K' kill
+  bind 'I' login on
+  bind 'O' login off
+  bind '}' history
+
+# Yet another hack:
+# Prepend/append register [/] to the paste if ^a^] is pressed.
+# This lets me have autoindent mode in vi.
+  register [ "\033:se noai\015a"
+  register ] "\033:se ai\015a"
+  bind ^] paste [.]
+
+
+# hardstatus alwaysignore
+# hardstatus alwayslastline "%Lw"
+
+# Resize the current region. The space will be removed from or added to
+# the region below or if there's not enough space from the region above.
+  bind = resize =
+  bind + resize +3
+  bind - resize -3
+# bind _ resize max
+#
+# attrcolor u "-u b"
+# attrcolor b "R"
+
+# STARTUP SCREENS
+# ===============================================================
+# Defines the time screen delays a new message when one message
+# is currently displayed. The default is 1 second.
+#  msgminwait 2
+
+# Time a message is displayed if screen is not disturbed by
+# other activity. The dafault is 5 seconds:
+#  msgwait 2
+
+# Briefly show the version number of this starting
+# screen session - but only for *one* second:
+#  msgwait 1
+#  version
+
+# Welcome the user:
+# echo "welcome :-)"
+# echo "I love you today."
+
+# Uncomment one/some following lines to automatically let
+# SCREEN start some programs in the given window numbers:
+# screen -t MAIL        0 mutt
+# screen -t EDIT        1 vim
+# screen -t GOOGLE      2 links http://www.google.com
+# screen -t NEWS        3 slrn
+# screen -t WWW         4 links http://www.math.fu-berlin.de/~guckes/
+# screen 5
+# screen 6
+
+# Set the environment variable var to value string. If only var is specified,
+# you'll be prompted to enter a value. If no parameters are specified,
+# you'll be prompted for both variable and value. The environment is
+# inherited by all subsequently forked shells.
+# setenv PROMPT_COMMAND 'echo -n -e "\033k\033\134"'
+
+# Don't you want to start programs which need a DISPLAY ?
+# setenv DISPLAY ''

diff --git a/app-misc/screen/metadata.xml b/app-misc/screen/metadata.xml
new file mode 100644
index 0000000..85dc556
--- /dev/null
+++ b/app-misc/screen/metadata.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+  <maintainer type="person">
+    <email>swegener@gentoo.org</email>
+  </maintainer>
+  <maintainer type="project">
+    <email>shell-tools@gentoo.org</email>
+    <name>Gentoo Shell Tools Project</name>
+  </maintainer>
+  <longdescription>
+Screen is a full-screen window manager that multiplexes a physical terminal
+between several processes, typically interactive shells. Each virtual terminal
+provides the functions of the DEC VT100 terminal and, in addition, several
+control functions from the ANSI X3.64 (ISO 6429) and ISO 2022 standards (e.g.,
+insert/delete line and support for multiple character sets). There is a
+scrollback history buffer for each virtual terminal and a copy-and-paste
+mechanism that allows the user to move text regions between windows. When screen
+is called, it creates a single window with a shell in it (or the specified
+command) and then gets out of your way so that you can use the program as you
+normally would. Then, at any time, you can create new (full-screen) windows with
+other programs in them (including more shells), kill the current window, view a
+list of the active windows, turn output logging on and off, copy text between
+windows, view the scrollback history, switch between windows, etc. All windows
+run their programs completely independent of each other. Programs continue to
+run when their window is currently not visible and even when the whole screen
+session is detached from the users terminal.
+</longdescription>
+  <use>
+    <flag name="multiuser">Enable multiuser support (by setting correct
+    permissions)</flag>
+    <flag name="nethack">Express error messages in nethack style</flag>
+    <flag name="utmp">Include utmp support</flag>
+  </use>
+</pkgmetadata>

diff --git a/app-misc/screen/screen-4.5.1.ebuild b/app-misc/screen/screen-4.5.1.ebuild
new file mode 100644
index 0000000..f395c42
--- /dev/null
+++ b/app-misc/screen/screen-4.5.1.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+SCM=""
+[[ "${PV}" = 9999 ]] && SCM="git-r3"
+inherit autotools eutils flag-o-matic pam toolchain-funcs user ${SCM}
+unset SCM
+
+DESCRIPTION="screen manager with VT100/ANSI terminal emulation"
+HOMEPAGE="https://www.gnu.org/software/screen/"
+
+if [[ "${PV}" != 9999 ]] ; then
+	SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
+	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+else
+	EGIT_REPO_URI="git://git.savannah.gnu.org/screen.git"
+	EGIT_CHECKOUT_DIR="${WORKDIR}/${P}" # needed for setting S later on
+	S="${WORKDIR}"/${P}/src
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="debug nethack pam selinux multiuser"
+
+CDEPEND="
+	>=sys-libs/ncurses-5.2:0=
+	pam? ( virtual/pam )"
+RDEPEND="${CDEPEND}
+	selinux? ( sec-policy/selinux-screen )"
+DEPEND="${CDEPEND}
+	sys-apps/texinfo"
+
+PATCHES=(
+	# Don't use utempter even if it is found on the system.
+	"${FILESDIR}"/${PN}-4.3.0-no-utempter.patch
+	# @ => @@
+	"${FILESDIR}"/${PN}-4.5.1-texinfo.patch
+)
+
+pkg_setup() {
+	# Make sure utmp group exists, as it's used later on.
+	enewgroup utmp 406
+}
+
+src_prepare() {
+	default
+
+	# sched.h is a system header and causes problems with some C libraries
+	mv sched.h _sched.h || die
+	sed -i '/include/ s:sched.h:_sched.h:' screen.h || die
+
+	# Fix manpage.
+	sed -i \
+		-e "s:/usr/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
+		-e "s:/usr/local/screens:${EPREFIX}/tmp/screen:g" \
+		-e "s:/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
+		-e "s:/etc/utmp:${EPREFIX}/var/run/utmp:g" \
+		-e "s:/local/screens/S\\\-:${EPREFIX}/tmp/screen/S\\\-:g" \
+		doc/screen.1 \
+		|| die
+
+	if [[ ${CHOST} == *-darwin* ]] || use elibc_musl ; then
+		sed -i -e '/^#define UTMPOK/s/define/undef/' acconfig.h || die
+	fi
+
+	# disable musl dummy headers for utmp[x]
+	use elibc_musl && append-cppflags "-D_UTMP_H -D_UTMPX_H"
+
+	# reconfigure
+	eautoreconf
+}
+
+src_configure() {
+	append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
+
+	if [[ ${CHOST} == *-solaris* ]] ; then
+		# enable msg_header by upping the feature standard compatible
+		# with c99 mode
+		append-cppflags -D_XOPEN_SOURCE=600
+	fi
+
+	use nethack || append-cppflags "-DNONETHACK"
+	use debug && append-cppflags "-DDEBUG"
+
+	econf \
+		--with-socket-dir="${EPREFIX}/tmp/screen" \
+		--with-sys-screenrc="${EPREFIX}/etc/screenrc" \
+		--with-pty-mode=0620 \
+		--with-pty-group=5 \
+		--enable-rxvt_osc \
+		--enable-telnet \
+		--enable-colors256 \
+		$(use_enable pam)
+}
+
+src_compile() {
+	LC_ALL=POSIX emake comm.h term.h
+	emake osdef.h
+
+	emake -C doc screen.info
+	default
+}
+
+src_install() {
+	local DOCS=(
+		README ChangeLog INSTALL TODO NEWS* patchlevel.h
+		doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
+	)
+
+	default
+
+	local tmpfiles_perms tmpfiles_group
+
+	if use multiuser || use prefix
+	then
+		fperms 4755 /usr/bin/screen-${PV}
+		tmpfiles_perms="0755"
+		tmpfiles_group="root"
+	else
+		fowners root:utmp /usr/bin/screen-${PV}
+		fperms 2755 /usr/bin/screen-${PV}
+		tmpfiles_perms="0775"
+		tmpfiles_group="utmp"
+	fi
+
+	dodir /etc/tmpfiles.d
+	echo "d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}" \
+		> "${ED}"/etc/tmpfiles.d/screen.conf
+
+	insinto /usr/share/screen
+	doins terminfo/{screencap,screeninfo.src}
+
+	insinto /etc
+	doins "${FILESDIR}"/screenrc
+
+	pamd_mimic_system screen auth
+}
+
+pkg_postinst() {
+	if [[ -z ${REPLACING_VERSIONS} ]]
+	then
+		elog "Some dangerous key bindings have been removed or changed to more safe values."
+		elog "We enable some xterm hacks in our default screenrc, which might break some"
+		elog "applications. Please check /etc/screenrc for information on these changes."
+	fi
+
+	# Add /tmp/screen in case it doesn't exist yet. This should solve
+	# problems like bug #508634 where tmpfiles.d isn't in effect.
+	local rundir="${EROOT%/}/tmp/screen"
+	if [[ ! -d ${rundir} ]] ; then
+		if use multiuser || use prefix ; then
+			tmpfiles_group="root"
+		else
+			tmpfiles_group="utmp"
+		fi
+		mkdir -m 0775 "${rundir}"
+		chgrp ${tmpfiles_group} "${rundir}"
+	fi
+
+	ewarn "This revision changes the screen socket location to ${rundir}"
+}

diff --git a/app-misc/screen/screen-4.6.0.ebuild b/app-misc/screen/screen-4.6.0.ebuild
new file mode 100644
index 0000000..393243a
--- /dev/null
+++ b/app-misc/screen/screen-4.6.0.ebuild
@@ -0,0 +1,161 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+SCM=""
+[[ "${PV}" = 9999 ]] && SCM="git-r3"
+inherit autotools eutils flag-o-matic pam toolchain-funcs user ${SCM}
+unset SCM
+
+DESCRIPTION="screen manager with VT100/ANSI terminal emulation"
+HOMEPAGE="https://www.gnu.org/software/screen/"
+
+if [[ "${PV}" != 9999 ]] ; then
+	SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
+	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+else
+	EGIT_REPO_URI="git://git.savannah.gnu.org/screen.git"
+	EGIT_CHECKOUT_DIR="${WORKDIR}/${P}" # needed for setting S later on
+	S="${WORKDIR}"/${P}/src
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="debug nethack pam selinux multiuser"
+
+CDEPEND="
+	>=sys-libs/ncurses-5.2:0=
+	pam? ( virtual/pam )"
+RDEPEND="${CDEPEND}
+	selinux? ( sec-policy/selinux-screen )"
+DEPEND="${CDEPEND}
+	sys-apps/texinfo"
+
+PATCHES=(
+	# Don't use utempter even if it is found on the system.
+	"${FILESDIR}"/${PN}-4.3.0-no-utempter.patch
+)
+
+pkg_setup() {
+	# Make sure utmp group exists, as it's used later on.
+	enewgroup utmp 406
+}
+
+src_prepare() {
+	default
+
+	# sched.h is a system header and causes problems with some C libraries
+	mv sched.h _sched.h || die
+	sed -i '/include/ s:sched.h:_sched.h:' screen.h || die
+
+	# Fix manpage.
+	sed -i \
+		-e "s:/usr/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
+		-e "s:/usr/local/screens:${EPREFIX}/tmp/screen:g" \
+		-e "s:/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
+		-e "s:/etc/utmp:${EPREFIX}/var/run/utmp:g" \
+		-e "s:/local/screens/S\\\-:${EPREFIX}/tmp/screen/S\\\-:g" \
+		doc/screen.1 \
+		|| die
+
+	if [[ ${CHOST} == *-darwin* ]] || use elibc_musl ; then
+		sed -i -e '/^#define UTMPOK/s/define/undef/' acconfig.h || die
+	fi
+
+	# disable musl dummy headers for utmp[x]
+	use elibc_musl && append-cppflags "-D_UTMP_H -D_UTMPX_H"
+
+	# reconfigure
+	eautoreconf
+}
+
+src_configure() {
+	append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
+
+	if [[ ${CHOST} == *-solaris* ]] ; then
+		# enable msg_header by upping the feature standard compatible
+		# with c99 mode
+		append-cppflags -D_XOPEN_SOURCE=600
+	fi
+
+	use nethack || append-cppflags "-DNONETHACK"
+	use debug && append-cppflags "-DDEBUG"
+
+	econf \
+		--with-socket-dir="${EPREFIX}/tmp/screen" \
+		--with-sys-screenrc="${EPREFIX}/etc/screenrc" \
+		--with-pty-mode=0620 \
+		--with-pty-group=5 \
+		--enable-rxvt_osc \
+		--enable-telnet \
+		--enable-colors256 \
+		$(use_enable pam)
+}
+
+src_compile() {
+	LC_ALL=POSIX emake comm.h term.h
+	emake osdef.h
+
+	emake -C doc screen.info
+	default
+}
+
+src_install() {
+	local DOCS=(
+		README ChangeLog INSTALL TODO NEWS* patchlevel.h
+		doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
+	)
+
+	default
+
+	local tmpfiles_perms tmpfiles_group
+
+	if use multiuser || use prefix
+	then
+		fperms 4755 /usr/bin/screen-${PV}
+		tmpfiles_perms="0755"
+		tmpfiles_group="root"
+	else
+		fowners root:utmp /usr/bin/screen-${PV}
+		fperms 2755 /usr/bin/screen-${PV}
+		tmpfiles_perms="0775"
+		tmpfiles_group="utmp"
+	fi
+
+	dodir /etc/tmpfiles.d
+	echo "d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}" \
+		> "${ED}"/etc/tmpfiles.d/screen.conf
+
+	insinto /usr/share/screen
+	doins terminfo/{screencap,screeninfo.src}
+
+	insinto /etc
+	doins "${FILESDIR}"/screenrc
+
+	pamd_mimic_system screen auth
+}
+
+pkg_postinst() {
+	if [[ -z ${REPLACING_VERSIONS} ]]
+	then
+		elog "Some dangerous key bindings have been removed or changed to more safe values."
+		elog "We enable some xterm hacks in our default screenrc, which might break some"
+		elog "applications. Please check /etc/screenrc for information on these changes."
+	fi
+
+	# Add /tmp/screen in case it doesn't exist yet. This should solve
+	# problems like bug #508634 where tmpfiles.d isn't in effect.
+	local rundir="${EROOT%/}/tmp/screen"
+	if [[ ! -d ${rundir} ]] ; then
+		if use multiuser || use prefix ; then
+			tmpfiles_group="root"
+		else
+			tmpfiles_group="utmp"
+		fi
+		mkdir -m 0775 "${rundir}"
+		chgrp ${tmpfiles_group} "${rundir}"
+	fi
+
+	ewarn "This revision changes the screen socket location to ${rundir}"
+}

diff --git a/app-misc/screen/screen-4.6.1.ebuild b/app-misc/screen/screen-4.6.1.ebuild
new file mode 100644
index 0000000..ee99e92
--- /dev/null
+++ b/app-misc/screen/screen-4.6.1.ebuild
@@ -0,0 +1,161 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+SCM=""
+[[ "${PV}" = 9999 ]] && SCM="git-r3"
+inherit autotools eutils flag-o-matic pam toolchain-funcs user ${SCM}
+unset SCM
+
+DESCRIPTION="screen manager with VT100/ANSI terminal emulation"
+HOMEPAGE="https://www.gnu.org/software/screen/"
+
+if [[ "${PV}" != 9999 ]] ; then
+	SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
+	KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+else
+	EGIT_REPO_URI="git://git.savannah.gnu.org/screen.git"
+	EGIT_CHECKOUT_DIR="${WORKDIR}/${P}" # needed for setting S later on
+	S="${WORKDIR}"/${P}/src
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="debug nethack pam selinux multiuser"
+
+CDEPEND="
+	>=sys-libs/ncurses-5.2:0=
+	pam? ( virtual/pam )"
+RDEPEND="${CDEPEND}
+	selinux? ( sec-policy/selinux-screen )"
+DEPEND="${CDEPEND}
+	sys-apps/texinfo"
+
+PATCHES=(
+	# Don't use utempter even if it is found on the system.
+	"${FILESDIR}"/${PN}-4.3.0-no-utempter.patch
+)
+
+pkg_setup() {
+	# Make sure utmp group exists, as it's used later on.
+	enewgroup utmp 406
+}
+
+src_prepare() {
+	default
+
+	# sched.h is a system header and causes problems with some C libraries
+	mv sched.h _sched.h || die
+	sed -i '/include/ s:sched.h:_sched.h:' screen.h || die
+
+	# Fix manpage.
+	sed -i \
+		-e "s:/usr/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
+		-e "s:/usr/local/screens:${EPREFIX}/tmp/screen:g" \
+		-e "s:/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
+		-e "s:/etc/utmp:${EPREFIX}/var/run/utmp:g" \
+		-e "s:/local/screens/S\\\-:${EPREFIX}/tmp/screen/S\\\-:g" \
+		doc/screen.1 \
+		|| die
+
+	if [[ ${CHOST} == *-darwin* ]] || use elibc_musl ; then
+		sed -i -e '/^#define UTMPOK/s/define/undef/' acconfig.h || die
+	fi
+
+	# disable musl dummy headers for utmp[x]
+	use elibc_musl && append-cppflags "-D_UTMP_H -D_UTMPX_H"
+
+	# reconfigure
+	eautoreconf
+}
+
+src_configure() {
+	append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
+
+	if [[ ${CHOST} == *-solaris* ]] ; then
+		# enable msg_header by upping the feature standard compatible
+		# with c99 mode
+		append-cppflags -D_XOPEN_SOURCE=600
+	fi
+
+	use nethack || append-cppflags "-DNONETHACK"
+	use debug && append-cppflags "-DDEBUG"
+
+	econf \
+		--with-socket-dir="${EPREFIX}/tmp/screen" \
+		--with-sys-screenrc="${EPREFIX}/etc/screenrc" \
+		--with-pty-mode=0620 \
+		--with-pty-group=5 \
+		--enable-rxvt_osc \
+		--enable-telnet \
+		--enable-colors256 \
+		$(use_enable pam)
+}
+
+src_compile() {
+	LC_ALL=POSIX emake comm.h term.h
+	emake osdef.h
+
+	emake -C doc screen.info
+	default
+}
+
+src_install() {
+	local DOCS=(
+		README ChangeLog INSTALL TODO NEWS* patchlevel.h
+		doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
+	)
+
+	default
+
+	local tmpfiles_perms tmpfiles_group
+
+	if use multiuser || use prefix
+	then
+		fperms 4755 /usr/bin/screen-${PV}
+		tmpfiles_perms="0755"
+		tmpfiles_group="root"
+	else
+		fowners root:utmp /usr/bin/screen-${PV}
+		fperms 2755 /usr/bin/screen-${PV}
+		tmpfiles_perms="0775"
+		tmpfiles_group="utmp"
+	fi
+
+	dodir /etc/tmpfiles.d
+	echo "d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}" \
+		> "${ED}"/etc/tmpfiles.d/screen.conf
+
+	insinto /usr/share/screen
+	doins terminfo/{screencap,screeninfo.src}
+
+	insinto /etc
+	doins "${FILESDIR}"/screenrc
+
+	pamd_mimic_system screen auth
+}
+
+pkg_postinst() {
+	if [[ -z ${REPLACING_VERSIONS} ]]
+	then
+		elog "Some dangerous key bindings have been removed or changed to more safe values."
+		elog "We enable some xterm hacks in our default screenrc, which might break some"
+		elog "applications. Please check /etc/screenrc for information on these changes."
+	fi
+
+	# Add /tmp/screen in case it doesn't exist yet. This should solve
+	# problems like bug #508634 where tmpfiles.d isn't in effect.
+	local rundir="${EROOT%/}/tmp/screen"
+	if [[ ! -d ${rundir} ]] ; then
+		if use multiuser || use prefix ; then
+			tmpfiles_group="root"
+		else
+			tmpfiles_group="utmp"
+		fi
+		mkdir -m 0775 "${rundir}"
+		chgrp ${tmpfiles_group} "${rundir}"
+	fi
+
+	ewarn "This revision changes the screen socket location to ${rundir}"
+}

diff --git a/app-misc/screen/screen-4.6.2.ebuild b/app-misc/screen/screen-4.6.2.ebuild
new file mode 100644
index 0000000..831c965
--- /dev/null
+++ b/app-misc/screen/screen-4.6.2.ebuild
@@ -0,0 +1,163 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+SCM=""
+[[ "${PV}" = 9999 ]] && SCM="git-r3"
+inherit autotools eutils flag-o-matic pam toolchain-funcs user ${SCM}
+unset SCM
+
+DESCRIPTION="screen manager with VT100/ANSI terminal emulation"
+HOMEPAGE="https://www.gnu.org/software/screen/"
+
+if [[ "${PV}" != 9999 ]] ; then
+	SRC_URI="mirror://gnu/${PN}/${P}.tar.gz"
+	KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+else
+	EGIT_REPO_URI="git://git.savannah.gnu.org/screen.git"
+	EGIT_CHECKOUT_DIR="${WORKDIR}/${P}" # needed for setting S later on
+	S="${WORKDIR}"/${P}/src
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="debug nethack pam selinux multiuser"
+
+CDEPEND="
+	>=sys-libs/ncurses-5.2:0=
+	pam? ( virtual/pam )"
+RDEPEND="${CDEPEND}
+	selinux? ( sec-policy/selinux-screen )"
+DEPEND="${CDEPEND}
+	sys-apps/texinfo"
+
+PATCHES=(
+	# Don't use utempter even if it is found on the system.
+	"${FILESDIR}"/${PN}-4.3.0-no-utempter.patch
+	"${FILESDIR}"/${P}-utmp-exit.patch
+)
+
+pkg_setup() {
+	# Make sure utmp group exists, as it's used later on.
+	enewgroup utmp 406
+}
+
+src_prepare() {
+	default
+
+	# sched.h is a system header and causes problems with some C libraries
+	mv sched.h _sched.h || die
+	sed -i '/include/ s:sched.h:_sched.h:' screen.h || die
+
+	# Fix manpage.
+	sed -i \
+		-e "s:/usr/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
+		-e "s:/usr/local/screens:${EPREFIX}/tmp/screen:g" \
+		-e "s:/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
+		-e "s:/etc/utmp:${EPREFIX}/var/run/utmp:g" \
+		-e "s:/local/screens/S\\\-:${EPREFIX}/tmp/screen/S\\\-:g" \
+		doc/screen.1 \
+		|| die
+
+
+	if [[ ${CHOST} == *-darwin* ]] || use elibc_musl ; then
+		sed -i -e '/^#define UTMPOK/s/define/undef/' acconfig.h || die
+	fi
+
+	# disable musl dummy headers for utmp[x]
+	use elibc_musl && append-cppflags "-D_UTMP_H -D_UTMPX_H"
+
+	# reconfigure
+	eautoreconf
+}
+
+src_configure() {
+	append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
+
+	if [[ ${CHOST} == *-solaris* ]] ; then
+		# enable msg_header by upping the feature standard compatible
+		# with c99 mode
+		append-cppflags -D_XOPEN_SOURCE=600
+	fi
+
+	use nethack || append-cppflags "-DNONETHACK"
+	use debug && append-cppflags "-DDEBUG"
+
+	econf \
+		--with-socket-dir="${EPREFIX}/tmp/screen" \
+		--with-sys-screenrc="${EPREFIX}/etc/screenrc" \
+		--with-pty-mode=0620 \
+		--with-pty-group=5 \
+		--enable-rxvt_osc \
+		--enable-telnet \
+		--enable-colors256 \
+		$(use_enable pam)
+}
+
+src_compile() {
+	LC_ALL=POSIX emake comm.h term.h
+	emake osdef.h
+
+	emake -C doc screen.info
+	default
+}
+
+src_install() {
+	local DOCS=(
+		README ChangeLog INSTALL TODO NEWS* patchlevel.h
+		doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
+	)
+
+	default
+
+	local tmpfiles_perms tmpfiles_group
+
+	if use multiuser || use prefix
+	then
+		fperms 4755 /usr/bin/screen-${PV}
+		tmpfiles_perms="0755"
+		tmpfiles_group="root"
+	else
+		fowners root:utmp /usr/bin/screen-${PV}
+		fperms 2755 /usr/bin/screen-${PV}
+		tmpfiles_perms="0775"
+		tmpfiles_group="utmp"
+	fi
+
+	dodir /etc/tmpfiles.d
+	echo "d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}" \
+		> "${ED}"/etc/tmpfiles.d/screen.conf
+
+	insinto /usr/share/screen
+	doins terminfo/{screencap,screeninfo.src}
+
+	insinto /etc
+	doins "${FILESDIR}"/screenrc
+
+	pamd_mimic_system screen auth
+}
+
+pkg_postinst() {
+	if [[ -z ${REPLACING_VERSIONS} ]]
+	then
+		elog "Some dangerous key bindings have been removed or changed to more safe values."
+		elog "We enable some xterm hacks in our default screenrc, which might break some"
+		elog "applications. Please check /etc/screenrc for information on these changes."
+	fi
+
+	# Add /tmp/screen in case it doesn't exist yet. This should solve
+	# problems like bug #508634 where tmpfiles.d isn't in effect.
+	local rundir="${EROOT%/}/tmp/screen"
+	if [[ ! -d ${rundir} ]] ; then
+		if use multiuser || use prefix ; then
+			tmpfiles_group="root"
+		else
+			tmpfiles_group="utmp"
+		fi
+		mkdir -m 0775 "${rundir}"
+		chgrp ${tmpfiles_group} "${rundir}"
+	fi
+
+	ewarn "This revision changes the screen socket location to ${rundir}"
+}

diff --git a/app-misc/screen/screen-9999.ebuild b/app-misc/screen/screen-9999.ebuild
new file mode 100644
index 0000000..44ba455
--- /dev/null
+++ b/app-misc/screen/screen-9999.ebuild
@@ -0,0 +1,152 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils flag-o-matic toolchain-funcs pam autotools user git-r3
+
+DESCRIPTION="screen manager with VT100/ANSI terminal emulation"
+HOMEPAGE="https://www.gnu.org/software/screen/"
+EGIT_REPO_URI="https://git.savannah.gnu.org/git/screen.git"
+EGIT_CHECKOUT_DIR="${WORKDIR}/${P}" # needed for setting S later on
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS=""
+IUSE="debug nethack pam selinux multiuser utmp"
+
+CDEPEND="
+	>=sys-libs/ncurses-5.2:0=
+	pam? ( virtual/pam )"
+RDEPEND="${CDEPEND}
+	selinux? ( sec-policy/selinux-screen )
+	utmp? (
+		kernel_linux? ( sys-libs/libutempter )
+		kernel_FreeBSD? ( || ( >=sys-freebsd/freebsd-lib-9.0 sys-libs/libutempter ) )
+	)
+"
+DEPEND="${CDEPEND}
+	sys-apps/texinfo"
+
+RESTRICT="test"
+S="${WORKDIR}"/${P}/src
+
+pkg_setup() {
+	# Make sure utmp group exists, as it's used later on.
+	enewgroup utmp 406
+}
+
+src_prepare() {
+	default
+
+	# sched.h is a system header and causes problems with some C libraries
+	mv sched.h _sched.h || die
+	sed -i \
+		-e '/include/ s:sched.h:_sched.h:' \
+		screen.h winmsg.c canvas.h sched.c || die
+	sed -i -e 's:sched.h:_sched.h:g' Makefile.in || die
+
+	# Fix manpage.
+	sed -i \
+		-e "s:/usr/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
+		-e "s:/usr/local/screens:${EPREFIX}/tmp/screen:g" \
+		-e "s:/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
+		-e "s:/etc/utmp:${EPREFIX}/var/run/utmp:g" \
+		-e 's:/local/screens/S\\-:'"${EPREFIX}"'/tmp/screen/S\\-:g' \
+		-e 's:/usr/tmp/screens/:'"${EPREFIX}"'/tmp/screen/:g' \
+		doc/screen.1 \
+		|| die
+
+	# disable musl dummy headers for utmp[x]
+	use elibc_musl && append-cppflags "-D_UTMP_H -D_UTMPX_H"
+
+	# reconfigure
+	eautoreconf
+}
+
+src_configure() {
+	append-cppflags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
+
+	[[ ${CHOST} == *-solaris* ]] && append-libs -lsocket -lnsl
+
+	use nethack || append-cppflags "-DNONETHACK"
+	use debug && append-cppflags "-DDEBUG"
+
+	econf \
+		--enable-socket-dir="${EPREFIX}/tmp/screen" \
+		--with-system_screenrc="${EPREFIX}/etc/screenrc" \
+		--with-pty-mode=0620 \
+		--with-pty-group=5 \
+		--enable-telnet \
+		$(use_enable pam) \
+		$(use_enable utmp)
+}
+
+src_compile() {
+	LC_ALL=POSIX emake comm.h term.h
+
+	emake -C doc screen.info
+	default
+}
+
+src_install() {
+	local tmpfiles_perms tmpfiles_group
+
+	dobin screen
+
+	if use multiuser || use prefix
+	then
+		fperms 4755 /usr/bin/screen
+		tmpfiles_perms="0755"
+		tmpfiles_group="root"
+	else
+		fowners root:utmp /usr/bin/screen
+		fperms 2755 /usr/bin/screen
+		tmpfiles_perms="0775"
+		tmpfiles_group="utmp"
+	fi
+
+	dodir /etc/tmpfiles.d
+	echo "d /tmp/screen ${tmpfiles_perms} root ${tmpfiles_group}" \
+		>"${ED}"/etc/tmpfiles.d/screen.conf
+
+	insinto /usr/share/screen
+	doins terminfo/{screencap,screeninfo.src}
+	insinto /usr/share/screen/utf8encodings
+	doins utf8encodings/??
+	insinto /etc
+	doins "${FILESDIR}"/screenrc
+
+	pamd_mimic_system screen auth
+
+	dodoc \
+		README ChangeLog INSTALL TODO NEWS* \
+		doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps}
+
+	doman doc/screen.1
+	doinfo doc/screen.info
+}
+
+pkg_postinst() {
+	if [[ -z ${REPLACING_VERSIONS} ]]
+	then
+		elog "Some dangerous key bindings have been removed or changed to more safe values."
+		elog "We enable some xterm hacks in our default screenrc, which might break some"
+		elog "applications. Please check /etc/screenrc for information on these changes."
+	fi
+
+	# Add /tmp/screen in case it doesn't exist yet. This should solve
+	# problems like bug #508634 where tmpfiles.d isn't in effect.
+	local rundir="${EROOT%/}/tmp/screen"
+	if [[ ! -d ${rundir} ]] ; then
+		if use multiuser || use prefix ; then
+			tmpfiles_group="root"
+		else
+			tmpfiles_group="utmp"
+		fi
+		mkdir -m 0775 "${rundir}"
+		chgrp ${tmpfiles_group} "${rundir}"
+	fi
+
+	ewarn "This revision changes the screen socket location to /run/screen."
+}


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2018-11-17  0:37 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-17  0:37 [gentoo-commits] proj/musl:master commit in: app-misc/screen/files/, app-misc/screen/ Anthony G. Basile

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox