joshbuddy / pitcrew

AsyncIO-powered python DSL for running commands locally, on docker, or over ssh.
https://pitcrew.io
13 stars 0 forks source link

openBSD support #19

Open vladp opened 5 years ago

vladp commented 5 years ago

Thx for making this available.

Great idea. I am just a newbie in cluster management. And wanted something that I can comprehend without learning a bunch of concept. I simply want a capability to push a bunch of config files (that I manage on my control plane via git) to be pushed, and safely applied to several servers (mostly cron configs, postgres ini files, and backup scripts).

I tried to check if openBSD is supported out of the box, but got an error while installing via Pip. Before digging into this deeper, wanted to check if there are specific reasons/packages that you know of, that picrew needs, but might not be available in OpenBSD.

thx

Collecting pitcrew
  Downloading https://files.pythonhosted.org/packages/3f/2a/6d376a990c3debe8f906309af1db521301dae6c521c8ede52ca935246113/pitcrew-0.0.2-py2.py3-none-any.whl
Collecting black==18.9b0 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/2a/34/9938749f260a861cdd8427d63899e08f9a2a041159a26c2615b02828c973/black-18.9b0-py36-none-any.whl (88kB)
    100% |################################| 92kB 1.2MB/s
Collecting tornado==6.0.2 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/03/3f/5f89d99fca3c0100c8cede4f53f660b126d39e0d6a1e943e95cc3ed386fb/tornado-6.0.2.tar.gz (481kB)
    100% |################################| 491kB 231kB/s
Collecting docutils==0.14 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/36/fa/08e9e6e0e3cbd1d362c3bbee8d01d0aedb2155c4ac112b19ef3cae8eed8d/docutils-0.14-py3-none-any.whl (543kB)
    100% |################################| 552kB 857kB/s
Collecting livereload==2.6.0 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/ae/dd/f518bb99d84a3d26f45c281030b4d74b8cbe23bf8ad311b42e413aa33e51/livereload-2.6.0-py2.py3-none-any.whl
Collecting webencodings==0.5.1 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl
Collecting urllib3==1.24.2 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/df/1c/59cca3abf96f991f2ec3131a4ffe72ae3d9ea1f5894abe8a9c5e3c77cfee/urllib3-1.24.2-py2.py3-none-any.whl (131kB)
    100% |################################| 133kB 1.5MB/s
Collecting aiounittest==1.1.0 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/e1/59/d7314ee7509f50fa1fdc6c4f4644cfc10c8428af23be88dad0ddf5fe07c5/aiounittest-1.1.0-py2.py3-none-any.whl
Collecting certifi==2019.3.9 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/60/75/f692a584e85b7eaba0e03827b3d51f45f571c2e793dd731e598828d380aa/certifi-2019.3.9-py2.py3-none-any.whl (158kB)
    100% |################################| 163kB 1.3MB/s
Requirement already satisfied: chardet==3.0.4 in /usr/local/lib/python3.6/site-packages (from pitcrew) (3.0.4)
Collecting pkginfo==1.5.0.1 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/e6/d5/451b913307b478c49eb29084916639dc53a88489b993530fed0a66bab8b9/pkginfo-1.5.0.1-py2.py3-none-any.whl
Collecting aiofiles==0.4.0 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/cf/f2/a67a23bc0bb61d88f82aa7fb84a2fb5f278becfbdc038c5cbb36c31feaf1/aiofiles-0.4.0-py3-none-any.whl
Collecting pyflakes==2.1.1 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/84/f2/ed0ffb887f8138a8fe5a621b8c0bb9598bfb3989e029f6c6a85ee66628ee/pyflakes-2.1.1-py2.py3-none-any.whl (59kB)
    100% |################################| 61kB 1.1MB/s
Collecting appdirs==1.4.3 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/56/eb/810e700ed1349edde4cbdc1b2a21e28cdf115f9faf263f6bbf8447c1abf3/appdirs-1.4.3-py2.py3-none-any.whl
Collecting tqdm==4.31.1 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/6c/4b/c38b5144cf167c4f52288517436ccafefe9dc01b8d1c190e18a6b154cd4a/tqdm-4.31.1-py2.py3-none-any.whl (48kB)
    100% |################################| 51kB 998kB/s
Collecting twine==1.13.0 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/28/90/59eec88c0b2ac9e47fe135959007acb93a3cc9f7146366e11fecf718dd15/twine-1.13.0-py2.py3-none-any.whl
Collecting Click==7.0 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/fa/37/45185cb5abbc30d7257104c434fe0b07e5a195a6847506c074527aa599ec/Click-7.0-py2.py3-none-any.whl (81kB)
    100% |################################| 81kB 1.3MB/s
Collecting pycparser==2.19 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/68/9e/49196946aee219aead1290e00d1e7fdeab8567783e83e1b9ab5585e6206a/pycparser-2.19.tar.gz (158kB)
    100% |################################| 163kB 923kB/s
Collecting mccabe==0.6.1 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/87/89/479dc97e18549e21354893e4ee4ef36db1d237534982482c3681ee6e7b57/mccabe-0.6.1-py2.py3-none-any.whl
Collecting altgraph==0.16.1 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/0a/cc/646187eac4b797069e2e6b736f14cdef85dbe405c9bfc7803ef36e4f62ef/altgraph-0.16.1-py2.py3-none-any.whl
Collecting cryptography==2.6.1 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/07/ca/bc827c5e55918ad223d59d299fff92f3563476c3b00d0a9157d9c0217449/cryptography-2.6.1.tar.gz (491kB)
    100% |################################| 501kB 1.1MB/s
  Installing build dependencies ... done
Collecting Pygments==2.3.1 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/13/e5/6d710c9cf96c31ac82657bcfb441df328b22df8564d58d0c4cd62612674c/Pygments-2.3.1-py2.py3-none-any.whl (849kB)
    100% |################################| 849kB 912kB/s
Collecting flake8==3.7.7 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/e9/76/b915bd28976068a9843bf836b789794aa4a8eb13338b23581005cd9177c0/flake8-3.7.7-py2.py3-none-any.whl (68kB)
    100% |################################| 71kB 1.2MB/s
Collecting six==1.12.0 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Collecting macholib==1.11 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/41/f1/6d23e1c79d68e41eb592338d90a33af813f98f2b04458aaf0b86908da2d8/macholib-1.11-py2.py3-none-any.whl
Collecting pycodestyle==2.5.0 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/0e/0c/04a353e104d2f324f8ee5f4b32012618c1c86dd79e52a433b64fceed511b/pycodestyle-2.5.0-py2.py3-none-any.whl (51kB)
    100% |################################| 51kB 896kB/s
Collecting idna==2.8 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB)
    100% |################################| 61kB 929kB/s
Collecting asyncssh==1.16.1 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/5d/56/254b26795602fdc58dbbf01de1892e88ad35e7e6ad673b0273b6427ba2f4/asyncssh-1.16.1-py3-none-any.whl (288kB)
    100% |################################| 296kB 1.1MB/s
Collecting pur==5.2.2 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/88/9e/806977ef0faddf05e2bfdfbb9f03d1524278200a19728fa27054e2da4d94/pur-5.2.2.tar.gz (1.0MB)
    100% |################################| 1.0MB 703kB/s
Collecting future==0.17.1 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/90/52/e20466b85000a181e1e144fd8305caf2cf475e2f9674e797b222f8105f5f/future-0.17.1.tar.gz (829kB)
    100% |################################| 829kB 958kB/s
Collecting readme-renderer==24.0 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/c3/7e/d1aae793900f36b097cbfcc5e70eef82b5b56423a6c52a36dce51fedd8f0/readme_renderer-24.0-py2.py3-none-any.whl
Collecting toml==0.10.0 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/a2/12/ced7105d2de62fa7c8fb5fce92cc4ce66b57c95fb875e9318dba7f8c5db0/toml-0.10.0-py2.py3-none-any.whl
Collecting markdown2==2.3.7 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/e4/0c/b5375c1c70adbafd0ded0459fa175468559ee5360219070d2f7fb60b2287/markdown2-2.3.7-py2.py3-none-any.whl
Collecting attrs==19.1.0 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/23/96/d828354fa2dbdf216eaa7b7de0db692f12c234f7ef888cc14980ef40d1d2/attrs-19.1.0-py2.py3-none-any.whl
Collecting LinkHeader==0.4.3 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/27/d4/eb1da743b2dc825e936ef1d9e04356b5701e3a9ea022c7aaffdf4f6b0594/LinkHeader-0.4.3.tar.gz
Collecting mkdocs==1.0.4 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/db/f9/b0179afee0db21943120ea606eb68bda1257b96420df74b775280eb5850b/mkdocs-1.0.4-py2.py3-none-any.whl (1.2MB)
    100% |################################| 1.2MB 871kB/s
Collecting entrypoints==0.3 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/ac/c6/44694103f8c221443ee6b0041f69e2740d89a25641e62fb4f2ee568f2f9c/entrypoints-0.3-py2.py3-none-any.whl
Collecting Jinja2==2.10.1 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/1d/e7/fd8b501e7a6dfe492a433deb7b9d833d39ca74916fa8bc63dd1a4947a671/Jinja2-2.10.1-py2.py3-none-any.whl (124kB)
    100% |################################| 133kB 2.0MB/s
Collecting Markdown==3.1 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/f5/e4/d8c18f2555add57ff21bf25af36d827145896a07607486cc79a2aea641af/Markdown-3.1-py2.py3-none-any.whl (87kB)
    100% |################################| 92kB 1.5MB/s
Collecting bleach==3.1.0 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/ab/05/27e1466475e816d3001efb6e0a85a819be17411420494a1e602c36f8299d/bleach-3.1.0-py2.py3-none-any.whl (157kB)
    100% |################################| 163kB 1.6MB/s
Collecting asn1crypto==0.24.0 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/ea/cd/35485615f45f30a510576f1a56d1e0a7ad7bd8ab5ed7cdc600ef7cd06222/asn1crypto-0.24.0-py2.py3-none-any.whl (101kB)
    100% |################################| 102kB 1.7MB/s
Collecting pydoc-markdown==2.0.5 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/d6/fa/163d1254426f7fa45fd5e6fce8f75cd18165e28971595edbe26e12e61d8c/pydoc-markdown-2.0.5.tar.gz
Collecting PyInstaller==3.4 (from pitcrew)
  Downloading https://files.pythonhosted.org/packages/03/32/0e0de593f129bf1d1e77eed562496d154ef4460fd5cecfd78612ef39a0cc/PyInstaller-3.4.tar.gz (3.5MB)
    100% |################################| 3.5MB 384kB/s
  Installing build dependencies ... done
    Complete output from command python setup.py egg_info:
    Your platform is not yet supported. Please define constant PYDYLIB_NAMES for your platform.

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-6d5gg7bi/PyInstaller/
joshbuddy commented 5 years ago

I believe this is pretty trivial to fix, just need to separate out runtime dependencies from buildtime dependencies. Happy to accept a PR for it, but I'm also into taking a crack at it :)

joshbuddy commented 5 years ago

Just did the separation, pull from master and try this again

vladp commented 5 years ago

Thank you. The update fixed the initial issue. I am running now into compilation problems in one of the Python modules (cryptography) this is not pitcrew error, so not something you could fix.

Update: I think the problem is on my side. Once I installed the py-cryptography, it should appear in my pip3 list … but it is not. I suspect my pip3 install is not right. Let me work on that

pkg_add py3-pip cd /usr/ports/security/py-cryptography ; make install installs cryptography 2.6.1 (simply pkg_add py3-cryptography will not work, because it will install 2.5 ,which is not recent enough for pitcrew).

but then, pip list still does not show cryptography, and installing pit-crew will try to download and compile cryptography module itself, without OpenBSD patches -- and that's what's causing the failure below)


node-obsd2# pip3 install git+https://github.com/joshbuddy/pitcrew.git
Collecting git+https://github.com/joshbuddy/pitcrew.git
  Cloning https://github.com/joshbuddy/pitcrew.git to /tmp/pip-req-build-2bausgj4
Collecting Click==7.0 (from pitcrew==0.0.2)
  Downloading https://files.pythonhosted.org/packages/fa/37/45185cb5abbc30d7257104c434fe0b07e5a195a6847506c074527aa599ec/Click-7.0-py2.py3-none-any.whl (81kB)
    100% |################################| 81kB 595kB/s
Collecting Jinja2==2.10.1 (from pitcrew==0.0.2)
  Downloading https://files.pythonhosted.org/packages/1d/e7/fd8b501e7a6dfe492a433deb7b9d833d39ca74916fa8bc63dd1a4947a671/Jinja2-2.10.1-py2.py3-none-any.whl (124kB)
    100% |################################| 133kB 1.4MB/s
Collecting MarkupSafe==1.1.1 (from pitcrew==0.0.2)
  Downloading https://files.pythonhosted.org/packages/b9/2e/64db92e53b86efccfaea71321f597fa2e1b2bd3853d8ce658568f7a13094/MarkupSafe-1.1.1.tar.gz
Collecting asn1crypto==0.24.0 (from pitcrew==0.0.2)
  Downloading https://files.pythonhosted.org/packages/ea/cd/35485615f45f30a510576f1a56d1e0a7ad7bd8ab5ed7cdc600ef7cd06222/asn1crypto-0.24.0-py2.py3-none-any.whl (101kB)
    100% |################################| 102kB 1.6MB/s
Collecting asyncssh==1.16.1 (from pitcrew==0.0.2)
  Downloading https://files.pythonhosted.org/packages/5d/56/254b26795602fdc58dbbf01de1892e88ad35e7e6ad673b0273b6427ba2f4/asyncssh-1.16.1-py3-none-any.whl (288kB)
    100% |################################| 296kB 1.5MB/s
Collecting cffi==1.12.3 (from pitcrew==0.0.2)
  Downloading https://files.pythonhosted.org/packages/93/1a/ab8c62b5838722f29f3daffcc8d4bd61844aa9b5f437341cc890ceee483b/cffi-1.12.3.tar.gz (456kB)
    100% |################################| 460kB 1.6MB/s
Collecting cryptography==2.6.1 (from pitcrew==0.0.2)
  Downloading https://files.pythonhosted.org/packages/07/ca/bc827c5e55918ad223d59d299fff92f3563476c3b00d0a9157d9c0217449/cryptography-2.6.1.tar.gz (491kB)
    100% |################################| 501kB 1.5MB/s
  Installing build dependencies ... done
Collecting pycparser==2.19 (from pitcrew==0.0.2)
  Using cached https://files.pythonhosted.org/packages/68/9e/49196946aee219aead1290e00d1e7fdeab8567783e83e1b9ab5585e6206a/pycparser-2.19.tar.gz
Collecting six==1.12.0 (from pitcrew==0.0.2)
  Downloading https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Installing collected packages: Click, MarkupSafe, Jinja2, asn1crypto, six, pycparser, cffi, cryptography, asyncssh, pitcrew
  Found existing installation: MarkupSafe 1.1.0
    Uninstalling MarkupSafe-1.1.0:
      Successfully uninstalled MarkupSafe-1.1.0
  Running setup.py install for MarkupSafe ... done
  Running setup.py install for pycparser ... done
  Running setup.py install for cffi ... done
  Running setup.py install for cryptography ... error
    Complete output from command /usr/local/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-io0jyo0c/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-d8lyw5v4/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build/lib.openbsd-6.5-amd64-3.6
    creating build/lib.openbsd-6.5-amd64-3.6/cryptography
    copying src/cryptography/__about__.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography
    copying src/cryptography/__init__.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography
    copying src/cryptography/exceptions.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography
    copying src/cryptography/fernet.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography
    copying src/cryptography/utils.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography
    creating build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat
    copying src/cryptography/hazmat/__init__.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat
    copying src/cryptography/hazmat/_oid.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat
    creating build/lib.openbsd-6.5-amd64-3.6/cryptography/x509
    copying src/cryptography/x509/__init__.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/x509
    copying src/cryptography/x509/base.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/x509
    copying src/cryptography/x509/certificate_transparency.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/x509
    copying src/cryptography/x509/extensions.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/x509
    copying src/cryptography/x509/general_name.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/x509
    copying src/cryptography/x509/name.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/x509
    copying src/cryptography/x509/ocsp.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/x509
    copying src/cryptography/x509/oid.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/x509
    creating build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends
    copying src/cryptography/hazmat/backends/__init__.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends
    copying src/cryptography/hazmat/backends/interfaces.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends
    creating build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/bindings
    copying src/cryptography/hazmat/bindings/__init__.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/bindings
    creating build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/__init__.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/cmac.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/constant_time.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/hashes.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/hmac.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/keywrap.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/mac.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives
    copying src/cryptography/hazmat/primitives/padding.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives
    creating build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/__init__.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/aead.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/backend.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/ciphers.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/cmac.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/decode_asn1.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/dh.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/dsa.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/ec.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/ed25519.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/ed448.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/encode_asn1.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/hashes.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/hmac.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/ocsp.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/rsa.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/utils.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/x25519.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/x448.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    copying src/cryptography/hazmat/backends/openssl/x509.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/backends/openssl
    creating build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/bindings/openssl
    copying src/cryptography/hazmat/bindings/openssl/__init__.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/bindings/openssl
    copying src/cryptography/hazmat/bindings/openssl/_conditional.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/bindings/openssl
    copying src/cryptography/hazmat/bindings/openssl/binding.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/bindings/openssl
    creating build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/__init__.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/dh.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/dsa.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/ec.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/ed25519.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/ed448.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/padding.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/rsa.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/utils.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/x25519.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/asymmetric
    copying src/cryptography/hazmat/primitives/asymmetric/x448.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/asymmetric
    creating build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/ciphers
    copying src/cryptography/hazmat/primitives/ciphers/__init__.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/ciphers
    copying src/cryptography/hazmat/primitives/ciphers/aead.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/ciphers
    copying src/cryptography/hazmat/primitives/ciphers/algorithms.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/ciphers
    copying src/cryptography/hazmat/primitives/ciphers/base.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/ciphers
    copying src/cryptography/hazmat/primitives/ciphers/modes.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/ciphers
    creating build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/__init__.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/concatkdf.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/hkdf.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/kbkdf.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/pbkdf2.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/scrypt.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/kdf
    copying src/cryptography/hazmat/primitives/kdf/x963kdf.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/kdf
    creating build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/serialization
    copying src/cryptography/hazmat/primitives/serialization/__init__.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/serialization
    copying src/cryptography/hazmat/primitives/serialization/base.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/serialization
    copying src/cryptography/hazmat/primitives/serialization/pkcs12.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/serialization
    copying src/cryptography/hazmat/primitives/serialization/ssh.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/serialization
    creating build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/twofactor
    copying src/cryptography/hazmat/primitives/twofactor/__init__.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/twofactor
    copying src/cryptography/hazmat/primitives/twofactor/hotp.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/twofactor
    copying src/cryptography/hazmat/primitives/twofactor/totp.py -> build/lib.openbsd-6.5-amd64-3.6/cryptography/hazmat/primitives/twofactor
    copying src/cryptography/hazmat/primitives/twofactor/utils.py -> build/lib.openbsd-6.5-amd64-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 matching '*' found under directory 'vectors'
    writing manifest file 'src/cryptography.egg-info/SOURCES.txt'
    running build_ext
    generating cffi module 'build/temp.openbsd-6.5-amd64-3.6/_padding.c'
    creating build/temp.openbsd-6.5-amd64-3.6
    generating cffi module 'build/temp.openbsd-6.5-amd64-3.6/_constant_time.c'
    generating cffi module 'build/temp.openbsd-6.5-amd64-3.6/_openssl.c'
    building '_openssl' extension
    creating build/temp.openbsd-6.5-amd64-3.6/build
    creating build/temp.openbsd-6.5-amd64-3.6/build/temp.openbsd-6.5-amd64-3.6
    cc -pthread -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fPIC -O2 -pipe -O2 -pipe -fPIC -I/usr/local/include/python3.6m -c build/temp.openbsd-6.5-amd64-3.6/_openssl.c -o build/temp.openbsd-6.5-amd64-3.6/build/temp.openbsd-6.5-amd64-3.6/_openssl.o -Wconversion -Wno-error=sign-conversion
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:2498:21: error: redefinition of 'DTLS_method' as different kind of symbol
    const SSL_METHOD *(*DTLS_method)(void) = NULL;
                        ^
    /usr/include/openssl/ssl.h:1474:19: note: previous definition is here
    const SSL_METHOD *DTLS_method(void);            /* DTLS v1.0 or later */
                      ^
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:2499:21: error: redefinition of 'DTLS_server_method' as different kind of symbol
    const SSL_METHOD *(*DTLS_server_method)(void) = NULL;
                        ^
    /usr/include/openssl/ssl.h:1475:19: note: previous definition is here
    const SSL_METHOD *DTLS_server_method(void);     /* DTLS v1.0 or later */
                      ^
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:2500:21: error: redefinition of 'DTLS_client_method' as different kind of symbol
    const SSL_METHOD *(*DTLS_client_method)(void) = NULL;
                        ^
    /usr/include/openssl/ssl.h:1476:19: note: previous definition is here
    const SSL_METHOD *DTLS_client_method(void);     /* DTLS v1.0 or later */
                      ^
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:2929:19: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
        for (i = 0; i < _ssl_locks_count; i++) {
                    ~ ^ ~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:2937:28: warning: implicit conversion changes signedness: 'int' to 'unsigned int' [-Wsign-conversion]
            _ssl_locks_count = CRYPTO_num_locks();
                             ~ ^~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:2973:39: warning: implicit conversion changes signedness: 'int' to 'unsigned long' [-Wsign-conversion]
            memcpy(buf, st->password, st->length);
            ~~~~~~                    ~~~~^~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:11911:10: warning: returning 'const BIO_METHOD *' (aka 'const struct bio_method_st *') from a function with result type 'BIO_METHOD *' (aka 'struct bio_method_st *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
      return BIO_s_datagram();
             ^~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:11921:12: warning: assigning to 'BIO_METHOD *' (aka 'struct bio_method_st *') from 'const BIO_METHOD *' (aka 'const struct bio_method_st *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
      { result = BIO_s_datagram(); }
               ^ ~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:11935:10: warning: returning 'const BIO_METHOD *' (aka 'const struct bio_method_st *') from a function with result type 'BIO_METHOD *' (aka 'struct bio_method_st *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
      return BIO_s_mem();
             ^~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:11945:12: warning: assigning to 'BIO_METHOD *' (aka 'struct bio_method_st *') from 'const BIO_METHOD *' (aka 'const struct bio_method_st *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
      { result = BIO_s_mem(); }
               ^ ~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:27971:10: warning: returning 'const Cryptography_STACK_OF_X509 *' (aka 'const struct stack_st_X509 *') from a function with result type 'Cryptography_STACK_OF_X509 *' (aka 'struct stack_st_X509 *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
      return OCSP_resp_get0_certs(x0);
             ^~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:27994:12: warning: assigning to 'Cryptography_STACK_OF_X509 *' (aka 'struct stack_st_X509 *') from 'const Cryptography_STACK_OF_X509 *' (aka 'const struct stack_st_X509 *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
      { result = OCSP_resp_get0_certs(x0); }
               ^ ~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:34131:10: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      return SSL_CTX_add_extra_chain_cert(x0, x1);
      ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:1223:2: note: expanded from macro 'SSL_CTX_add_extra_chain_cert'
            SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:34171:14: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      { result = SSL_CTX_add_extra_chain_cert(x0, x1); }
               ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:1223:2: note: expanded from macro 'SSL_CTX_add_extra_chain_cert'
            SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:34310:10: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      return SSL_CTX_clear_options(x0, x1);
      ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:577:2: note: expanded from macro 'SSL_CTX_clear_options'
            SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_OPTIONS,(op),NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:34343:14: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      { result = SSL_CTX_clear_options(x0, x1); }
               ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:577:2: note: expanded from macro 'SSL_CTX_clear_options'
            SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_OPTIONS,(op),NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:34595:10: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      return SSL_CTX_get_mode(x0);
      ~~~~~~ ^~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:592:2: note: expanded from macro 'SSL_CTX_get_mode'
            SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:34618:14: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      { result = SSL_CTX_get_mode(x0); }
               ~ ^~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:592:2: note: expanded from macro 'SSL_CTX_get_mode'
            SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:34631:10: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      return SSL_CTX_get_options(x0);
      ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:579:2: note: expanded from macro 'SSL_CTX_get_options'
            SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,0,NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:34654:14: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      { result = SSL_CTX_get_options(x0); }
               ~ ^~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:579:2: note: expanded from macro 'SSL_CTX_get_options'
            SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,0,NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:34703:10: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      return SSL_CTX_get_session_cache_mode(x0);
      ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:1567:2: note: expanded from macro 'SSL_CTX_get_session_cache_mode'
            SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_MODE,0,NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:34726:14: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      { result = SSL_CTX_get_session_cache_mode(x0); }
               ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:1567:2: note: expanded from macro 'SSL_CTX_get_session_cache_mode'
            SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_MODE,0,NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:36332:10: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      return SSL_CTX_set_mode(x0, x1);
      ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:588:2: note: expanded from macro 'SSL_CTX_set_mode'
            SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:36365:14: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      { result = SSL_CTX_set_mode(x0, x1); }
               ~ ^~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:588:2: note: expanded from macro 'SSL_CTX_set_mode'
            SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:36496:10: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      return SSL_CTX_set_options(x0, x1);
      ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:575:2: note: expanded from macro 'SSL_CTX_set_options'
            SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:36529:14: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      { result = SSL_CTX_set_options(x0, x1); }
               ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:575:2: note: expanded from macro 'SSL_CTX_set_options'
            SSL_CTX_ctrl((ctx),SSL_CTRL_OPTIONS,(op),NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:36726:10: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      return SSL_CTX_set_session_cache_mode(x0, x1);
      ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:1565:2: note: expanded from macro 'SSL_CTX_set_session_cache_mode'
            SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:36759:14: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      { result = SSL_CTX_set_session_cache_mode(x0, x1); }
               ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:1565:2: note: expanded from macro 'SSL_CTX_set_session_cache_mode'
            SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:37128:10: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      return SSL_CTX_set_tmp_dh(x0, x1);
      ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:1161:2: note: expanded from macro 'SSL_CTX_set_tmp_dh'
            SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)dh)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:37168:14: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      { result = SSL_CTX_set_tmp_dh(x0, x1); }
               ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:1161:2: note: expanded from macro 'SSL_CTX_set_tmp_dh'
            SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)dh)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:37181:10: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      return SSL_CTX_set_tmp_ecdh(x0, x1);
      ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:1163:2: note: expanded from macro 'SSL_CTX_set_tmp_ecdh'
            SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:37221:14: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      { result = SSL_CTX_set_tmp_ecdh(x0, x1); }
               ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:1163:2: note: expanded from macro 'SSL_CTX_set_tmp_ecdh'
            SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_ECDH,0,(char *)ecdh)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:37970:10: warning: implicit conversion changes signedness: 'unsigned long' to 'long' [-Wsign-conversion]
      return SSL_SESSION_get_ticket_lifetime_hint(x0);
      ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:37993:14: warning: implicit conversion changes signedness: 'unsigned long' to 'long' [-Wsign-conversion]
      { result = SSL_SESSION_get_ticket_lifetime_hint(x0); }
               ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:39358:10: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      return SSL_get_mode(x0);
      ~~~~~~ ^~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:598:9: note: expanded from macro 'SSL_get_mode'
            SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:39381:14: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      { result = SSL_get_mode(x0); }
               ~ ^~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:598:9: note: expanded from macro 'SSL_get_mode'
            SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:39394:10: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      return SSL_get_options(x0);
      ~~~~~~ ^~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:585:9: note: expanded from macro 'SSL_get_options'
            SSL_ctrl((ssl),SSL_CTRL_OPTIONS,0,NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:39417:14: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      { result = SSL_get_options(x0); }
               ~ ^~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:585:9: note: expanded from macro 'SSL_get_options'
            SSL_ctrl((ssl),SSL_CTRL_OPTIONS,0,NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:41301:10: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      return SSL_set_mode(x0, x1);
      ~~~~~~ ^~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:596:2: note: expanded from macro 'SSL_set_mode'
            SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:41334:14: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      { result = SSL_set_mode(x0, x1); }
               ~ ^~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:596:2: note: expanded from macro 'SSL_set_mode'
            SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:41347:10: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      return SSL_set_options(x0, x1);
      ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:581:2: note: expanded from macro 'SSL_set_options'
            SSL_ctrl((ssl),SSL_CTRL_OPTIONS,(op),NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    build/temp.openbsd-6.5-amd64-3.6/_openssl.c:41380:14: warning: implicit conversion changes signedness: 'long' to 'unsigned long' [-Wsign-conversion]
      { result = SSL_set_options(x0, x1); }
               ~ ^~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/openssl/ssl.h:581:2: note: expanded from macro 'SSL_set_options'
            SSL_ctrl((ssl),SSL_CTRL_OPTIONS,(op),NULL)
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    39 warnings and 3 errors generated.
    error: command 'cc' failed with exit status 1

    ----------------------------------------
Command "/usr/local/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-io0jyo0c/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-d8lyw5v4/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-io0jyo0c/cryptography/
You are using pip version 18.1, however version 19.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
node-obsd2#
vladp commented 5 years ago

was able to install pitcrew. There are probably easier ways. But I had to deinstall the whole python installation, then installed python 3.7 from ports Then: python -mensurepip Then: export FLAVOR=python3 cd /usr/ports/security/py-crytography make install all This would install the right (2.6.1) version of the cryptography package, that pitcrew needs I had to install all the packages cryptopgraphy depends on, manually though.. not sure way.

Anyways, I got pitcrew installed on OpenBSD 6.5

node1-obsd2# crew list
install Installs a package, optionally allowing the version number to specified.
install.homebrew Installs the homebrew package manager
install.xcode_cli Installs xcode cli tools

Tried to execute shell commands. But got an error. Could be something, again, that I was doing wrong. But wanted to share, just in case.

node1-obsd2# crew sh pkg_info
Invoking pkg_info with
  provider providers.local {}
error loading providers.local
Traceback (most recent call last):
  File "/usr/local/bin/crew", line 11, in <module>
    load_entry_point('pitcrew==0.0.2', 'console_scripts', 'crew')()
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/pitcrew/cli.py", line 53, in sh
    loop.run_until_complete(run_task())
  File "/usr/local/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
    return future.result()
  File "/usr/local/lib/python3.7/site-packages/pitcrew/cli.py", line 45, in run_task
    provider_task = app.load(provider)
  File "/usr/local/lib/python3.7/site-packages/pitcrew/app.py", line 25, in load
    task = self.loader.load(task_name, self.local_context)
  File "/usr/local/lib/python3.7/site-packages/pitcrew/loader.py", line 43, in load
    return self.create_task(name, context)
  File "/usr/local/lib/python3.7/site-packages/pitcrew/loader.py", line 57, in create_task
    self.populate_task(task_name)
  File "/usr/local/lib/python3.7/site-packages/pitcrew/loader.py", line 85, in populate_task
    pkg = importlib.import_module(f"pitcrew.tasks.{task_name}")
  File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'pitcrew.tasks.providers'
node1-obsd2#
joshbuddy commented 5 years ago

@vladp is there any way I could ssh into this machine and take a look at whats happening? I don't have an openbsd box handy to debug this. Alternately, let me see what I can do to install openbsd in a virtualized environment

vladp commented 5 years ago

Hello, thank you for the follow up. Sorry, I do not have a way to get this OpenBSD exposed via internet.

This was a plain, nothing added OpenBSD 6.5 install in virtual box. If you do plan to install it, make sure your have specified at least 2 CPUs for your virtual box, before the install starts.

Otherwise, it will install non-multiprocessor kernel. Other than that, there were no extra settings.

I messed my environment up by now, because I had to redo the whole python3 install. So I cannot cut a clean image for you now.

Alternatively, in a week or sooner, I will have another free day, so I can retry the whole thing and may be upload somewhere my vbox image -- so it is less effort for you to set this up.

I will have it to the point where pitcrew is installed and is invokable (otherwise you would have to install py-cryptography from ports, rather than from binary packages -- as binary packages's version of py-cryptography is a version lower than you need). This way you can jump into debugging right away.

Let me know

joshbuddy commented 5 years ago

@vladp I got it working on openbsd. Here were the steps I followed, how does this look to you?

# i got all the ports & python3.7 stuff working first
pkg_add git
git clone https://github.com/joshbuddy/pitcrew
python3 -mvenv env
. ./env/bin/activate
pip install -e .
crew list # should list tasks here
crew run fs.read requirements.txt # should read this file
vladp commented 5 years ago

Thx for testing on OpenBSD.

I tried on my box, but getting errors. If it works for you, however, it is most likely my install of packages -- that's the problem, and not pitcrew.

sv001vb-obsd2$ crew list
install Installs a package, optionally allowing the version number to specified.
install.homebrew Installs the homebrew package manager
install.xcode_cli Installs xcode cli tools

sv001vb-obsd2$ crew run fs.read requirements.txt
error loading fs.read
Traceback (most recent call last):
  File "/usr/local/bin/crew", line 11, in <module>
    load_entry_point('pitcrew==0.0.3', 'console_scripts', 'crew')()
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 1137, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.7/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/pitcrew/cli.py", line 99, in run
    loop.run_until_complete(run_task())
  File "/usr/local/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
    return future.result()
  File "/usr/local/lib/python3.7/site-packages/pitcrew/cli.py", line 75, in run_task
    task = app.load(task_name)
  File "/usr/local/lib/python3.7/site-packages/pitcrew/app.py", line 27, in load
    task = self.loader.load(task_name, self.local_context)
  File "/usr/local/lib/python3.7/site-packages/pitcrew/loader.py", line 44, in load
    return self.create_task(name, context)
  File "/usr/local/lib/python3.7/site-packages/pitcrew/loader.py", line 58, in create_task
    self.populate_task(task_name)
  File "/usr/local/lib/python3.7/site-packages/pitcrew/loader.py", line 86, in populate_task
    pkg = importlib.import_module(f".{task_name}", "pitcrew.tasks")
  File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 953, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 965, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'pitcrew.tasks.fs'
sv001vb-obsd2$

The requirements.txt:


Click==7.0
Jinja2==2.10.1
MarkupSafe==1.1.1
asn1crypto==0.24.0
asyncssh==1.16.1
cffi==1.12.3
cryptography==2.6.1
netaddr==0.7.19
pycparser==2.19
six==1.12.0
sv001vb-obsd2$ crew --help
Usage: crew [OPTIONS] COMMAND [ARGS]...

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  docs  generate docs
  edit  edit a task
  help  show help
  info  info a command
  list  list all tasks
  new   create a new task
  run   run a task
  sh    run a shell command
  test  run tests
sv001vb-obsd2$ crew --version
crew, version 0.0.3
sv001vb-obsd2$
joshbuddy commented 5 years ago

@vladp and this was off the latest on master? Hmmm, if you can get me an image I'd love to test it out. I tried to repo it with Openbsd 6.5, but I could get it working.