From f4780f0b46a1889e8b60828d9b483431ca74d45c3bfd4cb3ef39e0d8fedab68e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Cepl?= Date: Fri, 10 Oct 2025 15:32:17 +0200 Subject: [PATCH] Rename lua54.patch to lua-independent.patch and make building of the package independent of the version of Lua intepreter (gh#brimworks/lua-ev#24). --- lua-independent.patch | 221 ++++++++++++++++++++++++++++++++++++++++++ lua-lua-ev.changes | 7 ++ lua-lua-ev.spec | 7 +- lua54.patch | 20 ---- 4 files changed, 232 insertions(+), 23 deletions(-) create mode 100644 lua-independent.patch delete mode 100644 lua54.patch diff --git a/lua-independent.patch b/lua-independent.patch new file mode 100644 index 0000000..69f9a75 --- /dev/null +++ b/lua-independent.patch @@ -0,0 +1,221 @@ +--- + CMakeLists.txt | 11 ++++++---- + Makefile | 17 +++++++++++++++ + cmake/Modules/FindLua5X.cmake | 46 ------------------------------------------ + lua_ev.c | 4 +-- + lua_ev.h | 8 +++---- + obj_lua_ev.c | 4 +-- + watcher_lua_ev.c | 11 ++-------- + 7 files changed, 35 insertions(+), 66 deletions(-) + +Index: lua-ev-1.5/CMakeLists.txt +=================================================================== +--- lua-ev-1.5.orig/CMakeLists.txt 2019-09-30 16:09:48.000000000 +0200 ++++ lua-ev-1.5/CMakeLists.txt 2025-10-10 15:24:03.450899214 +0200 +@@ -7,8 +7,8 @@ + # Please note that the package source code is licensed under its own + # license. + ++CMAKE_MINIMUM_REQUIRED (VERSION 3.10) + PROJECT(lua-ev C) +-CMAKE_MINIMUM_REQUIRED (VERSION 2.6) + + # Basic configurations + SET(INSTALL_CMOD share/lua/cmod CACHE PATH "Directory to install Lua binary modules (configure lua via LUA_CPATH)") +@@ -16,6 +16,11 @@ + + list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules/") + ++# Find lua using PkgConfig ++find_package(PkgConfig REQUIRED) ++pkg_check_modules(LUA REQUIRED lua) ++# / Find lua using PkgConfig ++ + # Find libev + FIND_LIBRARY (LIBEV_LIBRARY NAMES ev) + FIND_PATH (LIBEV_INCLUDE_DIR ev.h +@@ -25,17 +30,15 @@ + FIND_PACKAGE_HANDLE_STANDARD_ARGS(libev DEFAULT_MSG LIBEV_LIBRARY LIBEV_INCLUDE_DIR) + # / Find libarchive + +-# Find lua +- FIND_PACKAGE(Lua5X REQUIRED) + # / Find lua + + # Define how to build ev.so: +- INCLUDE_DIRECTORIES(${LIBEV_INCLUDE_DIR} ${LUA_INCLUDE_DIR}) + ADD_LIBRARY(cmod_ev MODULE + lua_ev.c + ) + SET_TARGET_PROPERTIES(cmod_ev PROPERTIES PREFIX "") + SET_TARGET_PROPERTIES(cmod_ev PROPERTIES OUTPUT_NAME ev) ++ TARGET_INCLUDE_DIRECTORIES(cmod_ev PRIVATE ${LIBEV_INCLUDE_DIR} ${LUA_INCLUDE_DIRS}) + TARGET_LINK_LIBRARIES(cmod_ev ${LUA_LIBRARIES} ${LIBEV_LIBRARY}) + # / build ev.so + +Index: lua-ev-1.5/Makefile +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ lua-ev-1.5/Makefile 2025-10-10 15:24:19.128836100 +0200 +@@ -0,0 +1,17 @@ ++all: ++ mkdir -p build && cd build/ \ ++ && cmake .. \ ++ '-GUnix Makefiles' \ ++ -DCMAKE_INSTALL_PREFIX:PATH=/usr \ ++ -DCMAKE_BUILD_TYPE=RelWithDebInfo '-DCMAKE_C_FLAGS=-O2 -Wall -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=3 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -Werror=return-type -flto=auto -g' \ ++ '-DCMAKE_EXE_LINKER_FLAGS=-flto=auto -Wl,--as-needed -Wl,--no-undefined -Wl,-z,now' \ ++ '-DCMAKE_MODULE_LINKER_FLAGS=-flto=auto -Wl,--as-needed' \ ++ '-DCMAKE_SHARED_LINKER_FLAGS=-flto=auto -Wl,--as-needed -Wl,--no-undefined -Wl,-z,now' \ ++ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ ++ -DBUILD_SHARED_LIBS:BOOL=ON \ ++ -DCMAKE_COLOR_MAKEFILE:BOOL=OFF \ ++ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \ ++ && make ++ ++clean: ++ rm -rf build CMakeCache.txt +Index: lua-ev-1.5/cmake/Modules/FindLua5X.cmake +=================================================================== +--- lua-ev-1.5.orig/cmake/Modules/FindLua5X.cmake 2019-09-30 16:09:48.000000000 +0200 ++++ /dev/null 1970-01-01 00:00:00.000000000 +0000 +@@ -1,46 +0,0 @@ +- +-find_path(LUA_INCLUDE_DIR lua.h +- HINTS +- $ENV{LUA_DIR} +- PATH_SUFFIXES include include/lua include/lua53 include/lua5.3 include/lua52 include/lua5.2 include/lua51 include/lua5.1 +- PATHS +- ~/Library/Frameworks +- /Library/Frameworks +- /usr/local +- /usr +- /sw +- /opt/local +- /opt/csw +- /opt +-) +- +-find_library(LUA_LIBRARY +- NAMES lua lua53 lua5.3 lua52 lua5.2 lua-5.2 lua51 lua5.1 luajit-5.1 luajit51 luajit5.1 +- HINTS +- $ENV{LUA_DIR} +- PATH_SUFFIXES lib64 lib +- PATHS +- ~/Library/Frameworks +- /Library/Frameworks +- /usr/local +- /usr +- /sw +- /opt/local +- /opt/csw +- /opt +-) +- +-if(LUA_LIBRARY) +- if(UNIX AND NOT APPLE) +- find_library(LUA_MATH_LIBRARY m) +- set( LUA_LIBRARIES "${LUA_LIBRARY};${LUA_MATH_LIBRARY}" CACHE STRING "Lua Libraries") +- else(UNIX AND NOT APPLE) +- set( LUA_LIBRARIES "${LUA_LIBRARY}" CACHE STRING "Lua Libraries") +- endif(UNIX AND NOT APPLE) +-endif(LUA_LIBRARY) +- +-include(FindPackageHandleStandardArgs) +- +-find_package_handle_standard_args(Lua5X DEFAULT_MSG LUA_LIBRARIES LUA_INCLUDE_DIR) +- +-mark_as_advanced(LUA_INCLUDE_DIR LUA_LIBRARIES LUA_LIBRARY LUA_MATH_LIBRARY) +Index: lua-ev-1.5/lua_ev.c +=================================================================== +--- lua-ev-1.5.orig/lua_ev.c 2019-09-30 16:09:48.000000000 +0200 ++++ lua-ev-1.5/lua_ev.c 2025-10-10 15:23:14.201097477 +0200 +@@ -131,7 +131,7 @@ + * + * [+2, -0, -] + */ +-static int version(lua_State *L) { ++int version(lua_State *L) { + lua_pushnumber(L, ev_version_major()); + lua_pushnumber(L, ev_version_minor()); + return 2; +@@ -141,7 +141,7 @@ + * Taken from lua.c out of the lua source distribution. Use this + * function when doing lua_pcall(). + */ +-static int traceback(lua_State *L) { ++int traceback(lua_State *L) { + if ( !lua_isstring(L, 1) ) return 1; + + lua_getglobal(L, "debug"); +Index: lua-ev-1.5/lua_ev.h +=================================================================== +--- lua-ev-1.5.orig/lua_ev.h 2019-09-30 16:09:48.000000000 +0200 ++++ lua-ev-1.5/lua_ev.h 2025-10-10 15:23:14.201097477 +0200 +@@ -100,8 +100,8 @@ + /** + * Generic functions: + */ +-static int version(lua_State *L); +-static int traceback(lua_State *L); ++int version(lua_State *L); ++int traceback(lua_State *L); + + /** + * Loop functions: +@@ -131,9 +131,9 @@ + static int obj_count(lua_State *L); + static void* obj_new(lua_State* L, size_t size, const char* tname); + static int obj_newindex(lua_State *L); +-static int obj_index(lua_State *L); ++int obj_index(lua_State *L); + +-static int push_objs(lua_State* L, void** objs); ++int push_objs(lua_State* L, void** objs); + + /** + * Watcher functions: +Index: lua-ev-1.5/obj_lua_ev.c +=================================================================== +--- lua-ev-1.5.orig/obj_lua_ev.c 2019-09-30 16:09:48.000000000 +0200 ++++ lua-ev-1.5/obj_lua_ev.c 2025-10-10 15:23:14.201097477 +0200 +@@ -96,7 +96,7 @@ + * + * [-0, +1, ?] + */ +-static int obj_index(lua_State *L) { ++int obj_index(lua_State *L) { + if ( lua_getmetatable(L, 1) ) { + lua_pushvalue(L, 2); + lua_gettable(L, -2); +@@ -139,7 +139,7 @@ + * + * [-0, +objs_len, m] + */ +-static int push_objs(lua_State* L, void** objs) { ++int push_objs(lua_State* L, void** objs) { + int obj_count = 0; + int registry_i; + void** cur; +Index: lua-ev-1.5/watcher_lua_ev.c +=================================================================== +--- lua-ev-1.5.orig/watcher_lua_ev.c 2019-09-30 16:09:48.000000000 +0200 ++++ lua-ev-1.5/watcher_lua_ev.c 2025-10-10 15:23:14.201097477 +0200 +@@ -132,14 +132,9 @@ + static void watcher_cb(struct ev_loop *loop, void *watcher, int revents) { + lua_State* L = ev_userdata(loop); + void* objs[3] = { loop, watcher, NULL }; +- int result; +- +- lua_pushcfunction(L, traceback); +- +- result = lua_checkstack(L, 5); +- assert(result != 0 /* able to allocate enough space on lua stack */); +- result = push_objs(L, objs); +- assert(result == 2 /* pushed two objects on the lua stack */); ++ (void)objs; ++ assert(lua_checkstack(L, 5) != 0 /* able to allocate enough space on lua stack */); ++ assert(push_objs(L, objs) == 2 /* pushed two objects on the lua stack */); + assert(!lua_isnil(L, -2) /* the loop obj was resolved */); + assert(!lua_isnil(L, -1) /* the watcher obj was resolved */); + diff --git a/lua-lua-ev.changes b/lua-lua-ev.changes index 40ea58d..3689e96 100644 --- a/lua-lua-ev.changes +++ b/lua-lua-ev.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri Oct 10 13:31:01 UTC 2025 - Matej Cepl + +- Rename lua54.patch to lua-independent.patch and make building + of the package independent of the version of Lua intepreter + (gh#brimworks/lua-ev#24). + ------------------------------------------------------------------- Fri Jul 25 19:47:59 UTC 2025 - Matej Cepl diff --git a/lua-lua-ev.spec b/lua-lua-ev.spec index 12f37d2..322eaba 100644 --- a/lua-lua-ev.spec +++ b/lua-lua-ev.spec @@ -30,9 +30,9 @@ License: MIT Group: Development/Languages/Other URL: https://github.com/brimworks/lua-ev Source: https://github.com/brimworks/%{mod_name}/archive/v%{upversion}.tar.gz#/%{mod_name}-%{upversion}.tar.gz -# PATCH-FIX-UPSTREAM lua54.patch gh#brimworks/lua-ev#24 mcepl@suse.com -# Resolve FTBFS with Lua 5.4. -Patch0: lua54.patch +# PATCH-FIX-UPSTREAM lua-independent.patch gh#brimworks/lua-ev#24 mcepl@suse.com +# Resolve FTBFS with Lua 5.4 and make package building truly Lua version independent. +Patch0: lua-independent.patch BuildRequires: %{flavor}-devel BuildRequires: cmake BuildRequires: libev-devel @@ -53,6 +53,7 @@ Lua integration with libev (http://dist.schmorp.de/libev) %package devel Summary: Header files for %{flavor}-%{mod_name} Group: Development/Languages/Other +BuildArch: noarch Requires: %{flavor}-%{mod_name} = %{version} %if %{with public_lib} Requires: %{flavor}-libev%{libev_sover} diff --git a/lua54.patch b/lua54.patch deleted file mode 100644 index 7fed174..0000000 --- a/lua54.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/cmake/Modules/FindLua5X.cmake -+++ b/cmake/Modules/FindLua5X.cmake -@@ -2,7 +2,7 @@ - find_path(LUA_INCLUDE_DIR lua.h - HINTS - $ENV{LUA_DIR} -- PATH_SUFFIXES include include/lua include/lua53 include/lua5.3 include/lua52 include/lua5.2 include/lua51 include/lua5.1 -+ PATH_SUFFIXES include include/lua include/lua54 include/lua5.4 include/lua53 include/lua5.3 include/lua52 include/lua5.2 include/lua51 include/lua5.1 - PATHS - ~/Library/Frameworks - /Library/Frameworks -@@ -15,7 +15,7 @@ find_path(LUA_INCLUDE_DIR lua.h - ) - - find_library(LUA_LIBRARY -- NAMES lua lua53 lua5.3 lua52 lua5.2 lua-5.2 lua51 lua5.1 luajit-5.1 luajit51 luajit5.1 -+ NAMES lua lua54 lua5.4 lua53 lua5.3 lua52 lua5.2 lua-5.2 lua51 lua5.1 luajit-5.1 luajit51 luajit5.1 - HINTS - $ENV{LUA_DIR} - PATH_SUFFIXES lib64 lib