commit:     3d84addb0089529e1b6ef37cb19db59eb63a02cf
Author:     Petr Vaněk <arkamar <AT> atlas <DOT> cz>
AuthorDate: Fri Jul 29 11:54:22 2022 +0000
Commit:     Joonas Niilola <juippis <AT> gentoo <DOT> org>
CommitDate: Thu Aug 18 07:06:18 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3d84addb

dev-libs/json-parser: new package, add 1.1.0_p20211208

Original version 1.1.0 is from a year 2014, which is quite old. The
snapshot is from latest commit 531a49062975 ("Add author of #154 to
AUTHORS") in master branch, which contains (among others) two fixes
related to strict aliasing. New release is anticipated [1], but it is
not clear when it will happen, as the ticket is open for 2 years
already.

It was necessary to apply one patch proposed as PR [2] to upstream,
which changes pkgconfig file installation path from datadir to libdir.

This library is currently known to be bundled in multiple packages in
::gentoo, see the corresponding bugs bellow.

[1] https://github.com/json-parser/json-parser/issues/82
[2] https://github.com/json-parser/json-parser/pull/164

Bug: https://bugs.gentoo.org/858524
Bug: https://bugs.gentoo.org/861143
Bug: https://bugs.gentoo.org/861371
Signed-off-by: Petr Vaněk <arkamar <AT> atlas.cz>
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 dev-libs/json-parser/Manifest                      |  1 +
 .../files/json-parser-1.1.0-pkgconfig-libdir.patch | 22 ++++++
 .../json-parser/json-parser-1.1.0_p20211208.ebuild | 82 ++++++++++++++++++++++
 dev-libs/json-parser/metadata.xml                  | 15 ++++
 4 files changed, 120 insertions(+)

diff --git a/dev-libs/json-parser/Manifest b/dev-libs/json-parser/Manifest
new file mode 100644
index 000000000000..ac3d8c8c0ff7
--- /dev/null
+++ b/dev-libs/json-parser/Manifest
@@ -0,0 +1 @@
+DIST json-parser-1.1.0_p20211208.tar.gz 51479 BLAKE2B 
31ce7929c1de829e312dfc855365d8851ad7c2ce31379d3ab4b4937291e2ec367c7692ecb11b781d0647e5dc38008e4e7bd122d9edaafd1c393a1cbf765117b9
 SHA512 
cbe6690a70ada1906b2c208fcbe03fe5a14651660ece9ba933a3160ea027c6dd9507189e1c63052059c3a00b2e2a59dbc65fa668a287455d438aa4453eecf22f

diff --git 
a/dev-libs/json-parser/files/json-parser-1.1.0-pkgconfig-libdir.patch 
b/dev-libs/json-parser/files/json-parser-1.1.0-pkgconfig-libdir.patch
new file mode 100644
index 000000000000..094f8f985dec
--- /dev/null
+++ b/dev-libs/json-parser/files/json-parser-1.1.0-pkgconfig-libdir.patch
@@ -0,0 +1,22 @@
+Upstream-PR: https://github.com/json-parser/json-parser/pull/164
+
+diff --git a/Makefile.in b/Makefile.in
+index 8938230..b7539f7 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -43,9 +43,9 @@ clean:
+       rm -f libjsonparser.$(SO_EXT) libjsonparser.a json.o
+ 
+ install-shared: libjsonparser.$(SO_EXT)
+-      @echo Installing pkgconfig module: $(datadir)/pkgconfig/json-parser.pc
+-      @install -d $(datadir)/pkgconfig/ || true
+-      @install -m 0644 json-parser.pc $(datadir)/pkgconfig/json-parser.pc
++      @echo Installing pkgconfig module: $(libdir)/pkgconfig/json-parser.pc
++      @install -d $(libdir)/pkgconfig/ || true
++      @install -m 0644 json-parser.pc $(libdir)/pkgconfig/json-parser.pc
+       @echo Installing shared library: $(libdir)/libjsonparser.$(SO_EXT)
+       @install -d $(libdir) || true
+       @install -m 0755 libjsonparser.$(SO_EXT) $(libdir)/$(REAL_NAME)
+-- 
+2.35.1
+

diff --git a/dev-libs/json-parser/json-parser-1.1.0_p20211208.ebuild 
b/dev-libs/json-parser/json-parser-1.1.0_p20211208.ebuild
new file mode 100644
index 000000000000..a551d83b795c
--- /dev/null
+++ b/dev-libs/json-parser/json-parser-1.1.0_p20211208.ebuild
@@ -0,0 +1,82 @@
+# Copyright 2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_OPTIONAL=1
+PYTHON_COMPAT=( python3_{9..11} )
+
+inherit distutils-r1 edo toolchain-funcs
+
+COMMIT="531a49062975d6d2cd5d69b75ad5481a8c0e18c5"
+
+DESCRIPTION="Very low footprint JSON parser written in portable ANSI C"
+HOMEPAGE="https://github.com/json-parser/json-parser";
+SRC_URI="https://github.com/json-parser/json-parser/archive/${COMMIT}.tar.gz 
-> ${P}.tar.gz"
+
+S="${WORKDIR}/${PN}-${COMMIT}"
+
+LICENSE="BSD-2"
+SLOT="0/$(ver_cut 1-2)"
+KEYWORDS="~amd64"
+IUSE="python"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+DEPEND=""
+RDEPEND="${DEPEND}
+       python? ( ${PYTHON_DEPS} )
+"
+BDEPEND="
+       python? (
+               ${PYTHON_DEPS}
+               ${DISTUTILS_DEPS}
+               dev-python/cython[${PYTHON_USEDEP}]
+       )
+"
+
+PATCHES=( "${FILESDIR}/${PN}-1.1.0-pkgconfig-libdir.patch" )
+
+wrap_python() {
+       local phase=$1
+       shift
+
+       if use python; then
+               pushd bindings/python || die
+               distutils-r1_${phase} "${@}"
+               popd
+       fi
+}
+
+src_prepare() {
+       default
+       wrap_python ${FUNCNAME}
+}
+
+src_configure() {
+       default
+       wrap_python ${FUNCNAME}
+}
+
+src_compile() {
+       default
+       wrap_python ${FUNCNAME}
+}
+
+python_test() {
+       "${EPYTHON}" test.py || die "Tests failed with ${EPYTHON}"
+}
+
+src_test() {
+       edo $(tc-getCC) ${CFLAGS} -I. ${CPPFLAGS} ${LDFLAGS} -o tests/test 
tests/test.c json.o
+       pushd tests > /dev/null || die
+       edo ./test
+       use python && distutils-r1_src_test
+       popd
+}
+
+src_install() {
+       emake DESTDIR="${D}" install-shared
+       dodoc README.md AUTHORS
+       wrap_python ${FUNCNAME}
+}

diff --git a/dev-libs/json-parser/metadata.xml 
b/dev-libs/json-parser/metadata.xml
new file mode 100644
index 000000000000..4580bd57e5b3
--- /dev/null
+++ b/dev-libs/json-parser/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person" proxied="yes">
+               <email>[email protected]</email>
+               <name>Petr Vaněk</name>
+       </maintainer>
+       <maintainer type="project" proxied="proxy">
+               <email>[email protected]</email>
+               <name>Proxy Maintainers</name>
+       </maintainer>
+       <upstream>
+               <remote-id type="github">json-parser/json-parser</remote-id>
+       </upstream>
+</pkgmetadata>

Reply via email to