pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/wayland/foot
Module Name: pkgsrc
Committed By: kikadf
Date: Tue Apr 14 12:11:49 UTC 2026
Added Files:
pkgsrc/wayland/foot: DESCR Makefile PLIST distinfo
pkgsrc/wayland/foot/patches: patch-char32.c patch-config.c
patch-meson.build patch-server.c patch-slave.c
patch-utils_xtgettcap.c
Log Message:
foot: new package
foot is a fast, lightweight and minimalistic Wayland terminal emulator.
Features:
- Fast
- Lightweight, in dependencies, on-disk and in-memory
- Wayland native
- DE agnostic
- Server/daemon mode
- User configurable font fallback
- On-the-fly font resize
- On-the-fly DPI font size adjustment
- Scrollback search
- Keyboard driven URL detection
- Color emoji support
- IME (via text-input-v3)
- Multi-seat
- True Color (24bpp)
- Synchronized Updates support
- Sixel image support
To generate a diff of this commit:
cvs rdiff -u -r0 -r1.1 pkgsrc/wayland/foot/DESCR pkgsrc/wayland/foot/Makefile \
pkgsrc/wayland/foot/PLIST pkgsrc/wayland/foot/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/wayland/foot/patches/patch-char32.c \
pkgsrc/wayland/foot/patches/patch-config.c \
pkgsrc/wayland/foot/patches/patch-meson.build \
pkgsrc/wayland/foot/patches/patch-server.c \
pkgsrc/wayland/foot/patches/patch-slave.c \
pkgsrc/wayland/foot/patches/patch-utils_xtgettcap.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Added files:
Index: pkgsrc/wayland/foot/DESCR
diff -u /dev/null pkgsrc/wayland/foot/DESCR:1.1
--- /dev/null Tue Apr 14 12:11:49 2026
+++ pkgsrc/wayland/foot/DESCR Tue Apr 14 12:11:48 2026
@@ -0,0 +1,20 @@
+foot is a fast, lightweight and minimalistic Wayland terminal emulator.
+
+Features:
+
+- Fast
+- Lightweight, in dependencies, on-disk and in-memory
+- Wayland native
+- DE agnostic
+- Server/daemon mode
+- User configurable font fallback
+- On-the-fly font resize
+- On-the-fly DPI font size adjustment
+- Scrollback search
+- Keyboard driven URL detection
+- Color emoji support
+- IME (via text-input-v3)
+- Multi-seat
+- True Color (24bpp)
+- Synchronized Updates support
+- Sixel image support
Index: pkgsrc/wayland/foot/Makefile
diff -u /dev/null pkgsrc/wayland/foot/Makefile:1.1
--- /dev/null Tue Apr 14 12:11:49 2026
+++ pkgsrc/wayland/foot/Makefile Tue Apr 14 12:11:48 2026
@@ -0,0 +1,36 @@
+# $NetBSD: Makefile,v 1.1 2026/04/14 12:11:48 kikadf Exp $
+
+DISTNAME= foot-1.25.0
+CATEGORIES= wayland
+MASTER_SITES= https://codeberg.org/dnkl/foot/releases/download/${PKGVERSION_NOREV}/
+
+MAINTAINER= bsiegert%NetBSD.org@localhost
+HOMEPAGE= https://codeberg.org/dnkl/foot/
+COMMENT= Terminal for Wayland
+LICENSE= mit
+
+USE_TOOLS+= pkg-config
+
+MESON_ARGS+= -Dtests=false
+MESON_ARGS+= -Dterminfo=disabled
+
+EGDIR= ${PREFIX}/share/examples/foot
+OWN_DIRS+= ${PKG_SYSCONFDIR}/xdg/foot
+CONF_FILES= ${EGDIR}/foot.ini ${PKG_SYSCONFDIR}/xdg/foot/foot.ini
+
+.include "../../devel/meson/build.mk"
+.include "../../textproc/scdoc/tool.mk"
+.include "../../converters/utf8proc/buildlink3.mk"
+CFLAGS+= -I${BUILDLINK_PREFIX.libepoll-shim}/include/libepoll-shim
+.include "../../devel/libepoll-shim/buildlink3.mk"
+.include "../../devel/wayland/buildlink3.mk"
+.include "../../devel/wayland-protocols/buildlink3.mk"
+.include "../../fonts/fontconfig/buildlink3.mk"
+.include "../../graphics/hicolor-icon-theme/buildlink3.mk"
+#.include "../../lang/python/application.mk"
+.include "../../fonts/fcft/buildlink3.mk"
+.include "../../devel/tllist/buildlink3.mk"
+.include "../../devel/input-headers/buildlink3.mk"
+.include "../../x11/pixman/buildlink3.mk"
+.include "../../x11/libxkbcommon/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/wayland/foot/PLIST
diff -u /dev/null pkgsrc/wayland/foot/PLIST:1.1
--- /dev/null Tue Apr 14 12:11:49 2026
+++ pkgsrc/wayland/foot/PLIST Tue Apr 14 12:11:48 2026
@@ -0,0 +1,106 @@
+@comment $NetBSD: PLIST,v 1.1 2026/04/14 12:11:48 kikadf Exp $
+bin/foot
+bin/footclient
+man/man1/foot.1
+man/man1/footclient.1
+man/man5/foot.ini.5
+man/man7/foot-ctlseqs.7
+share/applications/foot-server.desktop
+share/applications/foot.desktop
+share/applications/footclient.desktop
+share/bash-completion/completions/foot
+share/bash-completion/completions/footclient
+share/doc/foot/CHANGELOG.md
+share/doc/foot/LICENSE
+share/doc/foot/README.md
+share/examples/foot/foot.ini
+share/fish/vendor_completions.d/foot.fish
+share/fish/vendor_completions.d/footclient.fish
+share/foot/themes/aeroroot
+share/foot/themes/alacritty
+share/foot/themes/apprentice
+share/foot/themes/ayu-mirage
+share/foot/themes/catppuccin-frappe
+share/foot/themes/catppuccin-latte
+share/foot/themes/catppuccin-macchiato
+share/foot/themes/catppuccin-mocha
+share/foot/themes/chiba-dark
+share/foot/themes/derp
+share/foot/themes/deus
+share/foot/themes/dracula
+share/foot/themes/dracula-iterm
+share/foot/themes/electrophoretic
+share/foot/themes/gruvbox
+share/foot/themes/gruvbox-dark
+share/foot/themes/gruvbox-light
+share/foot/themes/hacktober
+share/foot/themes/iterm
+share/foot/themes/jetbrains-darcula
+share/foot/themes/kitty
+share/foot/themes/material-amber
+share/foot/themes/material-design
+share/foot/themes/modus-operandi
+share/foot/themes/modus-vivendi
+share/foot/themes/modus-vivendi-tinted
+share/foot/themes/molokai
+share/foot/themes/monokai-pro
+share/foot/themes/moonfly
+share/foot/themes/neon
+share/foot/themes/night-owl
+share/foot/themes/nightfly
+share/foot/themes/noirblaze
+share/foot/themes/nord
+share/foot/themes/nordiq
+share/foot/themes/nvim
+share/foot/themes/nvim-dark
+share/foot/themes/nvim-light
+share/foot/themes/onedark
+share/foot/themes/onehalf-dark
+share/foot/themes/panda
+share/foot/themes/paper-color
+share/foot/themes/paper-color-dark
+share/foot/themes/paper-color-light
+share/foot/themes/poimandres
+share/foot/themes/rezza
+share/foot/themes/rose-pine
+share/foot/themes/rose-pine-dawn
+share/foot/themes/rose-pine-moon
+share/foot/themes/selenized
+share/foot/themes/selenized-black
+share/foot/themes/selenized-dark
+share/foot/themes/selenized-light
+share/foot/themes/selenized-white
+share/foot/themes/solarized
+share/foot/themes/solarized-dark
+share/foot/themes/solarized-dark-normal-brights
+share/foot/themes/solarized-light
+share/foot/themes/solarized-normal-brights
+share/foot/themes/srcery
+share/foot/themes/starlight
+share/foot/themes/tango
+share/foot/themes/tempus-autumn
+share/foot/themes/tempus-classic
+share/foot/themes/tempus-dawn
+share/foot/themes/tempus-day
+share/foot/themes/tempus-dusk
+share/foot/themes/tempus-fugit
+share/foot/themes/tempus-future
+share/foot/themes/tempus-night
+share/foot/themes/tempus-past
+share/foot/themes/tempus-rift
+share/foot/themes/tempus-spring
+share/foot/themes/tempus-summer
+share/foot/themes/tempus-tempest
+share/foot/themes/tempus-totus
+share/foot/themes/tempus-warp
+share/foot/themes/tempus-winter
+share/foot/themes/tokyonight-light
+share/foot/themes/tokyonight-night
+share/foot/themes/tokyonight-storm
+share/foot/themes/visibone
+share/foot/themes/xterm
+share/foot/themes/zenburn
+share/icons/hicolor/48x48/apps/foot.png
+share/icons/hicolor/scalable/apps/foot.svg
+share/zsh/site-functions/_foot
+share/zsh/site-functions/_footclient
Index: pkgsrc/wayland/foot/distinfo
diff -u /dev/null pkgsrc/wayland/foot/distinfo:1.1
--- /dev/null Tue Apr 14 12:11:49 2026
+++ pkgsrc/wayland/foot/distinfo Tue Apr 14 12:11:48 2026
@@ -0,0 +1,11 @@
+$NetBSD: distinfo,v 1.1 2026/04/14 12:11:48 kikadf Exp $
+
+BLAKE2s (foot-1.25.0.tar.gz) = 19c79d76e58c0e4d024a4fea3658d7790d813cb42b9f1ab498693391cb2b9ab5
+SHA512 (foot-1.25.0.tar.gz) = 2b8d9070e9cf9c36bc481ff927a0df0619c1c0aae9d7e654b841b98b016149bcb667a46ae7c270c5b166f108edc6700246d275152e4d399cf36505e861fbaeba
+Size (foot-1.25.0.tar.gz) = 621034 bytes
+SHA1 (patch-char32.c) = 833e1f2e6d7cbd9985bb5307bb0b097e5c26b4ef
+SHA1 (patch-config.c) = f3639ee869c2a667f66bf10880b9fab2f5e35c73
+SHA1 (patch-meson.build) = ed84dfab137e9a0be7d464d5f78b8dcbe94956f8
+SHA1 (patch-server.c) = 2d27b2c391e3c624ef6573faca641050549f5966
+SHA1 (patch-slave.c) = 7ed9560294fbbecfca49f4c09e6617fa7e8f131d
+SHA1 (patch-utils_xtgettcap.c) = c19b19367a863fae012b15b447d2389671ddd90d
Index: pkgsrc/wayland/foot/patches/patch-char32.c
diff -u /dev/null pkgsrc/wayland/foot/patches/patch-char32.c:1.1
--- /dev/null Tue Apr 14 12:11:49 2026
+++ pkgsrc/wayland/foot/patches/patch-char32.c Tue Apr 14 12:11:48 2026
@@ -0,0 +1,16 @@
+$NetBSD: patch-char32.c,v 1.1 2026/04/14 12:11:48 kikadf Exp $
+
+* Add NetBSD support
+
+--- char32.c.orig 2026-02-05 16:00:31.082232514 +0000
++++ char32.c
+@@ -34,7 +34,8 @@ _Static_assert(
+ #if !defined(__STDC_UTF_32__) || !__STDC_UTF_32__
+ #error "char32_t does not use UTF-32"
+ #endif
+-#if (!defined(__STDC_ISO_10646__) || !__STDC_ISO_10646__) && !defined(__FreeBSD__)
++#if (!defined(__STDC_ISO_10646__) || !__STDC_ISO_10646__) && !defined(__FreeBSD__) && \
++ !defined(__NetBSD__)
+ #error "wchar_t does not use UTF-32"
+ #endif
+
Index: pkgsrc/wayland/foot/patches/patch-config.c
diff -u /dev/null pkgsrc/wayland/foot/patches/patch-config.c:1.1
--- /dev/null Tue Apr 14 12:11:49 2026
+++ pkgsrc/wayland/foot/patches/patch-config.c Tue Apr 14 12:11:48 2026
@@ -0,0 +1,107 @@
+$NetBSD: patch-config.c,v 1.1 2026/04/14 12:11:48 kikadf Exp $
+
+* Fix ctype usage
+
+--- config.c.orig 2026-02-05 16:28:45.447020587 +0000
++++ config.c
+@@ -755,7 +755,7 @@ value_to_fonts(struct context *ctx)
+ font = strtok(NULL, ","))
+ {
+ /* Trim spaces, strictly speaking not necessary, but looks nice :) */
+- while (isspace(font[0]))
++ while (isspace((unsigned char)font[0]))
+ font++;
+
+ if (font[0] == '\0')
+@@ -1374,7 +1374,7 @@ parse_color_theme(struct context *ctx, s
+ uint8_t last_digit = (unsigned char)key[key_len - 1] - '0';
+ uint32_t *color = NULL;
+
+- if (isdigit(key[0])) {
++ if (isdigit((unsigned char)key[0])) {
+ unsigned long index;
+ if (!str_to_ulong(key, 0, &index) || index >= ALEN(theme->table)) {
+ LOG_CONTEXTUAL_ERR(
+@@ -2188,7 +2188,7 @@ pipe_argv_from_value(struct context *ctx
+
+ ssize_t remove_len = pipe_cmd_end + 1 - ctx->value;
+ ctx->value = pipe_cmd_end + 1;
+- while (isspace(*ctx->value)) {
++ while (isspace((unsigned char)*ctx->value)) {
+ ctx->value++;
+ remove_len++;
+ }
+@@ -2216,7 +2216,7 @@ regex_name_from_value(struct context *ct
+
+ ssize_t remove_len = regex_end + 1 - ctx->value;
+ ctx->value = regex_end + 1;
+- while (isspace(*ctx->value)) {
++ while (isspace((unsigned char)*ctx->value)) {
+ ctx->value++;
+ remove_len++;
+ }
+@@ -2890,7 +2890,7 @@ parse_key_value(char *kv, char **section
+ bool section_is_needed = section != NULL;
+
+ /* Strip leading whitespace */
+- while (isspace(kv[0]))
++ while (isspace((unsigned char)kv[0]))
+ ++kv;
+
+ if (section_is_needed)
+@@ -2905,7 +2905,7 @@ parse_key_value(char *kv, char **section
+ size_t kvlen = strlen(kv);
+
+ /* Strip trailing whitespace */
+- while (isspace(kv[kvlen - 1]))
++ while (isspace((unsigned char)kv[kvlen - 1]))
+ kvlen--;
+ kv[kvlen] = '\0';
+
+@@ -2932,16 +2932,16 @@ parse_key_value(char *kv, char **section
+
+ /* Strip trailing whitespace from key (leading stripped earlier) */
+ {
+- xassert(!isspace(*key[0]));
++ xassert(!isspace((unsigned char)*key[0]));
+
+ char *end = (char *)*key + strlen(*key) - 1;
+- while (isspace(end[0]))
++ while (isspace((unsigned char)end[0]))
+ end--;
+ end[1] = '\0';
+ }
+
+ /* Strip leading whitespace from value (trailing stripped earlier) */
+- while (isspace(*value[0]))
++ while (isspace((unsigned char)*value[0]))
+ ++*value;
+
+ return true;
+@@ -3073,7 +3073,7 @@ parse_config_file(FILE *f, struct config
+ char *line = _line;
+
+ /* Strip leading whitespace */
+- while (isspace(line[0])) {
++ while (isspace((unsigned char)line[0])) {
+ line++;
+ len--;
+ }
+@@ -3091,7 +3091,7 @@ parse_config_file(FILE *f, struct config
+ char *kv_trailing = &line[len - 1];
+ char *comment = &line[1];
+ while (comment[1] != '\0') {
+- if (isblank(comment[0]) && comment[1] == '#') {
++ if (isblank((unsigned char)comment[0]) && comment[1] == '#') {
+ comment[1] = '\0'; /* Terminate key/value pair */
+ kv_trailing = comment++;
+ break;
+@@ -3101,7 +3101,7 @@ parse_config_file(FILE *f, struct config
+ comment++;
+
+ /* Strip trailing whitespace */
+- while (isspace(kv_trailing[0]))
++ while (isspace((unsigned char)kv_trailing[0]))
+ kv_trailing--;
+ kv_trailing[1] = '\0';
+
Index: pkgsrc/wayland/foot/patches/patch-meson.build
diff -u /dev/null pkgsrc/wayland/foot/patches/patch-meson.build:1.1
--- /dev/null Tue Apr 14 12:11:49 2026
+++ pkgsrc/wayland/foot/patches/patch-meson.build Tue Apr 14 12:11:49 2026
@@ -0,0 +1,15 @@
+$NetBSD: patch-meson.build,v 1.1 2026/04/14 12:11:49 kikadf Exp $
+
+* Install config file to examples
+
+--- meson.build.orig 2026-02-06 09:47:48.610608225 +0000
++++ meson.build
+@@ -373,7 +373,7 @@ if systemd.found() or custom_systemd_uni
+ endif
+
+ scdoc = dependency('scdoc', native: true, required: get_option('docs'))
+-install_data('foot.ini', install_dir: join_paths(get_option('sysconfdir'), 'xdg', 'foot'))
++install_data('foot.ini', install_dir: join_paths(get_option('datadir'), 'examples', 'foot'))
+ if scdoc.found()
+ install_data(
+ 'LICENSE', 'README.md', 'CHANGELOG.md',
Index: pkgsrc/wayland/foot/patches/patch-server.c
diff -u /dev/null pkgsrc/wayland/foot/patches/patch-server.c:1.1
--- /dev/null Tue Apr 14 12:11:49 2026
+++ pkgsrc/wayland/foot/patches/patch-server.c Tue Apr 14 12:11:49 2026
@@ -0,0 +1,34 @@
+$NetBSD: patch-server.c,v 1.1 2026/04/14 12:11:49 kikadf Exp $
+
+* Fix prepare_socket() without SO_DOMAIN
+
+--- server.c.orig 2026-02-06 08:28:05.607636888 +0000
++++ server.c
+@@ -527,9 +527,27 @@ prepare_socket(int fd)
+ return false;
+ }
+
++#ifndef SO_DOMAIN
++ struct sockaddr_storage ss;
++ socklen_t l = sizeof(ss);
++ if (getsockname(fd, (struct sockaddr*)&ss, &l) == -1) {
++ LOG_ERRNO("getsockname failed on passed file descriptor");
++ return false;
++ }
++ if (ss.ss_family != AF_UNIX) {
++ LOG_ERR("wrong socket domain: expected AF_UNIX, got %d",
++ ss.ss_family);
++ return false;
++ }
++
++ int const socket_options[] = { SO_ACCEPTCONN, SO_TYPE };
++ int const socket_options_values[] = { NON_ZERO_OPT, SOCK_STREAM};
++ char const * const socket_options_names[] = { "SO_ACCEPTCONN", "SO_TYPE" };
++#else
+ int const socket_options[] = { SO_DOMAIN, SO_ACCEPTCONN, SO_TYPE };
+ int const socket_options_values[] = { AF_UNIX, NON_ZERO_OPT, SOCK_STREAM};
+ char const * const socket_options_names[] = { "SO_DOMAIN", "SO_ACCEPTCONN", "SO_TYPE" };
++#endif
+
+ xassert(ALEN(socket_options) == ALEN(socket_options_values));
+ xassert(ALEN(socket_options) == ALEN(socket_options_names));
Index: pkgsrc/wayland/foot/patches/patch-slave.c
diff -u /dev/null pkgsrc/wayland/foot/patches/patch-slave.c:1.1
--- /dev/null Tue Apr 14 12:11:49 2026
+++ pkgsrc/wayland/foot/patches/patch-slave.c Tue Apr 14 12:11:49 2026
@@ -0,0 +1,20 @@
+$NetBSD: patch-slave.c,v 1.1 2026/04/14 12:11:49 kikadf Exp $
+
+* Fix ctype usage
+
+--- slave.c.orig 2026-02-06 09:11:40.270730099 +0000
++++ slave.c
+@@ -108,11 +108,11 @@ is_valid_shell(const char *shell)
+
+ char *line = _line;
+ {
+- while (isspace(*line))
++ while (isspace((unsigned char)*line))
+ line++;
+ if (line[0] != '\0') {
+ char *end = line + strlen(line) - 1;
+- while (isspace(*end))
++ while (isspace((unsigned char)*end))
+ end--;
+ *(end + 1) = '\0';
+ }
Index: pkgsrc/wayland/foot/patches/patch-utils_xtgettcap.c
diff -u /dev/null pkgsrc/wayland/foot/patches/patch-utils_xtgettcap.c:1.1
--- /dev/null Tue Apr 14 12:11:49 2026
+++ pkgsrc/wayland/foot/patches/patch-utils_xtgettcap.c Tue Apr 14 12:11:49 2026
@@ -0,0 +1,24 @@
+$NetBSD: patch-utils_xtgettcap.c,v 1.1 2026/04/14 12:11:49 kikadf Exp $
+
+* Fix ctype usage
+
+--- utils/xtgettcap.c.orig 2026-02-06 09:32:13.200532969 +0000
++++ utils/xtgettcap.c
+@@ -100,7 +100,7 @@ main(int argc, const char *const *argv)
+ printf("reply: (%zd chars): ", count);
+
+ for (size_t i = 0; i < (size_t)count; i++) {
+- if (isprint(buf[i]))
++ if (isprint((unsigned char)buf[i]))
+ printf("%c", buf[i]);
+ else if (buf[i] == '\033')
+ printf("\033[1;31m<ESC>\033[m");
+@@ -161,7 +161,7 @@ main(int argc, const char *const *argv)
+
+ printf(" \033[%dm", color);
+ for (size_t i = 0 ; i < len; i++) {
+- if (isprint(decoded[i])) {
++ if (isprint((unsigned char)decoded[i])) {
+ /* All printable characters */
+ printf("%c", decoded[i]);
+ }
Home |
Main Index |
Thread Index |
Old Index