diff --git a/_multibuild b/_multibuild
index 535dfdc..72d2b45 100644
--- a/_multibuild
+++ b/_multibuild
@@ -1,4 +1,5 @@
+lua51
lua53
lua54
diff --git a/_scmsync.obsinfo b/_scmsync.obsinfo
new file mode 100644
index 0000000..1070b17
--- /dev/null
+++ b/_scmsync.obsinfo
@@ -0,0 +1,5 @@
+mtime: 1759701928
+commit: e66f4a61bf9bf90b5d875f01b5d650a018ce0056d4f1d0c01b351a05ccf936dd
+url: https://src.opensuse.org/lua/lua-editorconfig-core-lua.git
+revision: e66f4a61bf9bf90b5d875f01b5d650a018ce0056d4f1d0c01b351a05ccf936dd
+projectscmsync: https://src.opensuse.org/lua/_ObsPrj.git
diff --git a/build-with-lua51.patch b/build-with-lua51.patch
new file mode 100644
index 0000000..ec07dcd
--- /dev/null
+++ b/build-with-lua51.patch
@@ -0,0 +1,90 @@
+---
+ CMakeLists.txt | 2 +-
+ editorconfig_lua.c | 34 ++++++++++++++++++++++++++++------
+ 2 files changed, 29 insertions(+), 7 deletions(-)
+
+Index: editorconfig-core-lua-0.3.0/CMakeLists.txt
+===================================================================
+--- editorconfig-core-lua-0.3.0.orig/CMakeLists.txt 2019-10-04 19:06:29.000000000 +0200
++++ editorconfig-core-lua-0.3.0/CMakeLists.txt 2025-10-05 23:46:24.364066893 +0200
+@@ -35,7 +35,7 @@
+ include(GNUInstallDirs)
+
+ find_package(EditorConfig REQUIRED)
+-set(Lua_FIND_VERSION 5.2) # minimum Lua version
++set(Lua_FIND_VERSION 5.1) # minimum Lua version
+ find_package(Lua REQUIRED)
+
+ set(CMAKE_C_STANDARD 99)
+Index: editorconfig-core-lua-0.3.0/editorconfig_lua.c
+===================================================================
+--- editorconfig-core-lua-0.3.0.orig/editorconfig_lua.c 2019-10-04 19:06:29.000000000 +0200
++++ editorconfig-core-lua-0.3.0/editorconfig_lua.c 2025-10-05 23:46:58.750059153 +0200
+@@ -6,10 +6,10 @@
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+- * this list of conditions and the following disclaimer.
++ * this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+- * this list of conditions and the following disclaimer in the documentation
+- * and/or other materials provided with the distribution.
++ * this list of conditions and the following disclaimer in the documentation
++ * and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+@@ -36,6 +36,28 @@
+ #error "LEC_VERSION is not defined."
+ #endif
+
++#if LUA_VERSION_NUM < 502
++/*
++ * Lua 5.1 compatibility functions.
++ * Adapted from Lua 5.2.x source.
++ */
++static void
++luaL_setfuncs(lua_State *L, const luaL_Reg *l, int nup)
++{
++ luaL_checkstack(L, nup, "too many upvalues");
++ for (; l->name; l++) {
++ int i;
++ for (i = 0; i < nup; i++)
++ lua_pushvalue(L, -nup);
++ lua_pushcclosure(L, l->func, nup);
++ lua_setfield(L, -(nup + 2), l->name);
++ }
++ lua_pop(L, nup);
++}
++
++#define luaL_newlib(L, l) (lua_newtable(L), luaL_setfuncs(L, l, 0))
++#endif
++
+ /***
+ * Lua bindings to the EditorConfig C Core library.
+ * @module editorconfig
+@@ -94,7 +116,7 @@
+ editorconfig_handle eh;
+ int name_value_count;
+ const char *name, *value;
+- lua_Integer idx = 1;
++ lua_Number idx = 1; /* Use lua_Number for Lua 5.1 compatibility */
+
+ eh = open_ec_handle(L);
+ assert(eh != NULL);
+@@ -108,7 +130,7 @@
+ lua_pushstring(L, name);
+ lua_pushstring(L, value);
+ lua_settable(L, 1);
+- lua_pushinteger(L, idx);
++ lua_pushnumber(L, idx); /* Use lua_pushnumber for Lua 5.1 compatibility */
+ lua_pushstring(L, name);
+ lua_settable(L, 2);
+ idx += 1;
+@@ -149,4 +171,4 @@
+ luaL_newlib(L, editorconfig_reg);
+ add_version(L);
+ return 1;
+-}
++}
+\ No newline at end of file
diff --git a/build.specials.obscpio b/build.specials.obscpio
new file mode 100644
index 0000000..a7d653f
--- /dev/null
+++ b/build.specials.obscpio
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d79e32ec5ddb2738e19d64816e185c9a83ee7c5cc848f71685a61f0a4fe06067
+size 256
diff --git a/lua-editorconfig-core-lua.changes b/lua-editorconfig-core-lua.changes
index b75f45f..f5db819 100644
--- a/lua-editorconfig-core-lua.changes
+++ b/lua-editorconfig-core-lua.changes
@@ -1,3 +1,9 @@
+-------------------------------------------------------------------
+Sun Oct 5 21:48:42 UTC 2025 - Matej Cepl
+
+- Add build-with-lua51.patch to make it possible to build with
+ Lua 5.1 (gh#editorconfig/editorconfig-core-lua!5).
+
-------------------------------------------------------------------
Mon May 9 14:58:07 UTC 2022 - Matej Cepl
diff --git a/lua-editorconfig-core-lua.spec b/lua-editorconfig-core-lua.spec
index dfd8400..d04426a 100644
--- a/lua-editorconfig-core-lua.spec
+++ b/lua-editorconfig-core-lua.spec
@@ -26,6 +26,9 @@ License: BSD-2-Clause
Group: Development/Libraries/Other
URL: https://github.com/editorconfig/editorconfig-core-lua
Source: https://github.com/editorconfig/%{mod_name}/archive/v%{version}.tar.gz#/%{mod_name}-%{version}.tar.gz
+# PATCH-FIX-UPSTREAM build-with-lua51.patch gh#editorconfig/editorconfig-core-lua!5 mcepl@suse.com
+# make package building with Lua 5.1
+Patch0: build-with-lua51.patch
BuildRequires: %{flavor}-devel
BuildRequires: %{flavor}-luafilesystem
BuildRequires: %{flavor}-penlight
@@ -52,7 +55,7 @@ editors. EditorConfig Lua Core provides the same functionality
as the Editorconfig C Core library.
%prep
-%setup -q -n %{mod_name}-%{version}
+%autosetup -p1 -n %{mod_name}-%{version}
%build
%cmake -DECL_LIBDIR:PATH=%{lua_archdir} \