diff options
author | Justin Lecher <jlec@gentoo.org> | 2010-12-08 19:11:04 +0000 |
---|---|---|
committer | Justin Lecher <jlec@gentoo.org> | 2010-12-08 19:11:04 +0000 |
commit | 3107f373ad7e7124eda4dde4bb2330bc73e1f9da (patch) | |
tree | 89ce08399f2cedc4679341b6dd118b52fbb10ee7 /app-misc/screen | |
parent | Needs gnome-panel with bonobo support. (diff) | |
download | historical-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/ChangeLog | 8 | ||||
-rw-r--r-- | app-misc/screen/Manifest | 10 | ||||
-rw-r--r-- | app-misc/screen/files/4.0.3-extend-d_termname-ng2.patch | 148 | ||||
-rw-r--r-- | app-misc/screen/screen-4.0.3-r4.ebuild | 169 |
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." +} |