• Bug#1103225: ecmwflibs: FTBFS: ERROR: ecmwflibs (unittest.loader._Faile

    From Santiago Vila@21:1/5 to All on Tue Apr 15 03:30:01 2025
    Package: src:ecmwflibs
    Version: 2:0.6.3-2
    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=pybuild
    debian/rules override_dh_auto_clean
    make[1]: Entering directory '/<<PKGBUILDDIR>>'
    rm -rf *.egg-info .eggs .pybuild build
    # clean up files we don't want to include
    find . -name .gitignore -exec rm {} \;
    make[1]: Leaving directory '/<<PKGBUILDDIR>>'
    dh_autoreconf_clean -O--buildsystem=pybuild
    dh_clean -O--buildsystem=pybuild
    rm -f debian/debhelper-build-stamp
    rm -rf debian/.debhelper/
    rm -f -- debian/python3-ecmwflibs.substvars debian/files
    rm -fr -- debian/python3-ecmwflibs/ debian/tmp/
    find . \( \( \
    \( -path .\*/.git -o -path .\*/.svn -o -path .\*/.bzr -o -path .\*/.hg -o -path .\*/CVS -o -path .\*/.pc -o -path .\*/_darcs \) -prune -o -type f -a \
    \( -name '#*#' -o -name '.*~' -o -name '*~' -o -name DEADJOE \
    -o -name '*.orig' -o -name '*.rej' -o -name '*.bak' \
    -o -name '.*.orig' -o -name .*.rej -o -name '.SUMS' \
    -o -name TAGS -o \( -path '*/.deps/*' -a -name '*.P' \) \
    \) -exec rm -f {} + \) -o \
    \( -type d -a \( -name autom4te.cache -o -name __pycache__ \) -prune -exec rm -rf {} + \) \)
    debian/rules binary
    dh binary --buildsystem=pybuild
    dh_update_autotools_config -O--buildsystem=pybuild
    dh_autoreconf -O--buildsystem=pybuild
    dh_auto_configure -O--buildsystem=pybuild
    pybuild --configure -i python{version} -p 3.13
    I: pybuild base:311: python3.13 setup.py config
    running config
    dh_auto_build -O--buildsystem=pybuild
    pybuild --build -i python{version} -p 3.13
    I: pybuild base:311: /usr/bin/python3 setup.py build
    running build
    running build_py
    creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ecmwflibs/build/ecmwflibs copying ecmwflibs/__main__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ecmwflibs/build/ecmwflibs
    copying ecmwflibs/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ecmwflibs/build/ecmwflibs
    running egg_info
    creating ecmwflibs.egg-info
    writing ecmwflibs.egg-info/PKG-INFO
    writing dependency_links to ecmwflibs.egg-info/dependency_links.txt
    writing requirements to ecmwflibs.egg-info/requires.txt
    writing top-level names to ecmwflibs.egg-info/top_level.txt
    writing manifest file 'ecmwflibs.egg-info/SOURCES.txt'
    reading manifest file 'ecmwflibs.egg-info/SOURCES.txt'
    adding license file 'LICENSE'
    adding license file 'NOTICE.md'
    writing manifest file 'ecmwflibs.egg-info/SOURCES.txt' /usr/lib/python3/dist-packages/setuptools/command/build_py.py:212: _Warning: Package 'ecmwflibs.etc' is absent from the `packages` configuration.
    !!

    ********************************************************************************
    ############################
    # Package would be ignored #
    ############################
    Python recognizes 'ecmwflibs.etc' as an importable package[^1],
    but it is absent from setuptools' `packages` configuration.

    This leads to an ambiguous overall configuration. If you want to distribute this
    package, please make sure that 'ecmwflibs.etc' is explicitly added
    to the `packages` configuration field.

    Alternatively, you can also rely on setuptools' discovery methods
    (for example by using `find_namespace_packages(...)`/`find_namespace:`
    instead of `find_packages(...)`/`find:`).

    You can read more about "package discovery" on setuptools documentation page:

    - https://setuptools.pypa.io/en/latest/userguide/package_discovery.html

    If you don't want 'ecmwflibs.etc' to be distributed and are
    already explicitly excluding 'ecmwflibs.etc' via
    `find_namespace_packages(...)/find_namespace` or `find_packages(...)/find`,
    you can try to use `exclude_package_data`, or `include-package-data=False` in
    combination with a more fine grained `package-data` configuration.

    You can read more about "package data files" on setuptools documentation page:

    - https://setuptools.pypa.io/en/latest/userguide/datafiles.html


    [^1]: For Python, any directory (with suitable naming) can be imported,
    even if it does not contain any `.py` files.
    On the other hand, currently there is no concept of package data
    directory, all directories are treated like packages.
    ********************************************************************************

    !!
    check.warn(importable)
    copying ecmwflibs/_ecmwflibs.cc -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ecmwflibs/build/ecmwflibs
    creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ecmwflibs/build/ecmwflibs/etc copying ecmwflibs/etc/README -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ecmwflibs/build/ecmwflibs/etc
    running build_ext
    building 'ecmwflibs._ecmwflibs' extension
    creating build/temp.linux-x86_64-cpython-313/ecmwflibs
    x86_64-linux-gnu-g++ -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include -I/usr/include/magics -I/usr/include/
    python3.13 -c ecmwflibs/_ecmwflibs.cc -o build/temp.linux-x86_64-cpython-313/ecmwflibs/_ecmwflibs.o
    In file included from ecmwflibs/_ecmwflibs.cc:5: /usr/include/magics/magics_config.h:10:9: warning: "HAVE_INTTYPES_H" redefined
    10 | #define HAVE_INTTYPES_H
    | ^~~~~~~~~~~~~~~
    In file included from /usr/include/python3.13/pyconfig.h:3,
    from /usr/include/python3.13/Python.h:14,
    from ecmwflibs/_ecmwflibs.cc:2: /usr/include/x86_64-linux-gnu/python3.13/pyconfig.h:635:9: note: this is the location of the previous definition
    635 | #define HAVE_INTTYPES_H 1
    | ^~~~~~~~~~~~~~~
    /usr/include/magics/magics_config.h:37:9: warning: "HAVE_STDINT_H" redefined
    37 | #define HAVE_STDINT_H
    | ^~~~~~~~~~~~~ /usr/include/x86_64-linux-gnu/python3.13/pyconfig.h:1250:9: note: this is the location of the previous definition
    1250 | #define HAVE_STDINT_H 1
    | ^~~~~~~~~~~~~
    /usr/include/magics/magics_config.h:40:9: warning: "HAVE_STDLIB_H" redefined
    40 | #define HAVE_STDLIB_H
    | ^~~~~~~~~~~~~ /usr/include/x86_64-linux-gnu/python3.13/pyconfig.h:1256:9: note: this is the location of the previous definition
    1256 | #define HAVE_STDLIB_H 1
    | ^~~~~~~~~~~~~
    /usr/include/magics/magics_config.h:43:9: warning: "HAVE_STRINGS_H" redefined
    43 | #define HAVE_STRINGS_H
    | ^~~~~~~~~~~~~~ /usr/include/x86_64-linux-gnu/python3.13/pyconfig.h:1265:9: note: this is the location of the previous definition
    1265 | #define HAVE_STRINGS_H 1
    | ^~~~~~~~~~~~~~
    /usr/include/magics/magics_config.h:46:9: warning: "HAVE_STRING_H" redefined
    46 | #define HAVE_STRING_H
    | ^~~~~~~~~~~~~ /usr/include/x86_64-linux-gnu/python3.13/pyconfig.h:1268:9: note: this is the location of the previous definition
    1268 | #define HAVE_STRING_H 1
    | ^~~~~~~~~~~~~
    /usr/include/magics/magics_config.h:49:9: warning: "HAVE_SYS_STAT_H" redefined
    49 | #define HAVE_SYS_STAT_H
    | ^~~~~~~~~~~~~~~ /usr/include/x86_64-linux-gnu/python3.13/pyconfig.h:1417:9: note: this is the location of the previous definition
    1417 | #define HAVE_SYS_STAT_H 1
    | ^~~~~~~~~~~~~~~
    /usr/include/magics/magics_config.h:52:9: warning: "HAVE_SYS_TYPES_H" redefined
    52 | #define HAVE_SYS_TYPES_H
    | ^~~~~~~~~~~~~~~~ /usr/include/x86_64-linux-gnu/python3.13/pyconfig.h:1441:9: note: this is the location of the previous definition
    1441 | #define HAVE_SYS_TYPES_H 1
    | ^~~~~~~~~~~~~~~~
    /usr/include/magics/magics_config.h:55:9: warning: "HAVE_UNISTD_H" redefined
    55 | #define HAVE_UNISTD_H
    | ^~~~~~~~~~~~~ /usr/include/x86_64-linux-gnu/python3.13/pyconfig.h:1512:9: note: this is the location of the previous definition
    1512 | #define HAVE_UNISTD_H 1
    | ^~~~~~~~~~~~~
    x86_64-linux-gnu-g++ -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR [too-long-redacted] inux-gnu.so -Wl,-rpath,/usr/lib
    dh_auto_test -O--buildsystem=pybuild
    pybuild --test -i python{version} -p 3.13
    I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ecmwflibs/build; python3.13 -m unittest discover -v
    /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ecmwflibs/build/ecmwflibs/__init__.py:82: UserWarning: /lib/x86_64-linux-gnu/libodccore.so.0d: undefined symbol: _ZN5eckit14NotImplementedC1ERKNS_12CodeLocationE
    warnings.warn(str(e))
    ecmwflibs (unittest.loader._FailedTest.ecmwflibs) ... ERROR

    ======================================================================
    ERROR: ecmwflibs (unittest.loader._FailedTest.ecmwflibs) ---------------------------------------------------------------------- ImportError: Failed to import test module: ecmwflibs
    Traceback (most recent call last):
    File "/usr/lib/python3.13/unittest/loader.py", line 429, in _find_test_path
    package = self._get_module_from_name(name)
    File "/usr/lib/python3.13/unittest/loader.py", line 339, in _get_module_from_name
    __import__(name)
    ~~~~~~~~~~^^^^^^
    File "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ecmwflibs/build/ecmwflibs/__init__.py", line 79, in <module>
    from ._ecmwflibs import versions as _versions
    ImportError: /lib/x86_64-linux-gnu/libodccore.so.0d: undefined symbol: _ZN5eckit14NotImplementedC1ERKNS_12CodeLocationE


    ----------------------------------------------------------------------
    Ran 1 test in 0.000s

    FAILED (errors=1)
    E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ecmwflibs/build; python3.13 -m unittest discover -v
    rm -fr -- /tmp/dh-xdg-rundir-9keinmmd
    dh_auto_test: error: pybuild --test -i python{version} -p 3.13 returned exit code 13
    make: *** [debian/rules:10: 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:ecmwflibs, 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)