From 32b11995a9447d927862951d29db38455f9e0205 Mon Sep 17 00:00:00 2001 From: Andrew Geissler Date: Wed, 31 Mar 2021 13:37:05 -0500 Subject: meta-openembedded: subtree update:98175fd0cc..da393545a2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Aditya.Tayade (1): neon: Add ptest Andreas Müller (9): udisks2: upgrade 2.9.1 -> 2.9.2 / replace '_git' by version in recipe-name poppler: upgrade 21.02.0 -> 21.03.0 xfce4-panel: upgrade 4.16.1 -> 4.16.2 xfce4-cpugraph-plugin: upgrade 1.2.1 -> 1.2.3 xfce4-time-out-plugin: upgrade 1.1.1 -> 1.1.2 mousepad: upgrade 0.5.2 -> 0.5.3 xfce4-panel-profiles: 1.0.12 -> 1.0.13 thunar: upgrade 4.16.2 -> 4.16.4 xfce4-taskmanager: upgrade 1.4.0 -> 1.4.2 Andrei Gherzan (6): python3-pep8: Fix HOMEPAGE python3-mccabe: Fix HOMEPAGE python3-ifaddr: Integrate a dependency of pysonos python3-pysonos: Integrate the SONOS control HomeAssistant module python3-aiohue: Integrate the hue control python module packagegroup-meta-python: Add new modules (aiohue, ifaddr, pysonos) Andrej Valek (1): jsoncpp: Upgrade to 1.9.4 Bartosz Golaszewski (11): pystemd: satisfy runtime dependencies python3-pythonping: new package python3-wpa-supplicant: new package python3-txdbus: new package python3-wpa-supplicant: add runtime dependencies python3-wpa-supplicant: fix importing the cli submodule python3-wpa-supplicant: replace DESCRIPTION with SUMMARY libgpiod: update v1.6.2 -> v1.6.3 python3-txdbus: add missing runtime dependencies python3-jmespath: new package python3-docutils: new package Ben Gampe (1): python3-h11: new package Carlos Rafael Giani (1): pipewire: Upgrade to 0.3.24 Changqing Li (2): php: allow php as empty openldap: upgrade 2.4.57 -> 2.4.58 Clément Péron (2): grpc: move grpc plugins to a new grpc-compiler package nodejs: 12.20.2 -> 12.21.0 Colin McAllister (1): python3-gpsd-py3: Added recipe Daniel Wagenknecht (1): gnome-keyring: set file capabilities in pkg_postinst Denys Dmytriyenko (1): glmark2: also depend on wayland-protocols when wayland distro feature is on Devon Pringle (1): python3-pastedeploy: Add recipe Fabio Berton (1): python3-requests: Support idna version 3.1 INC@Cisco) (2): bpftool: remove recipe from blacklist bpftool: improve reproducibility Jan Kaisrlik (1): abseil-cpp: reorder content of packages Joshua Watt (1): classes: Add Android sparse image class Kai Kang (8): python3-pillow: 8.1.0 -> 8.1.2 xfce4-cpufreq-plugin: 1.2.2 -> 1.2.5 exo: 4.16.0 -> 4.16.1 xfce4-netload-plugin: 1.3.2 -> 1.4.0 xfce4-genmon-plugin: 4.1.0 -> 4.1.1 xfce4-weather-plugin: 0.10.2 -> 0.11.0 xfce4-systemload-plugin: 1.2.4 -> 1.3.0 xfce4-taskmanager: 1.4.2 -> 1.5.2 Khem Raj (63): nss: Disable Werror open-vm-tools: Do not use volatile qualifier dconf-editor: Fix build with vala 0.50.4 libbacktrace: Add recipe libleak: Add recipe packagegroup-meta-oe: Add libleak to packagegroup-meta-oe-extended mongodb: Upgrade to 4.4.4 packagegroup-meta-python: Add python3-semantic-version python3-grpcio: Upgrade to 1.36.1 python3-grpcio: Fix build on mips and musl mpv: Link libatomic on riscv64 glog: Link with libexecinfo on musl musl-nscd: Make lex syntax posix'y libbpf: Depend on virtual/kernel:do_shared_workdir waf-cross-answers: Add powerpc64le version python3-grpcio,python3-grpcio-tools: Disable for ppc64le openh264: Disable building for ppc64le ufs-utils: Upgrade to 1.9 libhugetlbfs: Fix ARCH setting for ppc64 LE nodejs: Set correct nodejs arch for ppc64le libnma: Disbale vapi xrdp: Upgrade to 0.9.15 ply: upgrade to latest ply: Disable on ppc64 ltrace: Fix build on ppc64le/musl oprofile: Fix build on musl gperftools: Update SRCREV to point to 2.9.1 release mongodb: Fix cross build on ppc64le abseil-cpp: Fix build on musl and ppc64 mariadb: Fix build on musl/ppc mongodb: Fix build on ppc64le breakpad: Upgrade to latest ssiapi: Disable for ppc64 kexec-tools-klibc: Use SITEINFO_BITS to construct includepath breakpad: Exclude for ppc64 python3-grpcio,python3-grpcio-tools: Enable build on ppc64/glibc breakpad: Do not fallback to android implementation for getcontext/setcontext on musl oprofile: Upgrade to 1.4.0 release vboxguestdrivers: Add __divmoddi4 builtin support links-x11,links: Upgrade to 2.22 layers: Drop gatesgarth from LAYERSERIES_COMPAT xxhash: Remove recipe gsound: Use () instead of {} for makefile variable in gsound_play_VALAFLAGS pipewire: Package systemd unit file for pipewire-media-session packagegroup-meta-python: Add new package python3-pythonping python3-spidev: Remove recipe for 3.2 python3-werkzeug: Clarify BSD license type python3-werkzeug: Delete recipe for 1.0.0 python3-hexdump: Move cleanup_hexfile into install_append cryptsetup: DEPEND on renamed util-linux-libuuid tracker-miners: Check for commercial license to enable ffmpeg gnome-settings-daemon: Do not generate meson.native libb64: Add recipe sysdig: Upgrade to 0.27.1 sysdig: Depend on system libb64 gimp: Disable vector iconn on rv32/musl libcamera: Update the patch to upstreamed one flashrom: Add remaining RISCV support mpd: Check for commercial in LICENSE_FLAGS_WHITELIST mpv: Exclude from world if commercial is not in inclusion list sox: Exclude from world if commercial is not in inclusion list vlc: Exclude from world if commercial is not in inclusion list sox: Remove LICENSE_FLAGS = "commercial" Leon Anavi (74): python3-elementpath: Upgrade 2.1.4 -> 2.2.0 python3-twisted: Upgrade 20.3.0 -> 21.2.0 python3-ipython: Upgrade 7.20.0 -> 7.21.0 python3-yamlloader: Upgrade 0.5.5 -> 1.0.0 python3-astroid: Upgrade 2.5 -> 2.5.1 python3-portion: Upgrade 2.1.4 -> 2.1.5 python3-pandas: Upgrade 1.2.2 -> 1.2.3 python3-ruamel-yaml: Upgrade 0.16.12 -> 0.16.13 python3-prettytable: Upgrade 2.0.0 -> 2.1.0 python3-huey: Upgrade 2.3.0 -> 2.3.1 python3-pychromecast: Upgrade 8.1.0 -> 9.1.1 python3-incremental: Upgrade 17.5.0 -> 21.3.0 python3-waitress: Upgrade 1.4.4 -> 2.0.0 python3-pako: Upgrade 0.3.0 -> 0.3.1 python3-pyscaffold: Upgrade 3.3.1 -> 4.0 python3-croniter: Upgrade 1.0.6 -> 1.0.8 python3-prompt-toolkit: Upgrade 3.0.16 -> 3.0.17 python3-pymisp: Upgrade 2.4.138 -> 2.4.140 python3-jsonpatch: Upgrade 1.31 -> 1.32 python3-jsonpointer: Upgrade 2.0 -> 2.1 python3-configargparse: Upgrade 1.3 -> 1.4 python3-luma-core: Upgrade 2.2.0 -> 2.3.1 python3-pycodestyle: Upgrade 2.6.0 -> 2.7.0 python3-bitarray: Upgrade 1.7.0 -> 1.7.1 python3-alembic: Upgrade 1.5.5 -> 1.5.7 python3-pyflakes: Upgrade 2.2.0 -> 2.3.0 python3-autobahn: Upgrade 21.2.2 -> 21.3.1 python3-pulsectl: Upgrade 21.2.0 -> 21.3.4 python3-configparser: Upgrade 5.0.1 -> 5.0.2 python3-defusedxml: Upgrade 0.6.0 -> 0.7.1 python3-twine: Upgrade 3.3.0 -> 3.4.0 python3-socketio: Upgrade 5.0.4 -> 5.1.0 python3-soupsieve: Upgrade 2.2 -> 2.2.1 python3-cassandra-driver: Upgrade 3.24.0 -> 3.25.0 python3-urllib3: Upgrade 1.26.3 -> 1.26.4 python3-bitarray: Upgrade 1.7.1 -> 1.8.0 python3-pyscaffold: Upgrade 4.0 -> 4.0.1 python3-flask-migrate: Upgrade 2.6.0 -> 2.7.0 python3-grpcio-tools: Upgrade 1.35.0 -> 1.36.1 python3-humanize: Upgrade 3.2.0 -> 3.3.0 python3-regex: Upgrade 2020.11.13 -> 2021.3.17 python3-twine: Upgrade 3.4.0 -> 3.4.1 python3-isort: Upgrade 5.7.0 -> 5.8.0 python3-sqlalchemy: Upgrade 1.3.23 -> 1.4.2 python3-scrypt: Upgrade 0.8.6 -> 0.8.17 python3-colorlog: Upgrade 4.7.2 -> 4.8.0 python3-croniter: Upgrade 1.0.8 -> 1.0.9 python3-pyperf: Upgrade 2.1.0 -> 2.2.0 python3-lazy-object-proxy: Upgrade 1.5.2 -> 1.6.0 python3-prompt-toolkit: Upgrade 3.0.17 -> 3.0.18 python3-configshell-fb: Upgrade 1.1.28 -> 1.1.29 python3-backports-functools-lru-cache: Upgrade 1.6.1 -> 1.6.3 python3-pytest-helpers-namespace: Upgrade 2019.1.8 -> 2021.3.24 python3-elementpath: Upgrade 2.2.0 -> 2.2.1 python3-alembic: Upgrade 1.5.7 -> 1.5.8 python3-rfc3339-validator: Upgrade 0.1.2 -> 0.1.3 python3-pyflakes: Upgrade 2.3.0 -> 2.3.1 python3-pint: Upgrade 0.16.1 -> 0.17 python3-flask-sqlalchemy: Upgrade 2.4.4 -> 2.5.1 python3-django: Upgrade 3.1.1 -> 3.1.7 python3-djangorestframework: Upgrade 3.12.2 -> 3.12.3 python3-ruamel-yaml: Upgrade 0.16.13 -> 0.17.0 python3-bitarray: Upgrade 1.8.0 -> 1.8.1 python3-sqlalchemy: Upgrade 1.4.2 -> 1.4.3 python3-xmlschema: Upgrade 1.5.1 -> 1.5.3 python3-croniter: Upgrade 1.0.9 -> 1.0.10 python3-astroid: Upgrade 2.5.1 -> 2.5.2 python3-pyroute2: Upgrade 0.5.14 -> 0.5.15 python3-coverage: Upgrade 5.4 -> 5.5 python3-gunicorn: Upgrade 20.0.4 -> 20.1.0 python3-djangorestframework: Upgrade 3.12.3 -> 3.12.4 python3-ipython: Upgrade 7.21.0 -> 7.22.0 python3-openpyxl: Upgrade 3.0.6 -> 3.0.7 python3-ruamel-yaml: Upgrade 0.17.0 -> 0.17.2 Luca Boccassi (3): cryptsetup: depend on new util-linux-uuid to break cycle dbus-broker: upgrade 26 -> 27 dbus-broker: upgrade 27 -> 28 Marius Kriegerowski (1): tmate: add recipe version 2.4.0 Martin Jansa (11): glog: fix searching for Libunwind ceres-solver: prevent fetching git hook during do_configure packagegroup-meta-oe: include abseil-cpp for all architectures packagegroup-meta-oe: include nodejs without meta-python2 conditional packagegroup-meta-oe: move the packages depending on meta-python2 to separate packages mysql-python, lio-utils, openlmi-tools: add conditional PNBLACKLIST like meta-python2 does conf/layer.conf: include .bbappend files in BBFILES_DYNAMIC open-vm-tools: move to meta-networking packagegroup-meta-{oe,multimedia}: move pipewire to the right packagegroup packagegroup-meta-multimedia: include projucer only with x11 in DISTRO_FEATURES packagegroup-meta-multimedia: include vlc only with x11 in DISTRO_FEATURES Matteo Croce (1): libbpf: use pkg-config Michael Vetter (1): jasper: upgrade 2.0.25 -> 2.0.26 Ming Liu (1): atftp: move atftpd.init from files to atftp subdirectory Mingli Yu (6): geoip: Switch to use the main branch geoip-perl: Switch to use the main branch bridge-utils: Switch to use the main branch netkit-telnet: Update SRC_URI quagga: Update SRC_URI hostapd: fix CVE-2019-5061 Nisha Parrakat (1): neon: use pkg-config instead of xml2-config to configure Oleksandr Kravchuk (10): ipset: update to 7.11 libnice: update to 0.1.18 nbdkit: update to 1.25.3 python3-bitarray: update to 1.7.0 python3-google-api-python-client: update to 2.0.2 python3-jsonpatch: update to 1.31 python3-websocket-client: update to 0.58.0 python3-robotframework: update to 4.0 python3-sentry-sdk: update to 1.0.0 aom: update to 3.0.0 Peace Lee (2): guider: Upgrade 3.9.7 -> 3.9.8 guider: Upgrade 3.9.7 -> 3.9.8 Persian Prince (1): tinymembench: Correct PV Philip Balister (1): fftw: Add support for ptest. Randy MacLeod (6): gperftools: upgrade 2.8.1 -> 2.9.1 zabbix: upgrade 4.4.6 -> 5.2.5 nss: upgrade 3.60.1 -> 3.62 xterm: upgrade 362 -> 366 zstd: remove the recipe since it moved to oe-core tclap: upgrade 1.2.2 -> 1.4.0 Ross Burton (3): libxmlb: upgrade to 0.3.0 flashrom: recipe cleanup openjpeg: add native/nativesdk class extension Sakib Sajal (1): grpc: upgrade 1.36.1 -> 1.36.2 Sam Van Den Berge (1): libiio: fix build when python bindings are enabled Sana Kazi (1): mdns: Whitelisted CVE-2007-0613 for mdns Stefan Schmidt (2): musl-rpmatch_git.bb: add new recipe to provide rpmatch() for musl libc builds plymouth_0.9.5.bb: allow building with musl libc Valentin Longchamp (1): libssh: add gcrypt to PACKAGECONFIG Wang Mingyu (3): czmq: Conflict resolution for sha1.h python3-lxml: upgrade 4.6.2 -> 4.6.3 python3-zopeinterface: upgrade 5.2.0 -> 5.3.0 Yann Dirson (1): mpv: remove explicit LICENSE_FLAGS Yi Fan Yu (2): librelp: update 1.6.0 -> 1.10.0 rsyslog: Fix rsyslog systemd service not starting Yi Zhao (2): quagga: do not set PIDFile in service files tclap: add pkg-config file Zang Ruochen (1): gtkwave: upgrade 3.3.104 -> 3.3.108 zangrc (15): dovecot: upgrade 2.3.13 -> 2.3.14 fetchmail: upgrade 6.4.16 -> 6.4.17 dialog: upgrade 1.3-20210117 -> 1.3-20210306 fio: upgrade 3.25 -> 3.26 xorriso: upgrade 1.5.3 -> 1.5.5 iscsi-initiator-utils: upgrade 2.1.3 -> 2.1.4 mosquitto: upgrade 2.0.8 -> 2.0.9 nbdkit: upgrade 1.25.3 -> 1.25.4 wireguard-tools: upgrade 1.0.20210223 -> 1.0.20210315 wireshark: upgrade 3.4.3 -> 3.4.4 live555: upgrade 20210129 -> 20210322 mg: upgrade 20200723 -> 20210314 nanopb: upgrade 0.4.4 -> 0.4.5 nss: upgrade 3.62 -> 3.63 uriparser: upgrade 0.9.4 -> 0.9.5 zhengruoqin (12): phpmyadmin: upgrade 5.0.4 -> 5.1.0 uthash: upgrade 2.2.0 -> 2.3.0 gd: upgrade 2.3.1 -> 2.3.2 openocd: upgrade 0.10 -> 0.11 satyr: upgrade 0.36 -> 0.37 libcrypt-openssl-guess-perl: upgrade 0.11 -> 0.12 cryptsetup: upgrade 2.3.4 -> 2.3.5 glmark2: upgrade 20201114 -> 2021.02 grpc: upgrade 1.36.2 -> 1.36.3 dialog: upgrade 1.3-20210306 -> 1.3-20210319 grpc: upgrade 1.36.3 -> 1.36.4 libgee: upgrade 0.20.3 -> 0.20.4 Signed-off-by: Andrew Geissler Change-Id: I0b18d7c12586e6038d002f02ed87f38e25bc5080 --- .../recipes-multimedia/aom/aom_2.0.0.bb | 22 -- .../recipes-multimedia/aom/aom_3.0.0.bb | 22 ++ ...e-auto-variable-to-avoid-range-loop-warni.patch | 101 +++++++- .../recipes-multimedia/musicpd/mpd_0.22.6.bb | 11 +- .../recipes-multimedia/openh264/openh264_2.1.1.bb | 1 + .../packagegroups/packagegroup-meta-multimedia.bb | 6 +- .../recipes-multimedia/pipewire/pipewire_0.3.22.bb | 273 -------------------- .../recipes-multimedia/pipewire/pipewire_0.3.24.bb | 280 +++++++++++++++++++++ .../recipes-multimedia/sox/sox_14.4.2.bb | 5 +- .../recipes-multimedia/vlc/vlc_3.0.12.bb | 4 +- 10 files changed, 408 insertions(+), 317 deletions(-) delete mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/aom/aom_2.0.0.bb create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/aom/aom_3.0.0.bb delete mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.22.bb create mode 100644 meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.24.bb (limited to 'meta-openembedded/meta-multimedia/recipes-multimedia') diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/aom/aom_2.0.0.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/aom/aom_2.0.0.bb deleted file mode 100644 index 1ad457710..000000000 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/aom/aom_2.0.0.bb +++ /dev/null @@ -1,22 +0,0 @@ -SUMMARY = "Alliance for Open Media - AV1 Codec Library" -DESCRIPTION = "Alliance for Open Media AV1 codec library" - -LICENSE = "BSD-2-Clause & AOM-Patent-1.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=6ea91368c1bbdf877159435572b931f5 \ - file://PATENTS;md5=e69ad12202bd20da3c76a5d3648cfa83 \ - " - -SRC_URI = "git://aomedia.googlesource.com/aom;protocol=https" - -SRCREV = "d1d1226af626a61f7ca664b270dd473b92228984" - -S = "${WORKDIR}/git" - -inherit cmake pkgconfig -DEPENDS = " yasm-native" - -EXTRA_OECMAKE = " -DBUILD_SHARED_LIBS=1 -DENABLE_TESTS=0 \ - -DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl \ - " - -EXTRA_OECMAKE_append_arm = " ${@bb.utils.contains("TUNE_FEATURES","neon","-DENABLE_NEON=ON","-DENABLE_NEON=OFF",d)}" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/aom/aom_3.0.0.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/aom/aom_3.0.0.bb new file mode 100644 index 000000000..7ea9b199b --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/aom/aom_3.0.0.bb @@ -0,0 +1,22 @@ +SUMMARY = "Alliance for Open Media - AV1 Codec Library" +DESCRIPTION = "Alliance for Open Media AV1 codec library" + +LICENSE = "BSD-2-Clause & AOM-Patent-1.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6ea91368c1bbdf877159435572b931f5 \ + file://PATENTS;md5=e69ad12202bd20da3c76a5d3648cfa83 \ + " + +SRC_URI = "git://aomedia.googlesource.com/aom;protocol=https" + +SRCREV = "307ce06ed82d93885ee8ed53e152c9268ac0d98d" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig +DEPENDS = " yasm-native" + +EXTRA_OECMAKE = " -DBUILD_SHARED_LIBS=1 -DENABLE_TESTS=0 \ + -DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl \ + " + +EXTRA_OECMAKE_append_arm = " ${@bb.utils.contains("TUNE_FEATURES","neon","-DENABLE_NEON=ON","-DENABLE_NEON=OFF",d)}" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-uvcvideo-Use-auto-variable-to-avoid-range-loop-warni.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-uvcvideo-Use-auto-variable-to-avoid-range-loop-warni.patch index 4ca412c69..cec5fc287 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-uvcvideo-Use-auto-variable-to-avoid-range-loop-warni.patch +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-uvcvideo-Use-auto-variable-to-avoid-range-loop-warni.patch @@ -1,27 +1,104 @@ -From 767267ef69c001870d41caf9c60dd7fec89b0a13 Mon Sep 17 00:00:00 2001 +Delivered-To: raj.khem@gmail.com +Received: by 2002:a05:620a:20d3:0:0:0:0 with SMTP id f19csp2716715qka; + Sat, 27 Mar 2021 19:58:30 -0700 (PDT) +X-Google-Smtp-Source: ABdhPJwyDnjZqZmFqHVShb/5/RoVkJ4Avv5bcnyuo85vIRR2vJDQF+QBZpQpEWHgx5GuEuwLVSC+ +X-Received: by 2002:a05:6512:22d0:: with SMTP id g16mr12125441lfu.650.1616900310724; + Sat, 27 Mar 2021 19:58:30 -0700 (PDT) +ARC-Seal: i=1; a=rsa-sha256; t=1616900310; cv=none; + d=google.com; s=arc-20160816; + b=bZlu68tossyE2YcGkt0HzIhqTUroWDT/EgJvAiQBgZ6bPzMJ+wjwWp3LzViqOxiRPQ + r0cFyme7CJ9YRf2TLmpjGuv2RPQ+EkrtFdlB7i65nhDrwvBoxt78vF2tUoDgVLL1YrU9 + wKgHPtBjtDcDveOXKQJH2j5HRwiBjCXlPRBhlSxV8kJPBj//dRaKm0MsxfiW/IgyN1tZ + FFxfe4Lk1Awm8ZKAklhdKMly3MFA6IbnjwNcN/84a0R/0+PLu9X8XIR6+CnrfqSgWOBx + zsV8p3HuVQTpX7Hhnkiz7PYudHsJJ/7KXeXTP6s9NNnZGu9A6U/E6VOob5BSm9DDIA5z + 4AnA== +ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; + h=content-transfer-encoding:mime-version:message-id:date:subject:cc + :to:from:dkim-signature; + bh=fbAn+wsNks5BGTY34H4T90NDFJaNV4nnt9vc9DBFaWQ=; + b=mLZNiQR/CdgcVTAc7OQmK0ZYTVpofG/EOqTIi2NYIYFhanWhatYY9Hx2xwxIp6kQ5R + n0uXh5tLth6aPYD09z3YcXYasEIszBKwoNUFjRA85lFm3d5/J2S1wC5rBy25QeCDOg57 + QdzYrTBX2QGRHGQKauEnX5FLDTT+I53sPa87TyvxUKBS+lTAbJig70KfmL7FJIEWT1ZI + CZKCErYFlQTGNnwM0CYVXyHv54D2tA25veHQIJN8KK+XObNWuAY3rYpqKoUpOP4vpSPi + MXJWAV4L6NZEShWvwJiC4Zdy2xFzXASX27CAKIsX6T5Rub03grVTg6WVt9bChK1x5jeg + A2Yw== +ARC-Authentication-Results: i=1; mx.google.com; + dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=MniKswyT; + spf=pass (google.com: domain of laurent.pinchart@ideasonboard.com designates 213.167.242.64 as permitted sender) smtp.mailfrom=laurent.pinchart@ideasonboard.com +Return-Path: +Received: from perceval.ideasonboard.com (perceval.ideasonboard.com. [213.167.242.64]) + by mx.google.com with ESMTPS id v18si12339470ljj.208.2021.03.27.19.58.30 + for + (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); + Sat, 27 Mar 2021 19:58:30 -0700 (PDT) +Received-SPF: pass (google.com: domain of laurent.pinchart@ideasonboard.com designates 213.167.242.64 as permitted sender) client-ip=213.167.242.64; +Authentication-Results: mx.google.com; + dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=MniKswyT; + spf=pass (google.com: domain of laurent.pinchart@ideasonboard.com designates 213.167.242.64 as permitted sender) smtp.mailfrom=laurent.pinchart@ideasonboard.com +Received: from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57]) + by perceval.ideasonboard.com (Postfix) with ESMTPSA id 11F12332; + Sun, 28 Mar 2021 04:58:28 +0200 (CEST) +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; + s=mail; t=1616900309; + bh=BwCg4h9N9fJysbMT1Yjbazbp7zTImD9mkWJSjCKzCmg=; + h=From:To:Cc:Subject:Date:From; + b=MniKswyT+aUtPgeMFeLqW6cRMFsPRN4W1XtVDA6pqI0QTSSx5koEuzSfEybjs6Qbp + ZdQar1r5nBIRCg9uq85YoLKoFeT7WN4PrwnRYPwaYGAFHfV44rDrq4RBe3VOIb+85W + tKn4HEzjlFelrImVbeymBsgpVhITveSVH1MdYRsE= +From: Laurent Pinchart +To: libcamera-devel@lists.libcamera.org +Cc: Khem Raj +Subject: [PATCH v2] libcamera: pipeline: uvcvideo: Avoid reference to temporary object +Date: Sun, 28 Mar 2021 05:57:41 +0300 +Message-Id: <20210328025741.30246-1-laurent.pinchart@ideasonboard.com> +X-Mailer: git-send-email 2.28.1 +MIME-Version: 1.0 +Content-Transfer-Encoding: 8bit + From: Khem Raj -Date: Wed, 3 Mar 2021 15:11:46 -0800 -Subject: [PATCH] uvcvideo: Use auto variable to avoid range loop warnings -With c++17 loop range bases are defined where copy is obvious since -iterator returns a copy and not reference, gcc11 will emit a warning -about this +A range-based for loop whose range expression is an array of char +pointers and range variable declaration is a const reference to a +std::string creates a temporary string from the char pointer and binds +the range variable reference to it. This creates a const reference to a +temporary, which is valid in C++, and extends the lifetime of the +temporary to the lifetime of the reference. + +However, lifetime extension in range-based for loops is considered as a +sign of a potential issue, as a temporary is created for every +iteration, which can be costly, and the usage of a reference in the +range declaration doesn't make it obvious that the code isn't simply +binding a reference to an existing object. gcc 11, with the +-Wrange-loop-construct option, flags this: uvcvideo.cpp:432:33: error: loop variable 'name' of type 'const string&' {aka 'const std::__cxx11::basic_string&'} binds to a temporary constructed from type 'const char* const' [-Werror=range-loop-construct] | 432 | for (const std::string &name : { "idVendor", "idProduct" }) { | | ^~~~ -Therefore making it explicit is better +To please the compiler, make the range variable a const char *. This may +bring a tiny performance improvement, as the name is only used once, in +a location where the compiler can use + + operator+(const std::string &, const char *) + +instead of + + operator+(const std::string &, const std::string &) -Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2021-March/017966.html] Signed-off-by: Khem Raj +Reviewed-by: Laurent Pinchart + +Use a const char * type instead of auto, and update the commit message +accordingly. + +Signed-off-by: Laurent Pinchart --- src/libcamera/pipeline/uvcvideo/uvcvideo.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp -index 031f96e2..ef23ece7 100644 +index 031f96e28449..b6c6ade5ebaf 100644 --- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp +++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp @@ -429,7 +429,7 @@ std::string PipelineHandlerUVC::generateId(const UVCCameraData *data) @@ -29,10 +106,12 @@ index 031f96e2..ef23ece7 100644 /* Creata a device ID from the USB devices vendor and product ID. */ std::string deviceId; - for (const std::string &name : { "idVendor", "idProduct" }) { -+ for (const auto name : { "idVendor", "idProduct" }) { ++ for (const char *name : { "idVendor", "idProduct" }) { std::ifstream file(path + "/../" + name); if (!file.is_open()) -- -2.30.1 +Regards, + +Laurent Pinchart diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.6.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.6.bb index e91bb5d97..b1fa96e1b 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.6.bb +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.6.bb @@ -2,8 +2,6 @@ SUMMARY = "Music Player Daemon" LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -LICENSE_FLAGS = "${@bb.utils.contains_any('PACKAGECONFIG', ['ffmpeg', 'aac'], 'commercial', '', d)}" - HOMEPAGE ="http://www.musicpd.org" inherit meson useradd systemd pkgconfig @@ -28,7 +26,14 @@ S = "${WORKDIR}/git" EXTRA_OEMESON += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-Dsystemd=enabled -Dsystemd_system_unit_dir=${systemd_system_unitdir} -Dsystemd_user_unit_dir=${systemd_system_unitdir}', '-Dsystemd=disabled', d)}" -PACKAGECONFIG ??= "aac alsa ao bzip2 daemon ffmpeg fifo flac fluidsynth iso9660 jack libsamplerate httpd mms mpg123 modplug sndfile upnp openal opus oss recorder vorbis wavpack zlib" +PACKAGECONFIG ??= "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "aac", "", d)} \ + alsa ao bzip2 daemon \ + ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "ffmpeg aac", "", d)} \ + fifo flac fluidsynth iso9660 \ + jack libsamplerate httpd \ + mms mpg123 modplug sndfile \ + upnp openal opus oss recorder \ + vorbis wavpack zlib" PACKAGECONFIG[aac] = "-Dfaad=enabled,-Dfaad=disabled,faad2" PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/openh264/openh264_2.1.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/openh264/openh264_2.1.1.bb index 3988cfff8..75d5010f1 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/openh264/openh264_2.1.1.bb +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/openh264/openh264_2.1.1.bb @@ -23,6 +23,7 @@ COMPATIBLE_MACHINE_x86 = "(.*)" COMPATIBLE_MACHINE_x86-64 = "(.*)" COMPATIBLE_MACHINE_mips = "(.*)" COMPATIBLE_MACHINE_mips64 = "(.*)" +COMPATIBLE_MACHINE_powerpc64le = "null" EXTRA_OEMAKE_armv7a = "ARCH=arm" EXTRA_OEMAKE_armv7ve = "ARCH=arm" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb index 78c7c06b2..73b852a4a 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb @@ -53,7 +53,8 @@ RDEPENDS_packagegroup-meta-multimedia = "\ bigbuckbunny-720p \ tearsofsteel-1080p \ schroedinger \ - projucer \ + pipewire \ + ${@bb.utils.contains("DISTRO_FEATURES", "x11", "projucer", "", d)} \ libcamera \ ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libde265 openh264", "", d)} \ vorbis-tools \ @@ -66,7 +67,7 @@ RDEPENDS_packagegroup-meta-multimedia = "\ openal-soft \ opusfile \ libdvdcss \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "vlc", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", bb.utils.contains("DISTRO_FEATURES", "x11", "vlc", "", d), "", d)} \ ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "sox streamripper", "", d)} \ tinyalsa \ tremor \ @@ -74,6 +75,7 @@ RDEPENDS_packagegroup-meta-multimedia = "\ ${@bb.utils.contains_any("TRANSLATED_TARGET_ARCH", "i586 x86-64", "x265", "", d)} \ " RDEPENDS_packagegroup-meta-multimedia_remove_libc-musl = "projucer" +RDEPENDS_packagegroup-meta-multimedia_remove_powerpc64le = "openh264" RDEPENDS_packagegroup-meta-multimedia-connectivity = "\ gssdp \ diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.22.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.22.bb deleted file mode 100644 index b54be7f89..000000000 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.22.bb +++ /dev/null @@ -1,273 +0,0 @@ -SUMMARY = "Multimedia processing server for Linux" -DESCRIPTION = "Linux server for handling and routing audio and video streams between applications and multimedia I/O devices" -HOMEPAGE = "https://pipewire.org/" -BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/pipewire/issues" -LICENSE = "MIT" -LIC_FILES_CHKSUM = " \ - file://LICENSE;md5=e2c0b7d86d04e716a3c4c9ab34260e69 \ - file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a \ -" -SECTION = "multimedia" - -DEPENDS = "dbus" - -SRCREV = "22d563720a7f6ba7bdf59950f8c14488d80dfa95" -SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https" - -S = "${WORKDIR}/git" - -inherit meson pkgconfig systemd manpages gettext useradd - -USERADD_PACKAGES = "${PN}" - -GROUPADD_PARAM_${PN} = "--system pipewire" - -USERADD_PARAM_${PN} = "--system --home / --no-create-home \ - --comment 'PipeWire multimedia daemon' \ - --gid pipewire --groups audio,video \ - pipewire" - -# For "EVL", look up https://evlproject.org/ . It involves -# a specially prepared kernel, and is currently unavailable -# in Yocto. -# FFmpeg and Vulkan aren't really supported - at the current -# stage (version 0.3.22), these are just experiments, not -# actual features. -# libcamera support currently does not build successfully. -# systemd user service files are disabled because per-user -# PipeWire instances aren't really something that makes -# much sense in an embedded environment. A system-wide -# instance does. -EXTRA_OEMESON += " \ - -Daudiotestsrc=true \ - -Devl=false \ - -Dsystemd-user-service=false \ - -Dtests=false \ - -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \ - -Dvideotestsrc=true \ - -Dffmpeg=false \ - -Dvulkan=false \ - -Dlibcamera=false \ -" - -PACKAGECONFIG ??= "\ - ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'alsa systemd', d)} \ - gstreamer jack v4l2 \ -" - -# "jack" and "pipewire-jack" packageconfigs cannot be both enabled, -# since "jack" imports libjack, and "pipewire-jack" generates -# libjack.so* files, thus colliding with the libpack package. This -# is why these two are marked in their respective packageconfigs -# as being in conflict. - -PACKAGECONFIG[alsa] = "-Dalsa=true,-Dalsa=false,alsa-lib udev" -PACKAGECONFIG[bluez] = "-Dbluez5=true,-Dbluez5=false,bluez5 sbc" -PACKAGECONFIG[docs] = "-Ddocs=true,-Ddocs=false,doxygen" -PACKAGECONFIG[gstreamer] = "-Dgstreamer=true,-Dgstreamer=false,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base" -PACKAGECONFIG[jack] = "-Djack=true,-Djack=false,jack,,,pipewire-jack" -PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxml-parser-perl-native" -PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,virtual/libsdl2" -PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1" -PACKAGECONFIG[systemd] = "-Dsystemd=true -Dsystemd-system-service=true ,-Dsystemd=false -Dsystemd-system-service=false,systemd" -PACKAGECONFIG[v4l2] = "-Dv4l2=true,-Dv4l2=false,udev" -PACKAGECONFIG[pipewire-alsa] = "-Dpipewire-alsa=true,-Dpipewire-alsa=false,alsa-lib" -PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=true -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=false,jack,,,jack" - -PACKAGESPLITFUNCS_prepend = " split_dynamic_packages " -PACKAGESPLITFUNCS_append = " set_dynamic_metapkg_rdepends " - -SPA_SUBDIR = "spa-0.2" -PW_MODULE_SUBDIR = "pipewire-0.3" - -remove_unused_installed_files() { - # jack.conf is used by pipewire-jack (not the JACK SPA plugin). - # Remove it if pipewire-jack is not built to avoid creating the - # pipewire-jack package. - if ${@bb.utils.contains('PACKAGECONFIG', 'pipewire-jack', 'false', 'true', d)}; then - rm -f "${D}${sysconfdir}/pipewire/jack.conf" - fi -} - -do_install[postfuncs] += "remove_unused_installed_files" - -python split_dynamic_packages () { - # Create packages for each SPA plugin. These plugins are located - # in individual subdirectories, so a recursive search is needed. - spa_libdir = d.expand('${libdir}/${SPA_SUBDIR}') - do_split_packages(d, spa_libdir, r'^libspa-(.*)\.so$', d.expand('${PN}-spa-plugins-%s'), 'PipeWire SPA plugin for %s', extra_depends='', recursive=True) - - # Create packages for each PipeWire module. - pw_module_libdir = d.expand('${libdir}/${PW_MODULE_SUBDIR}') - do_split_packages(d, pw_module_libdir, r'^libpipewire-module-(.*)\.so$', d.expand('${PN}-modules-%s'), 'PipeWire %s module', extra_depends='', recursive=False) -} - -python set_dynamic_metapkg_rdepends () { - import os - import oe.utils - - # Go through all generated SPA plugin and PipeWire module packages - # (excluding the main package and the -meta package itself) and - # add them to the -meta package as RDEPENDS. - - base_pn = d.getVar('PN') - - spa_pn = base_pn + '-spa-plugins' - spa_metapkg = spa_pn + '-meta' - - pw_module_pn = base_pn + '-modules' - pw_module_metapkg = pw_module_pn + '-meta' - - d.setVar('ALLOW_EMPTY_' + spa_metapkg, "1") - d.setVar('FILES_' + spa_metapkg, "") - - d.setVar('ALLOW_EMPTY_' + pw_module_metapkg, "1") - d.setVar('FILES_' + pw_module_metapkg, "") - - blacklist = [ spa_pn, spa_metapkg, pw_module_pn, pw_module_metapkg ] - spa_metapkg_rdepends = [] - pw_module_metapkg_rdepends = [] - pkgdest = d.getVar('PKGDEST') - - for pkg in oe.utils.packages_filter_out_system(d): - if pkg in blacklist: - continue - - is_spa_pkg = pkg.startswith(spa_pn) - is_pw_module_pkg = pkg.startswith(pw_module_pn) - if not is_spa_pkg and not is_pw_module_pkg: - continue - - if pkg in spa_metapkg_rdepends or pkg in pw_module_metapkg_rdepends: - continue - - # See if the package is empty by looking at the contents of its - # PKGDEST subdirectory. If this subdirectory is empty, then then - # package is empty as well. Empty packages do not get added to - # the meta package's RDEPENDS. - pkgdir = os.path.join(pkgdest, pkg) - if os.path.exists(pkgdir): - dir_contents = os.listdir(pkgdir) or [] - else: - dir_contents = [] - is_empty = len(dir_contents) == 0 - if not is_empty: - if is_spa_pkg: - spa_metapkg_rdepends.append(pkg) - if is_pw_module_pkg: - pw_module_metapkg_rdepends.append(pkg) - - d.setVar('RDEPENDS_' + spa_metapkg, ' '.join(spa_metapkg_rdepends)) - d.setVar('DESCRIPTION_' + spa_metapkg, spa_pn + ' meta package') - - d.setVar('RDEPENDS_' + pw_module_metapkg, ' '.join(pw_module_metapkg_rdepends)) - d.setVar('DESCRIPTION_' + pw_module_metapkg, pw_module_pn + ' meta package') -} - -PACKAGES =+ "\ - libpipewire \ - ${PN}-tools \ - ${PN}-pulse \ - ${PN}-alsa \ - ${PN}-jack \ - ${PN}-media-session \ - ${PN}-spa-plugins \ - ${PN}-spa-plugins-meta \ - ${PN}-spa-tools \ - ${PN}-modules \ - ${PN}-modules-meta \ - ${PN}-alsa-card-profile \ - gstreamer1.0-pipewire \ -" - -PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*" - -SYSTEMD_SERVICE_${PN} = "pipewire.service" -CONFFILES_${PN} += "${sysconfdir}/pipewire/pipewire.conf" -FILES_${PN} = " \ - ${sysconfdir}/pipewire/pipewire.conf \ - ${systemd_user_unitdir}/pipewire.* \ - ${bindir}/pipewire \ -" - -FILES_${PN}-dev += " \ - ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so \ -" - -CONFFILES_libpipewire += "${sysconfdir}/pipewire/client.conf" -FILES_libpipewire = " \ - ${sysconfdir}/pipewire/client.conf \ - ${libdir}/libpipewire-*.so.* \ -" -# Add the bare minimum modules and plugins required to be able -# to use libpipewire. Without these, it is essentially unusable. -RDEPENDS_libpipewire += " \ - ${PN}-modules-client-node \ - ${PN}-modules-protocol-native \ - ${PN}-spa-plugins-support \ -" - -FILES_${PN}-tools = " \ - ${bindir}/pw-* \ -" - -# This is a shim daemon that is intended to be used as a -# drop-in PulseAudio replacement, providing a pulseaudio-compatible -# socket that can be used by applications that use libpulse. -CONFFILES_${PN}-pulse += "${sysconfdir}/pipewire/pipewire-pulse.conf" -FILES_${PN}-pulse = " \ - ${sysconfdir}/pipewire/pipewire-pulse.conf \ - ${systemd_user_unitdir}/pipewire-pulse.* \ - ${bindir}/pipewire-pulse \ -" -RDEPENDS_${PN}-pulse += " \ - ${PN}-modules-protocol-pulse \ -" - -# alsa plugin to redirect audio to pipewire -FILES_${PN}-alsa = "\ - ${libdir}/alsa-lib/* \ - ${datadir}/alsa/alsa.conf.d/* \ -" - -# jack drop-in libraries to redirect audio to pipewire -CONFFILES_${PN}-jack = "${sysconfdir}/pipewire/jack.conf" -FILES_${PN}-jack = "\ - ${sysconfdir}/pipewire/jack.conf \ - ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so.* \ -" - -# Example session manager. Not intended for use in production. -CONFFILES_${PN}-media-session = "${sysconfdir}/pipewire/media-session.d/*" -FILES_${PN}-media-session = " \ - ${bindir}/pipewire-media-session \ - ${sysconfdir}/pipewire/media-session.d/* \ -" -RPROVIDES_${PN}-media-session = "virtual/pipewire-sessionmanager" - -# Dynamic packages (see set_dynamic_metapkg_rdepends). -FILES_${PN}-spa-plugins = "" -RRECOMMENDS_${PN}-spa-plugins += "${PN}-spa-plugins-meta" - -FILES_${PN}-spa-tools = " \ - ${bindir}/spa-* \ -" - -# Dynamic packages (see set_dynamic_metapkg_rdepends). -FILES_${PN}-modules = "" -RRECOMMENDS_${PN}-modules += "${PN}-modules-meta" - -CONFFILES_${PN}-modules-rtkit = "${sysconfdir}/pipewire/client-rt.conf" -FILES_${PN}-modules-rtkit += " \ - ${sysconfdir}/pipewire/client-rt.conf \ - " - -FILES_${PN}-alsa-card-profile = " \ - ${datadir}/alsa-card-profile/* \ - ${nonarch_base_libdir}/udev/rules.d/90-pipewire-alsa.rules \ -" - -FILES_gstreamer1.0-pipewire = " \ - ${libdir}/gstreamer-1.0/* \ -" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.24.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.24.bb new file mode 100644 index 000000000..25c87d26d --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.24.bb @@ -0,0 +1,280 @@ +SUMMARY = "Multimedia processing server for Linux" +DESCRIPTION = "Linux server for handling and routing audio and video streams between applications and multimedia I/O devices" +HOMEPAGE = "https://pipewire.org/" +BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/pipewire/issues" +LICENSE = "MIT" +LIC_FILES_CHKSUM = " \ + file://LICENSE;md5=e2c0b7d86d04e716a3c4c9ab34260e69 \ + file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a \ +" +SECTION = "multimedia" + +DEPENDS = "dbus" + +SRCREV = "c81d44e8a9497899d01bcc3054b6aa845e7a066e" +SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig systemd manpages gettext useradd + +USERADD_PACKAGES = "${PN}" + +GROUPADD_PARAM_${PN} = "--system pipewire" + +USERADD_PARAM_${PN} = "--system --home / --no-create-home \ + --comment 'PipeWire multimedia daemon' \ + --gid pipewire --groups audio,video \ + pipewire" + +# For "EVL", look up https://evlproject.org/ . It involves +# a specially prepared kernel, and is currently unavailable +# in Yocto. +# +# FFmpeg and Vulkan aren't really supported - at the current +# stage (version 0.3.22), these are just experiments, not +# actual features. +# +# libcamera support currently does not build successfully. +# +# systemd user service files are disabled because per-user +# PipeWire instances aren't really something that makes +# much sense in an embedded environment. A system-wide +# instance does. +# +# manpage generation requires xmltoman, which is not available. +EXTRA_OEMESON += " \ + -Daudiotestsrc=enabled \ + -Devl=disabled \ + -Dsystemd-user-service=disabled \ + -Dtests=disabled \ + -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \ + -Dvideotestsrc=enabled \ + -Dffmpeg=disabled \ + -Dvulkan=disabled \ + -Dlibcamera=disabled \ + -Dman=disabled \ +" + +PACKAGECONFIG ??= "\ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa systemd', d)} \ + gstreamer jack v4l2 \ +" + +# "jack" and "pipewire-jack" packageconfigs cannot be both enabled, +# since "jack" imports libjack, and "pipewire-jack" generates +# libjack.so* files, thus colliding with the libpack package. This +# is why these two are marked in their respective packageconfigs +# as being in conflict. + +PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev" +PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc" +PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native" +PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base" +PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack" +PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,virtual/libsdl2" +PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1" +PACKAGECONFIG[systemd] = "-Dsystemd=enabled -Dsystemd-system-service=enabled ,-Dsystemd=disabled -Dsystemd-system-service=disabled,systemd" +PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev" +PACKAGECONFIG[pipewire-alsa] = "-Dpipewire-alsa=enabled,-Dpipewire-alsa=disabled,alsa-lib" +PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=enabled -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=disabled,jack,,,jack" + +PACKAGESPLITFUNCS_prepend = " split_dynamic_packages " +PACKAGESPLITFUNCS_append = " set_dynamic_metapkg_rdepends " + +SPA_SUBDIR = "spa-0.2" +PW_MODULE_SUBDIR = "pipewire-0.3" + +remove_unused_installed_files() { + # jack.conf is used by pipewire-jack (not the JACK SPA plugin). + # Remove it if pipewire-jack is not built to avoid creating the + # pipewire-jack package. + if ${@bb.utils.contains('PACKAGECONFIG', 'pipewire-jack', 'false', 'true', d)}; then + rm -f "${D}${sysconfdir}/pipewire/jack.conf" + fi +} + +do_install[postfuncs] += "remove_unused_installed_files" + +python split_dynamic_packages () { + # Create packages for each SPA plugin. These plugins are located + # in individual subdirectories, so a recursive search is needed. + spa_libdir = d.expand('${libdir}/${SPA_SUBDIR}') + do_split_packages(d, spa_libdir, r'^libspa-(.*)\.so$', d.expand('${PN}-spa-plugins-%s'), 'PipeWire SPA plugin for %s', extra_depends='', recursive=True) + + # Create packages for each PipeWire module. + pw_module_libdir = d.expand('${libdir}/${PW_MODULE_SUBDIR}') + do_split_packages(d, pw_module_libdir, r'^libpipewire-module-(.*)\.so$', d.expand('${PN}-modules-%s'), 'PipeWire %s module', extra_depends='', recursive=False) +} + +python set_dynamic_metapkg_rdepends () { + import os + import oe.utils + + # Go through all generated SPA plugin and PipeWire module packages + # (excluding the main package and the -meta package itself) and + # add them to the -meta package as RDEPENDS. + + base_pn = d.getVar('PN') + + spa_pn = base_pn + '-spa-plugins' + spa_metapkg = spa_pn + '-meta' + + pw_module_pn = base_pn + '-modules' + pw_module_metapkg = pw_module_pn + '-meta' + + d.setVar('ALLOW_EMPTY_' + spa_metapkg, "1") + d.setVar('FILES_' + spa_metapkg, "") + + d.setVar('ALLOW_EMPTY_' + pw_module_metapkg, "1") + d.setVar('FILES_' + pw_module_metapkg, "") + + blacklist = [ spa_pn, spa_metapkg, pw_module_pn, pw_module_metapkg ] + spa_metapkg_rdepends = [] + pw_module_metapkg_rdepends = [] + pkgdest = d.getVar('PKGDEST') + + for pkg in oe.utils.packages_filter_out_system(d): + if pkg in blacklist: + continue + + is_spa_pkg = pkg.startswith(spa_pn) + is_pw_module_pkg = pkg.startswith(pw_module_pn) + if not is_spa_pkg and not is_pw_module_pkg: + continue + + if pkg in spa_metapkg_rdepends or pkg in pw_module_metapkg_rdepends: + continue + + # See if the package is empty by looking at the contents of its + # PKGDEST subdirectory. If this subdirectory is empty, then then + # package is empty as well. Empty packages do not get added to + # the meta package's RDEPENDS. + pkgdir = os.path.join(pkgdest, pkg) + if os.path.exists(pkgdir): + dir_contents = os.listdir(pkgdir) or [] + else: + dir_contents = [] + is_empty = len(dir_contents) == 0 + if not is_empty: + if is_spa_pkg: + spa_metapkg_rdepends.append(pkg) + if is_pw_module_pkg: + pw_module_metapkg_rdepends.append(pkg) + + d.setVar('RDEPENDS_' + spa_metapkg, ' '.join(spa_metapkg_rdepends)) + d.setVar('DESCRIPTION_' + spa_metapkg, spa_pn + ' meta package') + + d.setVar('RDEPENDS_' + pw_module_metapkg, ' '.join(pw_module_metapkg_rdepends)) + d.setVar('DESCRIPTION_' + pw_module_metapkg, pw_module_pn + ' meta package') +} + +PACKAGES =+ "\ + libpipewire \ + ${PN}-tools \ + ${PN}-pulse \ + ${PN}-alsa \ + ${PN}-jack \ + ${PN}-media-session \ + ${PN}-spa-plugins \ + ${PN}-spa-plugins-meta \ + ${PN}-spa-tools \ + ${PN}-modules \ + ${PN}-modules-meta \ + ${PN}-alsa-card-profile \ + gstreamer1.0-pipewire \ +" + +PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*" + +SYSTEMD_SERVICE_${PN} = "pipewire.service" +CONFFILES_${PN} += "${sysconfdir}/pipewire/pipewire.conf" +FILES_${PN} = " \ + ${sysconfdir}/pipewire/pipewire.conf \ + ${systemd_user_unitdir}/pipewire.* \ + ${bindir}/pipewire \ +" + +FILES_${PN}-dev += " \ + ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so \ +" + +CONFFILES_libpipewire += "${sysconfdir}/pipewire/client.conf" +FILES_libpipewire = " \ + ${sysconfdir}/pipewire/client.conf \ + ${libdir}/libpipewire-*.so.* \ +" +# Add the bare minimum modules and plugins required to be able +# to use libpipewire. Without these, it is essentially unusable. +RDEPENDS_libpipewire += " \ + ${PN}-modules-client-node \ + ${PN}-modules-protocol-native \ + ${PN}-spa-plugins-support \ +" + +FILES_${PN}-tools = " \ + ${bindir}/pw-* \ +" + +# This is a shim daemon that is intended to be used as a +# drop-in PulseAudio replacement, providing a pulseaudio-compatible +# socket that can be used by applications that use libpulse. +CONFFILES_${PN}-pulse += "${sysconfdir}/pipewire/pipewire-pulse.conf" +FILES_${PN}-pulse = " \ + ${sysconfdir}/pipewire/pipewire-pulse.conf \ + ${systemd_user_unitdir}/pipewire-pulse.* \ + ${bindir}/pipewire-pulse \ +" +RDEPENDS_${PN}-pulse += " \ + ${PN}-modules-protocol-pulse \ +" + +# alsa plugin to redirect audio to pipewire +FILES_${PN}-alsa = "\ + ${libdir}/alsa-lib/* \ + ${datadir}/alsa/alsa.conf.d/* \ +" + +# jack drop-in libraries to redirect audio to pipewire +CONFFILES_${PN}-jack = "${sysconfdir}/pipewire/jack.conf" +FILES_${PN}-jack = "\ + ${sysconfdir}/pipewire/jack.conf \ + ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so.* \ +" + +# Example session manager. Not intended for use in production. +CONFFILES_${PN}-media-session = "${sysconfdir}/pipewire/media-session.d/*" +SYSTEMD_SERVICE_${PN}-media-session = "pipewire-media-session.service" +FILES_${PN}-media-session = " \ + ${bindir}/pipewire-media-session \ + ${sysconfdir}/pipewire/media-session.d/* \ + ${systemd_system_unitdir}/pipewire-media-session.service \ +" +RPROVIDES_${PN}-media-session = "virtual/pipewire-sessionmanager" + +# Dynamic packages (see set_dynamic_metapkg_rdepends). +FILES_${PN}-spa-plugins = "" +RRECOMMENDS_${PN}-spa-plugins += "${PN}-spa-plugins-meta" + +FILES_${PN}-spa-tools = " \ + ${bindir}/spa-* \ +" + +# Dynamic packages (see set_dynamic_metapkg_rdepends). +FILES_${PN}-modules = "" +RRECOMMENDS_${PN}-modules += "${PN}-modules-meta" + +CONFFILES_${PN}-modules-rtkit = "${sysconfdir}/pipewire/client-rt.conf" +FILES_${PN}-modules-rtkit += " \ + ${sysconfdir}/pipewire/client-rt.conf \ + " + +FILES_${PN}-alsa-card-profile = " \ + ${datadir}/alsa-card-profile/* \ + ${nonarch_base_libdir}/udev/rules.d/90-pipewire-alsa.rules \ +" + +FILES_gstreamer1.0-pipewire = " \ + ${libdir}/gstreamer-1.0/* \ +" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb index 21fddd1e1..2d6e913d8 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb @@ -6,9 +6,6 @@ SECTION = "audio" DEPENDS = "libpng ffmpeg libsndfile1" -# While this item does not require it, it depends on ffmpeg which does -LICENSE_FLAGS = "commercial" - PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)} \ magic \ " @@ -38,3 +35,5 @@ SRC_URI[md5sum] = "d04fba2d9245e661f245de0577f48a33" SRC_URI[sha256sum] = "b45f598643ffbd8e363ff24d61166ccec4836fea6d3888881b8df53e3bb55f6c" inherit autotools pkgconfig + +EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "0", "1", d)}" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb index c0074aabb..cb796a00f 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb @@ -16,9 +16,6 @@ DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native \ LDFLAGS_append_riscv64 = " -latomic" LDFLAGS_append_riscv32 = " -latomic" -# While this item does not require it, it depends on ffmpeg which does -LICENSE_FLAGS = "commercial" - SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.xz \ file://0001-make-opencv-configurable.patch \ file://0002-use-vorbisidec.patch \ @@ -134,3 +131,4 @@ FILES_${PN}-staticdev += "\ INSANE_SKIP_${PN} = "dev-so" +EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "0", "1", d)}" -- cgit v1.2.3