Package: 0ad
Version: 0.0.26-3
Severity: normal

If the user has python3-setuptools, version 58.3.0 or higher, installed in a Debian sid build environment when building 0ad then build fails.

To confirm that python3-setuptools is a minimal case for reproduction of symptoms, I also tested build of 0ad without python3-setuptools, but with each of the dependency packages of python3-setuptools. In that case build was successful. I have also tested with python3-setuptools versions 58.2.0-1 and 52.0.0-4, and build of 0ad was successful with those versions. I used matching versions of python3-pkg-resources for the tests.

I think that the cause of the failure to build 0ad with python3-setuptools version >= 58.3.0 is that easyinstall was deprecated in python3-setuptools on 2021-10-22. Version 58.3.0 is the next upstream release after that.

Steps to reproduce:

# sbuild-createchroot sid /path/to/chroot/sid [debian mirror]
# cd /
# schroot -c source:sid-amd64-sbuild
# mkdir /home/myusername (replace "myusername" with your primary username outside the chroot)
  # cp -r /etc/skel/. /home/myusername
  # chown -R myusername:myusername /home/myusername
  # chmod g+ws /home/myusername
  # chmod o-rx /home/myusername
  # apt-get update
  # apt-get install --no-install-recommends python3-setuptools
(installs several packages, but the only packages that would not otherwise be installed by `apt-get build-dep 0ad` are: python3-pkg-resources python3-setuptools)
  # dpkg --status python3-setuptools | grep '^Version'
    (output is Version: 66.1.1-1)
  # dpkg --status python3-pkg-resources | grep '^Version'
    (output is Version: 66.1.1-1)
  # exit

$ sbuild -d sid-amd64-sbuild 0ad_0.0.26-3

Excerpt of output from steps to reproduce:

patching file python/mozbuild/mozbuild/preprocessor.py
patching file python/mozbuild/mozbuild/util.py
Creating Python 3 environment
/usr/lib/python3/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
created virtual environment CPython3.11.2.final.0-64 in 239ms
creator CPython3Posix(dest=/<<PKGBUILDDIR>>/libraries/source/spidermonkey/mozjs-78.6.0/build-debug/_virtualenvs/init_py3, clear=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/tmp/tmppfskju67)
    added seed packages: pip==20.2.2, setuptools==49.6.0, wheel==0.35.1
activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

[...]

Job: 0ad_0.0.26-3
Machine Architecture: amd64
Package: 0ad
Source-Version: 0.0.26-3
Status: attempted
Version: 0.0.26-3
E: Build failure (dpkg-buildpackage died)

Solutions:

Option 1. We look for a root cause and fix the bug that causes build failure if the user happens to have python3-setuptools installed. An idea would be to configure the virtualenv to use the builtin version of python3-setuptools.

Option 2. Alternatively, we add "Build-Conflicts: python3-setuptools (>= 58.3.0)" to the control file of the Debian package of 0ad.

I'll send the latter fix, probably via Salsa.

Reply via email to