• Bug#1102774: rpy2: FTBFS: /usr/bin/ld: cannot find -lzstd: No such file

    From Santiago Vila@21:1/5 to All on Sat Apr 12 18:30:03 2025
    Package: src:rpy2
    Version: 3.5.17-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 --with python3 --buildsystem=pybuild
    debian/rules override_dh_auto_clean
    make[1]: Entering directory '/<<PKGBUILDDIR>>'
    echo "Skipping"
    Skipping
    make[1]: Leaving directory '/<<PKGBUILDDIR>>'
    dh_autoreconf_clean -O--buildsystem=pybuild
    debian/rules override_dh_clean
    make[1]: Entering directory '/<<PKGBUILDDIR>>'
    dh_clean
    make[1]: Leaving directory '/<<PKGBUILDDIR>>'
    debian/rules binary
    dh binary --with python3 --buildsystem=pybuild
    dh_update_autotools_config -O--buildsystem=pybuild
    dh_autoreconf -O--buildsystem=pybuild
    dh_auto_configure -O--buildsystem=pybuild
    I: pybuild base:311: python3.13 setup.py config
    /usr/bin/ld: cannot find -lzstd: No such file or directory
    collect2: error: ld returned 1 exit status
    Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/setuptools/_distutils/spawn.py", line 70, in spawn
    subprocess.check_call(cmd, env=_inject_macos_ver(env))
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3.13/subprocess.py", line 419, in check_call
    raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['/usr/bin/x86_64-linux-gnu-gcc', '/tmp/tmp_pw_r_0gujo9hr/tmp/tmp_pw_r_0gujo9hr/test_pw_r.o', '-L/usr/lib/R/lib', '-lR', '-lpcre2-8', '-ldeflate', '-lzstd', '-llzma', '-lbz2', '-lz', '-ltirpc', '-lrt', '-ldl', '-lm'
    , '-licuuc', '-licui18n', '-o', '/tmp/tmp_pw_r_0gujo9hr/test_pw_r']' returned non-zero exit status 1.

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/setuptools/_distutils/unixccompiler.py", line 287, in link
    self.spawn(linker + ld_args)
    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/setuptools/_distutils/ccompiler.py", line 1052, in spawn
    spawn(cmd, dry_run=self.dry_run, **kwargs)
    ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/setuptools/_distutils/spawn.py", line 76, in spawn
    raise DistutilsExecError(
    f"command {_debug(cmd)!r} failed with exit code {err.returncode}"
    ) from err
    distutils.errors.DistutilsExecError: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "/<<PKGBUILDDIR>>/setup.py", line 141, in <module>
    c_extension_status = get_r_c_extension_status(
    r_home,
    force_ok = os.environ.get('RPY2_API_FORCE') == 'True'
    )
    File "/<<PKGBUILDDIR>>/setup.py", line 121, in get_r_c_extension_status
    status = get_c_extension_status(libraries=c_ext.libraries,
    include_dirs=c_ext.include_dirs,
    library_dirs=c_ext.library_dirs)
    File "/<<PKGBUILDDIR>>/setup.py", line 82, in get_c_extension_status
    compiler.link_executable(
    ~~~~~~~~~~~~~~~~~~~~~~~~^
    compiler.compile([src_file], output_dir=tmp_dir,
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<2 lines>...
    libraries=libraries,
    ^^^^^^^^^^^^^^^^^^^^
    library_dirs=library_dirs)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/setuptools/_distutils/ccompiler.py", line 788, in link_executable
    self.link(
    ~~~~~~~~~^
    CCompiler.EXECUTABLE,
    ^^^^^^^^^^^^^^^^^^^^^
    ...<11 lines>...
    target_lang,
    ^^^^^^^^^^^^
    )
    ^
    File "/usr/lib/python3/dist-packages/setuptools/_distutils/unixccompiler.py", line 289, in link
    raise LinkError(msg)
    distutils.errors.LinkError: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
    E: pybuild pybuild:389: configure: plugin distutils failed with: exit code=1: python3.13 setup.py config
    dh_auto_configure: error: pybuild --configure -i python{version} -p 3.13 returned exit code 13
    make: *** [debian/rules:19: 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:rpy2, so that this is still
    visible in the BTS web page for this package.

    Thanks.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dirk Eddelbuettel@21:1/5 to Santiago Vila on Sat Apr 12 18:40:01 2025
    On 12 April 2025 at 16:21, Santiago Vila wrote:
    | Package: src:rpy2
    | Version: 3.5.17-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 --with python3 --buildsystem=pybuild
    | debian/rules override_dh_auto_clean
    | make[1]: Entering directory '/<<PKGBUILDDIR>>'
    | echo "Skipping"
    | Skipping
    | make[1]: Leaving directory '/<<PKGBUILDDIR>>'
    | dh_autoreconf_clean -O--buildsystem=pybuild
    | debian/rules override_dh_clean
    | make[1]: Entering directory '/<<PKGBUILDDIR>>'
    | dh_clean
    | make[1]: Leaving directory '/<<PKGBUILDDIR>>'
    | debian/rules binary
    | dh binary --with python3 --buildsystem=pybuild
    | dh_update_autotools_config -O--buildsystem=pybuild
    | dh_autoreconf -O--buildsystem=pybuild
    | dh_auto_configure -O--buildsystem=pybuild
    | I: pybuild base:311: python3.13 setup.py config
    | /usr/bin/ld: cannot find -lzstd: No such file or directory

    Noted. I will look into it.

    Thanks, Dirk

    | collect2: error: ld returned 1 exit status
    | Traceback (most recent call last):
    | File "/usr/lib/python3/dist-packages/setuptools/_distutils/spawn.py", line 70, in spawn
    | subprocess.check_call(cmd, env=_inject_macos_ver(env))
    | ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    | File "/usr/lib/python3.13/subprocess.py", line 419, in check_call
    | raise CalledProcessError(retcode, cmd)
    | subprocess.CalledProcessError: Command '['/usr/bin/x86_64-linux-gnu-gcc', '/tmp/tmp_pw_r_0gujo9hr/tmp/tmp_pw_r_0gujo9hr/test_pw_r.o', '-L/usr/lib/R/lib', '-lR', '-lpcre2-8', '-ldeflate', '-lzstd', '-llzma', '-lbz2', '-lz', '-ltirpc', '-lrt', '-ldl', '-
    lm', '-licuuc', '-licui18n', '-o', '/tmp/tmp_pw_r_0gujo9hr/test_pw_r']' returned non-zero exit status 1.
    |
    | The above exception was the direct cause of the following exception:
    |
    | Traceback (most recent call last):
    | File "/usr/lib/python3/dist-packages/setuptools/_distutils/unixccompiler.py", line 287, in link
    | self.spawn(linker + ld_args)
    | ~~~~~~~~~~^^^^^^^^^^^^^^^^^^
    | File "/usr/lib/python3/dist-packages/setuptools/_distutils/ccompiler.py", line 1052, in spawn
    | spawn(cmd, dry_run=self.dry_run, **kwargs)
    | ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    | File "/usr/lib/python3/dist-packages/setuptools/_distutils/spawn.py", line 76, in spawn
    | raise DistutilsExecError(
    | f"command {_debug(cmd)!r} failed with exit code {err.returncode}"
    | ) from err
    | distutils.errors.DistutilsExecError: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
    |
    | During handling of the above exception, another exception occurred:
    |
    | Traceback (most recent call last):
    | File "/<<PKGBUILDDIR>>/setup.py", line 141, in <module>
    | c_extension_status = get_r_c_extension_status(
    | r_home,
    | force_ok = os.environ.get('RPY2_API_FORCE') == 'True'
    | )
    | File "/<<PKGBUILDDIR>>/setup.py", line 121, in get_r_c_extension_status
    | status = get_c_extension_status(libraries=c_ext.libraries,
    | include_dirs=c_ext.include_dirs,
    | library_dirs=c_ext.library_dirs)
    | File "/<<PKGBUILDDIR>>/setup.py", line 82, in get_c_extension_status
    | compiler.link_executable(
    | ~~~~~~~~~~~~~~~~~~~~~~~~^
    | compiler.compile([src_file], output_dir=tmp_dir,
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    | ...<2 lines>...
    | libraries=libraries,
    | ^^^^^^^^^^^^^^^^^^^^
    | library_dirs=library_dirs)
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^
    | File "/usr/lib/python3/dist-packages/setuptools/_distutils/ccompiler.py", line 788, in link_executable
    | self.link(
    | ~~~~~~~~~^
    | CCompiler.EXECUTABLE,
    | ^^^^^^^^^^^^^^^^^^^^^
    | ...<11 lines>...
    | target_lang,
    | ^^^^^^^^^^^^
    | )
    | ^
    | File "/usr/lib/python3/dist-packages/setuptools/_distutils/unixccompiler.py", line 289, in link
    | raise LinkError(msg)
    | distutils.errors.LinkError: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
    | E: pybuild pybuild:389: configure: plugin distutils failed with: exit code=1: python3.13 setup.py config
    | dh_auto_configure: error: pybuild --configure -i python{version} -p 3.13 returned exit code 13
    | make: *** [debian/rules:19: 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:rpy2, so that this is still
    | visible in the BTS web page for this package.
    |
    | Thanks.

    --
    dirk.eddelbuettel.com | @eddelbuettel | [email protected]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Debian Bug Tracking System@21:1/5 to All on Sat Apr 12 23:00:01 2025
    This is a multi-part message in MIME format...

    Your message dated Sat, 12 Apr 2025 20:49:12 +0000
    with message-id <[email protected]>
    and subject line Bug#1102774: fixed in rpy2 3.5.17-2
    has caused the Debian Bug report #1102774,
    regarding rpy2: FTBFS: /usr/bin/ld: cannot find -lzstd: No such file or directory
    to be marked as done.

    This means that you claim that the problem has been dealt with.
    If this is not the case it is now your responsibility to reopen the
    Bug report if necessary, and/or fix the problem forthwith.

    (NB: If you are a system administrator and have no idea what this
    message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact [email protected]
    immediately.)


    --
    1102774: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1102774
    Debian Bug Tracking System
    Contact [email protected] with problems

    Received: (at submit) by bugs.debian.org; 12 Apr 2025 16:21:14 +0000 X-Spam-Checker-Version: SpamAssassin 3.4.6-bugs.debian.org_2005_01_02
    (2021-04-09) on buxtehude.debian.org
    X-Spam-Level:
    X-Spam-Status: No, score=-121.5 required=4.0 tests=ALL_TRUSTED,BAYES_00,
    BODY_INCLUDES_PACKAGE,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,
    DKIM_VALID_AU,DKIM_VALID_EF,FROMDEVELOPER,HAS_PACKAGE,SPF_HELO_PASS,
    SPF_NONE,USER_IN_DKIM_WELCOMELIST,USER_IN_DKIM_WHITELIST,X_DEBBUGS_CC
    autolearn=ham autolearn_force=no
    version=3.4.6-bugs.debian.org_2005_01_02
    X-Spam-Bayes: score:0.0000 Tokens: new, 76; hammy, 150; neutral, 176; spammy,
    0. spammytokens: hammytokens:0.000-+--python3, 0.000-+--trixie,
    0.000-+--pkgbuilddir, 0.000-+--PKGBUILDDIR, 0.000-+--sk:dh_auto Return-path: <[email protected]>
    Received: from mailly.debian.org ([2001:41b8:202:deb:6564:a62:52c3:4b72]:5105
  • From Santiago Vila@21:1/5 to All on Sat Apr 12 23:40:01 2025
    | Could it be the case that the right fix would be
    | to add a binary dependency on libzstd-dev to
    | one of the current build-dependencies?

    That is what I did.

    Oops, didn't notice. Sorry. Nevermind, then.

    The open question I myself have is whether R (now at 4.5.0) brought in zstd use (I think it can be use internally where available) or whether Python brought it in. I think it may be Python.

    But yes I also think about possibly adding it to r-base-dev, a (near-)virtual package ensuring an R environment.

    Thoughts?

    (Nothing to say on my side. Hope other R people who really know the stack can answer).

    Thanks a lot.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dirk Eddelbuettel@21:1/5 to Johannes Ranke on Sun Apr 13 03:20:01 2025
    On 13 April 2025 at 02:10, Johannes Ranke wrote:
    | For what it's worth, I needed to add libzstd-dev to the build dependencies of | littler while backporting it to Debian bookworm (not for bullseye). Sorry, I | have no deeper insight but that is what I experienced.
    |
    |
    | Could it be related to this R 4.5.0 NEWS entry:
    |
    |
    | - There is some support for zstd compression of tarballs in tar() and untar().
    | (This depends on OS support of libzstd or by tar.)

    It very much could be, and that is what I tried to ascertain earlier in dependencies of r-base-core, but maybe it is more subtle.

    We will tie it down though. Thank you both for continued help.

    Dirk

    |
    |
    | Cheers,
    |
    |
    | Johannes
    |
    |
    | Am Samstag, 12. April 2025, 23:26:51 CEST schrieb Santiago Vila:
    |
    | > > | Could it be the case that the right fix would be
    |
    | > > | to add a binary dependency on libzstd-dev to
    |
    | > > | one of the current build-dependencies?
    |
    | > >
    |
    | > > That is what I did.
    |
    | >
    |
    | > Oops, didn't notice. Sorry. Nevermind, then.
    |
    | >
    |
    | > > The open question I myself have is whether R (now at 4.5.0) brought in
    |
    | > > zstd
    |
    | > > use (I think it can be use internally where available) or whether Python |
    | > > brought it in. I think it may be Python.
    |
    | > >
    |
    | > > But yes I also think about possibly adding it to r-base-dev, a
    |
    | > > (near-)virtual package ensuring an R environment.
    |
    | > >
    |
    | > > Thoughts?
    |
    | >
    |
    | > (Nothing to say on my side. Hope other R people who really know the stack
    |
    | > can answer).
    |
    | >
    |
    | > Thanks a lot.
    |
    |
    |

    --
    dirk.eddelbuettel.com | @eddelbuettel | [email protected]

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Dirk Eddelbuettel@21:1/5 to Dirk Eddelbuettel on Tue Apr 15 12:50:01 2025
    On 12 April 2025 at 20:12, Dirk Eddelbuettel wrote:
    |
    | On 13 April 2025 at 02:10, Johannes Ranke wrote:
    | | For what it's worth, I needed to add libzstd-dev to the build dependencies of
    | | littler while backporting it to Debian bookworm (not for bullseye). Sorry, I
    | | have no deeper insight but that is what I experienced.
    | |
    | |
    | | Could it be related to this R 4.5.0 NEWS entry:
    | |
    | |
    | | - There is some support for zstd compression of tarballs in tar() and untar().
    | | (This depends on OS support of libzstd or by tar.)
    |
    | It very much could be, and that is what I tried to ascertain earlier in
    | dependencies of r-base-core, but maybe it is more subtle.
    |
    | We will tie it down though. Thank you both for continued help.

    It also hit rJava so I now added it as a Depends: on r-base-dev, but will likely wait for the next routine update to propagate this.

    Dirk

    --
    dirk.eddelbuettel.com | @eddelbuettel | [email protected]

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