mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
dev-lua/lgi: add 0.9.2_p20251219
update EAPI 7 -> 8 fix redirect HOMEPAGE/gh_repo add snapshot with meson, bugfixes, gtk4 support add missing sys-apps/dbus (dbus-run-session), x11-misc/xvfb-run for tests patch to fix pango_test and progress_test always install examples (~460k) Closes: https://bugs.gentoo.org/836839 Signed-off-by: Nicolas PARLANT <nicolas.parlant@parhuet.fr> Part-of: https://github.com/gentoo/gentoo/pull/45262 Closes: https://github.com/gentoo/gentoo/pull/45262 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
committed by
Sam James
parent
edb62aecc3
commit
86ec2f36b3
@@ -1 +1,2 @@
|
||||
DIST lgi-0.9.2.tar.gz 291463 BLAKE2B d89752e7c56f9a695f97f90680515fd9acab57991121ec3455fcd88aa0b64828f060d9bf222fb1ab14bdfc956ec3ad296af848168532d09694a0cacbb55dac71 SHA512 755a96b78530f42da6d4e2664f8e37cb07a356419e7e6448003c3f841c9d98ad18b851715d9eb203ea7eb27b13ec46223fa8a1c90a99fd12960ce85b0a695335
|
||||
DIST lgi-0.9.2_p20251219.tar.gz 305320 BLAKE2B d60a873873eec2784e3cc90c59eb0264502a4ad60363a04bdf7b81a5bc5850b230a80923f30602a0f6b57d653854563897a9a671ef884c0e3a8ed6f4371c2192 SHA512 92dd53f441601deff970eb02a002d763c69fcba82b3067d92fd69e92042e4f6e4e5f98c22e0a044a9b34d62799880af858c3454018f46ae071e93aecedb0cbdf
|
||||
|
||||
36
dev-lua/lgi/files/lgi-0.9.2-fix_tests.patch
Normal file
36
dev-lua/lgi/files/lgi-0.9.2-fix_tests.patch
Normal file
@@ -0,0 +1,36 @@
|
||||
#1 PR pending https://github.com/lgi-devs/lgi/pull/342.patch
|
||||
fix test with pango >= 1.56.2
|
||||
--- a/tests/pango.lua
|
||||
+++ b/tests/pango.lua
|
||||
@@ -35,8 +35,7 @@ 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)
|
||||
+ 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')
|
||||
|
||||
#2 failing progress.lua, see https://github.com/lgi-devs/lgi/issues/348
|
||||
fixed by a fork https://github.com/vtrlx/LuaGObject/commit/cd261460f275ea07a4b47cc0c9d0113e17f98b11.patch
|
||||
--- a/tests/progress.lua
|
||||
+++ b/tests/progress.lua
|
||||
@@ -11,6 +11,7 @@
|
||||
local lgi = require 'lgi'
|
||||
local Gio = lgi.Gio
|
||||
local GLib = lgi.GLib
|
||||
+local GObject = lgi.GObject
|
||||
|
||||
local check = testsuite.check
|
||||
|
||||
@@ -46,6 +47,7 @@ function progress.file_copy()
|
||||
end
|
||||
|
||||
src:copy_async(dst, flags, priority, cancellable,
|
||||
- progress_callback, finish_callback)
|
||||
+ GObject.Closure (progress_callback),
|
||||
+ GObject.Closure (finish_callback))
|
||||
loop:run()
|
||||
end
|
||||
32
dev-lua/lgi/files/lgi-0.9.2-multi_lua_impl.patch
Normal file
32
dev-lua/lgi/files/lgi-0.9.2-multi_lua_impl.patch
Normal file
@@ -0,0 +1,32 @@
|
||||
allow lua multi-implementation
|
||||
@GENTOO_LUA_VERSION@ will be replaced after sources copied for each lua implementation
|
||||
--- a/lgi/core.c
|
||||
+++ b/lgi/core.c
|
||||
@@ -697,7 +697,7 @@ set_resident (lua_State *L)
|
||||
}
|
||||
|
||||
G_MODULE_EXPORT int
|
||||
-luaopen_lgi_corelgilua51 (lua_State* L)
|
||||
+luaopen_lgi_corelgi@GENTOO_LUA_VERSION@ (lua_State* L)
|
||||
{
|
||||
LgiStateMutex *mutex;
|
||||
gint state_id;
|
||||
--- a/lgi/core.lua
|
||||
+++ b/lgi/core.lua
|
||||
@@ -11,7 +11,7 @@
|
||||
-- This module decides what kind of core routines should be loaded.
|
||||
-- Currently only one implementation exists, standard-Lua C-side
|
||||
-- implementation, LuaJIT-FFI-based one is planned.
|
||||
-local core = require 'lgi.corelgilua51'
|
||||
+local core = require 'lgi.corelgi@GENTOO_LUA_VERSION@'
|
||||
|
||||
-- Helper methods for converting between CamelCase and uscore_delim
|
||||
-- names.
|
||||
--- a/lgi/meson.build
|
||||
+++ b/lgi/meson.build
|
||||
@@ -1,4 +1,4 @@
|
||||
-liblgi = shared_module('corelgilua51',
|
||||
+liblgi = shared_module('corelgi@GENTOO_LUA_VERSION@',
|
||||
sources: [
|
||||
'buffer.c',
|
||||
'callable.c',
|
||||
131
dev-lua/lgi/lgi-0.9.2_p20251219.ebuild
Normal file
131
dev-lua/lgi/lgi-0.9.2_p20251219.ebuild
Normal file
@@ -0,0 +1,131 @@
|
||||
# Copyright 1999-2026 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
VIRTUALX_REQUIRED="manual"
|
||||
LUA_COMPAT=( lua5-{1..4} luajit )
|
||||
inherit lua meson virtualx
|
||||
|
||||
DESCRIPTION="Lua bindings using gobject-introspection"
|
||||
HOMEPAGE="https://github.com/lgi-devs/lgi"
|
||||
if [[ ${PV} == *_p* ]]; then
|
||||
HASH_COMMIT="a1308b23b07a787d21fad86157b0b60eb3079f64"
|
||||
SRC_URI="https://github.com/lgi-devs/lgi/archive/${HASH_COMMIT}.tar.gz -> ${P}.tar.gz"
|
||||
S="${WORKDIR}/${PN}-${HASH_COMMIT}"
|
||||
else
|
||||
SRC_URI="https://github.com/lgi-devs/lgi/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
fi
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
|
||||
IUSE="test"
|
||||
RESTRICT="!test? ( test )"
|
||||
REQUIRED_USE="${LUA_REQUIRED_USE}"
|
||||
|
||||
BDEPEND="
|
||||
${LUA_DEPS}
|
||||
virtual/pkgconfig
|
||||
test? (
|
||||
${VIRTUALX_DEPEND}
|
||||
sys-apps/dbus
|
||||
x11-misc/xvfb-run
|
||||
)
|
||||
"
|
||||
RDEPEND="
|
||||
${LUA_DEPS}
|
||||
>=dev-libs/gobject-introspection-1.82.0-r2
|
||||
dev-libs/glib:2
|
||||
dev-libs/libffi:0=
|
||||
"
|
||||
DEPEND="
|
||||
${RDEPEND}
|
||||
test? (
|
||||
x11-libs/cairo[glib,X]
|
||||
|| (
|
||||
x11-libs/gtk+:3[introspection,X]
|
||||
gui-libs/gtk:4[introspection,X]
|
||||
)
|
||||
)
|
||||
"
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-0.9.2-multi_lua_impl.patch
|
||||
"${FILESDIR}"/${PN}-0.9.2-fix_tests.patch
|
||||
)
|
||||
|
||||
lua_src_prepare() {
|
||||
pushd "${BUILD_DIR}" || die
|
||||
# lgi/meson.build & several source files use the LUA version as part of the
|
||||
# direct filename, dynamically created, and we respect that.
|
||||
|
||||
# replace @GENTOO_LUA_VERSION@ with lua version in patched files:
|
||||
# lgi/core.c:luaopen_lgi_corelgilua51 (lua_State* L)
|
||||
# lgi/core.lua:local core = require 'lgi.corelgilua51'
|
||||
# lgi/meson.build: liblgi = shared_module('corelgilua51'
|
||||
sed -i \
|
||||
-e "s/@GENTOO_LUA_VERSION@/${ELUA/.}/" \
|
||||
lgi/core.c \
|
||||
lgi/core.lua \
|
||||
lgi/meson.build \
|
||||
|| die "sed failed"
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
lua_copy_sources
|
||||
lua_foreach_impl lua_src_prepare
|
||||
}
|
||||
|
||||
lua_src_configure() {
|
||||
local emesonargs=(
|
||||
-Dlua-pc="${ELUA}"
|
||||
-Dlua-bin="${LUA}"
|
||||
$(meson_use test tests)
|
||||
)
|
||||
EMESON_SOURCE="${BUILD_DIR}" \
|
||||
BUILD_DIR="${BUILD_DIR}-meson" \
|
||||
meson_src_configure
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
lua_foreach_impl lua_src_configure
|
||||
}
|
||||
|
||||
lua_src_compile() {
|
||||
EMESON_SOURCE="${BUILD_DIR}" \
|
||||
BUILD_DIR="${BUILD_DIR}-meson" \
|
||||
meson_src_compile
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
lua_foreach_impl lua_src_compile
|
||||
}
|
||||
|
||||
lua_src_test() {
|
||||
if [[ ${ELUA} == luajit ]]; then
|
||||
einfo "Tests are currently not supported on LuaJIT"
|
||||
else
|
||||
BUILD_DIR="${BUILD_DIR}-meson" \
|
||||
virtx meson_src_test
|
||||
fi
|
||||
}
|
||||
|
||||
src_test() {
|
||||
lua_foreach_impl lua_src_test
|
||||
}
|
||||
|
||||
lua_src_install() {
|
||||
BUILD_DIR="${BUILD_DIR}-meson" \
|
||||
meson_install
|
||||
}
|
||||
|
||||
src_install() {
|
||||
lua_foreach_impl lua_src_install
|
||||
local DOCS=( README.md docs/. samples )
|
||||
docompress -x /usr/share/doc/${PF}/samples
|
||||
einstalldocs
|
||||
}
|
||||
@@ -5,6 +5,6 @@
|
||||
<email>robbat2@gentoo.org</email>
|
||||
</maintainer>
|
||||
<upstream>
|
||||
<remote-id type="github">pavouk/lgi</remote-id>
|
||||
<remote-id type="github">lgi-devs/lgi</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
||||
|
||||
Reference in New Issue
Block a user