Moin,
Am 02.06.25 um 13:59 schrieb Alexander Dahl:
> Moin,
>
> Am Mon, Jun 02, 2025 at 12:30:56PM +0200 schrieb Alexander Dahl via ptxdist:
>> 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`
I can not remember why I changed this. Probably it accidentally happened
while trying to fix compilation or linking issues.
>> 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?
Onigurama is need for regexp support.
Without this, match/test/sub and related functions are not available.
> Maybe that lib could be put into a separate package like buildroot or
> Debian have it? Might simplify the build and the license issue here.
>
> A
Sounds reasonable.
>>
>> 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 ?
That depends on whether someone needs regexp support.
Maybe a version with --without-oniguruma (and therefore, without regexp
support) is a way to go until someone really needs this and/or has time
to fix the linking problems.
I might give it a try, but as I'm busy at the moment, not too soon.
Andreas
>> 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
>>
>>