summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-networking/recipes-connectivity/blueman
diff options
context:
space:
mode:
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.patch24
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-DO-not-emit-absolute-path-when-S-B.patch38
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-add-pythoninstalldir-option.patch50
-rw-r--r--meta-openembedded/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch72
-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
-}