Fwd: pysolid | Failed pipeline for master | 6803a875

Antonio Valentino antonio.valentino at tiscali.it
Tue Jul 2 19:55:24 BST 2024


Dear Sebastiaan,

Il 01/07/24 10:48, Sebastiaan Couwenberg ha scritto:
> On 7/1/24 8:44 AM, Antonio Valentino wrote:
>> pysolid has changed build system so scikit-build-core + cmake and it 
>> is now fully compatible with Python 3.12 (see #1069217).
>>
>> Unfortunately now the reproducibility test fails because of the 
>> lintian error tagged "file-references-package-build-path".
> 
> To help troubleshoot the reprotest failure you can enable diffoscope in 
> debian/.gitlab-ci.yml:
> 
>   variables:
>     SALSA_CI_REPROTEST_ENABLE_DIFFOSCOPE: 1
> 
>> I looked into the binary package and the issue is indeed there.
>> I did several attempts to fix it and, in particular, I ensured that 
>> the "-ffile-prefix-map=" build flag is properly set at all levels.
> 
> Using strings on the library we find:
> 
>   $ strings 
> /tmp/pysolid/usr/lib/python3/dist-packages/pysolid/solid.*.so | grep 
> '/build/'
>   /build/pysolid-0.3.3/src/pysolid/solid.for
>   /build/pysolid-0.3.3/src/pysolid/solid.for
> 
> objdump -s shows the path in the .rodata section of the binary.
> 
> The solid.for file seems to be used to convert Fortran code to Python as 
> the buildlog contains:
> 
>   /usr/bin/python3.11 -m numpy.f2py 
> /build/pysolid-0.3.3/src/pysolid/solid.for -m solid --lower
> 
> The solidmodule.c and solid-f2pywrappers.f files it generates don't 
> include the build path, which suggests its embedded in the binary by the 
> python_add_library call:
> 
>   python_add_library(
>     solid MODULE "${CMAKE_CURRENT_BINARY_DIR}/solidmodule.c"
>     "${CMAKE_CURRENT_BINARY_DIR}/solid-f2pywrappers.f"
>     "${CMAKE_CURRENT_SOURCE_DIR}/src/pysolid/solid.for" WITH_SOABI)
> 
> Reordering the source files to specify solid.for first causes the path 
> to show up at the start of the .rodata section instead of later on.
> 
>> I have no other idea about how to fix it.
>> Do you have any hint for me?
> I don't see where the source path gets turned into a constant for the 
> binary in the cmake sources, the reproducible builds people might have 
> some suggestions.
> 
> For now, I'd just include a lintian override and allow the reprotest CI 
> job to fail.
> 
> 
> Something unrelated I noticed, the test suite is missing dependencies:
> 
>   /build/pysolid/tests/grid.py
>   PYSOLID: ----------------------------------------
>   PYSOLID: datetime: 2020-12-25T14:07:44
>   PYSOLID: SNWE: (33.4666668, 33.8, -118.2, -117.7833335)
>   SOLID  : calculate solid Earth tides in east/north/up direction
>   SOLID  : shape: (36, 45), step size: -0.0092 by 0.0092 deg
>   PYSOLID: resize data to the shape of (400, 500) using order-1 spline 
> interpolation
>   save figure to /build/pysolid/tests/pic/grid.png
>   sh: 1: display: not found
> 
> The display executable is provided by imagemagick or 
> graphicsmagick-imagemagick-compat, but installing imagemagick causes the 
> build to hang on the display command.
> 
> Kind Regards,
> 
> Bas
> 

Thanks a lot.
Just uploaded the new version.

kind regards
-- 
Antonio Valentino



More information about the Pkg-grass-devel mailing list