diff options
Diffstat (limited to 'meta-openembedded/meta-networking/recipes-connectivity/blueman')
-rw-r--r-- | meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch | 24 | ||||
-rw-r--r-- | meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-DO-not-emit-absolute-path-when-S-B.patch | 38 | ||||
-rw-r--r-- | meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-add-pythoninstalldir-option.patch | 50 | ||||
-rw-r--r-- | meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch | 72 | ||||
-rw-r--r-- | meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.4.3.bb (renamed from meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb) | 44 |
5 files changed, 47 insertions, 181 deletions
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch deleted file mode 100644 index 913566dce9..0000000000 --- a/meta-openembedded/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_l_k@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-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-DO-not-emit-absolute-path-when-S-B.patch b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-DO-not-emit-absolute-path-when-S-B.patch new file mode 100644 index 0000000000..6e48b70243 --- /dev/null +++ b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-DO-not-emit-absolute-path-when-S-B.patch @@ -0,0 +1,38 @@ +From 4947abc5ede2dc356f011b7c45f6760c9c2ce9f1 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 14 Aug 2024 21:26:24 -0700 +Subject: [PATCH] meson: Do not emit absolute path when S != B + +build systems like OE build outside sourcetree in such cases it works +ok but cython resolves the input file to absolute path and that gets +emitted into genetate _blueman.c as module name, renders the build +non-reproducible, wish cython had a better way to handle this but there +is not, therefore tweak the meson build rule to account for specifying +workdir to cython which will search the inputs correctly, and use +meson's build_root to emit the output into build dir. This ensures that +it becomes independent of source or build directories and cython does +not generate the absolute paths into generate C code. + +See cython discussion on [1] + +[1] https://github.com/cython/cython/issues/5949 + +Upstream-Status: Submitted [https://github.com/blueman-project/blueman/pull/2461] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + module/meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/module/meson.build b/module/meson.build +index 096ad7c8..fddef547 100644 +--- a/module/meson.build ++++ b/module/meson.build +@@ -4,7 +4,7 @@ blueman_c = custom_target( + 'blueman_c', + output: '_blueman.c', + input: '_blueman.pyx', +- command: [cython, '--output-file', '@OUTPUT@', '@INPUT@']) ++ command: [cython, '-w', meson.source_root(), '--output-file', join_paths(meson.build_root(), '@OUTPUT@'), join_paths(meson.build_root(), '@INPUT@')]) + + sources = [ + blueman_c, diff --git a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-add-pythoninstalldir-option.patch b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-add-pythoninstalldir-option.patch deleted file mode 100644 index cc448b4ffd..0000000000 --- a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-add-pythoninstalldir-option.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 37f24a9bd62f0a8f3e37eaddd33f2f0c9d3aaa0a Mon Sep 17 00:00:00 2001 -From: Chen Qi <Qi.Chen@windriver.com> -Date: Fri, 1 Apr 2022 23:12:17 -0700 -Subject: [PATCH] meson: add pythoninstalldir option - -In case of cross build, using host python to determine the python -site-packages directory for target is not feasible, add a new option -pythoninstalldir to fix the issue. - -Upstream-Status: Submitted [https://github.com/blueman-project/blueman/pull/1699] - -Signed-off-by: Chen Qi <Qi.Chen@windriver.com> ---- - meson.build | 7 ++++++- - meson_options.txt | 1 + - 2 files changed, 7 insertions(+), 1 deletion(-) - -diff --git a/meson.build b/meson.build -index e12d0ce6..e84457a5 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']) --pythondir = pyinstall.get_install_dir() -+pythoninstalldir = get_option('pythoninstalldir') -+if pythoninstalldir != '' -+ pythondir = join_paths([prefix, pythoninstalldir]) -+else -+ pythondir = join_paths([prefix, python.sysconfig_path('purelib')]) -+endif - - if get_option('policykit') - have_polkit = 'True' -diff --git a/meson_options.txt b/meson_options.txt -index 177d9ab8..3e397d8e 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -2,6 +2,7 @@ option('runtime_deps_check', type: 'boolean', value: true, description: 'Disable - option('dhcp-config-path', type: 'string', value: '/etc/dhcp3/dhcpd.conf', description: 'Set dhcp3 server configuration path') - option('policykit', type: 'boolean', value: true, description: 'Enable policykit support') - option('pulseaudio', type: 'boolean', value: true, description: 'Enable PulseAudio support') -+option('pythoninstalldir', type: 'string', description: 'Path to python site-packages dir relative to ${prefix}') - 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-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch deleted file mode 100644 index 282d821374..0000000000 --- a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch +++ /dev/null @@ -1,72 +0,0 @@ -Fix fail to enable bluetooth issue - -When launch blueman-manager while bluetooth is disable, it may fails -with error: - - Failed to enable bluetooth - -Because when get bluetooth status right after change its status, the -status may not be updated that plugin applet/KillSwitch.py sets the -bluetooth status via method of another dbus service which doesn't return -immediately. - -Provides a new dbus method for PowerManager which checks whether dbus -method SetBluetoothStatus() has finished. Then it makes sure to get -right bluetooth status. - -Upstream-Status: Inappropriate -Send to upstream but not accepted: -https://github.com/blueman-project/blueman/pull/1121 - -Signed-off-by: Kai Kang <kai.kang@windriver.com> ---- - blueman/Functions.py | 10 ++++++++++ - blueman/plugins/applet/PowerManager.py | 4 ++++ - 2 files changed, 14 insertions(+) - -diff --git a/blueman/Functions.py b/blueman/Functions.py -index 3917f42..b4d5eae 100644 ---- a/blueman/Functions.py -+++ b/blueman/Functions.py -@@ -80,6 +80,16 @@ def check_bluetooth_status(message: str, exitfunc: Callable[[], Any]) -> None: - return - - applet.SetBluetoothStatus('(b)', True) -+ -+ timeout = time.time() + 10 -+ while applet.GetRequestStatus(): -+ time.sleep(0.1) -+ if time.time() > timeout: -+ # timeout 5s has been set in applet/PowerManager.py -+ # so it should NOT reach timeout here -+ logging.warning('Should NOT reach timeout.') -+ break -+ - if not applet.GetBluetoothStatus(): - print('Failed to enable bluetooth') - exitfunc() -diff --git a/blueman/plugins/applet/PowerManager.py b/blueman/plugins/applet/PowerManager.py -index c2f7bc3..bf6c99f 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") - 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): - def get_bluetooth_status(self) -> bool: - return self.current_state - -+ def get_request_status(self): -+ return self.request_in_progress -+ - 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-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.4.3.bb index 0374d23f0c..e7f0987e0f 100644 --- a/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb +++ b/meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman_2.4.3.bb @@ -4,20 +4,19 @@ 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 +inherit meson gettext systemd gsettings pkgconfig python3native gtk-icon-cache features_check python3targetconfig 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 \ -" +SRC_URI = "git://github.com/blueman-project/blueman.git;protocol=https;branch=2-4-stable \ + file://0001-meson-DO-not-emit-absolute-path-when-S-B.patch" S = "${WORKDIR}/git" -SRCREV = "c85e7afb8d6547d4c35b7b639124de8e999c3650" +SRCREV = "7bcf919ad6ac0ee9a8c66b18b0ca98af877d4c8f" -EXTRA_OEMESON = "-Druntime_deps_check=false -Dpythoninstalldir=${@noprefix('PYTHON_SITEPACKAGES_DIR', d)}" +EXTRA_OEMESON = "-Druntime_deps_check=false \ + -Dsystemdsystemunitdir=${systemd_system_unitdir} \ + -Dsystemduserunitdir=${systemd_user_unitdir} \ +" SYSTEMD_SERVICE:${PN} = "${BPN}-mechanism.service" SYSTEMD_AUTO_ENABLE:${PN} = "disable" @@ -44,6 +43,7 @@ PACKAGECONFIG[polkit] = "-Dpolicykit=true,-Dpolicykit=false" FILES:${PN} += " \ ${datadir} \ ${systemd_user_unitdir} \ + ${systemd_system_unitdir} \ ${PYTHON_SITEPACKAGES_DIR} \ " @@ -60,29 +60,3 @@ do_install:append() { ${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 -} |