Source: haversine
Version: 2.9.0-1
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lu...@debian.org
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;users=lu...@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20250414&fusertaguser=lu...@debian.org&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.

Reply via email to