On Wed, Oct 13, 2021 at 10:16:24AM +0100, Jonathan Dowland wrote:
Eyeballing the failures again quickly now, I think the majority of the
failures will be due to not finding the actual test utilities in an
expected place in the chroot, variations on:

   python3: can't open file
   '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/trash-put': [Errno 2]
   No such file or directory

Expanding on this a bit, the build phase runs

/usr/bin/python3 setup.py build
Which outputs the following (elided)

running build_py
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/trashcli
copying trashcli/fstab.py -> 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/trashcli
...
running build_scripts
creating build
creating build/scripts-3.9
copying and adjusting trash -> build/scripts-3.9
...

Note: the initial 'copying' lines are to a path
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build/trashcli, but the latter
ones are to just "build/scripts-3.9". And indeed, if I run

    sbuild --build-failed-commands '%SBUILD_SHELL'
I'm dropped into a shell in the build environment after the test
failure. Right now that's /build/trash-cli-Nkmibk, which has the
unpacked source at trash-cli-0.21.7.24, which corresponds to the
<<PKGBUILDDIR>> substitution in the output above.

I see the path
/build/trash-cli-Nkmibk/trash-cli-0.21.7.24/.pybuild/cpython3_3.9/build,
corresponding to the first set of "copying" lines above, and containing
"tests" and "trashcli". And I see
/build/trash-cli-Nkmibk/trash-cli-0.21.7.24/build/scripts-3.9,
containing the command-line tools, corresponding to the second set of
'copying' lines above.

When the tests are executed, the following is run

    cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9/build; python3.9 -m pytest tests

And so at the time the tests run the command line tools are not in $PWD
and tests/run_command.py::run_command constructs a path that is not
valid.

So... the question is, why does the "build_py" phase of
distutils/setuptools have the correct path, where is that being
specified? Why doesn't the "build_scripts" phase also have the correct
path, and where can we specify that?

--
👱🏻      Jonathan Dowland
✎        j...@debian.org
🔗       https://jmtd.net

Reply via email to