commit:     332fe1cb7b2588d0fc0fb3086f7f44ac2386a2f0
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 14 17:22:43 2021 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Oct 14 17:22:43 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=332fe1cb

x11-terms/st: backport locale crash fix

Closes: https://bugs.gentoo.org/784071
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../st/files/st-0.8.4-locale-musl-segfault.patch   | 16 +++++
 x11-terms/st/st-0.8.4-r1.ebuild                    | 72 ++++++++++++++++++++++
 2 files changed, 88 insertions(+)

diff --git a/x11-terms/st/files/st-0.8.4-locale-musl-segfault.patch 
b/x11-terms/st/files/st-0.8.4-locale-musl-segfault.patch
new file mode 100644
index 00000000000..b70574025eb
--- /dev/null
+++ b/x11-terms/st/files/st-0.8.4-locale-musl-segfault.patch
@@ -0,0 +1,16 @@
+https://bugs.gentoo.org/784071
+https://git.suckless.org/st/commit/2f6e597ed871cff91c627850d03152cae5f45779.html
+--- a/x.c
++++ b/x.c
+@@ -1585,8 +1585,9 @@ xsettitle(char *p)
+       XTextProperty prop;
+       DEFAULT(p, opt_title);
+ 
+-      Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
+-                      &prop);
++      if (Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
++                      &prop) != Success)
++              return;
+       XSetWMName(xw.dpy, xw.win, &prop);
+       XSetTextProperty(xw.dpy, xw.win, &prop, xw.netwmname);
+       XFree(prop.value);

diff --git a/x11-terms/st/st-0.8.4-r1.ebuild b/x11-terms/st/st-0.8.4-r1.ebuild
new file mode 100644
index 00000000000..0b7788ee576
--- /dev/null
+++ b/x11-terms/st/st-0.8.4-r1.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit desktop multilib savedconfig toolchain-funcs
+
+DESCRIPTION="simple terminal implementation for X"
+HOMEPAGE="https://st.suckless.org/";
+SRC_URI="https://dl.suckless.org/st/${P}.tar.gz";
+
+LICENSE="MIT-with-advertising"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc64 ~riscv ~x86"
+IUSE="savedconfig"
+
+RDEPEND="
+       >=sys-libs/ncurses-6.0:0=
+       media-libs/fontconfig
+       x11-libs/libX11
+       x11-libs/libXft
+"
+DEPEND="
+       ${RDEPEND}
+       virtual/pkgconfig
+       x11-base/xorg-proto
+"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-locale-musl-segfault.patch
+)
+
+src_prepare() {
+       default
+
+       sed -i \
+               -e "/^X11LIB/{s:/usr/X11R6/lib:/usr/$(get_libdir)/X11:}" \
+               -e '/^STLDFLAGS/s|= .*|= $(LDFLAGS) $(LIBS)|g' \
+               -e '/^X11INC/{s:/usr/X11R6/include:/usr/include/X11:}' \
+               config.mk || die
+       sed -i \
+               -e '/tic/d' \
+               Makefile || die
+
+       restore_config config.h
+}
+
+src_configure() {
+       sed -i \
+               -e "s|pkg-config|$(tc-getPKG_CONFIG)|g" \
+               config.mk || die
+
+       tc-export CC
+}
+
+src_install() {
+       emake DESTDIR="${D}" PREFIX="${EPREFIX}"/usr install
+
+       dodoc TODO
+
+       make_desktop_entry ${PN} simpleterm utilities-terminal 
'System;TerminalEmulator;' ''
+
+       save_config config.h
+}
+
+pkg_postinst() {
+       if ! [[ "${REPLACING_VERSIONS}" ]]; then
+               elog "Please ensure a usable font is installed, like"
+               elog "    media-fonts/corefonts"
+               elog "    media-fonts/dejavu"
+               elog "    media-fonts/urw-fonts"
+       fi
+}

Reply via email to