Source: haversine
Version: 2.9.0-1
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: [email protected]
Usertags: ftbfs-20250414 ftbfs-trixie
Hi,
During a rebuild of all packages in testing (trixie), your package failed
to build on i386.
Relevant part (hopefully):
> 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
> dh_auto_build -O--buildsystem=pybuild
> I: pybuild plugin_pyproject:129: Building wheel for python3.13 with "build"
> module
> I: pybuild base:311: python3.13 -m build --skip-dependency-check
> --no-isolation --wheel --outdir
> /build/reproducible-path/haversine-2.9.0/.pybuild/cpython3_3.13_haversine
> * Building wheel...
> running bdist_wheel
> /usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py:124:
> SetuptoolsDeprecationWarning: bdist_wheel.universal is deprecated
> !!
>
>
> ********************************************************************************
> With Python 2.7 end-of-life, support for building universal wheels
> (i.e., wheels that support both Python 2 and Python 3)
> is being obviated.
> Please discontinue using this option, or if you still need it,
> file an issue with pypa/setuptools describing your use case.
>
> By 2025-Aug-30, you need to update your project and remove deprecated
> calls
> or your builds will no longer be supported.
>
> ********************************************************************************
>
> !!
> self.finalize_options()
> running build
> running build_py
> creating build/lib/haversine
> copying haversine/haversine.py -> build/lib/haversine
> copying haversine/__init__.py -> build/lib/haversine
> running egg_info
> creating haversine.egg-info
> writing haversine.egg-info/PKG-INFO
> writing dependency_links to haversine.egg-info/dependency_links.txt
> writing top-level names to haversine.egg-info/top_level.txt
> writing manifest file 'haversine.egg-info/SOURCES.txt'
> reading manifest file 'haversine.egg-info/SOURCES.txt'
> adding license file 'LICENSE'
> writing manifest file 'haversine.egg-info/SOURCES.txt'
> installing to build/bdist.linux-i686/wheel
> running install
> running install_lib
> creating build/bdist.linux-i686/wheel
> creating build/bdist.linux-i686/wheel/haversine
> copying build/lib/haversine/haversine.py ->
> build/bdist.linux-i686/wheel/./haversine
> copying build/lib/haversine/__init__.py ->
> build/bdist.linux-i686/wheel/./haversine
> running install_egg_info
> Copying haversine.egg-info to
> build/bdist.linux-i686/wheel/./haversine-2.9.0.egg-info
> running install_scripts
> creating build/bdist.linux-i686/wheel/haversine-2.9.0.dist-info/WHEEL
> creating
> '/build/reproducible-path/haversine-2.9.0/.pybuild/cpython3_3.13_haversine/.tmp-ngh8mwsh/haversine-2.9.0-py2.py3-none-any.whl'
> and adding 'build/bdist.linux-i686/wheel' to it
> adding 'haversine/__init__.py'
> adding 'haversine/haversine.py'
> adding 'haversine-2.9.0.dist-info/LICENSE'
> adding 'haversine-2.9.0.dist-info/METADATA'
> adding 'haversine-2.9.0.dist-info/WHEEL'
> adding 'haversine-2.9.0.dist-info/top_level.txt'
> adding 'haversine-2.9.0.dist-info/RECORD'
> removing build/bdist.linux-i686/wheel
> Successfully built haversine-2.9.0-py2.py3-none-any.whl
> I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with
> "installer" module
> dh_auto_test -O--buildsystem=pybuild
> I: pybuild base:311: cd
> /build/reproducible-path/haversine-2.9.0/.pybuild/cpython3_3.13_haversine/build;
> python3.13 -m pytest tests -k "not test_inverse_haversine"
> ============================= test session starts
> ==============================
> platform linux -- Python 3.13.2, pytest-8.3.5, pluggy-1.5.0
> rootdir: /build/reproducible-path/haversine-2.9.0
> plugins: typeguard-4.4.2
> collected 76 items / 24 deselected / 52 selected
>
> tests/test_haversine.py ........................... [
> 51%]
> tests/test_haversine_vector.py FFF.............. [
> 84%]
> tests/test_performance.py ...s...s
> [100%]
>
> =================================== FAILURES
> ===================================
> ________________________________ test_pair[km]
> _________________________________
>
> unit = <Unit.KILOMETERS: 'km'>
>
> @pytest.mark.parametrize(
> 'unit', [Unit.KILOMETERS, Unit.METERS, Unit.INCHES]
> )
> def test_pair(unit):
> def test_lyon_paris(unit):
> expected_lyon_paris = EXPECTED_LYON_PARIS[unit]
> assert haversine_vector(LYON, PARIS, unit=unit) ==
> expected_lyon_paris
> assert isinstance(unit.value, str)
> assert haversine_vector(
> LYON, PARIS, unit=unit.value) == expected_lyon_paris
>
> > return test_lyon_paris(unit)
>
> tests/test_haversine_vector.py:19:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> unit = <Unit.KILOMETERS: 'km'>
>
> def test_lyon_paris(unit):
> expected_lyon_paris = EXPECTED_LYON_PARIS[unit]
> > assert haversine_vector(LYON, PARIS, unit=unit) == expected_lyon_paris
> E AssertionError: assert array([392.21725956]) == 392.2172595594006
> E + where array([392.21725956]) = haversine_vector((45.7597, 4.8422),
> (48.8567, 2.3508), unit=<Unit.KILOMETERS: 'km'>)
>
> tests/test_haversine_vector.py:14: AssertionError
> _________________________________ test_pair[m]
> _________________________________
>
> unit = <Unit.METERS: 'm'>
>
> @pytest.mark.parametrize(
> 'unit', [Unit.KILOMETERS, Unit.METERS, Unit.INCHES]
> )
> def test_pair(unit):
> def test_lyon_paris(unit):
> expected_lyon_paris = EXPECTED_LYON_PARIS[unit]
> assert haversine_vector(LYON, PARIS, unit=unit) ==
> expected_lyon_paris
> assert isinstance(unit.value, str)
> assert haversine_vector(
> LYON, PARIS, unit=unit.value) == expected_lyon_paris
>
> > return test_lyon_paris(unit)
>
> tests/test_haversine_vector.py:19:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> unit = <Unit.METERS: 'm'>
>
> def test_lyon_paris(unit):
> expected_lyon_paris = EXPECTED_LYON_PARIS[unit]
> > assert haversine_vector(LYON, PARIS, unit=unit) == expected_lyon_paris
> E AssertionError: assert array([392217.2595594]) == 392217.2595594006
> E + where array([392217.2595594]) = haversine_vector((45.7597,
> 4.8422), (48.8567, 2.3508), unit=<Unit.METERS: 'm'>)
>
> tests/test_haversine_vector.py:14: AssertionError
> ________________________________ test_pair[in]
> _________________________________
>
> unit = <Unit.INCHES: 'in'>
>
> @pytest.mark.parametrize(
> 'unit', [Unit.KILOMETERS, Unit.METERS, Unit.INCHES]
> )
> def test_pair(unit):
> def test_lyon_paris(unit):
> expected_lyon_paris = EXPECTED_LYON_PARIS[unit]
> assert haversine_vector(LYON, PARIS, unit=unit) ==
> expected_lyon_paris
> assert isinstance(unit.value, str)
> assert haversine_vector(
> LYON, PARIS, unit=unit.value) == expected_lyon_paris
>
> > return test_lyon_paris(unit)
>
> tests/test_haversine_vector.py:19:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> unit = <Unit.INCHES: 'in'>
>
> def test_lyon_paris(unit):
> expected_lyon_paris = EXPECTED_LYON_PARIS[unit]
> > assert haversine_vector(LYON, PARIS, unit=unit) == expected_lyon_paris
> E AssertionError: assert array([15441624.39210257]) ==
> 15441624.392102592
> E + where array([15441624.39210257]) = haversine_vector((45.7597,
> 4.8422), (48.8567, 2.3508), unit=<Unit.INCHES: 'in'>)
>
> tests/test_haversine_vector.py:14: AssertionError
> =========================== short test summary info
> ============================
> FAILED tests/test_haversine_vector.py::test_pair[km] - AssertionError:
> assert...
> FAILED tests/test_haversine_vector.py::test_pair[m] - AssertionError: assert
> ...
> FAILED tests/test_haversine_vector.py::test_pair[in] - AssertionError:
> assert...
> =========== 3 failed, 47 passed, 2 skipped, 24 deselected in 12.89s
> ============
> E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd
> /build/reproducible-path/haversine-2.9.0/.pybuild/cpython3_3.13_haversine/build;
> python3.13 -m pytest tests -k "not test_inverse_haversine"
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13
> returned exit code 13
The full build log is available from:
http://qa-logs.debian.net/2025/04/14/haversine_2.9.0-1_testing-i386.log
All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20250414;[email protected]
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20250414&[email protected]&allbugs=1&cseverity=1&ctags=1&caffected=1#results
A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects
If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.