Bug#1103225: ecmwflibs: FTBFS: ERROR: ecmwflibs (unittest.loader._FailedTest.ecmwflibs)

Santiago Vila sanvila at debian.org
Tue Apr 15 02:22:20 BST 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.



More information about the debian-science-maintainers mailing list