diff --git a/.github/workflows/build-copr-packages.yml b/.github/workflows/build-copr-packages.yml index 3463470..e1849a9 100644 --- a/.github/workflows/build-copr-packages.yml +++ b/.github/workflows/build-copr-packages.yml @@ -63,7 +63,7 @@ jobs: fi - name: Install jq - run: sudo apt-get update && sudo apt-get install -y jq + run: sudo apt-get update && sudo apt-get install -y jq rpm - name: Detect changed packages id: detect @@ -175,7 +175,7 @@ jobs: - name: Install COPR CLI run: | sudo apt-get update - sudo apt-get install -y python3-pip jq + sudo apt-get install -y python3-pip jq rpm pip3 install copr-cli - name: Configure COPR CLI diff --git a/.github/workflows/build-copr-pr.yml b/.github/workflows/build-copr-pr.yml index 35f64c2..c5c3def 100644 --- a/.github/workflows/build-copr-pr.yml +++ b/.github/workflows/build-copr-pr.yml @@ -40,7 +40,7 @@ jobs: fetch-depth: 0 - name: Install jq - run: sudo apt-get update && sudo apt-get install -y jq + run: sudo apt-get update && sudo apt-get install -y jq rpm - name: Detect changed packages id: detect @@ -79,7 +79,7 @@ jobs: - name: Install COPR CLI run: | sudo apt-get update - sudo apt-get install -y python3-pip jq + sudo apt-get install -y python3-pip jq rpm pip3 install copr-cli - name: Configure COPR CLI diff --git a/.github/workflows/check-package-versions.yml b/.github/workflows/check-package-versions.yml index 11a534d..d146c45 100644 --- a/.github/workflows/check-package-versions.yml +++ b/.github/workflows/check-package-versions.yml @@ -27,7 +27,7 @@ jobs: uses: actions/checkout@v6 - name: Install dependencies - run: sudo apt-get update && sudo apt-get install -y jq + run: sudo apt-get update && sudo apt-get install -y jq rpm - name: Collect all package updates id: collect @@ -222,7 +222,7 @@ jobs: uses: actions/checkout@v6 - name: Install dependencies - run: sudo apt-get update && sudo apt-get install -y jq + run: sudo apt-get update && sudo apt-get install -y jq rpm - name: Generate group info id: info diff --git a/packages/README.md b/packages/README.md index 87c194a..8e2bdee 100644 --- a/packages/README.md +++ b/packages/README.md @@ -151,18 +151,30 @@ These must be built first as other packages depend on them. --- +### 12. lua55 + +| Setting | Value | +|---------|-------| +| Subdir | `packages/lua` | +| Spec File | `lua.spec` | +| Version | 5.5.0 | +| Dependencies | None | +| Notes | Parallel-installable Lua 5.5 (coexists with system lua 5.4). Required by hyprland for embedded scripting. | + +--- + ## Priority 2: Hyprland Compositor & Tools Build after core libraries are available. -### 12. hyprland +### 13. hyprland | Setting | Value | |---------|-------| | Subdir | `packages/hyprland` | | Spec File | `hyprland.spec` | | Version | 0.52.2 | -| Dependencies | aquamarine, hyprcursor, hyprgraphics, hyprlang, hyprutils, hyprwayland-scanner | +| Dependencies | aquamarine, hyprcursor, hyprgraphics, hyprlang, hyprutils, hyprwayland-scanner, lua55 | --- @@ -435,21 +447,22 @@ To ensure dependencies are satisfied, build in this order: 3. hyprland-protocols 4. glaze 5. uwsm -6. eza -7. starship -8. lazygit -9. ghostty -10. quickshell -11. livesys-scripts -12. wifitui -13. resvg -14. yazi -15. bluetui -16. iamb -17. meli -18. lazyjournal -19. lazysql -20. resterm +6. lua55 +7. eza +8. starship +9. lazygit +10. ghostty +11. quickshell +12. livesys-scripts +13. wifitui +14. resvg +15. yazi +16. bluetui +17. iamb +18. meli +19. lazyjournal +20. lazysql +21. resterm **Batch 2** (depends on Batch 1): 1. hyprlang (needs hyprutils) @@ -461,12 +474,8 @@ To ensure dependencies are satisfied, build in this order: 1. hyprcursor (needs hyprlang) 2. hyprland-qt-support (needs hyprlang) -**Batch 3** (depends on Batch 2): -1. hyprcursor (needs hyprlang) -2. hyprland-qt-support (needs hyprlang) - **Batch 4** (depends on Batch 3): -1. hyprland (needs aquamarine, hyprcursor, hyprgraphics, hyprlang, hyprutils, glaze) +1. hyprland (needs aquamarine, hyprcursor, hyprgraphics, hyprlang, hyprutils, glaze, lua55) 2. hyprlock (needs hyprgraphics, hyprlang, hyprutils, hyprwayland-scanner) 3. hypridle (needs hyprland-protocols, hyprlang, hyprutils, hyprwayland-scanner) 4. hyprpaper (needs hyprgraphics, hyprlang, hyprtoolkit, hyprutils, hyprwayland-scanner, hyprwire) @@ -493,26 +502,27 @@ To ensure dependencies are satisfied, build in this order: | 8 | hyprland-qt-support | `packages/hyprland-qt-support` | `hyprland-qt-support.spec` | 0.1.0 | | 9 | glaze | `packages/glaze` | `glaze.spec` | 6.1.0 | | 10 | uwsm | `packages/uwsm` | `uwsm.spec` | 0.23.3 | -| 11 | hyprland | `packages/hyprland` | `hyprland.spec` | 0.52.2 | -| 12 | hyprlock | `packages/hyprlock` | `hyprlock.spec` | 0.9.2 | -| 13 | hypridle | `packages/hypridle` | `hypridle.spec` | 0.1.7 | -| 14 | hyprpaper | `packages/hyprpaper` | `hyprpaper.spec` | 0.7.6 | -| 15 | xdg-desktop-portal-hyprland | `packages/xdg-desktop-portal-hyprland` | `xdg-desktop-portal-hyprland.spec` | 1.3.11 | -| 16 | hyprpolkitagent | `packages/hyprpolkitagent` | `hyprpolkitagent.spec` | 0.1.3 | -| 17 | hyprtoolkit | `packages/hyprtoolkit` | `hyprtoolkit.spec` | 0.4.1 | -| 18 | hyprland-guiutils | `packages/hyprland-guiutils` | `hyprland-guiutils.spec` | 0.2.0 | -| 19 | eza | `packages/eza` | `eza.spec` | 0.20.21 | -| 20 | starship | `packages/starship` | `starship.spec` | 1.24.1 | -| 21 | lazygit | `packages/lazygit` | `lazygit.spec` | 0.57.0 | -| 22 | ghostty | `packages/ghostty` | `ghostty.spec` | 1.2.3^git | -| 23 | quickshell | `packages/quickshell` | `quickshell.spec` | 0.2.1 | -| 24 | livesys-scripts | `packages/livesys-scripts` | `livesys-scripts.spec` | 0.9.1 | -| 25 | wifitui | `packages/wifitui` | `wifitui.spec` | 0.9.0 | -| 26 | resvg | `packages/resvg` | `resvg.spec` | 0.46.0 | -| 27 | yazi | `packages/yazi` | `yazi.spec` | 26.1.22 | -| 28 | bluetui | `packages/bluetui` | `bluetui.spec` | 0.8.1 | -| 29 | iamb | `packages/iamb` | `iamb.spec` | 0.0.11 | -| 30 | meli | `packages/meli` | `meli.spec` | 0.8.13 | -| 31 | lazyjournal | `packages/lazyjournal` | `lazyjournal.spec` | 0.8.4 | -| 32 | lazysql | `packages/lazysql` | `lazysql.spec` | 0.4.6 | -| 33 | resterm | `packages/resterm` | `resterm.spec` | 0.20.3 | +| 11 | lua55 | `packages/lua` | `lua.spec` | 5.5.0 | +| 12 | hyprland | `packages/hyprland` | `hyprland.spec` | 0.52.2 | +| 13 | hyprlock | `packages/hyprlock` | `hyprlock.spec` | 0.9.2 | +| 14 | hypridle | `packages/hypridle` | `hypridle.spec` | 0.1.7 | +| 15 | hyprpaper | `packages/hyprpaper` | `hyprpaper.spec` | 0.7.6 | +| 16 | xdg-desktop-portal-hyprland | `packages/xdg-desktop-portal-hyprland` | `xdg-desktop-portal-hyprland.spec` | 1.3.11 | +| 17 | hyprpolkitagent | `packages/hyprpolkitagent` | `hyprpolkitagent.spec` | 0.1.3 | +| 18 | hyprtoolkit | `packages/hyprtoolkit` | `hyprtoolkit.spec` | 0.4.1 | +| 19 | hyprland-guiutils | `packages/hyprland-guiutils` | `hyprland-guiutils.spec` | 0.2.0 | +| 20 | eza | `packages/eza` | `eza.spec` | 0.20.21 | +| 21 | starship | `packages/starship` | `starship.spec` | 1.24.1 | +| 22 | lazygit | `packages/lazygit` | `lazygit.spec` | 0.57.0 | +| 23 | ghostty | `packages/ghostty` | `ghostty.spec` | 1.2.3^git | +| 24 | quickshell | `packages/quickshell` | `quickshell.spec` | 0.2.1 | +| 25 | livesys-scripts | `packages/livesys-scripts` | `livesys-scripts.spec` | 0.9.1 | +| 26 | wifitui | `packages/wifitui` | `wifitui.spec` | 0.9.0 | +| 27 | resvg | `packages/resvg` | `resvg.spec` | 0.46.0 | +| 28 | yazi | `packages/yazi` | `yazi.spec` | 26.1.22 | +| 29 | bluetui | `packages/bluetui` | `bluetui.spec` | 0.8.1 | +| 30 | iamb | `packages/iamb` | `iamb.spec` | 0.0.11 | +| 31 | meli | `packages/meli` | `meli.spec` | 0.8.13 | +| 32 | lazyjournal | `packages/lazyjournal` | `lazyjournal.spec` | 0.8.4 | +| 33 | lazysql | `packages/lazysql` | `lazysql.spec` | 0.4.6 | +| 34 | resterm | `packages/resterm` | `resterm.spec` | 0.20.3 | diff --git a/packages/hyprland/hyprland.spec b/packages/hyprland/hyprland.spec index a0fd013..3ce57a0 100644 --- a/packages/hyprland/hyprland.spec +++ b/packages/hyprland/hyprland.spec @@ -32,6 +32,7 @@ BuildRequires: pkgconfig(libdisplay-info) BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libinput) >= 1.28 BuildRequires: pkgconfig(lcms2) +BuildRequires: pkgconfig(lua55) BuildRequires: pkgconfig(libliftoff) BuildRequires: pkgconfig(libseat) BuildRequires: pkgconfig(libudev) diff --git a/packages/lua/lua-5.2.2-configure-linux.patch b/packages/lua/lua-5.2.2-configure-linux.patch new file mode 100644 index 0000000..735386a --- /dev/null +++ b/packages/lua/lua-5.2.2-configure-linux.patch @@ -0,0 +1,22 @@ +diff -up lua-5.2.2/configure.ac.linux lua-5.2.2/configure.ac +--- lua-5.2.2/configure.ac.linux 2013-05-10 15:42:27.269437631 -0400 ++++ lua-5.2.2/configure.ac 2013-05-10 15:43:23.530435620 -0400 +@@ -50,6 +50,7 @@ AC_SUBST(READLINE_LIBS) + case "$host" in + *-mingw*) use_os=win32 ;; + *-darwin*) use_os=macosx ;; ++ *-linux*) use_os=linux ;; + *) use_os=posix ;; + esac + +@@ -62,6 +63,10 @@ if test "x$use_os" == "xwin32"; then + elif test "x$use_os" == "xmacosx"; then + POSIX_DEFS="#define LUA_USE_POSIX" + LUA_DL_DEFS="#define LUA_DL_DYLD" ++elif test "x$use_os" == "xlinux"; then ++ POSIX_DEFS="#define LUA_USE_LINUX" ++ LUA_DL_DEFS="#define LUA_DL_DLOPEN" ++ LUA_LIBS="$LUA_LIBS -ldl" + elif test "x$use_os" == "xposix"; then + POSIX_DEFS="#define LUA_USE_POSIX" + LUA_DL_DEFS="#define LUA_DL_DLOPEN" diff --git a/packages/lua/lua-5.3.0-configure-compat-module.patch b/packages/lua/lua-5.3.0-configure-compat-module.patch new file mode 100644 index 0000000..bd5d41d --- /dev/null +++ b/packages/lua/lua-5.3.0-configure-compat-module.patch @@ -0,0 +1,35 @@ +diff -up lua-5.2.2/configure.ac.compat-module lua-5.2.2/configure.ac +--- lua-5.2.2/configure.ac.compat-module 2013-05-10 10:16:05.344137597 -0400 ++++ lua-5.2.2/configure.ac 2013-05-10 10:16:05.357137596 -0400 +@@ -11,6 +11,20 @@ AC_PROG_CC + AC_PROG_LIBTOOL + + AC_ARG_WITH( ++ [compat-module], ++ [AC_HELP_STRING([--with-compat-module], [Enable LUA_COMPAT_MODULE functions [default=no]])], ++ [use_compat_module=$withval], ++ [use_compat_module=no] ++) ++ ++COMPAT_DEFS="#undef LUA_COMPAT_ALL" ++if test "x$use_compat_module" == "xyes"; then ++ COMPAT_DEFS="#define LUA_COMPAT_5_1 ++#define LUA_COMPAT_5_2" ++fi ++AC_SUBST(COMPAT_DEFS) ++ ++AC_ARG_WITH( + [readline], + [AC_HELP_STRING([--with-readline], [Use readline for interpreter input [default=yes]])], + [use_readline=$withval], +diff -up lua-5.2.2/src/luaconf.h.template.in.compat-module lua-5.2.2/src/luaconf.h.template.in +--- lua-5.2.2/src/luaconf.h.template.in.compat-module 2013-05-10 10:25:42.586116963 -0400 ++++ lua-5.2.2/src/luaconf.h.template.in 2013-05-10 10:26:29.957115269 -0400 +@@ -15,6 +15,7 @@ + @LUA_DL_DEFS@ + @LUA_BUILD_AS_DLL_DEFS@ + @READLINE_DEFS@ ++@COMPAT_DEFS@ + + + /* diff --git a/packages/lua/lua-5.4.6-idsize.patch b/packages/lua/lua-5.4.6-idsize.patch new file mode 100644 index 0000000..468f739 --- /dev/null +++ b/packages/lua/lua-5.4.6-idsize.patch @@ -0,0 +1,12 @@ +diff -up lua-5.4.6/src/luaconf.h.template.in.idsize lua-5.4.6/src/luaconf.h.template.in +--- lua-5.4.6/src/luaconf.h.template.in.idsize 2023-05-22 11:02:54.207370261 -0400 ++++ lua-5.4.6/src/luaconf.h.template.in 2023-05-22 11:04:21.410747055 -0400 +@@ -761,7 +761,7 @@ + ** of a function in debug information. + ** CHANGE it if you want a different size. + */ +-#define LUA_IDSIZE 60 ++#define LUA_IDSIZE 512 + + + /* diff --git a/packages/lua/lua-5.5.0-autotoolize.patch b/packages/lua/lua-5.5.0-autotoolize.patch new file mode 100644 index 0000000..cc583f1 --- /dev/null +++ b/packages/lua/lua-5.5.0-autotoolize.patch @@ -0,0 +1,192 @@ +diff -up lua-5.4.0-beta/configure.ac.autoxxx lua-5.4.0-beta/configure.ac +--- lua-5.4.0-beta/configure.ac.autoxxx 2019-10-23 15:03:13.296916443 -0400 ++++ lua-5.4.0-beta/configure.ac 2019-10-23 15:03:13.296916443 -0400 +@@ -0,0 +1,69 @@ ++AC_PREREQ(2.59) ++AC_INIT([lua], [5.5.0], [https://bugzilla.redhat.com/], [lua-at], [http://www.lua.org]) ++AC_SUBST([MAJOR_VERSION], [5.5]) ++ ++AC_CONFIG_HEADERS([config.h]) ++AC_CONFIG_SRCDIR([src/lapi.c]) ++ ++AM_INIT_AUTOMAKE([1.9 foreign]) ++ ++AC_PROG_CC ++AC_PROG_LIBTOOL ++ ++AC_ARG_WITH( ++ [readline], ++ [AC_HELP_STRING([--with-readline], [Use readline for interpreter input [default=yes]])], ++ [use_readline=$withval], ++ [use_readline=yes] ++) ++ ++LUA_LIBS="-lm" ++ ++# Check for readline ++READLINE_DEFS="#undef LUA_USE_READLINE" ++if test "x$use_readline" == "xyes"; then ++ AC_CHECK_LIB([readline], [readline], [:], [use_readline=no], [-lncurses]) ++ AC_CHECK_HEADERS([readline/readline.h readline/history.h], [], [use_readline=no]) ++ if test "x$use_readline" == "xno"; then ++ AC_MSG_WARN([readline headers could not be found, disabling readline support]) ++ else ++ READLINE_DEFS="#define LUA_USE_READLINE" ++ READLINE_LIBS="-lreadline -lncurses" ++ fi ++fi ++AC_SUBST(READLINE_DEFS) ++AC_SUBST(READLINE_LIBS) ++ ++case "$host" in ++ *-mingw*) use_os=win32 ;; ++ *-darwin*) use_os=macosx ;; ++ *) use_os=posix ;; ++esac ++ ++POSIX_DEFS="#undef LUA_USE_POSIX" ++LUA_DL_DEFS="#undef LUA_USE_DLOPEN" ++LUA_BUILD_AS_DLL_DEFS="#undef LUA_BUILD_AS_DLL" ++ ++if test "x$use_os" == "xwin32"; then ++ LUA_BUILD_AS_DLL_DEFS="#define LUA_BUILD_AS_DLL" ++elif test "x$use_os" == "xmacosx"; then ++ POSIX_DEFS="#define LUA_USE_POSIX" ++ LUA_DL_DEFS="#define LUA_DL_DYLD" ++elif test "x$use_os" == "xposix"; then ++ POSIX_DEFS="#define LUA_USE_POSIX" ++ LUA_DL_DEFS="#define LUA_DL_DLOPEN" ++ LUA_LIBS="$LUA_LIBS -ldl" ++fi ++AC_SUBST(POSIX_DEFS) ++AC_SUBST(LUA_DL_DEFS) ++AC_SUBST(LUA_BUILD_AS_DLL_DEFS) ++ ++AC_SUBST(LUA_LIBS) ++ ++AC_CONFIG_FILES([Makefile ++ src/Makefile ++ src/lua.pc ++ src/luaconf.h.template ++ doc/Makefile ++]) ++AC_OUTPUT +diff -up lua-5.4.0-beta/doc/Makefile.am.autoxxx lua-5.4.0-beta/doc/Makefile.am +--- lua-5.4.0-beta/doc/Makefile.am.autoxxx 2019-10-23 15:03:13.296916443 -0400 ++++ lua-5.4.0-beta/doc/Makefile.am 2019-10-23 15:03:13.296916443 -0400 +@@ -0,0 +1,4 @@ ++man1_MANS = lua.1 luac.1 ++ ++EXTRA_DIST = \ ++ contents.html logo.gif lua.1 luac.1 lua.css manual.css manual.html osi-certified-72x60.png readme.html +diff -up lua-5.4.0-beta/Makefile.am.autoxxx lua-5.4.0-beta/Makefile.am +--- lua-5.4.0-beta/Makefile.am.autoxxx 2019-10-23 15:03:13.296916443 -0400 ++++ lua-5.4.0-beta/Makefile.am 2019-10-23 15:03:13.296916443 -0400 +@@ -0,0 +1,3 @@ ++SUBDIRS = src doc ++ ++EXTRA_DIST = README +diff -up lua-5.4.0-beta/src/.gitignore.autoxxx lua-5.4.0-beta/src/.gitignore +--- lua-5.4.0-beta/src/.gitignore.autoxxx 2019-10-23 15:03:13.297916423 -0400 ++++ lua-5.4.0-beta/src/.gitignore 2019-10-23 15:03:13.296916443 -0400 +@@ -0,0 +1,5 @@ ++lua ++lua.pc ++luac ++luaconf.h ++luaconf.h.template +diff -up lua-5.4.0-beta/src/luaconf.h.template.in.autoxxx lua-5.4.0-beta/src/luaconf.h.template.in +--- lua-5.4.0-beta/src/luaconf.h.template.in.autoxxx 2019-09-30 19:52:16.000000000 -0400 ++++ lua-5.4.0-beta/src/luaconf.h.template.in 2019-10-23 15:05:45.139817627 -0400 +@@ -11,6 +11,11 @@ + #include + #include + ++@POSIX_DEFS@ ++@LUA_DL_DEFS@ ++@LUA_BUILD_AS_DLL_DEFS@ ++@READLINE_DEFS@ ++ + + /* + ** =================================================================== +@@ -227,9 +232,9 @@ + + #else /* }{ */ + +-#define LUA_ROOT "/usr/local/" +-#define LUA_LDIR LUA_ROOT "share/lua/" LUA_VDIR "/" +-#define LUA_CDIR LUA_ROOT "lib/lua/" LUA_VDIR "/" ++#define LUA_ROOT "@prefix@/" ++#define LUA_LDIR "@pkgdatadir@/lua/" LUA_VDIR "/" ++#define LUA_CDIR "@libdir@/lua/" LUA_VDIR "/" + + #if !defined(LUA_PATH_DEFAULT) + #define LUA_PATH_DEFAULT \ +diff -up lua-5.4.0-beta/src/lua.pc.in.autoxxx lua-5.4.0-beta/src/lua.pc.in +--- lua-5.4.0-beta/src/lua.pc.in.autoxxx 2019-10-23 15:03:13.297916423 -0400 ++++ lua-5.4.0-beta/src/lua.pc.in 2019-10-23 15:03:13.297916423 -0400 +@@ -0,0 +1,13 @@ ++V= @MAJOR_VERSION@ ++R= @VERSION@ ++prefix= @prefix@ ++exec_prefix=${prefix} ++libdir= @libdir@ ++includedir=${prefix}/include ++ ++Name: Lua ++Description: An Extensible Extension Language ++Version: ${R} ++Requires: ++Libs: -llua @LUA_LIBS@ ++Cflags: -I${includedir} +diff -up lua-5.4.0-beta/src/Makefile.am.autoxxx lua-5.4.0-beta/src/Makefile.am +--- lua-5.4.0-beta/src/Makefile.am.autoxxx 2019-10-23 15:03:13.297916423 -0400 ++++ lua-5.4.0-beta/src/Makefile.am 2019-10-23 15:03:13.297916423 -0400 +@@ -0,0 +1,46 @@ ++AM_CFLAGS = -Wall ++ ++include_HEADERS = lua.h lualib.h lauxlib.h lua.hpp ++ ++nodist_include_HEADERS = luaconf.h ++ ++lib_LTLIBRARIES = liblua.la ++liblua_la_LDFLAGS = -release @MAJOR_VERSION@ ++liblua_la_SOURCES = \ ++ lapi.c lauxlib.c lbaselib.c lcode.c lcorolib.c lctype.c ldblib.c \ ++ ldebug.c ldo.c ldump.c lfunc.c lgc.c linit.c liolib.c llex.c lmathlib.c lmem.c \ ++ loadlib.c lobject.c lopcodes.c loslib.c lparser.c lstate.c lstring.c lstrlib.c \ ++ ltable.c ltablib.c ltm.c lundump.c lutf8lib.c lvm.c lzio.c \ ++ lapi.h lcode.h lctype.h ldebug.h ldo.h lfunc.h lgc.h llex.h llimits.h \ ++ lmem.h lobject.h lopcodes.h lparser.h lstate.h lstring.h ltable.h ltm.h \ ++ lundump.h lvm.h lzio.h ++ ++pkgconfigdir = $(libdir)/pkgconfig ++pkgconfig_DATA = lua.pc ++ ++bin_PROGRAMS = lua luac ++ ++lua_SOURCES = lua.c ++lua_LDADD = liblua.la @LUA_LIBS@ @READLINE_LIBS@ ++lua_DEPENDENCIES = liblua.la ++ ++luac_SOURCES = luac.c ++# Statically link liblua against luac since luac uses symbols not exported in liblua ++luac_LDADD = .libs/liblua.a @LUA_LIBS@ ++luac_DEPENDENCIES = liblua.la ++ ++EXTRA_DIST = luaconf.h.template ++BUILT_SOURCES = luaconf.h ++CLEANFILES = luaconf.h luaconf.h.template ++ ++readline_defs = @READLINE_DEFS@ ++ ++edit = sed \ ++ -e 's,%prefix%,$(prefix),g' \ ++ -e 's,%lua_datadir%,$(datadir),g' \ ++ -e 's,%lua_libdir%,$(libdir),g' ++ ++luaconf.h : luaconf.h.template ++ rm -f $@ $@.tmp ++ $(edit) $< >$@.tmp ++ mv $@.tmp $@ diff --git a/packages/lua/lua-5.5.0-bug1.patch b/packages/lua/lua-5.5.0-bug1.patch new file mode 100644 index 0000000..ed7b7c1 --- /dev/null +++ b/packages/lua/lua-5.5.0-bug1.patch @@ -0,0 +1,12 @@ +diff -up lua-5.5.0/src/lapi.c.bug1 lua-5.5.0/src/lapi.c +--- lua-5.5.0/src/lapi.c.bug1 2026-01-06 10:46:04.363172258 -0500 ++++ lua-5.5.0/src/lapi.c 2026-01-06 10:47:24.415699829 -0500 +@@ -1205,6 +1205,8 @@ LUA_API int lua_gc (lua_State *L, int wh + g->gcstp = 0; /* allow GC to run (other bits must be zero here) */ + if (n <= 0) + n = g->GCdebt; /* force to run one basic step */ ++ else if (g->GCdebt < n - MAX_LMEM) /* overflow? */ ++ n = MAX_LMEM + g->GCdebt; /* trim 'n' (debt must be negative) */ + luaE_setdebt(g, g->GCdebt - n); + luaC_condGC(L, (void)0, work = 1); + if (work && g->gcstate == GCSpause) /* end of cycle? */ diff --git a/packages/lua/lua-5.5.0-bug2.patch b/packages/lua/lua-5.5.0-bug2.patch new file mode 100644 index 0000000..3848594 --- /dev/null +++ b/packages/lua/lua-5.5.0-bug2.patch @@ -0,0 +1,12 @@ +diff -up lua-5.5.0/src/lstrlib.c.bug2 lua-5.5.0/src/lstrlib.c +--- lua-5.5.0/src/lstrlib.c.bug2 2026-01-14 16:33:13.073440361 -0500 ++++ lua-5.5.0/src/lstrlib.c 2026-01-14 16:33:41.019926479 -0500 +@@ -1726,7 +1726,7 @@ static int str_packsize (lua_State *L) { + luaL_argcheck(L, opt != Kstring && opt != Kzstr, 1, + "variable-length format"); + size += ntoalign; /* total space used by option */ +- luaL_argcheck(L, totalsize <= LUA_MAXINTEGER - size, ++ luaL_argcheck(L, totalsize <= MAX_SIZE - size, + 1, "format result too large"); + totalsize += size; + } diff --git a/packages/lua/lua.spec b/packages/lua/lua.spec new file mode 100644 index 0000000..46e217f --- /dev/null +++ b/packages/lua/lua.spec @@ -0,0 +1,632 @@ +%global major_version 5.5 +# Normally, this is the same as version, but... not always. +%global test_version 5.5.0 +# Hypercube: This is a parallel-installable lua 5.5 package that coexists +# with Fedora's system lua 5.4. Package name, binaries, headers, and the +# pkg-config file are all versioned so nothing conflicts with the distro lua. +%global bootstrap 0 +%global bootstrap_major_version 5.4 +%global bootstrap_version %{bootstrap_major_version}.8 + +# Place rpm-macros into proper location. +%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) + + +Name: lua55 +Version: %{major_version}.0 +Release: 1%{?dist} +Summary: Powerful light-weight programming language (version %{major_version}) +License: MIT +URL: https://www.lua.org/ +Source0: https://www.lua.org/ftp/lua-%{version}.tar.gz +# copied from doc/readme.html on 2014-07-18 +Source1: mit.txt +%if 0%{?bootstrap} +Source2: https://www.lua.org/ftp/lua-%{bootstrap_version}.tar.gz +%endif +Source3: https://www.lua.org/tests/lua-%{test_version}-tests.tar.gz +# multilib +Source4: luaconf.h +# Patch names are hardcoded because Name is lua55 (parallel-install) +Patch0: lua-5.5.0-autotoolize.patch +Patch1: lua-5.4.6-idsize.patch +#Patch2: lua-5.3.0-luac-shared-link-fix.patch +Patch3: lua-5.2.2-configure-linux.patch +Patch4: lua-5.3.0-configure-compat-module.patch +%if 0%{?bootstrap} +Patch5: lua-5.4.8-autotoolize.patch +Patch6: lua-5.4.8-luac-shared-link-fix.patch +Patch7: lua-5.4.8-bug1.patch +Patch8: lua-5.4.8-bug2.patch +Patch9: lua-5.4.8-bug3.patch +%endif +# https://www.lua.org/bugs.html +Patch10: lua-5.5.0-bug1.patch +Patch11: lua-5.5.0-bug2.patch + +BuildRequires: automake autoconf libtool readline-devel ncurses-devel +BuildRequires: make +Requires: %{name}-libs = %{version}-%{release} + +%description +Lua is a powerful light-weight programming language designed for +extending applications. Lua is also frequently used as a +general-purpose, stand-alone language. Lua is free software. +Lua combines simple procedural syntax with powerful data description +constructs based on associative arrays and extensible semantics. Lua +is dynamically typed, interpreted from bytecodes, and has automatic +memory management with garbage collection, making it ideal for +configuration, scripting, and rapid prototyping. + +This package provides Lua %{major_version} parallel-installable alongside +the system Lua. + +%package devel +Summary: Development files for Lua %{major_version} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: pkgconfig + +%description devel +This package contains development files for Lua %{major_version}. + +%package libs +Summary: Libraries for Lua %{major_version} +Provides: lua(abi) = %{major_version} + +%description libs +This package contains the shared libraries for Lua %{major_version}. + +%package static +Summary: Static library for Lua %{major_version} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} + +%description static +This package contains the static version of liblua for Lua %{major_version}. + +%if 0%{?bootstrap} +%package -n lua%{bootstrap_major_version}-libs +Summary: Compat libraries for lua%{bootstrap_major_version} +Provides: lua(abi) = %{bootstrap_major_version} + +%description -n lua%{bootstrap_major_version}-libs +This package contains compatibility libraries for lua %{bootstrap_major_version}.. +%endif + +%prep +%if 0%{?bootstrap} +%setup -q -a 2 -a 3 -n lua-%{version} +%else +%setup -q -a 3 -n lua-%{version} +%endif +cp %{SOURCE1} . +mv src/luaconf.h src/luaconf.h.template.in +%patch -P0 -p1 -E -z .autoxxx +%patch -P1 -p1 -z .idsize +#%% patch -P2 -p1 -z .luac-shared +%patch -P3 -p1 -z .configure-linux + +# Bug patches here +%patch -P10 -p1 -b .bug1 +%patch -P11 -p1 -b .bug2 + +# Put proper version in configure.ac, patch0 hardcodes 5.5.0 +sed -i 's|5.5.0|%{version}|g' configure.ac +autoreconf -ifv + + +%if 0%{?bootstrap} +cd lua-%{bootstrap_version}/ +mv src/luaconf.h src/luaconf.h.template.in +%patch -P5 -p1 -b .autoxxx +%patch -P1 -p1 -b .idsize +%patch -P3 -p1 -z .configure-linux +%patch -P4 -p1 -z .configure-compat-all +%patch -P6 -p1 -b .luac-shared-link-fix +%patch -P7 -p1 -b .54bug1 +%patch -P8 -p1 -b .54bug2 +%patch -P9 -p1 -b .54bug3 +autoreconf -i +cd .. +%endif + + +%build +%configure --with-readline --with-compat-module +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool +# Autotools give me a headache sometimes. +sed -i 's|@pkgdatadir@|%{_datadir}|g' src/luaconf.h.template + +# hack so that only /usr/bin/lua gets linked with readline as it is the +# only one which needs this and otherwise we get License troubles +%make_build LIBS="-lm -ldl" +# only /usr/bin/lua links with readline now #luac_LDADD="liblua.la -lm -ldl" + +%if 0%{?bootstrap} +pushd lua-%{bootstrap_version} +%configure --with-readline --with-compat-module +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool +# Autotools give me a headache sometimes. +sed -i 's|@pkgdatadir@|%{_datadir}|g' src/luaconf.h.template + +# hack so that only /usr/bin/lua gets linked with readline as it is the +# only one which needs this and otherwise we get License troubles +%make_build LIBS="-lm -ldl" luac_LDADD="liblua.la -lm -ldl" +popd +%endif + +%install +%make_install +rm $RPM_BUILD_ROOT%{_libdir}/*.la + +# === Parallel-install: version all installed paths === + +# Move headers into a versioned subdirectory +mkdir -p $RPM_BUILD_ROOT%{_includedir}/lua-%{major_version} +mv $RPM_BUILD_ROOT%{_includedir}/lua.h $RPM_BUILD_ROOT%{_includedir}/lua-%{major_version}/ +mv $RPM_BUILD_ROOT%{_includedir}/lualib.h $RPM_BUILD_ROOT%{_includedir}/lua-%{major_version}/ +mv $RPM_BUILD_ROOT%{_includedir}/lauxlib.h $RPM_BUILD_ROOT%{_includedir}/lua-%{major_version}/ +mv $RPM_BUILD_ROOT%{_includedir}/lua.hpp $RPM_BUILD_ROOT%{_includedir}/lua-%{major_version}/ + +# Multilib luaconf.h in versioned directory +mv %{buildroot}%{_includedir}/luaconf.h %{buildroot}%{_includedir}/lua-%{major_version}/luaconf-%{_arch}.h +install -p -m 644 %{SOURCE4} %{buildroot}%{_includedir}/lua-%{major_version}/luaconf.h + +# Rename pkg-config file and fix paths for parallel install +mv $RPM_BUILD_ROOT%{_libdir}/pkgconfig/lua.pc $RPM_BUILD_ROOT%{_libdir}/pkgconfig/lua55.pc +sed -i 's|^Cflags:.*|Cflags: -I${includedir}/lua-%{major_version}|' $RPM_BUILD_ROOT%{_libdir}/pkgconfig/lua55.pc +sed -i 's|-llua |-llua-%{major_version} |' $RPM_BUILD_ROOT%{_libdir}/pkgconfig/lua55.pc + +# Rename binaries to avoid conflict with system lua +mv $RPM_BUILD_ROOT%{_bindir}/lua $RPM_BUILD_ROOT%{_bindir}/lua%{major_version} +mv $RPM_BUILD_ROOT%{_bindir}/luac $RPM_BUILD_ROOT%{_bindir}/luac%{major_version} + +# Rename man pages +mv $RPM_BUILD_ROOT%{_mandir}/man1/lua.1 $RPM_BUILD_ROOT%{_mandir}/man1/lua%{major_version}.1 +mv $RPM_BUILD_ROOT%{_mandir}/man1/luac.1 $RPM_BUILD_ROOT%{_mandir}/man1/luac%{major_version}.1 + +# Remove the unversioned liblua.so devel symlink (conflicts with system lua) +# Consumers link with -llua-5.5 via pkg-config instead +rm -f $RPM_BUILD_ROOT%{_libdir}/liblua.so + +# Rename static library +mv $RPM_BUILD_ROOT%{_libdir}/liblua.a $RPM_BUILD_ROOT%{_libdir}/liblua-%{major_version}.a + +# Create versioned module directories +mkdir -p $RPM_BUILD_ROOT%{_libdir}/lua/%{major_version} +mkdir -p $RPM_BUILD_ROOT%{_datadir}/lua/%{major_version} + +%if 0%{?bootstrap} +pushd lua-%{bootstrap_version} +mkdir $RPM_BUILD_ROOT/installdir +make install DESTDIR=$RPM_BUILD_ROOT/installdir +cp -a $RPM_BUILD_ROOT/installdir/%{_libdir}/liblua-%{bootstrap_major_version}.so $RPM_BUILD_ROOT%{_libdir}/ +mkdir -p $RPM_BUILD_ROOT%{_libdir}/lua/%{bootstrap_major_version} +mkdir -p $RPM_BUILD_ROOT%{_datadir}/lua/%{bootstrap_major_version} +rm -rf $RPM_BUILD_ROOT/installdir +popd +%endif + +%check +cd ./lua-%{test_version}-tests/ + +# Removing tests that fail under mock/koji +sed -i.orig -e ' + /db.lua/d; + /errors.lua/d; + ' all.lua +LD_LIBRARY_PATH=$RPM_BUILD_ROOT/%{_libdir} $RPM_BUILD_ROOT/%{_bindir}/lua%{major_version} -e"_U=true" all.lua + +%files +%doc README doc/*.html doc/*.css doc/*.png +%{_bindir}/lua%{major_version} +%{_bindir}/luac%{major_version} +%{_mandir}/man1/lua%{major_version}.1* +%{_mandir}/man1/luac%{major_version}.1* + +%files libs +%{!?_licensedir:%global license %%doc} +%license mit.txt + +%dir %{_libdir}/lua +%dir %{_libdir}/lua/%{major_version} +%{_libdir}/liblua-%{major_version}.so +%dir %{_datadir}/lua +%dir %{_datadir}/lua/%{major_version} + +%if 0%{?bootstrap} +%files -n lua%{bootstrap_major_version}-libs +%license mit.txt +%dir %{_libdir}/lua/%{bootstrap_major_version} +%{_libdir}/liblua-%{bootstrap_major_version}.so +%dir %{_datadir}/lua/%{bootstrap_major_version} +%endif + +%files devel +%dir %{_includedir}/lua-%{major_version} +%{_includedir}/lua-%{major_version}/*.h +%{_includedir}/lua-%{major_version}/*.hpp +%{_libdir}/pkgconfig/lua55.pc + +%files static +%{_libdir}/liblua-%{major_version}.a + +%changelog +* Fri Jun 06 2026 Hypercube - 5.5.0-1 +- Rename to lua55 for parallel installation alongside system lua 5.4 +- Version all installed paths: headers, pkg-config, binaries, man pages +- Fixes hyprland COPR build failure caused by lua-libs conflict with libinput + +* Tue Feb 10 2026 Tom Callaway - 5.5.0-1 +- update to 5.5.0 +- make lua5.4-libs as a compat bootstrap + +* Fri Jan 16 2026 Fedora Release Engineering - 5.4.8-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Thu Dec 04 2025 Miro Hrončok - 5.4.8-4 +- Move the license file to lua-libs, so it is always present if any combination of subpackages is installed +- Fixes: rhbz#2418960 + +* Tue Nov 11 2025 Tom Callaway - 5.4.8-3 +- apply fixes for upstream bug1, bug2, bug3 + +* Thu Jul 24 2025 Fedora Release Engineering - 5.4.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Wed Jun 4 2025 Tom Callaway - 5.4.8-1 +- update to 5.4.8 + +* Mon Mar 3 2025 Tom Callaway - 5.4.7-3 +- apply more complete upstream fix for bug3 (thanks to Xose Vazquez Perez) + +* Fri Jan 17 2025 Fedora Release Engineering - 5.4.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Tue Oct 22 2024 Tom Callaway - 5.4.7-1 +- update to 5.4.7 + +* Thu Jul 18 2024 Fedora Release Engineering - 5.4.6-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Thu Jan 25 2024 Fedora Release Engineering - 5.4.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 5.4.6-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Aug 1 2023 Tom Callaway - 5.4.6-3 +- disable "corrupted binary dump" test that has issues on big-endian architectures +- apply upstream fix for 5.4.6 bug 1 + +* Thu Jul 20 2023 Fedora Release Engineering - 5.4.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Mon May 22 2023 Tom Callaway - 5.4.6-1 +- update to 5.4.6 + +* Tue Feb 14 2023 Tom Callaway - 5.4.4-9 +- add upstream fixes for Bugs 8 and 9 + +* Thu Jan 19 2023 Fedora Release Engineering - 5.4.4-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Thu Dec 8 2022 Charles R. Anderson - 5.4.4-7 +- Add patch for http://lua-users.org/lists/lua-l/2022-02/msg00112.html (#2111138) + +* Mon Oct 17 2022 Tom Callaway - 5.4.4-6 +- add upstream fix for Bug 7 + +* Mon Oct 17 2022 Panu Matilainen - 5.4.4-5 +- Disable bootstrap mode forgotten on 5.4 rebase + +* Thu Jul 21 2022 Fedora Release Engineering - 5.4.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Jul 19 2022 Tom Callaway - 5.4.4-3 +- upstream bug fixes (3,4,5) including fix for CVE-2022-33099 + +* Tue Apr 5 2022 Tom Callaway - 5.4.4-2 +- upstream bug fixes + +* Tue Feb 1 2022 Tom Callaway - 5.4.4-1 +- update to 5.4.4, update bootstrap code to 5.3.6 +- 5.4.4 contains the fix for 5.4.3 bug7, which is also CVE-2021-43519 + This fix was also in 5.4.3-4, so you do not need to update solely for that. + +* Mon Jan 24 2022 Tom Callaway - 5.4.3-4 +- apply upstream fix for CVE-2021-44647 +- apply upstream fixes for known lua bugs 4-10 (11 assumes other changes beyond 5.4.3) + +* Thu Jan 20 2022 Fedora Release Engineering - 5.4.3-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Jul 22 2021 Fedora Release Engineering - 5.4.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Wed Mar 31 2021 Tom Callaway - 5.4.3-1 +- update to 5.4.3 +- apply fix for bug3 + +* Tue Jan 26 2021 Fedora Release Engineering - 5.4.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Dec 3 2020 Tom Callaway - 5.4.2-1 +- update to 5.4.2 + +* Mon Oct 12 2020 Tom Callaway - 5.4.1-1 +- update to 5.4.1 + +* Wed Sep 2 2020 Tom Callaway - 5.4.0-8 +- apply upstream fix for CVE-2020-24342 + +* Mon Aug 31 2020 Michel Alexandre Salim - 5.4.0-7 +- Refactor macros into lua-rpm-macros + +* Wed Aug 19 2020 Tom Callaway - 5.4.0-6 +- apply upstream fix for CVE-2020-24370, CVE-2020-24371 + +* Wed Aug 19 2020 Tom Callaway - 5.4.0-5 +- apply upstream fix for CVE-2020-24369 + +* Fri Jul 31 2020 Tom Callaway - 5.4.0-4 +- apply upstream fix for CVE-2020-15889 +- apply upstream fix for CVE-2020-15945 +- apply upstream fixes for "known bugs" + +* Tue Jul 28 2020 Fedora Release Engineering - 5.4.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jun 30 2020 Miro Hrončok - 5.4.0-2 +- Add lua(abi) requirements generator (requires RPM 4.16+) + +* Mon Jun 29 2020 Tom Callaway - 5.4.0-1 +- update to 5.4.0 + +* Wed Jan 29 2020 Fedora Release Engineering - 5.3.5-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 5.3.5-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Feb 17 2019 Igor Gnatenko - 5.3.5-5 +- Rebuild for readline 8.0 + +* Fri Feb 01 2019 Fedora Release Engineering - 5.3.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Jan 28 2019 Tom Callaway - 5.3.5-3 +- apply fix for CVE-2019-6706 (bz1670020) + +* Fri Jul 13 2018 Fedora Release Engineering - 5.3.5-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Jul 10 2018 Tom Callaway - 5.3.5-1 +- update to 5.3.5 + +* Tue Feb 13 2018 Tom Callaway - 5.3.4-10 +- move lua(abi) provide to -libs +- add fix for bug 6 + +* Thu Feb 08 2018 Fedora Release Engineering - 5.3.4-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 2 2018 Richard W.M. Jones - 5.3.4-8 +- Unnecessary change to RISC-V macros in GCC requires change in luaconf.h. + +* Mon Dec 4 2017 Tom Callaway - 5.3.4-7 +- fix pkgconfig provides (bz1519921) + +* Sun Oct 29 2017 Tom Callaway - 5.3.4-6 +- apply known upstream bugfixes + +* Thu Aug 03 2017 Fedora Release Engineering - 5.3.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 5.3.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sun May 28 2017 Björn Esser - 5.3.4-3 +- Refactor macros to a more common syntax +- Use rpm's build-in lua for macros + +* Wed May 24 2017 Björn Esser - 5.3.4-2 +- Add rpm-macros file, providing packaging macros for lua add-ons (#1447324) + +* Thu Feb 9 2017 Tom Callaway 5.3.4-1 +- update to 5.3.4 + +* Thu Jan 12 2017 Igor Gnatenko - 5.3.3-4 +- Rebuild for readline 7.x + +* Tue Jul 26 2016 Tom Callaway - 5.3.3-3 +- create lua-libs subpackage +- disable bootstrap + +* Mon Jul 25 2016 Tom Callaway - 5.3.3-2 +- apply fixes for upstream bug 1 & 2 + +* Tue Jun 7 2016 Tom Callaway - 5.3.3-1 +- update to 5.3.3 + +* Thu Feb 04 2016 Fedora Release Engineering - 5.3.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Dec 11 2015 Tom Callaway - 5.3.2-2 +- fix multilib support (#1229992) + +* Fri Dec 11 2015 "D. Johnson" - 5.3.2-1 +- Update to 5.3.2 (#1039249,1173984) + +* Wed Jun 17 2015 Fedora Release Engineering - 5.3.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Fri Mar 20 2015 Kalev Lember - 5.3.0-3 +- Define LUA_COMPAT_5_2 in addition to LUA_COMPAT_5_1 (#1204129) + +* Sat Feb 21 2015 Till Maas - 5.3.0-2 +- Rebuilt for Fedora 23 Change + https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code + +* Thu Jan 15 2015 Tom Callaway - 5.3.0-1 +- update to 5.3.0 +- add bootstrapping glue + +* Wed Dec 10 2014 Tom Callaway - 5.2.3-1 +- update to 5.2.3 + +* Sun Aug 17 2014 Fedora Release Engineering - 5.2.2-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Jul 18 2014 Tom Callaway - 5.2.2-7 +- fix license handling + +* Sat Jun 07 2014 Fedora Release Engineering - 5.2.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Wed Oct 23 2013 Tom Callaway - 5.2.2-5 +- readd and fix configure-compat-module.patch to use LUA_CONFIG_ALL instead + +* Wed Oct 23 2013 Tom Callaway - 5.2.2-4 +- drop configure-compat-module.patch, if you really need old lua behavior, use compat-lua + +* Mon Aug 05 2013 Hans de Goede - 5.2.2-3 +- Drop compat-lua-libs package, as there now is a separate compat-lua + package (including a -devel) + +* Sat Aug 03 2013 Fedora Release Engineering - 5.2.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Apr 11 2013 Tom Callaway - 5.2.2-1 +- update to 5.2.2 +- incorporate Aaron Faanes's changes + +* Thu Feb 14 2013 Fedora Release Engineering - 5.1.4-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Jul 19 2012 Fedora Release Engineering - 5.1.4-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jan 13 2012 Fedora Release Engineering - 5.1.4-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Apr 06 2011 Tim Niemueller - 5.1.4-9 +- Provide lua(abi) = 5.1 for better distro updates later + +* Tue Feb 08 2011 Fedora Release Engineering - 5.1.4-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Jan 28 2011 Tim Niemueller - 5.1.4-7 +- Add patch to from lua.org with smaller bugfixes +- sed -i -e 's/5\.1\.3/5.1.4/g' on autotoolize patch, bug #641144 + +* Fri Jan 28 2011 Tim Niemueller - 5.1.4-6 +- Add patch to increase IDSIZE for more useful error messages + +* Sun May 09 2010 Tim Niemueller - 5.1.4-5 +- Add patch regarding dlopen flags to support Lunatic (Lua-Python bridge) + +* Sat Jul 25 2009 Fedora Release Engineering - 5.1.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Thu Jun 11 2009 Tim Niemueller - 5.1.4-2 +- Link liblua.so with -lm (math lib), fixes rhbz #499238 + +* Wed Feb 25 2009 Fedora Release Engineering - 5.1.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Sep 03 2008 Tim Niemueller - 5.1.4-1 +- New upstream release 5.1.4 + +* Mon May 12 2008 Tim Niemueller - 5.1.3-6 +- Add -static subpackage with static liblua, fixes rh bug #445939 + +* Sun Apr 13 2008 Tim Niemueller - 5.1.3-5 +- Provide lua = 5.1, this way add-on packages can easily depend on the Lua + base version and expect certain paths for packages + +* Sat Apr 5 2008 Hans de Goede 5.1.3-4 +- Not only own $libdir/lua/5.1 and $datadir/lua/5.1 but also $libdir/lua + and $datadir/lua for proper removal of these dirs upon lua removal + +* Fri Mar 14 2008 Tim Niemueller - 5.1.3-3 +- own $libdir/lua/5.1 and $datadir/lua/5.1. These are the standard package + search path for Lua. Packaging them properly allows for easy creation of + Lua addon packages. + +* Tue Feb 19 2008 Fedora Release Engineering - 5.1.3-2 +- Autorebuild for GCC 4.3 + +* Sat Jan 26 2008 Hans de Goede 5.1.3-1 +- New upstream release 5.1.3 + +* Mon Nov 26 2007 Hans de Goede 5.1.2-4 +- Fix libdir in lua.pc being /usr/lib on x86_64 (bz 399101) + +* Sun Oct 21 2007 Hans de Goede 5.1.2-3 +- Also use lib64 instead of lib on ia64 and sparc64 + +* Sun Oct 21 2007 Hans de Goede 5.1.2-2 +- Fix multilib condlict in luaconf.h (bz 342561) + +* Mon Apr 2 2007 Hans de Goede 5.1.2-1 +- New upstream release 5.1.2 +- Fix use of rpath on x86_64 + +* Fri Jan 19 2007 Hans de Goede 5.1.1-3 +- Remove "-lreadline -lncurses" from lua.pc (bz 213895) + +* Sun Oct 15 2006 Hans de Goede 5.1.1-2 +- Only link /usr/bin/lua with readline / do not link %%{_libdir}/liblua-5.1.so + with readline so that we don't cause any License troubles for packages + linking against liblua-5.1.so, otherwise lua could drag the GPL only readline + lib into the linking of non GPL apps. + +* Sat Oct 14 2006 Hans de Goede 5.1.1-1 +- New upstream release 5.1.1 +- Fix detection of readline during compile (iow add readline support back) + +* Sun Aug 27 2006 Michael J. Knox - 5.1-7 +- Rebuild for FC6 + +* Thu Jun 08 2006 Michael J. Knox - 5.1-6 +- fixed broken provides + +* Tue Jun 06 2006 Michael J. Knox - 5.1-5 +- split out devel subpackage + +* Thu Jun 01 2006 Michael J. Knox - 5.1-4 +- added Requires for pkgconfig BZ#193674 + +* Mon May 29 2006 Michael J. Knox - 5.1-3 +- added autotools patch from Petri Lehtinen, http://lua-users.org + +* Mon May 08 2006 Michael J. Knox - 5.1-2 +- fixed x86_64 builds + +* Mon May 08 2006 Michael J. Knox - 5.1-1 +- version bump + +* Sun Oct 16 2005 Ville Skyttä - 5.0.2-5 +- Fix -debuginfo (#165304). +- Cosmetic specfile improvements. + +* Sun May 22 2005 Jeremy Katz - 5.0.2-4 +- rebuild on all arches + +* Thu Apr 7 2005 Michael Schwendt - 5.0.2-3 +- rebuilt + +* Sat Feb 12 2005 David Woodhouse - 5.0.2-2 +- Don't use fastround on ppc + +* Tue Feb 01 2005 Panu Matilainen - 5.0.2-1 +- update to 5.0.2 +- remove epoch 0, drop fedora.us release tag + +* Mon Nov 17 2003 Oren Tirosh - 0:5.0-0.fdr.2 +- Enable readline support. + +* Sat Jun 21 2003 Ville Skyttä - 0:5.0-0.fdr.1 +- First build. diff --git a/packages/lua/luaconf.h b/packages/lua/luaconf.h new file mode 100644 index 0000000..2b10184 --- /dev/null +++ b/packages/lua/luaconf.h @@ -0,0 +1,61 @@ +/* + * This luaconf.h is a wrapper include file for the original luaconf.h, + * which has been renamed to luaconf-.h. There are conflicts for the + * original luaconf.h on multilib systems, which result from arch-specific + * configuration options. Please do not use the arch-specific file directly. + * + * Copyright (C) 2015 Tom Callaway + */ + +/** + * \file luaconf.h + */ + +#ifdef luaconf_wrapper_h +#error "luaconf_wrapper_h should not be defined!" +#endif +#define luaconf_wrapper_h + +#if defined(__i386__) +#include "luaconf-i386.h" +#elif defined(__ia64__) +#include "luaconf-ia64.h" +#elif defined(__powerpc64__) +# if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +#include "luaconf-ppc64.h" +# else +#include "luaconf-ppc64le.h" +# endif +#elif defined(__powerpc__) +#include "luaconf-ppc.h" +#elif defined(__s390x__) +#include "luaconf-s390x.h" +#elif defined(__s390__) +#include "luaconf-s390.h" +#elif defined(__x86_64__) +#include "luaconf-x86_64.h" +#elif defined(__arm__) +#include "luaconf-arm.h" +#elif defined(__alpha__) +#include "luaconf-alpha.h" +#elif defined(__sparc__) && defined (__arch64__) +#include "luaconf-sparc64.h" +#elif defined(__sparc__) +#include "luaconf-sparc.h" +#elif defined(__aarch64__) +#include "luaconf-aarch64.h" +#elif defined(__mips64) && defined(__MIPSEL__) +#include "luaconf-mips64el.h" +#elif defined(__mips64) +#include "luaconf-mips64.h" +#elif defined(__mips) && defined(__MIPSEL__) +#include "luaconf-mipsel.h" +#elif defined(__mips) +#include "luaconf-mips.h" +#elif defined(__riscv) +#include "luaconf-riscv64.h" +#else +#error "The lua-devel package is not usable with the architecture." +#endif + +#undef luaconf_wrapper_h diff --git a/packages/lua/mit.txt b/packages/lua/mit.txt new file mode 100644 index 0000000..4e6c510 --- /dev/null +++ b/packages/lua/mit.txt @@ -0,0 +1,19 @@ +Copyright (c) 1994-2013 Lua.org, PUC-Rio. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/scripts/packages/config.sh b/scripts/packages/config.sh index c1c5f5e..8423366 100755 --- a/scripts/packages/config.sh +++ b/scripts/packages/config.sh @@ -40,12 +40,14 @@ declare -gA PACKAGE_REPOS=( [glaze]="stephenberry/glaze" [uwsm]="Vladimir-csp/uwsm" [quickshell]="quickshell-mirror/quickshell" + [lua]="lua/lua" ) # Version source (release or tag, default is release) declare -gA VERSION_SOURCES=( [uwsm]="tag" [quickshell]="tag" + [lua]="tag" ) # Package dependencies (for determining build order) @@ -71,6 +73,7 @@ declare -gA PACKAGE_DEPS=( [lazyjournal]="" [lazysql]="" [resterm]="" + [lua]="" # Packages with dependencies [hyprlang]="hyprutils" @@ -78,7 +81,7 @@ declare -gA PACKAGE_DEPS=( [aquamarine]="hyprutils hyprwayland-scanner" [hyprcursor]="hyprlang" [hyprland-qt-support]="hyprlang" - [hyprland]="aquamarine hyprcursor hyprgraphics hyprlang hyprutils hyprwire glaze" + [hyprland]="aquamarine hyprcursor hyprgraphics hyprlang hyprutils hyprwire glaze lua" [hyprlock]="hyprgraphics hyprlang hyprutils hyprwayland-scanner" [hypridle]="hyprland-protocols hyprlang hyprutils hyprwayland-scanner" [hyprpaper]="hyprgraphics hyprlang hyprutils hyprwayland-scanner hyprwire hyprtoolkit" @@ -90,7 +93,7 @@ declare -gA PACKAGE_DEPS=( # Build batches (packages in same batch can build in parallel) declare -gA BUILD_BATCHES=( - [1]="hyprutils hyprwayland-scanner hyprland-protocols hyprwire glaze uwsm eza starship lazygit quickshell livesys-scripts wifitui resvg yazi bluetui iamb meli lazyjournal lazysql resterm" + [1]="hyprutils hyprwayland-scanner hyprland-protocols hyprwire glaze uwsm eza starship lazygit quickshell livesys-scripts wifitui resvg yazi bluetui iamb meli lazyjournal lazysql resterm lua" [2]="hyprlang hyprgraphics aquamarine" [3]="hyprcursor hyprland-qt-support" [4]="hyprland hyprlock hypridle xdg-desktop-portal-hyprland hyprpolkitagent hyprtoolkit" diff --git a/scripts/packages/get-spec-version.sh b/scripts/packages/get-spec-version.sh index f9e97f2..be90d17 100755 --- a/scripts/packages/get-spec-version.sh +++ b/scripts/packages/get-spec-version.sh @@ -29,8 +29,38 @@ if [[ ! -f "$SPEC_FILE" ]]; then exit 1 fi -VERSION=$(grep "^Version:" "$SPEC_FILE" | awk '{print $2}') -RELEASE=$(grep "^Release:" "$SPEC_FILE" | awk '{print $2}' | sed 's/%{?dist}//') +# Prefer `rpmspec` for proper macro expansion (e.g. Version: %{major_version}.0 +# in Fedora-style specs). Fall back to a header-only grep for environments +# without rpm tooling (some CI runners). +if command -v rpmspec &>/dev/null; then + NVR=$(rpmspec -q --srpm --queryformat='%{VERSION}-%{RELEASE}\n' "$SPEC_FILE" 2>/dev/null) + VERSION="${NVR%-*}" + # Strip the dist tag (.fcXX) from RELEASE since callers don't want it. + RELEASE=$(echo "${NVR##*-}" | sed -E 's/\.fc[0-9]+$//') +else + # Only look at the spec header (before %prep) so we don't pick up stray + # `Version:` lines inside pkg-config heredocs or other generated content. + HEADER=$(sed -n '1,/^%prep/p' "$SPEC_FILE") + VERSION=$(echo "$HEADER" | grep "^Version:" | awk '{print $2}') + RELEASE=$(echo "$HEADER" | grep "^Release:" | awk '{print $2}' | sed 's/%{?dist}//') + + # Best-effort %{name} expansion using %global declarations from the spec. + # Handles simple cases like `Version: %{major_version}.0` so local dev + # without rpmspec works. Two passes to resolve nested macros. + expand_macros() { + local s=$1 + local i + for i in 1 2; do + while read -r macro_name macro_value; do + [[ -z "$macro_name" ]] && continue + s="${s//%\{${macro_name}\}/${macro_value}}" + done < <(grep "^%global" "$SPEC_FILE" | awk '{print $2, $3}') + done + echo "$s" + } + VERSION=$(expand_macros "$VERSION") + RELEASE=$(expand_macros "$RELEASE") +fi if [[ -z "$VERSION" ]]; then echo "ERROR: Could not parse version from $SPEC_FILE" >&2