Improvements - #8
Merged
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.