Announcement: AppDaemon 4.0.8

One more bugfix for older tablets - thanks again @ReneTode

4.0.8 (2021-03-30)

Features

None

Fixes

  • Fixed issue with Dashboard icon widgets breaking - contributed by Rene Tode <https://github.com/ReneTode>__

Breaking Changes

None

1 Like

this was actually for all dashboards :wink:
the new icon widget wasnt tested good enough, im afraid. (blame me, i didnt test it at all, but gave odia approvement to implement :wink: )

1 Like

Upgrade is failing while building wheel for uvloop. I did a quick search but found nothing relevant so far. is this a known issue?

nope. your the first with that issue.

to be able to say more about it youll need to tell more about your environment.
its has gone flawless for a lot off people with:

  • docker on various systems
  • hassio
  • pip install on synology and ubuntu

Home Assistant Core on a Pi 3b+, AppDaemon 4.0.5, HA 2021.3.4

Building wheels for collected packages: uvloop
  Building wheel for uvloop (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/local/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-wevq14xd/uvloop_fa97f35bf09f412e9b2534726526384a/setup.py'"'"'; __file__='"'"'/tmp/pip-install-wevq14xd/uvloop_fa97f35bf09f412e9b2534726526384a/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-9ri_yhy6
       cwd: /tmp/pip-install-wevq14xd/uvloop_fa97f35bf09f412e9b2534726526384a/
  Complete output (244 lines):
  running bdist_wheel
  running build
  running build_py
  creating build
  creating build/lib.linux-armv7l-3.8
  creating build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/__init__.py -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/_noop.py -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/_testbase.py -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/_version.py -> build/lib.linux-armv7l-3.8/uvloop
  running egg_info
  writing uvloop.egg-info/PKG-INFO
  writing dependency_links to uvloop.egg-info/dependency_links.txt
  writing requirements to uvloop.egg-info/requires.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.linux-armv7l-3.8/uvloop
  copying uvloop/cbhandles.pyx -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/dns.pyx -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/errors.pyx -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/loop.c -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/loop.pxd -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/loop.pyi -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/loop.pyx -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/lru.pyx -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/pseudosock.pyx -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/py.typed -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/request.pxd -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/request.pyx -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/server.pxd -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/server.pyx -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/sslproto.pxd -> build/lib.linux-armv7l-3.8/uvloop
  copying uvloop/sslproto.pyx -> build/lib.linux-armv7l-3.8/uvloop
  creating build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/async_.pxd -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/async_.pyx -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/basetransport.pxd -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/basetransport.pyx -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/check.pxd -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/check.pyx -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/handle.pxd -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/handle.pyx -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/idle.pxd -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/idle.pyx -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/pipe.pxd -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/pipe.pyx -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/poll.pxd -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/poll.pyx -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/process.pxd -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/process.pyx -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/stream.pxd -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/stream.pyx -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/streamserver.pxd -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/streamserver.pyx -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/tcp.pxd -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/tcp.pyx -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/timer.pxd -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/timer.pyx -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/udp.pxd -> build/lib.linux-armv7l-3.8/uvloop/handles
  copying uvloop/handles/udp.pyx -> build/lib.linux-armv7l-3.8/uvloop/handles
  creating build/lib.linux-armv7l-3.8/uvloop/includes
  copying uvloop/includes/__init__.py -> build/lib.linux-armv7l-3.8/uvloop/includes
  copying uvloop/includes/compat.h -> build/lib.linux-armv7l-3.8/uvloop/includes
  copying uvloop/includes/consts.pxi -> build/lib.linux-armv7l-3.8/uvloop/includes
  copying uvloop/includes/debug.h -> build/lib.linux-armv7l-3.8/uvloop/includes
  copying uvloop/includes/debug.pxd -> build/lib.linux-armv7l-3.8/uvloop/includes
  copying uvloop/includes/flowcontrol.pxd -> build/lib.linux-armv7l-3.8/uvloop/includes
  copying uvloop/includes/fork_handler.h -> build/lib.linux-armv7l-3.8/uvloop/includes
  copying uvloop/includes/python.pxd -> build/lib.linux-armv7l-3.8/uvloop/includes
  copying uvloop/includes/stdlib.pxi -> build/lib.linux-armv7l-3.8/uvloop/includes
  copying uvloop/includes/system.pxd -> build/lib.linux-armv7l-3.8/uvloop/includes
  copying uvloop/includes/uv.pxd -> build/lib.linux-armv7l-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... /bin/mkdir -p
  checking for gawk... no
  checking for mawk... mawk
  checking whether make sets $(MAKE)... yes
  checking whether make supports nested variables... yes
  checking build system type... armv7l-unknown-linux-gnueabihf
  checking host system type... armv7l-unknown-linux-gnueabihf
  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 whether make supports the include directive... yes (GNU style)
  checking dependency style of gcc... gcc3
  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... /bin/sed
  checking for grep that handles long lines and -e... /bin/grep
  checking for egrep... /bin/grep -E
  checking for fgrep... /bin/grep -F
  checking for ld used by gcc... /usr/bin/ld
  checking if the linker (/usr/bin/ld) is GNU ld... yes
  checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
  checking the name lister (/usr/bin/nm -B) interface... BSD nm
  checking whether ln -s works... yes
  checking the maximum length of command line arguments... 1572864
  checking how to convert armv7l-unknown-linux-gnueabihf file names to armv7l-unknown-linux-gnueabihf format... func_convert_file_noop
  checking how to convert armv7l-unknown-linux-gnueabihf file names to toolchain format... func_convert_file_noop
  checking for /usr/bin/ld option to reload object files... -r
  checking for objdump... objdump
  checking how to recognize dependent libraries... pass_all
  checking for dlltool... no
  checking how to associate runtime and link libraries... printf %s\n
  checking for archiver @FILE support... @
  checking for strip... strip
  checking for ranlib... ranlib
  checking command to parse /usr/bin/nm -B output from gcc object... ok
  checking for sysroot... no
  checking for a working dd... /bin/dd
  checking how to truncate binary pipes... /bin/dd bs=4096 count=1
  checking for mt... mt
  checking if mt is a manifest tool... no
  checking how to run the C preprocessor... gcc -E
  checking for ANSI C header files... yes
  checking for sys/types.h... yes
  checking for sys/stat.h... yes
  checking for stdlib.h... yes
  checking for string.h... yes
  checking for memory.h... yes
  checking for strings.h... yes
  checking for inttypes.h... yes
  checking for stdint.h... yes
  checking for unistd.h... yes
  checking for dlfcn.h... yes
  checking for objdir... .libs
  checking if gcc supports -fno-rtti -fno-exceptions... no
  checking for gcc option to produce PIC... -fPIC -DPIC
  checking if gcc PIC flag -fPIC -DPIC works... yes
  checking if gcc static flag -static works... yes
  checking if gcc supports -c -o file.o... yes
  checking if gcc supports -c -o file.o... (cached) yes
  checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
  checking whether -lc should be explicitly linked in... no
  checking dynamic linker characteristics... GNU/Linux ld.so
  checking how to hardcode library paths into programs... immediate
  checking whether stripping libraries is possible... yes
  checking if libtool supports shared libraries... yes
  checking whether to build shared libraries... yes
  checking whether to build static libraries... yes
  checking whether make supports nested variables... (cached) yes
  checking whether gcc is Clang... no
  checking whether pthreads work with -pthread... yes
  checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
  checking whether more special flags are required for pthreads... no
  checking for PTHREAD_PRIO_INHERIT... yes
  checking for dlopen in -ldl... yes
  checking for library containing kstat_lookup... no
  checking for library containing gethostbyname... none required
  checking for library containing perfstat_cpu... no
  checking for library containing clock_gettime... none required
  checking for library containing sendfile... none required
  checking for library containing socket... none required
  checking for special C compiler options needed for large files... no
  checking for _FILE_OFFSET_BITS value needed for large files... 64
  checking sys/ahafs_evProds.h usability... no
  checking sys/ahafs_evProds.h presence... no
  checking for sys/ahafs_evProds.h... no
  checking that generated files are newer than configure... done
  configure: creating ./config.status
  config.status: creating Makefile
  config.status: creating libuv.pc
  config.status: executing depfiles commands
  config.status: executing libtool commands
    CC       src/libuv_la-fs-poll.lo
    CC       src/libuv_la-idna.lo
    CC       src/libuv_la-inet.lo
    CC       src/libuv_la-random.lo
    CC       src/libuv_la-strscpy.lo
    CC       src/libuv_la-threadpool.lo
    CC       src/libuv_la-timer.lo
    CC       src/libuv_la-uv-data-getter-setters.lo
    CC       src/libuv_la-uv-common.lo
    CC       src/libuv_la-version.lo
    CC       src/unix/libuv_la-async.lo
    CC       src/unix/libuv_la-core.lo
    CC       src/unix/libuv_la-dl.lo
    CC       src/unix/libuv_la-fs.lo
    CC       src/unix/libuv_la-getaddrinfo.lo
  src/unix/fs.c: In function ‘uv__fs_sendfile’:
  src/unix/fs.c:909:57: warning: passing argument 4 of ‘uv__fs_copy_file_range’ from incompatible pointer type [-Wincompatible-pointer-types]
           r = uv__fs_copy_file_range(in_fd, NULL, out_fd, &off, req->bufsml[0].len, 0);
                                                           ^~~~
  In file included from src/unix/internal.h:41,
                   from src/unix/fs.c:30:
  src/unix/linux-syscalls.h:71:33: note: expected ‘ssize_t *’ {aka ‘int *’} but argument is of type ‘off_t *’ {aka ‘long long int *’}
                          ssize_t* off_out,
                          ~~~~~~~~~^~~~~~~
  src/unix/fs.c: In function ‘uv__fs_copyfile’:
  src/unix/fs.c:1223:20: warning: comparison of integer expressions of different signedness: ‘__fsword_t’ {aka ‘int’} and ‘unsigned int’ [-Wsign-compare]
         if (s.f_type != /* CIFS */ 0xFF534D42u)
                      ^~
    CC       src/unix/libuv_la-getnameinfo.lo
    CC       src/unix/libuv_la-loop-watcher.lo
    CC       src/unix/libuv_la-loop.lo
    CC       src/unix/libuv_la-pipe.lo
    CC       src/unix/libuv_la-poll.lo
    CC       src/unix/libuv_la-process.lo
    CC       src/unix/libuv_la-random-devurandom.lo
    CC       src/unix/libuv_la-signal.lo
    CC       src/unix/libuv_la-stream.lo
    CC       src/unix/libuv_la-tcp.lo
    CC       src/unix/libuv_la-thread.lo
    CC       src/unix/libuv_la-tty.lo
    CC       src/unix/libuv_la-udp.lo
    CC       src/unix/libuv_la-linux-core.lo
    CC       src/unix/libuv_la-linux-inotify.lo
    CC       src/unix/libuv_la-linux-syscalls.lo
    CC       src/unix/libuv_la-procfs-exepath.lo
    CC       src/unix/libuv_la-proctitle.lo
    CC       src/unix/libuv_la-random-getrandom.lo
    CC       src/unix/libuv_la-random-sysctl-linux.lo
    CCLD     libuv.la
  building 'uvloop.loop' extension
  creating build/temp.linux-armv7l-3.8
  creating build/temp.linux-armv7l-3.8/uvloop
  gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/usr/local/include/python3.8 -I/tmp/pip-install-wevq14xd/uvloop_fa97f35bf09f412e9b2534726526384a/vendor/libuv/include -c uvloop/loop.c -o build/temp.linux-armv7l-3.8/uvloop/loop.o -O2
  gcc: fatal error: Killed signal terminated program cc1
  compilation terminated.
  error: command 'gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for uvloop
  Running setup.py clean for uvloop
Failed to build uvloop

so i guess you use pip to upgrade AD in a venv?

you could try
pip install uvloop

I’m not using AD in a venv. I can install uvloop in user mode but not when sudoing.

so you got HA core and AD installed in 1 environment? (if so, thats bad)

you can use:
pip install uvloop,
but not
sudo pip install uvloop??

then dont do that. you also should not use
sudo pip install appdaemon,
but
pip install appdaemon

HA is in a venv, not AD. never had any issue with AD before this. I know it is not related to AD directly. I’ll try to figure out

ah, thats ok then.
i guess uvloop has a problem when its installed with sudo. there are more libs that have that problem.
thats why its better also not to install AD with sudo.

i would uninstall AD 4.0.5 that you (if i understand it right) installed with sudo and then just use
pip install appdaemon

Ok, AD documentation starts with:

Before running AppDaemon you will need to install the package:
$ sudo pip3 install appdaemon

:slight_smile:

I’ll try to get some free time to do a reinstall

hmm, indeed you are right. its still in the docs.
i thought that was already taken out a long time ago.

@Odianosen25 can you change that for me?

I did an uninstall and reinstall as user and it works. I had to update AD service to match the new path. Strange thing is pip shows AD 4.0.8, but AD administration page shows 4.0.5. (full reboot and cache reset were made)

did you restart your device? (you say full reboot, so i guess so)
there are only 2 possibilities that the admin interface shows 4.0.5 while you are running 4.0.8

  1. its somehow cashed (but thats very unlikely)
  2. 4.0.5 is still somehow running.

in the logs you also can see which version is running.

Indeed, one installation was still in /usr/local/lib/python3.7/dist-packages/appdaemon even if not listed by Pip (even in sudo). I removed it and updated the user in service definition to make it work. Now it says 4.0.8 in log and Administration page.
Thank you

1 Like