Hello,
jq 1.8.0 [1] was announced yesterday and fixes some security issues.
When trying to upgrade the package I noticed several things:
1. when I introduced the jq package back in 2018, ./configure was called
with `--without-oniguruma`
2. that was silently dropped by Andreas with the version bump to 1.7 two
years ago, and from there libonig was installed to the target
3. the version bump to 1.7.1 brought back the configure parameter like
this: `--with-oniguruma=prefix`
The attached patch accounts for that extra lib and adds its license.
Now after upgrading to jq v1.8.0 I get linker errors I don't understand
(see below), and I have no time to further investigate this.
(Maybe this is related to my old ptxdist version? Same failing result
with 2024.05.0 and 2024.11.0.)
liboniguruma is an abandoned regex library. Is it really necessary for
us? What extra features does jq provide if compiled with that lib?
If it is really necessary, maybe someone else wants to jump in for that
version bump and fix the linker problems, otherwise we could change back
to --without-oniguruma ?
Greets
Alex
Output of `ptxdist compile jq` with jq 1.8.0:
libtool: link: /usr/bin/grep -E -e "^j[qv]_" ".libs/libjq.exp" >
".libs/libjq.expT"
libtool: link: mv -f ".libs/libjq.expT" ".libs/libjq.exp"
libtool: link: echo "{ global:" > .libs/libjq.ver
libtool: link: cat .libs/libjq.exp |
/usr/local/lib/ptxdist-2024.05.0/bin/sed -e "s/\(.*\)/\1;/" >> .libs/libjq.ver
libtool: link: echo "local: *; };" >> .libs/libjq.ver
libtool: link: arm-v5te-linux-gnueabi-gcc -shared -fPIC -DPIC
src/.libs/builtin.o src/.libs/bytecode.o src/.libs/compile.o
src/.libs/execute.o src/.libs/jq_test.o src/.libs/jv.o src/.libs/jv_alloc.o
src/.libs/jv_aux.o src/.libs/jv_dtoa.o src/.libs/jv_file.o src/.libs/jv_parse.o
src/.libs/jv_print.o src/.libs/jv_unicode.o src/.libs/linker.o
src/.libs/locfile.o src/.libs/util.o src/.libs/jv_dtoa_tsd.o
vendor/decNumber/.libs/decContext.o vendor/decNumber/.libs/decNumber.o
src/.libs/lexer.o src/.libs/parser.o -L./vendor/oniguruma/src -lm
vendor/oniguruma/src/.libs/libonig.so -lpthread -g -O2 -Wl,-rpath -Wl,/usr/lib
-pthread -Wl,-soname -Wl,libjq.so.1 -Wl,-version-script -Wl,.libs/libjq.ver
-o .libs/libjq.so.1.0.4
libtool: link: (cd ".libs" && rm -f "libjq.so.1" && ln -s "libjq.so.1.0.4"
"libjq.so.1")
libtool: link: (cd ".libs" && rm -f "libjq.so" && ln -s "libjq.so.1.0.4"
"libjq.so")
libtool: link: ( cd ".libs" && rm -f "libjq.la" && ln -s "../libjq.la"
"libjq.la" )
/bin/bash ./libtool --tag=CC --mode=link arm-v5te-linux-gnueabi-gcc
-Wextra -Wall -Wno-unused-parameter -Wno-unused-function -Woverlength-strings
-Wstrict-prototypes -I./vendor/oniguruma/src -g -O2 -pthread -o jq
src/main.o libjq.la -lm -lpthread
libtool: link: arm-v5te-linux-gnueabi-gcc -Wextra -Wall
-Wno-unused-parameter -Wno-unused-function -Woverlength-strings
-Wstrict-prototypes -I./vendor/oniguruma/src -g -O2 -o jq src/main.o
./.libs/libjq.so -lm -lpthread -pthread
/opt/OSELAS.Toolchain-2023.07.1/arm-v5te-linux-gnueabi/gcc-13.2.1-glibc-2.37-binutils-2.40-kernel-6.3.6-sanitized/lib/gcc/arm-v5te-linux-gnueabi/13.2.1/../../../../arm-v5te-linux-gnueabi/bin/ld:
warning: libonig.so.5, needed by ./.libs/libjq.so, not found (try using -rpath
or -rpath-link)
/opt/OSELAS.Toolchain-2023.07.1/arm-v5te-linux-gnueabi/gcc-13.2.1-glibc-2.37-binutils-2.40-kernel-6.3.6-sanitized/lib/gcc/arm-v5te-linux-gnueabi/13.2.1/../../../../arm-v5te-linux-gnueabi/bin/ld:
./.libs/libjq.so: undefined reference to `onig_error_code_to_str'
/opt/OSELAS.Toolchain-2023.07.1/arm-v5te-linux-gnueabi/gcc-13.2.1-glibc-2.37-binutils-2.40-kernel-6.3.6-sanitized/lib/gcc/arm-v5te-linux-gnueabi/13.2.1/../../../../arm-v5te-linux-gnueabi/bin/ld:
./.libs/libjq.so: undefined reference to `onig_free'
/opt/OSELAS.Toolchain-2023.07.1/arm-v5te-linux-gnueabi/gcc-13.2.1-glibc-2.37-binutils-2.40-kernel-6.3.6-sanitized/lib/gcc/arm-v5te-linux-gnueabi/13.2.1/../../../../arm-v5te-linux-gnueabi/bin/ld:
./.libs/libjq.so: undefined reference to `onig_region_free'
/opt/OSELAS.Toolchain-2023.07.1/arm-v5te-linux-gnueabi/gcc-13.2.1-glibc-2.37-binutils-2.40-kernel-6.3.6-sanitized/lib/gcc/arm-v5te-linux-gnueabi/13.2.1/../../../../arm-v5te-linux-gnueabi/bin/ld:
./.libs/libjq.so: undefined reference to `onig_new'
/opt/OSELAS.Toolchain-2023.07.1/arm-v5te-linux-gnueabi/gcc-13.2.1-glibc-2.37-binutils-2.40-kernel-6.3.6-sanitized/lib/gcc/arm-v5te-linux-gnueabi/13.2.1/../../../../arm-v5te-linux-gnueabi/bin/ld:
./.libs/libjq.so: undefined reference to `OnigSyntaxPerl_NG'
/opt/OSELAS.Toolchain-2023.07.1/arm-v5te-linux-gnueabi/gcc-13.2.1-glibc-2.37-binutils-2.40-kernel-6.3.6-sanitized/lib/gcc/arm-v5te-linux-gnueabi/13.2.1/../../../../arm-v5te-linux-gnueabi/bin/ld:
./.libs/libjq.so: undefined reference to `onig_foreach_name'
/opt/OSELAS.Toolchain-2023.07.1/arm-v5te-linux-gnueabi/gcc-13.2.1-glibc-2.37-binutils-2.40-kernel-6.3.6-sanitized/lib/gcc/arm-v5te-linux-gnueabi/13.2.1/../../../../arm-v5te-linux-gnueabi/bin/ld:
./.libs/libjq.so: undefined reference to `onig_search'
/opt/OSELAS.Toolchain-2023.07.1/arm-v5te-linux-gnueabi/gcc-13.2.1-glibc-2.37-binutils-2.40-kernel-6.3.6-sanitized/lib/gcc/arm-v5te-linux-gnueabi/13.2.1/../../../../arm-v5te-linux-gnueabi/bin/ld:
./.libs/libjq.so: undefined reference to `OnigEncodingUTF8'
/opt/OSELAS.Toolchain-2023.07.1/arm-v5te-linux-gnueabi/gcc-13.2.1-glibc-2.37-binutils-2.40-kernel-6.3.6-sanitized/lib/gcc/arm-v5te-linux-gnueabi/13.2.1/../../../../arm-v5te-linux-gnueabi/bin/ld:
./.libs/libjq.so: undefined reference to `onig_region_new'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:990: jq] Error 1
[1] https://github.com/jqlang/jq/releases/tag/jq-1.8.0
Alexander Dahl (1):
jq: Add liboniguruma license
rules/jq.make | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
base-commit: 31866e0b9c1215fa5e8b4dc8573adc8feb7428aa
--
2.39.5