mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-06 00:48:18 -07:00
dev-lua/luajson: fix compat w/ >=dev-lua/lpeg-1.1.0
(Linked the 2nd bug as Vitaly seems to have cited it.) Bug: https://github.com/harningt/luajson/issues/47 Bug: https://github.com/harningt/luajson/issues/51 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
75
dev-lua/luajson/files/luajson-1.3.4-lpeg-1.1.patch
Normal file
75
dev-lua/luajson/files/luajson-1.3.4-lpeg-1.1.patch
Normal file
@@ -0,0 +1,75 @@
|
||||
https://github.com/harningt/luajson/issues/47
|
||||
https://github.com/harningt/luajson/pull/48
|
||||
https://github.com/harningt/luajson/pull/49
|
||||
|
||||
From 473d61d262a1c86a69ad9b4882352d122e42f3fa Mon Sep 17 00:00:00 2001
|
||||
From: Josh <jokajak@gmail.com>
|
||||
Date: Thu, 20 Jul 2023 15:49:33 -0400
|
||||
Subject: [PATCH] feat: support lpeg 1.1
|
||||
|
||||
This changeset adds support for lpeg 1.1 which updated the lpeg.version from a function to a string.
|
||||
|
||||
Therefore we have to check the type of the value.
|
||||
|
||||
Refs: #47
|
||||
---
|
||||
lua/json/decode/util.lua | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lua/json/decode/util.lua b/lua/json/decode/util.lua
|
||||
index 2493bf3..8b23751 100644
|
||||
--- a/lua/json/decode/util.lua
|
||||
+++ b/lua/json/decode/util.lua
|
||||
@@ -17,6 +17,8 @@ local table_concat = require("table").concat
|
||||
|
||||
local merge = require("json.util").merge
|
||||
|
||||
+local type = type
|
||||
+
|
||||
local _ENV = nil
|
||||
|
||||
local function get_invalid_character_info(input, index)
|
||||
@@ -94,7 +96,8 @@ local unicode_ignored = (unicode_space + comment)^0
|
||||
|
||||
-- Parse the lpeg version skipping patch-values
|
||||
-- LPEG <= 0.7 have no version value... so 0.7 is value
|
||||
-local DecimalLpegVersion = lpeg.version and tonumber(lpeg.version():match("^(%d+%.%d+)")) or 0.7
|
||||
+-- LPEG >= 1.1 uses a string for the version instead of function
|
||||
+local DecimalLpegVersion = lpeg.version and tonumber((type(lpeg.version) == "string" and lpeg.version or lpeg.version()):match("^(%d+%.%d+)")) or 0.7
|
||||
|
||||
local function setObjectKeyForceNumber(t, key, value)
|
||||
key = tonumber(key) or key
|
||||
|
||||
From f23e38fc35cea8db78df124f1bd6d3d56e6c9ab1 Mon Sep 17 00:00:00 2001
|
||||
From: Josh <jokajak@gmail.com>
|
||||
Date: Wed, 4 Oct 2023 17:24:30 -0400
|
||||
Subject: [PATCH] fix: fix lpeg version detection
|
||||
|
||||
This changeset fixes the lpeg version detection to properly handle
|
||||
version > 1.1.
|
||||
|
||||
The original fix did not properly parse the string because it search for
|
||||
the number to start the string instead of being part of the string.
|
||||
|
||||
Refs: #47
|
||||
---
|
||||
lua/json/decode/util.lua | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lua/json/decode/util.lua b/lua/json/decode/util.lua
|
||||
index 8b23751..4815650 100644
|
||||
--- a/lua/json/decode/util.lua
|
||||
+++ b/lua/json/decode/util.lua
|
||||
@@ -97,7 +97,11 @@ local unicode_ignored = (unicode_space + comment)^0
|
||||
-- Parse the lpeg version skipping patch-values
|
||||
-- LPEG <= 0.7 have no version value... so 0.7 is value
|
||||
-- LPEG >= 1.1 uses a string for the version instead of function
|
||||
-local DecimalLpegVersion = lpeg.version and tonumber((type(lpeg.version) == "string" and lpeg.version or lpeg.version()):match("^(%d+%.%d+)")) or 0.7
|
||||
+local DecimalLpegVersion = lpeg.version
|
||||
+ and tonumber(
|
||||
+ (type(lpeg.version) == "string" and lpeg.version or lpeg.version()):match("(%d+%.%d+)")
|
||||
+ )
|
||||
+ or 0.7
|
||||
|
||||
local function setObjectKeyForceNumber(t, key, value)
|
||||
key = tonumber(key) or key
|
||||
41
dev-lua/luajson/luajson-1.3.4-r1.ebuild
Normal file
41
dev-lua/luajson/luajson-1.3.4-r1.ebuild
Normal file
@@ -0,0 +1,41 @@
|
||||
# Copyright 1999-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
LUA_COMPAT=( lua5-{1..4} luajit )
|
||||
|
||||
inherit lua
|
||||
|
||||
DESCRIPTION="JSON Parser/Constructor for Lua"
|
||||
HOMEPAGE="https://www.eharning.us/wiki/luajson/"
|
||||
SRC_URI="https://github.com/harningt/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
||||
|
||||
REQUIRED_USE="${LUA_REQUIRED_USE}"
|
||||
|
||||
RDEPEND="dev-lua/lpeg[${LUA_USEDEP}]"
|
||||
|
||||
# Require lunitx, which is not in the tree yet
|
||||
RESTRICT="test"
|
||||
|
||||
DOCS=( README.md docs/ReleaseNotes-${PV}.txt docs/LuaJSON.txt )
|
||||
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.3.4-lpeg-1.1.patch
|
||||
)
|
||||
|
||||
# nothing to compile
|
||||
src_compile() { :; }
|
||||
|
||||
lua_src_install() {
|
||||
emake DESTDIR="${ED}" INSTALL_LMOD="$(lua_get_lmod_dir)" install
|
||||
}
|
||||
|
||||
src_install() {
|
||||
lua_foreach_impl lua_src_install
|
||||
einstalldocs
|
||||
}
|
||||
Reference in New Issue
Block a user