pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

i3: start update to 4.25



Module Name:	pkgsrc-wip
Committed By:	Thomas Klausner <wiz%NetBSD.org@localhost>
Pushed By:	wiz
Date:		Tue Dec 23 00:52:53 2025 +0100
Changeset:	403edd13e122764fdfb89c92799eef57c2420188

Added Files:
	i3/DESCR
	i3/Makefile
	i3/PLIST
	i3/TODO
	i3/buildlink3.mk
	i3/distinfo
	i3/patches/patch-etc_config
	i3/patches/patch-etc_config.keycodes
	i3/patches/patch-meson.build
	i3/patches/patch-src_config.c
	i3/patches/patch-src_log.c

Log Message:
i3: start update to 4.25

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=403edd13e122764fdfb89c92799eef57c2420188

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 i3/DESCR                             |  8 +++++
 i3/Makefile                          | 53 ++++++++++++++++++++++++++++
 i3/PLIST                             | 67 ++++++++++++++++++++++++++++++++++++
 i3/TODO                              |  4 +++
 i3/buildlink3.mk                     | 15 ++++++++
 i3/distinfo                          | 10 ++++++
 i3/patches/patch-etc_config          | 36 +++++++++++++++++++
 i3/patches/patch-etc_config.keycodes | 36 +++++++++++++++++++
 i3/patches/patch-meson.build         | 24 +++++++++++++
 i3/patches/patch-src_config.c        | 17 +++++++++
 i3/patches/patch-src_log.c           | 15 ++++++++
 11 files changed, 285 insertions(+)

diffs:
diff --git a/i3/DESCR b/i3/DESCR
new file mode 100644
index 0000000000..0996ded4a9
--- /dev/null
+++ b/i3/DESCR
@@ -0,0 +1,8 @@
+Key features of i3 are correct implementation of Xinerama (workspaces are
+assigned to virtual screens, i3 does the right thing when attaching new
+monitors), XrandR support (not done yet), horizontal and vertical columns
+(think of a table) in tiling. Also, special focus is on writing clean,
+readable and well documented code. i3 uses xcb for asynchronous
+communication with X11, and has several measures to be very fast.
+
+Please be aware i3 is primarily targeted at advanced users and developers.
diff --git a/i3/Makefile b/i3/Makefile
new file mode 100644
index 0000000000..39a871c186
--- /dev/null
+++ b/i3/Makefile
@@ -0,0 +1,53 @@
+# $NetBSD: Makefile,v 1.64 2025/10/23 20:39:41 wiz Exp $
+
+DISTNAME=	i3-4.25
+CATEGORIES=	wm
+MASTER_SITES=	https://i3wm.org/downloads/
+EXTRACT_SUFX=	.tar.xz
+
+MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=	https://i3wm.org/
+COMMENT=	Improved dynamic tiling window manager
+LICENSE=	modified-bsd
+
+# for i3-save-tree
+DEPENDS+=	p5-AnyEvent-I3>=0.12:../../wm/p5-AnyEvent-I3
+DEPENDS+=	p5-JSON-XS-[0-9]*:../../converters/p5-JSON-XS
+
+GNU_CONFIGURE=	yes
+USE_TOOLS+=	bash pkg-config perl:run
+USE_LANGUAGES=	c
+
+CFLAGS.SunOS+=	-D__EXTENSIONS__
+LDFLAGS.SunOS+=	-lgen -lsocket
+
+EGDIR=		${PREFIX}/share/examples/i3
+OWN_DIRS+=	${PKG_SYSCONFDIR}/i3
+CONF_FILES=	${EGDIR}/config ${PKG_SYSCONFDIR}/i3/config
+CONF_FILES+=	${EGDIR}/config.keycodes ${PKG_SYSCONFDIR}/i3/config.keycodes
+
+REPLACE_PERL+=	i3-dmenu-desktop
+REPLACE_PERL+=	i3-migrate-config-to-v4
+REPLACE_PERL+=	i3-save-tree
+
+post-install:
+	${INSTALL_DATA} ${WRKSRC}/LICENSE ${DESTDIR}${PREFIX}/share/doc/${PKGBASE}
+	${FIND} ${DESTDIR}${PREFIX} -name '*.orig' -exec ${RM} '{}' ';'
+
+.include "../../devel/meson/build.mk"
+.include "../../devel/libev/buildlink3.mk"
+.include "../../devel/pango/buildlink3.mk"
+.include "../../devel/pcre2/buildlink3.mk"
+.include "../../devel/yajl/buildlink3.mk"
+.include "../../graphics/cairo/buildlink3.mk"
+.include "../../x11/libX11/buildlink3.mk"
+.include "../../x11/libXcursor/buildlink3.mk"
+.include "../../x11/libxcb/buildlink3.mk"
+.include "../../x11/libxkbcommon/buildlink3.mk"
+.include "../../x11/startup-notification/buildlink3.mk"
+.include "../../x11/xcb-util/buildlink3.mk"
+.include "../../x11/xcb-util-cursor/buildlink3.mk"
+.include "../../x11/xcb-util-keysyms/buildlink3.mk"
+.include "../../x11/xcb-util-wm/buildlink3.mk"
+.include "../../x11/xcb-util-xrm/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/i3/PLIST b/i3/PLIST
new file mode 100644
index 0000000000..c22d8647b2
--- /dev/null
+++ b/i3/PLIST
@@ -0,0 +1,67 @@
+@comment $NetBSD: PLIST,v 1.8 2023/11/03 08:31:40 wiz Exp $
+bin/i3
+bin/i3-config-wizard
+bin/i3-dmenu-desktop
+bin/i3-dump-log
+bin/i3-input
+bin/i3-migrate-config-to-v4
+bin/i3-msg
+bin/i3-nagbar
+bin/i3-save-tree
+bin/i3-sensible-editor
+bin/i3-sensible-pager
+bin/i3-sensible-terminal
+bin/i3-with-shmlog
+bin/i3bar
+include/i3/ipc.h
+man/man1/i3-config-wizard.1
+man/man1/i3-dmenu-desktop.1
+man/man1/i3-dump-log.1
+man/man1/i3-input.1
+man/man1/i3-migrate-config-to-v4.1
+man/man1/i3-msg.1
+man/man1/i3-nagbar.1
+man/man1/i3-save-tree.1
+man/man1/i3-sensible-editor.1
+man/man1/i3-sensible-pager.1
+man/man1/i3-sensible-terminal.1
+man/man1/i3.1
+man/man1/i3bar.1
+share/applications/i3.desktop
+share/doc/i3/LICENSE
+share/doc/i3/bigpicture.png
+share/doc/i3/debugging.html
+share/doc/i3/gaps1920.png
+share/doc/i3/hacking-howto.html
+share/doc/i3/i3-sync-working.png
+share/doc/i3/i3-sync.png
+share/doc/i3/i3bar-protocol.html
+share/doc/i3/i3bar-workspace-protocol.html
+share/doc/i3/ipc.html
+share/doc/i3/keyboard-layer1.png
+share/doc/i3/keyboard-layer2.png
+share/doc/i3/layout-saving-1.png
+share/doc/i3/layout-saving.html
+share/doc/i3/logo-30.png
+share/doc/i3/modes.png
+share/doc/i3/multi-monitor.html
+share/doc/i3/refcard.html
+share/doc/i3/refcard_style.css
+share/doc/i3/single_terminal.png
+share/doc/i3/snapping.png
+share/doc/i3/testsuite.html
+share/doc/i3/tree-layout1.png
+share/doc/i3/tree-layout2.png
+share/doc/i3/tree-shot1.png
+share/doc/i3/tree-shot2.png
+share/doc/i3/tree-shot3.png
+share/doc/i3/tree-shot4.png
+share/doc/i3/two_columns.png
+share/doc/i3/two_terminals.png
+share/doc/i3/userguide.html
+share/doc/i3/wsbar.html
+share/doc/i3/wsbar.png
+share/examples/i3/config
+share/examples/i3/config.keycodes
+share/xsessions/i3-with-shmlog.desktop
+share/xsessions/i3.desktop
diff --git a/i3/TODO b/i3/TODO
new file mode 100644
index 0000000000..0af66432a7
--- /dev/null
+++ b/i3/TODO
@@ -0,0 +1,4 @@
+Does not build because NetBSD does not provide uselocale().
+
+Reported upstream at
+https://github.com/i3/i3/issues/6567
diff --git a/i3/buildlink3.mk b/i3/buildlink3.mk
new file mode 100644
index 0000000000..29877c048b
--- /dev/null
+++ b/i3/buildlink3.mk
@@ -0,0 +1,15 @@
+# $NetBSD: buildlink3.mk,v 1.4 2022/06/28 11:37:00 wiz Exp $
+
+BUILDLINK_TREE+=	i3
+
+.if !defined(I3_BUILDLINK3_MK)
+I3_BUILDLINK3_MK:=
+
+BUILDLINK_DEPMETHOD.i3?=	build
+BUILDLINK_API_DEPENDS.i3+=	i3>=4.10.1
+BUILDLINK_ABI_DEPENDS.i3?=	i3>=4.20.1nb2
+BUILDLINK_PKGSRCDIR.i3?=	../../wip/i3
+
+.endif	# I3_BUILDLINK3_MK
+
+BUILDLINK_TREE+=	-i3
diff --git a/i3/distinfo b/i3/distinfo
new file mode 100644
index 0000000000..fb485a8f1e
--- /dev/null
+++ b/i3/distinfo
@@ -0,0 +1,10 @@
+$NetBSD: distinfo,v 1.33 2024/11/20 13:15:06 wiz Exp $
+
+BLAKE2s (i3-4.25.tar.xz) = 20fe167cf78466836f8cf3383c29b79712aa687f6a0ada5b4543bd86b0cb1f26
+SHA512 (i3-4.25.tar.xz) = 237f62ccb25b13bd676cca562abe6ba4c65451a02976cd0547ee44c9ed8a5ccd60e90c871e75a625fc6e3cbda1aaa6abfff246293a9b2460ae6bf9ee074bd3fb
+Size (i3-4.25.tar.xz) = 1357280 bytes
+SHA1 (patch-etc_config) = d3f649e8d4dc7cae7eb3c1548fa8d81224e4dacb
+SHA1 (patch-etc_config.keycodes) = 6adde0b3a56576805facd951fa9d32bfd6c88011
+SHA1 (patch-meson.build) = 013ac42f10aeb1ad05b5496f6283878e53506c46
+SHA1 (patch-src_config.c) = 7985366b892f240379daa19d9b7baeddb22f66ee
+SHA1 (patch-src_log.c) = 19b33b43d1716ead4bad36e2afd52ff30af017c1
diff --git a/i3/patches/patch-etc_config b/i3/patches/patch-etc_config
new file mode 100644
index 0000000000..59191290cb
--- /dev/null
+++ b/i3/patches/patch-etc_config
@@ -0,0 +1,36 @@
+$NetBSD: patch-etc_config,v 1.2 2021/09/12 07:22:47 nia Exp $
+
+Useful default volume controls for NetBSD.
+
+--- etc/config.orig	2021-02-27 09:37:58.746645500 +0000
++++ etc/config
+@@ -22,18 +22,22 @@ font pango:monospace 8
+ 
+ # xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
+ # screen before suspend. Use loginctl lock-session to lock your screen.
+-exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
++#exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
+ 
+ # NetworkManager is the most popular way to manage wireless networks on Linux,
+ # and nm-applet is a desktop environment-independent system tray GUI for it.
+-exec --no-startup-id nm-applet
++#exec --no-startup-id nm-applet
+ 
+-# Use pactl to adjust volume in PulseAudio.
++# Use mixerctl to adjust volume in NetBSD.
+ set $refresh_i3status killall -SIGUSR1 i3status
+-bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
+-bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
+-bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
+-bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
++bindsym XF86AudioRaiseVolume exec --no-startup-id mixerctl -w outputs.master+=15 && $refresh_i3status
++bindsym XF86AudioLowerVolume exec --no-startup-id mixerctl -w outputs.master-=15 && $refresh_i3status
++
++# Use pactl to adjust volume in PulseAudio.
++#bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
++#bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
++#bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
++#bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
+ 
+ # use these keys for focus, movement, and resize directions when reaching for
+ # the arrows is not convenient
diff --git a/i3/patches/patch-etc_config.keycodes b/i3/patches/patch-etc_config.keycodes
new file mode 100644
index 0000000000..b67c3a4ba2
--- /dev/null
+++ b/i3/patches/patch-etc_config.keycodes
@@ -0,0 +1,36 @@
+$NetBSD: patch-etc_config.keycodes,v 1.2 2021/09/12 07:22:47 nia Exp $
+
+Useful default volume controls for NetBSD.
+
+--- etc/config.keycodes.orig	2021-02-27 09:37:58.746645500 +0000
++++ etc/config.keycodes
+@@ -23,18 +23,22 @@ font pango:monospace 8
+ 
+ # xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
+ # screen before suspend. Use loginctl lock-session to lock your screen.
+-exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
++#exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
+ 
+ # NetworkManager is the most popular way to manage wireless networks on Linux,
+ # and nm-applet is a desktop environment-independent system tray GUI for it.
+-exec --no-startup-id nm-applet
++#exec --no-startup-id nm-applet
+ 
+-# Use pactl to adjust volume in PulseAudio.
++# Use mixerctl to adjust volume in NetBSD.
+ set $refresh_i3status killall -SIGUSR1 i3status
+-bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
+-bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
+-bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
+-bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
++bindsym XF86AudioRaiseVolume exec --no-startup-id mixerctl -w outputs.master+=5 && $refresh_i3status
++bindsym XF86AudioLowerVolume exec --no-startup-id mixerctl -w outputs.master-=5 && $refresh_i3status
++
++# Use pactl to adjust volume in PulseAudio.
++#bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
++#bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
++#bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
++#bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
+ 
+ # Use Mouse+$mod to drag floating windows to their wanted position
+ floating_modifier $mod
diff --git a/i3/patches/patch-meson.build b/i3/patches/patch-meson.build
new file mode 100644
index 0000000000..6f9f04bbe3
--- /dev/null
+++ b/i3/patches/patch-meson.build
@@ -0,0 +1,24 @@
+$NetBSD: patch-meson.build,v 1.1 2021/09/12 07:22:47 nia Exp $
+
+Install config files to examples, per pkgsrc policy.
+
+--- meson.build.orig	2021-02-27 09:37:58.753311900 +0000
++++ meson.build
+@@ -44,7 +44,7 @@ else
+   cdata.set('PATCH_VERSION', 0)
+ endif
+ cdata.set_quoted('I3_VERSION', '@VCS_TAG@')
+-cdata.set_quoted('SYSCONFDIR', join_paths(get_option('prefix'), get_option('sysconfdir')))
++cdata.set_quoted('SYSCONFDIR', join_paths(get_option('sysconfdir')))
+ 
+ if get_option('b_sanitize').split(',').contains('address')
+   cdata.set('I3_ASAN_ENABLED', 1)
+@@ -580,7 +580,7 @@ install_data(
+ install_subdir(
+   'etc',
+   strip_directory: true,
+-  install_dir: join_paths(get_option('sysconfdir'), 'i3'),
++  install_dir: join_paths(get_option('datadir'), 'examples', 'i3'),
+ )
+ 
+ install_subdir(
diff --git a/i3/patches/patch-src_config.c b/i3/patches/patch-src_config.c
new file mode 100644
index 0000000000..2466b5f314
--- /dev/null
+++ b/i3/patches/patch-src_config.c
@@ -0,0 +1,17 @@
+$NetBSD: patch-src_config.c,v 1.1 2023/11/06 11:08:52 nia Exp $
+
+Include the correct headers for realpath(3), PATH_MAX.
+
+Should help SunOS.
+
+--- src/config.c.orig	2025-12-19 07:19:53.000000000 +0000
++++ src/config.c
+@@ -12,6 +12,8 @@
+ 
+ #include <libgen.h>
+ #include <xkbcommon/xkbcommon.h>
++#include <stdlib.h>
++#include <limits.h>
+ 
+ char *current_configpath = NULL;
+ Config config;
diff --git a/i3/patches/patch-src_log.c b/i3/patches/patch-src_log.c
new file mode 100644
index 0000000000..0316b70764
--- /dev/null
+++ b/i3/patches/patch-src_log.c
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_log.c,v 1.10 2021/11/01 20:42:58 wiz Exp $
+
+- ftruncate() is unimplemented in NetBSD FFS.
+
+--- src/log.c.orig	2021-02-27 09:37:58.756645200 +0000
++++ src/log.c
+@@ -136,7 +136,7 @@ void open_logbuffer(void) {
+         return;
+     }
+ 
+-#if defined(__OpenBSD__) || defined(__APPLE__)
++#if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
+     if (ftruncate(logbuffer_shm, logbuffer_size) == -1) {
+         fprintf(stderr, "Could not ftruncate SHM segment for the i3 log: %s\n", strerror(errno));
+ #else


Home | Main Index | Thread Index | Old Index