pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/devel/jq



Module Name:    pkgsrc
Committed By:   wiz
Date:           Sat Sep  9 19:52:53 UTC 2023

Modified Files:
        pkgsrc/devel/jq: Makefile PLIST distinfo
Added Files:
        pkgsrc/devel/jq/patches: patch-Makefile.in
Removed Files:
        pkgsrc/devel/jq/patches: patch-Makefile.am patch-builtin.c
            patch-compile.c patch-configure.ac patch-inject__errors.c
            patch-util.c

Log Message:
jq: update to 1.7.

# 1.7

Since the last stable release many things have happened:

- jq now lives at <https://github.com/jqlang>

Full commit log can be found at <https://github.com/jqlang/jq/compare/jq-1.6...jq-1.7> but here are some highlights:

## CLI changes

- Make object key color configurable using `JQ_COLORS` environment variable. @itchyny @haguenau @ericpruitt #2703

  ```sh
  # this would make "field" bold yellow (`1;33`, the last value)
  $ JQ_COLORS="0;90:0;37:0;37:0;37:0;32:1;37:1;37:1;33" ./jq -n '{field: 123}'
  {
    "field": 123
  }
  ```

- Change the default color of null to Bright Black. @itchyny #2824
- Respect `NO_COLOR` environment variable to disable color output. See <https://no-color.org> for details. @itchyny #2728
- Improved `--help` output. Now mentions all options and nicer order. @itchyny @wader #2747 #2766 #2799
- Fix multiple issues of exit code using `--exit-code`/`-e` option. @ryo1kato #1697

  ```sh
  # true-ish last output value exits with zero
  $ jq -ne true ; echo $?
  true
  0
  # false-ish last output value (false and null) exits with 1
  $ jq -ne false ; echo $?
  false
  1
  # no output value exists with 4
  $ jq -ne empty ; echo $?
  4
  ```

- Add `--binary`/`-b` on Windows for binary output. To get `\n` instead of `\r\n` line endings. @nicowilliams 0dab2b1
- Add `--raw-output0` for NUL (zero byte) separated output. @asottile @pabs3 @itchyny #1990 #2235 #2684

  ```sh
  # will output a zero byte after each output
  $ jq -n --raw-output0 '1,2,3' | xxd
  00000000: 3100 3200 3300                           1.2.3.
  # can be used with xargs -0
  $ jq -n --raw-output0 '"a","b","c"' | xargs -0 -n1
  a
  b
  c
  $ jq -n --raw-output0 '"a b c", "d\ne\nf"' | xargs -0 printf '[%s]\n'
  [a b c]
  [d
  e
  f]
  # can be used with read -d ''
  $ while IFS= read -r -d '' json; do
  >   jq '.name' <<< "$json"
  > done < <(jq -n --raw-output0 '{name:"a b c"},{name:"d\ne\nf"}')
  "a b c"
  "d\ne\nf"
  # also it's an error to output a string containing a NUL when using NUL separator
  $ jq -n --raw-output0 '"\u0000"'
  jq: error (at <unknown>): Cannot dump a string containing NUL with --raw-output0 option
  ```

- Fix assert crash and validate JSON for `--jsonarg`. @wader #2658
- Remove deprecated `--argfile` option. @itchyny #2768
- Enable stack protection. @nicowilliams #2801

## Language changes

- Use decimal number literals to preserve precision. Comparison operations respects precision but arithmetic operations might truncate. @leonid-s-usov #1752

  ```sh
  # precision is preserved
  $ echo '100000000000000000' | jq .
  100000000000000000
  # comparison respects precision (this is false in JavaScript)
  $ jq -n '100000000000000000 < 100000000000000001'
  true
  # sort/0 works
  $ jq -n -c '[100000000000000001, 100000000000000003, 100000000000000004, 100000000000000002] | sort'
  [100000000000000001,100000000000000002,100000000000000003,100000000000000004]
  # arithmetic operations might truncate (same as JavaScript)
  $ jq -n '100000000000000000 + 10'
  100000000000000020
  ```

- Adds new builtin `pick(stream)` to emit a projection of the input object or array. @pkoppstein #2656 #2779

  ```sh
  $ jq -n '{"a": 1, "b": {"c": 2, "d": 3}, "e": 4} | pick(.a, .b.c, .x)'
  {
    "a": 1,
    "b": {
      "c": 2
    },
    "x": null
  }
  ```

- Adds new builtin `debug(msgs)` that works like `debug` but applies a filter on the input before writing to stderr. @pkoppstein #2710

  ```sh
  $ jq -n '1 as $x | 2 | debug("Entering function foo with $x == \($x)", .) | (.+1)'
  ["DEBUG:","Entering function foo with $x == 1"]
  ["DEBUG:",2]
  3
  $ jq -n '{a: 1, b: 2, c: 3} | debug({a, b, sum: (.a+.b)})'
  ["DEBUG:",{"a":1,"b":2,"sum":3}]
  {
    "a": 1,
    "b": 2,
    "c": 3
  }
  ```

- Adds new builtin `scan($re; $flags)`. Was documented but not implemented. @itchyny #1961

  ```sh
  # look for pattern "ab" in "abAB" ignoring casing
  $ jq -n '"abAB" | scan("ab"; "i")'
  "ab"
  "AB"
  ```

- Adds new builtin `abs` to get absolute value. This potentially allows the literal value of numbers to be preserved as `length` and `fabs` convert to float. @pkoppstein #2767
- Allow `if` without `else`-branch. When skipped the `else`-branch will be `.` (identity). @chancez @wader #1825 #2481

  ```sh
  # convert 1 to "one" otherwise keep as is
  $ jq -n '1,2 | if . == 1 then "one" end'
  "one"
  2
  # behaves the same as
  $ jq -n '1,2 | if . == 1 then "one" else . end'
  "one"
  2
  # also works with elif
  $ jq -n '1,2,3 | if . == 1 then "one" elif . == 2 then "two" end
  "one"
  "two"
  3
  ```

- Allow use of `$binding` as key in object literals. @nicowilliams 8ea4a55

  ```sh
  $ jq -n '"a" as $key | {$key: 123}'
  {
    "a": 123
  }
  # previously parentheses were needed
  $ jq -n '"a" as $key | {($key): 123}'
  {
    "a": 123
  }
  ```

- Allow dot between chained indexes when using `.["index"]` @nicowilliams #1168

  ```sh
  $ jq -n '{"a": {"b": 123}} | .a["b"]'
  123
  # now this also works
  $ jq -n '{"a": {"b": 123}} | .a.["b"]'
  123
  ```

- Allow dot for chained value iterator `.[]`, `.[]?` @wader #2650

  ```sh
  $ jq -n '{"a": [123]} | .a[]'
  123
  # now this also works
  $ jq -n '{"a": [123]} | .a.[]'
  123
  ```

- Fix try/catch catches more than it should. @nicowilliams #2750
- Speed up and refactor some builtins, also remove `scalars_or_empty/0`. @muhmuhten #1845
- Now `halt` and `halt_error` exit immediately instead of continuing to the next input. @emanuele6 #2667
- Fix issue converting string to number after previous convert error. @thalman #2400
- Fix issue representing large numbers on some platforms causing invalid JSON output. @itchyny #2661
- Fix deletion using assigning empty against arrays. @itchyny #2133

  ```sh
  # now this works as expected, filter out all values over 2 by assigning empty
  $ jq -c '(.[] | select(. >= 2)) |= empty' <<< '[1,5,3,0,7]'
  [1,0]
  ```

- Allow keywords to be used as binding name in more places. @emanuele6 #2681
- Allow using `nan` as NaN in JSON. @emanuele6 #2712
- Expose a module's function names in `modulemeta`. @mrwilson #2837
- Fix `contains/1` to handle strings with NUL. @nicowilliams 61cd6db
- Fix `stderr/0` to output raw text without any decoration. @itchyny #2751
- Fix `nth/2` to emit empty on index out of range. @itchyny #2674
- Fix `implode` to not assert and instead replace invalid unicode codepoints. @wader #2646
- Fix `indices/1` and `rindex/1` in case of overlapping matches in strings. @emanuele6 #2718
- Fix `sub/3` to resolve issues involving global search-and-replace (gsub) operations. @pkoppstein #2641
- Fix `significand/0`, `gamma/0` and `drem/2` to be available on macOS. @itchyny #2756 #2775
- Fix empty regular expression matches. @itchyny #2677
- Fix overflow exception of the modulo operator. @itchyny #2629
- Fix string multiplication by 0 (and less than 1) to emit empty string. @itchyny #2142
- Fix segfault when using libjq and threads. @thalman #2546
- Fix constant folding of division and reminder with zero divisor. @itchyny #2797
- Fix `error/0`, `error/1` to throw null error. @emanuele6 #2823
- Simpler and faster `transpose`. @pkoppstein #2758
- Simple and efficient implementation of `walk/1`. @pkoppstein #2795
- Remove deprecated filters `leaf_paths`, `recurse_down`. @itchyny #2666


To generate a diff of this commit:
cvs rdiff -u -r1.18 -r1.19 pkgsrc/devel/jq/Makefile
cvs rdiff -u -r1.4 -r1.5 pkgsrc/devel/jq/PLIST
cvs rdiff -u -r1.15 -r1.16 pkgsrc/devel/jq/distinfo
cvs rdiff -u -r1.2 -r0 pkgsrc/devel/jq/patches/patch-Makefile.am \
    pkgsrc/devel/jq/patches/patch-builtin.c \
    pkgsrc/devel/jq/patches/patch-compile.c \
    pkgsrc/devel/jq/patches/patch-inject__errors.c \
    pkgsrc/devel/jq/patches/patch-util.c
cvs rdiff -u -r0 -r1.3 pkgsrc/devel/jq/patches/patch-Makefile.in
cvs rdiff -u -r1.4 -r0 pkgsrc/devel/jq/patches/patch-configure.ac

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/devel/jq/Makefile
diff -u pkgsrc/devel/jq/Makefile:1.18 pkgsrc/devel/jq/Makefile:1.19
--- pkgsrc/devel/jq/Makefile:1.18       Sat Apr 23 21:05:18 2022
+++ pkgsrc/devel/jq/Makefile    Sat Sep  9 19:52:53 2023
@@ -1,26 +1,24 @@
-# $NetBSD: Makefile,v 1.18 2022/04/23 21:05:18 tnn Exp $
+# $NetBSD: Makefile,v 1.19 2023/09/09 19:52:53 wiz Exp $
 
-DISTNAME=      jq-1.6
-PKGREVISION=   1
-DIST_SUBDIR=   ${DISTNAME}     # remove on next update
+DISTNAME=      jq-1.7
 CATEGORIES=    devel
-MASTER_SITES=  ${MASTER_SITE_GITHUB:=stedolan/}
+MASTER_SITES=  ${MASTER_SITE_GITHUB:=jqlang/}
 GITHUB_RELEASE=        ${DISTNAME}
 
 MAINTAINER=    leot%NetBSD.org@localhost
-HOMEPAGE=      https://github.com/stedolan/jq/
+HOMEPAGE=      https://github.com/jqlang/jq
 COMMENT=       Command-line JSON processor
 LICENSE=       mit
 
-USE_LANGUAGES= c99
+USE_LANGUAGES= c
 USE_LIBTOOL=   yes
-USE_TOOLS+=    autoreconf autoconf automake bison flex gmake
+USE_TOOLS+=    bison flex gmake
 GNU_CONFIGURE= yes
 
-TEST_TARGET=   check
+USE_CC_FEATURES=       c99
+PKGCONFIG_OVERRIDE=    libjq.pc.in
 
-pre-configure:
-       cd ${WRKSRC} && autoreconf -fi
+TEST_TARGET=   check
 
 .include "options.mk"
 

Index: pkgsrc/devel/jq/PLIST
diff -u pkgsrc/devel/jq/PLIST:1.4 pkgsrc/devel/jq/PLIST:1.5
--- pkgsrc/devel/jq/PLIST:1.4   Fri Jul 31 13:14:20 2015
+++ pkgsrc/devel/jq/PLIST       Sat Sep  9 19:52:53 2023
@@ -1,10 +1,11 @@
-@comment $NetBSD: PLIST,v 1.4 2015/07/31 13:14:20 ryoon Exp $
+@comment $NetBSD: PLIST,v 1.5 2023/09/09 19:52:53 wiz Exp $
 bin/jq
 include/jq.h
 include/jv.h
 lib/libjq.la
+lib/pkgconfig/libjq.pc
 man/man1/jq.1
 share/doc/jq/AUTHORS
 share/doc/jq/COPYING
-share/doc/jq/README
+share/doc/jq/NEWS.md
 share/doc/jq/README.md

Index: pkgsrc/devel/jq/distinfo
diff -u pkgsrc/devel/jq/distinfo:1.15 pkgsrc/devel/jq/distinfo:1.16
--- pkgsrc/devel/jq/distinfo:1.15       Sat Apr 23 21:05:18 2022
+++ pkgsrc/devel/jq/distinfo    Sat Sep  9 19:52:53 2023
@@ -1,11 +1,6 @@
-$NetBSD: distinfo,v 1.15 2022/04/23 21:05:18 tnn Exp $
+$NetBSD: distinfo,v 1.16 2023/09/09 19:52:53 wiz Exp $
 
-BLAKE2s (jq-1.6/jq-1.6.tar.gz) = 91d3271bcfea48d2d313f0e92ed99f8f9a80619d939c6f7be31c135aa0929078
-SHA512 (jq-1.6/jq-1.6.tar.gz) = 5da71f53c325257f1f546a2520fe47828b495c953270df25ea0e37741463fdda72f0ba4d5b05b25114ec30f27a559344c2b024bacabf610759f4e3e9efadb480
-Size (jq-1.6/jq-1.6.tar.gz) = 1750584 bytes
-SHA1 (patch-Makefile.am) = 5392763bd46b27f4e6c2048f497778ce0ed6c7a8
-SHA1 (patch-builtin.c) = b3ac3e4b98637ff6bcd4e28332e8b98a65864401
-SHA1 (patch-compile.c) = 0c58c5755857475deb613934140733eefa10f857
-SHA1 (patch-configure.ac) = a140c21a1a0268abf4b1f9bfc17a2c95099e1e2c
-SHA1 (patch-inject__errors.c) = a325a3206dd738d4b3f4b2e1f30bb6db74a7e2bc
-SHA1 (patch-util.c) = 49483951ae96e9b672f38b84aea955c0d189f822
+BLAKE2s (jq-1.7.tar.gz) = 185d736bb910d644bd3075806bbc7239e71ab9fac04455d3c1c138d2e538e201
+SHA512 (jq-1.7.tar.gz) = 4f8a6b0401e6c881dcb97d948fe38871062599a43fff667ede21cf185ec9de33e61878f0a6ea12786d0a632eea592ea0ff860520ba02dbb32f2fa2d2b5db7a0a
+Size (jq-1.7.tar.gz) = 1905863 bytes
+SHA1 (patch-Makefile.in) = b07a388dc5ca2cd966a41b5bb1ebae07c5c10aa8

Added files:

Index: pkgsrc/devel/jq/patches/patch-Makefile.in
diff -u /dev/null pkgsrc/devel/jq/patches/patch-Makefile.in:1.3
--- /dev/null   Sat Sep  9 19:52:54 2023
+++ pkgsrc/devel/jq/patches/patch-Makefile.in   Sat Sep  9 19:52:53 2023
@@ -0,0 +1,16 @@
+$NetBSD: patch-Makefile.in,v 1.3 2023/09/09 19:52:53 wiz Exp $
+
+Do dynamic linking of libtool libraries too (otherwise bin/jq can
+end up being statically linked).
+
+--- Makefile.in.orig   2023-09-06 20:00:52.000000000 +0000
++++ Makefile.in
+@@ -761,7 +761,7 @@ generate_ver = ver="`{ $(srcdir)/scripts
+ CLEANFILES = src/version.h .remake-version-h src/builtin.inc \
+       src/config_opts.inc jq.1
+ jq_SOURCES = src/main.c src/version.h
+-jq_LDFLAGS = -static-libtool-libs $(am__append_9)
++jq_LDFLAGS = $(am__append_9)
+ jq_LDADD = libjq.la -lm $(am__append_8)
+ 
+ ### Tests (make check)



Home | Main Index | Thread Index | Old Index