Bug#975215: cif2cell: FTBFS: test failed

Lucas Nussbaum lucas at debian.org
Thu Nov 19 09:51:33 GMT 2020


Source: cif2cell
Version: 2.0.0a1+dfsg-3
Severity: serious
Justification: FTBFS on amd64
Tags: bullseye sid ftbfs
Usertags: ftbfs-20201119 ftbfs-bullseye

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.

Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> PYTHONPATH=. pytest-3
> ============================= test session starts ==============================
> platform linux -- Python 3.9.0+, pytest-4.6.11, py-1.9.0, pluggy-0.13.0
> rootdir: /<<PKGBUILDDIR>>
> collected 7 items
> 
> tests/test_cif2cell.py FFFFFFF                                           [100%]
> 
> =================================== FAILURES ===================================
> _ test_parse[/<<PKGBUILDDIR>>/tests/../cifs/gamma-Pu.cif] _
> 
> cif_file = '/<<PKGBUILDDIR>>/tests/../cifs/gamma-Pu.cif'
> 
>     @pytest.mark.skipif(sys.version_info < (3, 6), reason="requires python3.6 or higher")
>     @pytest.mark.parametrize("cif_file", CIF_FILES)
>     def test_parse(cif_file):
>         """Test running cif2cell on each CIF file in /cifs."""
>         if sys.version_info < (3,0) and 'SiC.cif' in cif_file:
>             pytest.skip(reason='skip test for files with unicode content under python 2.7.' +
>                'see https://github.com/torbjornbjorkman/cif2cell/issues/7')
>     
> >       result = run_cif2cell([cif_file])
> 
> tests/test_cif2cell.py:23: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/test_cif2cell.py:13: in run_cif2cell
>     return subprocess.check_output(['./binaries/cif2cell'] + args, stderr=subprocess.STDOUT).decode('utf8')
> /usr/lib/python3.9/subprocess.py:420: in check_output
>     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> input = None, capture_output = False, timeout = None, check = True
> popenargs = (['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/gamma-Pu.cif'],)
> kwargs = {'stderr': -2, 'stdout': -1}
> process = <Popen: returncode: 1 args: ['./binaries/cif2cell', '/<<BUILDDIR>>/...>
> stdout = b'Traceback (most recent call last):\n  File "/<<PKGBUILDDIR>>/./binaries/cif2cell", line ...m fractions import gcd\nImportError: cannot import name \'gcd\' from \'fractions\' (/usr/lib/python3.9/fractions.py)\n'
> stderr = None, retcode = 1
> 
>     def run(*popenargs,
>             input=None, capture_output=False, timeout=None, check=False, **kwargs):
>         """Run command with arguments and return a CompletedProcess instance.
>     
>         The returned instance will have attributes args, returncode, stdout and
>         stderr. By default, stdout and stderr are not captured, and those attributes
>         will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.
>     
>         If check is True and the exit code was non-zero, it raises a
>         CalledProcessError. The CalledProcessError object will have the return code
>         in the returncode attribute, and output & stderr attributes if those streams
>         were captured.
>     
>         If timeout is given, and the process takes too long, a TimeoutExpired
>         exception will be raised.
>     
>         There is an optional argument "input", allowing you to
>         pass bytes or a string to the subprocess's stdin.  If you use this argument
>         you may not also use the Popen constructor's "stdin" argument, as
>         it will be used internally.
>     
>         By default, all communication is in bytes, and therefore any "input" should
>         be bytes, and the stdout and stderr will be bytes. If in text mode, any
>         "input" should be a string, and stdout and stderr will be strings decoded
>         according to locale encoding, or by "encoding" if set. Text mode is
>         triggered by setting any of text, encoding, errors or universal_newlines.
>     
>         The other arguments are the same as for the Popen constructor.
>         """
>         if input is not None:
>             if kwargs.get('stdin') is not None:
>                 raise ValueError('stdin and input arguments may not both be used.')
>             kwargs['stdin'] = PIPE
>     
>         if capture_output:
>             if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
>                 raise ValueError('stdout and stderr arguments may not be used '
>                                  'with capture_output.')
>             kwargs['stdout'] = PIPE
>             kwargs['stderr'] = PIPE
>     
>         with Popen(*popenargs, **kwargs) as process:
>             try:
>                 stdout, stderr = process.communicate(input, timeout=timeout)
>             except TimeoutExpired as exc:
>                 process.kill()
>                 if _mswindows:
>                     # Windows accumulates the output in a single blocking
>                     # read() call run on child threads, with the timeout
>                     # being done in a join() on those threads.  communicate()
>                     # _after_ kill() is required to collect that and add it
>                     # to the exception.
>                     exc.stdout, exc.stderr = process.communicate()
>                 else:
>                     # POSIX _communicate already populated the output so
>                     # far into the TimeoutExpired exception.
>                     process.wait()
>                 raise
>             except:  # Including KeyboardInterrupt, communicate handled that.
>                 process.kill()
>                 # We don't call process.wait() as .__exit__ does that for us.
>                 raise
>             retcode = process.poll()
>             if check and retcode:
> >               raise CalledProcessError(retcode, process.args,
>                                          output=stdout, stderr=stderr)
> E               subprocess.CalledProcessError: Command '['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/gamma-Pu.cif']' returned non-zero exit status 1.
> 
> /usr/lib/python3.9/subprocess.py:524: CalledProcessError
> _ test_parse[/<<PKGBUILDDIR>>/tests/../cifs/BaTiO3_cubic.cif] _
> 
> cif_file = '/<<PKGBUILDDIR>>/tests/../cifs/BaTiO3_cubic.cif'
> 
>     @pytest.mark.skipif(sys.version_info < (3, 6), reason="requires python3.6 or higher")
>     @pytest.mark.parametrize("cif_file", CIF_FILES)
>     def test_parse(cif_file):
>         """Test running cif2cell on each CIF file in /cifs."""
>         if sys.version_info < (3,0) and 'SiC.cif' in cif_file:
>             pytest.skip(reason='skip test for files with unicode content under python 2.7.' +
>                'see https://github.com/torbjornbjorkman/cif2cell/issues/7')
>     
> >       result = run_cif2cell([cif_file])
> 
> tests/test_cif2cell.py:23: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/test_cif2cell.py:13: in run_cif2cell
>     return subprocess.check_output(['./binaries/cif2cell'] + args, stderr=subprocess.STDOUT).decode('utf8')
> /usr/lib/python3.9/subprocess.py:420: in check_output
>     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> input = None, capture_output = False, timeout = None, check = True
> popenargs = (['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/BaTiO3_cubic.cif'],)
> kwargs = {'stderr': -2, 'stdout': -1}
> process = <Popen: returncode: 1 args: ['./binaries/cif2cell', '/<<BUILDDIR>>/...>
> stdout = b'Traceback (most recent call last):\n  File "/<<PKGBUILDDIR>>/./binaries/cif2cell", line ...m fractions import gcd\nImportError: cannot import name \'gcd\' from \'fractions\' (/usr/lib/python3.9/fractions.py)\n'
> stderr = None, retcode = 1
> 
>     def run(*popenargs,
>             input=None, capture_output=False, timeout=None, check=False, **kwargs):
>         """Run command with arguments and return a CompletedProcess instance.
>     
>         The returned instance will have attributes args, returncode, stdout and
>         stderr. By default, stdout and stderr are not captured, and those attributes
>         will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.
>     
>         If check is True and the exit code was non-zero, it raises a
>         CalledProcessError. The CalledProcessError object will have the return code
>         in the returncode attribute, and output & stderr attributes if those streams
>         were captured.
>     
>         If timeout is given, and the process takes too long, a TimeoutExpired
>         exception will be raised.
>     
>         There is an optional argument "input", allowing you to
>         pass bytes or a string to the subprocess's stdin.  If you use this argument
>         you may not also use the Popen constructor's "stdin" argument, as
>         it will be used internally.
>     
>         By default, all communication is in bytes, and therefore any "input" should
>         be bytes, and the stdout and stderr will be bytes. If in text mode, any
>         "input" should be a string, and stdout and stderr will be strings decoded
>         according to locale encoding, or by "encoding" if set. Text mode is
>         triggered by setting any of text, encoding, errors or universal_newlines.
>     
>         The other arguments are the same as for the Popen constructor.
>         """
>         if input is not None:
>             if kwargs.get('stdin') is not None:
>                 raise ValueError('stdin and input arguments may not both be used.')
>             kwargs['stdin'] = PIPE
>     
>         if capture_output:
>             if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
>                 raise ValueError('stdout and stderr arguments may not be used '
>                                  'with capture_output.')
>             kwargs['stdout'] = PIPE
>             kwargs['stderr'] = PIPE
>     
>         with Popen(*popenargs, **kwargs) as process:
>             try:
>                 stdout, stderr = process.communicate(input, timeout=timeout)
>             except TimeoutExpired as exc:
>                 process.kill()
>                 if _mswindows:
>                     # Windows accumulates the output in a single blocking
>                     # read() call run on child threads, with the timeout
>                     # being done in a join() on those threads.  communicate()
>                     # _after_ kill() is required to collect that and add it
>                     # to the exception.
>                     exc.stdout, exc.stderr = process.communicate()
>                 else:
>                     # POSIX _communicate already populated the output so
>                     # far into the TimeoutExpired exception.
>                     process.wait()
>                 raise
>             except:  # Including KeyboardInterrupt, communicate handled that.
>                 process.kill()
>                 # We don't call process.wait() as .__exit__ does that for us.
>                 raise
>             retcode = process.poll()
>             if check and retcode:
> >               raise CalledProcessError(retcode, process.args,
>                                          output=stdout, stderr=stderr)
> E               subprocess.CalledProcessError: Command '['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/BaTiO3_cubic.cif']' returned non-zero exit status 1.
> 
> /usr/lib/python3.9/subprocess.py:524: CalledProcessError
> _ test_parse[/<<PKGBUILDDIR>>/tests/../cifs/alpha-Mn.cif] _
> 
> cif_file = '/<<PKGBUILDDIR>>/tests/../cifs/alpha-Mn.cif'
> 
>     @pytest.mark.skipif(sys.version_info < (3, 6), reason="requires python3.6 or higher")
>     @pytest.mark.parametrize("cif_file", CIF_FILES)
>     def test_parse(cif_file):
>         """Test running cif2cell on each CIF file in /cifs."""
>         if sys.version_info < (3,0) and 'SiC.cif' in cif_file:
>             pytest.skip(reason='skip test for files with unicode content under python 2.7.' +
>                'see https://github.com/torbjornbjorkman/cif2cell/issues/7')
>     
> >       result = run_cif2cell([cif_file])
> 
> tests/test_cif2cell.py:23: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/test_cif2cell.py:13: in run_cif2cell
>     return subprocess.check_output(['./binaries/cif2cell'] + args, stderr=subprocess.STDOUT).decode('utf8')
> /usr/lib/python3.9/subprocess.py:420: in check_output
>     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> input = None, capture_output = False, timeout = None, check = True
> popenargs = (['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/alpha-Mn.cif'],)
> kwargs = {'stderr': -2, 'stdout': -1}
> process = <Popen: returncode: 1 args: ['./binaries/cif2cell', '/<<BUILDDIR>>/...>
> stdout = b'Traceback (most recent call last):\n  File "/<<PKGBUILDDIR>>/./binaries/cif2cell", line ...m fractions import gcd\nImportError: cannot import name \'gcd\' from \'fractions\' (/usr/lib/python3.9/fractions.py)\n'
> stderr = None, retcode = 1
> 
>     def run(*popenargs,
>             input=None, capture_output=False, timeout=None, check=False, **kwargs):
>         """Run command with arguments and return a CompletedProcess instance.
>     
>         The returned instance will have attributes args, returncode, stdout and
>         stderr. By default, stdout and stderr are not captured, and those attributes
>         will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.
>     
>         If check is True and the exit code was non-zero, it raises a
>         CalledProcessError. The CalledProcessError object will have the return code
>         in the returncode attribute, and output & stderr attributes if those streams
>         were captured.
>     
>         If timeout is given, and the process takes too long, a TimeoutExpired
>         exception will be raised.
>     
>         There is an optional argument "input", allowing you to
>         pass bytes or a string to the subprocess's stdin.  If you use this argument
>         you may not also use the Popen constructor's "stdin" argument, as
>         it will be used internally.
>     
>         By default, all communication is in bytes, and therefore any "input" should
>         be bytes, and the stdout and stderr will be bytes. If in text mode, any
>         "input" should be a string, and stdout and stderr will be strings decoded
>         according to locale encoding, or by "encoding" if set. Text mode is
>         triggered by setting any of text, encoding, errors or universal_newlines.
>     
>         The other arguments are the same as for the Popen constructor.
>         """
>         if input is not None:
>             if kwargs.get('stdin') is not None:
>                 raise ValueError('stdin and input arguments may not both be used.')
>             kwargs['stdin'] = PIPE
>     
>         if capture_output:
>             if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
>                 raise ValueError('stdout and stderr arguments may not be used '
>                                  'with capture_output.')
>             kwargs['stdout'] = PIPE
>             kwargs['stderr'] = PIPE
>     
>         with Popen(*popenargs, **kwargs) as process:
>             try:
>                 stdout, stderr = process.communicate(input, timeout=timeout)
>             except TimeoutExpired as exc:
>                 process.kill()
>                 if _mswindows:
>                     # Windows accumulates the output in a single blocking
>                     # read() call run on child threads, with the timeout
>                     # being done in a join() on those threads.  communicate()
>                     # _after_ kill() is required to collect that and add it
>                     # to the exception.
>                     exc.stdout, exc.stderr = process.communicate()
>                 else:
>                     # POSIX _communicate already populated the output so
>                     # far into the TimeoutExpired exception.
>                     process.wait()
>                 raise
>             except:  # Including KeyboardInterrupt, communicate handled that.
>                 process.kill()
>                 # We don't call process.wait() as .__exit__ does that for us.
>                 raise
>             retcode = process.poll()
>             if check and retcode:
> >               raise CalledProcessError(retcode, process.args,
>                                          output=stdout, stderr=stderr)
> E               subprocess.CalledProcessError: Command '['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/alpha-Mn.cif']' returned non-zero exit status 1.
> 
> /usr/lib/python3.9/subprocess.py:524: CalledProcessError
> _ test_parse[/<<PKGBUILDDIR>>/tests/../cifs/anatase.cif] _
> 
> cif_file = '/<<PKGBUILDDIR>>/tests/../cifs/anatase.cif'
> 
>     @pytest.mark.skipif(sys.version_info < (3, 6), reason="requires python3.6 or higher")
>     @pytest.mark.parametrize("cif_file", CIF_FILES)
>     def test_parse(cif_file):
>         """Test running cif2cell on each CIF file in /cifs."""
>         if sys.version_info < (3,0) and 'SiC.cif' in cif_file:
>             pytest.skip(reason='skip test for files with unicode content under python 2.7.' +
>                'see https://github.com/torbjornbjorkman/cif2cell/issues/7')
>     
> >       result = run_cif2cell([cif_file])
> 
> tests/test_cif2cell.py:23: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/test_cif2cell.py:13: in run_cif2cell
>     return subprocess.check_output(['./binaries/cif2cell'] + args, stderr=subprocess.STDOUT).decode('utf8')
> /usr/lib/python3.9/subprocess.py:420: in check_output
>     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> input = None, capture_output = False, timeout = None, check = True
> popenargs = (['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/anatase.cif'],)
> kwargs = {'stderr': -2, 'stdout': -1}
> process = <Popen: returncode: 1 args: ['./binaries/cif2cell', '/<<BUILDDIR>>/...>
> stdout = b'Traceback (most recent call last):\n  File "/<<PKGBUILDDIR>>/./binaries/cif2cell", line ...m fractions import gcd\nImportError: cannot import name \'gcd\' from \'fractions\' (/usr/lib/python3.9/fractions.py)\n'
> stderr = None, retcode = 1
> 
>     def run(*popenargs,
>             input=None, capture_output=False, timeout=None, check=False, **kwargs):
>         """Run command with arguments and return a CompletedProcess instance.
>     
>         The returned instance will have attributes args, returncode, stdout and
>         stderr. By default, stdout and stderr are not captured, and those attributes
>         will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.
>     
>         If check is True and the exit code was non-zero, it raises a
>         CalledProcessError. The CalledProcessError object will have the return code
>         in the returncode attribute, and output & stderr attributes if those streams
>         were captured.
>     
>         If timeout is given, and the process takes too long, a TimeoutExpired
>         exception will be raised.
>     
>         There is an optional argument "input", allowing you to
>         pass bytes or a string to the subprocess's stdin.  If you use this argument
>         you may not also use the Popen constructor's "stdin" argument, as
>         it will be used internally.
>     
>         By default, all communication is in bytes, and therefore any "input" should
>         be bytes, and the stdout and stderr will be bytes. If in text mode, any
>         "input" should be a string, and stdout and stderr will be strings decoded
>         according to locale encoding, or by "encoding" if set. Text mode is
>         triggered by setting any of text, encoding, errors or universal_newlines.
>     
>         The other arguments are the same as for the Popen constructor.
>         """
>         if input is not None:
>             if kwargs.get('stdin') is not None:
>                 raise ValueError('stdin and input arguments may not both be used.')
>             kwargs['stdin'] = PIPE
>     
>         if capture_output:
>             if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
>                 raise ValueError('stdout and stderr arguments may not be used '
>                                  'with capture_output.')
>             kwargs['stdout'] = PIPE
>             kwargs['stderr'] = PIPE
>     
>         with Popen(*popenargs, **kwargs) as process:
>             try:
>                 stdout, stderr = process.communicate(input, timeout=timeout)
>             except TimeoutExpired as exc:
>                 process.kill()
>                 if _mswindows:
>                     # Windows accumulates the output in a single blocking
>                     # read() call run on child threads, with the timeout
>                     # being done in a join() on those threads.  communicate()
>                     # _after_ kill() is required to collect that and add it
>                     # to the exception.
>                     exc.stdout, exc.stderr = process.communicate()
>                 else:
>                     # POSIX _communicate already populated the output so
>                     # far into the TimeoutExpired exception.
>                     process.wait()
>                 raise
>             except:  # Including KeyboardInterrupt, communicate handled that.
>                 process.kill()
>                 # We don't call process.wait() as .__exit__ does that for us.
>                 raise
>             retcode = process.poll()
>             if check and retcode:
> >               raise CalledProcessError(retcode, process.args,
>                                          output=stdout, stderr=stderr)
> E               subprocess.CalledProcessError: Command '['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/anatase.cif']' returned non-zero exit status 1.
> 
> /usr/lib/python3.9/subprocess.py:524: CalledProcessError
> _ test_parse[/<<PKGBUILDDIR>>/tests/../cifs/SiC.cif] _
> 
> cif_file = '/<<PKGBUILDDIR>>/tests/../cifs/SiC.cif'
> 
>     @pytest.mark.skipif(sys.version_info < (3, 6), reason="requires python3.6 or higher")
>     @pytest.mark.parametrize("cif_file", CIF_FILES)
>     def test_parse(cif_file):
>         """Test running cif2cell on each CIF file in /cifs."""
>         if sys.version_info < (3,0) and 'SiC.cif' in cif_file:
>             pytest.skip(reason='skip test for files with unicode content under python 2.7.' +
>                'see https://github.com/torbjornbjorkman/cif2cell/issues/7')
>     
> >       result = run_cif2cell([cif_file])
> 
> tests/test_cif2cell.py:23: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/test_cif2cell.py:13: in run_cif2cell
>     return subprocess.check_output(['./binaries/cif2cell'] + args, stderr=subprocess.STDOUT).decode('utf8')
> /usr/lib/python3.9/subprocess.py:420: in check_output
>     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> input = None, capture_output = False, timeout = None, check = True
> popenargs = (['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/SiC.cif'],)
> kwargs = {'stderr': -2, 'stdout': -1}
> process = <Popen: returncode: 1 args: ['./binaries/cif2cell', '/<<BUILDDIR>>/...>
> stdout = b'Traceback (most recent call last):\n  File "/<<PKGBUILDDIR>>/./binaries/cif2cell", line ...m fractions import gcd\nImportError: cannot import name \'gcd\' from \'fractions\' (/usr/lib/python3.9/fractions.py)\n'
> stderr = None, retcode = 1
> 
>     def run(*popenargs,
>             input=None, capture_output=False, timeout=None, check=False, **kwargs):
>         """Run command with arguments and return a CompletedProcess instance.
>     
>         The returned instance will have attributes args, returncode, stdout and
>         stderr. By default, stdout and stderr are not captured, and those attributes
>         will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.
>     
>         If check is True and the exit code was non-zero, it raises a
>         CalledProcessError. The CalledProcessError object will have the return code
>         in the returncode attribute, and output & stderr attributes if those streams
>         were captured.
>     
>         If timeout is given, and the process takes too long, a TimeoutExpired
>         exception will be raised.
>     
>         There is an optional argument "input", allowing you to
>         pass bytes or a string to the subprocess's stdin.  If you use this argument
>         you may not also use the Popen constructor's "stdin" argument, as
>         it will be used internally.
>     
>         By default, all communication is in bytes, and therefore any "input" should
>         be bytes, and the stdout and stderr will be bytes. If in text mode, any
>         "input" should be a string, and stdout and stderr will be strings decoded
>         according to locale encoding, or by "encoding" if set. Text mode is
>         triggered by setting any of text, encoding, errors or universal_newlines.
>     
>         The other arguments are the same as for the Popen constructor.
>         """
>         if input is not None:
>             if kwargs.get('stdin') is not None:
>                 raise ValueError('stdin and input arguments may not both be used.')
>             kwargs['stdin'] = PIPE
>     
>         if capture_output:
>             if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
>                 raise ValueError('stdout and stderr arguments may not be used '
>                                  'with capture_output.')
>             kwargs['stdout'] = PIPE
>             kwargs['stderr'] = PIPE
>     
>         with Popen(*popenargs, **kwargs) as process:
>             try:
>                 stdout, stderr = process.communicate(input, timeout=timeout)
>             except TimeoutExpired as exc:
>                 process.kill()
>                 if _mswindows:
>                     # Windows accumulates the output in a single blocking
>                     # read() call run on child threads, with the timeout
>                     # being done in a join() on those threads.  communicate()
>                     # _after_ kill() is required to collect that and add it
>                     # to the exception.
>                     exc.stdout, exc.stderr = process.communicate()
>                 else:
>                     # POSIX _communicate already populated the output so
>                     # far into the TimeoutExpired exception.
>                     process.wait()
>                 raise
>             except:  # Including KeyboardInterrupt, communicate handled that.
>                 process.kill()
>                 # We don't call process.wait() as .__exit__ does that for us.
>                 raise
>             retcode = process.poll()
>             if check and retcode:
> >               raise CalledProcessError(retcode, process.args,
>                                          output=stdout, stderr=stderr)
> E               subprocess.CalledProcessError: Command '['./binaries/cif2cell', '/<<PKGBUILDDIR>>/tests/../cifs/SiC.cif']' returned non-zero exit status 1.
> 
> /usr/lib/python3.9/subprocess.py:524: CalledProcessError
> __________________________________ test_vasp ___________________________________
> 
>     def test_vasp():
>         """Test VASP output."""
>         cif_file = os.path.join(CIFS_DIR, "SiC.cif")
> >       result = run_cif2cell(["-p", "vasp", "-f", cif_file])
> 
> tests/test_cif2cell.py:31: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/test_cif2cell.py:13: in run_cif2cell
>     return subprocess.check_output(['./binaries/cif2cell'] + args, stderr=subprocess.STDOUT).decode('utf8')
> /usr/lib/python3.9/subprocess.py:420: in check_output
>     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> input = None, capture_output = False, timeout = None, check = True
> popenargs = (['./binaries/cif2cell', '-p', 'vasp', '-f', '/<<PKGBUILDDIR>>/tests/../cifs/SiC.cif'],)
> kwargs = {'stderr': -2, 'stdout': -1}
> process = <Popen: returncode: 1 args: ['./binaries/cif2cell', '-p', 'vasp', '-f', '/bu...>
> stdout = b'Traceback (most recent call last):\n  File "/<<PKGBUILDDIR>>/./binaries/cif2cell", line ...m fractions import gcd\nImportError: cannot import name \'gcd\' from \'fractions\' (/usr/lib/python3.9/fractions.py)\n'
> stderr = None, retcode = 1
> 
>     def run(*popenargs,
>             input=None, capture_output=False, timeout=None, check=False, **kwargs):
>         """Run command with arguments and return a CompletedProcess instance.
>     
>         The returned instance will have attributes args, returncode, stdout and
>         stderr. By default, stdout and stderr are not captured, and those attributes
>         will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.
>     
>         If check is True and the exit code was non-zero, it raises a
>         CalledProcessError. The CalledProcessError object will have the return code
>         in the returncode attribute, and output & stderr attributes if those streams
>         were captured.
>     
>         If timeout is given, and the process takes too long, a TimeoutExpired
>         exception will be raised.
>     
>         There is an optional argument "input", allowing you to
>         pass bytes or a string to the subprocess's stdin.  If you use this argument
>         you may not also use the Popen constructor's "stdin" argument, as
>         it will be used internally.
>     
>         By default, all communication is in bytes, and therefore any "input" should
>         be bytes, and the stdout and stderr will be bytes. If in text mode, any
>         "input" should be a string, and stdout and stderr will be strings decoded
>         according to locale encoding, or by "encoding" if set. Text mode is
>         triggered by setting any of text, encoding, errors or universal_newlines.
>     
>         The other arguments are the same as for the Popen constructor.
>         """
>         if input is not None:
>             if kwargs.get('stdin') is not None:
>                 raise ValueError('stdin and input arguments may not both be used.')
>             kwargs['stdin'] = PIPE
>     
>         if capture_output:
>             if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
>                 raise ValueError('stdout and stderr arguments may not be used '
>                                  'with capture_output.')
>             kwargs['stdout'] = PIPE
>             kwargs['stderr'] = PIPE
>     
>         with Popen(*popenargs, **kwargs) as process:
>             try:
>                 stdout, stderr = process.communicate(input, timeout=timeout)
>             except TimeoutExpired as exc:
>                 process.kill()
>                 if _mswindows:
>                     # Windows accumulates the output in a single blocking
>                     # read() call run on child threads, with the timeout
>                     # being done in a join() on those threads.  communicate()
>                     # _after_ kill() is required to collect that and add it
>                     # to the exception.
>                     exc.stdout, exc.stderr = process.communicate()
>                 else:
>                     # POSIX _communicate already populated the output so
>                     # far into the TimeoutExpired exception.
>                     process.wait()
>                 raise
>             except:  # Including KeyboardInterrupt, communicate handled that.
>                 process.kill()
>                 # We don't call process.wait() as .__exit__ does that for us.
>                 raise
>             retcode = process.poll()
>             if check and retcode:
> >               raise CalledProcessError(retcode, process.args,
>                                          output=stdout, stderr=stderr)
> E               subprocess.CalledProcessError: Command '['./binaries/cif2cell', '-p', 'vasp', '-f', '/<<PKGBUILDDIR>>/tests/../cifs/SiC.cif']' returned non-zero exit status 1.
> 
> /usr/lib/python3.9/subprocess.py:524: CalledProcessError
> _________________________________ test_castep __________________________________
> 
>     def test_castep():
>         """Test CASTEP output."""
>         cif_file = os.path.join(CIFS_DIR, "SiC.cif")
> >       result = run_cif2cell(["-p", "castep", "-f", cif_file])
> 
> tests/test_cif2cell.py:39: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/test_cif2cell.py:13: in run_cif2cell
>     return subprocess.check_output(['./binaries/cif2cell'] + args, stderr=subprocess.STDOUT).decode('utf8')
> /usr/lib/python3.9/subprocess.py:420: in check_output
>     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> input = None, capture_output = False, timeout = None, check = True
> popenargs = (['./binaries/cif2cell', '-p', 'castep', '-f', '/<<PKGBUILDDIR>>/tests/../cifs/SiC.cif'],)
> kwargs = {'stderr': -2, 'stdout': -1}
> process = <Popen: returncode: 1 args: ['./binaries/cif2cell', '-p', 'castep', '-f', '/...>
> stdout = b'Traceback (most recent call last):\n  File "/<<PKGBUILDDIR>>/./binaries/cif2cell", line ...m fractions import gcd\nImportError: cannot import name \'gcd\' from \'fractions\' (/usr/lib/python3.9/fractions.py)\n'
> stderr = None, retcode = 1
> 
>     def run(*popenargs,
>             input=None, capture_output=False, timeout=None, check=False, **kwargs):
>         """Run command with arguments and return a CompletedProcess instance.
>     
>         The returned instance will have attributes args, returncode, stdout and
>         stderr. By default, stdout and stderr are not captured, and those attributes
>         will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.
>     
>         If check is True and the exit code was non-zero, it raises a
>         CalledProcessError. The CalledProcessError object will have the return code
>         in the returncode attribute, and output & stderr attributes if those streams
>         were captured.
>     
>         If timeout is given, and the process takes too long, a TimeoutExpired
>         exception will be raised.
>     
>         There is an optional argument "input", allowing you to
>         pass bytes or a string to the subprocess's stdin.  If you use this argument
>         you may not also use the Popen constructor's "stdin" argument, as
>         it will be used internally.
>     
>         By default, all communication is in bytes, and therefore any "input" should
>         be bytes, and the stdout and stderr will be bytes. If in text mode, any
>         "input" should be a string, and stdout and stderr will be strings decoded
>         according to locale encoding, or by "encoding" if set. Text mode is
>         triggered by setting any of text, encoding, errors or universal_newlines.
>     
>         The other arguments are the same as for the Popen constructor.
>         """
>         if input is not None:
>             if kwargs.get('stdin') is not None:
>                 raise ValueError('stdin and input arguments may not both be used.')
>             kwargs['stdin'] = PIPE
>     
>         if capture_output:
>             if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
>                 raise ValueError('stdout and stderr arguments may not be used '
>                                  'with capture_output.')
>             kwargs['stdout'] = PIPE
>             kwargs['stderr'] = PIPE
>     
>         with Popen(*popenargs, **kwargs) as process:
>             try:
>                 stdout, stderr = process.communicate(input, timeout=timeout)
>             except TimeoutExpired as exc:
>                 process.kill()
>                 if _mswindows:
>                     # Windows accumulates the output in a single blocking
>                     # read() call run on child threads, with the timeout
>                     # being done in a join() on those threads.  communicate()
>                     # _after_ kill() is required to collect that and add it
>                     # to the exception.
>                     exc.stdout, exc.stderr = process.communicate()
>                 else:
>                     # POSIX _communicate already populated the output so
>                     # far into the TimeoutExpired exception.
>                     process.wait()
>                 raise
>             except:  # Including KeyboardInterrupt, communicate handled that.
>                 process.kill()
>                 # We don't call process.wait() as .__exit__ does that for us.
>                 raise
>             retcode = process.poll()
>             if check and retcode:
> >               raise CalledProcessError(retcode, process.args,
>                                          output=stdout, stderr=stderr)
> E               subprocess.CalledProcessError: Command '['./binaries/cif2cell', '-p', 'castep', '-f', '/<<PKGBUILDDIR>>/tests/../cifs/SiC.cif']' returned non-zero exit status 1.
> 
> /usr/lib/python3.9/subprocess.py:524: CalledProcessError
> =========================== 7 failed in 0.84 seconds ===========================
> make[1]: *** [debian/rules:9: override_dh_auto_test] Error 1

The full build log is available from:
   http://qa-logs.debian.net/2020/11/19/cif2cell_2.0.0a1+dfsg-3_unstable.log

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!

About the archive rebuild: The rebuild was done on EC2 VM instances from
Amazon Web Services, using a clean, minimal and up-to-date chroot. Every
failed build was retried once to eliminate random failures.



More information about the debian-science-maintainers mailing list