Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package vte for openSUSE:Factory checked in at 2026-08-09 21:31:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/vte (Old) and /work/SRC/openSUSE:Factory/.vte.new.16738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vte" Sun Aug 9 21:31:44 2026 rev:176 rq:1369841 version:0.84.1 Changes: -------- --- /work/SRC/openSUSE:Factory/vte/vte.changes 2026-04-10 17:47:39.876582433 +0200 +++ /work/SRC/openSUSE:Factory/.vte.new.16738/vte.changes 2026-08-09 21:32:14.159833275 +0200 @@ -1,0 +2,13 @@ +Sun Aug 2 07:22:24 UTC 2026 - Bjørn Lie <[email protected]> + +- Update to version 0.84.1: + * vte.sh: Unify the escape character's notation + * vte.sh: Preserve the previous value of PS0 + * vte.sh: Fix improper escaping in PS0 + * lib: Unify erase/backspace binding handling + * lib: Fix typo in comment + * app: Try a XTERM_RQTCAP query when --no-pty + * build: simdutf: Update to 8.2.0 + * app: Add preset option + +------------------------------------------------------------------- Old: ---- vte-0.84.0.tar.xz New: ---- vte-0.84.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ vte.spec ++++++ --- /var/tmp/diff_new_pack.iDk1KM/_old 2026-08-09 21:32:16.515913866 +0200 +++ /var/tmp/diff_new_pack.iDk1KM/_new 2026-08-09 21:32:16.531914413 +0200 @@ -27,7 +27,7 @@ %bcond_with glade_support Name: vte -Version: 0.84.0 +Version: 0.84.1 Release: 0 Summary: Terminal Emulator Library License: CC-BY-4.0 AND LGPL-3.0-or-later AND GPL-3.0-or-later AND MIT ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.iDk1KM/_old 2026-08-09 21:32:16.799923581 +0200 +++ /var/tmp/diff_new_pack.iDk1KM/_new 2026-08-09 21:32:16.847925222 +0200 @@ -1,6 +1,6 @@ -mtime: 1774020818 -commit: 745f14f9011718d47cce88bf6556fa5f41688d767aa4b157e6e4ac8f7d6d2b6b +mtime: 1785655608 +commit: f8257ab66d8c3d0e5013ea83c660242a8a38460f8f15b2f1624fc8730e5d03ac url: https://src.opensuse.org/GNOME/vte -revision: 745f14f9011718d47cce88bf6556fa5f41688d767aa4b157e6e4ac8f7d6d2b6b +revision: f8257ab66d8c3d0e5013ea83c660242a8a38460f8f15b2f1624fc8730e5d03ac projectscmsync: https://src.opensuse.org/GNOME/_ObsPrj ++++++ _service ++++++ --- /var/tmp/diff_new_pack.iDk1KM/_old 2026-08-09 21:32:17.015930969 +0200 +++ /var/tmp/diff_new_pack.iDk1KM/_new 2026-08-09 21:32:17.051932201 +0200 @@ -5,7 +5,7 @@ <param name="scm">git</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> - <param name="revision">0.84.0</param> + <param name="revision">0.84.1</param> <param name="exclude">doc/vttest.*</param> </service> <service name="tar" mode="manual"/> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.iDk1KM/_old 2026-08-09 21:32:17.231938358 +0200 +++ /var/tmp/diff_new_pack.iDk1KM/_new 2026-08-09 21:32:17.251939042 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://gitlab.gnome.org/GNOME/vte.git</param> - <param name="changesrevision">5da1ed34b210f2b000ef954c147f9a1391da363b</param></service></servicedata> + <param name="changesrevision">f2223e45d7f04c5383c59e76772501f0ed4215bc</param></service></servicedata> (No newline at EOF) ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-08-02 09:26:48.000000000 +0200 @@ -0,0 +1,5 @@ +*.obscpio +*.osc +_build.* +.pbuild +osc-collab.* ++++++ vte-0.84.0.tar.xz -> vte-0.84.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vte-0.84.0/meson.build new/vte-0.84.1/meson.build --- old/vte-0.84.0/meson.build 2026-03-14 21:44:12.000000000 +0100 +++ new/vte-0.84.1/meson.build 2026-07-18 20:17:22.000000000 +0200 @@ -17,7 +17,7 @@ project( 'vte', ['c', 'cpp'], - version: '0.84.0', + version: '0.84.1', license: ['LGPL-3.0-or-later', 'GPL-3.0-or-later'], default_options: [ 'buildtype=release', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vte-0.84.0/src/app/app.cc new/vte-0.84.1/src/app/app.cc --- old/vte-0.84.0/src/app/app.cc 2026-03-14 21:44:12.000000000 +0100 +++ new/vte-0.84.1/src/app/app.cc 2026-07-18 20:17:22.000000000 +0200 @@ -51,8 +51,11 @@ #include <algorithm> #include <cmath> +#include <string_view> #include <vector> +using namespace std::literals::string_view_literals; + #include <fmt/format.h> #include "std-glue.hh" @@ -525,6 +528,52 @@ return true; } + bool + preset_options(std::string_view value) + { + if (value == "gnome"sv || + value == "gnome-terminal"sv) { +#if VTE_GTK == 3 + fallback_scrolling = true; + kinetic_scrolling = false; + overlay_scrollbar = false; + scroll_unit_is_pixels = false; + scrollbar = true; + use_scrolled_window = false; +#elif VTE_GTK == 4 + fallback_scrolling = false; + kinetic_scrolling = true; // by default + overlay_scrollbar = false; // by default + scroll_unit_is_pixels = true; + scrollbar = true; + use_scrolled_window = true; +#else +#error +#endif // VTE_GTK + } +#if VTE_GTK == 4 + else if (value == "gnome-console"sv) { + fallback_scrolling = false; + kinetic_scrolling = false; + overlay_scrollbar = true; + scroll_unit_is_pixels = true; + scrollbar = true; + use_scrolled_window = true; + } else if (value == "ptyxis"sv) { + fallback_scrolling = false; + kinetic_scrolling = false; + overlay_scrollbar = true; // by default + scroll_unit_is_pixels = true; + scrollbar = true; + use_scrolled_window = true; + } +#endif // VTE_GTK == 4 + else { + return false; + } + return true; + }; + static gboolean parse_background_image(char const* option, char const* value, void* data, GError** error) { @@ -677,6 +726,18 @@ return rv; } + static gboolean + parse_presets(char const* option, char const* value, void* data, GError** error) + { + Options* that = static_cast<Options*>(data); + if (!that->preset_options(value)) { + g_set_error(error, G_OPTION_ERROR, G_OPTION_ERROR_BAD_VALUE, + "Unknown preset \"%s\"", value); + return false; + } + return true; + }; + char const* default_config_path() { auto const dh = g_get_user_config_dir(); @@ -1431,6 +1492,12 @@ { "test-mode", 0, 0, G_OPTION_ARG_NONE, &test_mode, "Enable test mode", nullptr }, + // This option exists to make it easier to run the app + // with the same scrolling options as some known vte-based + // terminals (gnome-terminal, gnome-console, ptyxis, ...). + { "x-presets", 0, G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_CALLBACK, (void*)parse_presets, + "Preset some options", "PRESET" }, + /* Options for compatibility with the old vteapp test application */ { "border-width", 0, G_OPTION_FLAG_HIDDEN, G_OPTION_ARG_INT, &extra_margin, nullptr, nullptr }, @@ -3318,6 +3385,12 @@ vteapp_window_tick(VteappWindow* window, GError** error) { + // First send some queries, see issue + // https://gitlab.gnome.org/GNOME/vte/-/work_items/2952 + constexpr auto query = "\eP+q6b62;6b44\e\\"sv; // XTERM_RQTCAP for "kb" and "kD" + vte_terminal_feed(window->terminal, query.data(), query.size()); + + // Tick tock tick tock g_timeout_add_seconds(1, (GSourceFunc) tick_cb, window); return true; } @@ -3332,7 +3405,7 @@ rv = vteapp_window_launch_argv(window, options.exec_argv, error); else if (options.command != nullptr) rv = vteapp_window_launch_commandline(window, options.command, error); - else if (options.shell) + else if (options.shell && options.pty) rv = vteapp_window_launch_shell(window, error); else if (options.pty) rv = vteapp_window_fork(window, error); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vte-0.84.0/src/vte.cc new/vte-0.84.1/src/vte.cc --- old/vte-0.84.0/src/vte.cc 2026-03-14 21:44:12.000000000 +0100 +++ new/vte-0.84.1/src/vte.cc 2026-07-18 20:17:22.000000000 +0200 @@ -5080,8 +5080,8 @@ normal = g_strdup_printf("%c", tio.c_cc[VERASE]); normal_length = 1; suppress_alt_esc = false; + break; } - break; } /* else: AUTO */ assert(auto_mode != eTTY); [[fallthrough]]; @@ -5109,6 +5109,32 @@ } } +void +Terminal::map_erase_binding_for_key(unsigned keysym, + unsigned modifiers, + char*& normal, + size_t& normal_length, + bool& suppress_alt_esc, + bool& add_modifiers) +{ + if (keysym == GDK_KEY_Delete || + keysym == GDK_KEY_KP_Delete) { + map_erase_binding(m_delete_binding, + EraseMode::eDELETE_SEQUENCE, + modifiers, + normal, normal_length, + suppress_alt_esc, add_modifiers); + } else if (keysym == GDK_KEY_BackSpace) { + map_erase_binding(m_backspace_binding == EraseMode::eAUTO ? EraseMode::eTTY : m_backspace_binding, + EraseMode::eASCII_BACKSPACE, + modifiers, + normal, normal_length, + suppress_alt_esc, add_modifiers); + } else { + __builtin_unreachable(); + } +} + std::pair<bool, bool> Terminal::key_event_action(vte::platform::KeyEvent const& event) { @@ -5398,26 +5424,18 @@ /* Map the key to a sequence name if we can. */ switch (event.keyval()) { case GDK_KEY_BackSpace: - map_erase_binding(m_backspace_binding, - ((m_backspace_binding != EraseMode::eTTY) && pty()) ? EraseMode::eTTY : EraseMode::eASCII_BACKSPACE, - m_modifiers, - normal, - normal_length, - suppress_alt_esc, - add_modifiers); - handled = true; - break; case GDK_KEY_KP_Delete: case GDK_KEY_Delete: - map_erase_binding(m_delete_binding, - EraseMode::eDELETE_SEQUENCE, - m_modifiers, - normal, - normal_length, - suppress_alt_esc, - add_modifiers); - handled = true; + map_erase_binding_for_key(event.keyval(), + m_modifiers, + normal, + normal_length, + suppress_alt_esc, + add_modifiers); + handled = true; break; + default: + break; } /* Try mapping to a literal or capability name. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vte-0.84.0/src/vte.sh.in new/vte-0.84.1/src/vte.sh.in --- old/vte-0.84.0/src/vte.sh.in 2026-03-14 21:44:12.000000000 +0100 +++ new/vte-0.84.1/src/vte.sh.in 2026-07-18 20:17:22.000000000 +0200 @@ -30,25 +30,32 @@ __vte_termprop_signal() { local errsv="$?" - printf '\033]666;%s!\033\\' "$1" + printf '\e]666;%s!\e\\' "$1" + return $errsv +} + +__vte_termprop_signal_psN() { + local errsv="$?" + # https://gitlab.gnome.org/GNOME/vte/-/work_items/2951 + printf '\\e]666;%s!\\e\\\\' "$1" return $errsv } __vte_termprop_set() { local errsv="$?" - printf '\033]666;%s=%s\033\\' "$1" "$2" + printf '\e]666;%s=%s\e\\' "$1" "$2" return $errsv } __vte_termprop_reset() { local errsv="$?" - printf '\033]666;%s\033\\' "$1" + printf '\e]666;%s\e\\' "$1" return $errsv } __vte_osc7 () { local errsv="$?" - printf "\033]7;file://%s%s\033\\" "${HOSTNAME}" "$(@libexecdir@/vte-urlencode-cwd)" + printf "\e]7;file://%s%s\e\\" "${HOSTNAME}" "$(@libexecdir@/vte-urlencode-cwd)" return $errsv } @@ -66,7 +73,7 @@ local pwd='~' [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} pwd="${pwd//[[:cntrl:]]}" - printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${pwd}" + printf "\e]0;%s@%s:%s\e\\" "${USER}" "${HOSTNAME%%.*}" "${pwd}" __vte_termprop_signal "vte.shell.precmd" return $errsv } @@ -85,7 +92,16 @@ else PROMPT_COMMAND="__vte_prompt_command" fi - PS0=$(__vte_termprop_signal "vte.shell.preexec") + + # '\r' serves two purposes here. + # It ensures that the kernel's cooked mode has the right idea of + # the column, important for handling TAB followed by BS keypresses. + # It is also a workaround for the string not to end in a backslash, as + # that would need different level of escaping in the 'promptvars' vs. + # non-'promptvars' cases to prevent spillover if a custom user string + # is appended, see + # https://gitlab.gnome.org/GNOME/vte/-/work_items/2951 + PS0=$(__vte_termprop_signal_psN "vte.shell.preexec")'\r'"${PS0:-}" # Shell integration if [[ "$PS1" != *\]133\;* ]]; then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vte-0.84.0/src/vteinternal.hh new/vte-0.84.1/src/vteinternal.hh --- old/vte-0.84.0/src/vteinternal.hh 2026-03-14 21:44:12.000000000 +0100 +++ new/vte-0.84.1/src/vteinternal.hh 2026-07-18 20:17:22.000000000 +0200 @@ -304,7 +304,7 @@ eUNDERLINE }; - /* NOTE: This needs to be kept in sync with the public VteEraseMode enum */ + /* NOTE: This needs to be kept in sync with the public VteEraseBinding enum */ enum EraseMode { eAUTO, eASCII_BACKSPACE, @@ -1626,6 +1626,12 @@ size_t& normal_length, bool& suppress_alt_esc, bool& add_modifiers); + void map_erase_binding_for_key(unsigned keysym, + unsigned modifiers, + char*& normal, + size_t& normal_length, + bool& suppress_alt_esc, + bool& add_modifiers); std::pair<bool, bool> key_event_action(vte::platform::KeyEvent const& event); bool set_enable_a11y(bool setting); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vte-0.84.0/src/vteseq.cc new/vte-0.84.1/src/vteseq.cc --- old/vte-0.84.0/src/vteseq.cc 2026-03-14 21:44:12.000000000 +0100 +++ new/vte-0.84.1/src/vteseq.cc 2026-07-18 20:17:22.000000000 +0200 @@ -9879,13 +9879,12 @@ char* normal = nullptr; auto len = 0uz; auto suppress = false, add_modifiers = false; - map_erase_binding(keycode == GDK_KEY_Delete ? m_delete_binding : m_backspace_binding, - keycode == GDK_KEY_Delete ? EraseMode::eDELETE_SEQUENCE : EraseMode::eTTY, - state, - normal, - len, - suppress, - add_modifiers); + map_erase_binding_for_key(keycode, + state, + normal, + len, + suppress, + add_modifiers); if (add_modifiers) { _vte_keymap_key_add_key_modifiers(keycode, state, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vte-0.84.0/subprojects/packagefiles/simdutf/1.patch new/vte-0.84.1/subprojects/packagefiles/simdutf/1.patch --- old/vte-0.84.0/subprojects/packagefiles/simdutf/1.patch 2026-03-14 21:44:12.000000000 +0100 +++ new/vte-0.84.1/subprojects/packagefiles/simdutf/1.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,34 +0,0 @@ -From 7390382f017cecf01de628be58957dc13494bdb8 Mon Sep 17 00:00:00 2001 -From: Christian Persch <[email protected]> -Date: Wed, 24 Dec 2025 09:28:12 +0100 -Subject: [PATCH] Try fixing VTE build with simdutf 7.7.1 - ---- - src/implementation.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/implementation.cpp b/src/implementation.cpp -index 2f4006d4..0c452c72 100644 ---- a/src/implementation.cpp -+++ b/src/implementation.cpp -@@ -873,7 +873,7 @@ public: - } - #endif // SIMDUTF_FEATURE_ASCII - --#if SIMDUTF_FEATURE_ASCII -+#if SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_ASCII - simdutf_warn_unused bool - validate_utf16le_as_ascii(const char16_t *, - size_t) const noexcept final override { -@@ -885,7 +885,7 @@ public: - size_t) const noexcept final override { - return false; - } --#endif // SIMDUTF_FEATURE_ASCII -+#endif // SIMDUTF_FEATURE_UTF16 && SIMDUTF_FEATURE_ASCII - - #if SIMDUTF_FEATURE_UTF16 || SIMDUTF_FEATURE_DETECT_ENCODING - simdutf_warn_unused bool --- -2.51.0 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vte-0.84.0/subprojects/packagefiles/simdutf/meson.build new/vte-0.84.1/subprojects/packagefiles/simdutf/meson.build --- old/vte-0.84.0/subprojects/packagefiles/simdutf/meson.build 2026-03-14 21:44:12.000000000 +0100 +++ new/vte-0.84.1/subprojects/packagefiles/simdutf/meson.build 2026-07-18 20:17:22.000000000 +0200 @@ -20,7 +20,7 @@ 'cpp_std=gnu++23' ], license: ['MIT',], - version: '7.7.1', + version: '8.2.0', ) py = import('python') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vte-0.84.0/subprojects/simdutf.wrap new/vte-0.84.1/subprojects/simdutf.wrap --- old/vte-0.84.0/subprojects/simdutf.wrap 2026-03-14 21:44:12.000000000 +0100 +++ new/vte-0.84.1/subprojects/simdutf.wrap 2026-07-18 20:17:22.000000000 +0200 @@ -16,9 +16,8 @@ [wrap-git] depth = 1 patch_directory = simdutf -revision = v7.7.1 +revision = v8.2.0 url = https://github.com/simdutf/simdutf.git -diff_files = simdutf/1.patch [provide] simdutf = simdutf_dep ++++++ vte.obsinfo ++++++ --- /var/tmp/diff_new_pack.iDk1KM/_old 2026-08-09 21:32:18.163970239 +0200 +++ /var/tmp/diff_new_pack.iDk1KM/_new 2026-08-09 21:32:18.175970649 +0200 @@ -1,5 +1,5 @@ name: vte -version: 0.84.0 -mtime: 1773521052 -commit: 5da1ed34b210f2b000ef954c147f9a1391da363b +version: 0.84.1 +mtime: 1784398642 +commit: f2223e45d7f04c5383c59e76772501f0ed4215bc
