From: Lars Wendler Date: Sat, 21 Jan 2017 17:23:29 +0000 (+0100) Subject: app-misc/tmux: Revbump to fix status-right display (bug #606568). X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=6040e1f56ea5f55bad8f124c104adcaa1b171fa1;p=gentoo.git app-misc/tmux: Revbump to fix status-right display (bug #606568). Package-Manager: Portage-2.3.3, Repoman-2.3.1 --- 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 +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 +}