mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-04-06 21:20:33 +02:00
gnu: lua-lgi: Fix build.
* gnu/packages/patches/lua-lgi-fix-pango.patch: New file. * gnu/packages/patches/lua-lgi-fix-ref.patch: New file. * gnu/local.mk (dist_patch_DATA): Register them here. * gnu/packages/lua.scm (make-lua-lgi)[patches]: Add them here.
This commit is contained in:
committed by
Andreas Enge
parent
a6b738cc4b
commit
f8b6103ed4
@@ -1869,6 +1869,8 @@ dist_patch_DATA = \
|
||||
%D%/packages/patches/lua-5.4-liblua-so.patch \
|
||||
%D%/packages/patches/lua-5.4-search-paths.patch \
|
||||
%D%/packages/patches/lua-5.x-search-path-helpers.patch \
|
||||
%D%/packages/patches/lua-lgi-fix-pango.patch \
|
||||
%D%/packages/patches/lua-lgi-fix-ref.patch \
|
||||
%D%/packages/patches/luanti-paths.patch \
|
||||
%D%/packages/patches/lugaru-fix-sound.patch \
|
||||
%D%/packages/patches/luit-posix.patch \
|
||||
|
||||
@@ -982,6 +982,8 @@ describing the commented declarations and functions.")
|
||||
(url "https://github.com/pavouk/lgi")
|
||||
(commit version)))
|
||||
(file-name (git-file-name name version))
|
||||
(patches (search-patches "lua-lgi-fix-ref.patch"
|
||||
"lua-lgi-fix-pango.patch"))
|
||||
(sha256
|
||||
(base32 "03rbydnj411xpjvwsyvhwy4plm96481d7jax544mvk7apd8sd5jj"))))
|
||||
(build-system gnu-build-system)
|
||||
|
||||
19
gnu/packages/patches/lua-lgi-fix-pango.patch
Normal file
19
gnu/packages/patches/lua-lgi-fix-pango.patch
Normal file
@@ -0,0 +1,19 @@
|
||||
Upstream-Status: https://github.com/lgi-devs/lgi/pull/342
|
||||
---
|
||||
tests/pango.lua | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/tests/pango.lua b/tests/pango.lua
|
||||
index e20a6799..ea00b903 100644
|
||||
--- a/tests/pango.lua
|
||||
+++ b/tests/pango.lua
|
||||
@@ -35,7 +35,6 @@ function pango.glyphstring()
|
||||
local offset = items[i].offset
|
||||
local length = items[i].length
|
||||
local analysis = items[i].analysis
|
||||
- local pgs = Pango.GlyphString()
|
||||
- Pango.shape(string.sub(s,1+offset), length, analysis, pgs)
|
||||
+ local pgs = Pango.shape(string.sub(s,1+offset), length, analysis)
|
||||
-- Pull out individual glyphs with pgs.glyphs
|
||||
local glyphs = pgs.glyphs
|
||||
check(type(glyphs) == 'table')
|
||||
44
gnu/packages/patches/lua-lgi-fix-ref.patch
Normal file
44
gnu/packages/patches/lua-lgi-fix-ref.patch
Normal file
@@ -0,0 +1,44 @@
|
||||
GLib 2.86 removed the GObject.TypeClass.ref() function, replacing it
|
||||
with GObject.TypeClass.get()—this commit makes it so .get() is used in
|
||||
GLib >= 2.86, while still preserving the old behaviour on GLib < 2.86.
|
||||
|
||||
Upstream-Status: known issue <https://github.com/lgi-devs/lgi/issues/346>
|
||||
---
|
||||
LuaGObject/ffi.lua | 15 ++++++++++++---
|
||||
1 file changed, 12 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/LuaGObject/ffi.lua b/LuaGObject/ffi.lua
|
||||
index 799f68e5..0695b0be 100644
|
||||
--- a/lgi/ffi.lua
|
||||
+++ b/lgi/ffi.lua
|
||||
@@ -76,18 +76,27 @@ end
|
||||
|
||||
-- Creates new enum/flags table with all values from specified gtype.
|
||||
function ffi.load_enum(gtype, name)
|
||||
- local GObject = core.repo.GObject
|
||||
+ local GLib, GObject = core.repo.GLib, core.repo.GObject
|
||||
local is_flags = GObject.Type.is_a(gtype, GObject.Type.FLAGS)
|
||||
local enum_component = component.create(
|
||||
gtype, is_flags and enum.bitflags_mt or enum.enum_mt, name)
|
||||
- local type_class = GObject.TypeClass.ref(gtype)
|
||||
+ local type_class
|
||||
+ -- GLib >= 2.86 deprecates GObject.TypeClass.ref() in favour of .get()
|
||||
+ if GLib.check_version(2, 86, 0) then
|
||||
+ type_class = GObject.TypeClass.ref(gtype)
|
||||
+ else
|
||||
+ type_class = GObject.TypeClass.get(gtype)
|
||||
+ end
|
||||
local enum_class = core.record.cast(
|
||||
type_class, is_flags and GObject.FlagsClass or GObject.EnumClass)
|
||||
for i = 0, enum_class.n_values - 1 do
|
||||
local val = core.record.fromarray(enum_class.values, i)
|
||||
enum_component[core.upcase(val.value_nick):gsub('%-', '_')] = val.value
|
||||
end
|
||||
- type_class:unref()
|
||||
+ -- For GLib versions below 2.86, type_class was ref'd and needs to be unref'd
|
||||
+ if GLib.check_version(2, 86, 0) then
|
||||
+ type_class:unref()
|
||||
+ end
|
||||
return enum_component
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user