public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Filipe Rosset <filiperosset@fedoraproject.org>
To: git-commits@fedoraproject.org
Subject: [rpms/tmux] rawhide: update to 3.7, remove upstreamed patch, handle tmux@service
Date: Sun, 28 Jun 2026 19:31:33 GMT	[thread overview]
Message-ID: <178267509308.1.5440950683859086883.rpms-tmux-7e5b51ebab73@fedoraproject.org> (raw)

            A new commit has been pushed.

            Repo   : rpms/tmux
            Branch : rawhide
            Commit : 7e5b51ebab731cf8614042cecaa95c6061ee1e28
            Author : Filipe Rosset <filiperosset@fedoraproject.org>
            Date   : 2026-06-28T16:30:39-03:00
            Stats  : +10/-98 in 3 file(s)
            URL    : https://src.fedoraproject.org/rpms/tmux/c/7e5b51ebab731cf8614042cecaa95c6061ee1e28?branch=rawhide

            Log:
            update to 3.7, remove upstreamed patch, handle tmux@service

Signed-off-by: Filipe Rosset <filiperosset@fedoraproject.org>

---
diff --git a/0001-Setting-working-directory-after-fork-means-there-is-.patch b/0001-Setting-working-directory-after-fork-means-there-is-.patch
deleted file mode 100644
index e3f072a..0000000
--- a/0001-Setting-working-directory-after-fork-means-there-is-.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From f1e4ec1c9fa89f4fc062b5bc4aacc5f93f93f11b Mon Sep 17 00:00:00 2001
-From: nicm <nicm>
-Date: Mon, 8 Dec 2025 08:04:35 +0000
-Subject: [PATCH] Setting working directory after fork means there is a race
- with pane_current_path (especially on platforms with systemd which have to
- take time to do some additional faffing around). To avoid this, change it
- before fork and back in the parent afterwards. GitHub issue 4719.
-
-(cherry picked from commit f58b8d0d6abb2477b584547a4e72cc362ecbbcdb)
-
-Conflicts:
-	spawn.c
----
- spawn.c | 36 ++++++++++++++++++++++++------------
- 1 file changed, 24 insertions(+), 12 deletions(-)
-
-diff --git a/spawn.c b/spawn.c
-index 90cda757..964d0334 100644
---- a/spawn.c
-+++ b/spawn.c
-@@ -211,7 +211,9 @@ spawn_pane(struct spawn_context *sc, char **cause)
- 	struct environ		 *child;
- 	struct environ_entry	 *ee;
- 	char			**argv, *cp, **argvp, *argv0, *cwd, *new_cwd;
--	const char		 *cmd, *tmp;
-+	char			  path[PATH_MAX];
-+	const char		 *cmd, *tmp, *home = find_home();
-+	const char		 *actual_cwd = NULL;
- 	int			  argc;
- 	u_int			  idx;
- 	struct termios		  now;
-@@ -366,6 +368,16 @@ spawn_pane(struct spawn_context *sc, char **cause)
- 		goto complete;
- 	}
- 
-+    /* Store current working directory and change to new one. */
-+	if (getcwd(path, sizeof path) != NULL) {
-+		if (chdir(new_wp->cwd) == 0)
-+			actual_cwd = new_wp->cwd;
-+		else if (home != NULL && chdir(home) == 0)
-+			actual_cwd = home;
-+		else if (chdir("/") == 0)
-+			actual_cwd = "/";
-+	}
-+
- 	/* Fork the new process. */
- 	new_wp->pid = fdforkpty(ptm_fd, &new_wp->fd, new_wp->tty, NULL, &ws);
- 	if (new_wp->pid == -1) {
-@@ -381,8 +393,15 @@ spawn_pane(struct spawn_context *sc, char **cause)
- 		return (NULL);
- 	}
- 
--	/* In the parent process, everything is done now. */
-+	/*
-+	 * In the parent process, everything is done now. Change the working
-+	 * directory back.
-+	 */
- 	if (new_wp->pid != 0) {
-+		if (actual_cwd != NULL &&
-+		    chdir(path) != 0 &&
-+		    (home == NULL || chdir(home) != 0))
-+			chdir("/");
- 		goto complete;
- 	}
- 
-@@ -397,17 +416,10 @@ spawn_pane(struct spawn_context *sc, char **cause)
- 	}
- #endif
- 	/*
--	 * Child process. Change to the working directory or home if that
--	 * fails.
-+	 * Child process. Set PWD to the working directory.
- 	 */
--	if (chdir(new_wp->cwd) == 0)
--		environ_set(child, "PWD", 0, "%s", new_wp->cwd);
--	else if ((tmp = find_home()) != NULL && chdir(tmp) == 0)
--		environ_set(child, "PWD", 0, "%s", tmp);
--	else if (chdir("/") == 0)
--		environ_set(child, "PWD", 0, "/");
--	else
--		fatal("chdir failed");
-+	if (actual_cwd != NULL)
-+		environ_set(child, "PWD", 0, "%s", actual_cwd);
- 
- 	/*
- 	 * Update terminal escape characters from the session if available and
--- 
-2.54.0
-

diff --git a/sources b/sources
index abf1f0e..03efc12 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (tmux-3.6b.tar.gz) = 0dee1a6548496e5398cda98a7740139749f98fbbb8c9c539f81b18805a560529e4d7fee2b823748ec51935a83836ca502724fa759139f8db9514229004558192
+SHA512 (tmux-3.7.tar.gz) = d444ff682f8f12980e84776db2e1d1b56e54378bd56640208eb169f8db4dea3567cd8a2452edfa7cf89d4bf5236cc27e14184497ecffea97337b80d8677967bf

diff --git a/tmux.spec b/tmux.spec
index 54305f6..23b7506 100644
--- a/tmux.spec
+++ b/tmux.spec
@@ -1,5 +1,5 @@
 Name:           tmux
-Version:        3.6b
+Version:        3.7
 Release:        %autorelease
 Summary:        A terminal multiplexer
 
@@ -9,13 +9,10 @@ Source0:        https://github.com/tmux/%{name}/releases/download/%{version}/%{n
 Source2:        tmux@.service
 Source3:        README.polkit
 
-# related to https://github.com/tmux/tmux/commit/f58b8d0d6abb2477b584547a4e72cc362ecbbcdb
-# this patch should be removed during next tmux upgrade since it's in the master branch
-Patch0:         0001-Setting-working-directory-after-fork-means-there-is-.patch
-
 BuildRequires:  byacc
 BuildRequires:  gcc
 BuildRequires:  systemd-devel
+BuildRequires:  systemd-rpm-macros
 BuildRequires:  libutempter-devel
 BuildRequires:  make
 BuildRequires:  pkgconfig(libevent_core) >= 2
@@ -39,6 +36,7 @@ as GNU Screen.
 
 %prep
 %autosetup
+cp %{SOURCE3} .
 
 
 %build
@@ -50,8 +48,6 @@ as GNU Screen.
 %make_install
 # Install the systemd file
 install -Dpm 644 %{SOURCE2} %{buildroot}%{_unitdir}/tmux@.service
-# Install the polkit example file
-install -Dpm 644 %{SOURCE3} %{buildroot}%{_docdir}/tmux/README.polkit
 
 
 %check
@@ -59,6 +55,7 @@ install -Dpm 644 %{SOURCE3} %{buildroot}%{_docdir}/tmux/README.polkit
 
 
 %post
+%systemd_post tmux@.service
 # Add login shell entries to /etc/shells only when installing the package
 # for the first time:
 if [ "$1" = 1 ]; then
@@ -71,7 +68,11 @@ if [ "$1" = 1 ]; then
   fi
 fi
 
+%preun
+%systemd_preun tmux@.service
+
 %postun
+%systemd_postun_with_restart tmux@.service
 # Remove the login shell lines from /etc/shells only when uninstalling:
 if [ "$1" = 0 ] && [ -f %{_sysconfdir}/shells ]; then
   sed -i -e '\!^%{_bindir}/tmux$!d' -e '\!^/bin/tmux$!d' %{_sysconfdir}/shells
@@ -79,7 +80,7 @@ fi
 
 %files
 %license COPYING
-%doc CHANGES README* example_tmux.conf README.polkit
+%doc CHANGES README* example_tmux.conf
 %{_bindir}/tmux
 %{_mandir}/man1/tmux.1.*
 %{_unitdir}/tmux@.service

                 reply	other threads:[~2026-06-28 19:31 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178267509308.1.5440950683859086883.rpms-tmux-7e5b51ebab73@fedoraproject.org \
    --to=filiperosset@fedoraproject.org \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox