x11-terms/aterm: add patch to remove streams functionality
authorIlia Mirkin <imirkin@alum.mit.edu>
Tue, 14 Apr 2020 17:35:21 +0000 (13:35 -0400)
committerMatt Turner <mattst88@gentoo.org>
Mon, 20 Apr 2020 21:26:31 +0000 (14:26 -0700)
STREAMS were never supported in Linux, and have been removed from
glibc-2.30. This causes aterm to no longer build.

The included patch fixes the build by making the code follow the old
paths, on the assumption that the ioctls never did anything to begin
with.

Practical testing with this patch has not revealed any obvious issues.

Bug: https://bugs.gentoo.org/691756
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Matt Turner <mattst88@gentoo.org>
x11-terms/aterm/aterm-1.0.1-r4.ebuild [new file with mode: 0644]
x11-terms/aterm/files/aterm-1.0.1-remove-streams.patch [new file with mode: 0644]

diff --git a/x11-terms/aterm/aterm-1.0.1-r4.ebuild b/x11-terms/aterm/aterm-1.0.1-r4.ebuild
new file mode 100644 (file)
index 0000000..503745c
--- /dev/null
@@ -0,0 +1,90 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit flag-o-matic eutils
+
+DESCRIPTION="rxvt compatible terminal emulator with transparency support"
+HOMEPAGE="http://aterm.sourceforge.net"
+SRC_URI="ftp://ftp.afterstep.org/apps/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris"
+IUSE="background cjk xgetdefault"
+
+RDEPEND="
+       virtual/jpeg:0
+       media-libs/libpng:0=
+       background? ( x11-wm/afterstep )
+       x11-libs/libX11
+       x11-libs/libXext
+       x11-libs/libICE
+"
+DEPEND="${RDEPEND}
+       x11-base/xorg-proto
+       x11-libs/libXt
+"
+
+src_prepare() {
+       # Security bug #219746
+       eapply "${FILESDIR}/${P}-display-security-issue.patch"
+       eapply "${FILESDIR}"/${P}-deadkeys.patch
+       eapply "${FILESDIR}/${P}-dpy.patch"
+       eapply "${FILESDIR}/${P}-remove-streams.patch"
+
+       #fix pre-stripped files
+       sed -i -e "/INSTALL_PROGRAM/ s:-s::" autoconf/Make.common.in || die "sed Makefile failed"
+
+       default
+}
+
+src_configure() {
+       local myconf
+
+       use cjk && myconf="$myconf
+               --enable-kanji
+               --enable-thai
+               --enable-big5"
+
+       case "${CHOST}" in
+               *-darwin*) myconf="${myconf} --enable-wtmp" ;;
+               *-interix*) ;;
+               *) myconf="${myconf} --enable-utmp --enable-wtmp"
+       esac
+
+       econf \
+               $(use_enable xgetdefault) \
+               $(use_enable background background-image) \
+               --with-terminfo="${EPREFIX}"/usr/share/terminfo \
+               --enable-transparency \
+               --enable-fading \
+               --enable-background-image \
+               --enable-menubar \
+               --enable-graphics \
+               --with-x \
+               ${myconf}
+}
+
+src_install() {
+       make DESTDIR="${D}" install || die "make install failed"
+
+       fowners root:utmp /usr/bin/aterm
+       fperms g+s /usr/bin/aterm
+
+       doman doc/aterm.1
+       dodoc ChangeLog doc/FAQ doc/README.*
+       docinto menu
+       dodoc doc/menu/*
+       dohtml -r .
+}
+
+pkg_postinst() {
+       echo
+       elog "The transparent background will only work if you have the 'real'"
+       elog "root wallpaper set. Some tools that might help include: Esetroot"
+       elog "(x11-terms/eterm), wmsetbg (x11-wm/windowmaker), and/or"
+       elog "media-gfx/feh."
+       echo
+}
diff --git a/x11-terms/aterm/files/aterm-1.0.1-remove-streams.patch b/x11-terms/aterm/files/aterm-1.0.1-remove-streams.patch
new file mode 100644 (file)
index 0000000..fc9f3f8
--- /dev/null
@@ -0,0 +1,36 @@
+diff -ur aterm-1.0.1-orig/src/command.c aterm-1.0.1/src/command.c
+--- aterm-1.0.1-orig/src/command.c     2020-04-01 12:50:59.222929696 -0400
++++ aterm-1.0.1/src/command.c  2020-04-01 12:49:47.319579199 -0400
+@@ -91,10 +91,13 @@
+ #if defined (__svr4__) || defined (__lnx21__)
+ # include <sys/resource.h>    /* for struct rlimit */
+-# include <sys/stropts.h>     /* for I_PUSH */
+ # define _NEW_TTY_CTRL                /* to get proper defines in <termios.h> */
+ #endif
++#if defined (__svr4__)
++# include <sys/stropts.h>     /* for I_PUSH */
++#endif
++
+ /*}}} */
+ static unsigned int ModMetaMask, ModNumLockMask;
+@@ -672,7 +675,7 @@
+       print_error("can't open slave tty %s", ttydev);
+       exit(EXIT_FAILURE);
+     }
+-#if defined (__svr4__) || defined (__lnx21__)
++#if defined (__svr4__)
+ /*
+  * Push STREAMS modules:
+  *    ptem: pseudo-terminal hardware emulation module.
+@@ -682,6 +685,8 @@
+     ioctl(fd, I_PUSH, "ptem");
+     ioctl(fd, I_PUSH, "ldterm");
+     ioctl(fd, I_PUSH, "ttcompat");
++#elif defined (__lnx21__)
++    /* do nothing */
+ #else                         /* __svr4__ */
+     {
+       /* change ownership of tty to real uid and real group */