<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/f2b82f62cd4e30240b577df02f5489c17757af93">https://github.com/macports/macports-ports/commit/f2b82f62cd4e30240b577df02f5489c17757af93</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit f2b82f62cd4e30240b577df02f5489c17757af93
</span>Author: Christopher Nielsen <mascguy@github.com>
AuthorDate: Sun Feb 6 10:52:35 2022 -0500

<span style='display:block; white-space:pre;color:#404040;'>    gobject-introspection-devel: new port for testing
</span>---
 gnome/gobject-introspection-devel/Portfile         | 84 ++++++++++++++++++++++
 .../files/no-env-shebang.patch                     | 11 +++
 .../files/patch-fix-rpath-gir-typelib.diff         | 61 ++++++++++++++++
 .../patch-fix-scanner-in-build-execution.diff      | 65 +++++++++++++++++
 .../files/patch-girscanner-tiger-no-rpath.diff     | 32 +++++++++
 .../files/patch-giscanner_girparser_py.diff        | 50 +++++++++++++
 .../files/use-AC_PROG_CPP.patch                    | 11 +++
 7 files changed, 314 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gobject-introspection-devel/Portfile b/gnome/gobject-introspection-devel/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..caa6bd2fbdd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/gobject-introspection-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,84 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           active_variants 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                gobject-introspection-devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+conflicts           gobject-introspection
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set my_name         gobject-introspection
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             1.60.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          gnome
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms           darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# library under LGPL-2+, tools under GPL-2+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             {LGPL GPL-2+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {mascguy @mascguy} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         GObject Introspection
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    Gobject Introspection acts as a bridge between low-level C+GObject code and \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    a managed runtime (JavaScript, Python, Java, Lua, .NET, Scheme, etc.).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://wiki.gnome.org/Projects/GObjectIntrospection
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set branch          [join [lrange [split ${version} .] 0 1] .]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites        gnome:sources/${my_name}/${branch}/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_xz              yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  6455f1b5e4427b8f0a26efb94597a476ed9ca96e \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  ffdfe2368fb2e34a547898b01aac0520d52d8627fdeb1c306559bcb503ab5e9c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1285000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set py_ver          3.9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set py_ver_nodot    [string map {. {}} ${py_ver}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build       port:pkgconfig \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:autoconf-archive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib         path:lib/pkgconfig/cairo.pc:cairo \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    path:lib/pkgconfig/glib-2.0.pc:glib2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:libffi \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${py_ver_nodot}-mako \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${py_ver_nodot}-markdown
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_run         bin:glibtool:libtool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          no-env-shebang.patch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-fix-rpath-gir-typelib.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-fix-scanner-in-build-execution.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-giscanner_girparser_py.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|libcairo-gobject.2.dylib|${prefix}/lib/libcairo-gobject.2.dylib|g" ${worksrcpath}/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|@MP_LIB@|${prefix}/lib/|g" ${worksrcpath}/giscanner/shlibs.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.python    ${prefix}/bin/python${py_ver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Use autoreconf to sync with our build tools.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# The gtk-doc dependency is needed due to use of autoreconf -fvi, which
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# completely regenerates the build system, which uses gtkdocize.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# TODO: check if not using -i with autoreconf works; if so, gtk-doc can
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# be removed. Also check if running only autoconf and automake is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# sufficient, rather than a full autoreconf.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append    port:gtk-doc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   use-AC_PROG_CPP.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_autoreconf      yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+autoreconf.args     -fvi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.args          CC="${configure.cc} ${configure.cc_archflags}" V=1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platform darwin 8 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # GObject introspection doesn't build with tiger's make, #32358
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_build-append    port:gmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    build.cmd               ${prefix}/bin/gmake
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Tiger does not support RPATHs at this time
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    patchfiles-append patch-girscanner-tiger-no-rpath.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Tiger requires
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append --disable-dependency-tracking
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.type      gnome
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.name      ${my_name}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gobject-introspection-devel/files/no-env-shebang.patch b/gnome/gobject-introspection-devel/files/no-env-shebang.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..79ad321fbd3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/gobject-introspection-devel/files/no-env-shebang.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- Makefile-tools.am.orig 2018-09-29 11:39:49.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ Makefile-tools.am      2018-09-29 11:40:20.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -9,7 +9,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   tools/g-ir-tool-template.in \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   tools/meson.build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-TOOL_SUBSTITUTIONS = -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON_CMD\@,\/usr\/bin\/env\ $(PYTHON), -e s,@GIR_DIR\@,$(GIR_DIR),g
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++TOOL_SUBSTITUTIONS = -e s,@libdir\@,$(libdir), -e s,@datarootdir\@,$(datarootdir), -e s,@PYTHON_CMD\@,$(PYTHON), -e s,@GIR_DIR\@,$(GIR_DIR),g
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ g-ir-scanner: tools/g-ir-tool-template.in _giscanner.la Makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   $(AM_V_GEN) sed $(TOOL_SUBSTITUTIONS) -e s,@TOOL_MODULE\@,scannermain, -e s,@TOOL_FUNCTION\@,scanner_main, $< > $@.tmp && mv $@.tmp $@
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gobject-introspection-devel/files/patch-fix-rpath-gir-typelib.diff b/gnome/gobject-introspection-devel/files/patch-fix-rpath-gir-typelib.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3889583c658
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/gobject-introspection-devel/files/patch-fix-rpath-gir-typelib.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,61 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- giscanner/shlibs.py.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ giscanner/shlibs.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -19,7 +19,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ import os
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-import sys
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ import platform
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ import re
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ import subprocess
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -104,24 +103,40 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         output = subprocess.check_output(args)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if isinstance(output, bytes):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             output = output.decode("utf-8", "replace")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         shlibs = resolve_from_ldd_output(libraries, output)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return list(map(sanitize_shlib_path, shlibs))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-def sanitize_shlib_path(lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        libdir = ''
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # for Darwin purposes, assume libraries get installed into
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # the first non-build library path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if platform.system() == 'Darwin':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            for lpath in options.library_paths:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                if not lpath.startswith (os.getcwd()):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    libdir = lpath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    break
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if libdir == '':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                # no way to resolve @rpath and the like, since we can't
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                # make a reasonable assumpion of the install libdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                libdir = '@MP_LIB@'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                libdir = libdir + '/'
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        outlibs = []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        for lib in shlibs:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            outlibs.append(sanitize_shlib_path(lib,libdir))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return list (outlibs)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++def sanitize_shlib_path(lib,libdir):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # Use absolute paths on OS X to conform to how libraries are usually
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # referenced on OS X systems, and file names everywhere else.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # In case we get relative paths on macOS (like @rpath) then we fall
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # back to the basename as well:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     # https://gitlab.gnome.org/GNOME/gobject-introspection/issues/222
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if sys.platform == "darwin":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if platform.system() == 'Darwin':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if not os.path.isabs(lib):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            return os.path.basename(lib)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            lib = os.path.basename(lib)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            # prepend the libdir
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            lib = libdir + lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return os.path.basename(lib)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        lib = os.path.basename(lib)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def resolve_from_ldd_output(libraries, output):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     patterns = {}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gobject-introspection-devel/files/patch-fix-scanner-in-build-execution.diff b/gnome/gobject-introspection-devel/files/patch-fix-scanner-in-build-execution.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..b16a7b5c49b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/gobject-introspection-devel/files/patch-fix-scanner-in-build-execution.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,65 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- giscanner/ccompiler.py.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ giscanner/ccompiler.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -184,7 +184,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if os.name == 'nt':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             runtime_path_envvar = ['LIB', 'PATH']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            runtime_path_envvar = ['LD_LIBRARY_PATH', 'DYLD_FALLBACK_LIBRARY_PATH']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            if sys.platform == "darwin":
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                runtime_path_envvar = ['DYLD_LIBRARY_PATH']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                runtime_path_envvar = ['LD_LIBRARY_PATH']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             # Search the current directory first
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             # (This flag is not supported nor needed for Visual C++)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             args.append('-L.')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- giscanner/dumper.py.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ giscanner/dumper.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -236,8 +236,28 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         args.extend(sources)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        pkg_config_libs = pkgconfig.libs(self._packages,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                         msvc_syntax=self._compiler.check_is_msvc())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        pkg_config_libs, pkg_config_libs_only_L = pkgconfig.libs(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            self._packages, msvc_syntax=self._compiler.check_is_msvc())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        this_L = [lib[len('-L'):] for lib in pkg_config_libs_only_L]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # uniquely merge pkg_config and options library paths
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        self._options.library_paths = list (set().union (self._options.library_paths,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                                         this_L))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        # remove anything in LIBRARY_PATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        env_LIBRARY_PATH = os.environ['LIBRARY_PATH'].split(':') if \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            'LIBRARY_PATH' in os.environ else []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        self._options.library_paths = [l for l in self._options.library_paths
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                           if l not in env_LIBRARY_PATH]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if os.name == 'nt':
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            runtime_path_envvar = ['LIB', 'PATH']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            runtime_path_envvar = ['LIBRARY_PATH']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        for envvar in runtime_path_envvar:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            os.environ[envvar] = os.pathsep.join \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                (list (set().union (os.environ[envvar].split(':'), this_L))) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                    if envvar in os.environ else os.pathsep.join(this_L)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if not self._options.external_library:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             self._compiler.get_internal_link_flags(args,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- giscanner/pkgconfig.py.orig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ giscanner/pkgconfig.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -52,7 +52,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ def libs(packages, msvc_syntax=False, ignore_errors=True, command=None):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     flags = ['--msvc-syntax'] if msvc_syntax else []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    flags.append('--libs')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    flags.append('--libs-only-l')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    flags.append('--libs-only-other')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     flags.extend(packages)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    out = check_output(flags, ignore_errors, command)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return shlex.split(out)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out_libs_only_not_L = shlex.split(check_output(flags, ignore_errors, command))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    flags = ['--msvc-syntax'] if msvc_syntax else []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    flags.append('--libs-only-L')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    flags.extend(packages)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    out_libs_only_L = shlex.split(check_output(flags, ignore_errors, command))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return out_libs_only_not_L, out_libs_only_L
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gobject-introspection-devel/files/patch-girscanner-tiger-no-rpath.diff b/gnome/gobject-introspection-devel/files/patch-girscanner-tiger-no-rpath.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..4d906ac6ba1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/gobject-introspection-devel/files/patch-girscanner-tiger-no-rpath.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,32 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git giscanner/ccompiler.py giscanner/ccompiler.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c003828..87f98d2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- giscanner/ccompiler.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ giscanner/ccompiler.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -191,7 +191,7 @@ class CCompiler(object):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if not libtool:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 # https://bugzilla.gnome.org/show_bug.cgi?id=625195
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                args.append('-Wl,-rpath,.')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#               args.append('-Wl,-rpath,.')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 # Ensure libraries are always linked as we are going to use ldd to work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 # out their names later
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -206,12 +206,12 @@ class CCompiler(object):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 args.append('-libpath:' + library_path)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 args.append('-L' + library_path)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                if os.path.isabs(library_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    if libtool:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                        args.append('-rpath')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                        args.append(library_path)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                    else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                        args.append('-Wl,-rpath,' + library_path)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#               if os.path.isabs(library_path):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#                   if libtool:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#                       args.append('-rpath')
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#                       args.append(library_path)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#                   else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#                       args.append('-Wl,-rpath,' + library_path)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             runtime_paths.append(library_path)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gobject-introspection-devel/files/patch-giscanner_girparser_py.diff b/gnome/gobject-introspection-devel/files/patch-giscanner_girparser_py.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..bf538995435
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/gobject-introspection-devel/files/patch-giscanner_girparser_py.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,50 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- giscanner/girparser.py.orig    2021-03-18 14:46:52.000000000 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ giscanner/girparser.py 2021-03-18 14:47:41.000000000 +0100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -75,17 +75,17 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     def _find_first_child(self, node, name_or_names):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if isinstance(name_or_names, str):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            for child in node.getchildren():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            for child in node:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 if child.tag == name_or_names:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     return child
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         else:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            for child in node.getchildren():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            for child in node:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 if child.tag in name_or_names:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     return child
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return None
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     def _find_children(self, node, name):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        return [child for child in node.getchildren() if child.tag == name]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return [child for child in node if child.tag == name]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     def _get_current_file(self):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if not self._filename_stack:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -103,7 +103,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             raise SystemExit("%s: Incompatible version %s (supported: %s)" %
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                              (self._get_current_file(), version, COMPATIBLE_GIR_VERSION))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        for node in root.getchildren():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        for node in root:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if node.tag == _corens('include'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 self._parse_include(node)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             elif node.tag == _corens('package'):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -144,7 +144,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             parser_methods[_corens('constant')] = self._parse_constant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             parser_methods[_corens('function')] = self._parse_function
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        for node in ns.getchildren():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        for node in ns:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             method = parser_methods.get(node.tag)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if method is not None:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 method(node)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -395,7 +395,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     def _parse_fields(self, node, obj):
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         res = []
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         names = (_corens('field'), _corens('record'), _corens('union'), _corens('callback'))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        for child in node.getchildren():
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        for child in node:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if child.tag in names:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 fieldobj = self._parse_field(child, obj)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                 res.append(fieldobj)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gobject-introspection-devel/files/use-AC_PROG_CPP.patch b/gnome/gobject-introspection-devel/files/use-AC_PROG_CPP.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..6c25b759a79
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/gobject-introspection-devel/files/use-AC_PROG_CPP.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+CPP needs to be set since it is used by AM_CHECK_PYTHON_HEADERS.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- configure.ac.orig      2019-06-16 04:14:20.000000000 +1000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ configure.ac   2021-03-16 20:21:17.000000000 +1100
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -47,6 +47,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Checks for programs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_PROG_CC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++AC_PROG_CPP
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AM_PROG_CC_C_O
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ AC_PROG_MKDIR_P
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span></pre><pre style='margin:0'>

</pre>