Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package vte for openSUSE:Factory checked in 
at 2023-03-24 15:17:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vte (Old)
 and      /work/SRC/openSUSE:Factory/.vte.new.31432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "vte"

Fri Mar 24 15:17:30 2023 rev:144 rq:1073209 version:0.72.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/vte/vte.changes  2023-02-15 13:39:57.322599662 
+0100
+++ /work/SRC/openSUSE:Factory/.vte.new.31432/vte.changes       2023-03-24 
15:17:42.098035795 +0100
@@ -1,0 +2,65 @@
+Mon Mar 20 09:12:45 UTC 2023 - bjorn....@gmail.com
+
+- Update to version 0.72.0:
+  + fonts:
+    - Keep the PangoLayout unchanged
+    - Keep layout text available for cairo
+
+-------------------------------------------------------------------
+Mon Mar 06 17:01:33 UTC 2023 - bjorn....@gmail.com
+
+- Update to version 0.71.99:
+  + pty: Do not typecast to GSpawnFlags
+  + fonts: Remove unnecessary context change call
+  + widget:
+    - Fix a deprecation warning
+    - gtk4: Hint and quantize font metrics
+    - Fix introspection API
+    - Don't consume right clicks on gtk4
+
+-------------------------------------------------------------------
+Sun Feb 26 15:13:34 UTC 2023 - bjorn....@gmail.com
+
+- Update to version 0.71.92:
+  + all: Remove SIXEL support from stable branch
+  + app:
+    - Disconnect signal handlers on dispose
+    - Filter unwanted environment variables
+  + build:
+    - Add define for darwin
+    - Add define for openbsd
+    - Fix netbsd define
+    - Print warning on unstable release
+    - Update meson req version
+  + lib:
+    - Add gresources to vte/gtk4
+    - Fix spawning on netbsd
+  + missing: Add better fdwalk implementation for darawin
+  + parser:
+    - Add more OSC codes
+    - modes: Mark modes that should not be reset by DECSTR
+    - Update list of known OSC codes
+  + pty:
+    - netbsd fix
+    - Remove useless setenv calls
+  + widget:
+    - Add API to get text as HTML
+    - clipboard: Add missing else
+    - Clipboard fixes for gtk4
+    - Defer alignment API to next cycle
+    - Ensure the ringview is updated before converting coordinates
+    - Fix value type check
+    - Fix Widget::regex_match_check_at()
+    - gtk4:
+      . Don't grab the focus on focus-in
+      . Only notify terminal when focused
+      . Translate control+key events when using multiple layouts
+    - Implement clipboard for gtk4
+    - Modernise HTML output
+    - Offer text/html also in UTF-8 format
+    - Use correct end row for getting the selected text
+    - Use correct view coordinates
+  + Updated translations.
+- Rebase vte-enable-build-flag-pie.patch with quilt.
+
+-------------------------------------------------------------------

Old:
----
  vte-0.70.3.obscpio

New:
----
  vte-0.72.0.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ vte.spec ++++++
--- /var/tmp/diff_new_pack.nK2xWJ/_old  2023-03-24 15:17:43.838045083 +0100
+++ /var/tmp/diff_new_pack.nK2xWJ/_new  2023-03-24 15:17:43.842045105 +0100
@@ -27,7 +27,7 @@
 %bcond_with     glade_support
 
 Name:           vte
-Version:        0.70.3
+Version:        0.72.0
 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

++++++ _service ++++++
--- /var/tmp/diff_new_pack.nK2xWJ/_old  2023-03-24 15:17:43.866045232 +0100
+++ /var/tmp/diff_new_pack.nK2xWJ/_new  2023-03-24 15:17:43.870045254 +0100
@@ -5,7 +5,7 @@
     <param name="scm">git</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
-    <param name="revision">refs/tags/0.70.3</param>
+    <param name="revision">refs/tags/0.72.0</param>
     <param name="exclude">doc/vttest.*</param>
   </service>
   <service name="tar" mode="buildtime" />

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.nK2xWJ/_old  2023-03-24 15:17:43.890045361 +0100
+++ /var/tmp/diff_new_pack.nK2xWJ/_new  2023-03-24 15:17:43.890045361 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://gitlab.gnome.org/GNOME/vte.git</param>
-              <param 
name="changesrevision">177c96f2b7e58ba90a7b5738089e8a97094c84d5</param></service></servicedata>
+              <param 
name="changesrevision">164c0f1eb5165786e0addfe5317cf6de3061ddf9</param></service></servicedata>
 (No newline at EOF)
 

++++++ vte-0.70.3.obscpio -> vte-0.72.0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vte-0.70.3/meson.build new/vte-0.72.0/meson.build
--- old/vte-0.70.3/meson.build  2023-02-11 19:20:05.000000000 +0100
+++ new/vte-0.72.0/meson.build  2023-03-11 11:19:11.000000000 +0100
@@ -17,14 +17,14 @@
 project(
   'vte',
   ['c', 'cpp'],
-  version: '0.70.3',
+  version: '0.72.0',
   license: ['LGPL-3.0-or-later', 'GPL-3.0-or-later'],
   default_options: [
     'buildtype=release',
     'warning_level=0',
     'b_ndebug=false',
   ],
-  meson_version: '>= 0.51.0',
+  meson_version: '>= 0.60.0',
 )
 
 # Compiler requirements
@@ -49,7 +49,7 @@
 gio_req_version           = '2.52.0'
 glib_req_version          = '2.52.0'
 glib_min_req_version      = '2.52'
-glib_max_allowed_version  = '2.52'
+glib_max_allowed_version  = '2.60'
 gnutls_req_version        = '3.2.7'
 icu_uc_req_version        = '4.8'
 pango_req_version         = '1.22.0'
@@ -683,13 +683,9 @@
 
 # Dist
 
-# Meson bug https://github.com/mesonbuild/meson/issues/8440 breaks using vte
-# as subproject; see vte#345.
-if meson.version().version_compare('>= 0.58.0') or not meson.is_subproject()
-  meson.add_dist_script(
-    find_program('meson_changelog.sh'),
-  )
-endif
+meson.add_dist_script(
+  find_program('meson_changelog.sh'),
+)
 
 # Simple compat Makefile
 
@@ -743,7 +739,15 @@
 # Check stable/unstable status
 
 if (vte_minor_version % 2) != 0
-  warning('This is an unstable development release!\n')
+  if (vte_micro_version >= 99)
+    warning('This is a release candidate release!\n')
+  elif (vte_micro_version > 90)
+    warning('This is a beta release!\n')
+  else
+    warning('This is an unstable development release!\n')
+  endif
+else
+  message('This is a stable release.')
 endif
 
 # Done
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vte-0.70.3/po/be.po new/vte-0.72.0/po/be.po
--- old/vte-0.70.3/po/be.po     2023-02-11 19:20:05.000000000 +0100
+++ new/vte-0.72.0/po/be.po     2023-03-11 11:19:11.000000000 +0100
@@ -6,8 +6,8 @@
 msgstr ""
 "Project-Id-Version: vte.master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/vte/issues\n";
-"POT-Creation-Date: 2022-10-21 16:29+0000\n"
-"PO-Revision-Date: 2022-10-23 21:12+0300\n"
+"POT-Creation-Date: 2020-05-27 19:17+0000\n"
+"PO-Revision-Date: 2021-08-19 14:57+0300\n"
 "Last-Translator: Launchpad translators\n"
 "Language-Team: Belarusian <i18n-bel-googlegroups.com>\n"
 "Language: be\n"
@@ -16,43 +16,43 @@
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: Poedit 3.0\n"
 
-#: src/vte.cc:7628
+#: src/vte.cc:7763
 msgid "WARNING"
 msgstr "ПАПЯРЭДЖАННЕ"
 
-#: src/vte.cc:7630
+#: src/vte.cc:7765
 msgid "GnuTLS not enabled; data will be written to disk unencrypted!"
 msgstr "GnuTLS не ўключаны; даныя будуць запісаны 
на дыск незашыфраванымі!"
 
-#: src/spawn.cc:124
+#: src/spawn.cc:111
 #, c-format
 msgid "Failed to set pipe nonblocking: %s"
 msgstr "Не ўдалося наладзіць канал без 
блакіравання: %s"
 
-#: src/spawn.cc:169
+#: src/spawn.cc:155
 #, c-format
 msgid "poll error: %s"
 msgstr "памылка апытання: %s"
 
-#: src/spawn.cc:176
+#: src/spawn.cc:161
 msgid "Operation timed out"
 msgstr "Скончыўся тэрмін чакання аперацыі"
 
-#: src/spawn.cc:186
+#: src/spawn.cc:171
 msgid "Operation was cancelled"
 msgstr "Аперацыя скасавана"
 
-#: src/spawn.cc:204
+#: src/spawn.cc:189
 #, c-format
 msgid "Failed to read from child pipe (%s)"
-msgstr "Не ўдалося прачытаць даныя з 
канала-нашчадка (%s)"
+msgstr "Не ўдалося прачытаць даныя з канала 
нашчадка (%s)"
 
-#: src/spawn.cc:639
+#: src/spawn.cc:576
 #, c-format
 msgid "Failed to change to directory “%s”: %s"
 msgstr "Не ўдалося змяніць на каталог «%s»: %s"
 
-#: src/spawn.cc:708
+#: src/spawn.cc:645
 #, c-format
 msgid "Failed to execute child process “%s”: "
 msgstr "Не ўдалося выканаць працэс-нашчадак 
«%s»: "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vte-0.70.3/po/tr.po new/vte-0.72.0/po/tr.po
--- old/vte-0.70.3/po/tr.po     2023-02-11 19:20:05.000000000 +0100
+++ new/vte-0.72.0/po/tr.po     2023-03-11 11:19:11.000000000 +0100
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: vte master\n"
 "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/vte/issues\n";
-"POT-Creation-Date: 2022-08-06 12:19+0000\n"
+"POT-Creation-Date: 2022-07-13 19:14+0000\n"
 "PO-Revision-Date: 2020-04-28 15:36+0300\n"
 "Last-Translator: Emin Tufan Çetin <etce...@gmail.com>\n"
 "Language-Team: Türkçe <gnome-t...@gnome.org>\n"
@@ -25,11 +25,11 @@
 "X-Generator: Poedit 2.3\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: src/vte.cc:7643
+#: src/vte.cc:7688
 msgid "WARNING"
 msgstr "UYARI"
 
-#: src/vte.cc:7645
+#: src/vte.cc:7690
 msgid "GnuTLS not enabled; data will be written to disk unencrypted!"
 msgstr "GnuTLS etkin değil; veriler diske şifrelenmemiş olarak yazılacak!"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vte-0.70.3/src/cairo-glue.hh 
new/vte-0.72.0/src/cairo-glue.hh
--- old/vte-0.70.3/src/cairo-glue.hh    2023-02-11 19:20:05.000000000 +0100
+++ new/vte-0.72.0/src/cairo-glue.hh    2023-03-11 11:19:11.000000000 +0100
@@ -23,6 +23,7 @@
 
 namespace vte {
 
+VTE_DECLARE_FREEABLE(cairo_font_options_t, cairo_font_options_destroy);
 VTE_DECLARE_FREEABLE(cairo_rectangle_list_t, cairo_rectangle_list_destroy);
 VTE_DECLARE_FREEABLE(cairo_region_t, cairo_region_destroy);
 VTE_DECLARE_FREEABLE(cairo_surface_t, cairo_surface_destroy);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vte-0.70.3/src/clipboard-gtk.cc 
new/vte-0.72.0/src/clipboard-gtk.cc
--- old/vte-0.70.3/src/clipboard-gtk.cc 2023-02-11 19:20:05.000000000 +0100
+++ new/vte-0.72.0/src/clipboard-gtk.cc 2023-03-11 11:19:11.000000000 +0100
@@ -28,6 +28,7 @@
 #include <utility>
 
 #define MIME_TYPE_TEXT_PLAIN_UTF8 "text/plain;charset=utf-8"
+#define MIME_TYPE_TEXT_HTML_UTF8  "text/html;charset=utf-8"
 #define MIME_TYPE_TEXT_HTML_UTF16 "text/html"
 
 namespace vte::platform {
@@ -112,16 +113,23 @@
                                 break;
 
                         case ClipboardFormat::HTML: {
-                                auto [html, len] = text_to_utf16_mozilla(*str);
+                                auto const type = 
gtk_selection_data_get_data_type(data);
 
-                                // This makes yet another copy of the data... 
:(
-                                if (html) {
-                                        gtk_selection_data_set(data,
-                                                               
gtk_selection_data_get_target(data),
-                                                               // or 
gdk_atom_intern_static_string("text/html"),
-                                                               16,
-                                                               
reinterpret_cast<guchar const*>(html.get()),
-                                                               len);
+                                if (type == 
gdk_atom_intern_static_string(MIME_TYPE_TEXT_HTML_UTF8)) {
+                                        // This makes yet another copy of the 
data... :(
+                                        gtk_selection_data_set_text(data, 
str->data(), str->size());
+                                } else if (type == 
gdk_atom_intern_static_string(MIME_TYPE_TEXT_HTML_UTF16)) {
+                                        auto [html, len] = 
text_to_utf16_mozilla(*str);
+
+                                        // This makes yet another copy of the 
data... :(
+                                        if (html) {
+                                                gtk_selection_data_set(data,
+                                                                       
gtk_selection_data_get_target(data),
+                                                                       // or 
gdk_atom_intern_static_string("text/html"),
+                                                                       16,
+                                                                       
reinterpret_cast<guchar const*>(html.get()),
+                                                                       len);
+                                        }
                                 }
                                 break;
                         }
@@ -195,7 +203,11 @@
                                 gtk_target_list_add_text_targets(list.get(),
                                                                  
vte::to_integral(ClipboardFormat::TEXT));
                                 gtk_target_list_add(list.get(),
-                                                    
gdk_atom_intern_static_string("text/html"),
+                                                    
gdk_atom_intern_static_string(MIME_TYPE_TEXT_HTML_UTF8),
+                                                    0,
+                                                    
vte::to_integral(ClipboardFormat::HTML));
+                                gtk_target_list_add(list.get(),
+                                                    
gdk_atom_intern_static_string(MIME_TYPE_TEXT_HTML_UTF16),
                                                     0,
                                                     
vte::to_integral(ClipboardFormat::HTML));
 
@@ -301,7 +313,9 @@
                 auto task = vte::glib::take_ref(g_task_new(m_native, 
cancellable, callback, user_data));
                 g_task_set_priority(task.get(), io_priority);
                 g_task_set_source_tag(task.get(), &task_tag);
+#if GLIB_CHECK_VERSION(2, 60, 0)
                 g_task_set_name(task.get(), 
"vte-content-provider-write-async");
+#endif
 
                 auto const format = format_from_mime_type(mime_type);
                 if (format == ClipboardFormat::INVALID)
@@ -324,15 +338,21 @@
                         }
 
                         case ClipboardFormat::HTML: {
-                                auto [html, len] = 
m_offer->text_to_utf16_mozilla(*str);
-
-                                // This makes yet another copy of the data... 
:(
-                                if (html) {
-                                        bytes = 
vte::take_freeable(g_bytes_new_with_free_func(html.release(), len, g_free, 
nullptr));
-                                        break;
-                                } else {
-                                        return 
g_task_return_new_error(task.get(), G_IO_ERROR, G_IO_ERROR_INVALID_DATA,
-                                                                       
"Invalid data");
+                                auto const type = std::string_view{mime_type};
+                                if (type == MIME_TYPE_TEXT_HTML_UTF8) {
+                                        bytes = 
vte::take_freeable(g_bytes_new_with_free_func(g_strndup(str->data(), 
str->size()),
+                                                                               
               str->size(),
+                                                                               
               g_free, nullptr));
+                                } else if (type == MIME_TYPE_TEXT_HTML_UTF16) {
+                                        auto [html, len] = 
m_offer->text_to_utf16_mozilla(*str);
+
+                                        if (html) {
+                                                bytes = 
vte::take_freeable(g_bytes_new_with_free_func(html.release(), len, g_free, 
nullptr));
+                                                break;
+                                        } else {
+                                                return 
g_task_return_new_error(task.get(), G_IO_ERROR, G_IO_ERROR_INVALID_DATA,
+                                                                               
"Invalid data");
+                                        }
                                 }
 
                                 break;
@@ -411,6 +431,8 @@
                         break;
                 case ClipboardFormat::HTML:
                         
gdk_content_formats_builder_add_mime_type(builder.get(),
+                                                                  
MIME_TYPE_TEXT_HTML_UTF8);
+                        
gdk_content_formats_builder_add_mime_type(builder.get(),
                                                                   
MIME_TYPE_TEXT_HTML_UTF16);
                         break;
                 case ClipboardFormat::INVALID:
@@ -426,7 +448,8 @@
         {
                 if (mime_type == MIME_TYPE_TEXT_PLAIN_UTF8)
                         return ClipboardFormat::TEXT;
-                else if (mime_type == MIME_TYPE_TEXT_HTML_UTF16)
+                else if (mime_type == MIME_TYPE_TEXT_HTML_UTF8 ||
+                         mime_type == MIME_TYPE_TEXT_HTML_UTF16)
                         return ClipboardFormat::HTML;
                 else
                         return ClipboardFormat::INVALID;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vte-0.70.3/src/fonts-pangocairo.cc 
new/vte-0.72.0/src/fonts-pangocairo.cc
--- old/vte-0.70.3/src/fonts-pangocairo.cc      2023-02-11 19:20:05.000000000 
+0100
+++ new/vte-0.72.0/src/fonts-pangocairo.cc      2023-03-11 11:19:11.000000000 
+0100
@@ -20,6 +20,7 @@
 
 #include "fonts-pangocairo.hh"
 
+#include "cairo-glue.hh"
 #include "debug.h"
 #include "vtedefines.hh"
 
@@ -365,15 +366,36 @@
             language != pango_context_get_language(context.get()))
                 pango_context_set_language(context.get(), language);
 
-        /* Make sure our contexts have a font_options set.  We use
-          * this invariant in our context hash and equal functions.
-          */
-        if (!pango_cairo_context_get_font_options(context.get())) {
-                cairo_font_options_t *font_options;
-
-                font_options = cairo_font_options_create ();
-                pango_cairo_context_set_font_options(context.get(), 
font_options);
-                cairo_font_options_destroy (font_options);
+        // Ensure Pango and cairo are configured to quantize and hint font 
metrics.
+        // Terminal cells in vte have integer pixel sizes. If Pango is 
configured to do sub-pixel
+        // glyph advances, a small fractional part might get rounded up to a 
whole pixel - so the
+        // character spacing will appear too wide. Setting the cairo hint 
metrics option ensures
+        // that there are integer numbers of pixels both above and below the 
baseline.
+        {
+                auto font_options = 
vte::take_freeable(cairo_font_options_create());
+#if VTE_GTK == 4
+                cairo_font_options_set_hint_metrics(font_options.get(),
+                                                    CAIRO_HINT_METRICS_ON);
+#endif /* VTE_GTK == 4 */
+
+                if (auto const ctx_font_options =
+                    pango_cairo_context_get_font_options(context.get())) {
+                        auto const merged_font_options =
+                                
vte::take_freeable(cairo_font_options_copy(ctx_font_options));
+                        cairo_font_options_merge(merged_font_options.get(),
+                                                 font_options.get());
+                        pango_cairo_context_set_font_options(context.get(),
+                                                             
merged_font_options.get());
+                } else {
+                        // Make sure our contexts have a font_options set.  We 
use
+                        // this invariant in our context hash and equal 
functions.
+                        pango_cairo_context_set_font_options(context.get(),
+                                                             
font_options.get());
+                }
+
+#if VTE_GTK == 4
+                pango_context_set_round_glyph_positions (context.get(), true);
+#endif /* VTE_GTK == 4 */
         }
 
        if (G_UNLIKELY(s_font_info_for_context == nullptr))
@@ -452,11 +474,20 @@
        {
                
uinfo->set_coverage(UnistrInfo::Coverage::USE_PANGO_LAYOUT_LINE);
 
+                // When using a cairo surface which uses show_text_glyphs,
+                // pango_cairo_show_layout_line() will use the text from
+                // @line->layout and it must be the text that was used when
+                // the PangoLayoutLine was created.  Also, since @line was
+                // obtained from m_layout, when setting m_layout to a new
+                // text later this will change @line->layout to %NULL.
+                // To make this work, we instead adopt the @m_layout instance
+                // into @line->layout, and create a new @m_layout object.
+
+                line->layout = m_layout.release(); // adopted
                ufi->using_pango_layout_line.line = pango_layout_line_ref 
(line);
-               /* we hold a manual reference on layout.  pango currently
-                * doesn't work if line->layout is NULL.  ugh! */
-               pango_layout_set_text(m_layout.get(), "", -1); /* make layout 
disassociate from the line */
-               ufi->using_pango_layout_line.line->layout = (PangoLayout 
*)g_object_ref(m_layout.get());
+
+                auto const context = pango_layout_get_context(line->layout);
+                m_layout = vte::glib::take_ref(pango_layout_new(context));
 
        } else {
                PangoGlyphItem *glyph_item = (PangoGlyphItem *)line->runs->data;
@@ -489,8 +520,7 @@
                }
        }
 
-       /* release internal layout resources */
-       pango_layout_set_text(m_layout.get(), "", -1);
+        // Don't reset m_layout here; it'll get reset anyway when we next use 
it.
 
 #ifdef VTE_DEBUG
        m_coverage_count[0]++;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vte-0.70.3/src/glib-glue.hh 
new/vte-0.72.0/src/glib-glue.hh
--- old/vte-0.70.3/src/glib-glue.hh     2023-02-11 19:20:05.000000000 +0100
+++ new/vte-0.72.0/src/glib-glue.hh     2023-03-11 11:19:11.000000000 +0100
@@ -278,8 +278,24 @@
 
 namespace vte {
 
+VTE_DECLARE_FREEABLE(GArray, g_array_unref);
 VTE_DECLARE_FREEABLE(GBytes, g_bytes_unref);
 VTE_DECLARE_FREEABLE(GOptionContext, g_option_context_free);
+VTE_DECLARE_FREEABLE(GString, g_autoptr_cleanup_gstring_free);
 VTE_DECLARE_FREEABLE(GVariant, g_variant_unref);
 
 } // namespace vte
+
+namespace vte::glib {
+
+inline char*
+release_to_string(vte::Freeable<GString> str,
+                  gsize* length = nullptr) noexcept
+{
+        if (length)
+                *length = str.get()->len;
+
+        return g_string_free(str.release(), false);
+}
+
+} // namespace vte::glib
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vte-0.70.3/src/meson.build 
new/vte-0.72.0/src/meson.build
--- old/vte-0.70.3/src/meson.build      2023-02-11 19:20:05.000000000 +0100
+++ new/vte-0.72.0/src/meson.build      2023-03-11 11:19:11.000000000 +0100
@@ -325,7 +325,18 @@
 endif
 
 if get_option('gtk4')
-  libvte_gtk4_sources = libvte_common_sources + libvte_gtk4_public_headers + 
libvte_gtk4_enum_sources + graphene_glue_sources
+
+  libvte_gtk4_resources_data = files(
+  )
+
+  libvte_gtk4_resources_sources = gnome.compile_resources(
+    'vteresources-gtk4.cc',
+    'vte-gtk4.gresource.xml',
+    c_name: 'vte',
+    dependencies: libvte_gtk4_resources_data,
+  )
+
+  libvte_gtk4_sources = libvte_common_sources + libvte_gtk4_public_headers + 
libvte_gtk4_enum_sources + libvte_gtk4_resources_sources + graphene_glue_sources
   libvte_gtk4_cppflags = libvte_common_cppflags + gtk4_version_cppflags + 
['-DVTE_GTK=4',]
   libvte_gtk4_deps = libvte_common_deps + [gtk4_dep,]
   libvte_gtk4_public_deps = libvte_common_public_deps + [gtk4_dep,]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vte-0.70.3/src/modes.py new/vte-0.72.0/src/modes.py
--- old/vte-0.70.3/src/modes.py 2023-02-11 19:20:05.000000000 +0100
+++ new/vte-0.72.0/src/modes.py 2023-03-11 11:19:11.000000000 +0100
@@ -92,6 +92,7 @@
     number: int
     name: str
     default: bool
+    preserve_decstr: bool=False
     flags: Flags=Flags.NONE
     source: typing.Optional[Source]=None
     alias: typing.Optional[typing.List[str]]=None
@@ -226,7 +227,7 @@
     # References: ECMA-48 § F.5.2 Removed!
     #             VT525
     #
-    mode_ECMA('LNM', 20, default=False),
+    mode_ECMA('LNM', 20, default=False, preserve_decstr=True),
 
     mode_ECMA('GRCM', 21, default=True),
 
@@ -369,14 +370,14 @@
     # Sets page width to 132 (set) or 80 (reset) columns.
     #
     # Changing this mode resets the top, bottom, left, right margins;
-    # clears the screen (unless DECNCSM is set); resets DECLRMM; and clears
+    # clears the screen (unless DECNCSM is set); resets DECLRMM; and clearsb
     # the status line if host-writable.
     #
     # Default: reset
     #
     # References: VT525
     #
-    mode_WHAT('DEC_132_COLUMN', 3, default=False, flags=Flags.WRITABLE),
+    mode_WHAT('DEC_132_COLUMN', 3, default=False, preserve_decstr=True, 
flags=Flags.WRITABLE),
 
     # DECANM - ansi-mode
     # Resetting this puts the terminal into VT52 compatibility mode.
@@ -407,7 +408,7 @@
     #
     # References: VT525
     #
-    mode_WHAT('DEC_REVERSE_IMAGE', 5, default=False, flags=Flags.WRITABLE),
+    mode_WHAT('DEC_REVERSE_IMAGE', 5, default=False, preserve_decstr=True, 
flags=Flags.WRITABLE),
 
     # DECOM - origin mode
     # If set, the cursor is restricted to within the page margins.
@@ -442,7 +443,7 @@
     #
     # Probably not worth implementing.
     #
-    mode_WHAT('DECARM', 8, default=True),
+    mode_WHAT('DECARM', 8, default=True, preserve_decstr=True),
 
     mode_WHAT('XTERM_MOUSE_X10', 9, default=False, flags=Flags.WRITABLE),
     mode_WHAT('DECLTM', 11, default=False),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vte-0.70.3/src/parser-osc.hh 
new/vte-0.72.0/src/parser-osc.hh
--- old/vte-0.70.3/src/parser-osc.hh    2023-02-11 19:20:05.000000000 +0100
+++ new/vte-0.72.0/src/parser-osc.hh    2023-03-11 11:19:11.000000000 +0100
@@ -23,6 +23,8 @@
 
 _VTE_OSC(EMACS_51, 51)
 
+_VTE_OSC(FOOT_FLASH, 555)
+
 _VTE_OSC(ITERM2_GROWL, 9)
 _VTE_OSC(ITERM2_133, 133)
 _VTE_OSC(ITERM2_1337, 1337)
@@ -84,6 +86,9 @@
 _VTE_OSC(XTERM_LOGFILE, 46)
 _VTE_OSC(XTERM_SET_FONT, 50)
 _VTE_OSC(XTERM_SET_XSELECTION, 52)
+_VTE_OSC(XTERM_QUERY_ALLOWED_OPS, 60)
+_VTE_OSC(XTERM_QUERY_DISALLOWED_OPS, 61)
+_VTE_OSC(XTERM_QUERY_REPORT_OPS, 62)
 _VTE_OSC(XTERM_RESET_COLOR, 104)
 _VTE_OSC(XTERM_RESET_COLOR_SPECIAL, 105)
 _VTE_OSC(XTERM_SET_COLOR_MODE, 106)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vte-0.70.3/src/pty.cc new/vte-0.72.0/src/pty.cc
--- old/vte-0.70.3/src/pty.cc   2023-02-11 19:20:05.000000000 +0100
+++ new/vte-0.72.0/src/pty.cc   2023-03-11 11:19:11.000000000 +0100
@@ -253,15 +253,6 @@
             peer_fd != STDERR_FILENO) {
                 close(peer_fd);
        }
-
-        /* Now set the TERM environment variable */
-        /* FIXME: Setting environment here seems to have no effect, the merged 
envp2 will override on exec.
-         * By the way, we'd need to set the one from there, if any. */
-        g_setenv("TERM", VTE_TERMINFO_NAME, TRUE);
-
-        char version[7];
-        g_snprintf (version, sizeof (version), "%u", VTE_VERSION_NUMERIC);
-        g_setenv ("VTE_VERSION", version, TRUE);
 }
 
 /*
@@ -422,6 +413,15 @@
 #ifndef __linux__
         /* Other kernels may not support CLOEXEC or NONBLOCK above, so try to 
fall back */
         bool need_cloexec = false, need_nonblocking = false;
+
+#ifdef __NetBSD__
+        // NetBSD is a special case: posix_openpt() will not return EINVAL
+        // for unknown/unsupported flags but instead silently ignore these 
flags
+        // and just return a valid PTY but without the NONBLOCK | CLOEXEC 
flags set.
+        // So we always need to manually apply these flags there. See issue 
#2575.
+        need_cloexec = need_nonblocking = true;
+#else
+
         if (!fd && errno == EINVAL) {
                 /* Try without NONBLOCK and apply the flag afterward */
                 need_nonblocking = true;
@@ -432,6 +432,7 @@
                         fd = posix_openpt(O_RDWR | O_NOCTTY);
                 }
         }
+#endif /* __NetBSD__ */
 #endif /* !linux */
 
         if (!fd) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vte-0.70.3/src/vte/vteterminal.h 
new/vte-0.72.0/src/vte/vteterminal.h
--- old/vte-0.70.3/src/vte/vteterminal.h        2023-02-11 19:20:05.000000000 
+0100
+++ new/vte-0.72.0/src/vte/vteterminal.h        2023-03-11 11:19:11.000000000 
+0100
@@ -360,7 +360,12 @@
 
 _VTE_PUBLIC
 char* vte_terminal_get_text_selected(VteTerminal* terminal,
-                                     VteFormat format) _VTE_CXX_NOEXCEPT 
_VTE_GNUC_NONNULL(1);
+                                     VteFormat format) _VTE_CXX_NOEXCEPT 
_VTE_GNUC_NONNULL(1) G_GNUC_MALLOC;
+
+_VTE_PUBLIC
+char* vte_terminal_get_text_selected_full(VteTerminal* terminal,
+                                          VteFormat format,
+                                          gsize* length) _VTE_CXX_NOEXCEPT 
_VTE_GNUC_NONNULL(1) G_GNUC_MALLOC;
 
 /* Set what happens when the user strikes backspace or delete. */
 _VTE_PUBLIC
@@ -414,6 +419,16 @@
                                  VteSelectionFunc is_selected,
                                  gpointer user_data,
                                  GArray *attributes) _VTE_CXX_NOEXCEPT 
_VTE_GNUC_NONNULL(1) G_GNUC_MALLOC;
+
+_VTE_PUBLIC
+char* vte_terminal_get_text_range_format(VteTerminal* terminal,
+                                         VteFormat format,
+                                         long start_row,
+                                         long start_col,
+                                         long end_row,
+                                         long end_col,
+                                         gsize* length) _VTE_CXX_NOEXCEPT 
_VTE_GNUC_NONNULL(1) G_GNUC_MALLOC;
+
 _VTE_PUBLIC
 void vte_terminal_get_cursor_position(VteTerminal *terminal,
                                      glong *column,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vte-0.70.3/src/vte-gtk4.gresource.xml 
new/vte-0.72.0/src/vte-gtk4.gresource.xml
--- old/vte-0.70.3/src/vte-gtk4.gresource.xml   1970-01-01 01:00:00.000000000 
+0100
+++ new/vte-0.72.0/src/vte-gtk4.gresource.xml   2023-03-11 11:19:11.000000000 
+0100
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright © 2022 Christian Persch
+
+  This program is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program.  If not, see <https://www.gnu.org/licenses/>.
+-->
+<gresources>
+  <gresource prefix="/org/gnome/vte">
+  </gresource>
+</gresources>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vte-0.70.3/src/vte.cc new/vte-0.72.0/src/vte.cc
--- old/vte-0.70.3/src/vte.cc   2023-02-11 19:20:05.000000000 +0100
+++ new/vte-0.72.0/src/vte.cc   2023-03-11 11:19:11.000000000 +0100
@@ -6827,6 +6827,16 @@
                break;
        }
 
+#if VTE_GTK == 4
+        if (!handled &&
+            ((event.button() == vte::platform::MouseEvent::Button::eRIGHT) ||
+             !(event.modifiers() & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK)))) {
+                _vte_debug_print(VTE_DEBUG_EVENTS, "Showing context menu\n");
+                // FIXMEgtk4 context menu
+                handled = true;
+        }
+#endif /* VTE_GTK == 4 */
+
        /* Save the pointer state for later use. */
         if (event.button_value() >= 1 && event.button_value() <= 3)
                 m_mouse_pressed_buttons |= (1 << (event.button_value() - 1));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vte-0.70.3/src/vtegtk.cc new/vte-0.72.0/src/vtegtk.cc
--- old/vte-0.70.3/src/vtegtk.cc        2023-02-11 19:20:05.000000000 +0100
+++ new/vte-0.72.0/src/vtegtk.cc        2023-03-11 11:19:11.000000000 +0100
@@ -95,6 +95,18 @@
         GtkStyleProvider *style_provider;
 };
 
+template<>
+constexpr bool check_enum_value<VteFormat>(VteFormat value) noexcept
+{
+        switch (value) {
+        case VTE_FORMAT_TEXT:
+        case VTE_FORMAT_HTML:
+                return true;
+        default:
+                return false;
+        }
+}
+
 #if VTE_GTK == 4
 
 static void
@@ -2679,7 +2691,7 @@
 try
 {
         g_return_if_fail(VTE_IS_TERMINAL(terminal));
-        g_return_if_fail(format == VTE_FORMAT_TEXT || format == 
VTE_FORMAT_HTML);
+        g_return_if_fail(check_enum_value(format));
 
         WIDGET(terminal)->copy(vte::platform::ClipboardType::CLIPBOARD,
                                clipboard_format_from_vte(format));
@@ -4306,8 +4318,9 @@
  * This method is unaware of BiDi. The columns passed in @start_col and 
@end_row,
  * and returned in @attributes are logical columns.
  *
- * Note: since 0.68, passing a non-%NULL @array parameter is deprecated. 
Starting with
- * 0.72, passing a non-%NULL @array parameter will make this function itself 
return %NULL.
+ * Since 0.68, passing a non-%NULL @array parameter is deprecated.
+ * Since 0.72, passing a non-%NULL @array parameter will make this function
+ *   itself return %NULL.
  *
  * Returns: (transfer full) (nullable): a newly allocated text string, or 
%NULL.
  */
@@ -4322,17 +4335,79 @@
                            GArray *attributes) noexcept
 try
 {
-       g_return_val_if_fail(VTE_IS_TERMINAL(terminal), NULL);
         warn_if_callback(is_selected);
         warn_if_attributes(attributes);
-        auto text = IMPL(terminal)->get_text(start_row, start_col,
-                                             end_row, end_col,
-                                             false /* block */,
-                                             true /* wrap */,
-                                             attributes);
-        if (text == nullptr)
+        if (is_selected || attributes)
                 return nullptr;
-        return (char*)g_string_free(text, FALSE);
+
+        return vte_terminal_get_text_range_format(terminal,
+                                                  VTE_FORMAT_TEXT,
+                                                  start_row,
+                                                  start_col,
+                                                  end_row,
+                                                  end_col,
+                                                  nullptr);
+}
+catch (...)
+{
+        vte::log_exception();
+        return nullptr;
+}
+
+/**
+ * vte_terminal_get_text_range_format:
+ * @terminal: a #VteTerminal
+ * @format: the #VteFormat to use
+ * @start_row: the first row of the range
+ * @start_col: the first column of the range
+ * @end_row: the last row of the range
+ * @end_col: the last column of the range
+ * @length: (optional) (default 0) (out): a pointer to a #gsize to store the 
string length
+ *
+ * Returns the specified range of text in the specified format.
+ *
+ * Returns: (transfer full) (nullable): a newly allocated string, or %NULL.
+ *
+ * Since: 0.72
+ */
+char*
+vte_terminal_get_text_range_format(VteTerminal *terminal,
+                                   VteFormat format,
+                                   long start_row,
+                                   long start_col,
+                                   long end_row,
+                                   long end_col,
+                                   gsize* length) noexcept
+try
+{
+        g_return_val_if_fail(VTE_IS_TERMINAL(terminal), nullptr);
+        g_return_val_if_fail(check_enum_value(format), nullptr);
+
+        if (length)
+                *length = 0;
+
+        auto attributes = vte::Freeable<GArray>{};
+        if (format == VTE_FORMAT_HTML)
+                attributes = vte::take_freeable(g_array_new(false,
+                                                            true,
+                                                            sizeof(struct 
_VteCharAttributes)));
+
+        auto const impl = IMPL(terminal);
+        auto text = vte::take_freeable(impl->get_text(start_row,
+                                                      start_col,
+                                                      end_row,
+                                                      end_col,
+                                                      false,
+                                                      true,
+                                                      attributes.get()));
+        if (!text)
+                return nullptr;
+
+        if (format == VTE_FORMAT_HTML)
+                text = vte::take_freeable(impl->attributes_to_html(text.get(),
+                                                                   
attributes.get()));
+
+        return vte::glib::release_to_string(std::move(text), length);
 }
 catch (...)
 {
@@ -5679,7 +5754,7 @@
  * @format: the #VteFormat to use
  *
  * Gets the currently selected text in the format specified by @format.
- * Note that currently, only %VTE_FORMAT_TEXT is supported.
+ * Since 0.72, this function also supports %VTE_FORMAT_HTML format.xg
  *
  * Returns: (transfer full) (nullable): a newly allocated string containing 
the selected text, or %NULL if there is no selection or the format is not 
supported
  *
@@ -5690,20 +5765,47 @@
                                VteFormat format) noexcept
 try
 {
-        g_return_val_if_fail(VTE_IS_TERMINAL(terminal), nullptr);
+        return vte_terminal_get_text_selected_full(terminal,
+                                                   format,
+                                                   nullptr);
+}
+catch (...)
+{
+        vte::log_exception();
+        return nullptr;
+}
 
-        if (format != VTE_FORMAT_TEXT)
-                return nullptr;
+/**
+ * vte_terminal_get_text_selected_full:
+ * @terminal: a #VteTerminal
+ * @format: the #VteFormat to use
+ * @length: (optional) (default 0) (out): a pointer to a #gsize to store the 
string length
+ *
+ * Gets the currently selected text in the format specified by @format.
+ *
+ * Returns: (transfer full) (nullable): a newly allocated string containing 
the selected text, or %NULL if there is no selection or the format is not 
supported
+ *
+ * Since: 0.72
+ */
+char*
+vte_terminal_get_text_selected_full(VteTerminal* terminal,
+                                    VteFormat format,
+                                    gsize* length) noexcept
+try
+{
+        if (length)
+                *length = 0;
+
+        g_return_val_if_fail(VTE_IS_TERMINAL(terminal), nullptr);
 
         auto const selection = IMPL(terminal)->m_selection_resolved;
-        return vte_terminal_get_text_range(terminal,
-                                           selection.start_row(),
-                                           selection.start_column(),
-                                           selection.end_row(),
-                                           selection.end_column(),
-                                           nullptr,
-                                           nullptr,
-                                           nullptr);
+        return vte_terminal_get_text_range_format(terminal,
+                                                  format,
+                                                  selection.start_row(),
+                                                  selection.start_column(),
+                                                  selection.end_row(),
+                                                  selection.end_column(),
+                                                  length);
 }
 catch (...)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vte-0.70.3/src/vtepty.cc new/vte-0.72.0/src/vtepty.cc
--- old/vte-0.70.3/src/vtepty.cc        2023-02-11 19:20:05.000000000 +0100
+++ new/vte-0.72.0/src/vtepty.cc        2023-03-11 11:19:11.000000000 +0100
@@ -574,18 +574,18 @@
 static constexpr inline auto
 all_spawn_flags() noexcept
 {
-        return GSpawnFlags(G_SPAWN_LEAVE_DESCRIPTORS_OPEN |
-                           G_SPAWN_DO_NOT_REAP_CHILD |
-                           G_SPAWN_SEARCH_PATH |
-                           G_SPAWN_STDOUT_TO_DEV_NULL |
-                           G_SPAWN_STDERR_TO_DEV_NULL |
-                           G_SPAWN_CHILD_INHERITS_STDIN |
-                           G_SPAWN_FILE_AND_ARGV_ZERO |
-                           G_SPAWN_SEARCH_PATH_FROM_ENVP |
-                           G_SPAWN_CLOEXEC_PIPES |
-                           VTE_SPAWN_NO_PARENT_ENVV |
-                           VTE_SPAWN_NO_SYSTEMD_SCOPE |
-                           VTE_SPAWN_REQUIRE_SYSTEMD_SCOPE);
+        return (G_SPAWN_LEAVE_DESCRIPTORS_OPEN |
+                G_SPAWN_DO_NOT_REAP_CHILD |
+                G_SPAWN_SEARCH_PATH |
+                G_SPAWN_STDOUT_TO_DEV_NULL |
+                G_SPAWN_STDERR_TO_DEV_NULL |
+                G_SPAWN_CHILD_INHERITS_STDIN |
+                G_SPAWN_FILE_AND_ARGV_ZERO |
+                G_SPAWN_SEARCH_PATH_FROM_ENVP |
+                G_SPAWN_CLOEXEC_PIPES |
+                VTE_SPAWN_NO_PARENT_ENVV |
+                VTE_SPAWN_NO_SYSTEMD_SCOPE |
+                VTE_SPAWN_REQUIRE_SYSTEMD_SCOPE);
 }
 
 static constexpr inline auto

++++++ vte-enable-build-flag-pie.patch ++++++
--- /var/tmp/diff_new_pack.nK2xWJ/_old  2023-03-24 15:17:44.130046641 +0100
+++ /var/tmp/diff_new_pack.nK2xWJ/_new  2023-03-24 15:17:44.134046663 +0100
@@ -1,13 +1,13 @@
-Index: vte-0.69.92/meson.build
+Index: vte-0.71.92/meson.build
 ===================================================================
---- vte-0.69.92.orig/meson.build
-+++ vte-0.69.92/meson.build
+--- vte-0.71.92.orig/meson.build
++++ vte-0.71.92/meson.build
 @@ -23,6 +23,7 @@ project(
      'buildtype=release',
      'warning_level=0',
      'b_ndebug=false',
 +    'b_pie=true',
    ],
-   meson_version: '>= 0.51.0',
+   meson_version: '>= 0.60.0',
  )
 

++++++ vte.obsinfo ++++++
--- /var/tmp/diff_new_pack.nK2xWJ/_old  2023-03-24 15:17:44.158046791 +0100
+++ /var/tmp/diff_new_pack.nK2xWJ/_new  2023-03-24 15:17:44.162046813 +0100
@@ -1,5 +1,5 @@
 name: vte
-version: 0.70.3
-mtime: 1676139605
-commit: 177c96f2b7e58ba90a7b5738089e8a97094c84d5
+version: 0.72.0
+mtime: 1678529951
+commit: 164c0f1eb5165786e0addfe5317cf6de3061ddf9
 

Reply via email to