>>> py3-livestream: Checking sanity of /home/patrycja/aports/testing/py3-livestream/APKBUILD... >>> py3-livestream: Cleaning up srcdir >>> py3-livestream: Cleaning up pkgdir >>> py3-livestream: Cleaning up tmpdir >>> py3-livestream: Fetching py3-livestream-2.0.0.tar.gz::https://github.com/scivision/PyLivestream/archive/v2.0.0.tar.gz >>> py3-livestream: Fetching py3-livestream-2.0.0.tar.gz::https://github.com/scivision/PyLivestream/archive/v2.0.0.tar.gz >>> py3-livestream: Checking sha512sums... py3-livestream-2.0.0.tar.gz: OK >>> py3-livestream: Preparing build chroot... (1/240) Installing musl (1.2.5-r0) (2/240) Installing ca-certificates-bundle (20240226-r0) (3/240) Installing libcrypto3 (3.2.1-r2) (4/240) Installing libssl3 (3.2.1-r2) (5/240) Installing zlib (1.3.1-r0) (6/240) Installing apk-tools (2.14.3-r1) (7/240) Installing libattr (2.5.2-r0) (8/240) Installing attr (2.5.2-r0) (9/240) Installing libcap2 (2.69-r1) (10/240) Installing libcap-getcap (2.69-r1) (11/240) Installing fakeroot (1.33-r0) (12/240) Installing scanelf (1.3.7-r2) (13/240) Installing musl-utils (1.2.5-r0) (14/240) Installing libgcc (13.2.1_git20240309-r0) (15/240) Installing libstdc++ (13.2.1_git20240309-r0) (16/240) Installing lzip (1.24.1-r0) (17/240) Installing openssl (3.2.1-r2) (18/240) Installing patch (2.7.6-r10) (19/240) Installing pkgconf (2.2.0-r0) (20/240) Installing libacl (2.3.2-r0) (21/240) Installing tar (1.35-r2) (22/240) Installing busybox (1.36.1-r25) Executing busybox-1.36.1-r25.post-install (23/240) Installing ssl_client (1.36.1-r25) (24/240) Installing busybox-binsh (1.36.1-r25) (25/240) Installing abuild (3.12.0-r5) Executing abuild-3.12.0-r5.pre-install (26/240) Installing abuild-sudo (3.12.0-r5) (27/240) Installing alpine-baselayout-data (3.6.3-r0) (28/240) Installing alpine-baselayout (3.6.3-r0) Executing alpine-baselayout-3.6.3-r0.pre-install Executing alpine-baselayout-3.6.3-r0.post-install (29/240) Installing ifupdown-ng (0.12.1-r5) (30/240) Installing openrc (0.54-r1) Executing openrc-0.54-r1.post-install (31/240) Installing mdev-conf (4.6-r0) (32/240) Installing busybox-mdev-openrc (1.36.1-r25) (33/240) Installing alpine-conf (3.17.2-r0) (34/240) Installing alpine-keys (2.4-r1) (35/240) Installing alpine-release (3.20.0_alpha20240329-r0) (36/240) Installing busybox-openrc (1.36.1-r25) (37/240) Installing busybox-suid (1.36.1-r25) (38/240) Installing alpine-base (3.20.0_alpha20240329-r0) (39/240) Installing jansson (2.14-r4) (40/240) Installing zstd-libs (1.5.6-r0) (41/240) Installing binutils (2.42-r0) (42/240) Installing libmagic (5.45-r1) (43/240) Installing file (5.45-r1) (44/240) Installing libgomp (13.2.1_git20240309-r0) (45/240) Installing libatomic (13.2.1_git20240309-r0) (46/240) Installing gmp (6.3.0-r0) (47/240) Installing isl26 (0.26-r1) (48/240) Installing mpfr4 (4.2.1-r0) (49/240) Installing mpc1 (1.3.1-r1) (50/240) Installing gcc (13.2.1_git20240309-r0) (51/240) Installing libstdc++-dev (13.2.1_git20240309-r0) (52/240) Installing musl-dev (1.2.5-r0) (53/240) Installing g++ (13.2.1_git20240309-r0) (54/240) Installing make (4.4.1-r2) (55/240) Installing fortify-headers (1.1-r3) (56/240) Installing build-base (0.5-r3) (57/240) Installing hiredis (1.2.0-r0) (58/240) Installing libxxhash (0.8.2-r2) (59/240) Installing ccache (4.9.1-r0) (60/240) Installing libSvtAv1Enc (2.0.0-r1) (61/240) Installing aom-libs (3.8.2-r0) (62/240) Installing libxau (1.0.11-r3) (63/240) Installing libmd (1.1.0-r0) (64/240) Installing libbsd (0.12.2-r0) (65/240) Installing libxdmcp (1.1.5-r0) (66/240) Installing libxcb (1.16.1-r0) (67/240) Installing libx11 (1.8.9-r0) (68/240) Installing hwdata-pci (0.381-r0) (69/240) Installing libpciaccess (0.18.1-r0) (70/240) Installing libdrm (2.4.120-r0) (71/240) Installing libxext (1.3.6-r1) (72/240) Installing libxfixes (6.0.1-r3) (73/240) Installing libffi (3.4.6-r0) (74/240) Installing wayland-libs-client (1.22.0-r4) (75/240) Installing libva (2.21.0-r0) (76/240) Installing libvdpau (1.5-r2) (77/240) Installing onevpl-libs (2023.3.1-r2) (78/240) Installing ffmpeg-libavutil (6.1.1-r6) (79/240) Installing libdav1d (1.4.1-r0) (80/240) Installing openexr-libiex (3.1.12-r0) (81/240) Installing openexr-libilmthread (3.1.12-r0) (82/240) Installing imath (3.1.11-r1) (83/240) Installing openexr-libopenexr (3.1.12-r0) (84/240) Installing brotli-libs (1.1.0-r2) (85/240) Installing giflib (5.2.2-r0) (86/240) Installing libhwy (1.0.7-r0) (87/240) Installing libjpeg-turbo (3.0.2-r0) (88/240) Installing lcms2 (2.16-r0) (89/240) Installing libpng (1.6.43-r0) (90/240) Installing libjxl (0.9.1-r0) (91/240) Installing lame-libs (3.100-r5) (92/240) Installing opus (1.4-r0) (93/240) Installing rav1e-libs (0.7.1-r0) (94/240) Installing soxr (0.1.3-r7) (95/240) Installing ffmpeg-libswresample (6.1.1-r6) (96/240) Installing libogg (1.3.5-r5) (97/240) Installing libtheora (1.1.1-r18) (98/240) Installing libvorbis (1.3.7-r2) (99/240) Installing libvpx (1.14.0-r0) (100/240) Installing libsharpyuv (1.3.2-r0) (101/240) Installing libwebp (1.3.2-r0) (102/240) Installing libwebpmux (1.3.2-r0) (103/240) Installing x264-libs (0.164_git20231001-r0) (104/240) Installing numactl (2.0.18-r0) (105/240) Installing x265-libs (3.6-r0) (106/240) Installing xvidcore (1.3.7-r2) (107/240) Installing ffmpeg-libavcodec (6.1.1-r6) (108/240) Installing sdl2 (2.28.5-r1) (109/240) Installing alsa-lib (1.2.11-r0) (110/240) Installing libexpat (2.6.2-r0) (111/240) Installing libbz2 (1.0.8-r6) (112/240) Installing freetype (2.13.2-r0) (113/240) Installing fontconfig (2.15.0-r1) (114/240) Installing fribidi (1.0.13-r0) (115/240) Installing libintl (0.22.5-r0) (116/240) Installing libblkid (2.39.3-r2) (117/240) Installing libmount (2.39.3-r2) (118/240) Installing pcre2 (10.43-r0) (119/240) Installing glib (2.80.0-r3) (120/240) Installing graphite2 (1.3.14-r6) (121/240) Installing harfbuzz (8.4.0-r0) (122/240) Installing libunibreak (6.1-r0) (123/240) Installing libass (0.17.1-r2) (124/240) Installing libbluray (1.3.4-r1) (125/240) Installing mpg123-libs (1.32.6-r0) (126/240) Installing libopenmpt (0.7.6-r0) (127/240) Installing cjson (1.7.17-r0) (128/240) Installing mbedtls (2.28.8-r0) (129/240) Installing librist (0.2.10-r0) (130/240) Installing libsrt (1.5.3-r0) (131/240) Installing libssh (0.10.6-r0) (132/240) Installing xz-libs (5.6.1-r2) (133/240) Installing libxml2 (2.12.6-r1) (134/240) Installing libsodium (1.0.19-r0) (135/240) Installing libzmq (4.3.5-r2) (136/240) Installing ffmpeg-libavformat (6.1.1-r6) (137/240) Installing serd-libs (0.32.2-r0) (138/240) Installing zix-libs (0.4.2-r0) (139/240) Installing sord-libs (0.16.16-r0) (140/240) Installing sratom (0.6.16-r0) (141/240) Installing lilv-libs (0.24.24-r0) (142/240) Installing glslang-libs (1.3.261.1-r0) (143/240) Installing libdovi (3.2.0-r1) (144/240) Installing spirv-tools (1.3.261.1-r0) (145/240) Installing shaderc (2024.0-r0) (146/240) Installing vulkan-loader (1.3.261.1-r0) (147/240) Installing libplacebo (6.338.2-r1) (148/240) Installing ffmpeg-libpostproc (6.1.1-r6) (149/240) Installing ffmpeg-libswscale (6.1.1-r6) (150/240) Installing vidstab (1.1.1-r0) (151/240) Installing zimg (3.0.5-r2) (152/240) Installing ffmpeg-libavfilter (6.1.1-r6) (153/240) Installing libasyncns (0.8-r3) (154/240) Installing dbus-libs (1.14.10-r1) (155/240) Installing libltdl (2.4.7-r3) (156/240) Installing orc (0.4.37-r0) (157/240) Installing libflac (1.4.3-r1) (158/240) Installing libsndfile (1.2.2-r0) (159/240) Installing speexdsp (1.2.1-r2) (160/240) Installing tdb-libs (1.4.9-r1) (161/240) Installing libpulse (17.0-r0) (162/240) Installing v4l-utils-libs (1.24.1-r1) (163/240) Installing ffmpeg-libavdevice (6.1.1-r6) (164/240) Installing ffmpeg (6.1.1-r6) (165/240) Installing ca-certificates (20240226-r0) (166/240) Installing c-ares (1.28.1-r0) (167/240) Installing libunistring (1.2-r0) (168/240) Installing libidn2 (2.3.7-r0) (169/240) Installing nghttp2-libs (1.61.0-r0) (170/240) Installing libpsl (0.21.5-r1) (171/240) Installing libcurl (8.7.1-r0) (172/240) Installing git (2.44.0-r2) (173/240) Installing git-init-template (2.44.0-r2) (174/240) Installing gdbm (1.23-r1) (175/240) Installing mpdecimal (4.0.0-r0) (176/240) Installing ncurses-terminfo-base (6.4_p20240330-r0) (177/240) Installing libncursesw (6.4_p20240330-r0) (178/240) Installing libpanelw (6.4_p20240330-r0) (179/240) Installing readline (8.2.10-r0) (180/240) Installing sqlite-libs (3.45.2-r0) (181/240) Installing python3 (3.12.2-r0) (182/240) Installing python3-pycache-pyc0 (3.12.2-r0) (183/240) Installing pyc (3.12.2-r0) (184/240) Installing py3-installer-pyc (0.7.0-r2) (185/240) Installing py3-gpep517-pyc (15-r2) (186/240) Installing python3-pyc (3.12.2-r0) (187/240) Installing py3-installer (0.7.0-r2) (188/240) Installing py3-gpep517 (15-r2) (189/240) Installing py3-iniconfig (2.0.0-r1) (190/240) Installing py3-iniconfig-pyc (2.0.0-r1) (191/240) Installing py3-parsing (3.1.2-r1) (192/240) Installing py3-parsing-pyc (3.1.2-r1) (193/240) Installing py3-packaging (24.0-r1) (194/240) Installing py3-packaging-pyc (24.0-r1) (195/240) Installing py3-pluggy (1.4.0-r1) (196/240) Installing py3-pluggy-pyc (1.4.0-r1) (197/240) Installing py3-py (1.11.0-r3) (198/240) Installing py3-py-pyc (1.11.0-r3) (199/240) Installing py3-pytest (8.1.1-r1) (200/240) Installing py3-pytest-pyc (8.1.1-r1) (201/240) Installing py3-pytest-timeout (2.3.1-r1) (202/240) Installing py3-pytest-timeout-pyc (2.3.1-r1) (203/240) Installing py3-setuptools (69.2.0-r1) (204/240) Installing py3-setuptools-pyc (69.2.0-r1) (205/240) Installing py3-wheel (0.42.0-r1) (206/240) Installing py3-wheel-pyc (0.42.0-r1) (207/240) Installing python3-dev (3.12.2-r0) (208/240) Installing tini (0.19.0-r3) (209/240) Installing libice (1.1.1-r5) (210/240) Installing libuuid (2.39.3-r2) (211/240) Installing libsm (1.2.4-r3) (212/240) Installing libxt (1.3.0-r4) (213/240) Installing libxmu (1.1.4-r2) (214/240) Installing xauth (1.1.2-r1) (215/240) Installing encodings (1.0.7-r1) (216/240) Installing font-alias (1.0.5-r0) (217/240) Installing libfontenc (1.1.7-r4) (218/240) Installing mkfontscale (1.2.2-r5) (219/240) Installing util-macros (1.20.0-r0) (220/240) Installing font-cursor-misc (1.0.4-r1) (221/240) Installing font-misc-misc (1.1.3-r1) (222/240) Installing mesa (24.0.4-r0) (223/240) Installing wayland-libs-server (1.22.0-r4) (224/240) Installing mesa-gbm (24.0.4-r0) (225/240) Installing mesa-glapi (24.0.4-r0) (226/240) Installing libxshmfence (1.3.2-r5) (227/240) Installing mesa-egl (24.0.4-r0) (228/240) Installing libxkbfile (1.1.3-r0) (229/240) Installing xkbcomp (1.4.7-r0) (230/240) Installing xkeyboard-config (2.41-r0) (231/240) Installing xorg-server-common (21.1.12-r0) (232/240) Installing libxxf86vm (1.1.5-r5) (233/240) Installing mesa-gl (24.0.4-r0) (234/240) Installing libxfont2 (2.0.6-r3) (235/240) Installing nettle (3.9.1-r0) (236/240) Installing pixman (0.43.2-r0) (237/240) Installing xvfb (21.1.12-r0) (238/240) Installing coreutils-fmt (9.5-r0) (239/240) Installing mcookie (2.39.3-r2) (240/240) Installing xvfb-run (1.20.10.3-r2) Executing busybox-1.36.1-r25.trigger Executing fontconfig-2.15.0-r1.trigger Executing glib-2.80.0-r3.trigger Executing ca-certificates-20240226-r0.trigger Executing mkfontscale-1.2.2-r5.trigger OK: 521 MiB in 240 packages >>> py3-livestream: Fetching py3-livestream-2.0.0.tar.gz::https://github.com/scivision/PyLivestream/archive/v2.0.0.tar.gz >>> py3-livestream: Checking sha512sums... py3-livestream-2.0.0.tar.gz: OK >>> py3-livestream: Unpacking /var/cache/distfiles/py3-livestream-2.0.0.tar.gz... 2024-04-11 20:21:28,340 gpep517 INFO Building wheel via backend setuptools.build_meta:__legacy__ 2024-04-11 20:21:28,401 root INFO running bdist_wheel 2024-04-11 20:21:28,406 root INFO running build 2024-04-11 20:21:28,406 root INFO running build_py 2024-04-11 20:21:28,407 root INFO creating build 2024-04-11 20:21:28,407 root INFO creating build/lib 2024-04-11 20:21:28,407 root INFO creating build/lib/pylivestream 2024-04-11 20:21:28,407 root INFO copying src/pylivestream/ffmpeg.py -> build/lib/pylivestream 2024-04-11 20:21:28,407 root INFO copying src/pylivestream/base.py -> build/lib/pylivestream 2024-04-11 20:21:28,407 root INFO copying src/pylivestream/screen.py -> build/lib/pylivestream 2024-04-11 20:21:28,407 root INFO copying src/pylivestream/utils.py -> build/lib/pylivestream 2024-04-11 20:21:28,408 root INFO copying src/pylivestream/microphone.py -> build/lib/pylivestream 2024-04-11 20:21:28,408 root INFO copying src/pylivestream/screen2disk.py -> build/lib/pylivestream 2024-04-11 20:21:28,408 root INFO copying src/pylivestream/loopfile.py -> build/lib/pylivestream 2024-04-11 20:21:28,408 root INFO copying src/pylivestream/glob.py -> build/lib/pylivestream 2024-04-11 20:21:28,408 root INFO copying src/pylivestream/stream.py -> build/lib/pylivestream 2024-04-11 20:21:28,408 root INFO copying src/pylivestream/__init__.py -> build/lib/pylivestream 2024-04-11 20:21:28,408 root INFO copying src/pylivestream/api.py -> build/lib/pylivestream 2024-04-11 20:21:28,408 root INFO copying src/pylivestream/camera.py -> build/lib/pylivestream 2024-04-11 20:21:28,409 root INFO creating build/lib/pylivestream/tests 2024-04-11 20:21:28,409 root INFO copying src/pylivestream/tests/test_webcam.py -> build/lib/pylivestream/tests 2024-04-11 20:21:28,409 root INFO copying src/pylivestream/tests/test_disk.py -> build/lib/pylivestream/tests 2024-04-11 20:21:28,409 root INFO copying src/pylivestream/tests/test_class.py -> build/lib/pylivestream/tests 2024-04-11 20:21:28,409 root INFO copying src/pylivestream/tests/test_microphone.py -> build/lib/pylivestream/tests 2024-04-11 20:21:28,409 root INFO copying src/pylivestream/tests/test_filein.py -> build/lib/pylivestream/tests 2024-04-11 20:21:28,409 root INFO copying src/pylivestream/tests/test_screen.py -> build/lib/pylivestream/tests 2024-04-11 20:21:28,409 root INFO creating build/lib/pylivestream/data 2024-04-11 20:21:28,410 root INFO copying src/pylivestream/data/__init__.py -> build/lib/pylivestream/data 2024-04-11 20:21:28,410 root INFO running egg_info 2024-04-11 20:21:28,410 root INFO creating src/pylivestream.egg-info 2024-04-11 20:21:28,411 root INFO writing src/pylivestream.egg-info/PKG-INFO 2024-04-11 20:21:28,411 root INFO writing dependency_links to src/pylivestream.egg-info/dependency_links.txt 2024-04-11 20:21:28,412 root INFO writing requirements to src/pylivestream.egg-info/requires.txt 2024-04-11 20:21:28,412 root INFO writing top-level names to src/pylivestream.egg-info/top_level.txt 2024-04-11 20:21:28,412 root INFO writing manifest file 'src/pylivestream.egg-info/SOURCES.txt' 2024-04-11 20:21:28,413 root INFO reading manifest file 'src/pylivestream.egg-info/SOURCES.txt' 2024-04-11 20:21:28,414 root INFO reading manifest template 'MANIFEST.in' 2024-04-11 20:21:28,414 root INFO adding license file 'LICENSE.txt' 2024-04-11 20:21:28,414 root INFO writing manifest file 'src/pylivestream.egg-info/SOURCES.txt' 2024-04-11 20:21:28,414 root INFO copying src/pylivestream/data/bunny.avi -> build/lib/pylivestream/data 2024-04-11 20:21:28,415 root INFO copying src/pylivestream/data/check4k.png -> build/lib/pylivestream/data 2024-04-11 20:21:28,415 root INFO copying src/pylivestream/data/logo.png -> build/lib/pylivestream/data 2024-04-11 20:21:28,415 root INFO copying src/pylivestream/data/orch.ogg -> build/lib/pylivestream/data 2024-04-11 20:21:28,416 root INFO copying src/pylivestream/data/orch_short.ogg -> build/lib/pylivestream/data 2024-04-11 20:21:28,416 root INFO copying src/pylivestream/data/pylivestream.json -> build/lib/pylivestream/data 2024-04-11 20:21:28,418 wheel INFO installing to build/bdist.linux-x86_64/wheel 2024-04-11 20:21:28,418 root INFO running install 2024-04-11 20:21:28,422 root INFO running install_lib 2024-04-11 20:21:28,423 root INFO creating build/bdist.linux-x86_64 2024-04-11 20:21:28,423 root INFO creating build/bdist.linux-x86_64/wheel 2024-04-11 20:21:28,423 root INFO creating build/bdist.linux-x86_64/wheel/pylivestream 2024-04-11 20:21:28,423 root INFO copying build/lib/pylivestream/ffmpeg.py -> build/bdist.linux-x86_64/wheel/pylivestream 2024-04-11 20:21:28,424 root INFO copying build/lib/pylivestream/base.py -> build/bdist.linux-x86_64/wheel/pylivestream 2024-04-11 20:21:28,424 root INFO copying build/lib/pylivestream/screen.py -> build/bdist.linux-x86_64/wheel/pylivestream 2024-04-11 20:21:28,424 root INFO copying build/lib/pylivestream/utils.py -> build/bdist.linux-x86_64/wheel/pylivestream 2024-04-11 20:21:28,424 root INFO copying build/lib/pylivestream/microphone.py -> build/bdist.linux-x86_64/wheel/pylivestream 2024-04-11 20:21:28,424 root INFO copying build/lib/pylivestream/screen2disk.py -> build/bdist.linux-x86_64/wheel/pylivestream 2024-04-11 20:21:28,424 root INFO copying build/lib/pylivestream/loopfile.py -> build/bdist.linux-x86_64/wheel/pylivestream 2024-04-11 20:21:28,424 root INFO creating build/bdist.linux-x86_64/wheel/pylivestream/tests 2024-04-11 20:21:28,424 root INFO copying build/lib/pylivestream/tests/test_webcam.py -> build/bdist.linux-x86_64/wheel/pylivestream/tests 2024-04-11 20:21:28,424 root INFO copying build/lib/pylivestream/tests/test_disk.py -> build/bdist.linux-x86_64/wheel/pylivestream/tests 2024-04-11 20:21:28,424 root INFO copying build/lib/pylivestream/tests/test_class.py -> build/bdist.linux-x86_64/wheel/pylivestream/tests 2024-04-11 20:21:28,425 root INFO copying build/lib/pylivestream/tests/test_microphone.py -> build/bdist.linux-x86_64/wheel/pylivestream/tests 2024-04-11 20:21:28,425 root INFO copying build/lib/pylivestream/tests/test_filein.py -> build/bdist.linux-x86_64/wheel/pylivestream/tests 2024-04-11 20:21:28,425 root INFO copying build/lib/pylivestream/tests/test_screen.py -> build/bdist.linux-x86_64/wheel/pylivestream/tests 2024-04-11 20:21:28,425 root INFO copying build/lib/pylivestream/glob.py -> build/bdist.linux-x86_64/wheel/pylivestream 2024-04-11 20:21:28,425 root INFO copying build/lib/pylivestream/stream.py -> build/bdist.linux-x86_64/wheel/pylivestream 2024-04-11 20:21:28,425 root INFO copying build/lib/pylivestream/__init__.py -> build/bdist.linux-x86_64/wheel/pylivestream 2024-04-11 20:21:28,425 root INFO copying build/lib/pylivestream/api.py -> build/bdist.linux-x86_64/wheel/pylivestream 2024-04-11 20:21:28,425 root INFO copying build/lib/pylivestream/camera.py -> build/bdist.linux-x86_64/wheel/pylivestream 2024-04-11 20:21:28,425 root INFO creating build/bdist.linux-x86_64/wheel/pylivestream/data 2024-04-11 20:21:28,425 root INFO copying build/lib/pylivestream/data/pylivestream.json -> build/bdist.linux-x86_64/wheel/pylivestream/data 2024-04-11 20:21:28,425 root INFO copying build/lib/pylivestream/data/orch.ogg -> build/bdist.linux-x86_64/wheel/pylivestream/data 2024-04-11 20:21:28,426 root INFO copying build/lib/pylivestream/data/orch_short.ogg -> build/bdist.linux-x86_64/wheel/pylivestream/data 2024-04-11 20:21:28,426 root INFO copying build/lib/pylivestream/data/check4k.png -> build/bdist.linux-x86_64/wheel/pylivestream/data 2024-04-11 20:21:28,426 root INFO copying build/lib/pylivestream/data/bunny.avi -> build/bdist.linux-x86_64/wheel/pylivestream/data 2024-04-11 20:21:28,426 root INFO copying build/lib/pylivestream/data/logo.png -> build/bdist.linux-x86_64/wheel/pylivestream/data 2024-04-11 20:21:28,426 root INFO copying build/lib/pylivestream/data/__init__.py -> build/bdist.linux-x86_64/wheel/pylivestream/data 2024-04-11 20:21:28,427 root INFO running install_egg_info 2024-04-11 20:21:28,427 root INFO Copying src/pylivestream.egg-info to build/bdist.linux-x86_64/wheel/pylivestream-2.0.0-py3.12.egg-info 2024-04-11 20:21:28,428 root INFO running install_scripts 2024-04-11 20:21:28,429 wheel INFO creating build/bdist.linux-x86_64/wheel/pylivestream-2.0.0.dist-info/WHEEL 2024-04-11 20:21:28,430 wheel INFO creating '/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/.dist/.tmp-mn9jlam9/pylivestream-2.0.0-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it 2024-04-11 20:21:28,430 wheel INFO adding 'pylivestream/__init__.py' 2024-04-11 20:21:28,430 wheel INFO adding 'pylivestream/api.py' 2024-04-11 20:21:28,430 wheel INFO adding 'pylivestream/base.py' 2024-04-11 20:21:28,430 wheel INFO adding 'pylivestream/camera.py' 2024-04-11 20:21:28,430 wheel INFO adding 'pylivestream/ffmpeg.py' 2024-04-11 20:21:28,430 wheel INFO adding 'pylivestream/glob.py' 2024-04-11 20:21:28,430 wheel INFO adding 'pylivestream/loopfile.py' 2024-04-11 20:21:28,431 wheel INFO adding 'pylivestream/microphone.py' 2024-04-11 20:21:28,431 wheel INFO adding 'pylivestream/screen.py' 2024-04-11 20:21:28,431 wheel INFO adding 'pylivestream/screen2disk.py' 2024-04-11 20:21:28,431 wheel INFO adding 'pylivestream/stream.py' 2024-04-11 20:21:28,431 wheel INFO adding 'pylivestream/utils.py' 2024-04-11 20:21:28,431 wheel INFO adding 'pylivestream/data/__init__.py' 2024-04-11 20:21:28,432 wheel INFO adding 'pylivestream/data/bunny.avi' 2024-04-11 20:21:28,432 wheel INFO adding 'pylivestream/data/check4k.png' 2024-04-11 20:21:28,432 wheel INFO adding 'pylivestream/data/logo.png' 2024-04-11 20:21:28,433 wheel INFO adding 'pylivestream/data/orch.ogg' 2024-04-11 20:21:28,433 wheel INFO adding 'pylivestream/data/orch_short.ogg' 2024-04-11 20:21:28,433 wheel INFO adding 'pylivestream/data/pylivestream.json' 2024-04-11 20:21:28,433 wheel INFO adding 'pylivestream/tests/test_class.py' 2024-04-11 20:21:28,433 wheel INFO adding 'pylivestream/tests/test_disk.py' 2024-04-11 20:21:28,433 wheel INFO adding 'pylivestream/tests/test_filein.py' 2024-04-11 20:21:28,433 wheel INFO adding 'pylivestream/tests/test_microphone.py' 2024-04-11 20:21:28,433 wheel INFO adding 'pylivestream/tests/test_screen.py' 2024-04-11 20:21:28,434 wheel INFO adding 'pylivestream/tests/test_webcam.py' 2024-04-11 20:21:28,434 wheel INFO adding 'pylivestream-2.0.0.dist-info/LICENSE.txt' 2024-04-11 20:21:28,434 wheel INFO adding 'pylivestream-2.0.0.dist-info/METADATA' 2024-04-11 20:21:28,434 wheel INFO adding 'pylivestream-2.0.0.dist-info/WHEEL' 2024-04-11 20:21:28,434 wheel INFO adding 'pylivestream-2.0.0.dist-info/top_level.txt' 2024-04-11 20:21:28,434 wheel INFO adding 'pylivestream-2.0.0.dist-info/RECORD' 2024-04-11 20:21:28,434 wheel INFO removing build/bdist.linux-x86_64/wheel 2024-04-11 20:21:28,435 gpep517 INFO The backend produced .dist/pylivestream-2.0.0-py3-none-any.whl pylivestream-2.0.0-py3-none-any.whl ============================= test session starts ============================== platform linux -- Python 3.12.2, pytest-8.1.1, pluggy-1.4.0 rootdir: /home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0 configfile: pyproject.toml plugins: timeout-2.3.1 collected 21 items src/pylivestream/tests/test_class.py ...... [ 28%] src/pylivestream/tests/test_disk.py . [ 33%] src/pylivestream/tests/test_filein.py ..FF [ 52%] src/pylivestream/tests/test_microphone.py ..FF [ 71%] src/pylivestream/tests/test_screen.py .FF [ 85%] src/pylivestream/tests/test_webcam.py .FF [100%] =================================== FAILURES =================================== _________________________________ test_simple __________________________________ @pytest.mark.timeout(TIMEOUT) @pytest.mark.skipif(CI, reason="CI has no audio hardware typically") @pytest.mark.skipif(sys.version_info < (3, 9), reason="python >= 3.9 required") def test_simple(): """stream to localhost""" with importlib.resources.as_file( importlib.resources.files("pylivestream.data").joinpath("logo.png") ) as logo, importlib.resources.as_file( importlib.resources.files("pylivestream.data").joinpath("orch_short.ogg") ) as fn: S = pls.FileIn(ini, websites="localhost", infn=fn, image=logo, yes=True, timeout=5) > S.golive() src/pylivestream/tests/test_filein.py:62: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ src/pylivestream/base.py:248: in golive next(self.streams[unify_streams(self.streams)].startlive(sinks)) src/pylivestream/base.py:91: in startlive proc = self.F.listener() # start own RTMP server _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def listener(self): """ no need to check return code, errors will show up in client. -timeout 1 is necessary to avoid instant error, since stream starts after the listener. I put -timeout 5 to allow for very slow computers. -timeout is the delay to wait for stream input before erroring. sleep: 0.2 not long enough. 0.3 worked, so set 0.5 for some margin. """ TIMEOUT = 0.5 exe = shutil.which("ffplay") if not exe: > raise FileNotFoundError("FFplay not found, cannot start listener") E FileNotFoundError: FFplay not found, cannot start listener src/pylivestream/ffmpeg.py:71: FileNotFoundError _________________________________ test_script __________________________________ @pytest.mark.skipif(CI, reason="CI has no audio hardware typically") @pytest.mark.skipif(sys.version_info < (3, 9), reason="python >= 3.9 required") def test_script(): with importlib.resources.as_file( importlib.resources.files("pylivestream.data").joinpath("bunny.avi") ) as fn: > subprocess.check_call( [ sys.executable, "-m", "pylivestream.glob", str(fn), "localhost", str(ini), "--yes", "--timeout", "5", ], timeout=TIMEOUT, ) src/pylivestream/tests/test_filein.py:71: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ popenargs = (['/usr/bin/python3', '-m', 'pylivestream.glob', '/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/..., '/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/data/pylivestream.json', ...],) kwargs = {'timeout': 30}, retcode = 1 cmd = ['/usr/bin/python3', '-m', 'pylivestream.glob', '/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/s...t', '/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/data/pylivestream.json', ...] def check_call(*popenargs, **kwargs): """Run command with arguments. Wait for command to complete. If the exit code was zero then return, otherwise raise CalledProcessError. The CalledProcessError object will have the return code in the returncode attribute. The arguments are the same as for the call function. Example: check_call(["ls", "-l"]) """ retcode = call(*popenargs, **kwargs) if retcode: cmd = kwargs.get("args") if cmd is None: cmd = popenargs[0] > raise CalledProcessError(retcode, cmd) E subprocess.CalledProcessError: Command '['/usr/bin/python3', '-m', 'pylivestream.glob', '/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/data/bunny.avi', 'localhost', '/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/data/pylivestream.json', '--yes', '--timeout', '5']' returned non-zero exit status 1. /usr/lib/python3.12/subprocess.py:413: CalledProcessError ----------------------------- Captured stdout call ----------------------------- streaming these files. Be sure list is correct! /home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/data/bunny.avi going live on ['localhost'] ----------------------------- Captured stderr call ----------------------------- Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/glob.py", line 135, in cli() File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/glob.py", line 120, in cli stream_files( File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/glob.py", line 47, in stream_files playonce(flist, still_image, websites, ini_file, shuffle, usemeta, assume_yes, timeout) File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/glob.py", line 80, in playonce s.golive() File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/base.py", line 248, in golive next(self.streams[unify_streams(self.streams)].startlive(sinks)) File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/base.py", line 91, in startlive proc = self.F.listener() # start own RTMP server ^^^^^^^^^^^^^^^^^ File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/ffmpeg.py", line 71, in listener raise FileNotFoundError("FFplay not found, cannot start listener") FileNotFoundError: FFplay not found, cannot start listener _________________________________ test_stream __________________________________ @pytest.mark.timeout(TIMEOUT) @pytest.mark.skipif(CI or WSL, reason="has no audio hardware typically") def test_stream(): S = pls.Microphone(ini, websites="localhost", image=None, timeout=10) > S.golive() src/pylivestream/tests/test_microphone.py:59: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ src/pylivestream/base.py:225: in golive next(self.streams[unify_streams(self.streams)].startlive(sinks)) src/pylivestream/base.py:91: in startlive proc = self.F.listener() # start own RTMP server _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def listener(self): """ no need to check return code, errors will show up in client. -timeout 1 is necessary to avoid instant error, since stream starts after the listener. I put -timeout 5 to allow for very slow computers. -timeout is the delay to wait for stream input before erroring. sleep: 0.2 not long enough. 0.3 worked, so set 0.5 for some margin. """ TIMEOUT = 0.5 exe = shutil.which("ffplay") if not exe: > raise FileNotFoundError("FFplay not found, cannot start listener") E FileNotFoundError: FFplay not found, cannot start listener src/pylivestream/ffmpeg.py:71: FileNotFoundError _________________________________ test_script __________________________________ @pytest.mark.skipif(CI or WSL, reason="has no audio hardware typically") def test_script(): > subprocess.check_call( [ sys.executable, "-m", "pylivestream.microphone", "localhost", str(ini), "--yes", "--timeout", "10", ], timeout=TIMEOUT, ) src/pylivestream/tests/test_microphone.py:64: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ popenargs = (['/usr/bin/python3', '-m', 'pylivestream.microphone', 'localhost', '/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/data/pylivestream.json', '--yes', ...],) kwargs = {'timeout': 30}, retcode = 1 cmd = ['/usr/bin/python3', '-m', 'pylivestream.microphone', 'localhost', '/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/data/pylivestream.json', '--yes', ...] def check_call(*popenargs, **kwargs): """Run command with arguments. Wait for command to complete. If the exit code was zero then return, otherwise raise CalledProcessError. The CalledProcessError object will have the return code in the returncode attribute. The arguments are the same as for the call function. Example: check_call(["ls", "-l"]) """ retcode = call(*popenargs, **kwargs) if retcode: cmd = kwargs.get("args") if cmd is None: cmd = popenargs[0] > raise CalledProcessError(retcode, cmd) E subprocess.CalledProcessError: Command '['/usr/bin/python3', '-m', 'pylivestream.microphone', 'localhost', '/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/data/pylivestream.json', '--yes', '--timeout', '10']' returned non-zero exit status 1. /usr/lib/python3.12/subprocess.py:413: CalledProcessError ----------------------------- Captured stdout call ----------------------------- going live on ['localhost'] ----------------------------- Captured stderr call ----------------------------- Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/microphone.py", line 23, in stream_microphone( File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/api.py", line 69, in stream_microphone s.golive() File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/base.py", line 225, in golive next(self.streams[unify_streams(self.streams)].startlive(sinks)) File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/base.py", line 91, in startlive proc = self.F.listener() # start own RTMP server ^^^^^^^^^^^^^^^^^ File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/ffmpeg.py", line 71, in listener raise FileNotFoundError("FFplay not found, cannot start listener") FileNotFoundError: FFplay not found, cannot start listener _________________________________ test_stream __________________________________ @pytest.mark.timeout(TIMEOUT) @pytest.mark.skipif(CI or WSL, reason="has no GUI") def test_stream(): S = pls.Screenshare(ini, websites="localhost", timeout=5) > S.golive() src/pylivestream/tests/test_screen.py:33: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ src/pylivestream/base.py:181: in golive next(self.streams[unify_streams(self.streams)].startlive(sinks)) src/pylivestream/base.py:91: in startlive proc = self.F.listener() # start own RTMP server _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def listener(self): """ no need to check return code, errors will show up in client. -timeout 1 is necessary to avoid instant error, since stream starts after the listener. I put -timeout 5 to allow for very slow computers. -timeout is the delay to wait for stream input before erroring. sleep: 0.2 not long enough. 0.3 worked, so set 0.5 for some margin. """ TIMEOUT = 0.5 exe = shutil.which("ffplay") if not exe: > raise FileNotFoundError("FFplay not found, cannot start listener") E FileNotFoundError: FFplay not found, cannot start listener src/pylivestream/ffmpeg.py:71: FileNotFoundError _________________________________ test_script __________________________________ @pytest.mark.skipif(CI or WSL, reason="no GUI typically") def test_script(): > subprocess.check_call( [ sys.executable, "-m", "pylivestream.screen", "localhost", str(ini), "--yes", "--timeout", "5", ], timeout=TIMEOUT, ) src/pylivestream/tests/test_screen.py:38: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ popenargs = (['/usr/bin/python3', '-m', 'pylivestream.screen', 'localhost', '/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/data/pylivestream.json', '--yes', ...],) kwargs = {'timeout': 30}, retcode = 1 cmd = ['/usr/bin/python3', '-m', 'pylivestream.screen', 'localhost', '/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/data/pylivestream.json', '--yes', ...] def check_call(*popenargs, **kwargs): """Run command with arguments. Wait for command to complete. If the exit code was zero then return, otherwise raise CalledProcessError. The CalledProcessError object will have the return code in the returncode attribute. The arguments are the same as for the call function. Example: check_call(["ls", "-l"]) """ retcode = call(*popenargs, **kwargs) if retcode: cmd = kwargs.get("args") if cmd is None: cmd = popenargs[0] > raise CalledProcessError(retcode, cmd) E subprocess.CalledProcessError: Command '['/usr/bin/python3', '-m', 'pylivestream.screen', 'localhost', '/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/data/pylivestream.json', '--yes', '--timeout', '5']' returned non-zero exit status 1. /usr/lib/python3.12/subprocess.py:413: CalledProcessError ----------------------------- Captured stdout call ----------------------------- going live on ['localhost'] ----------------------------- Captured stderr call ----------------------------- Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/screen.py", line 42, in cli() File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/screen.py", line 38, in cli stream_screen(ini_file=P.json, websites=P.websites, assume_yes=P.yes, timeout=P.timeout) File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/screen.py", line 21, in stream_screen S.golive() File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/base.py", line 181, in golive next(self.streams[unify_streams(self.streams)].startlive(sinks)) File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/base.py", line 91, in startlive proc = self.F.listener() # start own RTMP server ^^^^^^^^^^^^^^^^^ File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/ffmpeg.py", line 71, in listener raise FileNotFoundError("FFplay not found, cannot start listener") FileNotFoundError: FFplay not found, cannot start listener _________________________________ test_stream __________________________________ @pytest.mark.timeout(TIMEOUT) @pytest.mark.skipif(CI or WSL, reason="has no camera typically") def test_stream(): S = pls.Camera(ini, websites="localhost", timeout=5) > S.golive() src/pylivestream/tests/test_webcam.py:36: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ src/pylivestream/base.py:203: in golive next(self.streams[unify_streams(self.streams)].startlive(sinks)) src/pylivestream/base.py:91: in startlive proc = self.F.listener() # start own RTMP server _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def listener(self): """ no need to check return code, errors will show up in client. -timeout 1 is necessary to avoid instant error, since stream starts after the listener. I put -timeout 5 to allow for very slow computers. -timeout is the delay to wait for stream input before erroring. sleep: 0.2 not long enough. 0.3 worked, so set 0.5 for some margin. """ TIMEOUT = 0.5 exe = shutil.which("ffplay") if not exe: > raise FileNotFoundError("FFplay not found, cannot start listener") E FileNotFoundError: FFplay not found, cannot start listener src/pylivestream/ffmpeg.py:71: FileNotFoundError _________________________________ test_script __________________________________ @pytest.mark.skipif(CI or WSL, reason="has no camera typically") def test_script(): > subprocess.check_call( [ sys.executable, "-m", "pylivestream.camera", "localhost", str(ini), "--yes", "--timeout", "5", ], timeout=TIMEOUT, ) src/pylivestream/tests/test_webcam.py:41: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ popenargs = (['/usr/bin/python3', '-m', 'pylivestream.camera', 'localhost', '/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/data/pylivestream.json', '--yes', ...],) kwargs = {'timeout': 30}, retcode = 1 cmd = ['/usr/bin/python3', '-m', 'pylivestream.camera', 'localhost', '/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/data/pylivestream.json', '--yes', ...] def check_call(*popenargs, **kwargs): """Run command with arguments. Wait for command to complete. If the exit code was zero then return, otherwise raise CalledProcessError. The CalledProcessError object will have the return code in the returncode attribute. The arguments are the same as for the call function. Example: check_call(["ls", "-l"]) """ retcode = call(*popenargs, **kwargs) if retcode: cmd = kwargs.get("args") if cmd is None: cmd = popenargs[0] > raise CalledProcessError(retcode, cmd) E subprocess.CalledProcessError: Command '['/usr/bin/python3', '-m', 'pylivestream.camera', 'localhost', '/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/data/pylivestream.json', '--yes', '--timeout', '5']' returned non-zero exit status 1. /usr/lib/python3.12/subprocess.py:413: CalledProcessError ----------------------------- Captured stdout call ----------------------------- going live on ['localhost'] ----------------------------- Captured stderr call ----------------------------- Traceback (most recent call last): File "", line 198, in _run_module_as_main File "", line 88, in _run_code File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/camera.py", line 21, in stream_camera(ini_file=P.json, websites=P.websites, assume_yes=P.yes, timeout=P.timeout) File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/api.py", line 95, in stream_camera S.golive() File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/base.py", line 203, in golive next(self.streams[unify_streams(self.streams)].startlive(sinks)) File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/base.py", line 91, in startlive proc = self.F.listener() # start own RTMP server ^^^^^^^^^^^^^^^^^ File "/home/patrycja/aports/testing/py3-livestream/src/PyLivestream-2.0.0/src/pylivestream/ffmpeg.py", line 71, in listener raise FileNotFoundError("FFplay not found, cannot start listener") FileNotFoundError: FFplay not found, cannot start listener =========================== short test summary info ============================ FAILED src/pylivestream/tests/test_filein.py::test_simple - FileNotFoundError... FAILED src/pylivestream/tests/test_filein.py::test_script - subprocess.Called... FAILED src/pylivestream/tests/test_microphone.py::test_stream - FileNotFoundE... FAILED src/pylivestream/tests/test_microphone.py::test_script - subprocess.Ca... FAILED src/pylivestream/tests/test_screen.py::test_stream - FileNotFoundError... FAILED src/pylivestream/tests/test_screen.py::test_script - subprocess.Called... FAILED src/pylivestream/tests/test_webcam.py::test_stream - FileNotFoundError... FAILED src/pylivestream/tests/test_webcam.py::test_script - subprocess.Called... ========================= 8 failed, 13 passed in 1.14s ========================= >>> ERROR: py3-livestream: check failed >>> ERROR: py3-livestream: rootbld failed >>> py3-livestream: Cleaning up build chroot