Gobject-Introspection

  • Done
  • quality assurance status badge
Details
One participant
  • Raghav Gururajan
Owner
unassigned
Submitted by
Raghav Gururajan
Severity
normal
R
R
R
Raghav Gururajan wrote on 7 Sep 2021 23:35
[PATCH core-updates v1] gnu: gobject-introspection: Update to 1.68.0 and adjust patches.
(address . 50465@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210907213517.28486-1-rg@raghavgururajan.name
* gnu/packages/glib.scm (gobject-introspection)[version]: Update to 1.68.0.
* gnu/packages/patches (gobject-introspection-absolute-shlib-path.patch,
gobject-introspection-cc.patch): Modify files.
---
gnu/packages/glib.scm | 4 +-
...ct-introspection-absolute-shlib-path.patch | 57 ++++++++++++-------
.../patches/gobject-introspection-cc.patch | 23 ++++++--
3 files changed, 57 insertions(+), 27 deletions(-)

Toggle diff (188 lines)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index ae88dbe9e7..89eb354662 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -388,14 +388,14 @@ functions for strings and common data structures.")
(define gobject-introspection
(package
(name "gobject-introspection")
- (version "1.66.1")
+ (version "1.68.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/"
"gobject-introspection/" (version-major+minor version)
"/gobject-introspection-" version ".tar.xz"))
(sha256
- (base32 "078n0q7b6z682mf4irclrksm73cyixq295mqnqifl9plwmgaai6x"))
+ (base32 "09sawnv3xj9pzgy2qrrk87dl3jibfphnswb61i5bh0d2h4j28afj"))
(patches (search-patches
"gobject-introspection-cc.patch"
"gobject-introspection-girepository.patch"
diff --git a/gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch b/gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch
index 956fa617c3..6ca5d35e7c 100644
--- a/gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch
+++ b/gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch
@@ -1,11 +1,23 @@
-# Names of libraries included in typelib files are opened by dlopen. Here we
-# add the full path.
-#
-# This patch was provided by Luca Bruno <lucabru@src.gnome.org> for
-# 'gobject-introspection' 1.40.0 in Nix.
-#
-# It has since been updated to work with newer versions of
-# gobject-introspection.
+From 8471367e35e122fb6e661c243810df92c69440b4 Mon Sep 17 00:00:00 2001
+From: Raghav Gururajan <rg@raghavgururajan.name>
+Date: Tue, 7 Sep 2021 17:15:18 -0400
+Subject: [PATCH 2/2] Names of libraries included in typelib files are opened
+ by dlopen. Here we add the full path.
+
+This patch was provided by Luca Bruno <lucabru@src.gnome.org>,
+for 'gobject-introspection' 1.40.0 in Nix.
+
+It has since been updated to work with newer versions of
+gobject-introspection.
+---
+ giscanner/scannermain.py | 37 ++++++++++++++++++++++++++++++++++++
+ giscanner/shlibs.py | 30 ++++++++++++++++++++---------
+ giscanner/utils.py | 15 +++++----------
+ tests/scanner/test_shlibs.py | 3 ++-
+ 4 files changed, 65 insertions(+), 20 deletions(-)
+
+diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
+index 957ba0b7..78f9b11b 100644
--- a/giscanner/scannermain.py
+++ b/giscanner/scannermain.py
@@ -95,6 +95,39 @@ def get_windows_option_group(parser):
@@ -48,7 +60,7 @@
def _get_option_parser():
parser = optparse.OptionParser('%prog [options] sources',
version='%prog ' + giscanner.__version__)
-@@ -205,6 +238,10 @@ match the namespace prefix.""")
+@@ -214,6 +247,10 @@ match the namespace prefix.""")
parser.add_option("", "--filelist",
action="store", dest="filelist", default=[],
help="file containing headers and sources to be scanned")
@@ -59,6 +71,8 @@
group = get_preprocessor_option_group(parser)
parser.add_option_group(group)
+diff --git a/giscanner/shlibs.py b/giscanner/shlibs.py
+index 9f8ab5df..8aa37c99 100644
--- a/giscanner/shlibs.py
+++ b/giscanner/shlibs.py
@@ -57,6 +57,14 @@ def _ldd_library_pattern(library_name):
@@ -76,7 +90,7 @@
# This is a what we do for non-la files. We assume that we are on an
# ELF-like system where ldd exists and the soname extracted with ldd is
# a filename that can be opened with dlopen().
-@@ -106,7 +112,8 @@ def _resolve_non_libtool(options, binary, libraries):
+@@ -108,7 +116,8 @@ def _resolve_non_libtool(options, binary, libraries):
output = output.decode("utf-8", "replace")
shlibs = resolve_from_ldd_output(libraries, output)
@@ -86,7 +100,7 @@
def sanitize_shlib_path(lib):
-@@ -115,19 +122,18 @@ def sanitize_shlib_path(lib):
+@@ -117,19 +126,18 @@ def sanitize_shlib_path(lib):
# In case we get relative paths on macOS (like @rpath) then we fall
# back to the basename as well:
# https://gitlab.gnome.org/GNOME/gobject-introspection/issues/222
@@ -111,7 +125,7 @@
if len(patterns) == 0:
return []
-@@ -139,8 +145,12 @@ def resolve_from_ldd_output(libraries, output):
+@@ -141,8 +149,12 @@ def resolve_from_ldd_output(libraries, output):
if line.endswith(':'):
continue
for word in line.split():
@@ -126,10 +140,11 @@
if m:
del patterns[library]
shlibs.append(m.group())
-
+diff --git a/giscanner/utils.py b/giscanner/utils.py
+index 45807f17..8a319cd1 100644
--- a/giscanner/utils.py
+++ b/giscanner/utils.py
-@@ -111,17 +111,11 @@ def extract_libtool_shlib(la_file):
+@@ -113,16 +113,11 @@ def extract_libtool_shlib(la_file):
if dlname is None:
return None
@@ -141,8 +156,7 @@
- if libdir is None:
- return dlbasename
- return libdir + '/' + dlbasename
-- # From the comments in extract_libtool(), older libtools had
-- # a path rather than the raw dlname
+- # Older libtools had a path rather than the raw dlname
- return os.path.basename(dlname)
+ dlbasename = os.path.basename(dlname)
+ libdir = _extract_libdir_field(la_file)
@@ -151,10 +165,12 @@
+ return libdir + '/' + dlbasename
- def extract_libtool(la_file):
+ # Returns arguments for invoking libtool, if applicable, otherwise None
+diff --git a/tests/scanner/test_shlibs.py b/tests/scanner/test_shlibs.py
+index a8337c60..7f123103 100644
--- a/tests/scanner/test_shlibs.py
+++ b/tests/scanner/test_shlibs.py
-@@ -40,6 +64,7 @@ class TestLddParser(unittest.TestCase):
+@@ -40,7 +40,8 @@ class TestLddParser(unittest.TestCase):
self.assertEqual(
sanitize_shlib_path('/foo/bar'),
@@ -163,4 +179,7 @@
+ '/foo/bar')
def test_unresolved_library(self):
-output = ''
+ output = ''
+--
+2.33.0
+
diff --git a/gnu/packages/patches/gobject-introspection-cc.patch b/gnu/packages/patches/gobject-introspection-cc.patch
index 6a86b56b44..7e808eeea7 100644
--- a/gnu/packages/patches/gobject-introspection-cc.patch
+++ b/gnu/packages/patches/gobject-introspection-cc.patch
@@ -1,14 +1,25 @@
-Use gcc as the default C compiler if CC is not set.
+From e9b8fa0768a1f0ef7df2659eb559f48433ff82be Mon Sep 17 00:00:00 2001
+From: Raghav Gururajan <rg@raghavgururajan.name>
+Date: Tue, 7 Sep 2021 16:59:16 -0400
+Subject: [PATCH 1/2] Use gcc as the default C compiler if CC is not set.
-diff -ru gobject-introspection-1.58.1.orig/giscanner/__init__.py gobject-introspection-1.58.1/giscanner/__init__.py
---- gobject-introspection-1.58.1.orig/giscanner/__init__.py 1970-01-01 01:00:00.000000000 +0100
-+++ gobject-introspection-1.58.1/giscanner/__init__.py 2018-12-03 13:33:28.788971299 +0100
-@@ -22,6 +22,8 @@
+---
+ giscanner/__init__.py | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/giscanner/__init__.py b/giscanner/__init__.py
+index 7c2f365a..607fe341 100644
+--- a/giscanner/__init__.py
++++ b/giscanner/__init__.py
+@@ -21,6 +21,8 @@ import os
builddir = os.environ.get('UNINSTALLED_INTROSPECTION_BUILDDIR')
if builddir is not None:
- __path__.append(os.path.join(builddir, 'giscanner'))
+ __path__.append(os.path.join(builddir, 'giscanner')) # type: ignore # mypy issue #1422
+if not 'CC' in os.environ:
+ os.environ['CC'] = 'gcc'
try:
from ._version import __version__
except ImportError:
+--
+2.33.0
+
--
2.33.0
R
R
Raghav Gururajan wrote on 8 Sep 2021 01:23
[PATCH core-updates v2] gnu: gobject-introspection: Update to 1.68.0 and adjust patches.
(address . 50465@debbugs.gnu.org)(name . Raghav Gururajan)(address . rg@raghavgururajan.name)
20210907232323.856-1-rg@raghavgururajan.name
* gnu/packages/glib.scm (gobject-introspection)[version]: Update to 1.68.0.
* gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch: Modify.
* gnu/packages/patches/gobject-introspection-cc.patch: Modify.
---
gnu/packages/glib.scm | 4 +-
...ct-introspection-absolute-shlib-path.patch | 57 ++++++++++++-------
.../patches/gobject-introspection-cc.patch | 23 ++++++--
3 files changed, 57 insertions(+), 27 deletions(-)

Toggle diff (188 lines)
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index ae88dbe9e7..89eb354662 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -388,14 +388,14 @@ functions for strings and common data structures.")
(define gobject-introspection
(package
(name "gobject-introspection")
- (version "1.66.1")
+ (version "1.68.0")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnome/sources/"
"gobject-introspection/" (version-major+minor version)
"/gobject-introspection-" version ".tar.xz"))
(sha256
- (base32 "078n0q7b6z682mf4irclrksm73cyixq295mqnqifl9plwmgaai6x"))
+ (base32 "09sawnv3xj9pzgy2qrrk87dl3jibfphnswb61i5bh0d2h4j28afj"))
(patches (search-patches
"gobject-introspection-cc.patch"
"gobject-introspection-girepository.patch"
diff --git a/gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch b/gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch
index 956fa617c3..3c03dba218 100644
--- a/gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch
+++ b/gnu/packages/patches/gobject-introspection-absolute-shlib-path.patch
@@ -1,11 +1,23 @@
-# Names of libraries included in typelib files are opened by dlopen. Here we
-# add the full path.
-#
-# This patch was provided by Luca Bruno <lucabru@src.gnome.org> for
-# 'gobject-introspection' 1.40.0 in Nix.
-#
-# It has since been updated to work with newer versions of
-# gobject-introspection.
+From 8471367e35e122fb6e661c243810df92c69440b4 Mon Sep 17 00:00:00 2001
+From: Raghav Gururajan <rg@raghavgururajan.name>
+Date: Tue, 7 Sep 2021 17:15:18 -0400
+Subject: Names of libraries included in typelib files are opened
+ by dlopen. Here we add the full path.
+
+This patch was provided by Luca Bruno <lucabru@src.gnome.org>,
+for 'gobject-introspection' 1.40.0 in Nix.
+
+It has since been updated to work with newer versions of
+gobject-introspection.
+---
+ giscanner/scannermain.py | 37 ++++++++++++++++++++++++++++++++++++
+ giscanner/shlibs.py | 30 ++++++++++++++++++++---------
+ giscanner/utils.py | 15 +++++----------
+ tests/scanner/test_shlibs.py | 3 ++-
+ 4 files changed, 65 insertions(+), 20 deletions(-)
+
+diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py
+index 957ba0b7..78f9b11b 100644
--- a/giscanner/scannermain.py
+++ b/giscanner/scannermain.py
@@ -95,6 +95,39 @@ def get_windows_option_group(parser):
@@ -48,7 +60,7 @@
def _get_option_parser():
parser = optparse.OptionParser('%prog [options] sources',
version='%prog ' + giscanner.__version__)
-@@ -205,6 +238,10 @@ match the namespace prefix.""")
+@@ -214,6 +247,10 @@ match the namespace prefix.""")
parser.add_option("", "--filelist",
action="store", dest="filelist", default=[],
help="file containing headers and sources to be scanned")
@@ -59,6 +71,8 @@
group = get_preprocessor_option_group(parser)
parser.add_option_group(group)
+diff --git a/giscanner/shlibs.py b/giscanner/shlibs.py
+index 9f8ab5df..8aa37c99 100644
--- a/giscanner/shlibs.py
+++ b/giscanner/shlibs.py
@@ -57,6 +57,14 @@ def _ldd_library_pattern(library_name):
@@ -76,7 +90,7 @@
# This is a what we do for non-la files. We assume that we are on an
# ELF-like system where ldd exists and the soname extracted with ldd is
# a filename that can be opened with dlopen().
-@@ -106,7 +112,8 @@ def _resolve_non_libtool(options, binary, libraries):
+@@ -108,7 +116,8 @@ def _resolve_non_libtool(options, binary, libraries):
output = output.decode("utf-8", "replace")
shlibs = resolve_from_ldd_output(libraries, output)
@@ -86,7 +100,7 @@
def sanitize_shlib_path(lib):
-@@ -115,19 +122,18 @@ def sanitize_shlib_path(lib):
+@@ -117,19 +126,18 @@ def sanitize_shlib_path(lib):
# In case we get relative paths on macOS (like @rpath) then we fall
# back to the basename as well:
# https://gitlab.gnome.org/GNOME/gobject-introspection/issues/222
@@ -111,7 +125,7 @@
if len(patterns) == 0:
return []
-@@ -139,8 +145,12 @@ def resolve_from_ldd_output(libraries, output):
+@@ -141,8 +149,12 @@ def resolve_from_ldd_output(libraries, output):
if line.endswith(':'):
continue
for word in line.split():
@@ -126,10 +140,11 @@
if m:
del patterns[library]
shlibs.append(m.group())
-
+diff --git a/giscanner/utils.py b/giscanner/utils.py
+index 45807f17..8a319cd1 100644
--- a/giscanner/utils.py
+++ b/giscanner/utils.py
-@@ -111,17 +111,11 @@ def extract_libtool_shlib(la_file):
+@@ -113,16 +113,11 @@ def extract_libtool_shlib(la_file):
if dlname is None:
return None
@@ -141,8 +156,7 @@
- if libdir is None:
- return dlbasename
- return libdir + '/' + dlbasename
-- # From the comments in extract_libtool(), older libtools had
-- # a path rather than the raw dlname
+- # Older libtools had a path rather than the raw dlname
- return os.path.basename(dlname)
+ dlbasename = os.path.basename(dlname)
+ libdir = _extract_libdir_field(la_file)
@@ -151,10 +165,12 @@
+ return libdir + '/' + dlbasename
- def extract_libtool(la_file):
+ # Returns arguments for invoking libtool, if applicable, otherwise None
+diff --git a/tests/scanner/test_shlibs.py b/tests/scanner/test_shlibs.py
+index a8337c60..7f123103 100644
--- a/tests/scanner/test_shlibs.py
+++ b/tests/scanner/test_shlibs.py
-@@ -40,6 +64,7 @@ class TestLddParser(unittest.TestCase):
+@@ -40,7 +40,8 @@ class TestLddParser(unittest.TestCase):
self.assertEqual(
sanitize_shlib_path('/foo/bar'),
@@ -163,4 +179,7 @@
+ '/foo/bar')
def test_unresolved_library(self):
-output = ''
+ output = ''
+--
+2.33.0
+
diff --git a/gnu/packages/patches/gobject-introspection-cc.patch b/gnu/packages/patches/gobject-introspection-cc.patch
index 6a86b56b44..fde13d1a59 100644
--- a/gnu/packages/patches/gobject-introspection-cc.patch
+++ b/gnu/packages/patches/gobject-introspection-cc.patch
@@ -1,14 +1,25 @@
-Use gcc as the default C compiler if CC is not set.
+From e9b8fa0768a1f0ef7df2659eb559f48433ff82be Mon Sep 17 00:00:00 2001
+From: Raghav Gururajan <rg@raghavgururajan.name>
+Date: Tue, 7 Sep 2021 16:59:16 -0400
+Subject: Use gcc as the default C compiler if CC is not set.
-diff -ru gobject-introspection-1.58.1.orig/giscanner/__init__.py gobject-introspection-1.58.1/giscanner/__init__.py
---- gobject-introspection-1.58.1.orig/giscanner/__init__.py 1970-01-01 01:00:00.000000000 +0100
-+++ gobject-introspection-1.58.1/giscanner/__init__.py 2018-12-03 13:33:28.788971299 +0100
-@@ -22,6 +22,8 @@
+---
+ giscanner/__init__.py | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/giscanner/__init__.py b/giscanner/__init__.py
+index 7c2f365a..607fe341 100644
+--- a/giscanner/__init__.py
++++ b/giscanner/__init__.py
+@@ -21,6 +21,8 @@ import os
builddir = os.environ.get('UNINSTALLED_INTROSPECTION_BUILDDIR')
if builddir is not None:
- __path__.append(os.path.join(builddir, 'giscanner'))
+ __path__.append(os.path.join(builddir, 'giscanner')) # type: ignore # mypy issue #1422
+if not 'CC' in os.environ:
+ os.environ['CC'] = 'gcc'
try:
from ._version import __version__
except ImportError:
+--
+2.33.0
+
--
2.33.0
R
Closed
?