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