Home Assistant Core -- TrueNAS CORE Community Plugin

Hi Troy,
Have you had time to have a look at the ZFS Snapshot yaml error?

Hi Troy, I was having the exact same issue with a PyNaCl error and fixed my issue following your instructions.

1 Like

Not yet @Tromperie - I’ll try to prioritize that for this weekend.

Look after yourself first. You do so much and I feel guilty asking.

Hey @Tromperie – Can you say exactly what you did to produce this error ?

I have tried creating a new automation using the blueprint, removing it, and creating it again but I can not reproduce your error.

Are you having an error when trying to create the automation, or when it tries to run ?

Any chance this is a simple oversight when entering the dataset name ? It may not be obvious from the blueprint comments, the dataset should be entered beginning with the zpool as follows

zpool/path/to/dataset

@troy,
I tried to install the snapshot several times but always end up with this error message in the homeassistant/blueprints/automation/truenas_api/zfs_snapshot.yaml.
HA ZFS Error message

Despite the error message, I have saved the file and tried to install the blueprint. It seems to work but it wrecks all of my automation, so much so the Automations label does not appear under Blueprints in the Configuration page. To restore the automations, I have to delete the entry in the automations.yaml and restart HA.

I am having the same issue with this: Fancy Home Assistant Update Available Notifier for Android (With customizable notification settings). The same error message appears and installing that blueprint also wrecks all automations. In that thread, @KTibow posted this:

It’s not an error, it’s just that the file editor inside of the addon is a more general one, and the syntax checker wasn’t updated for Home Assistant.quote

It is so odd I have consistent errors that no one else can replicate using the same code. This is what the automation looks like, what I am about to delete to ‘rescue’ my automations.

  • id: ‘1616896956678’
    alias: Daily ZFS Snapshot
    description: ‘’
    use_blueprint:
    path: truenas_api/zfs_snapshot.yaml
    input:
    trigger_time: ‘23:45:00’
    dataset_name: Vol2/jailsconfigs/homeassistant
    send_notification: true
    notify_device: 9bbbf9f624144b6894f91033f30fb1a4

EDIT: I just realized, your seeing this error in the File Editor, not in Home Assistant, correct?

I was confused at first by KTibow reply, ( thinking you saw the error in Home Assistant ) but that is correct - The syntax checking is not up to date. I have the same error opening the blueprint using the File Editor, and agree the error can be ignored

Please check your copy / paste - I notice my automation has some indented lines that your does not…

- id: '1615492761147'
  alias: Daily ZFS Snapshot
  description: Configuration Snapshot
  use_blueprint:
    path: truenas_api/zfs_snapshot.yaml
    input:
      trigger_time: '23:45:00'
      dataset_name: nvme/ioyard/homeassistant
      send_notification: true
      notify_device: 7029ed46910145959b799762a087d9f3

It is odd though - If your importing a blueprint and creating the automation from the UI, I don’t see how there could be a formatting error. (I’m thinking formatting just got lost in your post)

I just added that blueprint myself using the My Import Blueprint button and it works just fine.

The File Editor is convenient to have in the browser, but I hardly use it anymore. VS-Code is a bit overkill for just editing Home Assistant config, but combined with Home Assistant Config Helper, I think it’s the best option if you edit the yaml files by hand. – If I remember correctly, you had most of this setup when we were trying to get HA running on SCALE…

That still doesn’t explain why adding either blueprint is crashing your automations…

Is anyone still having trouble with the large HACS icon showing up below every webpage in Home Assistant?

I have tried what other thread has mentioned about this issue. I have cleared my browser cache, closed it, opened it, and logged in. The massive icon is still there. I have also uninstalled HACS, deleted all folders in appdaemon fstab location, reinstalled it, cleared by browser cache, and tried again. The icon is still there.

Thanks, Troy.

This, plus commenting out the host ip, and type: alexa got mine working, but only when using discovery request by voice on Echo Show 5

1 Like

upgrade of appdaemon fails
when upgrading appdaemon (option ‘4’ of the menu), using the latest version of truenas with an up-to-date plugin/jail/packages, I get the following error log:

....
  Building wheel for uvloop (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/local/share/appdaemon/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-0kw9o6w8/uvloop_c6df6992169342b3973445e7c79c3925/setup.py'"'"'; __file__='"'"'/tmp/pip-install-0kw9o6w8/uvloop_c6df6992169342b3973445e7c79c3925/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-plqvnp4x
       cwd: /tmp/pip-install-0kw9o6w8/uvloop_c6df6992169342b3973445e7c79c3925/
  Complete output (176 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8
  creating build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/_testbase.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/__init__.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/_patch.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/_noop.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  running egg_info
  writing uvloop.egg-info/PKG-INFO
  writing dependency_links to uvloop.egg-info/dependency_links.txt
  writing top-level names to uvloop.egg-info/top_level.txt
  reading manifest file 'uvloop.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no previously-included files matching '*' found under directory 'vendor/libuv/.git'
  warning: no previously-included files matching '*' found under directory 'vendor/libuv/docs'
  warning: no previously-included files matching '*' found under directory 'vendor/libuv/img'
  writing manifest file 'uvloop.egg-info/SOURCES.txt'
  copying uvloop/cbhandles.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/cbhandles.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/dns.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/errors.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/loop.c -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/loop.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/loop.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/lru.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/pseudosock.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/request.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/request.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/server.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/server.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/sslproto.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/sslproto.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  creating build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/async_.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/async_.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/basetransport.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/basetransport.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/check.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/check.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/handle.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/handle.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/idle.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/idle.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/pipe.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/pipe.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/poll.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/poll.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/process.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/process.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/stream.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/stream.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/streamserver.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/streamserver.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/tcp.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/tcp.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/timer.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/timer.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/udp.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/udp.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  creating build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/__init__.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/compat.h -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/consts.pxi -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/debug.h -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/debug.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/flowcontrol.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/fork_handler.h -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/python.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/stdlib.pxi -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/system.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/uv.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  running build_ext
  checking for a BSD-compatible install... /usr/bin/install -c
  checking whether build environment is sane... yes
  checking for a thread-safe mkdir -p... ./install-sh -c -d
  checking for gawk... no
  checking for mawk... no
  checking for nawk... nawk
  checking whether make sets $(MAKE)... yes
  checking whether make supports nested variables... yes
  checking build system type... x86_64-unknown-freebsd12.2
  checking host system type... x86_64-unknown-freebsd12.2
  checking for gcc... gcc
  checking whether the C compiler works... yes
  checking for C compiler default output file name... a.out
  checking for suffix of executables...
  checking whether we are cross compiling... no
  checking for suffix of object files... o
  checking whether we are using the GNU C compiler... yes
  checking whether gcc accepts -g... yes
  checking for gcc option to accept ISO C89... none needed
  checking whether gcc understands -c and -o together... yes
  checking for style of include used by make... GNU
  checking dependency style of gcc... none
  checking if gcc supports -pedantic flag... yes
  checking for gcc way to treat warnings as errors... -Werror
  checking if gcc supports -fvisibility=hidden... yes
  checking if gcc supports -g flag... yes
  checking if gcc supports -std=gnu89 flag... yes
  checking if gcc supports -Wall flag... yes
  checking if gcc supports -Wextra flag... yes
  checking if gcc supports -Wno-long-long flag... yes
  checking if gcc supports -Wno-unused-parameter flag... yes
  checking if gcc supports -Wstrict-prototypes flag... yes
  checking for ar... ar
  checking the archiver (ar) interface... ar
  checking how to print strings... printf
  checking for a sed that does not truncate output... /usr/bin/sed
  checking for grep that handles long lines and -e... /usr/bin/grep
  checking for egrep... /usr/bin/grep -E
  checking for fgrep... /usr/bin/grep -F
  checking for ld used by gcc... /usr/local/bin/ld
  checking if the linker (/usr/local/bin/ld) is GNU ld... yes
  checking for BSD- or MS-compatible name lister (nm)... /usr/local/bin/nm -B
  checking the name lister (/usr/local/bin/nm -B) interface... BSD nm
  checking whether ln -s works... yes
  checking the maximum length of command line arguments... 393216
  checking whether the shell understands some XSI constructs... yes
  checking whether the shell understands "+="... no
  checking how to convert x86_64-unknown-freebsd12.2 file names to x86_64-unknown-freebsd12.2 format... func_convert_file_noop
  checking how to convert x86_64-unknown-freebsd12.2 file names to toolchain format... func_convert_file_noop
  checking for /usr/local/bin/ld option to reload object files... -r
  checking for objdump... objdump
  checking how to recognize dependent libraries... ld-elf.so.1: /usr/local/libexec/gcc10/gcc/x86_64-portbld-freebsd12.2/10.2.0/cc1: Undefined symbol "fwrite_unlocked@FBSD_1.6"
  pass_all
  checking for dlltool... no
  checking how to associate runtime and link libraries... printf %s\n
  checking for archiver @FILE support... no
  checking for strip... strip
  checking for ranlib... ranlib
  checking command to parse /usr/local/bin/nm -B output from gcc object... ok
  checking for sysroot... no
  checking for mt... mt
  checking if mt is a manifest tool... no
  checking how to run the C preprocessor... /lib/cpp
  configure: error: in `/tmp/pip-install-0kw9o6w8/uvloop_c6df6992169342b3973445e7c79c3925/build/libuv':
  configure: error: C preprocessor "/lib/cpp" fails sanity check
  See `config.log' for more details
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-install-0kw9o6w8/uvloop_c6df6992169342b3973445e7c79c3925/setup.py", line 233, in <module>
      setup(
    File "/usr/local/share/appdaemon/lib/python3.8/site-packages/setuptools/__init__.py", line 165, in setup
      return distutils.core.setup(**attrs)
    File "/usr/local/lib/python3.8/distutils/core.py", line 148, in setup
      dist.run_commands()
    File "/usr/local/lib/python3.8/distutils/dist.py", line 966, in run_commands
      self.run_command(cmd)
    File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/usr/local/share/appdaemon/lib/python3.8/site-packages/wheel/bdist_wheel.py", line 299, in run
      self.run_command('build')
    File "/usr/local/lib/python3.8/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/usr/local/lib/python3.8/distutils/command/build.py", line 135, in run
      self.run_command(cmd_name)
    File "/usr/local/lib/python3.8/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/usr/local/share/appdaemon/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 87, in run
      _build_ext.run(self)
    File "/usr/local/lib/python3.8/distutils/command/build_ext.py", line 340, in run
      self.build_extensions()
    File "/tmp/pip-install-0kw9o6w8/uvloop_c6df6992169342b3973445e7c79c3925/setup.py", line 198, in build_extensions
      self.build_libuv()
    File "/tmp/pip-install-0kw9o6w8/uvloop_c6df6992169342b3973445e7c79c3925/setup.py", line 177, in build_libuv
      subprocess.run(
    File "/usr/local/lib/python3.8/subprocess.py", line 516, in run
      raise CalledProcessError(retcode, process.args,
  subprocess.CalledProcessError: Command '['./configure']' returned non-zero exit status 1.
  ----------------------------------------
  ERROR: Failed building wheel for uvloop
  Running setup.py clean for uvloop
Successfully built bcrypt cchardet paho-mqtt pyyaml
Failed to build uvloop
Installing collected packages: uvloop, pyyaml, python-socketio, pygments, pid, paho-mqtt, iso8601, feedparser, deepdiff, cchardet, bcrypt, azure-storage-blob, azure-mgmt-storage, azure-mgmt-resource, azure-mgmt-compute, azure-keyvault-secrets, astral, aiohttp-jinja2, aiodns, appdaemon
    Running setup.py install for uvloop ... error
    ERROR: Command errored out with exit status 1:
     command: /usr/local/share/appdaemon/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-0kw9o6w8/uvloop_c6df6992169342b3973445e7c79c3925/setup.py'"'"'; __file__='"'"'/tmp/pip-install-0kw9o6w8/uvloop_c6df6992169342b3973445e7c79c3925/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-wly669o8/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/share/appdaemon/include/site/python3.8/uvloop
         cwd: /tmp/pip-install-0kw9o6w8/uvloop_c6df6992169342b3973445e7c79c3925/
    Complete output (177 lines):
    running install
    running build
    running build_py
    creating build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8
    creating build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/_testbase.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/__init__.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/_patch.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/_noop.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    running egg_info
    writing uvloop.egg-info/PKG-INFO
    writing dependency_links to uvloop.egg-info/dependency_links.txt
    writing top-level names to uvloop.egg-info/top_level.txt
    reading manifest file 'uvloop.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no previously-included files matching '*' found under directory 'vendor/libuv/.git'
    warning: no previously-included files matching '*' found under directory 'vendor/libuv/docs'
    warning: no previously-included files matching '*' found under directory 'vendor/libuv/img'
    writing manifest file 'uvloop.egg-info/SOURCES.txt'
    copying uvloop/cbhandles.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/cbhandles.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/dns.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/errors.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/loop.c -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/loop.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/loop.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/lru.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/pseudosock.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/request.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/request.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/server.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/server.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/sslproto.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/sslproto.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    creating build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/async_.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/async_.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/basetransport.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/basetransport.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/check.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/check.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/handle.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/handle.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/idle.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/idle.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/pipe.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/pipe.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/poll.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/poll.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/process.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/process.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/stream.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/stream.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/streamserver.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/streamserver.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/tcp.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/tcp.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/timer.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/timer.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/udp.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/udp.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    creating build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/__init__.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/compat.h -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/consts.pxi -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/debug.h -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/debug.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/flowcontrol.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/fork_handler.h -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/python.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/stdlib.pxi -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/system.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/uv.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    running build_ext
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... ./install-sh -c -d
    checking for gawk... no
    checking for mawk... no
    checking for nawk... nawk
    checking whether make sets $(MAKE)... yes
    checking whether make supports nested variables... yes
    checking build system type... x86_64-unknown-freebsd12.2
    checking host system type... x86_64-unknown-freebsd12.2
    checking for gcc... gcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking whether gcc understands -c and -o together... yes
    checking for style of include used by make... GNU
    checking dependency style of gcc... none
    checking if gcc supports -pedantic flag... yes
    checking for gcc way to treat warnings as errors... -Werror
    checking if gcc supports -fvisibility=hidden... yes
    checking if gcc supports -g flag... yes
    checking if gcc supports -std=gnu89 flag... yes
    checking if gcc supports -Wall flag... yes
    checking if gcc supports -Wextra flag... yes
    checking if gcc supports -Wno-long-long flag... yes
    checking if gcc supports -Wno-unused-parameter flag... yes
    checking if gcc supports -Wstrict-prototypes flag... yes
    checking for ar... ar
    checking the archiver (ar) interface... ar
    checking how to print strings... printf
    checking for a sed that does not truncate output... /usr/bin/sed
    checking for grep that handles long lines and -e... /usr/bin/grep
    checking for egrep... /usr/bin/grep -E
    checking for fgrep... /usr/bin/grep -F
    checking for ld used by gcc... /usr/local/bin/ld
    checking if the linker (/usr/local/bin/ld) is GNU ld... yes
    checking for BSD- or MS-compatible name lister (nm)... /usr/local/bin/nm -B
    checking the name lister (/usr/local/bin/nm -B) interface... BSD nm
    checking whether ln -s works... yes
    checking the maximum length of command line arguments... 393216
    checking whether the shell understands some XSI constructs... yes
    checking whether the shell understands "+="... no
    checking how to convert x86_64-unknown-freebsd12.2 file names to x86_64-unknown-freebsd12.2 format... func_convert_file_noop
    checking how to convert x86_64-unknown-freebsd12.2 file names to toolchain format... func_convert_file_noop
    checking for /usr/local/bin/ld option to reload object files... -r
    checking for objdump... objdump
    checking how to recognize dependent libraries... ld-elf.so.1: /usr/local/libexec/gcc10/gcc/x86_64-portbld-freebsd12.2/10.2.0/cc1: Undefined symbol "fwrite_unlocked@FBSD_1.6"
    pass_all
    checking for dlltool... no
    checking how to associate runtime and link libraries... printf %s\n
    checking for archiver @FILE support... no
    checking for strip... strip
    checking for ranlib... ranlib
    checking command to parse /usr/local/bin/nm -B output from gcc object... ok
    checking for sysroot... no
    checking for mt... mt
    checking if mt is a manifest tool... no
    checking how to run the C preprocessor... /lib/cpp
    configure: error: in `/tmp/pip-install-0kw9o6w8/uvloop_c6df6992169342b3973445e7c79c3925/build/libuv':
    configure: error: C preprocessor "/lib/cpp" fails sanity check
    See `config.log' for more details
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-0kw9o6w8/uvloop_c6df6992169342b3973445e7c79c3925/setup.py", line 233, in <module>
        setup(
      File "/usr/local/share/appdaemon/lib/python3.8/site-packages/setuptools/__init__.py", line 165, in setup
        return distutils.core.setup(**attrs)
      File "/usr/local/lib/python3.8/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/usr/local/lib/python3.8/distutils/dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/usr/local/share/appdaemon/lib/python3.8/site-packages/setuptools/command/install.py", line 61, in run
        return orig.install.run(self)
      File "/usr/local/lib/python3.8/distutils/command/install.py", line 545, in run
        self.run_command('build')
      File "/usr/local/lib/python3.8/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/usr/local/lib/python3.8/distutils/command/build.py", line 135, in run
        self.run_command(cmd_name)
      File "/usr/local/lib/python3.8/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/usr/local/share/appdaemon/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 87, in run
        _build_ext.run(self)
      File "/usr/local/lib/python3.8/distutils/command/build_ext.py", line 340, in run
        self.build_extensions()
      File "/tmp/pip-install-0kw9o6w8/uvloop_c6df6992169342b3973445e7c79c3925/setup.py", line 198, in build_extensions
        self.build_libuv()
      File "/tmp/pip-install-0kw9o6w8/uvloop_c6df6992169342b3973445e7c79c3925/setup.py", line 177, in build_libuv
        subprocess.run(
      File "/usr/local/lib/python3.8/subprocess.py", line 516, in run
        raise CalledProcessError(retcode, process.args,
    subprocess.CalledProcessError: Command '['./configure']' returned non-zero exit status 1.
    ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/local/share/appdaemon/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-0kw9o6w8/uvloop_c6df6992169342b3973445e7c79c3925/setup.py'"'"'; __file__='"'"'/tmp/pip-install-0kw9o6w8/uvloop_c6df6992169342b3973445e7c79c3925/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-wly669o8/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/share/appdaemon/include/site/python3.8/uvloop Check the logs for full command output.

Press ENTER to continue...

I get an error upgrading appdaemon.
building of uvloop fails with the attached log
My TrueNas version is: FreeBSD 12.2-RELEASE-p6 f2858df162b(HEAD) TRUENAS
the home assistant jail version is: 12.1-RELEASE-p13
other than this error home assistant seems to be working fine

  Building wheel for uvloop (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/local/share/appdaemon/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-bgy5qsns/uvloop_fdaf417b01ad42c0ba6154c8add33b4f/setup.py'"'"'; __file__='"'"'/tmp/pip-install-bgy5qsns/uvloop_fdaf417b01ad42c0ba6154c8add33b4f/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-mcx74fql
       cwd: /tmp/pip-install-bgy5qsns/uvloop_fdaf417b01ad42c0ba6154c8add33b4f/
  Complete output (176 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8
  creating build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/_noop.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/__init__.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/_testbase.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/_patch.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  running egg_info
  writing uvloop.egg-info/PKG-INFO
  writing dependency_links to uvloop.egg-info/dependency_links.txt
  writing top-level names to uvloop.egg-info/top_level.txt
  reading manifest file 'uvloop.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no previously-included files matching '*' found under directory 'vendor/libuv/.git'
  warning: no previously-included files matching '*' found under directory 'vendor/libuv/docs'
  warning: no previously-included files matching '*' found under directory 'vendor/libuv/img'
  writing manifest file 'uvloop.egg-info/SOURCES.txt'
  copying uvloop/cbhandles.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/cbhandles.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/dns.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/errors.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/loop.c -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/loop.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/loop.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/lru.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/pseudosock.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/request.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/request.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/server.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/server.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/sslproto.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  copying uvloop/sslproto.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
  creating build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/async_.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/async_.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/basetransport.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/basetransport.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/check.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/check.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/handle.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/handle.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/idle.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/idle.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/pipe.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/pipe.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/poll.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/poll.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/process.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/process.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/stream.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/stream.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/streamserver.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/streamserver.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/tcp.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/tcp.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/timer.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/timer.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/udp.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  copying uvloop/handles/udp.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
  creating build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/__init__.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/compat.h -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/consts.pxi -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/debug.h -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/debug.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/flowcontrol.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/fork_handler.h -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/python.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/stdlib.pxi -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/system.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  copying uvloop/includes/uv.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
  running build_ext
  checking for a BSD-compatible install... /usr/bin/install -c
  checking whether build environment is sane... yes
  checking for a thread-safe mkdir -p... ./install-sh -c -d
  checking for gawk... no
  checking for mawk... no
  checking for nawk... nawk
  checking whether make sets $(MAKE)... yes
  checking whether make supports nested variables... yes
  checking build system type... x86_64-unknown-freebsd12.2
  checking host system type... x86_64-unknown-freebsd12.2
  checking for gcc... gcc
  checking whether the C compiler works... yes
  checking for C compiler default output file name... a.out
  checking for suffix of executables...
  checking whether we are cross compiling... no
  checking for suffix of object files... o
  checking whether we are using the GNU C compiler... yes
  checking whether gcc accepts -g... yes
  checking for gcc option to accept ISO C89... none needed
  checking whether gcc understands -c and -o together... yes
  checking for style of include used by make... GNU
  checking dependency style of gcc... none
  checking if gcc supports -pedantic flag... yes
  checking for gcc way to treat warnings as errors... -Werror
  checking if gcc supports -fvisibility=hidden... yes
  checking if gcc supports -g flag... yes
  checking if gcc supports -std=gnu89 flag... yes
  checking if gcc supports -Wall flag... yes
  checking if gcc supports -Wextra flag... yes
  checking if gcc supports -Wno-long-long flag... yes
  checking if gcc supports -Wno-unused-parameter flag... yes
  checking if gcc supports -Wstrict-prototypes flag... yes
  checking for ar... ar
  checking the archiver (ar) interface... ar
  checking how to print strings... printf
  checking for a sed that does not truncate output... /usr/bin/sed
  checking for grep that handles long lines and -e... /usr/bin/grep
  checking for egrep... /usr/bin/grep -E
  checking for fgrep... /usr/bin/grep -F
  checking for ld used by gcc... /usr/local/bin/ld
  checking if the linker (/usr/local/bin/ld) is GNU ld... yes
  checking for BSD- or MS-compatible name lister (nm)... /usr/local/bin/nm -B
  checking the name lister (/usr/local/bin/nm -B) interface... BSD nm
  checking whether ln -s works... yes
  checking the maximum length of command line arguments... 393216
  checking whether the shell understands some XSI constructs... yes
  checking whether the shell understands "+="... no
  checking how to convert x86_64-unknown-freebsd12.2 file names to x86_64-unknown-freebsd12.2 format... func_convert_file_noop
  checking how to convert x86_64-unknown-freebsd12.2 file names to toolchain format... func_convert_file_noop
  checking for /usr/local/bin/ld option to reload object files... -r
  checking for objdump... objdump
  checking how to recognize dependent libraries... ld-elf.so.1: /usr/local/libexec/gcc10/gcc/x86_64-portbld-freebsd12.2/10.2.0/cc1: Undefined symbol "fwrite_unlocked@FBSD_1.6"
  pass_all
  checking for dlltool... no
  checking how to associate runtime and link libraries... printf %s\n
  checking for archiver @FILE support... no
  checking for strip... strip
  checking for ranlib... ranlib
  checking command to parse /usr/local/bin/nm -B output from gcc object... ok
  checking for sysroot... no
  checking for mt... mt
  checking if mt is a manifest tool... no
  checking how to run the C preprocessor... /lib/cpp
  configure: error: in `/tmp/pip-install-bgy5qsns/uvloop_fdaf417b01ad42c0ba6154c8add33b4f/build/libuv':
  configure: error: C preprocessor "/lib/cpp" fails sanity check
  See `config.log' for more details
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-install-bgy5qsns/uvloop_fdaf417b01ad42c0ba6154c8add33b4f/setup.py", line 233, in <module>
      setup(
    File "/usr/local/share/appdaemon/lib/python3.8/site-packages/setuptools/__init__.py", line 165, in setup
      return distutils.core.setup(**attrs)
    File "/usr/local/lib/python3.8/distutils/core.py", line 148, in setup
      dist.run_commands()
    File "/usr/local/lib/python3.8/distutils/dist.py", line 966, in run_commands
      self.run_command(cmd)
    File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/usr/local/share/appdaemon/lib/python3.8/site-packages/wheel/bdist_wheel.py", line 299, in run
      self.run_command('build')
    File "/usr/local/lib/python3.8/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/usr/local/lib/python3.8/distutils/command/build.py", line 135, in run
      self.run_command(cmd_name)
    File "/usr/local/lib/python3.8/distutils/cmd.py", line 313, in run_command
      self.distribution.run_command(command)
    File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
      cmd_obj.run()
    File "/usr/local/share/appdaemon/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 87, in run
      _build_ext.run(self)
    File "/usr/local/lib/python3.8/distutils/command/build_ext.py", line 340, in run
      self.build_extensions()
    File "/tmp/pip-install-bgy5qsns/uvloop_fdaf417b01ad42c0ba6154c8add33b4f/setup.py", line 198, in build_extensions
      self.build_libuv()
    File "/tmp/pip-install-bgy5qsns/uvloop_fdaf417b01ad42c0ba6154c8add33b4f/setup.py", line 177, in build_libuv
      subprocess.run(
    File "/usr/local/lib/python3.8/subprocess.py", line 516, in run
      raise CalledProcessError(retcode, process.args,
  subprocess.CalledProcessError: Command '['./configure']' returned non-zero exit status 1.
  ----------------------------------------
  ERROR: Failed building wheel for uvloop
  Running setup.py clean for uvloop
Successfully built bcrypt cchardet paho-mqtt pyyaml
Failed to build uvloop
Installing collected packages: uvloop, pyyaml, python-socketio, pygments, pid, paho-mqtt, iso8601, feedparser, deepdiff, cchardet, bcrypt, azure-storage-blob, azure-mgmt-storage, azure-mgmt-resource, azure-mgmt-compute, azure-keyvault-secrets, astral, aiohttp-jinja2, aiodns, appdaemon
    Running setup.py install for uvloop ... error
    ERROR: Command errored out with exit status 1:
     command: /usr/local/share/appdaemon/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-bgy5qsns/uvloop_fdaf417b01ad42c0ba6154c8add33b4f/setup.py'"'"'; __file__='"'"'/tmp/pip-install-bgy5qsns/uvloop_fdaf417b01ad42c0ba6154c8add33b4f/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-t5y_4166/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/share/appdaemon/include/site/python3.8/uvloop
         cwd: /tmp/pip-install-bgy5qsns/uvloop_fdaf417b01ad42c0ba6154c8add33b4f/
    Complete output (177 lines):
    running install
    running build
    running build_py
    creating build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8
    creating build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/_noop.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/__init__.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/_testbase.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/_patch.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    running egg_info
    writing uvloop.egg-info/PKG-INFO
    writing dependency_links to uvloop.egg-info/dependency_links.txt
    writing top-level names to uvloop.egg-info/top_level.txt
    reading manifest file 'uvloop.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no previously-included files matching '*' found under directory 'vendor/libuv/.git'
    warning: no previously-included files matching '*' found under directory 'vendor/libuv/docs'
    warning: no previously-included files matching '*' found under directory 'vendor/libuv/img'
    writing manifest file 'uvloop.egg-info/SOURCES.txt'
    copying uvloop/cbhandles.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/cbhandles.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/dns.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/errors.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/loop.c -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/loop.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/loop.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/lru.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/pseudosock.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/request.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/request.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/server.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/server.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/sslproto.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    copying uvloop/sslproto.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop
    creating build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/async_.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/async_.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/basetransport.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/basetransport.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/check.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/check.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/handle.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/handle.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/idle.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/idle.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/pipe.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/pipe.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/poll.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/poll.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/process.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/process.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/stream.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/stream.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/streamserver.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/streamserver.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/tcp.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/tcp.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/timer.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/timer.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/udp.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    copying uvloop/handles/udp.pyx -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/handles
    creating build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/__init__.py -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/compat.h -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/consts.pxi -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/debug.h -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/debug.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/flowcontrol.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/fork_handler.h -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/python.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/stdlib.pxi -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/system.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    copying uvloop/includes/uv.pxd -> build/lib.freebsd-12.2-RELEASE-p6-amd64-3.8/uvloop/includes
    running build_ext
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for a thread-safe mkdir -p... ./install-sh -c -d
    checking for gawk... no
    checking for mawk... no
    checking for nawk... nawk
    checking whether make sets $(MAKE)... yes
    checking whether make supports nested variables... yes
    checking build system type... x86_64-unknown-freebsd12.2
    checking host system type... x86_64-unknown-freebsd12.2
    checking for gcc... gcc
    checking whether the C compiler works... yes
    checking for C compiler default output file name... a.out
    checking for suffix of executables...
    checking whether we are cross compiling... no
    checking for suffix of object files... o
    checking whether we are using the GNU C compiler... yes
    checking whether gcc accepts -g... yes
    checking for gcc option to accept ISO C89... none needed
    checking whether gcc understands -c and -o together... yes
    checking for style of include used by make... GNU
    checking dependency style of gcc... none
    checking if gcc supports -pedantic flag... yes
    checking for gcc way to treat warnings as errors... -Werror
    checking if gcc supports -fvisibility=hidden... yes
    checking if gcc supports -g flag... yes
    checking if gcc supports -std=gnu89 flag... yes
    checking if gcc supports -Wall flag... yes
    checking if gcc supports -Wextra flag... yes
    checking if gcc supports -Wno-long-long flag... yes
    checking if gcc supports -Wno-unused-parameter flag... yes
    checking if gcc supports -Wstrict-prototypes flag... yes
    checking for ar... ar
    checking the archiver (ar) interface... ar
    checking how to print strings... printf
    checking for a sed that does not truncate output... /usr/bin/sed
    checking for grep that handles long lines and -e... /usr/bin/grep
    checking for egrep... /usr/bin/grep -E
    checking for fgrep... /usr/bin/grep -F
    checking for ld used by gcc... /usr/local/bin/ld
    checking if the linker (/usr/local/bin/ld) is GNU ld... yes
    checking for BSD- or MS-compatible name lister (nm)... /usr/local/bin/nm -B
    checking the name lister (/usr/local/bin/nm -B) interface... BSD nm
    checking whether ln -s works... yes
    checking the maximum length of command line arguments... 393216
    checking whether the shell understands some XSI constructs... yes
    checking whether the shell understands "+="... no
    checking how to convert x86_64-unknown-freebsd12.2 file names to x86_64-unknown-freebsd12.2 format... func_convert_file_noop
    checking how to convert x86_64-unknown-freebsd12.2 file names to toolchain format... func_convert_file_noop
    checking for /usr/local/bin/ld option to reload object files... -r
    checking for objdump... objdump
    checking how to recognize dependent libraries... ld-elf.so.1: /usr/local/libexec/gcc10/gcc/x86_64-portbld-freebsd12.2/10.2.0/cc1: Undefined symbol "fwrite_unlocked@FBSD_1.6"
    pass_all
    checking for dlltool... no
    checking how to associate runtime and link libraries... printf %s\n
    checking for archiver @FILE support... no
    checking for strip... strip
    checking for ranlib... ranlib
    checking command to parse /usr/local/bin/nm -B output from gcc object... ok
    checking for sysroot... no
    checking for mt... mt
    checking if mt is a manifest tool... no
    checking how to run the C preprocessor... /lib/cpp
    configure: error: in `/tmp/pip-install-bgy5qsns/uvloop_fdaf417b01ad42c0ba6154c8add33b4f/build/libuv':
    configure: error: C preprocessor "/lib/cpp" fails sanity check
    See `config.log' for more details
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-install-bgy5qsns/uvloop_fdaf417b01ad42c0ba6154c8add33b4f/setup.py", line 233, in <module>
        setup(
      File "/usr/local/share/appdaemon/lib/python3.8/site-packages/setuptools/__init__.py", line 165, in setup
        return distutils.core.setup(**attrs)
      File "/usr/local/lib/python3.8/distutils/core.py", line 148, in setup
        dist.run_commands()
      File "/usr/local/lib/python3.8/distutils/dist.py", line 966, in run_commands
        self.run_command(cmd)
      File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/usr/local/share/appdaemon/lib/python3.8/site-packages/setuptools/command/install.py", line 61, in run
        return orig.install.run(self)
      File "/usr/local/lib/python3.8/distutils/command/install.py", line 545, in run
        self.run_command('build')
      File "/usr/local/lib/python3.8/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/usr/local/lib/python3.8/distutils/command/build.py", line 135, in run
        self.run_command(cmd_name)
      File "/usr/local/lib/python3.8/distutils/cmd.py", line 313, in run_command
        self.distribution.run_command(command)
      File "/usr/local/lib/python3.8/distutils/dist.py", line 985, in run_command
        cmd_obj.run()
      File "/usr/local/share/appdaemon/lib/python3.8/site-packages/setuptools/command/build_ext.py", line 87, in run
        _build_ext.run(self)
      File "/usr/local/lib/python3.8/distutils/command/build_ext.py", line 340, in run
        self.build_extensions()
      File "/tmp/pip-install-bgy5qsns/uvloop_fdaf417b01ad42c0ba6154c8add33b4f/setup.py", line 198, in build_extensions
        self.build_libuv()
      File "/tmp/pip-install-bgy5qsns/uvloop_fdaf417b01ad42c0ba6154c8add33b4f/setup.py", line 177, in build_libuv
        subprocess.run(
      File "/usr/local/lib/python3.8/subprocess.py", line 516, in run
        raise CalledProcessError(retcode, process.args,
    subprocess.CalledProcessError: Command '['./configure']' returned non-zero exit status 1.
    ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/local/share/appdaemon/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-bgy5qsns/uvloop_fdaf417b01ad42c0ba6154c8add33b4f/setup.py'"'"'; __file__='"'"'/tmp/pip-install-bgy5qsns/uvloop_fdaf417b01ad42c0ba6154c8add33b4f/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-t5y_4166/install-record.txt --single-version-externally-managed --compile --install-headers /usr/local/share/appdaemon/include/site/python3.8/uvloop Check the logs for full command output.

There is a mismatch of jail versions; in the TrueNAS list of jails, it shows 12.1, but in the about of HA, it will show 12.2.
I have no idea why.

Sorry everybody, I haven’t had much free time to keep up these days.


I just tested appdaemon in a clean install, and there were no errors. Please try upgrading the jail, then reinstalling appdaemon using num 8 (from the appdaemon menu)

Honestly, I’m not very happy with upgrade process for plugins. If you have moved your config to an external dataset, I would suggest you just reinstall this plugin, then remount your config to the new plugin.

If you’d rather upgrade your existing plugin, please follow these steps

iocage console $JAIL_NAME
# Press 0 to exit menu
wget -O /tmp/pre_update.sh https://raw.githubusercontent.com/tprelog/iocage-homeassistant/master/pre_update.sh
chmod +x /tmp/pre_update.sh

Now exit from the jail’s console – the upgrade is run from TrueNAS (not inside the jail)

iocage upgrade $JAIL_NAME

As the upgrade begins you may see the following error repeated on the screen. This is a known upstream issue, just ignore it for now…

pkg: lua script failed
pkg: lua script failed
pkg: lua script failed

You should see Home Assistant get re-installed during the upgrade. The first time Home Assistant starts (after the upgrade) it will need to finish installing your configured integrations. During this time
the UI may not be reachable. This length of time will vary depending on your TrueNAS hardware and number of integration you have. (The longest reported wait was almost 35 min!)

When Home Assistant has finally come up again. You can re-install appdaemon from it’s menu using number 8 .

Thanks so much for your detailed message
I followed your instructions and now the jail’s version matches the version of the system (12.2-RELEASE-p6)
When I tried to remove and install appdaemon (using menu option 8), I encountered the following error (when installing):

/root/bin/menu: line 109: /root/post_install.sh: No such file or directory

and indeed the post_install.sh does not exist

Looks like the upgrade didn’t go completely as planned… Please share the output from

iocage console $JAIL_NAME
# Press 0 to exit menu
sysrc -a

the output of sysrc -a is:

configurator_config_dir: /home/homeassistant/configurator
configurator_enable: yes
configurator_group: homeassistant
configurator_python: /usr/local/bin/python3.8
configurator_umask: 002
configurator_user: homeassistant
configurator_venv: /usr/local/share/configurator
cron_flags:  -J 15
homeassistant_config_dir: /home/homeassistant/homeassistant
homeassistant_enable: yes
homeassistant_group: homeassistant
homeassistant_path: /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
homeassistant_python: /usr/local/bin/python3.8
homeassistant_umask: 002
homeassistant_user: homeassistant
homeassistant_venv: /usr/local/share/homeassistant
ipv6_activate_all_interfaces: YES
plugin_ini: v_0.4.0_20201122
plugin_version: v6-20210307
sendmail_enable: NO
sendmail_msp_queue_enable: NO
sendmail_outbound_enable: NO
sendmail_submit_enable: NO
sshd_enable: YES
syslogd_flags: -c -ss

That looks like should…

how about from the following two commands

iocage console $JAIL_NAME
# Press 0 to exit menu
ls -al /root/.plugin/bin
cat /root/.login
ls -al /root/.plugin/bin
total 60
drwxr-xr-x  2 root  wheel     7 May  5 00:14 .
drwxr-xr-x  3 root  wheel     3 Mar  4 02:12 ..
-rwxr-xr-x  1 root  wheel  1191 May  5 00:14 get-pip-required
-rwxr-xr-x  1 root  wheel  1354 May  5 00:14 install-hacs
-rwxr-xr-x  1 root  wheel  6281 May  5 00:14 menu
-rwxr-xr-x  1 root  wheel  5864 May  5 00:14 menu-service
-rwxr-xr-x  1 root  wheel   678 May  5 00:14 plugin-info
cat /root/.login
# $FreeBSD: releng/12.2/bin/csh/dot.login 337849 2018-08-15 14:41:24Z brd $
#
# .login - csh login script, read by login shell, after `.cshrc' at login.
#
# See also csh(1), environ(7).
#

# Query terminal size; useful for serial lines.
if ( -x /usr/bin/resizewin ) /usr/bin/resizewin -z

# Uncomment to display a random cookie on each login.
# if ( -x /usr/bin/fortune ) /usr/bin/fortune -s

set path = (${path} /root/.plugin/bin)
if ( -x /root/.plugin/bin/menu ) menu

:thinking: everything looks goods but for some reason your plugin is referencing the old menu (which should have been removed)

Lets just make sure the original location is removed.

iocage console $JAIL_NAME
# Press 0 to exit menu
rm -r /root/bin

Now if you log out of the jail, then log back in… does the menu start?

If not, can you can start it manually using the full path

/root/.plugin/bin/menu

If so, please try remove/install appdaemon again

that did the trick
thanks!!!

I might have another configuration issue: after appdaemon completed installation with the message:

appdaemon_enable:  -> YES
Starting appdaemon.
appdaemon is running as pid 25792.
http://192.168.0.35:5050


Press ENTER to continue...

I checked with option 2 :

Select: 2
appdaemon is not running.

Press ENTER to continue...

and indeed the appdaemon window does not start in home assistant
btw, just to be sure I have a fresh install, I’ve deleted the appdaemon subdirectory in homeassistant so that the defaults are installed