MaltegoTech / maltego-trx

Maltego Transform library for Python
MIT License
211 stars 44 forks source link

macOS M1 #43

Closed jaxxpnd closed 2 years ago

jaxxpnd commented 2 years ago

Hello,

I am trying to install maltego-trx on macOS M1, using python3, and I am running into the following issue:

pip3 install maltego-trx --no-cache-dir

Collecting maltego-trx Downloading maltego_trx-1.5.2-py3-none-any.whl (29 kB) Collecting flask>=1 Downloading Flask-2.1.2-py3-none-any.whl (95 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 95.2/95.2 kB 479.4 kB/s eta 0:00:00 Collecting cryptography==3.3.2 Downloading cryptography-3.3.2.tar.gz (539 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 539.9/539.9 kB 1.5 MB/s eta 0:00:00 Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Requirement already satisfied: six>=1 in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from maltego-trx) (1.16.0) Requirement already satisfied: cffi>=1.12 in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from cryptography==3.3.2->maltego-trx) (1.15.0) Collecting Werkzeug>=2.0 Downloading Werkzeug-2.1.2-py3-none-any.whl (224 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 224.9/224.9 kB 4.1 MB/s eta 0:00:00 Collecting itsdangerous>=2.0 Downloading itsdangerous-2.1.2-py3-none-any.whl (15 kB) Collecting click>=8.0 Downloading click-8.1.3-py3-none-any.whl (96 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 96.6/96.6 kB 4.2 MB/s eta 0:00:00 Requirement already satisfied: Jinja2>=3.0 in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from flask>=1->maltego-trx) (3.1.2) Requirement already satisfied: pycparser in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from cffi>=1.12->cryptography==3.3.2->maltego-trx) (2.21) Requirement already satisfied: MarkupSafe>=2.0 in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from Jinja2>=3.0->flask>=1->maltego-trx) (2.1.1) Building wheels for collected packages: cryptography Building wheel for cryptography (pyproject.toml) ... error error: subprocess-exited-with-error

`× Building wheel for cryptography (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [152 lines of output] running bdist_wheel running build running build_py creating build creating build/lib.macosx-10.9-universal2-cpython-310 creating build/lib.macosx-10.9-universal2-cpython-310/cryptography copying src/cryptography/init.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography copying src/cryptography/utils.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography copying src/cryptography/about.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography copying src/cryptography/exceptions.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography copying src/cryptography/fernet.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography creating build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat copying src/cryptography/hazmat/_der.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat copying src/cryptography/hazmat/init.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat copying src/cryptography/hazmat/_oid.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat creating build/lib.macosx-10.9-universal2-cpython-310/cryptography/x509 copying src/cryptography/x509/oid.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/x509 copying src/cryptography/x509/ocsp.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/x509 copying src/cryptography/x509/general_name.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/x509 copying src/cryptography/x509/init.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/x509 copying src/cryptography/x509/extensions.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/x509 copying src/cryptography/x509/name.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/x509 copying src/cryptography/x509/base.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/x509 copying src/cryptography/x509/certificate_transparency.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/x509 creating build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends copying src/cryptography/hazmat/backends/interfaces.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends copying src/cryptography/hazmat/backends/init.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends creating build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/cmac.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/init.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/poly1305.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/constant_time.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/keywrap.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/hmac.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/hashes.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives copying src/cryptography/hazmat/primitives/padding.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives creating build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/bindings copying src/cryptography/hazmat/bindings/init.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/bindings creating build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/x448.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/backend.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/ec.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/ciphers.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/ocsp.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/x509.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/aead.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/encode_asn1.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/rsa.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/dh.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/cmac.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/init.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/utils.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/poly1305.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/ed25519.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/dsa.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/decode_asn1.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/hmac.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/ed448.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/x25519.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl copying src/cryptography/hazmat/backends/openssl/hashes.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/backends/openssl creating build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/kdf copying src/cryptography/hazmat/primitives/kdf/init.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/kdf copying src/cryptography/hazmat/primitives/kdf/scrypt.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/kdf copying src/cryptography/hazmat/primitives/kdf/pbkdf2.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/kdf copying src/cryptography/hazmat/primitives/kdf/hkdf.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/kdf copying src/cryptography/hazmat/primitives/kdf/x963kdf.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/kdf copying src/cryptography/hazmat/primitives/kdf/kbkdf.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/kdf copying src/cryptography/hazmat/primitives/kdf/concatkdf.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/kdf creating build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/twofactor copying src/cryptography/hazmat/primitives/twofactor/totp.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/twofactor copying src/cryptography/hazmat/primitives/twofactor/init.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/twofactor copying src/cryptography/hazmat/primitives/twofactor/hotp.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/twofactor copying src/cryptography/hazmat/primitives/twofactor/utils.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/twofactor creating build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/serialization copying src/cryptography/hazmat/primitives/serialization/init.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/serialization copying src/cryptography/hazmat/primitives/serialization/pkcs12.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/serialization copying src/cryptography/hazmat/primitives/serialization/pkcs7.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/serialization copying src/cryptography/hazmat/primitives/serialization/ssh.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/serialization copying src/cryptography/hazmat/primitives/serialization/base.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/serialization creating build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/ciphers copying src/cryptography/hazmat/primitives/ciphers/algorithms.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/ciphers copying src/cryptography/hazmat/primitives/ciphers/aead.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/ciphers copying src/cryptography/hazmat/primitives/ciphers/init.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/ciphers copying src/cryptography/hazmat/primitives/ciphers/modes.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/ciphers copying src/cryptography/hazmat/primitives/ciphers/base.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/ciphers creating build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/x448.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/ec.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/rsa.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/dh.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/init.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/utils.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/ed25519.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/dsa.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/ed448.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/x25519.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/asymmetric copying src/cryptography/hazmat/primitives/asymmetric/padding.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/primitives/asymmetric creating build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/bindings/openssl copying src/cryptography/hazmat/bindings/openssl/init.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/bindings/openssl copying src/cryptography/hazmat/bindings/openssl/_conditional.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/bindings/openssl copying src/cryptography/hazmat/bindings/openssl/binding.py -> build/lib.macosx-10.9-universal2-cpython-310/cryptography/hazmat/bindings/openssl 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 '.coveragerc' warning: no previously-included files found matching 'codecov.yml' warning: no previously-included files found matching '.readthedocs.yml' warning: no previously-included files found matching 'dev-requirements.txt' warning: no previously-included files found matching 'rtd-requirements.txt' warning: no previously-included files found matching 'tox.ini' warning: no previously-included files matching '' found under directory '.zuul.d' warning: no previously-included files matching '' found under directory '.zuul.playbooks' adding license file 'LICENSE' adding license file 'LICENSE.APACHE' adding license file 'LICENSE.BSD' adding license file 'LICENSE.PSF' adding license file 'AUTHORS.rst' writing manifest file 'src/cryptography.egg-info/SOURCES.txt' running build_ext generating cffi module 'build/temp.macosx-10.9-universal2-cpython-310/_padding.c' creating build/temp.macosx-10.9-universal2-cpython-310 generating cffi module 'build/temp.macosx-10.9-universal2-cpython-310/_openssl.c' building '_openssl' extension creating build/temp.macosx-10.9-universal2-cpython-310/build creating build/temp.macosx-10.9-universal2-cpython-310/build/temp.macosx-10.9-universal2-cpython-310 clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch arm64 -arch x86_64 -g -I/Library/Frameworks/Python.framework/Versions/3.10/include/python3.10 -c build/temp.macosx-10.9-universal2-cpython-310/_openssl.c -o build/temp.macosx-10.9-universal2-cpython-310/build/temp.macosx-10.9-universal2-cpython-310/_openssl.o -Wconversion -Wno-error=sign-conversion build/temp.macosx-10.9-universal2-cpython-310/_openssl.c:575:10: fatal error: 'openssl/opensslv.h' file not found

include <openssl/opensslv.h>

           ^~~~~~~~~~~~~~~~~~~~
  1 error generated.`

      =============================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.html for specific
         instructions for your platform.
      3) Check our frequently asked questions for more information:
         https://cryptography.io/en/latest/faq.html
      =============================DEBUG ASSISTANCE=============================

  error: command '/usr/bin/clang' failed with exit code 1
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for cryptography Failed to build cryptography ERROR: Could not build wheels for cryptography, which is required to install pyproject.toml-based projects

I tried multiple suggestions online for installing cryptography and openSSL but none seem to work, would love to understand if there is a solution or if maltego-trx is not compatible with M1 atm?

felixatmaltego commented 2 years ago

Hi @jaxxpnd, this is unfortunately a problem on Apple Silicon with the cryptography library and not maltego-trx. These are our remediation steps:

  1. run brew link openssl
  2. Do this section from the output (version may vary):
    For compilers to find openssl@1.1 you may need to set:
    export LDFLAGS="-L/opt/homebrew/opt/openssl@1.1/lib"
    export CPPFLAGS="-I/opt/homebrew/opt/openssl@1.1/include"
  3. Install Package

This does not seem to work with openssl@3 so you might have to install openssl@1.1 via homebrew.

Hope this helps!

jaxxpnd commented 2 years ago

Thank you so much @felixatmaltego, this worked!!