IBM / ibmi-oss-issues

Important resources for anyone interested in open source on IBM i
Creative Commons Zero v1.0 Universal
13 stars 0 forks source link

Limits.h not found error when building from pip package #29

Closed robinsg closed 1 year ago

robinsg commented 1 year ago

IBM i V7R3.

Environment: chroot jail using python 3.6 with a venv (hmcscanner) and the following packages installed:

bash.ppc64
charset-alias.ppc64
coreutils-gnu.ppc64
coreutils-pase-dummy.ppc
filesystem-dummy.noarch
findutils.ppc64
gcc10.ppc64
gcc10-cpp.ppc64
libatomic1.ppc64
libbz2-1.ppc64
libexpat1.ppc64
libffi6.ppc64
libgcc_s1.ppc64
libgmp10.ppc64
libgomp1.ppc64
libiconv2.ppc64
libisl23.ppc64
liblzma5.ppc64
libmpc3.ppc64
libmpfr4.ppc64
libncurses6.ppc64
libopenssl1_1.ppc64
libreadline8.ppc64
libsqlite3-0.ppc64
libstdcplusplus6.ppc64
libutil2.ppc64
libz1.ppc64
ncurses-terminfo.ppc64
openssh.ppc64
pase-includes-dummy.noarch
pase-libs-dummy.fat
perl.ppc64
python3.ppc64
python3-cffi.ppc64
python3-devel.ppc64
python3-pip.noarch
python3-pycparser.ppc64
python3-setuptools.noarch
python3-wheel.noarch
sed-gnu.ppc64
update-alternatives.ppc64
vim.ppc64

I'm trying to install the hmcscanner tool from pypi.

(hmcscanner) robinsg@XXXX04:~/hmcscanner $ CC=gcc-10 CXX=g++-10 python -m pip install hmcscanner
Collecting hmcscanner
  Using cached hmcscanner-0.8-py3-none-any.whl (41 kB)
Collecting XlsxWriter>=3.0.2
  Using cached XlsxWriter-3.0.8-py3-none-any.whl (152 kB)
Collecting PyYAML>=6.0
  Using cached PyYAML-6.0.tar.gz (124 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting paramiko>=2.7.2
  Using cached paramiko-3.0.0-py3-none-any.whl (210 kB)
Collecting tqdm>=4.62.3
  Using cached tqdm-4.64.1-py2.py3-none-any.whl (78 kB)
Collecting pynacl>=1.5
  Using cached PyNaCl-1.5.0.tar.gz (3.4 MB)
  Installing build dependencies ... error
  ERROR: Command errored out with exit status 1:
   command: /home/ROBINSG/hmcscanner/bin/python /home/ROBINSG/hmcscanner/lib/python3.6/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-p4g3_r5w/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- 'setuptools>=40.8.0' wheel 'cffi>=1.4.1; python_implementation != '"'"'PyPy'"'"''
       cwd: None
  Complete output (110 lines):
  Collecting setuptools>=40.8.0
    Using cached setuptools-59.6.0-py3-none-any.whl (952 kB)
  Collecting wheel
    Using cached wheel-0.37.1-py2.py3-none-any.whl (35 kB)
  Collecting cffi>=1.4.1
    Using cached cffi-1.15.1.tar.gz (508 kB)
    Preparing metadata (setup.py): started
    Preparing metadata (setup.py): finished with status 'done'
  Collecting pycparser
    Using cached pycparser-2.21-py2.py3-none-any.whl (118 kB)
  Building wheels for collected packages: cffi
    Building wheel for cffi (setup.py): started
    Building wheel for cffi (setup.py): finished with status 'error'
    ERROR: Command errored out with exit status 1:
     command: /home/ROBINSG/hmcscanner/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-gbfqmedz/cffi_2a4d4d64483d44278c92bdf7f5bc364d/setup.py'"'"'; __file__='"'"'/tmp/pip-install-gbfqmedz/cffi_2a4d4d64483d44278c92bdf7f5bc364d/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-prxjl0rw
         cwd: /tmp/pip-install-gbfqmedz/cffi_2a4d4d64483d44278c92bdf7f5bc364d/
    Complete output (40 lines):
    running bdist_wheel
    running build
    running build_py
    creating build
    creating build/lib.os400-powerpc64-3.6
    creating build/lib.os400-powerpc64-3.6/cffi
    copying cffi/__init__.py -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/api.py -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/backend_ctypes.py -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/cffi_opcode.py -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/commontypes.py -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/cparser.py -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/error.py -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/ffiplatform.py -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/lock.py -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/model.py -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/pkgconfig.py -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/recompiler.py -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/setuptools_ext.py -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/vengine_cpy.py -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/vengine_gen.py -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/verifier.py -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/_cffi_include.h -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/parse_c_type.h -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/_embedding.h -> build/lib.os400-powerpc64-3.6/cffi
    copying cffi/_cffi_errors.h -> build/lib.os400-powerpc64-3.6/cffi
    running build_ext
    building '_cffi_backend' extension
    creating build/temp.os400-powerpc64-3.6
    creating build/temp.os400-powerpc64-3.6/c
    gcc-10 -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -O2 -g -maix64 -mtune=power6 -mcpu=power6 -O2 -g -maix64 -mtune=power6 -mcpu=power6 -fPIC -DFFI_BUILDING=1 -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/home/ROBINSG/hmcscanner/include -I/QOpenSys/pkgs/include/python3.6m -c c/_cffi_backend.c -o build/temp.os400-powerpc64-3.6/c/_cffi_backend.o
    In file included from /QOpenSys/pkgs/lib/gcc/powerpc-ibm-aix6.1.0.0/10/include-fixed/syslimits.h:7,
                     from /QOpenSys/pkgs/lib/gcc/powerpc-ibm-aix6.1.0.0/10/include-fixed/limits.h:34,
                     from /QOpenSys/pkgs/include/python3.6m/Python.h:11,
                     from c/_cffi_backend.c:2:
    /QOpenSys/pkgs/lib/gcc/powerpc-ibm-aix6.1.0.0/10/include-fixed/limits.h:195:15: fatal error: limits.h: No such file or directory
      195 | #include_next <limits.h>  /* recurse down to the real one */
          |               ^~~~~~~~~~
    compilation terminated.
    error: command 'gcc-10' failed with exit status 1
    ----------------------------------------
    ERROR: Failed building wheel for cffi
    Running setup.py clean for cffi
  Failed to build cffi
  Installing collected packages: pycparser, wheel, setuptools, cffi
      Running setup.py install for cffi: started
      Running setup.py install for cffi: finished with status 'error'
      ERROR: Command errored out with exit status 1:
       command: /home/ROBINSG/hmcscanner/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-gbfqmedz/cffi_2a4d4d64483d44278c92bdf7f5bc364d/setup.py'"'"'; __file__='"'"'/tmp/pip-install-gbfqmedz/cffi_2a4d4d64483d44278c92bdf7f5bc364d/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-_a7j41rc/install-record.txt --single-version-externally-managed --prefix /tmp/pip-build-env-p4g3_r5w/overlay --compile --install-headers /tmp/pip-build-env-p4g3_r5w/overlay/include/site/python3.6/cffi
           cwd: /tmp/pip-install-gbfqmedz/cffi_2a4d4d64483d44278c92bdf7f5bc364d/
      Complete output (40 lines):
      running install
      running build
      running build_py
      creating build
      creating build/lib.os400-powerpc64-3.6
      creating build/lib.os400-powerpc64-3.6/cffi
      copying cffi/__init__.py -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/api.py -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/backend_ctypes.py -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/cffi_opcode.py -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/commontypes.py -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/cparser.py -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/error.py -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/ffiplatform.py -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/lock.py -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/model.py -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/pkgconfig.py -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/recompiler.py -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/setuptools_ext.py -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/vengine_cpy.py -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/vengine_gen.py -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/verifier.py -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/_cffi_include.h -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/parse_c_type.h -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/_embedding.h -> build/lib.os400-powerpc64-3.6/cffi
      copying cffi/_cffi_errors.h -> build/lib.os400-powerpc64-3.6/cffi
      running build_ext
      building '_cffi_backend' extension
      creating build/temp.os400-powerpc64-3.6
      creating build/temp.os400-powerpc64-3.6/c
      gcc-10 -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -O2 -g -maix64 -mtune=power6 -mcpu=power6 -O2 -g -maix64 -mtune=power6 -mcpu=power6 -fPIC -DFFI_BUILDING=1 -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/home/ROBINSG/hmcscanner/include -I/QOpenSys/pkgs/include/python3.6m -c c/_cffi_backend.c -o build/temp.os400-powerpc64-3.6/c/_cffi_backend.o
      In file included from /QOpenSys/pkgs/lib/gcc/powerpc-ibm-aix6.1.0.0/10/include-fixed/syslimits.h:7,
                       from /QOpenSys/pkgs/lib/gcc/powerpc-ibm-aix6.1.0.0/10/include-fixed/limits.h:34,
                       from /QOpenSys/pkgs/include/python3.6m/Python.h:11,
                       from c/_cffi_backend.c:2:
      /QOpenSys/pkgs/lib/gcc/powerpc-ibm-aix6.1.0.0/10/include-fixed/limits.h:195:15: fatal error: limits.h: No such file or directory
        195 | #include_next <limits.h>  /* recurse down to the real one */
            |               ^~~~~~~~~~
      compilation terminated.
      error: command 'gcc-10' failed with exit status 1
      ----------------------------------------
  ERROR: Command errored out with exit status 1: /home/ROBINSG/hmcscanner/bin/python -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-gbfqmedz/cffi_2a4d4d64483d44278c92bdf7f5bc364d/setup.py'"'"'; __file__='"'"'/tmp/pip-install-gbfqmedz/cffi_2a4d4d64483d44278c92bdf7f5bc364d/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-_a7j41rc/install-record.txt --single-version-externally-managed --prefix /tmp/pip-build-env-p4g3_r5w/overlay --compile --install-headers /tmp/pip-build-env-p4g3_r5w/overlay/include/site/python3.6/cffi Check the logs for full command output.
  --------------------------------------------

What am I missing to be able to build this package?

epgmat commented 1 year ago

You should install libstdcplusplus6-10-devel.ppc64 via yum.

robinsg commented 1 year ago

Thanks but that didn't work

I now have the following installed:

bash.ppc64
charset-alias.ppc64
coreutils-gnu.ppc64
coreutils-pase-dummy.ppc
filesystem-dummy.noarch
findutils.ppc64
gcc10.ppc64
gcc10-cpp.ppc64
libatomic1.ppc64
libbz2-1.ppc64
libexpat1.ppc64
libffi6.ppc64
libgcc_s1.ppc64
libgmp10.ppc64
libgomp1.ppc64
libiconv2.ppc64
libisl23.ppc64
liblzma5.ppc64
libmpc3.ppc64
libmpfr4.ppc64
libncurses6.ppc64
libopenssl1_1.ppc64
libreadline8.ppc64
libsqlite3-0.ppc64
libstdcplusplus6.ppc64
libstdcplusplus6-10-devel.ppc64<-------------------------
libutil2.ppc64
libz1.ppc64
ncurses-terminfo.ppc64
openssh.ppc64
pase-includes-dummy.noarch
pase-libs-dummy.fat
perl.ppc64
python3.ppc64
python3-cffi.ppc64
python3-devel.ppc64
python3-pip.noarch
python3-pycparser.ppc64
python3-setuptools.noarch
python3-wheel.noarch
sed-gnu.ppc64
update-alternatives.ppc64
vim.ppc64

The error still shows:

      gcc-10 -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -O2 -g -maix64 -mtune=power6 -mcpu=power6 -O2 -g -maix64 -mtune=power6 -mcpu=power6 -fPIC -DFFI_BUILDING=1 -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/QOpenSys/pkgs/include/python3.6m -c c/_cffi_backend.c -o build/temp.os400-powerpc64-3.6/c/_cffi_backend.o
      In file included from /QOpenSys/pkgs/lib/gcc/powerpc-ibm-aix6.1.0.0/10/include-fixed/syslimits.h:7,
                       from /QOpenSys/pkgs/lib/gcc/powerpc-ibm-aix6.1.0.0/10/include-fixed/limits.h:34,
                       from /QOpenSys/pkgs/include/python3.6m/Python.h:11,
                       from c/_cffi_backend.c:2:
      /QOpenSys/pkgs/lib/gcc/powerpc-ibm-aix6.1.0.0/10/include-fixed/limits.h:195:15: fatal error: limits.h: No such file or directory
        195 | #include_next <limits.h>  /* recurse down to the real one */
            |               ^~~~~~~~~~
      compilation terminated.
      error: command 'gcc-10' failed with exit status 1
      ----------------------------------------
robinsg commented 1 year ago

I can see that limits.h is installed:

robinsg@XXXX04:~ $ ls -l /QOpenSys/pkgs/lib/gcc/powerpc-ibm-aix6.1.0.0/10/include-fixed/limits.h -rw-r--r-- 1 robinsg 0 6171 Feb 13 13:33 /QOpenSys/pkgs/lib/gcc/powerpc-ibm-aix6.1.0.0/10/include-fixed/limits.h

kadler commented 1 year ago

That's the GCC "fixed" version, which includes the system version. The problem is it's not finding it:

      /QOpenSys/pkgs/lib/gcc/powerpc-ibm-aix6.1.0.0/10/include-fixed/limits.h:195:15: fatal error: limits.h: No such file or directory
        195 | #include_next <limits.h>  /* recurse down to the real one */
            |               ^~~~~~~~~~
      compilation terminated.

You need to install the PASE header files in to the chroot.

robinsg commented 1 year ago

Thanks, but which package do I need for that?

I tried installing

as these seemed to be the only pase packages I hadn't installed.

These didn't help and I have the same error.

Is this anything to do with me being on V7R3 and using gcc-10?

I built the chroot jail with minimal.lst and then added additional packages. Should I have used a different .lst to have set this up?

Installed
bash.ppc64
binutils-pase-dummy.ppc
charset-alias.ppc64
coreutils-gnu.ppc64
coreutils-pase-dummy.ppc
filesystem-dummy.noarch
findutils.ppc64
gcc10.ppc64
gcc10-cpp.ppc64
libatomic1.ppc64
libbz2-1.ppc64
libexpat1.ppc64
libffi6.ppc64
libgcc_s1.ppc64
libgmp10.ppc64
libgomp1.ppc64
libiconv2.ppc64
libisl23.ppc64
liblzma5.ppc64
libmpc3.ppc64
libmpfr4.ppc64
libncurses6.ppc64
libopenssl1_1.ppc64
libreadline8.ppc64
libsqlite3-0.ppc64
libstdcplusplus6.ppc64
libstdcplusplus6-10-devel.ppc64
libutil2.ppc64
libz1.ppc64
ncurses-terminfo.ppc64
openssh.ppc64
pase-build-tools.noarch<-----------
pase-includes-dummy.noarch
pase-libs-dummy.fat
pase-utf8-locale.noarch<-----------
perl.ppc64
python3.ppc64
python3-cffi.ppc64
python3-devel.ppc64
python3-pip.noarch
python3-pycparser.ppc64
python3-setuptools.noarch
python3-wheel.noarch
sed-gnu.ppc64
update-alternatives.ppc64
vim.ppc64
kadler commented 1 year ago

The PASE includes are not an rpm. They ship as part of the OS. How did you build the chroot?

robinsg commented 1 year ago

I used:

chroot_setup -v -y /QOpenSys/robinsg_chroot/hmcscanner minimal.lst

abmusse commented 1 year ago

@robinsg

Try adding includes.lst as well.

The default for chroot_setup when no .lst are specified is to create a chroot with minimal.lst and includes.lst

robinsg commented 1 year ago

That has helped, thanks very much.

Now I get:

      gcc-10 -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -O2 -g -maix64 -mtune=power6 -mcpu=power6 -O2 -g -maix64 -mtune=power6 -mcpu=power6 -fPIC -DFFI_BUILDING=1 -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/home/ROBINSG/hmcscanner/include -I/QOpenSys/pkgs/include/python3.6m -c c/_cffi_backend.c -o build/temp.os400-powerpc64-3.6/c/_cffi_backend.o
      c/_cffi_backend.c: In function 'cdata_call':
      c/_cffi_backend.c:3203:30: warning: comparison of integer expressions of different signedness: 'Py_ssize_t' {aka 'long int'} and 'long unsigned int' [-Wsign-compare]
       3203 |         if (fresult->ct_size < sizeof(ffi_arg))
            |                              ^
      /QOpenSys/pkgs/lib/python3.6/config-3.6m/ld_so_aix gcc -pthread -bI:/QOpenSys/pkgs/lib/python3.6/config-3.6m/python.exp -Wl,-blibpath:/QOpenSys/pkgs/lib:/QOpenSys/usr/lib build/temp.os400-powerpc64-3.6/c/_cffi_backend.o -L/QOpenSys/pkgs/lib -lffi -o build/lib.os400-powerpc64-3.6/_cffi_backend.so
      no gcc in /home/ROBINSG/hmcscanner/bin /QOpenSys/pkgs/bin /QOpenSys/usr/bin /usr/ccs/bin /QOpenSys/usr/bin/X11 /usr/sbin . /usr/bin
      ld_so_aix: Compiler 'gcc' not found; exiting.
      error: command '/QOpenSys/pkgs/lib/python3.6/config-3.6m/ld_so_aix' failed with exit status 2

      ----------------------------------------
  Command "/home/ROBINSG/hmcscanner/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-5ctuc0b8/cffi/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-ilrhtipk/install-record.txt --single-version-externally-managed --prefix /tmp/pip-build-env-pfyztijt --compile --install-headers /home/ROBINSG/hmcscanner/include/site/python3.6/cffi" failed with error code 1 in /tmp/pip-install-5ctuc0b8/cffi/

  ----------------------------------------
Command "/home/ROBINSG/hmcscanner/bin/python -m pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-pfyztijt --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools>=40.6.0,!=60.9.0 wheel "cffi>=1.12; platform_python_implementation != 'PyPy'" setuptools-rust>=0.11.4" failed with error code 1 in None

As a reminder I'm executing:

CC=gcc-10 CXX=g++-10 python -m pip install hmcscanner
robinsg commented 1 year ago

I think I'll have to give up on this as it's now saying it has a dependency for Rust.

kadler commented 1 year ago

Which package requires Rust? If it's cryptography, we ship an rpm for it which was the last version which did not require Rust. Otherwise, we'd like to know so we can prioritize appropriately.

robinsg commented 1 year ago

Yes it is cryptography.

Which package should I install?

robinsg commented 1 year ago

Here's the error:

  Running setup.py install for cryptography ... error
    Complete output from command /home/ROBINSG/hmcscanner/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-amprfwxf/cryptography/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-3au8ctap/install-record.txt --single-version-externally-managed --compile --install-headers /home/ROBINSG/hmcscanner/include/site/python3.6/cryptography:
    /QOpenSys/pkgs/lib/python3.6/importlib/__init__.py:126: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography. The next release of cryptography (40.0) will be the last to support Python 3.6.
      return _bootstrap._gcd_import(name[level:], package, level)
    running install
    /tmp/pip-build-env-djou5atp/lib/python3.6/site-packages/setuptools/command/install.py:37: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
      setuptools.SetuptoolsDeprecationWarning,
    running build
    running build_py
    creating build
    creating build/lib.os400-powerpc64-3.6
    creating build/lib.os400-powerpc64-3.6/cryptography
    copying src/cryptography/__about__.py -> build/lib.os400-powerpc64-3.6/cryptography
    copying src/cryptography/__init__.py -> build/lib.os400-powerpc64-3.6/cryptography
    copying src/cryptography/exceptions.py -> build/lib.os400-powerpc64-3.6/cryptography
    copying src/cryptography/fernet.py -> build/lib.os400-powerpc64-3.6/cryptography
    copying src/cryptography/utils.py -> build/lib.os400-powerpc64-3.6/cryptography
    creating build/lib.os400-powerpc64-3.6/cryptography/hazmat
    copying src/cryptography/hazmat/__init__.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat
    copying src/cryptography/hazmat/_oid.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat
    creating build/lib.os400-powerpc64-3.6/cryptography/x509
    copying src/cryptography/x509/__init__.py -> build/lib.os400-powerpc64-3.6/cryptography/x509
    copying src/cryptography/x509/base.py -> build/lib.os400-powerpc64-3.6/cryptography/x509
    copying src/cryptography/x509/certificate_transparency.py -> build/lib.os400-powerpc64-3.6/cryptography/x509
    copying src/cryptography/x509/extensions.py -> build/lib.os400-powerpc64-3.6/cryptography/x509
    copying src/cryptography/x509/general_name.py -> build/lib.os400-powerpc64-3.6/cryptography/x509
    copying src/cryptography/x509/name.py -> build/lib.os400-powerpc64-3.6/cryptography/x509
    copying src/cryptography/x509/ocsp.py -> build/lib.os400-powerpc64-3.6/cryptography/x509
    copying src/cryptography/x509/oid.py -> build/lib.os400-powerpc64-3.6/cryptography/x509
    creating build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends
    copying src/cryptography/hazmat/backends/__init__.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends
    creating build/lib.os400-powerpc64-3.6/cryptography/hazmat/bindings
    copying src/cryptography/hazmat/bindings/__init__.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/bindings
    creating build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/__init__.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/_asymmetric.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/_cipheralgorithm.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/_serialization.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/cmac.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/constant_time.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/hashes.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/hmac.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/keywrap.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/padding.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/poly1305.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives
    creating build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/__init__.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/aead.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/backend.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/ciphers.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/cmac.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/decode_asn1.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/dh.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/dsa.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/ec.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/ed25519.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/ed448.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/hashes.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/hmac.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/poly1305.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/rsa.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/utils.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/x25519.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/x448.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/backends/openssl
    creating build/lib.os400-powerpc64-3.6/cryptography/hazmat/bindings/openssl
    copying src/cryptography/hazmat/bindings/openssl/__init__.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/bindings/openssl
    copying src/cryptography/hazmat/bindings/openssl/_conditional.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/bindings/openssl
    copying src/cryptography/hazmat/bindings/openssl/binding.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/bindings/openssl
    creating build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/__init__.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/dh.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/dsa.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/ec.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/ed25519.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/ed448.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/padding.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/rsa.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/types.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/utils.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/x25519.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/x448.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/asymmetric
    creating build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/ciphers
    copying src/cryptography/hazmat/primitives/ciphers/__init__.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/ciphers
    copying src/cryptography/hazmat/primitives/ciphers/aead.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/ciphers
    copying src/cryptography/hazmat/primitives/ciphers/algorithms.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/ciphers
    copying src/cryptography/hazmat/primitives/ciphers/base.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/ciphers
    copying src/cryptography/hazmat/primitives/ciphers/modes.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/ciphers
    creating build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/__init__.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/concatkdf.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/hkdf.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/kbkdf.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/pbkdf2.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/scrypt.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/x963kdf.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/kdf
    creating build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/serialization
    copying src/cryptography/hazmat/primitives/serialization/__init__.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/serialization
    copying src/cryptography/hazmat/primitives/serialization/base.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/serialization
    copying src/cryptography/hazmat/primitives/serialization/pkcs12.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/serialization
    copying src/cryptography/hazmat/primitives/serialization/pkcs7.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/serialization
    copying src/cryptography/hazmat/primitives/serialization/ssh.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/serialization
    creating build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/twofactor
    copying src/cryptography/hazmat/primitives/twofactor/__init__.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/twofactor
    copying src/cryptography/hazmat/primitives/twofactor/hotp.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/twofactor
    copying src/cryptography/hazmat/primitives/twofactor/totp.py -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/primitives/twofactor
    running egg_info
    writing src/cryptography.egg-info/PKG-INFO
    writing dependency_links to src/cryptography.egg-info/dependency_links.txt
    writing requirements to src/cryptography.egg-info/requires.txt
    writing top-level names to src/cryptography.egg-info/top_level.txt
    reading manifest file 'src/cryptography.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    no previously-included directories found matching 'docs/_build'
    warning: no previously-included files found matching 'vectors'
    warning: no previously-included files matching '*' found under directory 'vectors'
    warning: no previously-included files matching '*' found under directory '.github'
    warning: no previously-included files found matching 'release.py'
    warning: no previously-included files found matching '.readthedocs.yml'
    warning: no previously-included files found matching 'ci-constraints-requirements.txt'
    warning: no previously-included files found matching 'tox.ini'
    warning: no previously-included files found matching 'mypy.ini'
    adding license file 'LICENSE'
    adding license file 'LICENSE.APACHE'
    adding license file 'LICENSE.BSD'
    adding license file 'LICENSE.PSF'
    writing manifest file 'src/cryptography.egg-info/SOURCES.txt'
    copying src/cryptography/py.typed -> build/lib.os400-powerpc64-3.6/cryptography
    copying src/cryptography/hazmat/bindings/_openssl.pyi -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/bindings
    creating build/lib.os400-powerpc64-3.6/cryptography/hazmat/bindings/_rust
    copying src/cryptography/hazmat/bindings/_rust/__init__.pyi -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/bindings/_rust
    copying src/cryptography/hazmat/bindings/_rust/asn1.pyi -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/bindings/_rust
    copying src/cryptography/hazmat/bindings/_rust/ocsp.pyi -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/bindings/_rust
    copying src/cryptography/hazmat/bindings/_rust/pkcs7.pyi -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/bindings/_rust
    copying src/cryptography/hazmat/bindings/_rust/x509.pyi -> build/lib.os400-powerpc64-3.6/cryptography/hazmat/bindings/_rust
    running build_ext
    running build_rust

        =============================DEBUG ASSISTANCE=============================
        If you are seeing a compilation error please try the following steps to
        successfully install cryptography:
        1) Upgrade to the latest pip and try again. This will fix errors for most
           users. See: https://pip.pypa.io/en/stable/installing/#upgrading-pip
        2) Read https://cryptography.io/en/latest/installation/ for specific
           instructions for your platform.
        3) Check our frequently asked questions for more information:
           https://cryptography.io/en/latest/faq/
        4) Ensure you have a recent Rust toolchain installed:
           https://cryptography.io/en/latest/installation/#rust

        Python: 3.6.15
        platform: OS400-3-00780004B1A1-powerpc-64bit
        pip: 18.1
        setuptools: 59.6.0
        setuptools_rust: 1.1.2
        rustc: n/a
        =============================DEBUG ASSISTANCE=============================

    error: can't find Rust compiler

    If you are using an outdated pip version, it is possible a prebuilt wheel is available for this package but pip is not able to install from it. Installing from the wheel would avoid the need for a Rust compiler.

    To update pip, run:

        pip install --upgrade pip

    and then retry package installation.

    If you did intend to build this package from source, try installing a Rust compiler from your system package manager and ensure it is on the PATH during installation. Alternatively, rustup (available at https://rustup.rs) is the recommended way to download and update the Rust compiler toolchain.

    This package requires Rust >=1.48.0.

    ----------------------------------------
Command "/home/ROBINSG/hmcscanner/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-amprfwxf/cryptography/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-3au8ctap/install-record.txt --single-version-externally-managed --compile --install-headers /home/ROBINSG/hmcscanner/include/site/python3.6/cryptography" failed with error code 1 in /tmp/pip-install-amprfwxf/cryptography/
robinsg commented 1 year ago

I have added python3-cryptography to the chroot and rerun the install.

It's not complaining about the Rust issue any longer but there's more which I really can't get my head around. I've uplaoded the ssh session output.

MobaXterm_ProdP8-XXX04_20230216_093733.txt

kadler commented 1 year ago
    ar: 0707-126 crypto_aead/aes256gcm/aesni/libaesni_la-aead_aes256gcm_aesni.o is not valid with the current object file mode.
        Use the -X option to specify the desired object mode.

Run export OBJECT_MODE=64 then re-run the build. That should at least get past the above error.

robinsg commented 1 year ago

Thanks.

Is this a value I should always export for any kind of build?

kadler commented 1 year ago

Probably, yeah. It's only needed when you build native code that wants to archive stuff. Oddly, we do set Python ARFLAGS with -X64 so this shouldn't be necessary, but for some reason it is.

kadler commented 1 year ago

Oh, I see. From the output, the package you're building is using libtool internally, which doesn't use the Python ARFLAGS setting.

robinsg commented 1 year ago

I'm not absolutely sure if that made a difference:

      CCLD     xchacha20
        make  check-TESTS
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113005 Illegal instruction(coredump)
    FAIL: aead_aes256gcm
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113009 Illegal instruction(coredump)
    FAIL: aead_aes256gcm2
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113013 Illegal instruction(coredump)
    FAIL: aead_chacha20poly1305
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113017 Illegal instruction(coredump)
    FAIL: aead_chacha20poly13052
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113021 Illegal instruction(coredump)
    FAIL: aead_xchacha20poly1305
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113025 Illegal instruction(coredump)
    FAIL: auth
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113029 Illegal instruction(coredump)
    FAIL: auth2
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113033 Illegal instruction(coredump)
    FAIL: auth3
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113037 Illegal instruction(coredump)
    FAIL: auth5
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113041 Illegal instruction(coredump)
    FAIL: auth6
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113045 Illegal instruction(coredump)
    FAIL: auth7
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113049 Illegal instruction(coredump)
    FAIL: box
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113053 Illegal instruction(coredump)
    FAIL: box2
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113057 Illegal instruction(coredump)
    FAIL: box7
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113061 Illegal instruction(coredump)
    FAIL: box8
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113065 Illegal instruction(coredump)
    FAIL: box_easy
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113069 Illegal instruction(coredump)
    FAIL: box_easy2
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113073 Illegal instruction(coredump)
    FAIL: box_seal
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113077 Illegal instruction(coredump)
    FAIL: box_seed
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113081 Illegal instruction(coredump)
    FAIL: chacha20
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113085 Illegal instruction(coredump)
    FAIL: codecs
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113089 Illegal instruction(coredump)
    FAIL: core1
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113093 Illegal instruction(coredump)
    FAIL: core2
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113097 Illegal instruction(coredump)
    FAIL: core3
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113101 Illegal instruction(coredump)
    FAIL: core4
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113105 Illegal instruction(coredump)
    FAIL: core5
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113109 Illegal instruction(coredump)
    FAIL: core6
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113113 Illegal instruction(coredump)
    FAIL: ed25519_convert
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113117 Illegal instruction(coredump)
    FAIL: generichash
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113121 Illegal instruction(coredump)
    FAIL: generichash2
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113125 Illegal instruction(coredump)
    FAIL: generichash3
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113129 Illegal instruction(coredump)
    FAIL: hash
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113133 Illegal instruction(coredump)
    FAIL: hash3
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113137 Illegal instruction(coredump)
    FAIL: kdf
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113141 Illegal instruction(coredump)
    FAIL: keygen
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113145 Illegal instruction(coredump)
    FAIL: kx
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113149 Illegal instruction(coredump)
    FAIL: metamorphic
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113153 Illegal instruction(coredump)
    FAIL: misuse
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113157 Illegal instruction(coredump)
    FAIL: onetimeauth
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113161 Illegal instruction(coredump)
    FAIL: onetimeauth2
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113165 Illegal instruction(coredump)
    FAIL: onetimeauth7
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113169 Illegal instruction(coredump)
    FAIL: pwhash_argon2i
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113173 Illegal instruction(coredump)
    FAIL: pwhash_argon2id
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113177 Illegal instruction(coredump)
    FAIL: randombytes
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113181 Illegal instruction(coredump)
    FAIL: scalarmult
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113185 Illegal instruction(coredump)
    FAIL: scalarmult2
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113189 Illegal instruction(coredump)
    FAIL: scalarmult5
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113193 Illegal instruction(coredump)
    FAIL: scalarmult6
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113197 Illegal instruction(coredump)
    FAIL: scalarmult7
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113201 Illegal instruction(coredump)
    FAIL: scalarmult8
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113205 Illegal instruction(coredump)
    FAIL: secretbox
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113209 Illegal instruction(coredump)
    FAIL: secretbox2
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113213 Illegal instruction(coredump)
    FAIL: secretbox7
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113217 Illegal instruction(coredump)
    FAIL: secretbox8
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113221 Illegal instruction(coredump)
    FAIL: secretbox_easy
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113225 Illegal instruction(coredump)
    FAIL: secretbox_easy2
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113229 Illegal instruction(coredump)
    FAIL: secretstream
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113233 Illegal instruction(coredump)
    FAIL: shorthash
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113237 Illegal instruction(coredump)
    FAIL: sign
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113241 Illegal instruction(coredump)
    FAIL: sodium_core
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113245 Illegal instruction(coredump)
    FAIL: sodium_utils
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113249 Illegal instruction(coredump)
    FAIL: sodium_version
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113253 Illegal instruction(coredump)
    FAIL: stream
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113257 Illegal instruction(coredump)
    FAIL: stream2
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113261 Illegal instruction(coredump)
    FAIL: stream3
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113265 Illegal instruction(coredump)
    FAIL: stream4
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113269 Illegal instruction(coredump)
    FAIL: verify1
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113273 Illegal instruction(coredump)
    FAIL: sodium_utils2
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113277 Illegal instruction(coredump)
    FAIL: sodium_utils3
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113281 Illegal instruction(coredump)
    FAIL: core_ed25519
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113285 Illegal instruction(coredump)
    FAIL: core_ristretto255
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113289 Illegal instruction(coredump)
    FAIL: pwhash_scrypt
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113293 Illegal instruction(coredump)
    FAIL: pwhash_scrypt_ll
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113297 Illegal instruction(coredump)
    FAIL: scalarmult_ed25519
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113301 Illegal instruction(coredump)
    FAIL: scalarmult_ristretto255
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113305 Illegal instruction(coredump)
    FAIL: siphashx24
    /tmp/pip-install-731s_b31/pynacl/src/libsodium/build-aux/test-driver[109]: 113309 Illegal instruction(coredump)
    FAIL: xchacha20
    ============================================================================
    Testsuite summary for libsodium 1.0.18
    ============================================================================
    # TOTAL: 77
    # PASS:  0
    # SKIP:  0
    # XFAIL: 0
    # FAIL:  77
    # XPASS: 0
    # ERROR: 0
    ============================================================================
    See test/default/test-suite.log
    Please report to https://github.com/jedisct1/libsodium/issues
    ============================================================================
    make: The error code from the last command is 1.

    Stop.
    make: The error code from the last command is 2.

    Stop.
    make: The error code from the last command is 2.

    Stop.
    make: The error code from the last command is 1.

    Stop.
    make: The error code from the last command is 1.

    Stop.
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-731s_b31/pynacl/setup.py", line 232, in <module>
        "Programming Language :: Python :: 3.10",
      File "/tmp/pip-build-env-64pvknu8/lib/python3.6/site-packages/setuptools/__init__.py", line 153, in setup
        return distutils.core.setup(**attrs)
      File "/QOpenSys/pkgs/lib/python3.6/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/QOpenSys/pkgs/lib/python3.6/distutils/dist.py", line 955, in run_commands
        self.run_command(cmd)
      File "/QOpenSys/pkgs/lib/python3.6/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/tmp/pip-build-env-64pvknu8/lib/python3.6/site-packages/setuptools/command/install.py", line 68, in run
        return orig.install.run(self)
      File "/QOpenSys/pkgs/lib/python3.6/distutils/command/install.py", line 545, in run
        self.run_command('build')
      File "/QOpenSys/pkgs/lib/python3.6/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/QOpenSys/pkgs/lib/python3.6/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/QOpenSys/pkgs/lib/python3.6/distutils/command/build.py", line 135, in run
        self.run_command(cmd_name)
      File "/QOpenSys/pkgs/lib/python3.6/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/QOpenSys/pkgs/lib/python3.6/distutils/dist.py", line 974, in run_command
        cmd_obj.run()
      File "/tmp/pip-install-731s_b31/pynacl/setup.py", line 172, in run
        subprocess.check_call(["make", "check"] + make_args, cwd=build_temp)
      File "/QOpenSys/pkgs/lib/python3.6/subprocess.py", line 311, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['make', 'check']' returned non-zero exit status 2.

    ----------------------------------------
Command "/home/ROBINSG/hmcscanner/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-731s_b31/pynacl/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-rotjufj5/install-record.txt --single-version-externally-managed --compile --install-headers /home/ROBINSG/hmcscanner/include/site/python3.6/pynacl" failed with error code 1 in /tmp/pip-install-731s_b31/pynacl/
kadler commented 1 year ago

Well, you didn't get the same error, but yeah it's still having issues. I think you're better off using the prebuilt packages that we provide for these things instead of trying to build them yourself.

robinsg commented 1 year ago

I agree and over the weekend I installed the prebuilt bcrypt, paramiko and PyYAML packages but still with no luck.

I've tried using various combinations of:

pip install hmcscanner --only-binary ":all:" --no-binary --no-binary "paramiko" --no-binary "PyYAML"

but the I end up with different dependecy issues e.g.

(.venv) robinsg@XXXX04:~ $ CC=gcc-10 CXX=g++-10 python -m pip install hmcscanner --only-binary  ":all:"
Collecting hmcscanner
  Using cached hmcscanner-0.8-py3-none-any.whl (41 kB)
Collecting XlsxWriter>=3.0.2
  Using cached XlsxWriter-3.0.8-py3-none-any.whl (152 kB)
Collecting hmcscanner
  Using cached hmcscanner-0.7-py3-none-any.whl (41 kB)
  Using cached hmcscanner-0.6-py3-none-any.whl (41 kB)
  Using cached hmcscanner-0.5-py3-none-any.whl (39 kB)
  Using cached hmcscanner-0.4-py3-none-any.whl (39 kB)
  Using cached hmcscanner-0.3-py3-none-any.whl (39 kB)
ERROR: Cannot install hmcscanner==0.3, hmcscanner==0.4, hmcscanner==0.5, hmcscanner==0.6, hmcscanner==0.7 and hmcscanner==0.8 because these package versions have conflicting dependencies.

The conflict is caused by:
    hmcscanner 0.8 depends on PyYAML>=6.0
    hmcscanner 0.7 depends on PyYAML>=6.0
    hmcscanner 0.6 depends on PyYAML>=6.0
    hmcscanner 0.5 depends on PyYAML>=6.0
    hmcscanner 0.4 depends on PyYAML>=6.0
    hmcscanner 0.3 depends on PyYAML>=6.0

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

Here are the python packages I have installed:

libyaml-0-2.ppc64                             0.2.5-1                 @ibm
libyaml-devel.ppc64                           0.2.5-1                 @ibm
python-rpm-macros.noarch                      3.6-6                   @ibm
python39.ppc64                                3.9.16-1                @ibmi-base
python39-bcrypt.ppc64                         3.2.0-1                 @ibm
python39-cffi.ppc64                           1.14.5-1                @ibm
python39-cryptography.ppc64                   3.4.7-1                 @ibm
python39-devel.ppc64                          3.9.16-1                @ibmi-base
python39-paramiko.noarch                      2.7.2-1                 @ibm
python39-pip.noarch                           21.1.2-1                @ibm
python39-pycparser.ppc64                      2.20-1                  @ibm
python39-pynacl.ppc64                         1.4.0-1                 @ibm
python39-setuptools.noarch                    57.0.0-1                @ibm
python39-six.noarch                           1.16.0-2                @ibm
python39-wheel.noarch                         0.36.2-1                @ibm

I did notice that there's no python39-pyyaml package but there is a python3-pyyaml package.

All too painful I'm afraid.

Saying that, I've learned a lot :-)

robinsg commented 1 year ago

Aha, finally cracked it :-)

I saw a reference to the IBM i OSS Docs python page.

After installing all the necessary packages and then using --system-site-packages on the python3.9 -m venv command I got a first time install.

I understand this much more clearly now. Sometimes and aging ex-RPG/Cobol developer needs a bit of time and a nudge in the right direction.

@kadler - Thanks so much for your guidance and assistance