+#
+# Conditional build:
+%bcond_without fifo # force using fifos even if sockets detected
+
+# TODO
+# - from changelog: 'maxwin' can now be used to increase the number of maximum windows.
Summary: Screen - Manages multiple sessions on one tty
-Summary(de): Screen - Verwaltet mehrere Sitzungen an einem tty
-Summary(es): Screen - Administra múltiples sesiones en un tty
-Summary(fr): screen - gère plusieurs sessions sur un seul terminal
-Summary(pl): Screen - Program zarz±dzaj±cy sesjami na jednym terminalu
-Summary(pt_BR): Screen - Gerencia múltiplas sessões em um tty
-Summary(ru): íÅÎÅÄÖÅÒ ÜËÒÁÎÁ, ÐÏÄÄÅÒÖÉ×ÁÀÝÉÊ ÎÅÓËÏÌØËÏ ÌÏÇÉÎÏ× Ó ÏÄÎÏÇÏ ÔÅÒÍÉÎÁÌÁ
-Summary(tr): Bir uçbirimde birden fazla oturumu düzenler
-Summary(uk): íÅÎÅÄÖÅÒ ÅËÒÁÎÕ, ÝÏ Ð¦ÄÔÒÉÍÕ¤ ˦ÌØËÁ ÌÏÇ¦Î¦× Ú ÏÄÎÏÇÏ ÔÅÒͦÎÁÌÕ
+Summary(de.UTF-8): Screen - Verwaltet mehrere Sitzungen an einem tty
+Summary(es.UTF-8): Screen - Administra múltiples sesiones en un tty
+Summary(fr.UTF-8): screen - gère plusieurs sessions sur un seul terminal
+Summary(pl.UTF-8): Screen - Program zarządzający sesjami na jednym terminalu
+Summary(pt_BR.UTF-8): Screen - Gerencia múltiplas sessões em um tty
+Summary(ru.UTF-8): Менеджер экрана, поддерживающий несколько логинов с одного терминала
+Summary(tr.UTF-8): Bir uçbirimde birden fazla oturumu düzenler
+Summary(uk.UTF-8): Менеджер екрану, що підтримує кілька логінів з одного терміналу
Name: screen
-Version: 3.9.15
-Release: 1
-License: GPL
+# 4.0 stable is on SCREEN_4_0 brach
+Version: 4.1.0
+Release: 4
+License: GPL v3+
Group: Applications/Terminal
-Source0: ftp://ftp.uni-erlangen.de/pub/utilities/screen/%{name}-%{version}.tar.gz
-# Source0-md5: 0dff6fdc3fbbceabf25a43710fbfe75f
+Source0: http://git.savannah.gnu.org/cgit/screen.git/snapshot/%{name}-c2cd05962664c80f8ae063d6bf7a21084e0c2f37.tar.gz
+# Source0-md5: 61195697c98359ae3a86c8e1ea5f538d
Source1: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2
-# Source1-md5: 236166e774cee788cf594b05dd1dd70d
+# Source1-md5: 236166e774cee788cf594b05dd1dd70d
Source2: %{name}.pamd
-Patch0: %{name}-tty.patch
+Source3: %{name}rc
Patch1: %{name}-compat21.patch
Patch2: %{name}-manual.patch
Patch3: %{name}-ia64.patch
Patch7: %{name}-no_hardcoded_term_sequences.patch
Patch8: %{name}-home_etc.patch
Patch9: %{name}-no-libs.patch
+Patch10: %{name}-varargs.patch
+Patch11: %{name}-inputline-size.patch
+Patch12: %{name}-screenrc.patch
+Patch13: %{name}-osc.patch
+Patch15: %{name}-statusline-encoding.patch
+Patch16: screen-ipv6.patch
+Patch17: screen-E3.patch
+Patch18: screen-4.1.0-suppress_remap.patch
+Patch19: 49long-usernames.patch
+Patch20: 50increase-max-TERM-length.patch
+Patch21: 51fix-utf8-status-padding-bug.patch
+Patch22: 52fix_screen_utf8_nfd.patch
+Patch23: 53fix-startup-race-condition.patch
+Patch24: 60-644788-screen-4.1.0-4.0.3-interoperability.patch
+URL: http://www.gnu.org/software/screen/
BuildRequires: autoconf
+BuildRequires: automake
BuildRequires: ncurses-devel >= 5.0
BuildRequires: pam-devel
BuildRequires: texinfo
BuildRequires: utempter-devel
+Requires: pam >= 0.77.3
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
machine or connected via a dumb terminal and want more than just one
login.
-%description -l de
+%description -l de.UTF-8
Screens ist ein Programm, das Ihnen erlaubt, sich auf einem Terminal
-mehrfach einzuloggen - was nützlich sein kann, wenn Sie über ein
+mehrfach einzuloggen - was nützlich sein kann, wenn Sie über ein
dummes Terminal eine Telnetverbindung zu einem Rechner haben und mehr
-als ein Login benötigen.
+als ein Login benötigen.
-%description -l es
-Screen es un programa que permite que tengas múltiples logins en un
-terminal. Es útil en situaciones donde estás usando telnet en una
-máquina o conectado vía un terminal dumb y quiera más que apenas un
+%description -l es.UTF-8
+Screen es un programa que permite que tengas múltiples logins en un
+terminal. Es útil en situaciones donde estás usando telnet en una
+máquina o conectado vía un terminal dumb y quiera más que apenas un
login.
-%description -l fr
+%description -l fr.UTF-8
Screen est un programme permettant plusieurs connexions sur un
-terminal. Il est utile pour ouvrir plusieurs sessions à la fois, si
+terminal. Il est utile pour ouvrir plusieurs sessions à la fois, si
vous voulez ouvrir une session telnet sur une autre machine et voulez
plus d'une connexion.
-%description -l pl
-Screen jest programem, który umo¿liwia otworzenie wielu sesji na
-jednym terminalu. Jest to bardzo przydatne, przy po³±czeniach z
-terminali nie umo¿liwiaj±cych otwarcia kilku sesji w systemie. Screen
-umo¿liwia ponadto powrót do otwartych sesji w przypadku przerwania
-po³±czenia z terminalem.
-
-%description -l pt_BR
-Screen é um programa que permite que você tenha múltiplos logins em um
-terminal. Ele é útil em situações onde você está usando telnet em uma
-máquina ou conectado via um terminal dumb e quer mais do que apenas um
+%description -l pl.UTF-8
+Screen jest programem, który umożliwia otworzenie wielu sesji na
+jednym terminalu. Jest to bardzo przydatne, przy połączeniach z
+terminali nie umożliwiających otwarcia kilku sesji w systemie. Screen
+umożliwia ponadto powrót do otwartych sesji w przypadku przerwania
+połączenia z terminalem.
+
+%description -l pt_BR.UTF-8
+Screen é um programa que permite que você tenha múltiplos logins em um
+terminal. Ele é útil em situações onde você está usando telnet em uma
+máquina ou conectado via um terminal dumb e quer mais do que apenas um
login.
-%description -l ru
-õÔÉÌÉÔÁ screen ÐÏÚ×ÏÌÑÅÔ ÉÍÅÔØ ÎÅÓËÏÌØËÏ ÓÅÓÓÉÊ ÎÁ ÏÄÎÏÍ ÔÅÒÍÉÎÁÌÅ.
-Screen ÐÏÌÅÚÅÎ ÐÏÌØÚÏ×ÁÔÅÌÑÍ, ËÏÔÏÒÙÅ ÚÁÈÏÄÑÔ ÎÁ ÍÁÛÉÎÕ ÐÏ ÓÅÔÉ ÉÌÉ
-ÞÅÒÅÚ dumb-ÔÅÒÍÉÎÁÌ, ÎÏ ÈÏÔÑÔ ÉÍÅÔØ ÂÏÌÅÅ ÏÄÎÏÊ ÓÅÓÓÉÉ Ó ÜÔÏÊ ÍÁÛÉÎÏÊ.
+%description -l ru.UTF-8
+Утилита screen позволяет иметь несколько сессий на одном терминале.
+Screen полезен полÑ\8cзоваÑ\82елÑ\8fм, коÑ\82оÑ\80Ñ\8bе заÑ\85одÑ\8fÑ\82 на маÑ\88инÑ\83 по Ñ\81еÑ\82и или
+через dumb-терминал, но хотят иметь более одной сессии с этой машиной.
-%description -l tr
-Screen, ayný uçbirimde birden fazla oturum olanaðý saðlayan bir
-programdýr. Bir makinaya telnet programý ile ya da programlanamaz bir
-uçbirim üzerinden baðlantý kurduðunuz durumlarda kullanýþlýdýr.
+%description -l tr.UTF-8
+Screen, aynı uçbirimde birden fazla oturum olanağı sağlayan bir
+programdır. Bir makinaya telnet programı ile ya da programlanamaz bir
+uçbirim üzerinden bağlantı kurduğunuz durumlarda kullanışlıdır.
-%description -l uk
-õÔÉ̦ÔÁ screen ÄÏÚ×ÏÌѤ ÍÁÔÉ ÄÅ˦ÌØËÁ ÓÅÓ¦Ê ÎÁ ÏÄÎÏÍÕ ÔÅÒͦÎÁ̦.
-Screen ËÏÒÉÓÎÉÊ ËÏÒÉÓÔÕ×ÁÞÁÍ, Ñ˦ ÚÁÈÏÄÑÔØ ÎÁ ÍÁÛÉÎÕ ÐÏ ÍÅÒÅÖ¦ ÁÂÏ
-ÞÅÒÅÚ dumb-ÔÅÒͦÎÁÌ, ÁÌÅ ÈÏÞÕÔØ ÍÁÔÉ Â¦ÌØÛÅ ÏÄÎϧ ÓÅÓ¦§ Ú Ã¦¤À
-ÍÁÛÉÎÏÀ.
+%description -l uk.UTF-8
+Утиліта screen дозволяє мати декілька сесій на одному терміналі.
+Screen корисний користувачам, які заходять на машину по мережі або
+через dumb-термінал, але хочуть мати більше одної сесії з цією
+машиною.
%prep
-%setup -q
-%patch0 -p1
+%setup -qc
+mv screen-*/src/* .
+
%patch1 -p0
%patch2 -p0
%patch3 -p0
###%patch7 -p1
#%patch8 -p1
%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+#%patch13 -p1 # my brain farted here, see if you have better luck
+%patch15 -p0
+%patch16 -p2
+%patch17 -p2
+%patch18 -p1
+%patch19 -p1
+%patch20 -p1
+%patch21 -p1
+%patch22 -p1
+%patch23 -p1
+%patch24 -p1
%build
%{__aclocal}
+%{__autoheader}
%{__autoconf}
+# --enable-locale vs --enable-use-locale - https://savannah.gnu.org/bugs/index.php?37528
+CFLAGS="%{rpmcflags} -DMAXWIN=256"
+%{?with_fifo:nore=1} \
%configure \
- --with-sys-screenrc=%{_sysconfdir}/screenrc \
--enable-pam \
--enable-colors256 \
+ --enable-rxvt_osc \
+ --enable-telnet \
+ --enable-use-locale \
+ --with-sys-screenrc=/etc/screenrc \
+ --with-pty-mode=0620 \
+ --with-pty-group=5 \
--disable-socket-dir
-for file in *.dist; do
-filenew=$(echo "$file" | sed -e 's#\.dist##g')
- cp -f $file $filenew
-done
+%if %{with fifo}
+if ! grep -q "define.*NAMEDPIPE.*1" config.h; then
+ echo "bcond with fifo but fifos not enabled!"
+ exit 1
+fi
+%endif
-%{__make} \
- CFLAGS="%{rpmcflags}"
+%{__make} -j1
cd doc
rm -f screen.info*
install -d $RPM_BUILD_ROOT{%{_bindir},%{_datadir}/screen/utf8encodings} \
$RPM_BUILD_ROOT{/etc/{skel,pam.d},%{_mandir}/{,pl}/man1,%{_infodir}}
-install screen $RPM_BUILD_ROOT%{_bindir}
-install doc/screen.1 $RPM_BUILD_ROOT%{_mandir}/man1
-install doc/screen.info* $RPM_BUILD_ROOT%{_infodir}
-install etc/etcscreenrc $RPM_BUILD_ROOT%{_sysconfdir}/screenrc
-install etc/screenrc $RPM_BUILD_ROOT/etc/skel/.screenrc
-install utf8encodings/* $RPM_BUILD_ROOT%{_datadir}/screen/utf8encodings
+install -p screen $RPM_BUILD_ROOT%{_bindir}
+cp -a doc/screen.1 $RPM_BUILD_ROOT%{_mandir}/man1
+cp -a doc/screen.info* $RPM_BUILD_ROOT%{_infodir}
+
+install etc/etcscreenrc $RPM_BUILD_ROOT%{_sysconfdir}/screenrc
+echo -e "\n\n" >> $RPM_BUILD_ROOT%{_sysconfdir}/screenrc
+cat %{SOURCE3} > $RPM_BUILD_ROOT%{_sysconfdir}/screenrc
+
+cp -a utf8encodings/* $RPM_BUILD_ROOT%{_datadir}/screen/utf8encodings
+cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/pam.d/screen
bzip2 -dc %{SOURCE1} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/pam.d/screen
+rm -f $RPM_BUILD_ROOT%{_mandir}/README.screen-non-english-man-pages
%clean
rm -rf $RPM_BUILD_ROOT
-%post
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%post -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
-%postun
-[ ! -x /usr/sbin/fix-info-dir ] || /usr/sbin/fix-info-dir -c %{_infodir} >/dev/null 2>&1
+%postun -p /sbin/postshell
+-/usr/sbin/fix-info-dir -c %{_infodir}
%files
%defattr(644,root,root,755)
-%doc NEWS README ChangeLog doc/{FAQ,README.DOTSCREEN}
+%doc NEWS README ChangeLog doc/{FAQ,README.DOTSCREEN} etc/screenrc
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/screenrc
+%config(noreplace) %verify(not md5 mtime size) /etc/pam.d/*
%attr(755,root,root) %{_bindir}/screen
%{_datadir}/screen
-%attr(600,root,root) /etc/skel/.screenrc
%{_mandir}/man1/*
%lang(ja) %{_mandir}/ja/man1/*
%lang(pl) %{_mandir}/pl/man1/*
%{_infodir}/screen.info*
-%attr(644,root,root) %config(noreplace) %verify(not size mtime md5) /etc/pam.d/*