summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2022-09-22 03:57:08 +0100
committerSam James <sam@gentoo.org>2022-09-22 03:57:16 +0100
commit29df23ad4410881b5233a0c2ce31f2bd75238ef6 (patch)
tree71557a169b5d0400e6539c4f2043acff103230ec /app-misc/tmux
parentx11-libs/goffice: bump to 0.10.53 (diff)
downloadgentoo-29df23ad4410881b5233a0c2ce31f2bd75238ef6.tar.gz
gentoo-29df23ad4410881b5233a0c2ce31f2bd75238ef6.tar.bz2
gentoo-29df23ad4410881b5233a0c2ce31f2bd75238ef6.zip
app-misc/tmux: backport Clang fixes
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'app-misc/tmux')
-rw-r--r--app-misc/tmux/files/tmux-3.3a-clang.patch59
-rw-r--r--app-misc/tmux/tmux-3.3a-r1.ebuild84
2 files changed, 143 insertions, 0 deletions
diff --git a/app-misc/tmux/files/tmux-3.3a-clang.patch b/app-misc/tmux/files/tmux-3.3a-clang.patch
new file mode 100644
index 000000000000..e292e698f310
--- /dev/null
+++ b/app-misc/tmux/files/tmux-3.3a-clang.patch
@@ -0,0 +1,59 @@
+https://github.com/tmux/tmux/pull/3332
+
+From 1b4c87de0249242309f10684761698aa880b80a5 Mon Sep 17 00:00:00 2001
+From: Marvin Schmidt <marv@exherbo.org>
+Date: Tue, 13 Sep 2022 03:25:00 +0200
+Subject: [PATCH 1/2] compat/systemd: Include <string.h> for strerror
+
+Recent compilers are getting stricter about function declarations being
+known during compilation and e.g. clang-15 now errors out if a function
+signature is not found:
+
+> compat/systemd.c:56:49: error: call to undeclared library function 'strerror' with type 'char *(int)'; ISO C99 and
+> later do not support implicit function declarations [-Wimplicit-function-declaration]
+> xasprintf(cause, "systemd socket error (%s)", strerror(errno));
+> ^
+> compat/systemd.c:56:49: note: include the header <string.h> or explicitly provide a declaration for 'strerror'
+> 1 warning and 1 error generated.
+
+Provide the declaration of `strerror` by including `<string.h>` to fix
+this
+--- a/compat/systemd.c
++++ b/compat/systemd.c
+@@ -16,6 +16,7 @@
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
++#include <string.h>
+ #include <sys/types.h>
+ #include <sys/un.h>
+
+
+From 1e7ef02c52f2f8a67ab05d8a1c3fec9f4ccb7ea0 Mon Sep 17 00:00:00 2001
+From: Marvin Schmidt <marv@exherbo.org>
+Date: Tue, 13 Sep 2022 03:34:01 +0200
+Subject: [PATCH 2/2] compat/systemd: Use socklen_t instead of int to fix
+ warning
+
+clang-15 warns about the pointer passed to `getsockname()` being of
+different signedness then the parameter declaration:
+
+> compat/systemd.c:46:47: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *')
+> converts between pointers to integer types with different sign [-Wpointer-sign]
+> if (getsockname(fd, (struct sockaddr *)&sa, &addrlen) == -1)
+> ^~~~~~~~
+> /usr/x86_64-pc-linux-musl/include/sys/socket.h:391:73: note: passing argument to parameter here
+> int getsockname (int, struct sockaddr *__restrict, socklen_t *__restrict);
+> ^
+--- a/compat/systemd.c
++++ b/compat/systemd.c
+@@ -30,7 +30,7 @@ systemd_create_socket(int flags, char **cause)
+ int fds;
+ int fd;
+ struct sockaddr_un sa;
+- int addrlen = sizeof sa;
++ socklen_t addrlen = sizeof sa;
+
+ fds = sd_listen_fds(0);
+ if (fds > 1) { /* too many file descriptors */
+
diff --git a/app-misc/tmux/tmux-3.3a-r1.ebuild b/app-misc/tmux/tmux-3.3a-r1.ebuild
new file mode 100644
index 000000000000..551fa7c7e57d
--- /dev/null
+++ b/app-misc/tmux/tmux-3.3a-r1.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+DESCRIPTION="Terminal multiplexer"
+HOMEPAGE="https://tmux.github.io/"
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ SRC_URI="https://raw.githubusercontent.com/przepompownia/tmux-bash-completion/678a27616b70c649c6701cae9cd8c92b58cc051b/completions/tmux -> tmux-bash-completion-678a27616b70c649c6701cae9cd8c92b58cc051b"
+ EGIT_REPO_URI="https://github.com/tmux/tmux.git"
+else
+ SRC_URI="https://github.com/tmux/tmux/releases/download/${PV}/${P/_/-}.tar.gz"
+ if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+ fi
+ S="${WORKDIR}/${P/_/-}"
+fi
+
+LICENSE="ISC"
+SLOT="0"
+IUSE="debug selinux systemd utempter vim-syntax"
+
+DEPEND="
+ dev-libs/libevent:=
+ sys-libs/ncurses:=
+ systemd? ( sys-apps/systemd:= )
+ utempter? ( sys-libs/libutempter )
+ kernel_Darwin? ( dev-libs/libutf8proc:= )
+"
+
+BDEPEND="
+ virtual/pkgconfig
+ virtual/yacc
+"
+
+RDEPEND="
+ ${DEPEND}
+ selinux? ( sec-policy/selinux-screen )
+ vim-syntax? ( app-vim/vim-tmux )
+"
+
+DOCS=( CHANGES README )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.4-flags.patch
+ "${FILESDIR}"/${P}-clang.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ # bug 438558
+ # 1.7 segfaults when entering copy mode if compiled with -Os
+ replace-flags -Os -O2
+
+ local myeconfargs=(
+ --sysconfdir="${EPREFIX}"/etc
+ $(use_enable debug)
+ $(use_enable systemd)
+ $(use_enable utempter)
+
+ # For now, we only expose this for macOS, because
+ # upstream strongly encourage it. I'm not sure it's
+ # needed on Linux right now.
+ $(use_enable kernel_Darwin utf8proc)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ einstalldocs
+
+ dodoc example_tmux.conf
+ docompress -x /usr/share/doc/${PF}/example_tmux.conf
+}