Source: mayavi2
Version: 4.8.1-5
Severity: serious
Tags: FTBFS, patch
User: debian-ri...@lists.debian.org
Usertags: riscv64
X-Debbugs-Cc: debian-ri...@lists.debian.org

Dear mayavi2 Maintainer,
The package mayavi2 build failed on arch riscv64 caused
by UnicodeDecodeError.The crucial buildd log below:
```

INFO: compile options: '-I/usr/include/python3.12 -c'
extra options: '-march=native'
Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/setup.py", line 432, in <module>
    setup(
  File "/usr/lib/python3/dist-packages/numpy/distutils/core.py", line
170, in setup
    return old_setup(**new_attr)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line
107, in setup
    return distutils.core.setup(**attrs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/setuptools/_distutils/core.py",
line 185, in setup
    return run_commands(dist)
           ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/setuptools/_distutils/core.py",
line 201, in run_commands
    dist.run_commands()
  File "/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py",
line 969, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 1233,
in run_command
    super().run_command(command)
  File "/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py",
line 988, in run_command
    cmd_obj.run()
  File "/<<PKGBUILDDIR>>/setup.py", line 288, in run
    build.build.run(self)
  File "/usr/lib/python3/dist-packages/numpy/distutils/command/build.py",
line 62, in run
    old_build.run(self)
  File "/usr/lib/python3/dist-packages/setuptools/_distutils/command/build.py",
line 131, in run
    self.run_command(cmd_name)
  File "/usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py",
line 318, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 1233,
in run_command
    super().run_command(command)
  File "/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py",
line 988, in run_command
    cmd_obj.run()
  File "/usr/lib/python3/dist-packages/numpy/distutils/command/build_ext.py",
line 163, in run
    self.compiler_opt = new_ccompiler_opt(
                        ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/numpy/distutils/ccompiler_opt.py",
line 2665, in new_ccompiler_opt
    opt = CCompilerOpt(compiler, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/numpy/distutils/ccompiler_opt.py",
line 2223, in __init__
    _CCompiler.__init__(self)
  File "/usr/lib/python3/dist-packages/numpy/distutils/ccompiler_opt.py",
line 1075, in __init__
    if self.cc_test_flags([f]):
       ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/numpy/distutils/ccompiler_opt.py",
line 908, in cache_wrap_me
    ccb = cb(self, *args, **kwargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/numpy/distutils/ccompiler_opt.py",
line 1088, in cc_test_flags
    test = self.dist_test(test_path, flags)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/numpy/distutils/ccompiler_opt.py",
line 632, in dist_test
    self.dist_compile(
  File "/usr/lib/python3/dist-packages/numpy/distutils/ccompiler_opt.py",
line 614, in dist_compile
    return ccompiler.compile(sources, extra_postargs=flags, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/numpy/distutils/ccompiler.py",
line 91, in <lambda>
    m = lambda self, *args, **kw: func(self, *args, **kw)
                                  ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/numpy/distutils/ccompiler.py",
line 369, in CCompiler_compile
    single_compile(o)
  File "/usr/lib/python3/dist-packages/numpy/distutils/ccompiler.py",
line 328, in single_compile
    self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
  File "/usr/lib/python3/dist-packages/numpy/distutils/ccompiler.py",
line 91, in <lambda>
    m = lambda self, *args, **kw: func(self, *args, **kw)
                                  ^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/numpy/distutils/unixccompiler.py",
line 54, in UnixCCompiler__compile
    self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + deps +
  File "/usr/lib/python3/dist-packages/numpy/distutils/ccompiler_opt.py",
line 756, in _dist_test_spawn
    o = subprocess.check_output(cmd, stderr=subprocess.STDOUT,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/subprocess.py", line 466, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/subprocess.py", line 550, in run
    stdout, stderr = process.communicate(input, timeout=timeout)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/subprocess.py", line 1196, in communicate
    stdout = self.stdout.read()
             ^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position
30: ordinal not in range(128)
INFO: CCompilerOpt.cache_flush[864] : write cache to path ->
/<<PKGBUILDDIR>>/build/temp.linux-riscv64-cpython-312/ccompiler_opt_cache_ext.py
Exception ignored in: <function _Cache.__del__ at 0x3fa58eb6a0>
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/numpy/distutils/ccompiler_opt.py",
line 852, in __del__
AttributeError: 'NoneType' object has no attribute 'items'
E: pybuild pybuild:389: build: plugin distutils failed with: exit
code=1: /usr/bin/python3 setup.py build
dh_auto_build: error: pybuild --build -i python{version} -p 3.12
returned exit code 13
make[1]: *** [debian/rules:21: override_dh_auto_build] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:12: binary-arch] Error 2
dpkg-buildpackage: error: debian/rules binary-arch subprocess returned
exit status 2

```
The full buildd log is here:
https://buildd.debian.org/status/fetch.php?pkg=mayavi2&arch=riscv64&ver=4.8.1-5&stamp=1719833618&raw=0
My solution to this issue:
This error is caused by incorrect locale setting on riscv64,so I can modify
debian/rules to make the locale setting match this package build
environment.The patch is in the attachment,I have tested the solution in my
machine,and it works well.Please let me know wheather this solution can be
accepted.

Attachment: fix_unicodedecodeerror_on_riscv64.patch
Description: Binary data

Reply via email to