diff options
author | 2012-12-03 23:10:20 +0800 | |
---|---|---|
committer | 2012-12-03 23:10:20 +0800 | |
commit | a864a84ba5e7d9dad35cabd2d6a47abdc05c7a43 (patch) | |
tree | 9ed655e04e24d6a6499a051feda9a6363688125f /app-misc | |
parent | Initialized repo (diff) | |
download | pigfoot-a864a84ba5e7d9dad35cabd2d6a47abdc05c7a43.tar.gz pigfoot-a864a84ba5e7d9dad35cabd2d6a47abdc05c7a43.tar.bz2 pigfoot-a864a84ba5e7d9dad35cabd2d6a47abdc05c7a43.zip |
Add CJK support for screen-4.0.3-r6
Diffstat (limited to 'app-misc')
-rw-r--r-- | app-misc/screen/screen-4.0.3-r6.ebuild | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/app-misc/screen/screen-4.0.3-r6.ebuild b/app-misc/screen/screen-4.0.3-r6.ebuild new file mode 100644 index 0000000..a83c6ad --- /dev/null +++ b/app-misc/screen/screen-4.0.3-r6.ebuild @@ -0,0 +1,161 @@ +# Copyright 1999-2012 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-r6.ebuild,v 1.1 2012/11/07 16:04:41 jlec Exp $ + +EAPI=4 + +WANT_AUTOCONF="2.5" + +inherit eutils flag-o-matic toolchain-funcs pam autotools user + +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 + cjk? ( http://git.overlays.gentoo.org/gitweb/?p=user/pigfoot.git;a=blob_plain;f=distfiles/screen-4.0.3-uao-patch.tar.bz2;hb=HEAD )" + +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 cjk" + +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 + + # Patch for correct cjk width length in utf8 locale + if use cjk ; then + epatch "${WORKDIR}"/screen-4.0.3-uao-patch/screen-4.0.3-uao.diff + epatch "${WORKDIR}"/screen-4.0.3-uao-patch/screen-4.0.3-cjkwidth-mhsin.diff + cp -f "${WORKDIR}"/screen-4.0.3-uao-patch/screen-4.0.3-utf8encodings-18 "${S}"/utf8encodings/18 + fi + + # 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) \ + $(use multiuser || echo --disable-socket-dir) + + # 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 + + if use multiuser || use prefix + then + fperms 4755 /usr/bin/screen + else + fowners root:utmp /usr/bin/screen + fperms 2755 /usr/bin/screen + fi + + 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* patchlevel.h \ + doc/{FAQ,README.DOTSCREEN,fdpat.ps,window_to_display.ps} + + doman doc/screen.1 + doinfo doc/screen.info* +} + +pkg_postinst() { + 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." +} |