mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-08 21:00:05 +02:00
tmux: add recipe for version 2.1
builds but doesn't run
This commit is contained in:
21
app-misc/tmux/licenses/ISC
Normal file
21
app-misc/tmux/licenses/ISC
Normal file
@@ -0,0 +1,21 @@
|
||||
THIS IS FOR INFORMATION ONLY, CODE IS UNDER THE LICENCE AT THE TOP OF ITS FILE.
|
||||
|
||||
The README, CHANGES, FAQ and TODO files are licensed under the ISC
|
||||
license. Files under examples/ remain copyright their authors unless otherwise
|
||||
stated in the file but permission has been received to distribute them with
|
||||
tmux. All other files have a license and copyright notice at their start,
|
||||
typically:
|
||||
|
||||
Copyright (c) <author>
|
||||
|
||||
Permission to use, copy, modify, and distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
|
||||
IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||
OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
321
app-misc/tmux/patches/tmux-2.1.patchset
Normal file
321
app-misc/tmux/patches/tmux-2.1.patchset
Normal file
@@ -0,0 +1,321 @@
|
||||
From c588c45e408ac16a80ffb90d3db22c7b49bcaabc Mon Sep 17 00:00:00 2001
|
||||
From: Sergei Reznikov <diver@gelios.net>
|
||||
Date: Wed, 16 Mar 2016 20:40:09 +0300
|
||||
Subject: Add initial Haiku support based on hpux
|
||||
|
||||
|
||||
diff --git a/b/compat/forkpty-haiku.c b/b/compat/forkpty-haiku.c
|
||||
new file mode 100644
|
||||
index 0000000..6960ee4
|
||||
--- /dev/null
|
||||
+++ b/b/compat/forkpty-haiku.c
|
||||
@@ -0,0 +1,87 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
+ *
|
||||
+ * Permission to use, copy, modify, and distribute this software for any
|
||||
+ * purpose with or without fee is hereby granted, provided that the above
|
||||
+ * copyright notice and this permission notice appear in all copies.
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
+ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
|
||||
+ * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
+ */
|
||||
+
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/ioctl.h>
|
||||
+
|
||||
+#include <fcntl.h>
|
||||
+#include <stdlib.h>
|
||||
+//#include <stropts.h>
|
||||
+#include <unistd.h>
|
||||
+
|
||||
+#include "tmux.h"
|
||||
+
|
||||
+pid_t
|
||||
+forkpty(int *master, char *name, struct termios *tio, struct winsize *ws)
|
||||
+{
|
||||
+ int slave = -1;
|
||||
+ char *path;
|
||||
+ pid_t pid;
|
||||
+
|
||||
+ if ((*master = open("/dev/ptmx", O_RDWR|O_NOCTTY)) == -1)
|
||||
+ return (-1);
|
||||
+ if (grantpt(*master) != 0)
|
||||
+ goto out;
|
||||
+ if (unlockpt(*master) != 0)
|
||||
+ goto out;
|
||||
+
|
||||
+ if ((path = ptsname(*master)) == NULL)
|
||||
+ goto out;
|
||||
+ if (name != NULL)
|
||||
+ strlcpy(name, path, TTY_NAME_MAX);
|
||||
+ if ((slave = open(path, O_RDWR|O_NOCTTY)) == -1)
|
||||
+ goto out;
|
||||
+
|
||||
+ switch (pid = fork()) {
|
||||
+ case -1:
|
||||
+ goto out;
|
||||
+ case 0:
|
||||
+ close(*master);
|
||||
+
|
||||
+ setsid();
|
||||
+#ifdef TIOCSCTTY
|
||||
+ if (ioctl(slave, TIOCSCTTY, NULL) == -1)
|
||||
+ fatal("ioctl failed");
|
||||
+#endif
|
||||
+/*
|
||||
+ if (ioctl(slave, I_PUSH, "ptem") == -1)
|
||||
+ fatal("ioctl failed");
|
||||
+ if (ioctl(slave, I_PUSH, "ldterm") == -1)
|
||||
+ fatal("ioctl failed");
|
||||
+*/
|
||||
+ if (tio != NULL && tcsetattr(slave, TCSAFLUSH, tio) == -1)
|
||||
+ fatal("tcsetattr failed");
|
||||
+ if (ioctl(slave, TIOCSWINSZ, ws) == -1)
|
||||
+ fatal("ioctl failed");
|
||||
+
|
||||
+ dup2(slave, 0);
|
||||
+ dup2(slave, 1);
|
||||
+ dup2(slave, 2);
|
||||
+ if (slave > 2)
|
||||
+ close(slave);
|
||||
+ return (0);
|
||||
+ }
|
||||
+
|
||||
+ close(slave);
|
||||
+ return (pid);
|
||||
+
|
||||
+out:
|
||||
+ if (*master != -1)
|
||||
+ close(*master);
|
||||
+ if (slave != -1)
|
||||
+ close(slave);
|
||||
+ return (-1);
|
||||
+}
|
||||
diff --git a/b/osdep-haiku.c b/b/osdep-haiku.c
|
||||
new file mode 100644
|
||||
index 0000000..4baa6d4
|
||||
--- /dev/null
|
||||
+++ b/b/osdep-haiku.c
|
||||
@@ -0,0 +1,41 @@
|
||||
+/* $OpenBSD$ */
|
||||
+
|
||||
+/*
|
||||
+ * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
+ *
|
||||
+ * Permission to use, copy, modify, and distribute this software for any
|
||||
+ * purpose with or without fee is hereby granted, provided that the above
|
||||
+ * copyright notice and this permission notice appear in all copies.
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
+ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
|
||||
+ * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
+ */
|
||||
+
|
||||
+#include <sys/types.h>
|
||||
+
|
||||
+#include <event.h>
|
||||
+
|
||||
+#include "tmux.h"
|
||||
+
|
||||
+char *
|
||||
+osdep_get_name(unused int fd, unused char *tty)
|
||||
+{
|
||||
+ return (NULL);
|
||||
+}
|
||||
+
|
||||
+char *
|
||||
+osdep_get_cwd(unused int fd)
|
||||
+{
|
||||
+ return (NULL);
|
||||
+}
|
||||
+
|
||||
+struct event_base *
|
||||
+osdep_event_init(void)
|
||||
+{
|
||||
+ return (event_init());
|
||||
+}
|
||||
diff --git a/compat/forkpty-haiku.c b/compat/forkpty-haiku.c
|
||||
new file mode 100644
|
||||
index 0000000..6960ee4
|
||||
--- /dev/null
|
||||
+++ b/compat/forkpty-haiku.c
|
||||
@@ -0,0 +1,87 @@
|
||||
+/*
|
||||
+ * Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
+ *
|
||||
+ * Permission to use, copy, modify, and distribute this software for any
|
||||
+ * purpose with or without fee is hereby granted, provided that the above
|
||||
+ * copyright notice and this permission notice appear in all copies.
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
+ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
|
||||
+ * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
+ */
|
||||
+
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/ioctl.h>
|
||||
+
|
||||
+#include <fcntl.h>
|
||||
+#include <stdlib.h>
|
||||
+//#include <stropts.h>
|
||||
+#include <unistd.h>
|
||||
+
|
||||
+#include "tmux.h"
|
||||
+
|
||||
+pid_t
|
||||
+forkpty(int *master, char *name, struct termios *tio, struct winsize *ws)
|
||||
+{
|
||||
+ int slave = -1;
|
||||
+ char *path;
|
||||
+ pid_t pid;
|
||||
+
|
||||
+ if ((*master = open("/dev/ptmx", O_RDWR|O_NOCTTY)) == -1)
|
||||
+ return (-1);
|
||||
+ if (grantpt(*master) != 0)
|
||||
+ goto out;
|
||||
+ if (unlockpt(*master) != 0)
|
||||
+ goto out;
|
||||
+
|
||||
+ if ((path = ptsname(*master)) == NULL)
|
||||
+ goto out;
|
||||
+ if (name != NULL)
|
||||
+ strlcpy(name, path, TTY_NAME_MAX);
|
||||
+ if ((slave = open(path, O_RDWR|O_NOCTTY)) == -1)
|
||||
+ goto out;
|
||||
+
|
||||
+ switch (pid = fork()) {
|
||||
+ case -1:
|
||||
+ goto out;
|
||||
+ case 0:
|
||||
+ close(*master);
|
||||
+
|
||||
+ setsid();
|
||||
+#ifdef TIOCSCTTY
|
||||
+ if (ioctl(slave, TIOCSCTTY, NULL) == -1)
|
||||
+ fatal("ioctl failed");
|
||||
+#endif
|
||||
+/*
|
||||
+ if (ioctl(slave, I_PUSH, "ptem") == -1)
|
||||
+ fatal("ioctl failed");
|
||||
+ if (ioctl(slave, I_PUSH, "ldterm") == -1)
|
||||
+ fatal("ioctl failed");
|
||||
+*/
|
||||
+ if (tio != NULL && tcsetattr(slave, TCSAFLUSH, tio) == -1)
|
||||
+ fatal("tcsetattr failed");
|
||||
+ if (ioctl(slave, TIOCSWINSZ, ws) == -1)
|
||||
+ fatal("ioctl failed");
|
||||
+
|
||||
+ dup2(slave, 0);
|
||||
+ dup2(slave, 1);
|
||||
+ dup2(slave, 2);
|
||||
+ if (slave > 2)
|
||||
+ close(slave);
|
||||
+ return (0);
|
||||
+ }
|
||||
+
|
||||
+ close(slave);
|
||||
+ return (pid);
|
||||
+
|
||||
+out:
|
||||
+ if (*master != -1)
|
||||
+ close(*master);
|
||||
+ if (slave != -1)
|
||||
+ close(slave);
|
||||
+ return (-1);
|
||||
+}
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 93aae20..38cfdae 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -503,6 +503,10 @@ case "$host_os" in
|
||||
PLATFORM=sunos
|
||||
MANFORMAT=man
|
||||
;;
|
||||
+ *haiku*)
|
||||
+ AC_MSG_RESULT(haiku)
|
||||
+ PLATFORM=haiku
|
||||
+ ;;
|
||||
*hpux*)
|
||||
AC_MSG_RESULT(hpux)
|
||||
PLATFORM=hpux
|
||||
diff --git a/osdep-haiku.c b/osdep-haiku.c
|
||||
new file mode 100644
|
||||
index 0000000..4baa6d4
|
||||
--- /dev/null
|
||||
+++ b/osdep-haiku.c
|
||||
@@ -0,0 +1,41 @@
|
||||
+/* $OpenBSD$ */
|
||||
+
|
||||
+/*
|
||||
+ * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||
+ *
|
||||
+ * Permission to use, copy, modify, and distribute this software for any
|
||||
+ * purpose with or without fee is hereby granted, provided that the above
|
||||
+ * copyright notice and this permission notice appear in all copies.
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
+ * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER
|
||||
+ * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
|
||||
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
+ */
|
||||
+
|
||||
+#include <sys/types.h>
|
||||
+
|
||||
+#include <event.h>
|
||||
+
|
||||
+#include "tmux.h"
|
||||
+
|
||||
+char *
|
||||
+osdep_get_name(unused int fd, unused char *tty)
|
||||
+{
|
||||
+ return (NULL);
|
||||
+}
|
||||
+
|
||||
+char *
|
||||
+osdep_get_cwd(unused int fd)
|
||||
+{
|
||||
+ return (NULL);
|
||||
+}
|
||||
+
|
||||
+struct event_base *
|
||||
+osdep_event_init(void)
|
||||
+{
|
||||
+ return (event_init());
|
||||
+}
|
||||
diff --git a/tty.c b/tty.c
|
||||
index 7be952c..56334e8 100644
|
||||
--- a/tty.c
|
||||
+++ b/tty.c
|
||||
@@ -198,7 +198,11 @@ tty_init_termios(int fd, struct termios *orig_tio, struct bufferevent *bufev)
|
||||
bufferevent_enable(bufev, EV_READ|EV_WRITE);
|
||||
|
||||
memcpy(&tio, orig_tio, sizeof tio);
|
||||
- tio.c_iflag &= ~(IXON|IXOFF|ICRNL|INLCR|IGNCR|IMAXBEL|ISTRIP);
|
||||
+ tio.c_iflag &= ~(IXON|IXOFF|ICRNL|INLCR|IGNCR
|
||||
+ #ifndef __HAIKU__
|
||||
+ |IMAXBEL
|
||||
+ #endif
|
||||
+ |ISTRIP);
|
||||
tio.c_iflag |= IGNBRK;
|
||||
tio.c_oflag &= ~(OPOST|ONLCR|OCRNL|ONLRET);
|
||||
tio.c_lflag &= ~(IEXTEN|ICANON|ECHO|ECHOE|ECHONL|ECHOCTL|
|
||||
--
|
||||
2.7.0
|
||||
|
||||
56
app-misc/tmux/tmux-2.1.recipe
Normal file
56
app-misc/tmux/tmux-2.1.recipe
Normal file
@@ -0,0 +1,56 @@
|
||||
SUMMARY="A terminal multiplexer"
|
||||
DESCRIPTION="tmux is a \"terminal multiplexer\", it enables a number of \
|
||||
terminals (or windows) to be accessed and controlled from a single terminal. \
|
||||
tmux is intended to be a simple, modern, BSD-licensed alternative to programs \
|
||||
such as GNU screen."
|
||||
HOMEPAGE="http://tmux.github.io/"
|
||||
COPYRIGHT="2015 tmux team"
|
||||
LICENSE="ISC"
|
||||
SOURCE_URI="https://github.com/tmux/tmux/releases/download/$portVersion/tmux-$portVersion.tar.gz"
|
||||
CHECKSUM_SHA256="31564e7bf4bcef2defb3cb34b9e596bd43a3937cad9e5438701a81a5a9af6176"
|
||||
REVISION="1"
|
||||
|
||||
PATCHES="tmux-$portVersion.patchset"
|
||||
|
||||
ARCHITECTURES="!x86_gcc2 ?x86 ?x86_64"
|
||||
SECONDARY_ARCHITECTURES="x86"
|
||||
|
||||
PROVIDES="
|
||||
tmux$secondaryArchSuffix = $portVersion
|
||||
cmd:tmux$secondaryArchSuffix = $portVersion
|
||||
"
|
||||
REQUIRES="
|
||||
haiku$secondaryArchSuffix
|
||||
lib:libncurses$secondaryArchSuffix
|
||||
lib:libevent$secondaryArchSuffix
|
||||
"
|
||||
|
||||
BUILD_REQUIRES="
|
||||
haiku${secondaryArchSuffix}_devel
|
||||
devel:libncurses$secondaryArchSuffix
|
||||
devel:libevent$secondaryArchSuffix
|
||||
"
|
||||
BUILD_PREREQUIRES="
|
||||
cmd:aclocal
|
||||
cmd:autom4te
|
||||
cmd:awk
|
||||
cmd:make
|
||||
cmd:gcc$secondaryArchSuffix
|
||||
cmd:pkg_config$secondaryArchSuffix
|
||||
"
|
||||
|
||||
PATCH()
|
||||
{
|
||||
sed -i 's/-lresolv/-lnetwork/g' configure*
|
||||
}
|
||||
|
||||
BUILD()
|
||||
{
|
||||
runConfigure ./configure
|
||||
make $jobArgs
|
||||
}
|
||||
|
||||
INSTALL()
|
||||
{
|
||||
make install
|
||||
}
|
||||
Reference in New Issue
Block a user