added my Recipes
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
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
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
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
|
||||
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user