summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Lecher <jlec@gentoo.org>2010-12-08 19:11:04 +0000
committerJustin Lecher <jlec@gentoo.org>2010-12-08 19:11:04 +0000
commit3107f373ad7e7124eda4dde4bb2330bc73e1f9da (patch)
tree89ce08399f2cedc4679341b6dd118b52fbb10ee7 /app-misc/screen
parentNeeds gnome-panel with bonobo support. (diff)
downloadhistorical-3107f373ad7e7124eda4dde4bb2330bc73e1f9da.tar.gz
historical-3107f373ad7e7124eda4dde4bb2330bc73e1f9da.tar.bz2
historical-3107f373ad7e7124eda4dde4bb2330bc73e1f9da.zip
Support for long user names, #348152
Package-Manager: portage-2.2.0_alpha7/cvs/Linux x86_64
Diffstat (limited to 'app-misc/screen')
-rw-r--r--app-misc/screen/ChangeLog8
-rw-r--r--app-misc/screen/Manifest10
-rw-r--r--app-misc/screen/files/4.0.3-extend-d_termname-ng2.patch148
-rw-r--r--app-misc/screen/screen-4.0.3-r4.ebuild169
4 files changed, 330 insertions, 5 deletions
diff --git a/app-misc/screen/ChangeLog b/app-misc/screen/ChangeLog
index fc2d6628b92c..8b9ff3e25b5d 100644
--- a/app-misc/screen/ChangeLog
+++ b/app-misc/screen/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for app-misc/screen
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-misc/screen/ChangeLog,v 1.151 2010/11/17 16:42:00 jlec Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-misc/screen/ChangeLog,v 1.152 2010/12/08 19:11:04 jlec Exp $
+
+*screen-4.0.3-r4 (08 Dec 2010)
+
+ 08 Dec 2010; Justin Lecher <jlec@gentoo.org>
+ +files/4.0.3-extend-d_termname-ng2.patch, +screen-4.0.3-r4.ebuild:
+ Support for long user names, #348152
*screen-4.0.3-r3 (17 Nov 2010)
diff --git a/app-misc/screen/Manifest b/app-misc/screen/Manifest
index 471fc440f432..a664890a4159 100644
--- a/app-misc/screen/Manifest
+++ b/app-misc/screen/Manifest
@@ -8,6 +8,7 @@ AUX 4.0.2-no-utempter.patch 440 RMD160 3e0ee3492e5ae84bf05716a1787dee495362bc39
AUX 4.0.2-nonblock.patch 423 RMD160 30a75e2b89542ec8a878855cf633ac3c04f799fd SHA1 b42195100bf5d4b54dff2120e66ba533c3a9a3a3 SHA256 4a5f1666d7f680a9a8157969318b525bc08885ef673000e902c8ffc23ef49159
AUX 4.0.2-windowlist-multiuser-fix.patch 491 RMD160 7e28be8f2bc71705b4ff0d8028adb4ad4cd22cd5 SHA1 2d7b190b933900e1b0c302b37d526fafb373de31 SHA256 edec52981859cfad0a2d780352405dc7575ad7901bc101d25e95baccf1060cc7
AUX 4.0.3-extend-d_termname-ng.patch 2680 RMD160 ffe6d09b9d0eefbb4ff2b87bdc7e2fc53bf15826 SHA1 f0274cb760b92dcc6159f7fa73930dea2cf81261 SHA256 963277f5f16565e041a58c187b7f1de7349d6de8a79cd401e1143b31c31a950c
+AUX 4.0.3-extend-d_termname-ng2.patch 3903 RMD160 001fc520c48aff7ffcc914cc9668a4900eade2e9 SHA1 73a3dd79d02286a0790306e74a2095f2322ef434 SHA256 3d9280cc98099e76f704f54f3e780906357357e4a22fd589d72350cbfdd26699
AUX 4.0.3-extend-d_termname.patch 912 RMD160 da763a1031c3ef6325fcda867e42e172e6e2bc0b SHA1 674f35167f48e04b5cb644a44f2c278df8dcc255 SHA256 172aa1f225037d7a6f3a07e61d32227afebccb82c0b4a384fe9636e16b0236a6
AUX screen-4.0.1-int-overflow-fix.patch 930 RMD160 b82fe493ccdc75bcfa97bf36e86f37ff5056565e SHA1 e516e056515a5e10cd470a8f951a94c512827515 SHA256 fe495d43c367082099cfcb890c7b66629d2ad656a7a15fee6fcd60884abee7d0
AUX screen-4.0.1-vsprintf.patch 480 RMD160 cc80e7353e19d7d82dc506ae3a5eaaedba4db1ca SHA1 b1bf4b8f45236dc63de748699671679ce7237a59 SHA256 34d2f9d6101555fbc37e983542f3db549ea96ede89c7d87c21c69b7331d9c3cd
@@ -18,13 +19,14 @@ AUX screenrc 10397 RMD160 e80d0c2ee7b225d041b75ae4fe080aa2ad8b134a SHA1 15dee4a4
DIST screen-4.0.3.tar.gz 840602 RMD160 8c3903c1642ae30fd9d5706298919428552f7754 SHA1 7bc6e2f0959ffaae6f52d698c26c774e7dec3545 SHA256 78f0d5b1496084a5902586304d4a73954b2bfe33ea13edceecf21615c39e6c77
EBUILD screen-4.0.3-r1.ebuild 5152 RMD160 2181c15ee53460967b5ec51a6424dd69ce9dbc7a SHA1 c55036daf2327a35f3304189c0d63755a7a64c53 SHA256 6d58b09ee4588f4685038c41521ce4a1329f52f614ff41b9fd87bbc51d795bbd
EBUILD screen-4.0.3-r3.ebuild 5265 RMD160 f69073315cf1531b6fee7a2a92cc48c74b6480c7 SHA1 872bcfd4a761ce61ce94380e34e43a08cb39326f SHA256 eac58b1b09ed2152c2ff0abc166ad813c1e0b9c1693ce158efb62001cb860f8b
+EBUILD screen-4.0.3-r4.ebuild 5300 RMD160 8efb21a611ab85baad59415a6c5e103af05fc1b7 SHA1 696752aa142f014d4e4d5b342f243b8163043a31 SHA256 d014ab82a798a7ea033eae494a8f27188292eda250b7192390a9d7c1a37918c0
EBUILD screen-4.0.3.ebuild 4661 RMD160 62e154b2f975bf270e49f3d560dbe10df345babf SHA1 1e013d4ddf049a3ad06dada24e44140aad453189 SHA256 300d4bfa0a72b80f0f26b5e845cd6057d081ebedf5ebb69d1a3653a07bad37b5
-MISC ChangeLog 21455 RMD160 963ddb844d992bfeb513557d18dab25b18bb5a72 SHA1 3e662eebaf7c0d0a584f45fa2646e0e0d7a5107a SHA256 7264c0b3fd0d9514cf7537e7315e0cad65ffa13e7c80f50212d8544c4e7cae0c
+MISC ChangeLog 21643 RMD160 3a981dd483352a09781b07c7d042d9bc25af66bf SHA1 d6eab0a4014479966ee39845bd8762f6cbca6eeb SHA256 5b8c860c8542a7c93eb5e3684f4192f73ff1190e2b9a3478837309182053be0f
MISC metadata.xml 1697 RMD160 e3f187509d13f8e939814733c9876407006ca0ab SHA1 53a6d55362e68c62329b6a644b5b3f74c436f272 SHA256 58279e41070c88041df5acd625067c947b9df46ca68fb3ae3cd72c268ae30c81
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.16 (GNU/Linux)
-iEYEARECAAYFAkzkBd0ACgkQgAnW8HDreRYUcgCfa+r6fb7M0Zx3nPW/BaSOd0Wb
-NPYAoM7Q805xrSchXTYNwaTUvBfTweUj
-=6J9J
+iEYEARECAAYFAkz/2E4ACgkQgAnW8HDreRaVNACfZoG3O0BnE1loBmNx8Ftn0Tr6
+FT8AnRI/ZO+B4Db/pPvAzg1jjd6WEAyN
+=hhqZ
-----END PGP SIGNATURE-----
diff --git a/app-misc/screen/files/4.0.3-extend-d_termname-ng2.patch b/app-misc/screen/files/4.0.3-extend-d_termname-ng2.patch
new file mode 100644
index 000000000000..e7fe1abbd36c
--- /dev/null
+++ b/app-misc/screen/files/4.0.3-extend-d_termname-ng2.patch
@@ -0,0 +1,148 @@
+diff --git a/acls.c b/acls.c
+index 0f98df2..670c3aa 100644
+--- a/acls.c
++++ b/acls.c
+@@ -178,7 +178,7 @@ struct acluser **up;
+ #endif
+ (*up)->u_Esc = DefaultEsc;
+ (*up)->u_MetaEsc = DefaultMetaEsc;
+- strncpy((*up)->u_name, name, 20);
++ strncpy((*up)->u_name, name, 32);
+ (*up)->u_password = NULL;
+ if (pass)
+ (*up)->u_password = SaveStr(pass);
+@@ -314,8 +314,8 @@ struct acluser **up;
+ return UserAdd(name, pass, up);
+ if (!strcmp(name, "nobody")) /* he remains without password */
+ return -1;
+- strncpy((*up)->u_password, pass ? pass : "", 20);
+- (*up)->u_password[20] = '\0';
++ strncpy((*up)->u_password, pass ? pass : "", 32);
++ (*up)->u_password[32] = '\0';
+ return 0;
+ }
+ #endif
+diff --git a/acls.h b/acls.h
+index c41b714..cdd24d4 100644
+--- a/acls.h
++++ b/acls.h
+@@ -73,7 +73,7 @@ struct plop
+ typedef struct acluser
+ {
+ struct acluser *u_next; /* continue the main user list */
+- char u_name[20+1]; /* login name how he showed up */
++ char u_name[32+1]; /* login name how he showed up */
+ char *u_password; /* his password (may be NullStr). */
+ int u_checkpassword; /* nonzero if this u_password is valid */
+ int u_detachwin; /* the window where he last detached */
+diff --git a/display.h b/display.h
+index ef99954..563fcd0 100644
+--- a/display.h
++++ b/display.h
+@@ -22,6 +22,16 @@
+ * $Id: display.h,v 1.9 1994/05/31 12:31:54 mlschroe Exp $ FAU
+ */
+
++#include <limits.h>
++
++#ifndef NAME_MAX
++# ifndef MAXNAMELEN
++# define NAME_MAX 255
++# else
++# define NAME_MAX MAXNAMELEN
++# endif
++#endif
++
+ #ifdef MAPKEYS
+
+ #define KMAP_KEYS (T_OCAPS-T_CAPS)
+@@ -85,7 +95,7 @@ struct display
+ struct win *d_other; /* pointer to other window */
+ int d_nonblock; /* -1 don't block if obufmax reached */
+ /* >0: block after nonblock secs */
+- char d_termname[20 + 1]; /* $TERM */
++ char d_termname[NAME_MAX + 1]; /* $TERM */
+ char *d_tentry; /* buffer for tgetstr */
+ char d_tcinited; /* termcap inited flag */
+ int d_width, d_height; /* width/height of the screen */
+diff --git a/screen.h b/screen.h
+index 4f9f354..bcaaaf6 100644
+--- a/screen.h
++++ b/screen.h
+@@ -43,6 +43,15 @@
+ #include "comm.h"
+ #include "layer.h"
+ #include "term.h"
++#include <limits.h>
++
++#ifndef NAME_MAX
++# ifndef MAXNAMELEN
++# define NAME_MAX 255
++# else
++# define NAME_MAX MAXNAMELEN
++# endif
++#endif
+
+
+ #ifdef DEBUG
+@@ -195,26 +204,26 @@ struct msg
+ create;
+ struct
+ {
+- char auser[20 + 1]; /* username */
++ char auser[NAME_MAX + 1]; /* username */
+ int apid; /* pid of frontend */
+ int adaptflag; /* adapt window size? */
+ int lines, columns; /* display size */
+ char preselect[20];
+ int esc; /* his new escape character unless -1 */
+ int meta_esc; /* his new meta esc character unless -1 */
+- char envterm[20 + 1]; /* terminal type */
++ char envterm[NAME_MAX + 1]; /* terminal type */
+ int encoding; /* encoding of display */
+ }
+ attach;
+ struct
+ {
+- char duser[20 + 1]; /* username */
++ char duser[NAME_MAX + 1]; /* username */
+ int dpid; /* pid of frontend */
+ }
+ detach;
+ struct
+ {
+- char auser[20 + 1]; /* username */
++ char auser[NAME_MAX + 1]; /* username */
+ int nargs;
+ char cmd[MAXPATHLEN]; /* command */
+ int apid; /* pid of frontend */
+diff --git a/socket.c b/socket.c
+index 62a73af..1cc9c27 100644
+--- a/socket.c
++++ b/socket.c
+@@ -45,6 +45,16 @@
+
+ #include "extern.h"
+
++#include <limits.h>
++
++#ifndef NAME_MAX
++# ifndef MAXNAMELEN
++# define NAME_MAX 255
++# else
++# define NAME_MAX MAXNAMELEN
++# endif
++#endif
++
+ static int CheckPid __P((int));
+ static void ExecCreate __P((struct msg *));
+ static void DoCommandMsg __P((struct msg *));
+@@ -1248,7 +1258,7 @@ static void PasswordProcessInput __P((char *, int));
+
+ struct pwdata {
+ int l;
+- char buf[20 + 1];
++ char buf[NAME_MAX + 1];
+ struct msg m;
+ };
+
diff --git a/app-misc/screen/screen-4.0.3-r4.ebuild b/app-misc/screen/screen-4.0.3-r4.ebuild
new file mode 100644
index 000000000000..34fd6b6d0559
--- /dev/null
+++ b/app-misc/screen/screen-4.0.3-r4.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-misc/screen/screen-4.0.3-r4.ebuild,v 1.1 2010/12/08 19:11:04 jlec Exp $
+
+EAPI="3"
+
+WANT_AUTOCONF="2.5"
+
+inherit eutils flag-o-matic toolchain-funcs pam autotools
+
+DESCRIPTION="Full-screen window manager that multiplexes physical terminals between several processes"
+HOMEPAGE="http://www.gnu.org/software/screen/"
+SRC_URI="ftp://ftp.uni-erlangen.de/pub/utilities/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd ~hppa-hpux ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="debug nethack pam selinux multiuser"
+
+RDEPEND=">=sys-libs/ncurses-5.2
+ pam? ( virtual/pam )
+ selinux? ( sec-policy/selinux-screen )"
+DEPEND="${RDEPEND}"
+
+pkg_setup() {
+ # Make sure utmp group exists, as it's used later on.
+ enewgroup utmp 406
+}
+
+src_prepare() {
+ # Bug 34599: integer overflow in 4.0.1
+ # (Nov 29 2003 -solar)
+ epatch "${FILESDIR}"/screen-4.0.1-int-overflow-fix.patch
+
+ # Bug 31070: configure problem which affects alpha
+ # (13 Jan 2004 agriffis)
+ epatch "${FILESDIR}"/screen-4.0.1-vsprintf.patch
+
+ # uclibc doesnt have sys/stropts.h
+ if ! (echo '#include <sys/stropts.h>' | $(tc-getCC) -E - &>/dev/null) ; then
+ epatch "${FILESDIR}"/4.0.2-no-pty.patch
+ fi
+
+ # Don't use utempter even if it is found on the system
+ epatch "${FILESDIR}"/4.0.2-no-utempter.patch
+
+ # Don't link against libelf even if it is found on the system
+ epatch "${FILESDIR}"/4.0.2-no-libelf.patch
+
+ # Patch for time function on 64bit systems
+ epatch "${FILESDIR}"/4.0.2-64bit-time.patch
+
+ # Patch that makes %u work for windowlist -b formats
+ epatch "${FILESDIR}"/4.0.2-windowlist-multiuser-fix.patch
+
+ # Open tty in non-blocking mode
+ epatch "${FILESDIR}"/4.0.2-nonblock.patch
+
+ # compability for sys-devel/autoconf-2.62
+ epatch "${FILESDIR}"/screen-4.0.3-config.h-autoconf-2.62.patch
+
+ # crosscompile patch
+ epatch "${FILESDIR}"/"${P}"-crosscompile.patch
+
+ # 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
+
+ # Allow for more rendition (color/attribute) changes in status bars
+ sed -i \
+ -e "s:#define MAX_WINMSG_REND 16:#define MAX_WINMSG_REND 64:" \
+ screen.c \
+ || die "sed screen.c failed"
+
+ # Fix manpage.
+ sed -i \
+ -e "s:/usr/local/etc/screenrc:${EPREFIX}/etc/screenrc:g" \
+ -e "s:/usr/local/screens:${EPREFIX}/var/run/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}/var/run/screen/S-:g" \
+ doc/screen.1 \
+ || die "sed doc/screen.1 failed"
+
+ # proper setenv detection for Solaris
+ epatch "${FILESDIR}"/${P}-setenv_autoconf.patch
+
+ # Allow TERM string large enough to use with rxvt-unicode-256color
+ # Allow usernames up to 32 chars
+ epatch "${FILESDIR}"/${PV}-extend-d_termname-ng2.patch
+
+ # reconfigure
+ eautoconf
+}
+
+src_configure() {
+ append-flags "-DMAXWIN=${MAX_SCREEN_WINDOWS:-100}"
+
+ [[ ${CHOST} == *-solaris* ]] && append-libs -lsocket -lnsl
+
+ use nethack || append-flags "-DNONETHACK"
+ use debug && append-flags "-DDEBUG"
+
+ econf \
+ --with-socket-dir="${EPREFIX}/var/run/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) \
+ || die "econf failed"
+
+ # Second try to fix bug 12683, this time without changing term.h
+ # The last try seemed to break screen at run-time.
+ # (16 Jan 2003 agriffis)
+ LC_ALL=POSIX make term.h || die "Failed making term.h"
+}
+
+src_install() {
+ dobin screen || die "dobin failed"
+ keepdir /var/run/screen || die "keepdir failed"
+
+ if use multiuser || use prefix
+ then
+ fperms 4755 /usr/bin/screen || die "fperms failed"
+ else
+ fowners root:utmp /{usr/bin,var/run}/screen \
+ || die "fowners failed, use multiuser USE-flag instead"
+ fperms 2755 /usr/bin/screen || die "fperms failed"
+ fi
+
+ insinto /usr/share/screen
+ doins terminfo/{screencap,screeninfo.src} || die "doins failed"
+ insinto /usr/share/screen/utf8encodings
+ doins utf8encodings/?? || die "doins failed"
+ insinto /etc
+ doins "${FILESDIR}"/screenrc || die "doins failed"
+
+ pamd_mimic_system screen auth || die "pamd_mimic_system failed"
+
+ dodoc \
+ README ChangeLog INSTALL TODO NEWS* patchlevel.h \
+ doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps} \
+ || die "dodoc failed"
+
+ doman doc/screen.1 || die "doman failed"
+ doinfo doc/screen.info* || die "doinfo failed"
+}
+
+pkg_postinst() {
+ if use multiuser || use prefix
+ then
+ use prefix || chown root:0 "${EROOT}"/var/run/screen
+ if use prefix; then
+ chmod 0777 "${EROOT}"/var/run/screen
+ else
+ chmod 0755 "${EROOT}"/var/run/screen
+ fi
+ else
+ chown root:utmp "${EROOT}"/var/run/screen
+ chmod 0775 "${EROOT}"/var/run/screen
+ fi
+
+ 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."
+}