• Bug#1103203: rjava: FTBFS: /usr/bin/ld: cannot find -lzstd: No such fil

    From Dirk Eddelbuettel@21:1/5 to Santiago Vila on Tue Apr 15 04:10:01 2025
    On 15 April 2025 at 00:19, Santiago Vila wrote:
    | Package: src:rjava
    | Version: 1.0-11-1
    | Severity: serious
    | Tags: ftbfs trixie sid
    |
    | Dear maintainer:
    |
    | During a rebuild of all packages in unstable, your package failed to build:
    |
    | --------------------------------------------------------------------------------
    | [...]
    | debian/rules clean
    | dh clean --buildsystem R
    | dh_auto_clean -O--buildsystem=R
    | dh_autoreconf_clean -O--buildsystem=R
    | dh_clean -O--buildsystem=R
    | debian/rules binary
    | dh binary --buildsystem R
    | dh_update_autotools_config -O--buildsystem=R
    | dh_autoreconf -O--buildsystem=R
    | dh_auto_configure -O--buildsystem=R
    | dh_auto_build -O--buildsystem=R
    | dh_auto_test -O--buildsystem=R
    | create-stamp debian/debhelper-build-stamp
    | dh_testroot -O--buildsystem=R
    | dh_prep -O--buildsystem=R
    | dh_auto_install --destdir=debian/r-cran-rjava/ -O--buildsystem=R
    | I: R Package: rJava Version: 1.0-11
    | I: Building using R version 4.5.0-1
    | I: R API version: r-api-4.0
    | I: Using built-time from d/changelog: Fri, 26 Jan 2024 11:10:09 -0600
    | mkdir -p /<<PKGBUILDDIR>>/debian/r-cran-rjava/usr/lib/R/site-library
    | R CMD INSTALL -l /<<PKGBUILDDIR>>/debian/r-cran-rjava/usr/lib/R/site-library --clean . "--built-timestamp='Fri, 26 Jan 2024 11:10:09 -0600'"
    | * installing *source* package ‘rJava’ ...
    | ** this is package ‘rJava’ version ‘1.0-11’
    | files ‘configure’, ‘jri/configure’, ‘jri/src/config.h.in’, ‘jri/tools/config.guess’, ‘jri/tools/config.sub’, ‘src/config.h.in’ have the wrong MD5 checksums
    | ** using staged installation
    | checking for gcc... gcc -std=gnu23
    | checking whether the C compiler works... yes
    | checking for C compiler default output file name... a.out
    | checking for suffix of executables...
    | checking whether we are cross compiling... no
    | checking for suffix of object files... o
    | checking whether the compiler supports GNU C... yes
    | checking whether gcc -std=gnu23 accepts -g... yes
    | checking for gcc -std=gnu23 option to enable C11 features... none needed
    | checking for sys/wait.h that is POSIX.1 compatible... yes
    | checking for stdio.h... yes
    | checking for stdlib.h... yes
    | checking for string.h... yes
    | checking for inttypes.h... yes
    | checking for stdint.h... yes
    | checking for strings.h... yes
    | checking for sys/stat.h... yes
    | checking for sys/types.h... yes
    | checking for unistd.h... yes
    | checking for string.h... (cached) yes
    | checking for sys/time.h... yes
    | checking for unistd.h... (cached) yes
    | checking for an ANSI C-conforming const... yes
    | configure: checking whether gcc -std=gnu23 supports static inline...
    | yes
    | checking whether setjmp.h is POSIX.1 compatible... yes
    | checking for gcc -std=gnu23 options needed to detect all undeclared functions... none needed
    | checking whether sigsetjmp is declared... yes
    | checking whether siglongjmp is declared... yes
    | checking Java support in R... present:
    | interpreter : '/usr/lib/jvm/default-java/bin/java'
    | archiver : '/usr/lib/jvm/default-java/bin/jar'
    | compiler : '/usr/lib/jvm/default-java/bin/javac'
    | header prep.: ''
    | cpp flags : '-I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux'
    | java libs : '-L/usr/lib/jvm/default-java/lib/server -ljvm'
    | checking whether Java run-time works... yes
    | checking whether -Xrs is supported... yes
    | checking whether -Xrs will be used... yes
    | checking whether JVM will be loaded dynamically... no
    | checking whether JNI programs can be compiled... yes
    | checking whether JNI programs run... yes
    | checking JNI data types... ok
    | checking whether JRI should be compiled (autodetect)... yes
    | checking whether debugging output should be enabled... no
    | checking whether memory profiling is desired... no
    | checking whether threads support is requested... no
    | checking whether callbacks support is requested... no
    | checking whether JNI cache support is requested... no
    | checking whether headless init is enabled... no
    | checking whether JRI is requested... yes
    | configure: creating ./config.status
    | config.status: creating src/Makevars
    | config.status: creating R/zzz.R
    | config.status: creating src/config.h
    | === configuring in jri (/<<PKGBUILDDIR>>/jri)
    | configure: running /bin/bash ./configure --disable-option-checking '--prefix=/usr/local' 'CC=gcc -std=gnu23' 'CFLAGS=-g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -
    Wformat -Werror=format-security -fcf-protection' 'LDFLAGS=-Wl,-z,relro' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' --cache-file=/dev/null --srcdir=.
    | checking build system type... x86_64-pc-linux-gnu
    | checking host system type... x86_64-pc-linux-gnu
    | checking for gcc... gcc -std=gnu23
    | checking whether the C compiler works... yes
    | checking for C compiler default output file name... a.out
    | checking for suffix of executables...
    | checking whether we are cross compiling... no
    | checking for suffix of object files... o
    | checking whether the compiler supports GNU C... yes
    | checking whether gcc -std=gnu23 accepts -g... yes
    | checking for gcc -std=gnu23 option to enable C11 features... none needed
    | checking for stdio.h... yes
    | checking for stdlib.h... yes
    | checking for string.h... yes
    | checking for inttypes.h... yes
    | checking for stdint.h... yes
    | checking for strings.h... yes
    | checking for sys/stat.h... yes
    | checking for sys/types.h... yes
    | checking for unistd.h... yes
    | checking for sys/time.h... yes
    | checking for sys/types.h... (cached) yes
    | checking for sys/select.h... yes
    | checking Java version... 21.0.7-ea
    | checking Java compatibility version (integer)... 21
    | checking whether actually works... no
    | checking whether javah was replaced by javac -h... yes
    | checking for target flags... -h . -target 1.8 -source 1.8
    | checking whether Java interpreter works... checking whether JNI programs can be compiled... yes
    | checking whether JNI programs can be run... yes
    | checking JNI data types... ok
    | checking whether Rinterface.h exports R_CStackXXX variables... yes
    | checking whether Rinterface.h exports R_SignalHandlers... yes
    | configure: creating ./config.status
    | config.status: creating src/Makefile
    | config.status: creating Makefile
    | config.status: creating run
    | config.status: creating src/config.h
    | ** libs
    | using C compiler: ‘gcc (Debian 14.2.0-19) 14.2.0’
    | make[1]: Entering directory '/<<PKGBUILDDIR>>/src'
    | gcc -std=gnu23 -I"/usr/share/R/include" -DNDEBUG -I. -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -fpic -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -
    Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -c Rglue.c -o Rglue.o
    | gcc -std=gnu23 -I"/usr/share/R/include" -DNDEBUG -I. -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -fpic -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -
    Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -c arrayc.c -o arrayc.o
    | gcc -std=gnu23 -I"/usr/share/R/include" -DNDEBUG -I. -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -fpic -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -
    Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -c callJNI.c -o callJNI.o
    | gcc -std=gnu23 -I"/usr/share/R/include" -DNDEBUG -I. -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -fpic -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -
    Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -c callback.c -o callback.o
    | gcc -std=gnu23 -I"/usr/share/R/include" -DNDEBUG -I. -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -fpic -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -
    Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -c fields.c -o fields.o
    | gcc -std=gnu23 -I"/usr/share/R/include" -DNDEBUG -I. -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -fpic -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -
    Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -c init.c -o init.o
    | gcc -std=gnu23 -I"/usr/share/R/include" -DNDEBUG -I. -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -fpic -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -
    Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -c jri_glue.c -o jri_glue.o
    | gcc -std=gnu23 -I"/usr/share/R/include" -DNDEBUG -I. -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -fpic -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -
    Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -c loader.c -o loader.o
    | gcc -std=gnu23 -I"/usr/share/R/include" -DNDEBUG -I. -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -fpic -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -
    Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -c otables.c -o otables.o
    | gcc -std=gnu23 -I"/usr/share/R/include" -DNDEBUG -I. -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -fpic -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -
    Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -c rJava.c -o rJava.o
    | gcc -std=gnu23 -I"/usr/share/R/include" -DNDEBUG -I. -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -fpic -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -
    Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -c registration.c -o registration.o
    | gcc -std=gnu23 -I"/usr/share/R/include" -DNDEBUG -I. -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -fpic -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -
    Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -c rjstring.c -o rjstring.o
    | gcc -std=gnu23 -I"/usr/share/R/include" -DNDEBUG -I. -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -fpic -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -
    Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -c tools.c -o tools.o
    | gcc -std=gnu23 -shared -L/usr/lib/R/lib -Wl,-z,relro -o rJava.so Rglue.o arrayc.o callJNI.o callback.o fields.o init.o jri_glue.o loader.o otables.o rJava.o registration.o rjstring.o tools.o -L/usr/lib/jvm/default-java/lib/server -ljvm -L/usr/lib/R/lib
    -lR
    | (cd ../jri && make)
    | make[2]: Entering directory '/<<PKGBUILDDIR>>/jri'
    | make -C src JRI.jar
    | make[3]: Entering directory '/<<PKGBUILDDIR>>/jri/src'
    | /usr/lib/jvm/default-java/bin/javac -h . -target 1.8 -source 1.8 -d . ../Mutex.java ../RBool.java ../RConsoleOutputStream.java ../REXP.java ../RFactor.java ../RList.java ../RMainLoopCallbacks.java ../RVector.java ../Rengine.java ../package-info.java
    | warning: [options] bootstrap class path not set in conjunction with -source 8 | warning: [options] source value 8 is obsolete and will be removed in a future release
    | warning: [options] target value 8 is obsolete and will be removed in a future release
    | warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
    | ../REXP.java:170: warning: [removal] finalize() in Object has been deprecated and marked for removal
    | protected void finalize() throws Throwable {
    | ^
    | ../REXP.java:175: warning: [removal] finalize() in Object has been deprecated and marked for removal
    | super.finalize();
    | ^
    | Note: Some input files use unchecked or unsafe operations.
    | Note: Recompile with -Xlint:unchecked for details.
    | 6 warnings
    | if [ -n "" ]; then -d . -classpath . org.rosuda.JRI.Rengine; fi
    | gcc -std=gnu23 -c -o Rengine.o Rengine.c -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -g -Iinclude -DRIF_HAS_
    CSTACK -DRIF_HAS_RSIGHAND -DHAVE_CONFIG_H -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/lib/jvm/default-java/
    include -I/usr/lib/jvm/default-java/include/linux -fpic -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -I/usr/share/R/include -I/usr/share/R/include
    | gcc -std=gnu23 -c -o jri.o jri.c -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -g -Iinclude -DRIF_HAS_CSTACK -
    DRIF_HAS_RSIGHAND -DHAVE_CONFIG_H -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/lib/jvm/default-java/include -I/
    usr/lib/jvm/default-java/include/linux -fpic -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -I/usr/share/R/include -I/usr/share/R/include
    | gcc -std=gnu23 -c -o Rcallbacks.o Rcallbacks.c -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -g -Iinclude -DRIF_
    HAS_CSTACK -DRIF_HAS_RSIGHAND -DHAVE_CONFIG_H -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/lib/jvm/default-
    java/include -I/usr/lib/jvm/default-java/include/linux -fpic -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -I/usr/share/R/include -I/usr/share/R/include
    | gcc -std=gnu23 -c -o Rinit.o Rinit.c -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -g -Iinclude -DRIF_HAS_
    CSTACK -DRIF_HAS_RSIGHAND -DHAVE_CONFIG_H -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/lib/jvm/default-java/
    include -I/usr/lib/jvm/default-java/include/linux -fpic -I/usr/share/R/include -I/usr/share/R/include
    | gcc -std=gnu23 -c -o globals.o globals.c -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -g -Iinclude -DRIF_HAS_
    CSTACK -DRIF_HAS_RSIGHAND -DHAVE_CONFIG_H -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/lib/jvm/default-java/
    include -I/usr/lib/jvm/default-java/include/linux -fpic -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux
    | gcc -std=gnu23 -c -o rjava.o rjava.c -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -g -Iinclude -DRIF_HAS_
    CSTACK -DRIF_HAS_RSIGHAND -DHAVE_CONFIG_H -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/lib/jvm/default-java/
    include -I/usr/lib/jvm/default-java/include/linux -fpic -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux
    | gcc -std=gnu23 -c -o rjstring.o rjstring.c -g -O2 -ffile-prefix-map=/<<BUILDDIR>>/r-base-4.5.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -g -Iinclude -DRIF_HAS_
    CSTACK -DRIF_HAS_RSIGHAND -DHAVE_CONFIG_H -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I/usr/lib/jvm/default-java/
    include -I/usr/lib/jvm/default-java/include/linux -fpic -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -I/usr/share/R/include -I/usr/share/R/include
    | gcc -std=gnu23 -o libjri.so Rengine.o jri.o Rcallbacks.o Rinit.o globals.o rjava.o rjstring.o -Wl,-z,relro -Wl,-z,relro -shared -L/usr/lib/jvm/default-java/lib/server -ljvm -Wl,--export-dynamic -fopenmp -Wl,-z,relro -L/usr/lib/R/lib -lR -lpcre2-8 -
    ldeflate -lzstd -llzma -lbz2 -lz -ltirpc -lrt -ldl -lm -licuuc -licui18n
    | /usr/bin/ld: cannot find -lzstd: No such file or directory

    First rpy2, now rJava. Seems like we do need libzstd-dev exported / depended upon by r-base-dev.

    Dirk

    | collect2: error: ld returned 1 exit status
    | make[3]: *** [Makefile.all:40: libjri.so] Error 1
    | make[3]: Leaving directory '/<<PKGBUILDDIR>>/jri/src'
    | make[2]: *** [Makefile.all:19: src/JRI.jar] Error 2
    | make[2]: Leaving directory '/<<PKGBUILDDIR>>/jri'
    | make[1]: *** [Makevars:14: jri] Error 2
    | make[1]: Leaving directory '/<<PKGBUILDDIR>>/src'
    | make[1]: Entering directory '/<<PKGBUILDDIR>>/src'
    | make[1]: Leaving directory '/<<PKGBUILDDIR>>/src'
    | ERROR: compilation failed for package ‘rJava’
    | * removing ‘/<<PKGBUILDDIR>>/debian/r-cran-rjava/usr/lib/R/site-library/rJava’
    | dh_auto_install: error: R CMD INSTALL -l /<<PKGBUILDDIR>>/debian/r-cran-rjava/usr/lib/R/site-library --clean . "--built-timestamp='Fri, 26 Jan 2024 11:10:09 -0600'" returned exit code 1
    | make: *** [debian/rules:7: binary] Error 25
    | dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
    | --------------------------------------------------------------------------------
    |
    | The above is just how the build ends and not necessarily the most relevant part.
    | If required, the full build log is available here:
    |
    | https://people.debian.org/~sanvila/build-logs/202504/
    |
    | About the archive rebuild: The build was made on virtual machines from AWS,
    | using sbuild and a reduced chroot with only build-essential packages.
    |
    | If you could not reproduce the bug please contact me privately, as I
    | am willing to provide ssh access to a virtual machine where the bug is
    | fully reproducible.
    |
    | If this is really a bug in one of the build-depends, please use
    | reassign and add an affects on src:rjava, so that this is still
    | visible in the BTS web page for this package.
    |
    | Thanks.

    --
    dirk.eddelbuettel.com | @eddelbuettel | edd@debian.org

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)