app-misc/jq: Update to v1.7_pre20201109-r1

BUG=b/276922532
TEST=presubmit
RELEASE_NOTE=Upgrade app-misc/jq to v1.7_pre20201109-r1

Change-Id: I36909431ca4b9034bc0e05ce31658c729dc0c71f
Reviewed-on: https://cos-review.googlesource.com/c/third_party/overlays/portage-stable/+/46488
Reviewed-by: Robert Kolchmeyer <rkolchmeyer@google.com>
Tested-by: Cusky Presubmit Bot <presubmit@cos-infra-prod.iam.gserviceaccount.com>
diff --git a/app-misc/jq/Manifest b/app-misc/jq/Manifest
index b9320a7..489984f 100644
--- a/app-misc/jq/Manifest
+++ b/app-misc/jq/Manifest
@@ -1 +1,3 @@
-DIST jq-1.4.tar.gz 578317 SHA256 998c41babeb57b4304e65b4eb73094279b3ab1e63801b6b4bddd487ce009b39d SHA512 02e601b713a3249bcfe5373153dff38a63bf504895181ca3f691dbf033b407373a9c5880001bbd1954123cdf89f4fe75e2a5168e7a7cf13b3f7355dc18f92458 WHIRLPOOL 93c85a40d8aaf36d1f846ee9050aebe32a3a135e89a64647688b447af8733d210a4716d4ee62271a7d33f2e498e8aee7b2e88ed5373d0ec07e810215c1d288ab
+DIST jq-1.6.tar.gz 1750584 BLAKE2B c9be1314e9d027247de63492ee362e996ef85faf45a47ee421cad95ebde9188bff8d3fc7db64e717ab922e1052f3b1c1500f5589fc5b2199ab66effb000e442d SHA512 5da71f53c325257f1f546a2520fe47828b495c953270df25ea0e37741463fdda72f0ba4d5b05b25114ec30f27a559344c2b024bacabf610759f4e3e9efadb480
+DIST jq-1.7_pre20201109.tar.gz 1181867 BLAKE2B 9db187ab927b635c43fbc6191aeffa00451b12253ae023bbabe6fba5fdf8fb393f8450ee2011ef58cb93e2f27994d454fac967984a721439aaac93259c02f7f1 SHA512 f2997d70edb36d0a23b71a7d933a763cedd7c74ffa3129c2a6cb7189aaff1c5095cdc51062b7cd119324ec2c83ebae6ff0b7da3941315303b7a31146b9eb285a
+DIST jq-1.7_pre20230210.gh.tar.gz 1197799 BLAKE2B f4e90f78aa5afec88a4fc60f7a6f05f892647fcd9b59e67ea4727bb452eceead05b8cbe18b814d05665c5fadf8aaddc0cc9a06f2cb102c82503f857d0b70a485 SHA512 e7533c1dd53dad398c50b4cf37cef5d60f95eeee040d1c1ab776778fa14a093167500e1d99d71b22edc5f476079bad503c9c17f54fffefee0c5eb41b86bab406
diff --git a/app-misc/jq/files/jq-1.4-dynamic-link.patch b/app-misc/jq/files/jq-1.4-dynamic-link.patch
deleted file mode 100644
index b958a15..0000000
--- a/app-misc/jq/files/jq-1.4-dynamic-link.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-do not statically link libjq since we install it
-
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -53,7 +53,6 @@
- 
- bin_PROGRAMS = jq
- jq_SOURCES = main.c
--jq_LDFLAGS = -static-libtool-libs
- jq_LDADD = libjq.la -lm
- 
- ### Tests (make check)
diff --git a/app-misc/jq/files/jq-1.6-r3-never-bundle-oniguruma.patch b/app-misc/jq/files/jq-1.6-r3-never-bundle-oniguruma.patch
new file mode 100644
index 0000000..75ab111
--- /dev/null
+++ b/app-misc/jq/files/jq-1.6-r3-never-bundle-oniguruma.patch
@@ -0,0 +1,27 @@
+diff --git a/Makefile.am b/Makefile.am
+index 6344b4e..86d968e 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -47,7 +47,7 @@ AM_YFLAGS = --warnings=all -d
+ 
+ lib_LTLIBRARIES = libjq.la
+ libjq_la_SOURCES = ${LIBJQ_SRC}
+-libjq_la_LIBADD = -lm
++libjq_la_LIBADD = -lm $(onig_LIBS)
+ libjq_la_LDFLAGS = $(onig_LDFLAGS) -export-symbols-regex '^j[qv]_' -version-info 1:4:0
+ 
+ if WIN32
+diff --git a/configure.ac b/configure.ac
+index 280694c..d96026e 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -249,6 +249,9 @@ AS_IF([test "x$with_oniguruma" != xno], [
+           onig_CFLAGS="-I${with_oniguruma}/include"
+           onig_LDFLAGS="-L${with_oniguruma}/lib"
+       ])
++   ], [
++	   # with_oniguruma == yes
++	   PKG_CHECK_MODULES([onig], [oniguruma])
+    ])
+    AS_IF([test "x$build_oniguruma" = xno], [
+        # check for ONIGURUMA library, either in /usr or where requested
diff --git a/app-misc/jq/files/jq-1.6-runpath.patch b/app-misc/jq/files/jq-1.6-runpath.patch
new file mode 100644
index 0000000..40a2ed0
--- /dev/null
+++ b/app-misc/jq/files/jq-1.6-runpath.patch
@@ -0,0 +1,17 @@
+diff --git a/configure.ac b/configure.ac
+index 280694c..7227c9d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -280,4 +280,11 @@ AC_SUBST([BUNDLER], ["$bundle_cmd"])
+ AC_CONFIG_MACRO_DIR([config/m4])
+ AC_CONFIG_FILES([Makefile])
+ AC_OUTPUT
+-
++AC_ARG_ENABLE([rpathhack],
++	[AC_HELP_STRING([--enable-rpathhack], [patch libtool to remove RPATH])],
++	[
++AC_MSG_RESULT([patching libtool to fix rpath])
++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
++	],
++	[])
diff --git a/app-misc/jq/files/jq-1.6-segfault-fix.patch b/app-misc/jq/files/jq-1.6-segfault-fix.patch
new file mode 100644
index 0000000..8eb7d45
--- /dev/null
+++ b/app-misc/jq/files/jq-1.6-segfault-fix.patch
@@ -0,0 +1,22 @@
+From a1f1231a73c221155d539a281181ef37f874869d Mon Sep 17 00:00:00 2001
+From: William Langford <wlangfor@gmail.com>
+Date: Tue, 20 Nov 2018 09:58:25 -0500
+Subject: [PATCH] Add missing jv_copy when printing with -ar
+
+---
+ src/main.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/main.c b/src/main.c
+index b154689e..61ae43f9 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -168,7 +168,7 @@ static int process(jq_state *jq, jv value, int flags, int dumpopts) {
+   while (jv_is_valid(result = jq_next(jq))) {
+     if ((options & RAW_OUTPUT) && jv_get_kind(result) == JV_KIND_STRING) {
+       if (options & ASCII_OUTPUT) {
+-        jv_dumpf(result, stdout, JV_PRINT_ASCII);
++        jv_dumpf(jv_copy(result), stdout, JV_PRINT_ASCII);
+       } else {
+         fwrite(jv_string_value(result), 1, jv_string_length_bytes(jv_copy(result)), stdout);
+       }
diff --git a/app-misc/jq/files/jq-1.7-runpath.patch b/app-misc/jq/files/jq-1.7-runpath.patch
new file mode 100644
index 0000000..a8f76f7
--- /dev/null
+++ b/app-misc/jq/files/jq-1.7-runpath.patch
@@ -0,0 +1,17 @@
+diff --git a/configure.ac b/configure.ac
+index 0441d4a..8f1aa23 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -283,4 +283,11 @@ AC_SUBST([BUNDLER], ["$bundle_cmd"])
+ AC_CONFIG_MACRO_DIR([config/m4])
+ AC_CONFIG_FILES([Makefile libjq.pc])
+ AC_OUTPUT
+-
++AC_ARG_ENABLE([rpathhack],
++	[AC_HELP_STRING([--enable-rpathhack], [patch libtool to remove RPATH])],
++	[
++AC_MSG_RESULT([patching libtool to fix rpath])
++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
++	],
++	[])
diff --git a/app-misc/jq/files/jq-1.7-visible-null.patch b/app-misc/jq/files/jq-1.7-visible-null.patch
new file mode 100644
index 0000000..41e55df
--- /dev/null
+++ b/app-misc/jq/files/jq-1.7-visible-null.patch
@@ -0,0 +1,41 @@
+diff --git a/src/jv_print.c b/src/jv_print.c
+index 2e781bb..e621b31 100644
+--- a/src/jv_print.c
++++ b/src/jv_print.c
+@@ -32,7 +32,7 @@ static const jv_kind color_kinds[] =
+ static char color_bufs[sizeof(color_kinds)/sizeof(color_kinds[0])][16];
+ static const char *color_bufps[8];
+ static const char* def_colors[] =
+-  {COL("1;30"),    COL("0;37"),      COL("0;37"),     COL("0;37"),
++  {COL("1;90"),    COL("0;37"),      COL("0;37"),     COL("0;37"),
+    COL("0;32"),      COL("1;37"),     COL("1;37")};
+ #define FIELD_COLOR COL("34;1")
+ 
+diff --git a/tests/shtest b/tests/shtest
+index 8ed62b2..2d3f0da 100755
+--- a/tests/shtest
++++ b/tests/shtest
+@@ -280,12 +280,12 @@ fi
+ 
+ # Check $JQ_COLORS
+ $JQ -Ccn . > $d/color
+-printf '\033[1;30mnull\033[0m\n' > $d/expect
++printf '\033[1;90mnull\033[0m\n' > $d/expect
+ cmp $d/color $d/expect
+ JQ_COLORS='4;31' $JQ -Ccn . > $d/color
+ printf '\033[4;31mnull\033[0m\n' > $d/expect
+ cmp $d/color $d/expect
+-JQ_COLORS='1;30:0;31:0;32:0;33:0;34:1;35:1;36' \
++JQ_COLORS='1;90:0;31:0;32:0;33:0;34:1;35:1;36' \
+   $JQ -Ccn '[{"a":true,"b":false},123,null]' > $d/color
+ (
+ printf '\033[1;35m[\033[1;36m{'
+@@ -298,7 +298,7 @@ printf '[0m\033[0;31mfalse\033'
+ printf '[0m\033[1;36m\033[1;36'
+ printf 'm}\033[0m\033[1;35m,\033['
+ printf '0;33m123\033[0m\033[1;'
+-printf '35m,\033[1;30mnull\033'
++printf '35m,\033[1;90mnull\033'
+ printf '[0m\033[1;35m\033[1;35'
+ printf 'm]\033[0m\n'
+ ) > $d/expect
diff --git a/app-misc/jq/files/jq-1.7-warnings-r1.patch b/app-misc/jq/files/jq-1.7-warnings-r1.patch
new file mode 100644
index 0000000..4d01824
--- /dev/null
+++ b/app-misc/jq/files/jq-1.7-warnings-r1.patch
@@ -0,0 +1,37 @@
+diff --git a/src/builtin.c b/src/builtin.c
+index 1c6b08c..407df2a 100644
+--- a/src/builtin.c
++++ b/src/builtin.c
+@@ -1,5 +1,6 @@
+ #define _BSD_SOURCE
+ #define _GNU_SOURCE
++#define _DEFAULT_SOURCE
+ #ifndef __sun__
+ # define _XOPEN_SOURCE
+ # define _XOPEN_SOURCE_EXTENDED 1
+diff --git a/src/jv_dtoa.c b/src/jv_dtoa.c
+index 33feb99..fcbd902 100644
+--- a/src/jv_dtoa.c
++++ b/src/jv_dtoa.c
+@@ -2327,7 +2327,7 @@ retlow1:
+ jvp_strtod
+  (struct dtoa_context* C, const char *s00, char **se)
+ {
+-	int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c, e, e1, test_scale;
++	int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c, e, e1;
+ 	int esign, i, j, k, nd, nd0, nf, nz, nz0, nz1, sign;
+ 	CONST char *s, *s0, *s1;
+ 	double aadj, aadj1;
+diff --git a/src/jv_dtoa_tsd.c b/src/jv_dtoa_tsd.c
+index cfccd40..d39911e 100644
+--- a/src/jv_dtoa_tsd.c
++++ b/src/jv_dtoa_tsd.c
+@@ -31,7 +31,7 @@ void jv_tsd_dtoa_ctx_fini() {
+ static
+ #endif
+ void jv_tsd_dtoa_ctx_init() {
+-  if (pthread_key_create(&dtoa_ctx_key, tsd_dtoa_ctx_dtor) != 0) {
++  if (pthread_key_create(&dtoa_ctx_key, (void (*)(void *))tsd_dtoa_ctx_dtor) != 0) {
+     fprintf(stderr, "error: cannot create thread specific key");
+     abort();
+   }
diff --git a/app-misc/jq/files/jq-1.7-warnings.patch b/app-misc/jq/files/jq-1.7-warnings.patch
new file mode 100644
index 0000000..0047ca3
--- /dev/null
+++ b/app-misc/jq/files/jq-1.7-warnings.patch
@@ -0,0 +1,44 @@
+diff --git a/src/builtin.c b/src/builtin.c
+index bf80c7b..12db573 100644
+--- a/src/builtin.c
++++ b/src/builtin.c
+@@ -1,5 +1,6 @@
+ #define _BSD_SOURCE
+ #define _GNU_SOURCE
++#define _DEFAULT_SOURCE
+ #ifndef __sun__
+ # define _XOPEN_SOURCE
+ # define _XOPEN_SOURCE_EXTENDED 1
+diff --git a/src/jv_dtoa.c b/src/jv_dtoa.c
+index 33feb99..fcbd902 100644
+--- a/src/jv_dtoa.c
++++ b/src/jv_dtoa.c
+@@ -2327,7 +2327,7 @@ retlow1:
+ jvp_strtod
+  (struct dtoa_context* C, const char *s00, char **se)
+ {
+-	int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c, e, e1, test_scale;
++	int bb2, bb5, bbe, bd2, bd5, bbbits, bs2, c, e, e1;
+ 	int esign, i, j, k, nd, nd0, nf, nz, nz0, nz1, sign;
+ 	CONST char *s, *s0, *s1;
+ 	double aadj, aadj1;
+diff --git a/src/jv_dtoa_tsd.c b/src/jv_dtoa_tsd.c
+index 0f95df4..e5209dd 100644
+--- a/src/jv_dtoa_tsd.c
++++ b/src/jv_dtoa_tsd.c
+@@ -24,7 +24,7 @@ static void tsd_dtoa_ctx_fini() {
+ }
+ 
+ static void tsd_dtoa_ctx_init() {
+-  if (pthread_key_create(&dtoa_ctx_key, tsd_dtoa_ctx_dtor) != 0) {
++  if (pthread_key_create(&dtoa_ctx_key, (void (*)(void *))tsd_dtoa_ctx_dtor) != 0) {
+     fprintf(stderr, "error: cannot create thread specific key");
+     abort();
+   }
+@@ -43,4 +43,4 @@ inline struct dtoa_context *tsd_dtoa_context_get() {
+     }
+   }
+   return ctx;
+-}
+\ No newline at end of file
++}
diff --git a/app-misc/jq/files/jq-1.7_pre20201109-fix-configure-test.patch b/app-misc/jq/files/jq-1.7_pre20201109-fix-configure-test.patch
new file mode 100644
index 0000000..8be5204
--- /dev/null
+++ b/app-misc/jq/files/jq-1.7_pre20201109-fix-configure-test.patch
@@ -0,0 +1,54 @@
+https://github.com/stedolan/jq/pull/2480
+
+From 40bbd419ad8d1bd9cbe8b17063c323f8a40ab327 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 6 Sep 2022 09:59:31 -0700
+Subject: [PATCH 1/2] configure: Pass _XOPEN_SOURCE when checking for strptime
+
+Include sys/time.h for gettimeofday since thats where its in glibc
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/configure.ac
++++ b/configure.ac
+@@ -139,7 +139,10 @@ AC_FUNC_ALLOCA
+ 
+ AC_FIND_FUNC([isatty], [c], [#include <unistd.h>], [0])
+ AC_FIND_FUNC([_isatty], [c], [#include <io.h>], [0])
++OLD_CFLAGS=$CFLAGS
++CFLAGS="$CFLAGS -D_XOPEN_SOURCE"
+ AC_FIND_FUNC([strptime], [c], [#include <time.h>], [0, 0, 0])
++CFLAGS=$OLD_CFLAGS
+ AC_FIND_FUNC([strftime], [c], [#include <time.h>], [0, 0, 0, 0])
+ AC_FIND_FUNC([setenv], [c], [#include <stdlib.h>], [0, 0, 0])
+ AC_FIND_FUNC([timegm], [c], [#include <time.h>], [0])
+@@ -147,7 +150,7 @@ AC_FIND_FUNC([gmtime_r], [c], [#include <time.h>], [0, 0])
+ AC_FIND_FUNC([gmtime], [c], [#include <time.h>], [0])
+ AC_FIND_FUNC([localtime_r], [c], [#include <time.h>], [0, 0])
+ AC_FIND_FUNC([localtime], [c], [#include <time.h>], [0])
+-AC_FIND_FUNC([gettimeofday], [c], [#include <time.h>], [0, 0])
++AC_FIND_FUNC([gettimeofday], [c], [#include <sys/time.h>], [0, 0])
+ AC_CHECK_MEMBER([struct tm.tm_gmtoff], [AC_DEFINE([HAVE_TM_TM_GMT_OFF],1,[Define to 1 if the system has the tm_gmt_off field in struct tm])],
+                 [], [[#include <time.h>]])
+ AC_CHECK_MEMBER([struct tm.__tm_gmtoff], [AC_DEFINE([HAVE_TM___TM_GMT_OFF],1,[Define to 1 if the system has the __tm_gmt_off field in struct tm])],
+
+From cda1734bed3b048c01452c798877d05b8c2f4c15 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 6 Sep 2022 10:00:59 -0700
+Subject: [PATCH 2/2] builtin: Replace _BSD_SOURCE with _DEFAULT_SOURCE
+
+newer glibc has remove _BSD_SOURCE and wants it to be replaced with _DEFAULT_SOURCE
+
+Fixes
+/usr/include/features.h:194:3: warning: "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-W#warnings]
+warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/src/builtin.c
++++ b/src/builtin.c
+@@ -1,4 +1,4 @@
+-#define _BSD_SOURCE
++#define _DEFAULT_SOURCE
+ #define _GNU_SOURCE
+ #ifndef __sun__
+ # define _XOPEN_SOURCE
+
diff --git a/app-misc/jq/files/jq-1.7_pre20201109-no-git-bdep.patch b/app-misc/jq/files/jq-1.7_pre20201109-no-git-bdep.patch
new file mode 100644
index 0000000..726624d
--- /dev/null
+++ b/app-misc/jq/files/jq-1.7_pre20201109-no-git-bdep.patch
@@ -0,0 +1,13 @@
+diff --git a/configure.ac b/configure.ac
+index 0441d4a..592ceb9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1,8 +1,3 @@
+-m4_define([jq_version],
+-          m4_esyscmd_s([(git rev-parse --verify -q jq-1.0 > /dev/null &&
+-                        (git describe --tags --dirty --match 'jq-*'|sed 's/^jq-//')) ||
+-                        echo `git rev-parse --abbrev-ref HEAD`-`git describe --always --dirty`])))
+-
+ AC_INIT([jq], [jq_version], [https://github.com/stedolan/jq/issues],
+              [jq], [https://stedolan.github.io/jq])
+ 
diff --git a/app-misc/jq/jq-1.4-r1.ebuild b/app-misc/jq/jq-1.4-r1.ebuild
deleted file mode 100644
index c66085c..0000000
--- a/app-misc/jq/jq-1.4-r1.ebuild
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/app-misc/jq/jq-1.4-r1.ebuild,v 1.1 2015/04/07 04:10:41 vapier Exp $
-
-EAPI=5
-
-inherit autotools eutils
-
-DESCRIPTION="A lightweight and flexible command-line JSON processor"
-HOMEPAGE="http://stedolan.github.com/jq/"
-SRC_URI="http://stedolan.github.io/jq/download/source/${P}.tar.gz"
-
-LICENSE="MIT CC-BY-3.0"
-SLOT="0"
-KEYWORDS="*"
-IUSE="static-libs test"
-
-DEPEND="sys-devel/bison
-	sys-devel/flex
-	test? ( dev-util/valgrind )"
-
-DOCS=( AUTHORS README )
-
-src_prepare() {
-	sed -i '/^dist_doc_DATA/d' Makefile.am || die
-	epatch "${FILESDIR}"/${PN}-1.4-dynamic-link.patch
-	eautoreconf
-}
-
-src_configure() {
-	# don't try to rebuild docs
-	econf \
-		--disable-docs \
-		$(use_enable static-libs static)
-}
-
-src_install() {
-	default
-	use static-libs || find "${ED}" -name libjq.la -delete
-}
diff --git a/app-misc/jq/jq-1.7_pre20201109-r1.ebuild b/app-misc/jq/jq-1.7_pre20201109-r1.ebuild
new file mode 100644
index 0000000..17e24f9
--- /dev/null
+++ b/app-misc/jq/jq-1.7_pre20201109-r1.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools
+
+COMMIT_HASH="a17dd3248a666d01be75f6b16be37e80e20b0954"
+
+DESCRIPTION="A lightweight and flexible command-line JSON processor"
+HOMEPAGE="https://stedolan.github.io/jq/"
+#SRC_URI="https://github.com/stedolan/jq/releases/download/${P}/${P}.tar.gz"
+SRC_URI="https://github.com/stedolan/jq/archive/${COMMIT_HASH}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}-${COMMIT_HASH}"
+
+LICENSE="MIT CC-BY-3.0"
+SLOT="0"
+KEYWORDS="*"
+IUSE="-oniguruma static-libs test"
+
+ONIGURUMA_MINPV='>=dev-libs/oniguruma-6.1.3' # Keep this in sync with bundled modules/oniguruma/
+DEPEND="
+	oniguruma? ( ${ONIGURUMA_MINPV}:=[static-libs?] )
+"
+
+BDEPEND="
+	>=sys-devel/bison-3.0
+	sys-devel/flex
+"
+
+RDEPEND="
+	!static-libs? (
+		oniguruma? ( ${ONIGURUMA_MINPV}[static-libs?] )
+	)
+"
+PATCHES=(
+	"${FILESDIR}"/jq-1.6-r3-never-bundle-oniguruma.patch
+	"${FILESDIR}"/jq-1.7-runpath.patch
+	"${FILESDIR}"/jq-1.7-warnings.patch
+	"${FILESDIR}"/jq-1.7-visible-null.patch
+	# https://bugs.gentoo.org/776385
+	"${FILESDIR}"/jq-1.7_pre20201109-no-git-bdep.patch
+	"${FILESDIR}"/jq-1.7_pre20201109-fix-configure-test.patch
+)
+
+RESTRICT="!test? ( test )"
+REQUIRED_USE="test? ( oniguruma )"
+
+src_prepare() {
+	sed -e '/^dist_doc_DATA/d; s:-Wextra ::' -i Makefile.am || die
+	sed -r -e "s:(m4_define\(\[jq_version\],) .+\):\1 \[${PV}\]):" \
+		-i configure.ac || die
+
+	# jq-1.6-r3-never-bundle-oniguruma makes sure we build with the system oniguruma,
+	# but the bundled copy of oniguruma still gets eautoreconf'd since it
+	# exists; save the cycles by nuking it.
+	sed -e '/modules\/oniguruma/d' -i Makefile.am || die
+	rm -rf "${S}"/modules/oniguruma || die
+
+	default
+	eautoreconf
+}
+
+src_configure() {
+	local econfargs=(
+		# don't try to rebuild docs
+		--disable-docs
+		--disable-valgrind
+		--disable-maintainer-mode
+		--enable-rpathhack
+		$(use_enable static-libs static)
+		$(use_with oniguruma oniguruma yes)
+	)
+	econf "${econfargs[@]}"
+}
+
+src_test() {
+	if ! LD_LIBRARY_PATH="${S}/.libs" nonfatal emake check; then
+		if [[ -r "${S}/test-suite.log" ]]; then
+			eerror "Tests failed, outputting testsuite log"
+			cat "${S}/test-suite.log"
+		fi
+		die "Tests failed"
+	fi
+}
+
+src_install() {
+	local DOCS=( AUTHORS NEWS README.md )
+	default
+
+	use static-libs || { find "${D}" -name '*.la' -delete || die; }
+}
diff --git a/app-misc/jq/metadata.xml b/app-misc/jq/metadata.xml
index 6bf27d5..aa4e2e5 100644
--- a/app-misc/jq/metadata.xml
+++ b/app-misc/jq/metadata.xml
@@ -1,11 +1,19 @@
-<?xml version = '1.0' encoding = 'UTF-8'?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
 <pkgmetadata>
-	<maintainer>
-		<email>radhermit@gentoo.org</email>
-		<name>Tim Harder</name>
+	<maintainer type="person" proxied="yes">
+		<email>vpayno+gentoo@gmail.com</email>
+		<name>Victor Payno</name>
 	</maintainer>
+	<maintainer type="person">
+		<email>chutzpah@gentoo.org</email>
+		<name>Patrick McLean</name>
+	</maintainer>
+	<use>
+		<flag name="oniguruma">Use <pkg>dev-libs/oniguruma</pkg> for regular expression support</flag>
+	</use>
 	<upstream>
 		<remote-id type="cpe">cpe:/a:jq_project:jq</remote-id>
+		<remote-id type="github">stedolan/jq</remote-id>
 	</upstream>
 </pkgmetadata>