summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lua/lua-cjson')
-rw-r--r--dev-lua/lua-cjson/Manifest1
-rw-r--r--dev-lua/lua-cjson/files/sparse_array_test_fix.patch47
-rw-r--r--dev-lua/lua-cjson/lua-cjson-2.1.0.6.ebuild44
-rw-r--r--dev-lua/lua-cjson/metadata.xml9
4 files changed, 100 insertions, 1 deletions
diff --git a/dev-lua/lua-cjson/Manifest b/dev-lua/lua-cjson/Manifest
index 136a3200bc48..e22ea3d3d874 100644
--- a/dev-lua/lua-cjson/Manifest
+++ b/dev-lua/lua-cjson/Manifest
@@ -1 +1,2 @@
+DIST lua-cjson-2.1.0.6.tar.gz 76820 BLAKE2B 1056fefc8d9c802e068e1e7801cc1eb3a0279371ab72e4e8517e22ad68224dd4892f4e4cbfe0a407af71f1008affded41d7bcc05d89c4ddb0c437d93d67708a7 SHA512 71d25f4ec82641d56e33e13c0ecd8c60186b3c4faf3d30de81706d1305d4e61691a1e84210462942674e50ca2ff19e126cb04025d9645d5d26ef3b3b0e46f64b
DIST lua-cjson-2.1.0.tar.gz 86024 BLAKE2B 21dbf84cda2c973088dc9ba165351f3af35d4f604ef465abd91f37807a6c037f612f36c87b9458abef9afa06e1738e933fcce7be9edd2f9a5e301985f413a1db SHA512 4343513b942f2ed98dc1ea6d7e852303bc1263f8acc5c70c8d674aec7adfc8279c5af7d5173a417b6f9a74543b8f6c8f98742d002f4f75832bbf23bb5a30ad2f
diff --git a/dev-lua/lua-cjson/files/sparse_array_test_fix.patch b/dev-lua/lua-cjson/files/sparse_array_test_fix.patch
new file mode 100644
index 000000000000..0c1d138cbadf
--- /dev/null
+++ b/dev-lua/lua-cjson/files/sparse_array_test_fix.patch
@@ -0,0 +1,47 @@
+From 75678e4b0d1b25fc15f0399f1496db6e0287b72f Mon Sep 17 00:00:00 2001
+From: Georgy Yakovlev <gyakovlev@gentoo.org>
+Date: Tue, 12 Feb 2019 13:32:38 -0800
+Subject: [PATCH] Fix Encode sparse array as object test
+
+Port of this commit from upstream
+https://github.com/mpx/lua-cjson/commit/98eb1d01e952fc60a36f47846f905b86c92a4f58
+---
+ tests/test.lua | 15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/tests/test.lua b/tests/test.lua
+index d1bf7e4..be5e19c 100755
+--- a/tests/test.lua
++++ b/tests/test.lua
+@@ -10,6 +10,17 @@ local json = require "cjson"
+ local json_safe = require "cjson.safe"
+ local util = require "cjson.util"
+
++local function json_encode_output_type(value)
++ local text = json.encode(value)
++ if string.match(text, "{.*}") then
++ return "object"
++ elseif string.match(text, "%[.*%]") then
++ return "array"
++ else
++ return "scalar"
++ end
++end
++
+ local function gen_raw_octets()
+ local chars = {}
+ for i = 0, 255 do chars[i + 1] = string.char(i) end
+@@ -292,8 +303,8 @@ local cjson_tests = {
+ json.encode, { { [1] = "one", [4] = "sparse test" } },
+ true, { '["one",null,null,"sparse test"]' } },
+ { "Encode sparse array as object",
+- json.encode, { { [1] = "one", [5] = "sparse test" } },
+- true, { '{"5":"sparse test","1":"one"}' } },
++ json_encode_output_type, { { [1] = "one", [5] = "sparse test" } },
++ true, { 'object' } },
+ { "Encode table with numeric string key as object",
+ json.encode, { { ["2"] = "numeric string key test" } },
+ true, { '{"2":"numeric string key test"}' } },
+--
+2.20.1
+
diff --git a/dev-lua/lua-cjson/lua-cjson-2.1.0.6.ebuild b/dev-lua/lua-cjson/lua-cjson-2.1.0.6.ebuild
new file mode 100644
index 000000000000..d8443f9f6901
--- /dev/null
+++ b/dev-lua/lua-cjson/lua-cjson-2.1.0.6.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils
+
+DESCRIPTION="A fast JSON encoding/parsing module for Lua"
+HOMEPAGE="https://www.kyne.com.au/~mark/software/lua-cjson.php https://github.com/openresty/lua-cjson"
+SRC_URI="https://github.com/openresty/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+internal-fpconv luajit test +threads"
+
+REQUIRED_USE="threads? ( internal-fpconv )"
+
+RDEPEND=">=dev-lang/lua-5.1:0"
+DEPEND="${RDEPEND}"
+BDEPEND="test? ( dev-lang/perl )"
+
+DOCS=( NEWS README.md THANKS manual.txt performance.txt )
+
+PATCHES=(
+ "${FILESDIR}"/sparse_array_test_fix.patch
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DUSE_INTERNAL_FPCONV="$(usex internal-fpconv)"
+ -DMULTIPLE_THREADS="$(usex threads)"
+ )
+
+ cmake-utils_src_configure
+}
+
+src_test() {
+ cd tests || die
+ ln -s "${BUILD_DIR}"/cjson.so ./ || die
+ ln -s "${S}"/lua/cjson ./ || die
+ ./genutf8.pl || die
+ ./test.lua || die
+}
diff --git a/dev-lua/lua-cjson/metadata.xml b/dev-lua/lua-cjson/metadata.xml
index 117a96f008ab..351070af8a91 100644
--- a/dev-lua/lua-cjson/metadata.xml
+++ b/dev-lua/lua-cjson/metadata.xml
@@ -5,7 +5,14 @@
<email>gyakovlev@gentoo.org</email>
<name>Georgy Yakovlev</name>
</maintainer>
+ <longdescription lang="en">
+ Fork of mpx/lua-cjson is included in the OpenResty bundle and includes a few bugfixes and improvements,
+ especially to facilitate the encoding of empty tables as JSON Arrays.
+ </longdescription>
+ <use>
+ <flag name="internal-fpconv">Enable internal number conversion routines, can increase overall performance by up to 50%</flag>
+ </use>
<upstream>
- <remote-id type="github">mpx/lua-cjson</remote-id>
+ <remote-id type="github">openresty/lua-cjson</remote-id>
</upstream>
</pkgmetadata>