From d854dc597bd198d9f9c7a88c1127fc0d08c7ea5e Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Tue, 19 Oct 2021 08:38:14 +0200 Subject: [PATCH 1/9] Update debian/changelog --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index 96b855f95..e39f5addc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +i3-wm (4.20-1) unstable; urgency=medium + + * New upstream release. + + -- Michael Stapelberg Sat, 27 Feb 2021 10:32:17 +0100 + i3-wm (4.19.2-1) unstable; urgency=medium * New upstream release. From 39ff5699d60454835f0302793128821163767377 Mon Sep 17 00:00:00 2001 From: rvalieris Date: Fri, 22 Oct 2021 07:51:07 -0300 Subject: [PATCH 2/9] check for both arguments NULL on strings_differ --- i3bar/src/ipc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/i3bar/src/ipc.c b/i3bar/src/ipc.c index 0e12eafa7..06ddf9b5d 100644 --- a/i3bar/src/ipc.c +++ b/i3bar/src/ipc.c @@ -173,6 +173,9 @@ static bool strings_differ(char *a, char *b) { if (a_null != b_null) { return true; } + if (a_null && b_null) { + return false; + } return strcmp(a, b) != 0; } From b895d9d3cc55569936773963302d73cfe48c3fb7 Mon Sep 17 00:00:00 2001 From: Jakob Haufe Date: Wed, 27 Oct 2021 19:03:54 +0000 Subject: [PATCH 3/9] Extend title length for xmlto man.th.title.max.length defaults to 20 which leads to a broken .TH line for i3-migrate-config-to-v4.1: .TH "I3\-MIGRATE\-CONFIG\" "1" "02/01/2021" "i3 4\&.19\&.1" "i3 Manual" --- meson.build | 2 ++ 1 file changed, 2 insertions(+) diff --git a/meson.build b/meson.build index 5c3410da6..f2aee2240 100644 --- a/meson.build +++ b/meson.build @@ -229,6 +229,8 @@ if get_option('mans') output: '@BASENAME@.1', command: [ xmlto, + '--stringparam', + 'man.th.title.max.length=30', 'man', '-o', '@OUTDIR@', From 884717489f7d62345f7fe53d6d055d1e20fe3b4b Mon Sep 17 00:00:00 2001 From: lycurgus Date: Sun, 31 Oct 2021 19:01:32 +1100 Subject: [PATCH 4/9] Correct short form of raw option in i3-msg manpage --- man/i3-msg.man | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/i3-msg.man b/man/i3-msg.man index 97013fa51..dfe1f89bc 100644 --- a/man/i3-msg.man +++ b/man/i3-msg.man @@ -36,7 +36,7 @@ Instead of exiting right after receiving the first subscribed event, wait indefinitely for all of them. Can only be used with "-t subscribe". See the "subscribe" IPC message type below for details. -*-q, --raw*:: +*-r, --raw*:: Display the raw JSON reply instead of pretty-printing errors (for commands) or displaying the top-level config file contents (for GET_CONFIG). From 058ebb0d427ed3ad662e3388dcedfca8ad0f67ae Mon Sep 17 00:00:00 2001 From: Baptiste Daroussin Date: Tue, 2 Nov 2021 10:43:27 +0100 Subject: [PATCH 5/9] portability: add missing headers libi3.h defins a macors with the default modes to create a directory. Those modes are defined in sys/stat.h, so include the necessary header --- include/libi3.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/libi3.h b/include/libi3.h index d98fa1fe5..fd5fb03bb 100644 --- a/include/libi3.h +++ b/include/libi3.h @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include From c6ea9bbace42d3159167c548b56f30d2ed150642 Mon Sep 17 00:00:00 2001 From: Baptiste Daroussin Date: Tue, 2 Nov 2021 20:14:24 +0100 Subject: [PATCH 6/9] portability: use getcwd() instead of get_current_dir_name() (#4645) --- src/config_parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config_parser.c b/src/config_parser.c index 860ea86f9..9cba93bca 100644 --- a/src/config_parser.c +++ b/src/config_parser.c @@ -864,7 +864,7 @@ parse_file_result_t parse_file(struct parser_ctx *ctx, const char *f, IncludedFi FILE *fstr; char buffer[4096], key[512], value[4096], *continuation = NULL; - char *old_dir = get_current_dir_name(); + char *old_dir = getcwd(NULL, 0); char *dir = NULL; /* dirname(3) might modify the buffer, so make a copy: */ char *dirbuf = sstrdup(f); From 6fe33394e1f530731171e464a4315412c979b59f Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Tue, 19 Oct 2021 18:16:34 +0200 Subject: [PATCH 7/9] post-release release.sh changes --- release.sh | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/release.sh b/release.sh index 134423734..2df88ab0d 100755 --- a/release.sh +++ b/release.sh @@ -3,8 +3,8 @@ set -eu -export RELEASE_VERSION="4.19" -export PREVIOUS_VERSION="4.18.3" +export RELEASE_VERSION="4.20" +export PREVIOUS_VERSION="4.19.2" export RELEASE_BRANCH="next" if [ ! -e "../i3.github.io" ] @@ -37,8 +37,8 @@ STARTDIR=$PWD TMPDIR=$(mktemp -d) cd $TMPDIR -if ! wget https://i3wm.org/downloads/i3-${PREVIOUS_VERSION}.tar.bz2; then - echo "Could not download i3-${PREVIOUS_VERSION}.tar.bz2 (required for comparing files)." +if ! wget https://i3wm.org/downloads/i3-${PREVIOUS_VERSION}.tar.xz; then + echo "Could not download i3-${PREVIOUS_VERSION}.tar.xz (required for comparing files)." exit 1 fi git clone --quiet --branch "${RELEASE_BRANCH}" https://github.com/i3/i3 @@ -100,6 +100,11 @@ git config --add remote.origin.push "+refs/heads/stable:refs/heads/stable" cd "${TMPDIR}" mkdir debian +# Copy over the changelog because we expect it to be locally modified in the +# start directory. +cp "${STARTDIR}/debian/changelog" i3/debian/changelog +(cd i3 && git add debian/changelog && git commit -m 'Update debian/changelog') + cat > ${TMPDIR}/Dockerfile < Date: Wed, 3 Nov 2021 09:23:07 +0100 Subject: [PATCH 8/9] release i3 4.20.1 --- RELEASE-NOTES-4.20 | 93 -------------------------------------------- RELEASE-NOTES-4.20.1 | 27 +++++++++++++ meson.build | 4 +- 3 files changed, 29 insertions(+), 95 deletions(-) delete mode 100644 RELEASE-NOTES-4.20 create mode 100644 RELEASE-NOTES-4.20.1 diff --git a/RELEASE-NOTES-4.20 b/RELEASE-NOTES-4.20 deleted file mode 100644 index 4345a56bd..000000000 --- a/RELEASE-NOTES-4.20 +++ /dev/null @@ -1,93 +0,0 @@ - - ┌──────────────────────────────┐ - │ Release notes for i3 v4.20 │ - └──────────────────────────────┘ - -This is i3 v4.20. This version is considered stable. All users of i3 are -strongly encouraged to upgrade. - -Two long-awaited features have been added: - - 1. You can now use an “include” directive in your i3 config: - https://i3wm.org/docs/userguide.html#include - - 2. You can now enable showing window icons in window titlebars: - https://i3wm.org/docs/userguide.html#title_window_icon - -In case you notice any issues regarding your background/wallpaper, note: - - Some login managers (e.g. gdm) start the X11 server with the -background none - flag. When this flag is set, a background needs to be explicitly set later in - the X11 session, otherwise stale copies of closed windows remain visible on - the X11 root window (symptom looks like “my terminal window is not closing”). - - i3 works around this situation by setting a screenshot as background when - starting. Any background you set before starting i3 (e.g. in your Xsession) or - after starting i3 (e.g. via exec statements in the i3 config) will be visible. - - A downside of this workaround is that if you have any windows already open in - your X11 session, those will be part of the screenshot. - - To fix this issue, starting in v4.20, i3 detects whether the -background none - option is enabled and only then sets a screenshot as background. - - ┌────────────────────────────┐ - │ Changes in i3 v4.20 │ - └────────────────────────────┘ - - • default config: use dex for XDG autostart - • docs/ipc: document scratchpad_state - • ipc: the GET_CONFIG request now returns all included files and their details - • i3-nagbar: position on focused monitor by default - • i3-nagbar: add option to position on primary monitor - • i3bar: use first bar config by default - • i3-dmenu-desktop: ignore duplicate files and directories (fixes crash on NixOS) - • i3-dump-log -f now uses UNIX sockets instead of pthreads. The UNIX socket approach - should be more reliable and also more portable. - • When clicking on a tab, focus its child (like when scrolling), or (if - already focused), focus the tab container (alternatingly). - • Implement the include config directive: - https://i3wm.org/docs/userguide.html#include - • Implement optionally showing window icons in titlebar: - https://i3wm.org/docs/userguide.html#title_window_icon - • Allow for_window to match against WM_CLIENT_MACHINE - • Add %machine placeholder (WM_CLIENT_MACHINE) to title_format - • 'move container|workspace to output': toggle a workspace (or container) - between multiple outputs when multiple output names specified. - • Add 'move container|workspace to output next' - • Add 'all' window matching criterion - • Acquire the WM_Sn selection when starting as required by ICCCM - • Add --replace command line argument to replace an existing WM - • Notify systemd when i3 is ready, allowing other services in a systemd user session - to use i3 as a dependency - - ┌────────────────────────────┐ - │ Bugfixes │ - └────────────────────────────┘ - - • i3bar: properly close file descriptors - • i3bar: properly restart status command after config change - • i3bar: exit with 1 when a wrong command line argument is used - • ipc: return proper signed int for container positions: negative values were - returned as large 32 bits integers - • when initializing new outputs, avoid duplicating workspace numbers - • fix workspaces not moving to assigned output after output becomes available - • fix duplicate bindcode after i3-config-wizard - • fix commented-out rofi call in default i3 config - • clear pixmap before drawing to prevent visual garbage - • fix crash with "layout default" - • send an "output" event on XRandR 1.5 monitor configuration change - - ┌────────────────────────────┐ - │ Thanks! │ - └────────────────────────────┘ - -Thanks for testing, bugfixes, discussions and everything I forgot go out to: - - ajakk, Albert Safin, Anaël Beutot, Antoine Martin, Dmitri Goutnik, ekarpp, - Imran Virani, Ingo Bürk, Isaac Garzon, Ivan Milov, Jay Khandkar, j-jzk, Ken - Gilmer, Kjetil Torgrim Homme, lbonn, Michael Stapelberg, Orestis Floros, Ralph - Gutkowski, Romuald Brunet, tomty89, Tristan Giles, Tudor Brindus, Uli - Schlachter, Vincent Bernat, Vladimir Panteleev - --- Michael Stapelberg, 2021-10-19 diff --git a/RELEASE-NOTES-4.20.1 b/RELEASE-NOTES-4.20.1 new file mode 100644 index 000000000..62127460a --- /dev/null +++ b/RELEASE-NOTES-4.20.1 @@ -0,0 +1,27 @@ + + ┌──────────────────────────────┐ + │ Release notes for i3 v4.20.1 │ + └──────────────────────────────┘ + +This is i3 v4.20.1. This version is considered stable. All users of i3 are +strongly encouraged to upgrade. + + ┌────────────────────────────┐ + │ Bugfixes │ + └────────────────────────────┘ + + • i3bar: fix crash with multiple monitors + • xmlto: fix broken .TH line by extending title length + • i3-msg: fix --raw short form (-r) in manpage + • libi3: add missing sys/stat.h header + • use getcwd(NULL, 0) instead of GNU extension get_current_dir_name() + + ┌────────────────────────────┐ + │ Thanks! │ + └────────────────────────────┘ + +Thanks for testing, bugfixes, discussions and everything I forgot go out to: + + rvalieris, Jakob Haufe, lycurgus, Baptiste Daroussin + +-- Michael Stapelberg, 2021-11-03 diff --git a/meson.build b/meson.build index f2aee2240..91cb2fdea 100644 --- a/meson.build +++ b/meson.build @@ -6,7 +6,7 @@ project( 'i3', 'c', - version: '4.20', + version: '4.20.1', default_options: [ 'c_std=c11', 'warning_level=1', # enable all warnings (-Wall) @@ -63,7 +63,7 @@ config_h = declare_dependency( sources: vcs_tag( input: config_h_in, output: 'config.h', - fallback: meson.project_version() + '-non-git', + fallback: meson.project_version() + ' (2021-11-03)', ) ) From 63aec362c9785b5690f2afd6470a34cb29ea63af Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Wed, 3 Nov 2021 09:23:23 +0100 Subject: [PATCH 9/9] Restore non-git version suffix --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 91cb2fdea..27fc9fb58 100644 --- a/meson.build +++ b/meson.build @@ -63,7 +63,7 @@ config_h = declare_dependency( sources: vcs_tag( input: config_h_in, output: 'config.h', - fallback: meson.project_version() + ' (2021-11-03)', + fallback: meson.project_version() + '-non-git', ) )