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
>>
>>


Reply via email to