diff --git a/recipes/wip/x11/xterm/recipe.toml b/recipes/wip/x11/xterm/recipe.toml new file mode 100644 index 000000000..0158180c6 --- /dev/null +++ b/recipes/wip/x11/xterm/recipe.toml @@ -0,0 +1,39 @@ +[source] +tar = "https://invisible-island.net/archives/xterm/xterm-398.tgz" +blake3 = "c42112586b2c231681db9327df9d797953469e3b7cb2abe93b8f3f821597d528" +patches = ["redox.patch"] + +[build] +dependencies = [ + "expat", + "fontconfig", + "freetype2", + "libice", + "libpng", + "libpthread-stubs", + "libsm", + "libx11", + "libxau", + "libxaw", + "libxcb", + "libxext", + "libxft", + "libxmu", + "libxpm", + "libxrender", + "libxt", + "ncurses", + "pcre2", + "x11proto", + "zlib", +] +template = "custom" +script = """ +DYNAMIC_INIT +export CFLAGS="-I${COOKBOOK_SYSROOT}/usr/include/freetype2" +#TODO: why are LIBS not automatic? +export LIBS="-lXaw7 -lXmu -lXpm -lXt -lSM -lICE -lXft -lfreetype -lfontconfig -lXrender -lXext -lX11 -lxcb -lXau -lpcre2-8 -lexpat -lpng -lz" +cookbook_configure \ + --with-pcre2 \ + cf_cv_func_setitimer=no +""" diff --git a/recipes/wip/x11/xterm/redox.patch b/recipes/wip/x11/xterm/redox.patch new file mode 100644 index 000000000..6326c626d --- /dev/null +++ b/recipes/wip/x11/xterm/redox.patch @@ -0,0 +1,58 @@ +diff -ruwN xterm-398/main.c source/main.c +--- xterm-398/main.c 2025-03-08 06:03:19.000000000 -0700 ++++ source/main.c 2025-05-05 20:51:10.249419667 -0600 +@@ -162,6 +162,10 @@ + #define USE_POSIX_SIGNALS + #endif + ++#ifndef XTABS ++#define XTABS 0x01800 ++#endif ++ + #if defined(SYSV) && !defined(SVR4) && !defined(ISC22) && !defined(ISC30) + /* older SYSV systems cannot ignore SIGHUP. + Shell hangs, or you get extra shells, or something like that */ +@@ -185,6 +189,10 @@ + #define WTMP + #endif + ++#ifdef __redox__ ++#define USE_SYSV_PGRP ++#endif ++ + #ifdef __SCO__ + #ifndef _SVID3 + #define _SVID3 +diff -ruwN xterm-398/xterm.h source/xterm.h +--- xterm-398/xterm.h 2025-04-08 01:36:09.000000000 -0600 ++++ source/xterm.h 2025-05-05 20:10:18.830478495 -0600 +@@ -80,7 +80,7 @@ + #define HAVE_PUTENV 1 + #endif + +-#if defined(CSRG_BASED) || defined(__GNU__) || defined(__minix) ++#if defined(CSRG_BASED) || defined(__GNU__) || defined(__minix) || defined(__redox__) + #define USE_POSIX_TERMIOS 1 + #endif + +@@ -208,7 +208,7 @@ + #define HAVE_PTY_H + #endif + +-#if !defined(USG) && !defined(__minix) ++#if !defined(USG) && !defined(__minix) && !defined(__redox__) + #define HAVE_SETITIMER 1 + #else + #define HAVE_SETITIMER 0 +diff -ruwN xterm-398/xterm_io.h source/xterm_io.h +--- xterm-398/xterm_io.h 2024-09-30 02:03:20.000000000 -0600 ++++ source/xterm_io.h 2025-05-05 20:14:21.528656084 -0600 +@@ -57,7 +57,7 @@ + #define USE_SYSV_TERMIO + #endif + +-#if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__INTERIX) || defined(__APPLE__) || defined(__UNIXWARE__) || defined(__hpux) ++#if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__INTERIX) || defined(__APPLE__) || defined(__UNIXWARE__) || defined(__hpux) || defined(__redox__) + #ifndef USE_POSIX_TERMIOS + #define USE_POSIX_TERMIOS + #endif