summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wendler <polynomial-c@gentoo.org>2017-01-21 18:23:29 +0100
committerLars Wendler <polynomial-c@gentoo.org>2017-01-21 18:24:11 +0100
commit6040e1f56ea5f55bad8f124c104adcaa1b171fa1 (patch)
treec5daab8a444d77ceade0a7baa2daf2fb1c819389 /app-misc
parentnet-misc/dropbear: amd64 stable wrt bug #605560 (diff)
downloadgentoo-6040e1f56ea5f55bad8f124c104adcaa1b171fa1.tar.gz
gentoo-6040e1f56ea5f55bad8f124c104adcaa1b171fa1.tar.bz2
gentoo-6040e1f56ea5f55bad8f124c104adcaa1b171fa1.zip
app-misc/tmux: Revbump to fix status-right display (bug #606568).
Package-Manager: Portage-2.3.3, Repoman-2.3.1
Diffstat (limited to 'app-misc')
-rw-r--r--app-misc/tmux/files/tmux-2.3-screen_write_copy-fix.patch63
-rw-r--r--app-misc/tmux/tmux-2.3-r1.ebuild96
2 files changed, 159 insertions, 0 deletions
diff --git a/app-misc/tmux/files/tmux-2.3-screen_write_copy-fix.patch b/app-misc/tmux/files/tmux-2.3-screen_write_copy-fix.patch
new file mode 100644
index 000000000000..b8383274da2a
--- /dev/null
+++ b/app-misc/tmux/files/tmux-2.3-screen_write_copy-fix.patch
@@ -0,0 +1,63 @@
+From 30086e504c8a5389b96b72b81ac8dbefe19e0cf1 Mon Sep 17 00:00:00 2001
+From: nicm <nicm>
+Date: Wed, 5 Oct 2016 22:00:29 +0000
+Subject: [PATCH] screen_write_copy tried to be clever and clear the line if it
+ reached the end of the source, but it was wrong and causes problems that are
+ only showing up now we are more aggressive about skipping redundant screen
+ updates. Remove the optimization entirely as more trouble than it is worth to
+ fix (and it'll have to go when BCE is done anyway).
+
+---
+ screen-write.c | 34 +++++++---------------------------
+ 1 file changed, 7 insertions(+), 27 deletions(-)
+
+diff --git a/screen-write.c b/screen-write.c
+index 3977517..3a1fc8c 100644
+--- a/screen-write.c
++++ b/screen-write.c
+@@ -394,38 +394,18 @@ screen_write_copy(struct screen_write_ctx *ctx, struct screen *src, u_int px,
+ {
+ struct screen *s = ctx->s;
+ struct grid *gd = src->grid;
+- struct grid_line *gl;
+ struct grid_cell gc;
+- u_int xx, yy, cx, cy, ax, bx;
++ u_int xx, yy, cx, cy;
+
+ cx = s->cx;
+ cy = s->cy;
++
+ for (yy = py; yy < py + ny; yy++) {
+- gl = &gd->linedata[yy];
+- if (yy < gd->hsize + gd->sy) {
+- /*
+- * Find start and end position and copy between
+- * them. Limit to the real end of the line then use a
+- * clear EOL only if copying to the end, otherwise
+- * could overwrite whatever is there already.
+- */
+- if (px > gl->cellsize)
+- ax = gl->cellsize;
+- else
+- ax = px;
+- if (px + nx == gd->sx && px + nx > gl->cellsize)
+- bx = gl->cellsize;
+- else
+- bx = px + nx;
+-
+- for (xx = ax; xx < bx; xx++) {
+- grid_get_cell(gd, xx, yy, &gc);
+- screen_write_cell(ctx, &gc);
+- }
+- if (px + nx == gd->sx && px + nx > gl->cellsize)
+- screen_write_clearendofline(ctx);
+- } else
+- screen_write_clearline(ctx);
++ for (xx = px; xx < px + nx; xx++) {
++ grid_get_cell(gd, xx, yy, &gc);
++ screen_write_cell(ctx, &gc);
++ }
++
+ cy++;
+ screen_write_cursormove(ctx, cx, cy);
+ }
diff --git a/app-misc/tmux/tmux-2.3-r1.ebuild b/app-misc/tmux/tmux-2.3-r1.ebuild
new file mode 100644
index 000000000000..bc1dfcdba4a8
--- /dev/null
+++ b/app-misc/tmux/tmux-2.3-r1.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit autotools flag-o-matic versionator
+
+DESCRIPTION="Terminal multiplexer"
+HOMEPAGE="http://tmux.github.io/"
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/${PV}/${P}.tar.gz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="debug selinux utempter vim-syntax kernel_FreeBSD kernel_linux"
+
+CDEPEND="
+ dev-libs/libevent:0=
+ || (
+ =dev-libs/libevent-2.0*
+ >=dev-libs/libevent-2.1.5-r4
+ )
+ utempter? (
+ kernel_linux? ( sys-libs/libutempter )
+ kernel_FreeBSD? ( || ( >=sys-freebsd/freebsd-lib-9.0 sys-libs/libutempter ) )
+ )
+ sys-libs/ncurses:0="
+DEPEND="${CDEPEND}
+ virtual/pkgconfig"
+RDEPEND="${CDEPEND}
+ dev-libs/libevent:=
+ selinux? ( sec-policy/selinux-screen )
+ vim-syntax? (
+ || (
+ app-editors/vim
+ app-editors/gvim
+ )
+ )"
+
+DOCS=( CHANGES FAQ README TODO )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.3-flags.patch
+
+ # usptream fixes (can be removed with next version bump)
+ "${FILESDIR}"/${P}-screen_write_copy-fix.patch
+)
+
+src_prepare() {
+ # bug 438558
+ # 1.7 segfaults when entering copy mode if compiled with -Os
+ replace-flags -Os -O2
+
+ # regenerate aclocal.m4 to support earlier automake versions
+ rm aclocal.m4 || die
+
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --sysconfdir="${EPREFIX}"/etc \
+ $(use_enable debug) \
+ $(use_enable utempter)
+}
+
+src_install() {
+ default
+
+ einstalldocs
+
+ dodoc example_tmux.conf
+ docompress -x /usr/share/doc/${PF}/example_tmux.conf
+
+ if use vim-syntax; then
+ insinto /usr/share/vim/vimfiles/ftdetect
+ doins "${FILESDIR}"/tmux.vim
+ fi
+}
+
+pkg_postinst() {
+ if ! version_is_at_least 1.9a ${REPLACING_VERSIONS:-1.9a}; then
+ echo
+ ewarn "Some configuration options changed in this release."
+ ewarn "Please read the CHANGES file in /usr/share/doc/${PF}/"
+ ewarn
+ ewarn "WARNING: After updating to ${P} you will _not_ be able to connect to any"
+ ewarn "older, running tmux server instances. You'll have to use an existing client to"
+ ewarn "end your old sessions or kill the old server instances. Otherwise you'll have"
+ ewarn "to temporarily downgrade to access them."
+ echo
+ fi
+}