Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package pangomm for openSUSE:Factory checked 
in at 2024-09-30 15:34:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pangomm (Old)
 and      /work/SRC/openSUSE:Factory/.pangomm.new.29891 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "pangomm"

Mon Sep 30 15:34:51 2024 rev:49 rq:1204691 version:2.54.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/pangomm/pangomm.changes  2024-03-20 
21:19:44.369936428 +0100
+++ /work/SRC/openSUSE:Factory/.pangomm.new.29891/pangomm.changes       
2024-09-30 15:35:02.223626882 +0200
@@ -1,0 +2,25 @@
+Thu Jul 25 17:45:42 UTC 2024 - Bjørn Lie <bjorn....@gmail.com>
+
+- Update to version 2.54.0:
+  + Color: Add parse_with_alpha().
+  + Context: Add set/get_round_glyph_positions().
+  + Item: Add default constructor, get_char_offset().
+  + Layout: Add set/get_justify_last_line(), get_direction(),
+    get_caret_pos().
+  + LayoutIter: Add operator bool(), get_run_baseline().
+  + LayoutLine: Add is_paragraph_start(), get_resolved_direction(),
+    get_height().
+  + TabArray: Add TabArray(const Glib::ustring& text) constructor,
+    operator bool(), set_positions_in_pixels(), to_string(),
+    set/get_decimal_point(), sort().
+  + Documentation:
+    - Language::get_scripts(): Improve documentation.
+    - Don't link to removed parts of library.gnome.org.
+  + Build:
+    - Require pango >= 1.54.0.
+    - Meson build: Require meson >= 0.62.0.
+    - Use Meson's pkgconfig module instead of using the *.pc.in
+      templates.
+- Drop pangomm-docs-without-timestamp.patch, fixed upstream.
+
+-------------------------------------------------------------------

Old:
----
  pangomm-2.52.0.obscpio
  pangomm-docs-without-timestamp.patch

New:
----
  pangomm-2.54.0.obscpio

BETA DEBUG BEGIN:
  Old:      templates.
- Drop pangomm-docs-without-timestamp.patch, fixed upstream.
BETA DEBUG END:

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

Other differences:
------------------
++++++ pangomm.spec ++++++
--- /var/tmp/diff_new_pack.qeZeRF/_old  2024-09-30 15:35:02.755648958 +0200
+++ /var/tmp/diff_new_pack.qeZeRF/_new  2024-09-30 15:35:02.759649124 +0200
@@ -20,17 +20,13 @@
 %define libname  lib%{name}-2_48-1
 
 Name:           pangomm
-Version:        2.52.0
+Version:        2.54.0
 Release:        0
 Summary:        C++ interface for pango
 License:        GPL-2.0-or-later AND LGPL-2.1-or-later AND GPL-3.0-only
 Group:          Development/Libraries/C and C++
 URL:            https://www.gtkmm.org
-# Source0 disabled, we are using source service
-#Source0:        
https://download.gnome.org/sources/%%{name}/2.50/%%{name}-%%{version}.tar.xz
-Source0:        %{name}-%{version}.tar.xz
-# PATCH-FIX-UPSTREAM pangomm-docs-without-timestamp.patch -- Do not add 
timestamp to generated doc files.
-Patch0:         pangomm-docs-without-timestamp.patch
+Source0:        %{name}-%{version}.tar.zst
 
 BuildRequires:  c++_compiler
 BuildRequires:  doxygen
@@ -41,13 +37,13 @@
 BuildRequires:  mm-common
 BuildRequires:  perl(XML::Parser)
 #
-BuildRequires:  meson >= 0.55.0
+BuildRequires:  meson >= 0.62.0
 BuildRequires:  pkgconfig
 BuildRequires:  xsltproc
 BuildRequires:  pkgconfig(cairomm-1.16) >= 1.2.2
 BuildRequires:  pkgconfig(giomm-2.68)
 BuildRequires:  pkgconfig(glibmm-2.68)
-BuildRequires:  pkgconfig(pangocairo) >= 1.52.0
+BuildRequires:  pkgconfig(pangocairo) >= 1.54.0
 
 %description
 pangomm provides a C++ interface to the pango library.

++++++ _service ++++++
--- /var/tmp/diff_new_pack.qeZeRF/_old  2024-09-30 15:35:02.787650286 +0200
+++ /var/tmp/diff_new_pack.qeZeRF/_new  2024-09-30 15:35:02.791650452 +0200
@@ -3,7 +3,7 @@
   <service name="obs_scm" mode="manual">
     <param name="scm">git</param>
     <param name="url">https://gitlab.gnome.org/GNOME/pangomm.git</param>
-    <param name="revision">2.52.0</param>
+    <param name="revision">2.54.0</param>
     <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
     <param name="versionrewrite-pattern">(.*)\+0</param>
     <param name="versionrewrite-replacement">\1</param>
@@ -12,7 +12,7 @@
   <service name="tar" mode="buildtime"/>
   <service name="recompress" mode="buildtime">
     <param name="file">*.tar</param>
-    <param name="compression">xz</param>
+    <param name="compression">zst</param>
   </service>
   <service name="set_version" mode="manual" />
 </services>

++++++ pangomm-2.52.0.obscpio -> pangomm-2.54.0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/.gitlab-ci.yml 
new/pangomm-2.54.0/.gitlab-ci.yml
--- old/pangomm-2.52.0/.gitlab-ci.yml   2024-03-15 18:11:11.000000000 +0100
+++ new/pangomm-2.54.0/.gitlab-ci.yml   2024-07-25 16:33:39.000000000 +0200
@@ -1,4 +1,4 @@
-# 2024-03-14: ubuntu:latest = 22.04, ubuntu:rolling = 23.10, ubuntu:devel = 
24.04
+# 2024-06-11: ubuntu:latest = 24.04, ubuntu:rolling = 24.04, ubuntu:devel = 
24.10
 # See https://hub.docker.com/_/ubuntu
 image: ubuntu:rolling
 
@@ -25,6 +25,10 @@
                   meson
                   ninja-build
                   glib-networking
+
+  PANGO_MESON_OPTIONS: -Dpango:build-testsuite=false
+                       -Dpango:build-examples=false
+
   GIO_EXTRA_MODULES: "/usr/lib/x86_64-linux-gnu/gio/modules"
   GIT_SUBMODULE_STRATEGY: normal
 
@@ -43,13 +47,13 @@
     # -Ddebug=false + -Doptimization=3 correspond to -Dbuildtype=release
     # Don't use warning_level and werror. They are applied also to subprojects.
     # meson setup --prefix=/usr --libdir=lib -Ddebug=false -Doptimization=3 
-Dwarnings=fatal -Dwarning_level=3 -Dwerror=true
-    - meson setup --prefix=/usr --libdir=lib -Ddebug=false -Doptimization=3 
-Dwarnings=fatal
+    - meson setup --prefix=/usr --libdir=lib -Ddebug=false -Doptimization=3 
-Dwarnings=fatal $PANGO_MESON_OPTIONS
     - meson compile
     # Must wrap the command in single quotes because of the colon.
     # See 
https://gitlab.gnome.org/help/ci/yaml/script.md#use-special-characters-with-script
     # Don't test subprojects.
     - 'meson test --suite pangomm:'
-    - meson install
+    - meson install --quiet
   artifacts:
     when: always
     paths:
@@ -65,11 +69,11 @@
     # -Ddebug=false + -Doptimization=3 correspond to -Dbuildtype=release
     # Don't use warning_level and werror. They are applied also to subprojects.
     # CC=clang CXX=clang++ meson setup --prefix=/usr --libdir=lib 
-Ddebug=false -Doptimization=3 -Dwarnings=fatal -Dwarning_level=3 -Dwerror=true
-    - CC=clang CXX=clang++ meson setup --prefix=/usr --libdir=lib 
-Ddebug=false -Doptimization=3 -Dwarnings=fatal
+    - CC=clang CXX=clang++ meson setup --prefix=/usr --libdir=lib 
-Ddebug=false -Doptimization=3 -Dwarnings=fatal $PANGO_MESON_OPTIONS
     - meson compile
     # Don't test subprojects.
     - 'meson test --suite pangomm:'
-    - meson install
+    - meson install --quiet
   allow_failure: true
   artifacts:
     when: on_failure
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/NEWS new/pangomm-2.54.0/NEWS
--- old/pangomm-2.52.0/NEWS     2024-03-15 18:11:11.000000000 +0100
+++ new/pangomm-2.54.0/NEWS     2024-07-25 16:33:39.000000000 +0200
@@ -1,3 +1,31 @@
+2.54.0 (stable) 2024-07-25:
+
+* Color: Add parse_with_alpha().
+* Context: Add set/get_round_glyph_positions().
+* Item: Add default constructor, get_char_offset().
+* Layout: Add set/get_justify_last_line(), get_direction(),
+  get_caret_pos().
+* LayoutIter: Add operator bool(), get_run_baseline().
+* LayoutLine: Add is_paragraph_start(), get_resolved_direction(),
+  get_height().
+* TabArray: Add TabArray(const Glib::ustring& text) constructor,
+  operator bool(), set_positions_in_pixels(), to_string(),
+  set/get_decimal_point(), sort().
+  (Kjell Ahlstedt)
+
+Documentation:
+* Language::get_scripts(): Improve documentation.
+* Don't link to removed parts of library.gnome.org.
+  (Kjell Ahlstedt)
+
+Build:
+* Require pango >= 1.54.0.
+* Meson build: Require meson >= 0.62.0.
+  Use Meson's pkgconfig module instead of using
+  the *.pc.in templates.
+  (Kjell Ahlstedt)
+
+
 2.52.0 (stable):
 
 * FontFamily: Add property_item_type(), property_n_items(),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/configure.ac 
new/pangomm-2.54.0/configure.ac
--- old/pangomm-2.52.0/configure.ac     2024-03-15 18:11:11.000000000 +0100
+++ new/pangomm-2.54.0/configure.ac     2024-07-25 16:33:39.000000000 +0200
@@ -15,7 +15,7 @@
 ## You should have received a copy of the GNU Lesser General Public License
 ## along with this library.  If not, see <http://www.gnu.org/licenses/>.
 
-AC_INIT([pangomm], [2.52.0],
+AC_INIT([pangomm], [2.54.0],
         [https://gitlab.gnome.org/GNOME/pangomm/issues/],
         [pangomm], [http://www.gtkmm.org/])
 AC_PREREQ([2.59])
@@ -49,7 +49,7 @@
 AC_DISABLE_STATIC
 LT_INIT([win32-dll])
 
-AC_SUBST([PANGOMM_MODULES], ['giomm-2.68 >= 2.68.0 cairomm-1.16 >= 1.15.1 
pangocairo >= 1.52.0'])
+AC_SUBST([PANGOMM_MODULES], ['giomm-2.68 >= 2.68.0 cairomm-1.16 >= 1.15.1 
pangocairo >= 1.54.0'])
 AC_SUBST([MSVC_TOOLSET_VER], [''])
 PKG_CHECK_MODULES([PANGOMM], [$PANGOMM_MODULES])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/docs/reference/Doxyfile.in 
new/pangomm-2.54.0/docs/reference/Doxyfile.in
--- old/pangomm-2.52.0/docs/reference/Doxyfile.in       2024-03-15 
18:11:11.000000000 +0100
+++ new/pangomm-2.54.0/docs/reference/Doxyfile.in       2024-07-25 
16:33:39.000000000 +0200
@@ -163,7 +163,6 @@
 HTML_COLORSTYLE_HUE    = 220
 HTML_COLORSTYLE_SAT    = 100
 HTML_COLORSTYLE_GAMMA  = 80
-HTML_TIMESTAMP         = YES
 HTML_DYNAMIC_SECTIONS  = NO
 HTML_INDEX_NUM_ENTRIES = 100
 GENERATE_DOCSET        = NO
@@ -194,7 +193,6 @@
 TREEVIEW_WIDTH         = 250
 EXT_LINKS_IN_WINDOW    = NO
 FORMULA_FONTSIZE       = 10
-FORMULA_TRANSPARENT    = YES
 USE_MATHJAX            = NO
 MATHJAX_FORMAT         = HTML-CSS
 MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
@@ -226,7 +224,6 @@
 LATEX_BATCHMODE        = NO
 LATEX_HIDE_INDICES     = NO
 LATEX_BIB_STYLE        = plain
-LATEX_TIMESTAMP        = NO
 #---------------------------------------------------------------------------
 # Configuration options related to the RTF output
 #---------------------------------------------------------------------------
@@ -303,8 +300,6 @@
 HIDE_UNDOC_RELATIONS   = NO
 HAVE_DOT               = YES
 DOT_NUM_THREADS        = 0
-DOT_FONTNAME           = Sans
-DOT_FONTSIZE           = 10
 DOT_FONTPATH           =
 CLASS_GRAPH            = YES
 COLLABORATION_GRAPH    = NO
@@ -328,7 +323,6 @@
 PLANTUML_INCLUDE_PATH  =
 DOT_GRAPH_MAX_NODES    = 50
 MAX_DOT_GRAPH_DEPTH    = 0
-DOT_TRANSPARENT        = NO
 DOT_MULTI_TARGETS      = YES
 GENERATE_LEGEND        = YES
 DOT_CLEANUP            = YES
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/docs/reference/meson.build 
new/pangomm-2.54.0/docs/reference/meson.build
--- old/pangomm-2.52.0/docs/reference/meson.build       2024-03-15 
18:11:11.000000000 +0100
+++ new/pangomm-2.54.0/docs/reference/meson.build       2024-07-25 
16:33:39.000000000 +0200
@@ -2,7 +2,7 @@
 
 # Input: built_files_root, project_source_root, pangomm_pcname, python3,
 #        hg_ccg_basenames, extra_h_files, built_h_file_targets, 
install_datadir,
-#        doc_reference_py, can_add_dist_script
+#        doc_reference_py
 # Output: install_docdir, install_devhelpdir, if build_documentation: tag_file
 
 tag_file_modules = [
@@ -17,7 +17,7 @@
 foreach module : tag_file_modules
   depmod = dependency(module, required: false)
   if depmod.found()
-    doxytagfile = depmod.get_variable(pkgconfig: 'doxytagfile', internal: 
'doxytagfile', default_value: '')
+    doxytagfile = depmod.get_variable('doxytagfile', default_value: '')
     if doxytagfile != ''
       if depmod.type_name() == 'internal'
         # Subprojects must build their tag files before doxygen is called.
@@ -27,8 +27,8 @@
           doxygen_tag_targets += 
subproject(module).get_variable('global_tag_file_target')
         endif
       endif
-      htmlrefpub = depmod.get_variable(pkgconfig: 'htmlrefpub', internal: 
'htmlrefpub', default_value: '')
-      htmlrefdir = depmod.get_variable(pkgconfig: 'htmlrefdir', internal: 
'htmlrefdir', default_value: '')
+      htmlrefpub = depmod.get_variable('htmlrefpub', default_value: '')
+      htmlrefdir = depmod.get_variable('htmlrefdir', default_value: '')
       if htmlrefpub == ''
         htmlrefpub = htmlrefdir
       elif htmlrefdir == ''
@@ -162,14 +162,12 @@
 
 install_data(image_files, install_dir: install_image_docdir)
 
-if can_add_dist_script
-  # Distribute built files and files copied by mm-common-get.
-  meson.add_dist_script(
-    python3, doc_reference_py, 'dist_doc',
-    doctool_dir,
-    doctool_dist_dir,
-    meson.current_build_dir(),
-    tag_file.full_path(),
-    devhelp_file.full_path(),
-  )
-endif
+# Distribute built files and files copied by mm-common-get.
+meson.add_dist_script(
+  python3, doc_reference_py, 'dist_doc',
+  doctool_dir,
+  doctool_dist_dir,
+  meson.current_build_dir(),
+  tag_file.full_path(),
+  devhelp_file.full_path(),
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/meson.build 
new/pangomm-2.54.0/meson.build
--- old/pangomm-2.52.0/meson.build      2024-03-15 18:11:11.000000000 +0100
+++ new/pangomm-2.54.0/meson.build      2024-07-25 16:33:39.000000000 +0200
@@ -1,14 +1,13 @@
 # This file is part of pangomm.
 
 project('pangomm', 'cpp',
-  version: '2.52.0',
+  version: '2.54.0',
   license: 'LGPLv2.1+',
   default_options: [
     'cpp_std=c++17',
     'warning_level=1',
   ],
-  meson_version: '>= 0.55.0', # required for meson.add_dist_script(python3, 
...)
-                              # and meson.add_install_script(python3, ...)
+  meson_version: '>= 0.62.0', # required for variables in pkgconfig.generate()
 )
 
 pangomm_api_version = '2.48'
@@ -46,7 +45,7 @@
 cpp_compiler = meson.get_compiler('cpp')
 is_msvc = cpp_compiler.get_id() == 'msvc'
 
-python3 = find_program('python3', version: '>=3.5')
+python3 = find_program('python3', version: '>=3.7')
 
 # Do we build from a git repository?
 # Suppose we do if and only if the meson.build file is tracked by git.
@@ -111,7 +110,7 @@
 
 # Pango supported pkg-config files on MSVC files for a good while,
 # so just use that
-pangocairo_req = '>= 1.52.0'
+pangocairo_req = '>= 1.54.0'
 pangocairo_dep = dependency('pangocairo', version: pangocairo_req)
 
 glibmm_req_minor_ver = '68'
@@ -122,11 +121,11 @@
 giomm_dep = dependency('giomm-2.@0@'.format(glibmm_req_minor_ver), version: 
glibmm_req)
 
 pangomm_build_dep = [giomm_dep, cairomm_dep, pangocairo_dep]
-pangomm_requires = ' '.join([
-  'giomm-2.@0@'.format(glibmm_req_minor_ver), glibmm_req,
-  'cairomm-1.@0@'.format(cairomm_req_minor_ver), cairomm_req,
-  'pangocairo', pangocairo_req,
-])
+pangomm_pc_requires = [
+  'giomm-2.@0@'.format(glibmm_req_minor_ver) + glibmm_req,
+  'cairomm-1.@0@'.format(cairomm_req_minor_ver) + cairomm_req,
+  'pangocairo' + pangocairo_req,
+]
 
 # Some dependencies are required only in maintainer mode and/or if
 # reference documentation shall be built.
@@ -144,7 +143,7 @@
 xsltproc = find_program('xsltproc', required: build_documentation)
 
 # Where to find gmmproc and generate_wrap_init.pl.
-gmmproc_dir = glibmm_dep.get_variable(pkgconfig: 'gmmprocdir', internal: 
'gmmprocdir')
+gmmproc_dir = glibmm_dep.get_variable('gmmprocdir')
 
 # Script files copied to 'untracked' by mm-common-get.
 script_dir = project_source_root / 'untracked' / 'build_scripts'
@@ -253,42 +252,37 @@
   )
 endif
 
-# add_dist_script() is not allowed in a subproject if meson.version() < 0.58.0.
-can_add_dist_script = not meson.is_subproject() or 
meson.version().version_compare('>= 0.58.0')
-
 subdir('tools/extra_defs_gen')
 subdir('pango')
 subdir('MSVC_NMake/pangomm')
 subdir('pango/pangomm')
 subdir('docs/reference')
 
-if can_add_dist_script
-  # Add a ChangeLog file to the distribution directory.
-  meson.add_dist_script(
-    python3, dist_changelog_py,
-    project_source_root,
-  )
+# Add a ChangeLog file to the distribution directory.
+meson.add_dist_script(
+  python3, dist_changelog_py,
+  project_source_root,
+)
 
-  # Don't distribute these files.
-  dont_distribute = [
-    'pangomm.doap',
-    '.gitlab-ci.yml',
-  ]
-  # Add build scripts to the distribution directory, and delete .gitignore
-  # files and an empty $MESON_PROJECT_DIST_ROOT/build/ directory.
-  meson.add_dist_script(
-    python3, dist_build_scripts_py,
-    project_source_root,
-    'untracked' / 'build_scripts',
-    dont_distribute,
-  )
-endif
+# Don't distribute these files.
+dont_distribute = [
+  'pangomm.doap',
+  '.gitlab-ci.yml',
+]
+# Add build scripts to the distribution directory, and delete .gitignore
+# files and an empty $MESON_PROJECT_DIST_ROOT/build/ directory.
+meson.add_dist_script(
+  python3, dist_build_scripts_py,
+  project_source_root,
+  'untracked' / 'build_scripts',
+  dont_distribute,
+)
 
 if meson.is_subproject()
   pkgconfig_vars = {
     'gmmprocm4dir': project_source_root / 'tools' / 'm4',
     'htmlrefdir': install_prefix / install_docdir / 'reference' / 'html',
-    'htmlrefpub': 'https://gnome.pages.gitlab.gnome.org/' + 
pkg_conf_data.get_unquoted('PACKAGE_TARNAME')
+    'htmlrefpub': 'https://gnome.pages.gitlab.gnome.org/' + 
meson.project_name(),
   }
   if build_documentation
     pkgconfig_vars += {'doxytagfile': tag_file.full_path()}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/meson.build 
new/pangomm-2.54.0/pango/meson.build
--- old/pangomm-2.52.0/pango/meson.build        2024-03-15 18:11:11.000000000 
+0100
+++ new/pangomm-2.54.0/pango/meson.build        2024-07-25 16:33:39.000000000 
+0200
@@ -1,26 +1,12 @@
 # pango
 
-# Input: install_prefix, install_datadir, install_includedir,
-#        pangomm_pcname, pangomm_api_version, pangomm_requires,
-#        install_pkgconfigdir, install_libdir, build_deprecated_api,
-#        pangomm_major_version, pangomm_minor_version, pangomm_micro_version,
-#        msvc14x_toolset_ver
+# Input: pangomm_pcname, install_libdir, build_deprecated_api,
+#        pangomm_major_version, pangomm_minor_version, pangomm_micro_version
 # Output: pkg_conf_data, install_includeconfigdir, pangommconfig_h_meson
 
 pkg_conf_data = configuration_data()
-pkg_conf_data.set('prefix', install_prefix)
-pkg_conf_data.set('exec_prefix', '${prefix}')
-pkg_conf_data.set('libdir', '${exec_prefix}' / install_libdir)
-pkg_conf_data.set('datarootdir', '${prefix}' / install_datadir)
-pkg_conf_data.set('datadir', '${datarootdir}')
-pkg_conf_data.set('includedir', '${prefix}' / install_includedir)
-pkg_conf_data.set('srcdir', meson.current_source_dir())
-pkg_conf_data.set('PACKAGE_TARNAME', meson.project_name())
 pkg_conf_data.set('PACKAGE_VERSION', meson.project_version())
 pkg_conf_data.set('PANGOMM_MODULE_NAME', pangomm_pcname)
-pkg_conf_data.set('PANGOMM_API_VERSION', pangomm_api_version)
-pkg_conf_data.set('PANGOMM_MODULES', pangomm_requires)
-pkg_conf_data.set('MSVC_TOOLSET_VER', msvc14x_toolset_ver)
 
 if not build_deprecated_api
   pkg_conf_data.set('PANGOMM_DISABLE_DEPRECATED', true)
@@ -29,19 +15,6 @@
 pkg_conf_data.set('PANGOMM_MINOR_VERSION', pangomm_minor_version)
 pkg_conf_data.set('PANGOMM_MICRO_VERSION', pangomm_micro_version)
 
-configure_file(
-  input: 'pangomm.pc.in',
-  output: pangomm_pcname + '.pc',
-  configuration: pkg_conf_data,
-  install_dir: install_pkgconfigdir,
-)
-
-configure_file(
-  input: 'pangomm-uninstalled.pc.in',
-  output: pangomm_pcname + '-uninstalled.pc',
-  configuration: pkg_conf_data,
-)
-
 pangommconfig_h_meson = files('pangommconfig.h.meson')
 install_includeconfigdir = install_libdir / pangomm_pcname / 'include'
 configure_file(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/pangomm/meson.build 
new/pangomm-2.54.0/pango/pangomm/meson.build
--- old/pangomm-2.52.0/pango/pangomm/meson.build        2024-03-15 
18:11:11.000000000 +0100
+++ new/pangomm-2.54.0/pango/pangomm/meson.build        2024-07-25 
16:33:39.000000000 +0200
@@ -3,7 +3,7 @@
 # Input: pangomm_build_dep, pangomm_pcname, maintainer_mode, 
project_source_root,
 #        generate_binding_py, m4_files, pangomm_libversion, install_includedir,
 #        python3, pangomm_rc, dummy_header_py, gmmproc_dir, 
msvc14x_toolset_ver,
-#        can_add_dist_script
+#        pangomm_pc_requires
 # Output: hg_ccg_basenames, extra_h_files, built_h_file_targets, 
built_files_root,
 #         pangomm_own_dep
 
@@ -218,6 +218,36 @@
 
 endif
 
+# Generate .pc files, used by pkg-config.
+pkg_config = import('pkgconfig')
+pc_common_variables = [
+  'doxytagfile=${docdir}/reference/' + pangomm_pcname + '.tag',
+  'htmlrefdir=${docdir}/reference/html',
+  'htmlrefpub=https://gnome.pages.gitlab.gnome.org/' + meson.project_name(),
+]
+pc_variables = [
+  'exec_prefix=${prefix}',
+  'datarootdir=${datadir}',
+  'gmmprocm4dir=${libdir}/' + pangomm_pcname + '/proc/m4',
+  'docdir=${datadir}/doc/' + pangomm_pcname,
+] + pc_common_variables
+pc_uninstalled_variables = [
+  'gmmprocm4dir=${srcdir}/tools/m4',
+  'docdir=${prefix}/docs',
+] + pc_common_variables
+
+pkg_config.generate(pangomm_library,
+  filebase: pangomm_pcname,
+  variables: pc_variables,
+  uninstalled_variables: pc_uninstalled_variables,
+  name: meson.project_name(),
+  description: 'C++ binding for Pango',
+  url: 'https://www.gtkmm.org/',
+  requires: pangomm_pc_requires,
+  subdirs: [pangomm_pcname],
+  extra_cflags: ['-I${libdir}/' + pangomm_pcname + '/include'],
+)
+
 # Install built .h and _p.h files.
 meson.add_install_script(
   python3, generate_binding_py, 'install_built_h_files',
@@ -226,15 +256,13 @@
   hg_ccg_basenames
 )
 
-if can_add_dist_script
-  # Distribute built files.
-  meson.add_dist_script(
-    python3, generate_binding_py, 'dist_built_files',
-    built_h_cc_dir,
-    untracked_pangomm,
-    hg_ccg_basenames,
-  )
-endif
+# Distribute built files.
+meson.add_dist_script(
+  python3, generate_binding_py, 'dist_built_files',
+  built_h_cc_dir,
+  untracked_pangomm,
+  hg_ccg_basenames,
+)
 
 # This is part of pangomm_dep, when pangomm is a subproject.
 # It can also be used if there are example programs and test programs to build.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/pangomm-uninstalled.pc.in 
new/pangomm-2.54.0/pango/pangomm-uninstalled.pc.in
--- old/pangomm-2.52.0/pango/pangomm-uninstalled.pc.in  2024-03-15 
18:11:11.000000000 +0100
+++ new/pangomm-2.54.0/pango/pangomm-uninstalled.pc.in  2024-07-25 
16:33:39.000000000 +0200
@@ -1,10 +1,10 @@
 doxytagfile=${pc_top_builddir}/docs/reference/@PANGOMM_MODULE_NAME@.tag
-htmlrefpub=http://library.gnome.org/devel/@PACKAGE_TARNAME@/unstable/
+htmlrefpub=https://gnome.pages.gitlab.gnome.org/@PACKAGE_TARNAME@/
 
 Name: pangomm
 Description: C++ binding for Pango, not installed
 Version: @PACKAGE_VERSION@
-URL: http://www.gtkmm.org/
+URL: https://www.gtkmm.org/
 Requires: @PANGOMM_MODULES@
 Libs: 
${pc_top_builddir}/${pcfiledir}/pangomm/libpangomm@MSVC_TOOLSET_VER@-@PANGOMM_API_VERSION@.la
 Cflags: -I${pc_top_builddir}/${pcfiledir} 
-I${pc_top_builddir}/${pcfiledir}/@srcdir@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/src/attriter.hg 
new/pangomm-2.54.0/pango/src/attriter.hg
--- old/pangomm-2.52.0/pango/src/attriter.hg    2024-03-15 18:11:11.000000000 
+0100
+++ new/pangomm-2.54.0/pango/src/attriter.hg    2024-07-25 16:33:39.000000000 
+0200
@@ -23,8 +23,8 @@
 
 namespace Pango
 {
-
-/** A Pango::AttrIter is used to represent an iterator through a 
Pango::AttrList.
+//TODO: When we can break API/ABI, consider using _CLASS_BOXEDTYPE. 
PangoAttrIterator is a boxed type.
+/** A %Pango::AttrIter is used to represent an iterator through a 
Pango::AttrList.
  * A new iterator is created with Pango::AttrList::get_iter(). Once the 
iterator is created,
  * it can be advanced through the style changes in the text using 
Pango::AttrIter::next().
  * At each style change, the range of the current style segment and the 
attributes currently in effect can be queried.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/src/color.ccg 
new/pangomm-2.54.0/pango/src/color.ccg
--- old/pangomm-2.52.0/pango/src/color.ccg      2024-03-15 18:11:11.000000000 
+0100
+++ new/pangomm-2.54.0/pango/src/color.ccg      2024-07-25 16:33:39.000000000 
+0200
@@ -30,4 +30,12 @@
   return gobj() != nullptr;
 }
 
+std::pair<bool, guint16>
+Color::parse_with_alpha(const Glib::ustring& spec)
+{
+  guint16 alpha = 0xffff;
+  auto retvalue = pango_color_parse_with_alpha(gobj(), &alpha, spec.c_str());
+  return {retvalue, alpha};
+}
+
 } /* namespace Pango */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/src/color.hg 
new/pangomm-2.54.0/pango/src/color.hg
--- old/pangomm-2.52.0/pango/src/color.hg       2024-03-15 18:11:11.000000000 
+0100
+++ new/pangomm-2.54.0/pango/src/color.hg       2024-07-25 16:33:39.000000000 
+0200
@@ -20,6 +20,7 @@
 #include <glibmm/value.h>
 #include <glibmm/utility.h>
 #include <pango/pango.h>
+#include <utility> // std::pair
 
 _DEFS(pangomm,pango)
 
@@ -70,6 +71,31 @@
 
   _WRAP_METHOD(bool parse(const Glib::ustring& spec), pango_color_parse)
 
+  /** Fill in the fields of a color from a string specification.
+   *
+   * The string can either one of a large set of standard names.
+   * (Taken from the CSS Color 
[specification](https://www.w3.org/TR/css-color-4/#named-colors),
+   * or it can be a hexadecimal value in the form `#rgb`,
+   * `#rrggbb`, `#rrrgggbbb` or `#rrrrggggbbbb` where `r`, `g`
+   * and `b` are hex digits of the red, green, and blue components
+   * of the color, respectively. (White in the four forms is
+   * `#fff`, `#ffffff`, `#fffffffff` and `#ffffffffffff`.)
+   *
+   * Additionally, parse strings of the form `#rgba`, `#rrggbbaa`,
+   * `#rrrrggggbbbbaaaa`, and set @a alpha
+   * to the value specified by the hex digits for `a`. If no alpha
+   * component is found in @a spec, @a alpha is set to 0xffff (for a
+   * solid color).
+   *
+   * @newin{2,54}
+   *
+   * @param spec A string specifying the new color.
+   * @return {success, alpha} <tt>true</tt> if parsing of the specifier 
succeeded,
+   * otherwise <tt>false</tt>; alpha value.
+   */
+  std::pair<bool, guint16> parse_with_alpha(const Glib::ustring& spec);
+  _IGNORE(pango_color_parse_with_alpha)
+
   _WRAP_METHOD(Glib::ustring to_string() const, pango_color_to_string)
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/src/context.hg 
new/pangomm-2.54.0/pango/src/context.hg
--- old/pangomm-2.52.0/pango/src/context.hg     2024-03-15 18:11:11.000000000 
+0100
+++ new/pangomm-2.54.0/pango/src/context.hg     2024-07-25 16:33:39.000000000 
+0200
@@ -120,6 +120,11 @@
   Matrix get_matrix() const;
   _IGNORE(pango_context_get_matrix)
 
+  _WRAP_METHOD(void set_round_glyph_positions(bool round_positions = true),
+    pango_context_set_round_glyph_positions, newin "2,54")
+  _WRAP_METHOD(bool get_round_glyph_positions() const,
+    pango_context_get_round_glyph_positions, newin "2,54")
+
   /** Breaks a piece of text into segments with consistent directional level 
and shaping engine.
    * Each byte of @a text will be contained in exactly one of the items in the 
returned list.
    * The generated list of items will be in logical order (the start offsets 
of the items
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/src/item.ccg 
new/pangomm-2.54.0/pango/src/item.ccg
--- old/pangomm-2.52.0/pango/src/item.ccg       2024-03-15 18:11:11.000000000 
+0100
+++ new/pangomm-2.54.0/pango/src/item.ccg       2024-07-25 16:33:39.000000000 
+0200
@@ -37,30 +37,23 @@
 }
 
 
+Item::Item()
+:
+  gobject_(pango_item_new())
+{}
+
 Item::Item(const Item& src)
 :
   gobject_ ((src.gobject_) ? pango_item_copy(src.gobject_) : nullptr)
 {}
 
 Item::Item(PangoItem* castitem, bool make_a_copy)
-{
+:
   // For BoxedType wrappers, make_a_copy is true by default.  The static
   // BoxedType wrappers must always take a copy, thus make_a_copy = true
   // ensures identical behaviour if the default argument is used.
-
-  if(make_a_copy)
-  {
-    if(castitem)
-      gobject_ = pango_item_copy(castitem);
-    else
-      gobject_ = nullptr;
-  }
-  else
-  {
-    // It was given to us by a function which has already made a copy for us 
to keep.
-    gobject_ = castitem;
-  }
-}
+  gobject_((make_a_copy && castitem) ? pango_item_copy(castitem) : castitem)
+{}
 
 Item& Item::operator=(const Item& src)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/src/item.hg 
new/pangomm-2.54.0/pango/src/item.hg
--- old/pangomm-2.52.0/pango/src/item.hg        2024-03-15 18:11:11.000000000 
+0100
+++ new/pangomm-2.54.0/pango/src/item.hg        2024-07-25 16:33:39.000000000 
+0200
@@ -78,24 +78,29 @@
   PangoAnalysis gobject_;
 };
 
-
-/** A Pango::Item stores information about a segment of text.
- * Pango::Item is used as an output type only so there is no public default 
constructor.
+//TODO: When we can break API/ABI, consider using _CLASS_BOXEDTYPE. PangoItem 
is a boxed type.
+/** A %Pango::Item stores information about a segment of text.
+ * %Pango::Item is used as an output type only so there is no public default 
constructor.
  * You retrieve objects of this type by calling Pango::Context::itemize() with 
some text.
- * The actual rendering of the segment of text that corresponds to a 
particular Pango::Item
+ * The actual rendering of the segment of text that corresponds to a 
particular %Pango::Item
  * (or some sub-string) into a string of glyphs is done with shape().
- * The segment of text that corresponds to a Pango::Item can be computed from 
the
+ * The segment of text that corresponds to a %Pango::Item can be computed from 
the
  * text passed into Pango::Context::itemize() with get_segment(). Together with
  * the Pango::Analysis data member that can be accessed with get_analysis()
  * it is needed for further calculations in Pango::GlyphString.
  */
 class PANGOMM_API Item
 {
-  _CLASS_GENERIC(Item, PangoItem) //There is the whole set of functions for 
_CLASS_BOXEDTYPE but unfortunately PangoItem is not registered as a boxed type 
and lacks pango_item_get_type...
+  _CLASS_GENERIC(Item, PangoItem)
   _IGNORE(pango_item_copy,pango_item_free)
 
 public:
-  // There is no default constructor. This class is only used as an output 
type.
+  /** Creates a new %Pango::Item structure initialized to default values.
+   *
+   * @newin{2,54}
+   */
+  Item();
+
   explicit Item(PangoItem* castitem, bool make_a_copy = true);
 
   Item(const Item& src);
@@ -107,6 +112,7 @@
   PangoItem* gobj_copy() const;
 
 public:
+  _WRAP_METHOD(int get_char_offset() const, pango_item_get_char_offset, newin 
"2,54")
   _WRAP_METHOD(Item split(int split_index, int split_offset), pango_item_split)
 
   /** Gets the offset of the segment from the beginning of the string in bytes.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/src/language.ccg 
new/pangomm-2.54.0/pango/src/language.ccg
--- old/pangomm-2.52.0/pango/src/language.ccg   2024-03-15 18:11:11.000000000 
+0100
+++ new/pangomm-2.54.0/pango/src/language.ccg   2024-07-25 16:33:39.000000000 
+0200
@@ -28,7 +28,7 @@
  
 inline PangoLanguage* _pango_language_new()
 {
-  return 0;
+  return nullptr;
 }
 
 inline PangoLanguage* _pango_language_copy(const PangoLanguage* language)
@@ -43,7 +43,7 @@
 
 Language::Language()
 :
-  gobject_(0)
+  gobject_(nullptr)
 {}
 
 Language::Language(const Glib::ustring& language)
@@ -66,5 +66,4 @@
   return Glib::ArrayHandler<Script>::array_to_vector((const Script*)carray, 
num_scripts, Glib::OWNERSHIP_NONE);
 }
 
-
 } /* namespace Pango */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/src/language.hg 
new/pangomm-2.54.0/pango/src/language.hg
--- old/pangomm-2.52.0/pango/src/language.hg    2024-03-15 18:11:11.000000000 
+0100
+++ new/pangomm-2.54.0/pango/src/language.hg    2024-07-25 16:33:39.000000000 
+0200
@@ -55,19 +55,25 @@
   _WRAP_METHOD(bool matches(const Glib::ustring & range_list) const, 
pango_language_matches)
   _WRAP_METHOD(bool includes_script(Script script) const, 
pango_language_includes_script)
 
-
- /** Determines the scripts used to to write this language.
-   * If nothing is known about the language tag then an empty container is 
returned.
+  /** Determines the scripts used to write this language.
+   *
+   * If nothing is known about the language tag then an empty vector is 
returned.
    * The list of scripts returned starts with the script that the
    * language uses most and continues to the one it uses least.
    *
    * Most languages use only one script for writing, but there are
    * some that use two (Latin and Cyrillic for example), and a few
-   * use three (Japanese for example).  Applications should not make
+   * use three (Japanese for example). Applications should not make
    * any assumptions on the maximum number of scripts returned
    * though, except that it is a small number.
    *
-   * @result A container of Script values.
+   * The includes_script() function uses this function internally.
+   *
+   * @note While the return value is declared as `Pango::Script`, the
+   * returned values are from the `GUnicodeScript` enumeration, which
+   * may have more values. Callers need to handle unknown values.
+   *
+   * @result A vector of Script values.
    *
    * @newin{2,14}
    */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/src/layout.hg 
new/pangomm-2.54.0/pango/src/layout.hg
--- old/pangomm-2.52.0/pango/src/layout.hg      2024-03-15 18:11:11.000000000 
+0100
+++ new/pangomm-2.54.0/pango/src/layout.hg      2024-07-25 16:33:39.000000000 
+0200
@@ -137,6 +137,8 @@
   _WRAP_METHOD(float get_line_spacing() const, pango_layout_get_line_spacing)
   _WRAP_METHOD(void set_justify(bool justify = true), pango_layout_set_justify)
   _WRAP_METHOD(bool get_justify() const, pango_layout_get_justify)
+  _WRAP_METHOD(void set_justify_last_line(bool justify = true), 
pango_layout_set_justify_last_line, newin "2,54")
+  _WRAP_METHOD(bool get_justify_last_line() const, 
pango_layout_get_justify_last_line, newin "2,54")
 
   _WRAP_METHOD(bool get_auto_dir() const, pango_layout_get_auto_dir)
   _WRAP_METHOD(void set_auto_dir(bool auto_dir = true), 
pango_layout_set_auto_dir)
@@ -155,6 +157,7 @@
 
   _WRAP_METHOD(bool is_ellipsized() const, pango_layout_is_ellipsized)
   _WRAP_METHOD(int get_unknown_glyphs_count() const, 
pango_layout_get_unknown_glyphs_count)
+  _WRAP_METHOD(Direction get_direction(int index) const, 
pango_layout_get_direction, newin "2,54")
 
   _WRAP_METHOD(void context_changed(), pango_layout_context_changed)
 
@@ -184,6 +187,7 @@
   _WRAP_METHOD(void index_to_line_x(int index_, bool trailing, int& line, int& 
x_pos) const, pango_layout_index_to_line_x)
 
   _WRAP_METHOD(void get_cursor_pos(int index, Rectangle& strong_pos, 
Rectangle& weak_pos) const, pango_layout_get_cursor_pos)
+  _WRAP_METHOD(void get_caret_pos(int index, Rectangle& strong_pos, Rectangle& 
weak_pos) const, pango_layout_get_caret_pos, newin "2,54")
 
   /** Given an index within the layout, determine the positions that of the 
strong cursors if the insertion point is at that index.
    * @param index The byte index of the cursor.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/src/layoutiter.ccg 
new/pangomm-2.54.0/pango/src/layoutiter.ccg
--- old/pangomm-2.52.0/pango/src/layoutiter.ccg 2024-03-15 18:11:11.000000000 
+0100
+++ new/pangomm-2.54.0/pango/src/layoutiter.ccg 2024-07-25 16:33:39.000000000 
+0200
@@ -20,6 +20,10 @@
 
 namespace Pango
 {
+LayoutIter::operator bool() const
+{
+  return gobj() != nullptr;
+}
 
 Rectangle LayoutIter::get_char_extents() const
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/src/layoutiter.hg 
new/pangomm-2.54.0/pango/src/layoutiter.hg
--- old/pangomm-2.52.0/pango/src/layoutiter.hg  2024-03-15 18:11:11.000000000 
+0100
+++ new/pangomm-2.54.0/pango/src/layoutiter.hg  2024-07-25 16:33:39.000000000 
+0200
@@ -34,6 +34,13 @@
   _IGNORE(pango_layout_iter_copy, pango_layout_iter_free)
 
 public:
+  /** Checks whether this iterator is valid.
+   *
+   * @newin{2,54}
+   *
+   * @return <tt>true</tt> if the iterator is valid.
+   */
+  explicit operator bool() const;
 
   _WRAP_METHOD(int get_index() const, pango_layout_iter_get_index)
 
@@ -143,6 +150,7 @@
   Rectangle get_layout_logical_extents() const;
 
   _WRAP_METHOD(int get_baseline() const, pango_layout_iter_get_baseline)
+  _WRAP_METHOD(int get_run_baseline() const, 
pango_layout_iter_get_run_baseline, newin "2,54")
 };
 
 } //namespace Pango
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/src/layoutline.ccg 
new/pangomm-2.54.0/pango/src/layoutline.ccg
--- old/pangomm-2.52.0/pango/src/layoutline.ccg 2024-03-15 18:11:11.000000000 
+0100
+++ new/pangomm-2.54.0/pango/src/layoutline.ccg 2024-07-25 16:33:39.000000000 
+0200
@@ -1,8 +1,4 @@
-// -*- c++ -*-
-/* $Id: layoutline.ccg,v 1.3 2006/05/30 17:14:21 murrayc Exp $ */
-
 /*
- *
  * Copyright 1998-2002 The gtkmm Development Team
  *
  * This library is free software; you can redistribute it and/or
@@ -25,6 +21,13 @@
 
 namespace Pango {
 
+int LayoutLine::get_height() const
+{
+  int height = 0;
+  pango_layout_line_get_height(const_cast<PangoLayoutLine*>(gobj()), &height);
+  return height;
+}
+
 Rectangle LayoutLine::get_ink_extents() const
 {
   Rectangle ink_rect;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/src/layoutline.hg 
new/pangomm-2.54.0/pango/src/layoutline.hg
--- old/pangomm-2.52.0/pango/src/layoutline.hg  2024-03-15 18:11:11.000000000 
+0100
+++ new/pangomm-2.54.0/pango/src/layoutline.hg  2024-07-25 16:33:39.000000000 
+0200
@@ -18,6 +18,7 @@
  */
 
 #include <glibmm/refptr.h>
+#include <pangomm/context.h>
 #include <pangomm/rectangle.h>
 #include <cairomm/context.h>
 #include <pango/pango.h>
@@ -29,8 +30,8 @@
 
 class PANGOMM_API Layout;
 
-/** A Pango::LayoutLine represents one of the lines resulting from laying out 
a paragraph via Pango::Layout.
- * Pango::LayoutLine objects are obtained by calling Pango::Layout::get_line()
+/** A %Pango::LayoutLine represents one of the lines resulting from laying out 
a paragraph via Pango::Layout.
+ * %Pango::LayoutLine objects are obtained by calling Pango::Layout::get_line()
  * and are only valid until the text, attributes, or settings of the parent 
Pango::Layout are modified.
  * Routines for rendering Pango::Layout objects are provided in code specific 
to each rendering system.
  */
@@ -41,6 +42,8 @@
   _IGNORE(pango_layout_line_get_x_ranges)
 public:
 
+  _WRAP_METHOD(bool is_paragraph_start() const, 
pango_layout_line_is_paragraph_start, newin "2,54")
+  _WRAP_METHOD(Direction get_resolved_direction() const, 
pango_layout_line_get_resolved_direction, newin "2,54")
   _WRAP_METHOD(bool x_to_index(int x_pos, int& index, int& trailing) const, 
pango_layout_line_x_to_index)
 
   /** Converts an index within a line to a @a x position.
@@ -69,6 +72,20 @@
 
   _WRAP_METHOD(void get_extents(Rectangle& ink_rect, Rectangle& logical_rect) 
const, pango_layout_line_get_extents)
 
+  /** Computes the height of the line, as the maximum of the heights
+   * of fonts used in this line.
+   *
+   * Note that the actual baseline-to-baseline distance between lines
+   * of text is influenced by other factors, such as
+   * Pango::Layout::set_spacing() and Pango::Layout::set_line_spacing().
+   *
+   * @newin{2,54}
+   *
+   * @return Line height.
+   */
+  int get_height() const;
+  _IGNORE(pango_layout_line_get_height)
+
   /** Compute the ink extents of a layout line.
    * @return The extents of the layout line as drawn.
    */
@@ -111,7 +128,7 @@
   //_MEMBER_SET_GOBJECT(layout, layout, Pango::Layout, PangoLayout*)
   _MEMBER_GET(length, length, int, gint)
   _MEMBER_GET(start_index, start_index, int, gint)
-    
+  _IGNORE(pango_layout_line_get_length, pango_layout_line_get_start_index)
 };
 
 } // namespace Pango
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/src/pango_docs.xml 
new/pangomm-2.54.0/pango/src/pango_docs.xml
--- old/pangomm-2.52.0/pango/src/pango_docs.xml 2024-03-15 18:11:11.000000000 
+0100
+++ new/pangomm-2.54.0/pango/src/pango_docs.xml 2024-07-25 16:33:39.000000000 
+0200
@@ -6240,7 +6240,7 @@
 
 The string must have the form
 
-&quot;\[FAMILY-LIST] \[STYLE-OPTIONS] \[SIZE] \[VARIATIONS]&quot;,
+&quot;[FAMILY-LIST] [STYLE-OPTIONS] [SIZE] [VARIATIONS]&quot;,
 
 where FAMILY-LIST is a comma-separated list of families optionally
 terminated by a comma, STYLE_OPTIONS is a whitespace-separated list
@@ -6248,7 +6248,7 @@
 stretch, or gravity, and SIZE is a decimal number (size in points)
 or optionally followed by the unit modifier &quot;px&quot; for absolute size.
 VARIATIONS is a comma-separated list of font variation
-specifications of the form &quot;\@axis=value&quot; (the = sign is optional).
+specifications of the form @‍axis=value (the = sign is optional).
 
 The following words are understood as styles:
 &quot;Normal&quot;, &quot;Roman&quot;, &quot;Oblique&quot;, &quot;Italic&quot;.
@@ -6279,7 +6279,7 @@
 
 A typical example:
 
-&quot;Cantarell Italic Light 15 \@wght=200&quot;
+&quot;Cantarell Italic Light 15 @‍wght=200&quot;
 
 
 </description>
@@ -9556,6 +9556,30 @@
 <return></return>
 </function>
 
+<function name="pango_item_get_char_offset">
+<description>
+Returns the character offset of the item from the beginning
+of the itemized text.
+
+If the item has not been obtained from Pango's itemization
+machinery, then the character offset is not available. In
+that case, this function returns -1.
+
+Since: 1.54
+
+</description>
+<parameters>
+<parameter name="item">
+<parameter_description> a `PangoItem`
+</parameter_description>
+</parameter>
+</parameters>
+<return> the character offset of the item from the beginning
+of the itemized text, or -1
+
+</return>
+</function>
+
 <function name="pango_item_new">
 <description>
 Creates a new `PangoItem` structure initialized to default values.
@@ -16152,7 +16176,7 @@
 by the path. The font file must be in a format that is supported by the 
system's
 DirectWrite APIs.
 
-Since: 1.52.0
+Since: 1.52
 
 </description>
 <parameters>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/src/pango_methods.defs 
new/pangomm-2.54.0/pango/src/pango_methods.defs
--- old/pangomm-2.52.0/pango/src/pango_methods.defs     2024-03-15 
18:11:11.000000000 +0100
+++ new/pangomm-2.54.0/pango/src/pango_methods.defs     2024-07-25 
16:33:39.000000000 +0200
@@ -3436,6 +3436,12 @@
   (return-type "none")
 )
 
+(define-method get_char_offset
+  (of-object "PangoItem")
+  (c-name "pango_item_get_char_offset")
+  (return-type "int")
+)
+
 (define-method split
   (of-object "PangoItem")
   (c-name "pango_item_split")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/src/tabarray.ccg 
new/pangomm-2.54.0/pango/src/tabarray.ccg
--- old/pangomm-2.52.0/pango/src/tabarray.ccg   2024-03-15 18:11:11.000000000 
+0100
+++ new/pangomm-2.54.0/pango/src/tabarray.ccg   2024-07-25 16:33:39.000000000 
+0200
@@ -28,6 +28,16 @@
   gobject_ = pango_tab_array_new(initial_size, (gboolean)positions_in_pixels);
 }
 
+TabArray::TabArray(const Glib::ustring& text)
+:
+  gobject_(pango_tab_array_from_string(text.c_str()))
+{}
+
+TabArray::operator bool() const
+{
+  return gobj() != nullptr;
+}
+
 std::pair<TabAlign,int> TabArray::get_tab(int tab_index) const
 {
   PangoTabAlign p_alignment;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pangomm-2.52.0/pango/src/tabarray.hg 
new/pangomm-2.54.0/pango/src/tabarray.hg
--- old/pangomm-2.52.0/pango/src/tabarray.hg    2024-03-15 18:11:11.000000000 
+0100
+++ new/pangomm-2.54.0/pango/src/tabarray.hg    2024-07-25 16:33:39.000000000 
+0200
@@ -28,7 +28,7 @@
 
 _WRAP_ENUM(TabAlign, PangoTabAlign, decl_prefix PANGOMM_API)
 
-/** A Pango::TabArray contains an array of tab stops.
+/** A %Pango::TabArray contains an array of tab stops.
  * Each tab stop has an alignment and a position.
  */
 class PANGOMM_API TabArray
@@ -38,6 +38,27 @@
 public:
   explicit TabArray(int initial_size, bool positions_in_pixels = true);
 
+  /** Deserializes a %Pango::TabArray from a string.
+   *
+   * This is the counterpart to to_string().
+   * See that function for details about the format.
+   *
+   * @newin{2,54}
+   *
+   * @param text A string.
+   * @return A new %Pango::TabArray.
+   */
+  explicit TabArray(const Glib::ustring& text);
+  _IGNORE(pango_tab_array_from_string)
+
+  /** Checks whether this %TabArray is valid.
+   *
+   * @newin{2,54}
+   *
+   * @return <tt>true</tt> if the %TabArray is valid.
+   */
+  explicit operator bool() const;
+
   _WRAP_METHOD(int get_size() const, pango_tab_array_get_size)
   _WRAP_METHOD(void resize(int new_size), pango_tab_array_resize)
   _WRAP_METHOD(void set_tab(int tab_index, TabAlign alignment, int location), 
pango_tab_array_set_tab)
@@ -53,6 +74,13 @@
   std::vector<std::pair<TabAlign, int>> get_tabs() const;
 
   _WRAP_METHOD(bool get_positions_in_pixels() const, 
pango_tab_array_get_positions_in_pixels)
+  _WRAP_METHOD(void set_positions_in_pixels(bool positions_in_pixels = true), 
pango_tab_array_set_positions_in_pixels, newin "2,54")
+  _WRAP_METHOD(Glib::ustring to_string() const, pango_tab_array_to_string, 
newin "2,54")
+  _WRAP_METHOD(void set_decimal_point(int tab_index, gunichar decimal_point),
+    pango_tab_array_set_decimal_point, newin "2,54")
+  _WRAP_METHOD(gunichar get_decimal_point(int tab_index) const,
+    pango_tab_array_get_decimal_point, newin "2,54")
+  _WRAP_METHOD(void sort(), pango_tab_array_sort, newin "2,54")
 };
 
 } //namespace Pango

++++++ pangomm.obsinfo ++++++
--- /var/tmp/diff_new_pack.qeZeRF/_old  2024-09-30 15:35:02.967657756 +0200
+++ /var/tmp/diff_new_pack.qeZeRF/_new  2024-09-30 15:35:02.971657922 +0200
@@ -1,5 +1,5 @@
 name: pangomm
-version: 2.52.0
-mtime: 1710522671
-commit: a767b1b98003ae3d7defa838af789616395d2602
+version: 2.54.0
+mtime: 1721918019
+commit: 522105b41b54f7a1da6d928d5ffe89699993a299
 

Reply via email to