I am seeing do_install error on yocto AB builds

| chown: invalid user: ‘polkitd:root’

https://autobuilder.yoctoproject.org/typhoon/#/builders/88/builds/3761/steps/15/logs/stdio

On Mon, Apr 1, 2024 at 12:14 AM Markus Volk <f_...@t-online.de> wrote:
>
> - rebase patches
> - remove 0001-Search-for-cython3.patch, cython3 is the default now
> - dont create polkit rule, meanwhile it is contained in the package
> - simplify the injection of python paths by patching the .in files
>   at do_configure
>
> This adds a reproducibility issue where I haven't yet been able to
> figure out the root cause, so this is marked RFC
> WARNING: blueman-2.4-r0 do_package_qa: QA Issue: File 
> /usr/src/debug/blueman/2.4/module/_blueman.c in package blueman-src contains 
> reference to TMPDIR [buildpaths]
> WARNING: blueman-2.4-r0 do_package_qa: QA Issue: File 
> /usr/lib/python3.12/site-packages/_blueman.so in package blueman contains 
> reference to TMPDIR [buildpaths]
>
> I've tested the rc version for quite some time now and its working
> well for me. It increases the short search timeout and includes
> matching polkit rule by default. Also it now bluetooth on/off switch,
> which is working great.
> Note: after disabling bluetooth the icon disappears immediately from e.g.
> waybar, but due to the lack of dbus communication it will be needed to
> restart waybar, to get it back visible after reactivating bluez again
>
> New features
> Audio profile switcher in applet menu (@abhijeetviswa)
> Set router address as DNS server instead of loopback addresses
> Enable dnsmasq DNS service if possible and add DNS servers otherwise
> Reconfigure DHCP service on local nameserver changes
> Support for systemd-resolved for getting nameservers for NAP clients
> List connected devices in status icon tooltip
> Support for nautilus 43 and later
> Copy bleutooth address to clipboard in devicelist
> Add battery levels to status icon tooltip
> Changes
> Raise minimum Python version to 3.8
> Raise minumum Gtk+ version to 3.24
> Hide recent connections associated with unavailable adapters
> Store network configuration in GSettings instead of 
> /var/lib/blueman/network.state.
> Replace custom MessageArea widget with regular Gtk.InfoBar
> Drop auto-power feature. BlueZ now has the AutoEnable setting for even better 
> auto-powering.
> Do not use pointless link quality value
> Recent connections in toplevel applet menu
> Never hide keyboard and combos, see #1954 for more info
> Do not close blueman-manager from applet
> Add Switch to blueman-manager to set bluetooth on/off
> Remove broken check for bluetooth status
> PluginDialog: Replace custom list with Gtk.ListBox
> Ignore double-click for connect when unpowered
> Drop homgeneous from statusbar
> PulseAudioUtils: Use python enums in several places
> Use operator convenience functions
> Cleanup PluginDialog UI
> Show HCI device in blueman-adapers tabs
> Show different icon for the active audio profile @localevil
> Make blueman-services a notebook
> Use the TypedDict as constructor
> Bugs fixed
> Fix device-selected handlers
> Fix deprecations in tests
> Fix showing -1 seconds when discovering @kuraga
> Tray: Let dbus call end and reply to caller
> Get the image-missing icon if lookup failed to avoid crash
>
> Signed-off-by: Markus Volk <f_...@t-online.de>
> ---
>  .../blueman/0001-Search-for-cython3.patch     | 24 -----
>  ...01-meson-add-pythoninstalldir-option.patch | 29 +++---
>  .../0002-fix-fail-to-enable-bluetooth.patch   | 20 ++---
>  .../blueman/blueman_2.3.5.bb                  | 88 -------------------
>  .../blueman/blueman_2.4.bb                    | 57 ++++++++++++
>  5 files changed, 85 insertions(+), 133 deletions(-)
>  delete mode 100644 
> meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch
>  delete mode 100644 
> meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb
>  create mode 100644 
> meta-networking/recipes-connectivity/blueman/blueman_2.4.bb
>
> diff --git 
> a/meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch
>  
> b/meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch
> deleted file mode 100644
> index 913566dce..000000000
> --- 
> a/meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch
> +++ /dev/null
> @@ -1,24 +0,0 @@
> -Subject: [PATCH] Search for cython3
> -MIME-Version: 1.0
> -Content-Type: text/plain; charset=UTF-8
> -Content-Transfer-Encoding: 8bit
> -
> -Upstream-Status: Inappropriate
> -
> -Signed-off-by: Markus Volk <f_...@gmx.net>
> ----
> - meson.build | 2 +-
> - 1 file changed, 1 insertion(+), 1 deletion(-)
> -
> ---- a/module/meson.build        2022-02-10 08:49:35.000000000 +0100
> -+++ b/module/meson.build        2022-03-29 12:58:03.456193737 +0200
> -@@ -1,4 +1,4 @@
> --cython = find_program('cython', required: true)
> -+cython = find_program('cython3', required: true)
> -
> - blueman_c = custom_target(
> -     'blueman_c',
> -
> ---
> -2.14.3
> -
> diff --git 
> a/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-add-pythoninstalldir-option.patch
>  
> b/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-add-pythoninstalldir-option.patch
> index cc448b4ff..3e9543410 100644
> --- 
> a/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-add-pythoninstalldir-option.patch
> +++ 
> b/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-add-pythoninstalldir-option.patch
> @@ -1,4 +1,4 @@
> -From 37f24a9bd62f0a8f3e37eaddd33f2f0c9d3aaa0a Mon Sep 17 00:00:00 2001
> +From 3d0cc8aae6de1b0a3b3dc87cdadc80199980783c Mon Sep 17 00:00:00 2001
>  From: Chen Qi <qi.c...@windriver.com>
>  Date: Fri, 1 Apr 2022 23:12:17 -0700
>  Subject: [PATCH] meson: add pythoninstalldir option
> @@ -16,13 +16,13 @@ Signed-off-by: Chen Qi <qi.c...@windriver.com>
>   2 files changed, 7 insertions(+), 1 deletion(-)
>
>  diff --git a/meson.build b/meson.build
> -index e12d0ce6..e84457a5 100644
> +index 2a4303ce..5154b2ad 100644
>  --- a/meson.build
>  +++ b/meson.build
> -@@ -26,7 +26,12 @@ pkgdatadir = join_paths([prefix, get_option('datadir'), 
> package_name])
> - bindir = join_paths([prefix, get_option('bindir')])
> - libexecdir = join_paths([prefix, get_option('libexecdir')])
> - schemadir = join_paths(['share', 'glib-2.0', 'schemas'])
> +@@ -29,7 +29,12 @@ dbusdir = join_paths([datadir, 'dbus-1'])
> + libexecdir = get_option('libexecdir')
> + schemadir = join_paths([datadir, 'glib-2.0', 'schemas'])
> + polkitdir = join_paths([datadir, 'polkit-1'])
>  -pythondir = pyinstall.get_install_dir()
>  +pythoninstalldir = get_option('pythoninstalldir')
>  +if pythoninstalldir != ''
> @@ -30,11 +30,20 @@ index e12d0ce6..e84457a5 100644
>  +else
>  +    pythondir = join_paths([prefix, python.sysconfig_path('purelib')])
>  +endif
> + systemd_base_path = join_paths(libdir, 'systemd')
>
>   if get_option('policykit')
> -     have_polkit = 'True'
> +@@ -51,7 +56,7 @@ conf_data.set('icondir', join_paths(prefix, datadir, 
> 'icons'))
> + conf_data.set('dhconfig', get_option('dhcp-config-path'))
> + conf_data.set('POLKIT', have_polkit)
> + conf_data.set('GETTEXT_PACKAGE', package_name)
> +-conf_data.set('PYTHON', pyinstall.full_path())
> ++conf_data.set('PYTHON', pyinstall.path())
> +
> + # Check for build dependencies
> + pythonlib = pyinstall.dependency()
>  diff --git a/meson_options.txt b/meson_options.txt
> -index 177d9ab8..3e397d8e 100644
> +index 177d9ab8..87d73872 100644
>  --- a/meson_options.txt
>  +++ b/meson_options.txt
>  @@ -2,6 +2,7 @@ option('runtime_deps_check', type: 'boolean', value: true, 
> description: 'Disable
> @@ -45,6 +54,4 @@ index 177d9ab8..3e397d8e 100644
>   option('systemdsystemunitdir', type: 'string', description: 'Path to 
> systemd system unit dir relative to ${prefix}')
>   option('systemduserunitdir', type: 'string', description: 'Path to systemd 
> user unit dir relative to ${prefix}')
>   option('sendto-plugins', type: 'array', choices: ['Caja', 'Nemo', 
> 'Nautilus'], value: ['Caja', 'Nemo', 'Nautilus'], description: 'Install 
> sendto plugins for various filemanagers')
> ---
> -2.34.1
> -
> +
> diff --git 
> a/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch
>  
> b/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch
> index 282d82137..8a18600dd 100644
> --- 
> a/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch
> +++ 
> b/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch
> @@ -1,4 +1,7 @@
> -Fix fail to enable bluetooth issue
> +From 37c5f0e9741e8a07114ab6120a74affadf0a453e Mon Sep 17 00:00:00 2001
> +From: Kai Kang <kai.k...@windriver.com>
> +Date: Fri, 25 Oct 2019 12:56:48 +0800
> +Subject: [PATCH] Fix fail to enable bluetooth issue
>
>  When launch blueman-manager while bluetooth is disable, it may fails
>  with error:
> @@ -25,10 +28,10 @@ Signed-off-by: Kai Kang <kai.k...@windriver.com>
>   2 files changed, 14 insertions(+)
>
>  diff --git a/blueman/Functions.py b/blueman/Functions.py
> -index 3917f42..b4d5eae 100644
> +index 018ffaed..f4fdca41 100644
>  --- a/blueman/Functions.py
>  +++ b/blueman/Functions.py
> -@@ -80,6 +80,16 @@ def check_bluetooth_status(message: str, exitfunc: 
> Callable[[], Any]) -> None:
> +@@ -79,6 +79,16 @@ def check_bluetooth_status(message: str, exitfunc: 
> Callable[[], Any]) -> None:
>               return
>
>       applet.SetBluetoothStatus('(b)', True)
> @@ -46,18 +49,18 @@ index 3917f42..b4d5eae 100644
>           print('Failed to enable bluetooth')
>           exitfunc()
>  diff --git a/blueman/plugins/applet/PowerManager.py 
> b/blueman/plugins/applet/PowerManager.py
> -index c2f7bc3..bf6c99f 100644
> +index 8c3991e4..57c1aa57 100644
>  --- a/blueman/plugins/applet/PowerManager.py
>  +++ b/blueman/plugins/applet/PowerManager.py
> -@@ -63,6 +63,7 @@ class PowerManager(AppletPlugin, StatusIconProvider):
> -         self._add_dbus_signal("BluetoothStatusChanged", "b")
> +@@ -49,6 +49,7 @@ class PowerManager(AppletPlugin, StatusIconProvider):
> +
>           self._add_dbus_method("SetBluetoothStatus", ("b",), "", 
> self.request_power_state)
>           self._add_dbus_method("GetBluetoothStatus", (), "b", 
> self.get_bluetooth_status)
>  +        self._add_dbus_method("GetRequestStatus", (), "b", 
> self.get_request_status)
>
>       def on_unload(self) -> None:
>           self.parent.Plugins.Menu.unregister(self)
> -@@ -196,6 +197,9 @@ class PowerManager(AppletPlugin, StatusIconProvider):
> +@@ -178,6 +179,9 @@ class PowerManager(AppletPlugin, StatusIconProvider):
>       def get_bluetooth_status(self) -> bool:
>           return self.current_state
>
> @@ -67,6 +70,3 @@ index c2f7bc3..bf6c99f 100644
>       def on_adapter_property_changed(self, _path: str, key: str, value: Any) 
> -> None:
>           if key == "Powered":
>               if value and not self.current_state:
> ---
> -2.31.1
> -
> diff --git a/meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb 
> b/meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb
> deleted file mode 100644
> index 0374d23f0..000000000
> --- a/meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb
> +++ /dev/null
> @@ -1,88 +0,0 @@
> -DESCRIPTION = "Blueman is a GTK+ Bluetooth Manager"
> -LICENSE = "GPL-3.0-only"
> -LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
> -
> -DEPENDS = "gtk+3 glib-2.0 bluez5 python3-pygobject python3-cython-native"
> -
> -inherit meson gettext systemd gsettings pkgconfig python3native 
> gtk-icon-cache useradd features_check
> -
> -REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
> -
> -SRC_URI = " \
> -    
> git://github.com/blueman-project/blueman.git;protocol=https;branch=2-3-stable 
> \
> -    file://0001-Search-for-cython3.patch \
> -    file://0002-fix-fail-to-enable-bluetooth.patch \
> -    file://0001-meson-add-pythoninstalldir-option.patch \
> -"
> -S = "${WORKDIR}/git"
> -SRCREV = "c85e7afb8d6547d4c35b7b639124de8e999c3650"
> -
> -EXTRA_OEMESON = "-Druntime_deps_check=false 
> -Dpythoninstalldir=${@noprefix('PYTHON_SITEPACKAGES_DIR', d)}"
> -
> -SYSTEMD_SERVICE:${PN} = "${BPN}-mechanism.service"
> -SYSTEMD_AUTO_ENABLE:${PN} = "disable"
> -
> -RRECOMMENDS:${PN} += "adwaita-icon-theme"
> -RDEPENDS:${PN} += " \
> -    python3-core \
> -    python3-ctypes \
> -    python3-dbus \
> -    python3-pygobject \
> -    python3-terminal \
> -    python3-fcntl \
> -    packagegroup-tools-bluetooth \
> -"
> -
> -PACKAGECONFIG ??= " \
> -    ${@bb.utils.filter('DISTRO_FEATURES', 'polkit pulseaudio ', d)} \
> -    thunar \
> -"
> -PACKAGECONFIG[thunar] = "-Dthunar-sendto=true,-Dthunar-sendto=false"
> -PACKAGECONFIG[pulseaudio] = "-Dpulseaudio=true,-Dpulseaudio=false"
> -PACKAGECONFIG[polkit] = "-Dpolicykit=true,-Dpolicykit=false"
> -
> -FILES:${PN} += " \
> -    ${datadir} \
> -    ${systemd_user_unitdir} \
> -    ${PYTHON_SITEPACKAGES_DIR} \
> -"
> -
> -# In code, path to python is a variable that is replaced with path to native 
> version of it
> -# during the configure stage, e.g 
> ../recipe-sysroot-native/usr/bin/python3-native/python3.
> -# Replace it with #!/usr/bin/env python3
> -do_install:append() {
> -    sed -i "1s/.*/#!\/usr\/bin\/env python3/" 
> ${D}${prefix}/libexec/blueman-rfcomm-watcher \
> -                                              
> ${D}${prefix}/libexec/blueman-mechanism \
> -                                              ${D}${bindir}/blueman-adapters 
> \
> -                                              ${D}${bindir}/blueman-applet \
> -                                              ${D}${bindir}/blueman-manager \
> -                                              ${D}${bindir}/blueman-sendto \
> -                                              ${D}${bindir}/blueman-services 
> \
> -                                              ${D}${bindir}/blueman-tray
> -}
> -
> -do_install:append() {
> -    install -d ${D}${datadir}/polkit-1/rules.d
> -    cat >${D}${datadir}/polkit-1/rules.d/51-blueman.rules <<EOF
> -/* Allow users in wheel group to use blueman feature requiring root without 
> authentication */
> -polkit.addRule(function(action, subject) {
> -    if ((action.id == "org.blueman.network.setup" ||
> -         action.id == "org.blueman.dhcp.client" ||
> -         action.id == "org.blueman.rfkill.setstate" ||
> -         action.id == "org.blueman.pppd.pppconnect") &&
> -        subject.isInGroup("wheel")) {
> -
> -        return polkit.Result.YES;
> -    }
> -});
> -EOF
> -}
> -
> -USERADD_PACKAGES = "${PN}"
> -USERADD_PARAM:${PN} = "--system --no-create-home --user-group --home-dir 
> ${sysconfdir}/polkit-1 --shell /bin/nologin polkitd"
> -
> -do_install:append() {
> -        # Fix up permissions on polkit rules.d to work with rpm4 constraints
> -        chmod 700 ${D}/${datadir}/polkit-1/rules.d
> -        chown polkitd:root ${D}/${datadir}/polkit-1/rules.d
> -}
> diff --git a/meta-networking/recipes-connectivity/blueman/blueman_2.4.bb 
> b/meta-networking/recipes-connectivity/blueman/blueman_2.4.bb
> new file mode 100644
> index 000000000..71fa0317d
> --- /dev/null
> +++ b/meta-networking/recipes-connectivity/blueman/blueman_2.4.bb
> @@ -0,0 +1,57 @@
> +DESCRIPTION = "Blueman is a GTK+ Bluetooth Manager"
> +LICENSE = "GPL-3.0-only"
> +LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
> +
> +DEPENDS = "gtk+3 glib-2.0 bluez5 python3-pygobject python3-cython-native"
> +
> +inherit meson gettext systemd gsettings pkgconfig python3native 
> gtk-icon-cache features_check
> +
> +REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
> +
> +SRC_URI = " \
> +    
> git://github.com/blueman-project/blueman.git;protocol=https;branch=2-4-stable 
> \
> +    file://0002-fix-fail-to-enable-bluetooth.patch \
> +    file://0001-meson-add-pythoninstalldir-option.patch \
> +"
> +S = "${WORKDIR}/git"
> +SRCREV = "71948d45d5b23d58f4be03543570d256faa45cc4"
> +
> +EXTRA_OEMESON = "-Druntime_deps_check=false 
> -Dpythoninstalldir=${@noprefix('PYTHON_SITEPACKAGES_DIR', d)}"
> +
> +SYSTEMD_SERVICE:${PN} = "${BPN}-mechanism.service"
> +SYSTEMD_AUTO_ENABLE:${PN} = "disable"
> +
> +RRECOMMENDS:${PN} += "adwaita-icon-theme"
> +RDEPENDS:${PN} += " \
> +    python3-core \
> +    python3-ctypes \
> +    python3-dbus \
> +    python3-pygobject \
> +    python3-terminal \
> +    python3-fcntl \
> +    packagegroup-tools-bluetooth \
> +"
> +
> +do_configure:prepend() {
> +       for file in ${S}/apps/*.in; do
> +               sed -i "s|@PYTHON@|\/usr\/bin\/env python3|" "$file"
> +       done
> +}
> +
> +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'polkit pulseaudio 
> ', d)}"
> +
> +PACKAGECONFIG[thunar] = "-Dthunar-sendto=true,-Dthunar-sendto=false"
> +PACKAGECONFIG[pulseaudio] = "-Dpulseaudio=true,-Dpulseaudio=false"
> +PACKAGECONFIG[polkit] = "-Dpolicykit=true,-Dpolicykit=false"
> +
> +do_install:append() {
> +        # Fix up permissions on polkit rules.d to work with rpm4 constraints
> +        chmod 700 ${D}/${datadir}/polkit-1/rules.d
> +        chown polkitd:root ${D}/${datadir}/polkit-1/rules.d
> +}
> +
> +FILES:${PN} += " \
> +    ${datadir} \
> +    ${systemd_user_unitdir} \
> +    ${PYTHON_SITEPACKAGES_DIR} \
> +"
> --
> 2.44.0
>
>
> 
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#109768): 
https://lists.openembedded.org/g/openembedded-devel/message/109768
Mute This Topic: https://lists.openembedded.org/mt/105259533/21656
Group Owner: openembedded-devel+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to