Hi @tebra,
Unfortunately I don’t know how to properly fix this.
There are still two workarounds that might get you by
- run homeassistant as root
- use custom (previous version) ping integration
You can find information on both options in this issue
Hi @tebra,
Unfortunately I don’t know how to properly fix this.
There are still two workarounds that might get you by
You can find information on both options in this issue
Thank you, I take the custom (previous version) ping integration.
Works very good for now.
But there is a log entry telling “Unable to find services.yaml for the old_ping integration”
If anybody is still trying to use the ESPHome plugin on TrueNAS CORE
Tool Manager: Installing platformio/toolchain-xtensa32 @ ~2.50200.0
Error: Could not find the package with 'platformio/toolchain-xtensa32 @ ~2.50200.0' requirements for your system 'freebsd_amd64'
I managed to get an updated version toolchain-xtensa32
compiled using this github repo
EDIT —
And also an updated toolchain-xtensa
compiled using this github repo
I uploaded the pre-compiled toolchains to GitHub. Instructions to manually update are in this issue
https://github.com/tprelog/iocage-esphome/issues/8#issuecomment-917463739
By now the updated requirements have made it to the plugin manifest for the 12.2-RELEASE, and I’ve also updated the plugin to use the ESP toolchains I compiled. A clean install of the ESPHome plugin should (at least for now) compile both ESP8266 and ESP32 firmwares out of the box.
For an existing plugin, running a Plugin UPDATE from the TrueNAS UI should also work - but may require some additional steps. If the ESPHome service fails to start after a Plugin UPDATE, you’ll need re-create the ESPHome virtualenv. This can easily be done from the jail’s console menu.
Use number 7 to remove
When the virtualenv is removed, number 7 will change to install
Firstly,
Another big thank you for continuing to support the plugins for TrueNAS Core.
I tried to uninstall and install from the menu, but ESPHome webui was unavailable. I then tried uninstall from the plugins menu and re-installed. That worked for me.
Frank
@troy So far the plugin was working very well and HA updates from plugin menu worked very well. Until today. When trying to upgrade HA to release 2021.10.0 the process fails at updating cryptography module with the following error:
Building wheels for collected packages: cryptography
Building wheel for cryptography (PEP 517) ... error
ERROR: Command errored out with exit status 1:
command: /usr/local/share/homeassistant/bin/python3.8 /usr/local/share/homeassistant/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py build_wheel /tmp/tmp7t48ovwx
cwd: /tmp/pip-install-7sttgmrm/cryptography
[...]
This package requires Rust >=1.41.0.
----------------------------------------
ERROR: Failed building wheel for cryptography
Failed to build cryptography
Down in the detail log I can see that it fails at finding rust
so I tried to install it in the homeassistant venv manually which fails as well. But also I can see that when trying to install rust in 1.41.0 the pip returns message that such version is not available.
Any ideas how to resolve it?
I have also tried to fresh install the plugin on the latest version of TrueNAS and it ends up with the same error. Below the full plugin install log.
Install Notes:
plugin_initialized: -> v6-20210307
plugin_version: -> v6-20210307
homeassistant_umask: -> 002
homeassistant_user: -> homeassistant
homeassistant_group: -> homeassistant
homeassistant_config_dir: -> /home/homeassistant/homeassistant
homeassistant_path: -> /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
homeassistant_python: -> /usr/local/bin/python3.8
homeassistant_venv: -> /usr/local/share/homeassistant
Collecting wheel
Downloading wheel-0.37.0-py2.py3-none-any.whl (35 kB)
Installing collected packages: wheel
Successfully installed wheel-0.37.0
Collecting homeassistant
Downloading homeassistant-2021.10.0-py3-none-any.whl (14.2 MB)
Collecting aiohttp==3.7.4.post0
Downloading aiohttp-3.7.4.post0.tar.gz (1.1 MB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'done'
Collecting astral==2.2
Downloading astral-2.2-py2.py3-none-any.whl (30 kB)
Collecting async_timeout==3.0.1
Downloading async_timeout-3.0.1-py3-none-any.whl (8.2 kB)
Collecting attrs==21.2.0
Downloading attrs-21.2.0-py2.py3-none-any.whl (53 kB)
Collecting awesomeversion==21.8.1
Downloading awesomeversion-21.8.1-py3-none-any.whl (12 kB)
Collecting backports.zoneinfo
Downloading backports.zoneinfo-0.2.1.tar.gz (74 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'done'
Collecting bcrypt==3.1.7
Downloading bcrypt-3.1.7.tar.gz (42 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'done'
Collecting certifi>=2021.5.30
Downloading certifi-2021.5.30-py2.py3-none-any.whl (145 kB)
Collecting ciso8601==2.2.0
Downloading ciso8601-2.2.0.tar.gz (18 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'done'
Collecting httpx==0.19.0
Downloading httpx-0.19.0-py3-none-any.whl (77 kB)
Collecting jinja2==3.0.1
Downloading Jinja2-3.0.1-py3-none-any.whl (133 kB)
Collecting PyJWT==2.1.0
Downloading PyJWT-2.1.0-py3-none-any.whl (16 kB)
Collecting cryptography==3.4.8
Downloading cryptography-3.4.8.tar.gz (546 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'done'
Collecting pip<20.3,>=8.0.3
Downloading pip-20.2.4-py2.py3-none-any.whl (1.5 MB)
Collecting python-slugify==4.0.1
Downloading python-slugify-4.0.1.tar.gz (11 kB)
Collecting pyyaml==5.4.1
Downloading PyYAML-5.4.1.tar.gz (175 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'done'
Collecting requests==2.26.0
Downloading requests-2.26.0-py2.py3-none-any.whl (62 kB)
Collecting voluptuous==0.12.2
Downloading voluptuous-0.12.2.tar.gz (48 kB)
Collecting voluptuous-serialize==2.4.0
Downloading voluptuous_serialize-2.4.0-py3-none-any.whl (6.7 kB)
Collecting yarl==1.6.3
Downloading yarl-1.6.3.tar.gz (176 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'done'
Collecting multidict<7.0,>=4.5
Downloading multidict-5.2.0.tar.gz (49 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing wheel metadata: started
Preparing wheel metadata: finished with status 'done'
Collecting typing-extensions>=3.6.5
Downloading typing_extensions-3.10.0.2-py3-none-any.whl (26 kB)
Collecting chardet<5.0,>=2.0
Downloading chardet-4.0.0-py2.py3-none-any.whl (178 kB)
Collecting pytz
Downloading pytz-2021.3-py2.py3-none-any.whl (503 kB)
Collecting six>=1.4.1
Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting cffi>=1.1
Downloading cffi-1.14.6.tar.gz (475 kB)
Collecting rfc3986[idna2008]<2,>=1.3
Downloading rfc3986-1.5.0-py2.py3-none-any.whl (31 kB)
Collecting sniffio
Downloading sniffio-1.2.0-py3-none-any.whl (10 kB)
Collecting httpcore<0.14.0,>=0.13.3
Downloading httpcore-0.13.7-py3-none-any.whl (58 kB)
Collecting charset-normalizer
Downloading charset_normalizer-2.0.6-py3-none-any.whl (37 kB)
Collecting MarkupSafe>=2.0
Downloading MarkupSafe-2.0.1.tar.gz (18 kB)
Collecting text-unidecode>=1.3
Downloading text_unidecode-1.3-py2.py3-none-any.whl (78 kB)
Collecting idna<4,>=2.5
Downloading idna-3.2-py3-none-any.whl (59 kB)
Collecting urllib3<1.27,>=1.21.1
Downloading urllib3-1.26.7-py2.py3-none-any.whl (138 kB)
Collecting pycparser
Downloading pycparser-2.20-py2.py3-none-any.whl (112 kB)
Collecting anyio==3.*
Downloading anyio-3.3.2-py3-none-any.whl (78 kB)
Collecting h11<0.13,>=0.11
Downloading h11-0.12.0-py3-none-any.whl (54 kB)
Building wheels for collected packages: aiohttp, bcrypt, ciso8601, cryptography, python-slugify, pyyaml, voluptuous, yarl, cffi, MarkupSafe, multidict, backports.zoneinfo
Building wheel for aiohttp (PEP 517): started
Building wheel for aiohttp (PEP 517): finished with status 'done'
Created wheel for aiohttp: filename=aiohttp-3.7.4.post0-cp38-cp38-freebsd_12_2_release_p10_amd64.whl size=655487 sha256=e2074326405a8d1a44b04cb0e9c4b24e62a221eb71e98cd8c6031cab651597ef
Stored in directory: /tmp/pip-ephem-wheel-cache-9ffewl3s/wheels/70/a6/74/e3ee8e169262359ed1d452bdfbe82e6420aa40ccfc2d727126
Building wheel for bcrypt (PEP 517): started
Building wheel for bcrypt (PEP 517): finished with status 'done'
Created wheel for bcrypt: filename=bcrypt-3.1.7-cp38-cp38-freebsd_12_2_release_p10_amd64.whl size=33910 sha256=6e76f787586d84ee6517ea1254e23c577141ce988cea48b9fbf11cab4dfa4845
Stored in directory: /tmp/pip-ephem-wheel-cache-9ffewl3s/wheels/08/dd/04/63fe9a4002c36105c358f90221e4882825a264edb9d8554163
Building wheel for ciso8601 (PEP 517): started
Building wheel for ciso8601 (PEP 517): finished with status 'done'
Created wheel for ciso8601: filename=ciso8601-2.2.0-cp38-cp38-freebsd_12_2_release_p10_amd64.whl size=14400 sha256=fb1beffd4586af1d4174a613b006162645ecfff04a1d3106ce99a643aff2ab0a
Stored in directory: /tmp/pip-ephem-wheel-cache-9ffewl3s/wheels/43/60/a0/19cfc2653f825144b434d455710d205ce1f80cdb498e202391
Building wheel for cryptography (PEP 517): started
Building wheel for cryptography (PEP 517): finished with status 'error'
Building wheel for cryptography (PEP 517): finished with status 'error'
ERROR: Command errored out with exit status 1:
command: /usr/local/share/homeassistant/bin/python3.8 /usr/local/share/homeassistant/lib/python3.8/site-packages/pip/_vendor/pep517/in_process/_in_process.py build_wheel /tmp/tmpg1faoexz
cwd: /tmp/pip-install-unkw18pm/cryptography_a937159bdf8d46de9496eaf129a02a93
Complete output (165 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8
creating build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography
copying src/cryptography/__about__.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography
copying src/cryptography/fernet.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography
copying src/cryptography/utils.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography
copying src/cryptography/__init__.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography
copying src/cryptography/exceptions.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography
creating build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/x509
copying src/cryptography/x509/name.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/x509
copying src/cryptography/x509/extensions.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/x509
copying src/cryptography/x509/__init__.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/x509
copying src/cryptography/x509/ocsp.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/x509
copying src/cryptography/x509/base.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/x509
copying src/cryptography/x509/certificate_transparency.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/x509
copying src/cryptography/x509/oid.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/x509
copying src/cryptography/x509/general_name.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/x509
creating build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat
copying src/cryptography/hazmat/_types.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat
copying src/cryptography/hazmat/_oid.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat
copying src/cryptography/hazmat/__init__.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat
copying src/cryptography/hazmat/_der.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat
creating build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/poly1305.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/_cipheralgorithm.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/keywrap.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/_serialization.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/padding.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/hmac.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/hashes.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/cmac.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/__init__.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/constant_time.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives
copying src/cryptography/hazmat/primitives/_asymmetric.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives
creating build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends
copying src/cryptography/hazmat/backends/interfaces.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends
copying src/cryptography/hazmat/backends/__init__.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends
creating build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/bindings
copying src/cryptography/hazmat/bindings/__init__.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/bindings
creating build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/__init__.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/base.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/pkcs12.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/pkcs7.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/serialization
copying src/cryptography/hazmat/primitives/serialization/ssh.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/serialization
creating build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/kbkdf.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/__init__.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/concatkdf.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/hkdf.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/pbkdf2.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/x963kdf.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/kdf
copying src/cryptography/hazmat/primitives/kdf/scrypt.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/kdf
creating build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/aead.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/modes.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/base.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/algorithms.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/ciphers
copying src/cryptography/hazmat/primitives/ciphers/__init__.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/ciphers
creating build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/dsa.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/dh.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/x448.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/utils.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/x25519.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/__init__.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/rsa.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/ec.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/ed25519.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/ed448.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/asymmetric
copying src/cryptography/hazmat/primitives/asymmetric/padding.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/asymmetric
creating build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/utils.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/hotp.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/__init__.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/twofactor
copying src/cryptography/hazmat/primitives/twofactor/totp.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/primitives/twofactor
creating build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/dsa.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ed25519.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ec.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/backend.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/hmac.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ciphers.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/x448.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ocsp.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/poly1305.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/x25519.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/ed448.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/rsa.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/decode_asn1.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/dh.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/x509.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/cmac.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/hashes.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/aead.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/utils.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/__init__.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
copying src/cryptography/hazmat/backends/openssl/encode_asn1.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/backends/openssl
creating build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/__init__.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/_conditional.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography/hazmat/bindings/openssl
copying src/cryptography/hazmat/bindings/openssl/binding.py -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/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 'tox.ini'
warning: no previously-included files found matching 'mypy.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'
writing manifest file 'src/cryptography.egg-info/SOURCES.txt'
copying src/cryptography/py.typed -> build/lib.freebsd-12.2-RELEASE-p10-amd64-3.8/cryptography
running build_ext
generating cffi module 'build/temp.freebsd-12.2-RELEASE-p10-amd64-3.8/_padding.c'
creating build/temp.freebsd-12.2-RELEASE-p10-amd64-3.8
generating cffi module 'build/temp.freebsd-12.2-RELEASE-p10-amd64-3.8/_openssl.c'
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.html for specific
instructions for your platform.
3) Check our frequently asked questions for more information:
https://cryptography.io/en/latest/faq.html
4) Ensure you have a recent Rust toolchain installed:
https://cryptography.io/en/latest/installation.html#rust
5) If you are experiencing issues with Rust for *this release only* you may
set the environment variable `CRYPTOGRAPHY_DONT_BUILD_RUST=1`.
=============================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.41.0.
----------------------------------------
Building wheel for cryptography (PEP 517): finished with status 'error'
ERROR: Failed building wheel for cryptography
Building wheel for python-slugify (setup.py): started
ERROR: Failed building wheel for cryptography
Building wheel for python-slugify (setup.py): finished with status 'done'
ERROR: Failed building wheel for cryptography
Created wheel for python-slugify: filename=python_slugify-4.0.1-py2.py3-none-any.whl size=6769 sha256=394be10099a1acd913860d116f245f7b1bdb37f09f2dc84b424245e62aabda61
Stored in directory: /tmp/pip-ephem-wheel-cache-9ffewl3s/wheels/91/4d/4f/e740a68c215791688c46c4d6251770a570e8dfea91af1acb5c
ERROR: Failed building wheel for cryptography
Building wheel for pyyaml (PEP 517): started
ERROR: Failed building wheel for cryptography
Building wheel for pyyaml (PEP 517): finished with status 'done'
ERROR: Failed building wheel for cryptography
Created wheel for pyyaml: filename=PyYAML-5.4.1-cp38-cp38-freebsd_12_2_release_p10_amd64.whl size=45670 sha256=5ffb8dc253e98f78786a21235d74379d1cace768ea3bd8de0523e18dff8994f1
ERROR: Failed building wheel for cryptography
Stored in directory: /tmp/pip-ephem-wheel-cache-9ffewl3s/wheels/dd/c5/1d/5d7436173d3efd4a14dcb510eb0b29525ecb6b0e41489e716e
ERROR: Failed building wheel for cryptography
Building wheel for voluptuous (setup.py): started
ERROR: Failed building wheel for cryptography
Building wheel for voluptuous (setup.py): finished with status 'done'
ERROR: Failed building wheel for cryptography
Created wheel for voluptuous: filename=voluptuous-0.12.2-py3-none-any.whl size=29551 sha256=4f9c0ab42a6d462cd67e3e929666f28313f7f4a1ea3ccd84a4164ed16921c9dc
ERROR: Failed building wheel for cryptography
Stored in directory: /tmp/pip-ephem-wheel-cache-9ffewl3s/wheels/63/c0/d7/d09babb5ec150707e09d6cabd2850c2ab322b3fb37b3081511
ERROR: Failed building wheel for cryptography
Building wheel for yarl (PEP 517): started
ERROR: Failed building wheel for cryptography
Building wheel for yarl (PEP 517): finished with status 'done'
ERROR: Failed building wheel for cryptography
Created wheel for yarl: filename=yarl-1.6.3-cp38-cp38-freebsd_12_2_release_p10_amd64.whl size=126659 sha256=b76649aa3c5eb16c088defde1218020e5634002671d52b29dbf15878ee159fd1
ERROR: Failed building wheel for cryptography
Stored in directory: /tmp/pip-ephem-wheel-cache-9ffewl3s/wheels/03/1d/d3/9693ea3024088fd2555f0cdbb42cb6b133e389a8e68502f85f
ERROR: Failed building wheel for cryptography
Building wheel for cffi (setup.py): started
ERROR: Failed building wheel for cryptography
Building wheel for cffi (setup.py): finished with status 'done'
ERROR: Failed building wheel for cryptography
Created wheel for cffi: filename=cffi-1.14.6-cp38-cp38-freebsd_12_2_release_p10_amd64.whl size=181707 sha256=e34142f9e237b45122537db811e5af610e432a2517cedc769c5b99157bbca665
ERROR: Failed building wheel for cryptography
Stored in directory: /tmp/pip-ephem-wheel-cache-9ffewl3s/wheels/21/a9/81/c074a48686fe8c1ffada1f9e5f53b553c0f766503c0b991c23
ERROR: Failed building wheel for cryptography
Building wheel for MarkupSafe (setup.py): started
ERROR: Failed building wheel for cryptography
Building wheel for MarkupSafe (setup.py): finished with status 'done'
ERROR: Failed building wheel for cryptography
Created wheel for MarkupSafe: filename=MarkupSafe-2.0.1-cp38-cp38-freebsd_12_2_release_p10_amd64.whl size=15220 sha256=cc7479f2756bd87c353e16491824e4182d11c324110b512591bdd358c93cd8b2
ERROR: Failed building wheel for cryptography
Stored in directory: /tmp/pip-ephem-wheel-cache-9ffewl3s/wheels/fd/ac/52/de22dc1b1f975843caa5d0e8c817618b816345617c1b01039b
ERROR: Failed building wheel for cryptography
Building wheel for multidict (PEP 517): started
ERROR: Failed building wheel for cryptography
Building wheel for multidict (PEP 517): finished with status 'done'
ERROR: Failed building wheel for cryptography
Created wheel for multidict: filename=multidict-5.2.0-cp38-cp38-freebsd_12_2_release_p10_amd64.whl size=48701 sha256=0b239ad5f4af584c87f8f96db6068f20591afbdd46dce9a4926fea909537632c
ERROR: Failed building wheel for cryptography
Stored in directory: /tmp/pip-ephem-wheel-cache-9ffewl3s/wheels/cb/1d/38/bdfe293de7fdfdd2a0bd91c93059ffd2eb3f747a63d6018629
ERROR: Failed building wheel for cryptography
Building wheel for backports.zoneinfo (PEP 517): started
ERROR: Failed building wheel for cryptography
Building wheel for backports.zoneinfo (PEP 517): finished with status 'done'
ERROR: Failed building wheel for cryptography
Created wheel for backports.zoneinfo: filename=backports.zoneinfo-0.2.1-cp38-cp38-freebsd_12_2_release_p10_amd64.whl size=37306 sha256=63aafdccd43827dea26a246c9771c13546f49191087c87758a0ecb7a9808744f
ERROR: Failed building wheel for cryptography
Stored in directory: /tmp/pip-ephem-wheel-cache-9ffewl3s/wheels/c7/de/cc/c405827ed64f81b56142f1e0075a970b2731b00d21983d54fb
ERROR: Failed building wheel for cryptography
Successfully built aiohttp bcrypt ciso8601 python-slugify pyyaml voluptuous yarl cffi MarkupSafe multidict backports.zoneinfo
ERROR: Failed building wheel for cryptography
Failed to build cryptography
ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly
homeassistant_enable: -> YES
ERROR: Could not build wheels for cryptography which use PEP 517 and cannot be installed directly
homeassistant_enable: -> YES
/usr/local/etc/rc.d/homeassistant: ERROR: /usr/local/share/homeassistant/bin/hass is not found or is not executable
/usr/local/etc/rc.d/homeassistant: ERROR: /usr/local/share/homeassistant/bin/hass is not found or is not executable
Admin Portal:
http://10.144.1.112:8123
Doc URL:
https://github.com/tprelog/iocage-homeassistant/wiki
@adorobis – I think you’ll need to install rust
in the jail itself, not directly in the virtualenv.
Please try the following
iocage console $JAIL_NAME
# press 0 to exit menu
pkg install rust
Now you should be able to restart the menu and try again to upgrade Home Assistant.
The command to restart the menu is simple - menu
Please let me know if this works.
Yeah, I’ve just realised that rust is not a python package… And bingo! now the upgrade was successful
Many thanks! Probably the plugin will have to be updated to include rust now.
Worked perfectly, thanks Troy.
Hello, thank you very much for your guide on the plugin.
PS: I am a noob on FreeBSD, TrueNAS and jails.
The installation isn’t working on my server. The plugin installs fine but the management page does not show up. Running service homeassistant start
on the jail shell gives me this error : /usr/local/etc/rc.d/homeassistant: ERROR: /usr/local/share/homeassistant/bin/hass is not found or is not executable
The file /usr/local/share/homeassistant/bin/hass doesn’t exist and installing AppDaemon and the Configurator through the Console Menu didn’t help.
The only thing from the guide I did different was the jail DHCP, which I turned off and set as a static IP, however I think this shouldn’t cause a problem.
Thank you for your much appreciated help.
Hi @davifah – Sorry for the trouble
Currently there is a missing dependency in the plugin manifest.
I have just pushed a temporary fix for the plugin installation, please try the install again and let me know if it works. Thanks
It works now, thank you
Thanks @adorobis for reporting another missing requirement - libjpeg-turbo
Quick recap - if your trying to upgrade to Home Assistant 2021.10
, there are two packages you’ll need to install before the upgrade is successful.
iocage console $JAIL_NAME
# press 0 to exit menu
pkg install -y rust libjpeg-turbo
These packages have been added to the plugin manifest in the master branch at https://github.com/ix-plugin-hub/iocage-plugin-index - However they will still need to be merged with the 12.2-RELEASE branch before a Plugin UPDATE will install them.
NOTE about manually installing packages in a plugin jail
So how iocage handles Plugin UPDATES is that it completely removes all packages from the jail on update and then installs them new. This means if you manually install any packages in your jail they will be removed during the Plugin UPDATE and will not be reinstalled.
Some time ago, I added a workaround so users can install extra packages not included in the manifest and preserve them though a Plugin UPDATE. This workaround has never been documented before
Here’s how it works.
This is done inside the jail - For any additional packages you would like to have installed in your jail, you can create a pkglist. The pgklist is simply a text file containing on package per line. When created, there are two remaining steps to follow
sysrc plugin_pkglist="/path/to/pkglist"
to set a pkglistsysrc plugin_enable_pkglist=YES
to enableYou do not need to implement this workaround for rust
or libjpeg-turbo
since they will be added to plugin manifest but I figure now is a good time to mention this, since I have not done so before
Thanks @troy or sharing that info on jail updates! I have quite a few packages installed on the HA jail which are not part of the HA requirements. I’m hesitating to update jail the plugin and jail from the plugin menu, what would be your recommendation on when to do it? With every TrueNAS major update?
This is a great question but one that’s not so easy to answer because I (or any plugin maintainer) really don’t have full control over the process.
One quick example - When you run a Plugin UPDATE the artifact repo is cloned first, then the pre_updates.sh
script is run before anything else - Since the repo was cloned first, a Plugin UPDATE will always run the most recent version of the pre_update.sh
script – However a Jail UPGRADE does not clone the repo until after the upgrade has completed so the pre_update.sh
could be outdated or even missing all together.
It would take me a month of Sundays to lay it all out in detail so let’s just say for now, there are differences in the way Plugin UPDATES and Jail UPGRADES are handled by TrueNAS.
I think a Jail UPGRADE should only be needed when a Plugin UPDATE fails as seen below
In reality, it’s pretty hard to break the underlying jail and this plugin has several undocumented ways to reinstall Home Assistant, but troubleshooting takes time and often requires multiple attempts to get everything working again – Honestly, I think a Jail UPGRADE is more trouble than it’s worth.
I recommend users just reinstall the plugin instead. If you’re using an external dataset for the configuration, this should be rather trivial.
For a Plugin UPDATE… The more I think about it, the harder it is to answer. On one hand, even if the plugin manifest and artifact repo have not changed, regular plugin updates will keep system packages up to date. On the other hand, if that update includes a python point release (from 3.8.5
to 3.8.6
) you should rebuild all the virtualenv to take advantage of any optimisations or bug fixes. In other words, they may continue to work, but you really should reinstall them.
There’s already some options for re-installing or upgrading Home Assistant during a Plugin UPDATE. I can trigger these as needed, or they can be enabled by users for every Plugin UPDATE.
clean-install will delete the existing, then re-install Home Assistant to a new virtualenv
sysrc plugin_clean_install_service=YES
to enableforce-reinstall will re-install Home Assistant to the existing virtualenv
sysrc plugin_force_reinstall_service=YES
to enableupgrade will update Home Assistant
sysrc plugin_upgrade_service=YES
to enableThey are checked in the order listed above. Only the first enabled action will be taken. Depending on the server hardware combined with the number of integration you’re using, it can take anywhere from just a few minutes to almost an hour to completely reinstall Home Assistant and all your integrations.
Thinking about it now, I need to add an option that updates the plugin overlay, without relying on a Plugin UPDATE - This would allow to at least keep the main files I provide up to date.
At that point, I would suggest to enable clean-install and run a Plugin UPDATE every 3-6 months, depending on how long it takes. At minimum everyone needs to clean-install Home Assistant about once per year, that is when the minor python version is changed (say from 3.8
to 3.9
)
I think for the slowest servers or if you’re only updating to meet minimum python requirements, I would recommend to just reinstall this plugin on the about yearly basis.
Fortunately, TrueNAS will always take a snapshot of your plugin before a Plugin UPDATE (or Jail UPGRADE). You can see this clearly when updating a plugin using the TrueNAS console.
iocage update ha-example
Snapshot: tank/iocage/jails/ha-example@ioc_update_12.2-RELEASE-p10_2021-10-09_10-07-14 created.
Updating plugin...
If this update failed or in some way breaks Home Assistant you can usually just rollback the snapshot.
iocage stop ha-example
...
iocage rollback ha-example -n ioc_update_12.2-RELEASE-p10_2021-10-09_10-07-14
This will destroy ALL data created including ALL snapshots taken after the snapshot ioc_update_12.2-RELEASE-p10_2021-10-09_10-07-14
Are you sure? [y/N]: y
Rolled back to: tank/iocage/jails/ha-example
Also worth mentioning here, any TrueNAS plugin can be exported to a zip file. If you’re planning to re-install, this is a good way to backup a plugin before its destroyed.
iocage export ha-example
Exporting dataset: tank/iocage/jails/ha-example
Exporting dataset: tank/iocage/jails/ha-example/root
Preparing compressed file: /mnt/tank/iocage/images/ha-example_2021-10-09.zip.
Exported: /mnt/tank/iocage/images/ha-example_2021-10-09.zip
Keep in mind, if you are using a separate dataset for your configuration (as I recommend) it will not be deleted when you destroy the plugin, This also means it will not be included in either the snapshot or exported zip backup shown above. With that in mind, I suggest taking separate snapshots of your configuration on a regular basis, and especially before a Plugin UPDATE
Probably in the next month or two, I’ll need to update this plugin to use python 3.9. Since my last reply I’m thinking about some other small improvements I can make.
As I mentioned earlier, there’s a way to ensure FreeBSD packages get reinstalled after an update. But there is nothing to get your packages installed if you reinstall the plugin.
Here’s a quick way to that manually
First command will create a pkglist. This will contain packages from the manifest and those you installed. You can use this as is, or edit and delete any packages you did not install yourself. The second command will reinstall the packages from the list.
pkg prime-list > pkglist
cat pkglist | xargs pkg install -y
Have you installed additional python packages inside any of the virtualenv ?
I, for one, am intrigued. Which other packages have you installed in HA and for what purpose?
@troy Many thanks for comprehensive explanation. Need to find some time to try the plugin update, good to know that standard snapshots are enough to restore it in case the update fails.
Regarding python packages - yes I have a few installed in HA venv as well as in another venv I’ve created in the same jail (I could actually consider moving it to a separate jail). But there is not many of them and I should be good to install them manually after plugin update (they show up in HA log immediately if missing).