From 52dc6e2dd01cbbf280e7e17af6274d2b1aa2bde1 Mon Sep 17 00:00:00 2001 From: Raghav Gururajan Date: Sat, 9 May 2020 17:38:43 -0400 Subject: [PATCH] gnu: blueman: Update package definition. * gnu/packages/networking.scm (blueman): Fixes. [version]: Upgrade to 2.1.3. [source][method]: Change from url-fetch to git-fetch. [arguments]<#:configure-flags>[--disable-appindicator]: Remove flag. [--disable-schemas-compile]: New flag. [arguments]<#:phases>['setenv]: New phase. ['patch-python-references]: New phase. ['patch-os-path]: New phase. ['patch-progs-path]: New phase. ['wrap-blueman-progs]: New phase. [native-inputs]: Add autoconf, autogen, automake and gobject-introspection. [inputs]: Add iptables and ppp. Replace libnma with network-manager. Remove adwaita-icon-theme. --- gnu/packages/networking.scm | 101 +++++++++++++++++++++++++++++++----- 1 file changed, 89 insertions(+), 12 deletions(-) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index d7720724cc..ddf1d95df4 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -72,6 +72,7 @@ #:use-module (gnu packages adns) #:use-module (gnu packages algebra) #:use-module (gnu packages audio) + #:use-module (gnu packages autogen) #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bison) @@ -113,6 +114,7 @@ #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages readline) + #:use-module (gnu packages samba) #:use-module (gnu packages serialization) #:use-module (gnu packages sqlite) #:use-module (gnu packages ssh) @@ -127,46 +129,121 @@ (define-public blueman (package (name "blueman") - (version "2.1.2") + (version "2.1.3") (source (origin - (method url-fetch) + (method git-fetch) (uri - (string-append "https://github.com/blueman-project/blueman/releases/" - "download/2.1.2/blueman-2.1.2.tar.gz")) + (git-reference + (url "https://github.com/blueman-project/blueman.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "0wamxdw36c8i3aqwmja5q70fajqwd7inpkvlpkldd54wdxbcd38d")))) + (base32 "1vb0zfns4q5d65hnja4c0k11lr38xxhdnkpkzfs6xca3mm6jyi1d")))) (build-system glib-or-gtk-build-system) (arguments `(#:configure-flags (list "--enable-polkit" - "--disable-appindicator" ; Deprecated - "--with-systemdsystemunitdir=no" ; Not required - "--with-systemduserunitdir=no"))) ; Not required + "--disable-schemas-compile" ; Compiled at 'glib-or-gtk-compile-schemas + "--without-systemdsystemunitdir" ; Not required + "--without-systemduserunitdir") ; Not required + #:phases + (modify-phases %standard-phases + ;; Prevent the autogen.sh script to carry out the configure + ;; script, which has not yet been patched to replace /bin/sh. + (add-before 'bootstrap 'setenv + (lambda _ + (setenv "NOCONFIGURE" "TRUE") + #t)) + ;; Python references are not being patched in patch-phase of build; + ;; despite using python-wrapper as input. So patching them manually. + (add-after 'unpack 'patch-python-references + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "apps" + (substitute* + '("blueman-adapters.in" "blueman-applet.in" + "blueman-assistant.in" "blueman-manager.in" + "blueman-mechanism.in" "blueman-report.in" + "blueman-rfcomm-watcher.in" "blueman-sendto.in" + "blueman-services.in" "blueman-tray.in") + (("@PYTHON@") (string-append (assoc-ref inputs "python") + "/bin/python3.7")))) + #t)) + ;; PATH is hard-coded for FHS directories. + ;; Patch it to PATH used by Guix. + (add-after 'patch-python-references 'patch-os-path + (lambda _ + (substitute* + '("apps/blueman-mechanism.in" "blueman/Functions.py") + (("/usr/bin:/bin:/usr/sbin:/sbin") + (string-append + "~/.guix-profile/bin:" + "/run/current-system/profile/bin:" + "~/.guix-profile/sbin:" + "/run/current-system/profile/sbin")) + ((":/sbin:/usr/sbin") + (string-append + ":/run/current-system/profile/sbin:" + "~/.guix-profile/sbin"))) + #t)) + (add-after 'patch-os-path 'patch-progs-path + (lambda* (#:key inputs #:allow-other-keys) + (substitute* + '("apps/blueman-report.in" "blueman/main/NetConf.py" + "blueman/main/PPPConnection.py") + (("/usr/sbin/bluetoothd") + (string-append (assoc-ref inputs "bluez") + "/libexec/bluetooth/bluetoothd")) + (("/sbin/iptables") + (string-append (assoc-ref inputs "iptables") + "/sbin/iptables")) + (("/usr/sbin/pppd") + (string-append (assoc-ref inputs "ppp") + "/sbin/pppd"))) + #t)) + (add-after 'glib-or-gtk-wrap 'wrap-blueman-progs + (lambda* (#:key outputs #:allow-other-keys) + (let* + ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin/blueman-")) + (lib (string-append out "/lib/python3.7/site-packages/"))) + (for-each + (lambda (program) + (wrap-program (string-append bin program) + `("PYTHONPATH" = (,(getenv "PYTHONPATH"),lib)) + `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))) + '("adapters" "applet" "assistant" "manager" "report" + "sendto" "services" "tray")) + #t)))))) (native-inputs - `(("cython" ,python-cython) + `(("autoconf" ,autoconf) + ("autogen" ,autogen) + ("automake" ,automake) + ("cython" ,python-cython) ("glib:bin" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) ("gtk+:bin" ,gtk+ "bin") ("intltool" ,intltool) ("libtool" ,libtool) ("pkg-config" ,pkg-config))) (inputs - `(("adwaita-icon-theme" ,adwaita-icon-theme) - ("bluez" ,bluez) + `(("bluez" ,bluez) ("dbus" ,dbus) ("gdkpixbuf" ,gdk-pixbuf) ("glib" ,glib) ("gtk+" ,gtk+) ("iproute2" ,iproute) + ("iptables" ,iptables) ("net-tools" ,net-tools) ("pango" ,pango) ("polkit" ,polkit) + ("ppp" ,ppp) ("pulseaudio" ,pulseaudio) ("pycairo" ,python-pycairo) ("pygobject" ,python-pygobject) ("python" ,python-wrapper) - ("libnm" ,libnma))) + ("libnm" ,network-manager))) (synopsis "GTK+ Bluetooth manager") (description "Blueman is a Bluetooth management utility using the Bluez D-Bus backend. It is designed to be easy to use for most common Bluetooth -- 2.26.2