Date: Wed, 27 Sep 2023 13:43:07 GMT From: Piotr Kubaj <pkubaj@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: edff56235598 - main - devel/blueprint-compiler: fix runtime on big-endian Message-ID: <202309271343.38RDh7pp007748@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch main has been updated by pkubaj: URL: https://cgit.FreeBSD.org/ports/commit/?id=edff56235598162920b98775d8d2445eaa35defe commit edff56235598162920b98775d8d2445eaa35defe Author: Piotr Kubaj <pkubaj@FreeBSD.org> AuthorDate: 2023-09-27 06:40:47 +0000 Commit: Piotr Kubaj <pkubaj@FreeBSD.org> CommitDate: 2023-09-27 13:43:04 +0000 devel/blueprint-compiler: fix runtime on big-endian Upstream commits https://gitlab.gnome.org/jwestman/blueprint-compiler/-/commit/0c0219551026ec9aec5487891e07d1ced3a31112 and https://gitlab.gnome.org/jwestman/blueprint-compiler/-/commit/057c767fbb595bb31d025c76547045273948aab1. --- devel/blueprint-compiler/Makefile | 1 + .../files/patch-blueprintcompiler_gir.py | 13 ++++++++ .../files/patch-blueprintcompiler_typelib.py | 38 ++++++++++++++++++++++ 3 files changed, 52 insertions(+) diff --git a/devel/blueprint-compiler/Makefile b/devel/blueprint-compiler/Makefile index 1ad9b062b1b6..7084d92106e3 100644 --- a/devel/blueprint-compiler/Makefile +++ b/devel/blueprint-compiler/Makefile @@ -1,6 +1,7 @@ PORTNAME= blueprint-compiler DISTVERSIONPREFIX= v DISTVERSION= 0.10.0 +PORTREVISION= 1 CATEGORIES= devel MAINTAINER= jbeich@FreeBSD.org diff --git a/devel/blueprint-compiler/files/patch-blueprintcompiler_gir.py b/devel/blueprint-compiler/files/patch-blueprintcompiler_gir.py new file mode 100644 index 000000000000..48471f4d9a05 --- /dev/null +++ b/devel/blueprint-compiler/files/patch-blueprintcompiler_gir.py @@ -0,0 +1,13 @@ +--- blueprintcompiler/gir.py.orig 2023-09-26 21:07:04 UTC ++++ blueprintcompiler/gir.py +@@ -888,8 +888,8 @@ class Repository(GirNode): + return self.lookup_namespace(ns).get_type(dir_entry.DIR_ENTRY_NAME) + + def _resolve_type_id(self, type_id: int) -> GirType: +- if type_id & 0xFFFFFF == 0: +- type_id = (type_id >> 27) & 0x1F ++ if type_id & (0xFFFFFF if sys.byteorder == "little" else 0xFFFFFF00) == 0: ++ type_id = ((type_id >> 27) if sys.byteorder == "little" else type_id) & 0x1F + # simple type + if type_id == typelib.TYPE_BOOLEAN: + return BoolType() diff --git a/devel/blueprint-compiler/files/patch-blueprintcompiler_typelib.py b/devel/blueprint-compiler/files/patch-blueprintcompiler_typelib.py new file mode 100644 index 000000000000..4953a57016ef --- /dev/null +++ b/devel/blueprint-compiler/files/patch-blueprintcompiler_typelib.py @@ -0,0 +1,38 @@ +--- blueprintcompiler/typelib.py.orig 2023-07-21 20:06:18 UTC ++++ blueprintcompiler/typelib.py +@@ -61,7 +61,14 @@ class Field: + def __init__(self, offset: int, type: str, shift=0, mask=None): + self._offset = offset + self._type = type +- self._shift = shift ++ if not mask or sys.byteorder == "little": ++ self._shift = shift ++ elif self._type == "u8" or self._type == "i8": ++ self._shift = 8 - (shift + mask) ++ elif self._type == "u16" or self._type == "i16": ++ self._shift = 16 - (shift + mask) ++ else: ++ self._shift = 32 - (shift + mask) + self._mask = (1 << mask) - 1 if mask else None + self._name = f"{offset}__{type}__{shift}__{mask}" + +@@ -170,7 +177,7 @@ class Typelib: + OBJ_FINAL = Field(0x02, "u16", 3, 1) + OBJ_GTYPE_NAME = Field(0x08, "string") + OBJ_PARENT = Field(0x10, "dir_entry") +- OBJ_GTYPE_STRUCT = Field(0x14, "string") ++ OBJ_GTYPE_STRUCT = Field(0x12, "string") + OBJ_N_INTERFACES = Field(0x14, "u16") + OBJ_N_FIELDS = Field(0x16, "u16") + OBJ_N_PROPERTIES = Field(0x18, "u16") +@@ -255,7 +262,9 @@ class Typelib: + + def _int(self, size, signed) -> int: + return int.from_bytes( +- self._typelib_file[self._offset : self._offset + size], sys.byteorder ++ self._typelib_file[self._offset : self._offset + size], ++ sys.byteorder, ++ signed=signed, + ) + +
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202309271343.38RDh7pp007748>