summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 03:34:56 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 03:34:56 +0000
commit14e1232647833c269a292b703fe27718ab27b5f1 (patch)
treea944a069457b3a6405c79eddbbc8e680ef6cad14
parentMerging upstream version 3.4. (diff)
downloadtmux-14e1232647833c269a292b703fe27718ab27b5f1.tar.xz
tmux-14e1232647833c269a292b703fe27718ab27b5f1.zip
Merging debian version 3.4-1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
-rw-r--r--debian/changelog44
-rw-r--r--debian/control2
-rw-r--r--debian/patches/series6
-rw-r--r--debian/patches/upstream-0f6227f46b.diff42
-rw-r--r--debian/patches/upstream-168eab11a7.diff25
-rw-r--r--debian/patches/upstream-19344efa78.diff34
-rw-r--r--debian/patches/upstream-39d41d0810.diff121
-rw-r--r--debian/patches/upstream-8f34504736.diff551
-rw-r--r--debian/patches/upstream-bf636d9575.diff77
-rwxr-xr-xdebian/postinst9
-rwxr-xr-xdebian/postrm9
-rwxr-xr-xdebian/preinst10
-rwxr-xr-xdebian/rules6
-rw-r--r--debian/shells1
-rw-r--r--debian/tmux.lintian-overrides1
15 files changed, 53 insertions, 885 deletions
diff --git a/debian/changelog b/debian/changelog
index ba0867d..d6561f2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,47 @@
+tmux (3.4-1) unstable; urgency=low
+
+ * New upstream release (closes: #1063838).
+ + Fixes crash when pasting into dead panes (closes: #1063237).
+ * Import packaging from experimental, enabling support for Sixel,
+ systemd integration, and management of /etc/shells using dpkg
+ triggers.
+
+ -- Romain Francoise <rfrancoise@debian.org> Tue, 13 Feb 2024 18:42:59 +0100
+
+tmux (3.4~git20240106-1) experimental; urgency=medium
+
+ * New upstream snapshot, from Git commit e809c2ec35.
+
+ -- Romain Francoise <rfrancoise@debian.org> Sat, 06 Jan 2024 16:55:56 +0100
+
+tmux (3.4~git20230924-1) experimental; urgency=medium
+
+ * New upstream snapshot, from Git commit b777780720.
+ * Enable Sixel support.
+
+ -- Romain Francoise <rfrancoise@debian.org> Sun, 24 Sep 2023 13:12:42 +0200
+
+tmux (3.4~git20230722-1) experimental; urgency=medium
+
+ * New upstream snapshot, from Git commit fda3937734.
+ * Apply changes by Helmut Grohne <helmut@subdivi.de> to manage
+ /etc/shells using dpkg triggers (closes: #1023315), avoiding
+ issues related to remove/reinstall cycles (closes: #939889).
+ * Drop now-obsolete debian/preinst.
+ * Silence lintian warning about Tg macro, which is from mandoc
+ 1.14.6 and is not a typo.
+
+ -- Romain Francoise <rfrancoise@debian.org> Sat, 22 Jul 2023 23:22:31 +0200
+
+tmux (3.4~git20230617-1) experimental; urgency=medium
+
+ * New upstream snapshot, from Git commit f41c536ff3.
+ * Enable systemd integration (for socket activation and cgroups support).
+ * Build-depend on libncurses-dev, not libncurses5-dev.
+ * Bump Standards-Version to 4.6.2.
+
+ -- Romain Francoise <rfrancoise@debian.org> Sat, 17 Jun 2023 12:11:52 +0200
+
tmux (3.3a-5~progress7.99u1) graograman-backports; urgency=medium
* Initial reupload to graograman-backports.
diff --git a/debian/control b/debian/control
index ef86e51..b06f077 100644
--- a/debian/control
+++ b/debian/control
@@ -7,9 +7,11 @@ XSBC-Original-Maintainer: Romain Francoise <rfrancoise@debian.org>
Bugs: mailto:maintainers@lists.progress-linux.org
Build-Depends: bison,
debhelper-compat (= 13),
+ debianutils (>= 5.3-1~),
dpkg-dev (>= 1.16.1~),
libevent-dev (>> 2.0.10),
libncurses-dev | libncurses5-dev,
+ libsystemd-dev,
libutempter-dev,
libutil-freebsd-dev [kfreebsd-any],
pkg-config
diff --git a/debian/patches/series b/debian/patches/series
index ab389df..ac55c0e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,7 +1 @@
platform-quirks.diff
-upstream-0f6227f46b.diff
-upstream-19344efa78.diff
-upstream-8f34504736.diff
-upstream-39d41d0810.diff
-upstream-168eab11a7.diff
-upstream-bf636d9575.diff
diff --git a/debian/patches/upstream-0f6227f46b.diff b/debian/patches/upstream-0f6227f46b.diff
deleted file mode 100644
index c062e60..0000000
--- a/debian/patches/upstream-0f6227f46b.diff
+++ /dev/null
@@ -1,42 +0,0 @@
-commit 0f6227f46b1d33476ef448682a2ba0b0290e6d9b
-Author: Nicholas Marriott <nicholas.marriott@gmail.com>
-Date: Thu Jun 2 20:41:21 2022 +0000
-
- When deleting or renaming a buffer and a buffer name is specified,
- complain if the buffer doesn't exist instead of silently deleting or
- renaming the most recent buffer. GitHub issue 3205.
-
-diff --git a/cmd-set-buffer.c b/cmd-set-buffer.c
-index 9112683fc0..c9ffe5edad 100644
---- a/cmd-set-buffer.c
-+++ b/cmd-set-buffer.c
-@@ -69,8 +69,13 @@ cmd_set_buffer_exec(struct cmd *self, struct cmdq_item *item)
- pb = paste_get_name(bufname);
-
- if (cmd_get_entry(self) == &cmd_delete_buffer_entry) {
-- if (pb == NULL)
-+ if (pb == NULL) {
-+ if (bufname != NULL) {
-+ cmdq_error(item, "unknown buffer: %s", bufname);
-+ return (CMD_RETURN_ERROR);
-+ }
- pb = paste_get_top(&bufname);
-+ }
- if (pb == NULL) {
- cmdq_error(item, "no buffer");
- return (CMD_RETURN_ERROR);
-@@ -80,8 +85,13 @@ cmd_set_buffer_exec(struct cmd *self, struct cmdq_item *item)
- }
-
- if (args_has(args, 'n')) {
-- if (pb == NULL)
-+ if (pb == NULL) {
-+ if (bufname != NULL) {
-+ cmdq_error(item, "unknown buffer: %s", bufname);
-+ return (CMD_RETURN_ERROR);
-+ }
- pb = paste_get_top(&bufname);
-+ }
- if (pb == NULL) {
- cmdq_error(item, "no buffer");
- return (CMD_RETURN_ERROR);
diff --git a/debian/patches/upstream-168eab11a7.diff b/debian/patches/upstream-168eab11a7.diff
deleted file mode 100644
index be8a90c..0000000
--- a/debian/patches/upstream-168eab11a7.diff
+++ /dev/null
@@ -1,25 +0,0 @@
-From 736f7f223235bc050d71565ef243739ef27af066 Mon Sep 17 00:00:00 2001
-From: Nicholas Marriott <nicholas.marriott@gmail.com>
-Date: Fri, 28 Apr 2023 07:23:53 +0100
-Subject: [PATCH 3/4] Cast both strings for tparm.
-
----
- tty-term.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tty-term.c b/tty-term.c
-index 18b174208d..f2b548d811 100644
---- a/tty-term.c
-+++ b/tty-term.c
-@@ -839,7 +839,7 @@ tty_term_string_ss(struct tty_term *term, enum tty_code_code code,
- #elif defined(HAVE_TIPARM)
- s = tiparm(x, a, b);
- #else
-- s = tparm((char *)x, (long)a, b, 0, 0, 0, 0, 0, 0, 0);
-+ s = tparm((char *)x, (long)a, (long)b, 0, 0, 0, 0, 0, 0, 0);
- #endif
- if (s == NULL)
- fatalx("could not expand %s", tty_term_codes[code].name);
---
-2.39.2
-
diff --git a/debian/patches/upstream-19344efa78.diff b/debian/patches/upstream-19344efa78.diff
deleted file mode 100644
index aa14f19..0000000
--- a/debian/patches/upstream-19344efa78.diff
+++ /dev/null
@@ -1,34 +0,0 @@
-From 19344efa78be23a02008be9da0991f54455c9f9e Mon Sep 17 00:00:00 2001
-From: Nicholas Marriott <nicholas.marriott@gmail.com>
-Date: Mon, 22 Aug 2022 08:20:49 +0100
-Subject: [PATCH] Fix fallback implementaion of getpeereid, from Pino Toscano.
-
----
- compat/getpeereid.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/compat/getpeereid.c b/compat/getpeereid.c
-index c194e886..b79f420a 100644
---- a/compat/getpeereid.c
-+++ b/compat/getpeereid.c
-@@ -18,6 +18,7 @@
- #include <sys/socket.h>
-
- #include <stdio.h>
-+#include <unistd.h>
-
- #ifdef HAVE_UCRED_H
- #include <ucred.h>
-@@ -49,6 +50,8 @@ getpeereid(int s, uid_t *uid, gid_t *gid)
- ucred_free(ucred);
- return (0);
- #else
-- return (getuid());
-+ *uid = geteuid();
-+ *gid = getegid();
-+ return (0);
- #endif
- }
---
-2.35.1
-
diff --git a/debian/patches/upstream-39d41d0810.diff b/debian/patches/upstream-39d41d0810.diff
deleted file mode 100644
index 8b8abb7..0000000
--- a/debian/patches/upstream-39d41d0810.diff
+++ /dev/null
@@ -1,121 +0,0 @@
-From b77cfc8d2b4d0c894793efaf106b37c17d29d2d0 Mon Sep 17 00:00:00 2001
-From: Nicholas Marriott <nicholas.marriott@gmail.com>
-Date: Fri, 28 Apr 2023 06:44:40 +0100
-Subject: [PATCH 2/4] Use ncurses' new tparm_s function (added in 6.4-20230424)
- instead of tparm so it does not object to string arguments in capabilities it
- doesn't already know.
-
----
- configure.ac | 4 ++++
- tty-term.c | 48 +++++++++++++++++++++++++++++++++++++++---------
- 2 files changed, 43 insertions(+), 9 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 2b8b3b11ac..3c3c187393 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -344,6 +344,10 @@ else
- AC_MSG_ERROR("curses not found")
- fi
- fi
-+AC_CHECK_FUNCS([ \
-+ tiparm \
-+ tiparm_s \
-+])
-
- # Look for utempter.
- AC_ARG_ENABLE(
-diff --git a/tty-term.c b/tty-term.c
-index 32dd849ac7..18b174208d 100644
---- a/tty-term.c
-+++ b/tty-term.c
-@@ -764,7 +764,13 @@ tty_term_string_i(struct tty_term *term, enum tty_code_code code, int a)
- {
- const char *x = tty_term_string(term, code), *s;
-
-- s = tparm((char *)x, a);
-+#if defined(HAVE_TIPARM_S)
-+ s = tiparm_s(1, 0, x, a);
-+#elif defined(HAVE_TIPARM)
-+ s = tiparm(x, a);
-+#else
-+ s = tparm((char *)x, a, 0, 0, 0, 0, 0, 0, 0, 0);
-+#endif
- if (s == NULL)
- fatalx("could not expand %s", tty_term_codes[code].name);
- return (s);
-@@ -775,19 +781,31 @@ tty_term_string_ii(struct tty_term *term, enum tty_code_code code, int a, int b)
- {
- const char *x = tty_term_string(term, code), *s;
-
-- s = tparm((char *)x, a, b);
-+#if defined(HAVE_TIPARM_S)
-+ s = tiparm_s(2, 0, x, a, b);
-+#elif defined(HAVE_TIPARM)
-+ s = tiparm(x, a, b);
-+#else
-+ s = tparm((char *)x, a, b, 0, 0, 0, 0, 0, 0, 0);
-+#endif
- if (s == NULL)
- fatalx("could not expand %s", tty_term_codes[code].name);
- return (s);
- }
-
- const char *
--tty_term_string_iii(struct tty_term *term, enum tty_code_code code, int a, int b,
-- int c)
-+tty_term_string_iii(struct tty_term *term, enum tty_code_code code, int a,
-+ int b, int c)
- {
- const char *x = tty_term_string(term, code), *s;
-
-- s = tparm((char *)x, a, b, c);
-+#if defined(HAVE_TIPARM_S)
-+ s = tiparm_s(3, 0, x, a, b, c);
-+#elif defined(HAVE_TIPARM)
-+ s = tiparm(x, a, b, c);
-+#else
-+ s = tparm((char *)x, a, b, c, 0, 0, 0, 0, 0, 0);
-+#endif
- if (s == NULL)
- fatalx("could not expand %s", tty_term_codes[code].name);
- return (s);
-@@ -798,19 +816,31 @@ tty_term_string_s(struct tty_term *term, enum tty_code_code code, const char *a)
- {
- const char *x = tty_term_string(term, code), *s;
-
-- s = tparm((char *)x, (long)a);
-+#if defined(HAVE_TIPARM_S)
-+ s = tiparm_s(1, 1, x, a);
-+#elif defined(HAVE_TIPARM)
-+ s = tiparm(x, a);
-+#else
-+ s = tparm((char *)x, (long)a, 0, 0, 0, 0, 0, 0, 0, 0);
-+#endif
- if (s == NULL)
- fatalx("could not expand %s", tty_term_codes[code].name);
- return (s);
- }
-
- const char *
--tty_term_string_ss(struct tty_term *term, enum tty_code_code code, const char *a,
-- const char *b)
-+tty_term_string_ss(struct tty_term *term, enum tty_code_code code,
-+ const char *a, const char *b)
- {
- const char *x = tty_term_string(term, code), *s;
-
-- s = tparm((char *)x, (long)a, (long)b);
-+#if defined(HAVE_TIPARM_S)
-+ s = tiparm_s(2, 3, x, a, b);
-+#elif defined(HAVE_TIPARM)
-+ s = tiparm(x, a, b);
-+#else
-+ s = tparm((char *)x, (long)a, b, 0, 0, 0, 0, 0, 0, 0);
-+#endif
- if (s == NULL)
- fatalx("could not expand %s", tty_term_codes[code].name);
- return (s);
---
-2.39.2
-
diff --git a/debian/patches/upstream-8f34504736.diff b/debian/patches/upstream-8f34504736.diff
deleted file mode 100644
index b407d60..0000000
--- a/debian/patches/upstream-8f34504736.diff
+++ /dev/null
@@ -1,551 +0,0 @@
-From fcfd84d75749b53f1adabcedf16c83eccb15c1a1 Mon Sep 17 00:00:00 2001
-From: nicm <nicm>
-Date: Tue, 25 Apr 2023 09:31:50 +0000
-Subject: [PATCH 1/4] Tidy tparm wrapper functions to have more obvious names
- and check tparm return value.
-
----
- tmux.h | 26 ++++++------
- tty-term.c | 47 ++++++++++++++++-----
- tty.c | 118 ++++++++++++++++++++++++++---------------------------
- 3 files changed, 108 insertions(+), 83 deletions(-)
-
-diff --git a/tmux.h b/tmux.h
-index 53084b8b07..5a90352e76 100644
---- a/tmux.h
-+++ b/tmux.h
-@@ -2250,12 +2250,12 @@ void tty_margin_off(struct tty *);
- void tty_cursor(struct tty *, u_int, u_int);
- void tty_clipboard_query(struct tty *);
- void tty_putcode(struct tty *, enum tty_code_code);
--void tty_putcode1(struct tty *, enum tty_code_code, int);
--void tty_putcode2(struct tty *, enum tty_code_code, int, int);
--void tty_putcode3(struct tty *, enum tty_code_code, int, int, int);
--void tty_putcode_ptr1(struct tty *, enum tty_code_code, const void *);
--void tty_putcode_ptr2(struct tty *, enum tty_code_code, const void *,
-- const void *);
-+void tty_putcode_i(struct tty *, enum tty_code_code, int);
-+void tty_putcode_ii(struct tty *, enum tty_code_code, int, int);
-+void tty_putcode_iii(struct tty *, enum tty_code_code, int, int, int);
-+void tty_putcode_s(struct tty *, enum tty_code_code, const char *);
-+void tty_putcode_ss(struct tty *, enum tty_code_code, const char *,
-+ const char *);
- void tty_puts(struct tty *, const char *);
- void tty_putc(struct tty *, u_char);
- void tty_putn(struct tty *, const void *, size_t, u_int);
-@@ -2318,15 +2318,15 @@ int tty_term_read_list(const char *, int, char ***, u_int *,
- void tty_term_free_list(char **, u_int);
- int tty_term_has(struct tty_term *, enum tty_code_code);
- const char *tty_term_string(struct tty_term *, enum tty_code_code);
--const char *tty_term_string1(struct tty_term *, enum tty_code_code, int);
--const char *tty_term_string2(struct tty_term *, enum tty_code_code, int,
-+const char *tty_term_string_i(struct tty_term *, enum tty_code_code, int);
-+const char *tty_term_string_ii(struct tty_term *, enum tty_code_code, int,
- int);
--const char *tty_term_string3(struct tty_term *, enum tty_code_code, int,
-+const char *tty_term_string_iii(struct tty_term *, enum tty_code_code, int,
- int, int);
--const char *tty_term_ptr1(struct tty_term *, enum tty_code_code,
-- const void *);
--const char *tty_term_ptr2(struct tty_term *, enum tty_code_code,
-- const void *, const void *);
-+const char *tty_term_string_s(struct tty_term *, enum tty_code_code,
-+ const char *);
-+const char *tty_term_string_ss(struct tty_term *, enum tty_code_code,
-+ const char *, const char *);
- int tty_term_number(struct tty_term *, enum tty_code_code);
- int tty_term_flag(struct tty_term *, enum tty_code_code);
- const char *tty_term_describe(struct tty_term *, enum tty_code_code);
-diff --git a/tty-term.c b/tty-term.c
-index fdf0c4faf2..32dd849ac7 100644
---- a/tty-term.c
-+++ b/tty-term.c
-@@ -760,35 +760,60 @@ tty_term_string(struct tty_term *term, enum tty_code_code code)
- }
-
- const char *
--tty_term_string1(struct tty_term *term, enum tty_code_code code, int a)
-+tty_term_string_i(struct tty_term *term, enum tty_code_code code, int a)
- {
-- return (tparm((char *) tty_term_string(term, code), a, 0, 0, 0, 0, 0, 0, 0, 0));
-+ const char *x = tty_term_string(term, code), *s;
-+
-+ s = tparm((char *)x, a);
-+ if (s == NULL)
-+ fatalx("could not expand %s", tty_term_codes[code].name);
-+ return (s);
- }
-
- const char *
--tty_term_string2(struct tty_term *term, enum tty_code_code code, int a, int b)
-+tty_term_string_ii(struct tty_term *term, enum tty_code_code code, int a, int b)
- {
-- return (tparm((char *) tty_term_string(term, code), a, b, 0, 0, 0, 0, 0, 0, 0));
-+ const char *x = tty_term_string(term, code), *s;
-+
-+ s = tparm((char *)x, a, b);
-+ if (s == NULL)
-+ fatalx("could not expand %s", tty_term_codes[code].name);
-+ return (s);
- }
-
- const char *
--tty_term_string3(struct tty_term *term, enum tty_code_code code, int a, int b,
-+tty_term_string_iii(struct tty_term *term, enum tty_code_code code, int a, int b,
- int c)
- {
-- return (tparm((char *) tty_term_string(term, code), a, b, c, 0, 0, 0, 0, 0, 0));
-+ const char *x = tty_term_string(term, code), *s;
-+
-+ s = tparm((char *)x, a, b, c);
-+ if (s == NULL)
-+ fatalx("could not expand %s", tty_term_codes[code].name);
-+ return (s);
- }
-
- const char *
--tty_term_ptr1(struct tty_term *term, enum tty_code_code code, const void *a)
-+tty_term_string_s(struct tty_term *term, enum tty_code_code code, const char *a)
- {
-- return (tparm((char *) tty_term_string(term, code), (long)a, 0, 0, 0, 0, 0, 0, 0, 0));
-+ const char *x = tty_term_string(term, code), *s;
-+
-+ s = tparm((char *)x, (long)a);
-+ if (s == NULL)
-+ fatalx("could not expand %s", tty_term_codes[code].name);
-+ return (s);
- }
-
- const char *
--tty_term_ptr2(struct tty_term *term, enum tty_code_code code, const void *a,
-- const void *b)
-+tty_term_string_ss(struct tty_term *term, enum tty_code_code code, const char *a,
-+ const char *b)
- {
-- return (tparm((char *) tty_term_string(term, code), (long)a, (long)b, 0, 0, 0, 0, 0, 0, 0));
-+ const char *x = tty_term_string(term, code), *s;
-+
-+ s = tparm((char *)x, (long)a, (long)b);
-+ if (s == NULL)
-+ fatalx("could not expand %s", tty_term_codes[code].name);
-+ return (s);
- }
-
- int
-diff --git a/tty.c b/tty.c
-index 49cf9795f7..a4d744d0df 100644
---- a/tty.c
-+++ b/tty.c
-@@ -399,7 +399,7 @@ tty_stop_tty(struct tty *tty)
- if (tcsetattr(c->fd, TCSANOW, &tty->tio) == -1)
- return;
-
-- tty_raw(tty, tty_term_string2(tty->term, TTYC_CSR, 0, ws.ws_row - 1));
-+ tty_raw(tty, tty_term_string_ii(tty->term, TTYC_CSR, 0, ws.ws_row - 1));
- if (tty_acs_needed(tty))
- tty_raw(tty, tty_term_string(tty->term, TTYC_RMACS));
- tty_raw(tty, tty_term_string(tty->term, TTYC_SGR0));
-@@ -409,7 +409,7 @@ tty_stop_tty(struct tty *tty)
- if (tty_term_has(tty->term, TTYC_SE))
- tty_raw(tty, tty_term_string(tty->term, TTYC_SE));
- else if (tty_term_has(tty->term, TTYC_SS))
-- tty_raw(tty, tty_term_string1(tty->term, TTYC_SS, 0));
-+ tty_raw(tty, tty_term_string_i(tty->term, TTYC_SS, 0));
- }
- if (tty->mode & MODE_BRACKETPASTE)
- tty_raw(tty, tty_term_string(tty->term, TTYC_DSBP));
-@@ -506,42 +506,42 @@ tty_putcode(struct tty *tty, enum tty_code_code code)
- }
-
- void
--tty_putcode1(struct tty *tty, enum tty_code_code code, int a)
-+tty_putcode_i(struct tty *tty, enum tty_code_code code, int a)
- {
- if (a < 0)
- return;
-- tty_puts(tty, tty_term_string1(tty->term, code, a));
-+ tty_puts(tty, tty_term_string_i(tty->term, code, a));
- }
-
- void
--tty_putcode2(struct tty *tty, enum tty_code_code code, int a, int b)
-+tty_putcode_ii(struct tty *tty, enum tty_code_code code, int a, int b)
- {
- if (a < 0 || b < 0)
- return;
-- tty_puts(tty, tty_term_string2(tty->term, code, a, b));
-+ tty_puts(tty, tty_term_string_ii(tty->term, code, a, b));
- }
-
- void
--tty_putcode3(struct tty *tty, enum tty_code_code code, int a, int b, int c)
-+tty_putcode_iii(struct tty *tty, enum tty_code_code code, int a, int b, int c)
- {
- if (a < 0 || b < 0 || c < 0)
- return;
-- tty_puts(tty, tty_term_string3(tty->term, code, a, b, c));
-+ tty_puts(tty, tty_term_string_iii(tty->term, code, a, b, c));
- }
-
- void
--tty_putcode_ptr1(struct tty *tty, enum tty_code_code code, const void *a)
-+tty_putcode_s(struct tty *tty, enum tty_code_code code, const char *a)
- {
- if (a != NULL)
-- tty_puts(tty, tty_term_ptr1(tty->term, code, a));
-+ tty_puts(tty, tty_term_string_s(tty->term, code, a));
- }
-
- void
--tty_putcode_ptr2(struct tty *tty, enum tty_code_code code, const void *a,
-- const void *b)
-+tty_putcode_ss(struct tty *tty, enum tty_code_code code, const char *a,
-+ const char *b)
- {
- if (a != NULL && b != NULL)
-- tty_puts(tty, tty_term_ptr2(tty->term, code, a, b));
-+ tty_puts(tty, tty_term_string_ss(tty->term, code, a, b));
- }
-
- static void
-@@ -603,7 +603,7 @@ tty_putc(struct tty *tty, u_char ch)
- * it works on sensible terminals as well.
- */
- if (tty->term->flags & TERM_NOAM)
-- tty_putcode2(tty, TTYC_CUP, tty->cy, tty->cx);
-+ tty_putcode_ii(tty, TTYC_CUP, tty->cy, tty->cx);
- } else
- tty->cx++;
- }
-@@ -682,7 +682,7 @@ tty_force_cursor_colour(struct tty *tty, int c)
- else {
- colour_split_rgb(c, &r, &g, &b);
- xsnprintf(s, sizeof s, "rgb:%02hhx/%02hhx/%02hhx", r, g, b);
-- tty_putcode_ptr1(tty, TTYC_CS, s);
-+ tty_putcode_s(tty, TTYC_CS, s);
- }
- tty->ccolour = c;
- }
-@@ -743,7 +743,7 @@ tty_update_cursor(struct tty *tty, int mode, struct screen *s)
- if (tty_term_has(tty->term, TTYC_SE))
- tty_putcode(tty, TTYC_SE);
- else
-- tty_putcode1(tty, TTYC_SS, 0);
-+ tty_putcode_i(tty, TTYC_SS, 0);
- }
- if (cmode & (MODE_CURSOR_BLINKING|MODE_CURSOR_VERY_VISIBLE))
- tty_putcode(tty, TTYC_CVVIS);
-@@ -751,27 +751,27 @@ tty_update_cursor(struct tty *tty, int mode, struct screen *s)
- case SCREEN_CURSOR_BLOCK:
- if (tty_term_has(tty->term, TTYC_SS)) {
- if (cmode & MODE_CURSOR_BLINKING)
-- tty_putcode1(tty, TTYC_SS, 1);
-+ tty_putcode_i(tty, TTYC_SS, 1);
- else
-- tty_putcode1(tty, TTYC_SS, 2);
-+ tty_putcode_i(tty, TTYC_SS, 2);
- } else if (cmode & MODE_CURSOR_BLINKING)
- tty_putcode(tty, TTYC_CVVIS);
- break;
- case SCREEN_CURSOR_UNDERLINE:
- if (tty_term_has(tty->term, TTYC_SS)) {
- if (cmode & MODE_CURSOR_BLINKING)
-- tty_putcode1(tty, TTYC_SS, 3);
-+ tty_putcode_i(tty, TTYC_SS, 3);
- else
-- tty_putcode1(tty, TTYC_SS, 4);
-+ tty_putcode_i(tty, TTYC_SS, 4);
- } else if (cmode & MODE_CURSOR_BLINKING)
- tty_putcode(tty, TTYC_CVVIS);
- break;
- case SCREEN_CURSOR_BAR:
- if (tty_term_has(tty->term, TTYC_SS)) {
- if (cmode & MODE_CURSOR_BLINKING)
-- tty_putcode1(tty, TTYC_SS, 5);
-+ tty_putcode_i(tty, TTYC_SS, 5);
- else
-- tty_putcode1(tty, TTYC_SS, 6);
-+ tty_putcode_i(tty, TTYC_SS, 6);
- } else if (cmode & MODE_CURSOR_BLINKING)
- tty_putcode(tty, TTYC_CVVIS);
- break;
-@@ -833,7 +833,7 @@ tty_emulate_repeat(struct tty *tty, enum tty_code_code code,
- enum tty_code_code code1, u_int n)
- {
- if (tty_term_has(tty->term, code))
-- tty_putcode1(tty, code, n);
-+ tty_putcode_i(tty, code, n);
- else {
- while (n-- > 0)
- tty_putcode(tty, code1);
-@@ -1122,7 +1122,7 @@ tty_clear_line(struct tty *tty, const struct grid_cell *defaults, u_int py,
- /* Section of line. Use ECH if possible. */
- if (tty_term_has(tty->term, TTYC_ECH)) {
- tty_cursor(tty, px, py);
-- tty_putcode1(tty, TTYC_ECH, nx);
-+ tty_putcode_i(tty, TTYC_ECH, nx);
- return;
- }
- }
-@@ -1263,7 +1263,7 @@ tty_clear_area(struct tty *tty, const struct grid_cell *defaults, u_int py,
- tty_term_has(tty->term, TTYC_INDN)) {
- tty_region(tty, py, py + ny - 1);
- tty_margin_off(tty);
-- tty_putcode1(tty, TTYC_INDN, ny);
-+ tty_putcode_i(tty, TTYC_INDN, ny);
- return;
- }
-
-@@ -1278,7 +1278,7 @@ tty_clear_area(struct tty *tty, const struct grid_cell *defaults, u_int py,
- tty_term_has(tty->term, TTYC_INDN)) {
- tty_region(tty, py, py + ny - 1);
- tty_margin(tty, px, px + nx - 1);
-- tty_putcode1(tty, TTYC_INDN, ny);
-+ tty_putcode_i(tty, TTYC_INDN, ny);
- return;
- }
- }
-@@ -1579,7 +1579,7 @@ tty_sync_start(struct tty *tty)
-
- if (tty_term_has(tty->term, TTYC_SYNC)) {
- log_debug("%s sync start", tty->client->name);
-- tty_putcode1(tty, TTYC_SYNC, 1);
-+ tty_putcode_i(tty, TTYC_SYNC, 1);
- }
- }
-
-@@ -1594,7 +1594,7 @@ tty_sync_end(struct tty *tty)
-
- if (tty_term_has(tty->term, TTYC_SYNC)) {
- log_debug("%s sync end", tty->client->name);
-- tty_putcode1(tty, TTYC_SYNC, 2);
-+ tty_putcode_i(tty, TTYC_SYNC, 2);
- }
- }
-
-@@ -1793,7 +1793,7 @@ tty_cmd_reverseindex(struct tty *tty, const struct tty_ctx *ctx)
- if (tty_term_has(tty->term, TTYC_RI))
- tty_putcode(tty, TTYC_RI);
- else
-- tty_putcode1(tty, TTYC_RIN, 1);
-+ tty_putcode_i(tty, TTYC_RIN, 1);
- }
-
- void
-@@ -1872,7 +1872,7 @@ tty_cmd_scrollup(struct tty *tty, const struct tty_ctx *ctx)
- tty_cursor(tty, 0, 0);
- else
- tty_cursor(tty, 0, tty->cy);
-- tty_putcode1(tty, TTYC_INDN, ctx->num);
-+ tty_putcode_i(tty, TTYC_INDN, ctx->num);
- }
- }
-
-@@ -1902,7 +1902,7 @@ tty_cmd_scrolldown(struct tty *tty, const struct tty_ctx *ctx)
- tty_cursor_pane(tty, ctx, ctx->ocx, ctx->orupper);
-
- if (tty_term_has(tty->term, TTYC_RIN))
-- tty_putcode1(tty, TTYC_RIN, ctx->num);
-+ tty_putcode_i(tty, TTYC_RIN, ctx->num);
- else {
- for (i = 0; i < ctx->num; i++)
- tty_putcode(tty, TTYC_RI);
-@@ -2101,7 +2101,7 @@ tty_set_selection(struct tty *tty, const char *buf, size_t len)
-
- b64_ntop(buf, len, encoded, size);
- tty->flags |= TTY_NOBLOCK;
-- tty_putcode_ptr2(tty, TTYC_MS, "", encoded);
-+ tty_putcode_ss(tty, TTYC_MS, "", encoded);
-
- free(encoded);
- }
-@@ -2246,7 +2246,7 @@ tty_region(struct tty *tty, u_int rupper, u_int rlower)
- tty_cursor(tty, 0, tty->cy);
- }
-
-- tty_putcode2(tty, TTYC_CSR, tty->rupper, tty->rlower);
-+ tty_putcode_ii(tty, TTYC_CSR, tty->rupper, tty->rlower);
- tty->cx = tty->cy = UINT_MAX;
- }
-
-@@ -2274,7 +2274,7 @@ tty_margin(struct tty *tty, u_int rleft, u_int rright)
- if (tty->rleft == rleft && tty->rright == rright)
- return;
-
-- tty_putcode2(tty, TTYC_CSR, tty->rupper, tty->rlower);
-+ tty_putcode_ii(tty, TTYC_CSR, tty->rupper, tty->rlower);
-
- tty->rleft = rleft;
- tty->rright = rright;
-@@ -2282,7 +2282,7 @@ tty_margin(struct tty *tty, u_int rleft, u_int rright)
- if (rleft == 0 && rright == tty->sx - 1)
- tty_putcode(tty, TTYC_CLMG);
- else
-- tty_putcode2(tty, TTYC_CMG, rleft, rright);
-+ tty_putcode_ii(tty, TTYC_CMG, rleft, rright);
- tty->cx = tty->cy = UINT_MAX;
- }
-
-@@ -2392,7 +2392,7 @@ tty_cursor(struct tty *tty, u_int cx, u_int cy)
- * the cursor with CUB/CUF.
- */
- if ((u_int) abs(change) > cx && tty_term_has(term, TTYC_HPA)) {
-- tty_putcode1(tty, TTYC_HPA, cx);
-+ tty_putcode_i(tty, TTYC_HPA, cx);
- goto out;
- } else if (change > 0 &&
- tty_term_has(term, TTYC_CUB) &&
-@@ -2402,12 +2402,12 @@ tty_cursor(struct tty *tty, u_int cx, u_int cy)
- tty_putcode(tty, TTYC_CUB1);
- goto out;
- }
-- tty_putcode1(tty, TTYC_CUB, change);
-+ tty_putcode_i(tty, TTYC_CUB, change);
- goto out;
- } else if (change < 0 &&
- tty_term_has(term, TTYC_CUF) &&
- !tty_use_margin(tty)) {
-- tty_putcode1(tty, TTYC_CUF, -change);
-+ tty_putcode_i(tty, TTYC_CUF, -change);
- goto out;
- }
- } else if (cx == thisx) {
-@@ -2440,21 +2440,21 @@ tty_cursor(struct tty *tty, u_int cx, u_int cy)
- (change < 0 && cy - change > tty->rlower) ||
- (change > 0 && cy - change < tty->rupper)) {
- if (tty_term_has(term, TTYC_VPA)) {
-- tty_putcode1(tty, TTYC_VPA, cy);
-+ tty_putcode_i(tty, TTYC_VPA, cy);
- goto out;
- }
- } else if (change > 0 && tty_term_has(term, TTYC_CUU)) {
-- tty_putcode1(tty, TTYC_CUU, change);
-+ tty_putcode_i(tty, TTYC_CUU, change);
- goto out;
- } else if (change < 0 && tty_term_has(term, TTYC_CUD)) {
-- tty_putcode1(tty, TTYC_CUD, -change);
-+ tty_putcode_i(tty, TTYC_CUD, -change);
- goto out;
- }
- }
-
- absolute:
- /* Absolute movement. */
-- tty_putcode2(tty, TTYC_CUP, cy, cx);
-+ tty_putcode_ii(tty, TTYC_CUP, cy, cx);
-
- out:
- tty->cx = cx;
-@@ -2533,13 +2533,13 @@ tty_attributes(struct tty *tty, const struct grid_cell *gc,
- !tty_term_has(tty->term, TTYC_SMULX))
- tty_putcode(tty, TTYC_SMUL);
- else if (changed & GRID_ATTR_UNDERSCORE_2)
-- tty_putcode1(tty, TTYC_SMULX, 2);
-+ tty_putcode_i(tty, TTYC_SMULX, 2);
- else if (changed & GRID_ATTR_UNDERSCORE_3)
-- tty_putcode1(tty, TTYC_SMULX, 3);
-+ tty_putcode_i(tty, TTYC_SMULX, 3);
- else if (changed & GRID_ATTR_UNDERSCORE_4)
-- tty_putcode1(tty, TTYC_SMULX, 4);
-+ tty_putcode_i(tty, TTYC_SMULX, 4);
- else if (changed & GRID_ATTR_UNDERSCORE_5)
-- tty_putcode1(tty, TTYC_SMULX, 5);
-+ tty_putcode_i(tty, TTYC_SMULX, 5);
- }
- if (changed & GRID_ATTR_BLINK)
- tty_putcode(tty, TTYC_BLINK);
-@@ -2593,14 +2593,14 @@ tty_colours(struct tty *tty, const struct grid_cell *gc)
- if (have_ax)
- tty_puts(tty, "\033[39m");
- else if (tc->fg != 7)
-- tty_putcode1(tty, TTYC_SETAF, 7);
-+ tty_putcode_i(tty, TTYC_SETAF, 7);
- tc->fg = gc->fg;
- }
- if (COLOUR_DEFAULT(gc->bg) && !COLOUR_DEFAULT(tc->bg)) {
- if (have_ax)
- tty_puts(tty, "\033[49m");
- else if (tc->bg != 0)
-- tty_putcode1(tty, TTYC_SETAB, 0);
-+ tty_putcode_i(tty, TTYC_SETAB, 0);
- tc->bg = gc->bg;
- }
- }
-@@ -2768,12 +2768,12 @@ tty_colours_fg(struct tty *tty, const struct grid_cell *gc)
- xsnprintf(s, sizeof s, "\033[%dm", gc->fg);
- tty_puts(tty, s);
- } else
-- tty_putcode1(tty, TTYC_SETAF, gc->fg - 90 + 8);
-+ tty_putcode_i(tty, TTYC_SETAF, gc->fg - 90 + 8);
- goto save;
- }
-
- /* Otherwise set the foreground colour. */
-- tty_putcode1(tty, TTYC_SETAF, gc->fg);
-+ tty_putcode_i(tty, TTYC_SETAF, gc->fg);
-
- save:
- /* Save the new values in the terminal current cell. */
-@@ -2800,12 +2800,12 @@ tty_colours_bg(struct tty *tty, const struct grid_cell *gc)
- xsnprintf(s, sizeof s, "\033[%dm", gc->bg + 10);
- tty_puts(tty, s);
- } else
-- tty_putcode1(tty, TTYC_SETAB, gc->bg - 90 + 8);
-+ tty_putcode_i(tty, TTYC_SETAB, gc->bg - 90 + 8);
- goto save;
- }
-
- /* Otherwise set the background colour. */
-- tty_putcode1(tty, TTYC_SETAB, gc->bg);
-+ tty_putcode_i(tty, TTYC_SETAB, gc->bg);
-
- save:
- /* Save the new values in the terminal current cell. */
-@@ -2841,10 +2841,10 @@ tty_colours_us(struct tty *tty, const struct grid_cell *gc)
- * non-RGB version may be wrong.
- */
- if (tty_term_has(tty->term, TTYC_SETULC))
-- tty_putcode1(tty, TTYC_SETULC, c);
-+ tty_putcode_i(tty, TTYC_SETULC, c);
- else if (tty_term_has(tty->term, TTYC_SETAL) &&
- tty_term_has(tty->term, TTYC_RGB))
-- tty_putcode1(tty, TTYC_SETAL, c);
-+ tty_putcode_i(tty, TTYC_SETAL, c);
-
- save:
- /* Save the new values in the terminal current cell. */
-@@ -2858,18 +2858,18 @@ tty_try_colour(struct tty *tty, int colour, const char *type)
-
- if (colour & COLOUR_FLAG_256) {
- if (*type == '3' && tty_term_has(tty->term, TTYC_SETAF))
-- tty_putcode1(tty, TTYC_SETAF, colour & 0xff);
-+ tty_putcode_i(tty, TTYC_SETAF, colour & 0xff);
- else if (tty_term_has(tty->term, TTYC_SETAB))
-- tty_putcode1(tty, TTYC_SETAB, colour & 0xff);
-+ tty_putcode_i(tty, TTYC_SETAB, colour & 0xff);
- return (0);
- }
-
- if (colour & COLOUR_FLAG_RGB) {
- colour_split_rgb(colour & 0xffffff, &r, &g, &b);
- if (*type == '3' && tty_term_has(tty->term, TTYC_SETRGBF))
-- tty_putcode3(tty, TTYC_SETRGBF, r, g, b);
-+ tty_putcode_iii(tty, TTYC_SETRGBF, r, g, b);
- else if (tty_term_has(tty->term, TTYC_SETRGBB))
-- tty_putcode3(tty, TTYC_SETRGBB, r, g, b);
-+ tty_putcode_iii(tty, TTYC_SETRGBB, r, g, b);
- return (0);
- }
-
-@@ -2953,7 +2953,7 @@ tty_clipboard_query(struct tty *tty)
-
- if ((~tty->flags & TTY_STARTED) || (tty->flags & TTY_OSC52QUERY))
- return;
-- tty_putcode_ptr2(tty, TTYC_MS, "", "?");
-+ tty_putcode_ss(tty, TTYC_MS, "", "?");
-
- tty->flags |= TTY_OSC52QUERY;
- evtimer_set(&tty->clipboard_timer, tty_clipboard_query_callback, tty);
---
-2.39.2
-
diff --git a/debian/patches/upstream-bf636d9575.diff b/debian/patches/upstream-bf636d9575.diff
deleted file mode 100644
index 551b36b..0000000
--- a/debian/patches/upstream-bf636d9575.diff
+++ /dev/null
@@ -1,77 +0,0 @@
-From 624b9567c70976766065c826b73234925b052595 Mon Sep 17 00:00:00 2001
-From: nicm <nicm>
-Date: Fri, 28 Apr 2023 05:59:35 +0000
-Subject: [PATCH 4/4] Do not fatal if tparm fails, instead just log it (not
- working sequences are better than exiting).
-
----
- tty-term.c | 32 ++++++++++++++++++++++----------
- 1 file changed, 22 insertions(+), 10 deletions(-)
-
---- a/tty-term.c
-+++ b/tty-term.c
-@@ -771,8 +771,10 @@
- #else
- s = tparm((char *)x, a, 0, 0, 0, 0, 0, 0, 0, 0);
- #endif
-- if (s == NULL)
-- fatalx("could not expand %s", tty_term_codes[code].name);
-+ if (s == NULL) {
-+ log_debug("could not expand %s", tty_term_codes[code].name);
-+ return ("");
-+ }
- return (s);
- }
-
-@@ -788,8 +790,10 @@
- #else
- s = tparm((char *)x, a, b, 0, 0, 0, 0, 0, 0, 0);
- #endif
-- if (s == NULL)
-- fatalx("could not expand %s", tty_term_codes[code].name);
-+ if (s == NULL) {
-+ log_debug("could not expand %s", tty_term_codes[code].name);
-+ return ("");
-+ }
- return (s);
- }
-
-@@ -806,8 +810,10 @@
- #else
- s = tparm((char *)x, a, b, c, 0, 0, 0, 0, 0, 0);
- #endif
-- if (s == NULL)
-- fatalx("could not expand %s", tty_term_codes[code].name);
-+ if (s == NULL) {
-+ log_debug("could not expand %s", tty_term_codes[code].name);
-+ return ("");
-+ }
- return (s);
- }
-
-@@ -823,8 +829,10 @@
- #else
- s = tparm((char *)x, (long)a, 0, 0, 0, 0, 0, 0, 0, 0);
- #endif
-- if (s == NULL)
-- fatalx("could not expand %s", tty_term_codes[code].name);
-+ if (s == NULL) {
-+ log_debug("could not expand %s", tty_term_codes[code].name);
-+ return ("");
-+ }
- return (s);
- }
-
-@@ -841,8 +849,10 @@
- #else
- s = tparm((char *)x, (long)a, (long)b, 0, 0, 0, 0, 0, 0, 0);
- #endif
-- if (s == NULL)
-- fatalx("could not expand %s", tty_term_codes[code].name);
-+ if (s == NULL) {
-+ log_debug("could not expand %s", tty_term_codes[code].name);
-+ return ("");
-+ }
- return (s);
- }
-
diff --git a/debian/postinst b/debian/postinst
deleted file mode 100755
index 08581c6..0000000
--- a/debian/postinst
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-set -e
-
-if [ "$1" = "configure" ] && [ -z "$2" ]; then
- add-shell /usr/bin/tmux
-fi
-
-#DEBHELPER#
diff --git a/debian/postrm b/debian/postrm
deleted file mode 100755
index dfe69e4..0000000
--- a/debian/postrm
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-set -e
-
-if [ "$1" = "remove" ]; then
- remove-shell /usr/bin/tmux
-fi
-
-#DEBHELPER#
diff --git a/debian/preinst b/debian/preinst
deleted file mode 100755
index a22b4d2..0000000
--- a/debian/preinst
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-set -e
-
-# Versions before 1.5-2 did not properly disable the tmux-cleanup init script.
-if [ "$1" = "upgrade" ] && dpkg --compare-versions "$2" 'lt' "1.5-2"; then
- update-rc.d -f tmux-cleanup remove >/dev/null
-fi
-
-#DEBHELPER#
diff --git a/debian/rules b/debian/rules
index 84e45b3..6c76020 100755
--- a/debian/rules
+++ b/debian/rules
@@ -6,4 +6,8 @@ export DEB_BUILD_MAINT_OPTIONS=hardening=+all
dh $@
override_dh_auto_configure:
- dh_auto_configure -- --enable-utempter
+ dh_auto_configure -- --enable-utempter --enable-systemd --enable-sixel
+
+execute_after_dh_auto_install:
+ install -D -m 644 debian/shells \
+ $(CURDIR)/debian/tmux/usr/share/debianutils/shells.d/tmux
diff --git a/debian/shells b/debian/shells
new file mode 100644
index 0000000..7e96274
--- /dev/null
+++ b/debian/shells
@@ -0,0 +1 @@
+/usr/bin/tmux
diff --git a/debian/tmux.lintian-overrides b/debian/tmux.lintian-overrides
new file mode 100644
index 0000000..214e73f
--- /dev/null
+++ b/debian/tmux.lintian-overrides
@@ -0,0 +1 @@
+tmux: groff-message troff:<standard input>:1032: warning: macro 'Tg' not defined [usr/share/man/man1/tmux.1.gz:1]