aboutsummaryrefslogtreecommitdiffstats
path: root/meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb
diff options
context:
space:
mode:
Diffstat (limited to 'meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb')
-rw-r--r--meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb88
1 files changed, 88 insertions, 0 deletions
diff --git a/meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb b/meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb
new file mode 100644
index 0000000000..0374d23f0c
--- /dev/null
+++ b/meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb
@@ -0,0 +1,88 @@
+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
+}