Skip to content

Improvements - #8

Merged
mniestroj merged 11 commits into
masterfrom
improvements
Jun 5, 2026
Merged

Improvements#8
mniestroj merged 11 commits into
masterfrom
improvements

Conversation

@mniestroj

Copy link
Copy Markdown
Owner

No description provided.

mniestroj added 11 commits June 5, 2026 17:02
Commit 0f1d055 ("bus: Pass object name to the signal handler")
changed the signal handler signature to receive the object path as
the trailing argument, but the signal tests were not updated to
match. The handler now receives the emitter object path even when
the signal has no data.
CMake 4.0 removed support for cmake_minimum_required values below 3.5,
so projects declaring 2.6 fail to configure on modern hosts. Use the
version-range form to also signal the policies tested up to 4.3.
Lua 5.4 added a fourth 'nresults' output parameter to lua_resume. Add
a new compat branch that calls the 5.4+ signature via an inline wrapper
so existing call sites stay unchanged.
lua_equal was removed from the public C API in Lua 5.3. Some
distributions (e.g. Arch) carry a luaconf.h patch reintroducing it as
a wrapper around lua_compare, but upstream Lua 5.3+ does not provide
it. Switch to lua_compare(L, ..., LUA_OPEQ) so the code builds against
unpatched Lua 5.3, 5.4 and 5.5.

Provide a shim for Lua 5.1, so the code can call lua_compare(L, ...,
LUA_OPEQ) uniformly across all supported versions:(5.1, 5.3, 5.4, 5.5).
Build Lua from source for each matrix entry, configure and build
easydbus against it, install into /usr/local, then load the module
through the matching Lua interpreter to verify ABI compatibility.
Switch to pip-installed cmake so the build picks up the FindLua
module that knows about Lua 5.5. Add the dbus package and build a
matching LuaRocks 3.13.0 from source for each Lua matrix entry,
install busted through it, and run the spec suite under
dbus-run-session.
Extend the matrix with an arch axis (amd64, arm64) that selects
between ubuntu-latest and ubuntu-24.04-arm runners and tags each
job name with its architecture.
Without REQUIRED a missing Lua only triggers a soft 'could not find'
status message; the build then proceeds and fails later with a
confusing LUA_INCLUDE_DIR-NOTFOUND include path. REQUIRED makes the
failure explicit at configure time.
add_definitions() is meant for -D macro definitions; warning flags
belong on the target. Move them to target_compile_options(PRIVATE)
on easydbus_core. The CMAKE_C_FLAGS_RELEASE/DEBUG overrides are
left in place since they encode intentional optimization choices.
The vendored cmake/FindGLIB.cmake duplicates work that pkg-config
already does and trips over multiarch include layouts (e.g. it
returned /usr/lib/glib-2.0/include on Debian-family systems where
glibconfig.h actually lives under /usr/lib/x86_64-linux-gnu).

Drop the custom module entirely and use pkg_check_modules with
IMPORTED_TARGET so the resulting PkgConfig::GLIB target carries
includes, link flags and libraries for glib-2.0, gobject-2.0,
gio-2.0 and gio-unix-2.0 directly from pkg-config. CMAKE_MODULE_PATH
is no longer needed, and the include directories and link libraries
are now target-scoped.
service_spec relies on bus:call yielding the current coroutine while
the glib mainloop callback that runs it is still on the C stack.
Lua 5.1 cannot yield across a C-call boundary (lua_yieldk was added
in 5.2), so the yield aborts with an error and dbus.mainloop_quit()
never runs - the mainloop then blocks forever and CI hangs until
its global timeout.

Guard the spec on _VERSION and mark it pending under Lua 5.1 so the
limitation is visible in the busted output instead of hanging.
@mniestroj
mniestroj merged commit 420f3cc into master Jun 5, 2026
16 checks passed
@mniestroj
mniestroj deleted the improvements branch June 5, 2026 17:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant