Package: guix-patches;
Reported by: Guillaume Le Vaillant <glv <at> posteo.net>
Date: Tue, 29 Oct 2019 09:27:01 UTC
Severity: normal
Tags: patch
Done: Pierre Neidhardt <mail <at> ambrevar.xyz>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 37975 in the body.
You can then email your comments to 37975 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#37975
; Package guix-patches
.
(Tue, 29 Oct 2019 09:27:01 GMT) Full text and rfc822 format available.Guillaume Le Vaillant <glv <at> posteo.net>
:guix-patches <at> gnu.org
.
(Tue, 29 Oct 2019 09:27:01 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Guillaume Le Vaillant <glv <at> posteo.net> To: guix-patches <at> gnu.org Subject: [PATCH 0/2] gnu: Add udiskie. Date: Tue, 29 Oct 2019 10:26:20 +0100
This patch series adds the udiskie frontend for udisks. Patches: - gnu: Add python-keyutils. - gnu: Add udiskie Note: I'm not familiar with the python build system, and I couldn't get the tests for python-keyutils to work. So if you're a pythoner with some free time, please check if you can get them to work.
guix-patches <at> gnu.org
:bug#37975
; Package guix-patches
.
(Tue, 29 Oct 2019 09:33:02 GMT) Full text and rfc822 format available.Message #8 received at 37975 <at> debbugs.gnu.org (full text, mbox):
From: Guillaume Le Vaillant <glv <at> posteo.net> To: 37975 <at> debbugs.gnu.org Cc: Guillaume Le Vaillant <glv <at> posteo.net> Subject: [PATCH 1/2] gnu: Add python-keyutils. Date: Tue, 29 Oct 2019 10:31:34 +0100
* gnu/packages/python-crypto.scm (python-keyutils): New variable. --- gnu/packages/python-crypto.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index f05c01060f..7dac25eb61 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2018 Nicolas Goaziou <mail <at> nicolasgoaziou.fr> ;;; Copyright © 2018 Vagrant Cascadian <vagrant <at> debian.org> ;;; Copyright © 2018 Nam Nguyen <namn <at> berkeley.edu> +;;; Copyright © 2019 Guillaume Le Vaillant <glv <at> posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1062,3 +1063,30 @@ Password-Authenticated Key Exchange algorithm.") (description "This package provides a Twisted-based Tor controller client, with state-tracking and configuration abstractions.") (license license:expat))) + +(define-public python-keyutils + (package + (name "python-keyutils") + (version "0.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "keyutils" version)) + (sha256 + (base32 + "0lipygpzhwzzsq2k5imb1jgkmj8y4khxdwhzadjs3bd56g6bmkx9")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-pytest-runner" ,python-pytest-runner))) + (inputs + `(("keyutils" ,keyutils))) + (arguments + '(#:tests? #f)) + (home-page "https://github.com/sassoftware/python-keyutils") + (synopsis "Python bindings for keyutils") + (description + "This is a set of python bindings for keyutils, a key management suite +that leverages the infrastructure provided by the Linux kernel for safely +storing and retrieving sensitive infromation in your programs.") + (license license:asl2.0))) -- 2.23.0
guix-patches <at> gnu.org
:bug#37975
; Package guix-patches
.
(Tue, 29 Oct 2019 09:33:02 GMT) Full text and rfc822 format available.Message #11 received at 37975 <at> debbugs.gnu.org (full text, mbox):
From: Guillaume Le Vaillant <glv <at> posteo.net> To: 37975 <at> debbugs.gnu.org Cc: Guillaume Le Vaillant <glv <at> posteo.net> Subject: [PATCH 2/2] gnu: Add udiskie. Date: Tue, 29 Oct 2019 10:31:35 +0100
* gnu/packages/freedesktop.scm (udiskie): New variable. --- gnu/packages/freedesktop.scm | 61 ++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index b18d71cb98..67d587ee48 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2018 Pierre Neidhardt <mail <at> ambrevar.xyz> ;;; Copyright © 2018 Stefan Stefanović <stefanx2ovic <at> gmail.com> ;;; Copyright © 2019 Reza Alizadeh Majd <r.majd <at> pantherx.org> +;;; Copyright © 2019 Guillaume Le Vaillant <glv <at> posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -74,6 +75,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages polkit) #:use-module (gnu packages python) + #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-xyz) #:use-module (gnu packages sqlite) #:use-module (gnu packages valgrind) @@ -1439,3 +1441,62 @@ encoding names are iconv-compatible.") ;; This combines code under MPL 1.1, LGPL 2.1+, and GPL 2.0+, so the ;; combination is GPL 2.0+. (license license:gpl2+))) + +(define-public udiskie + (package + (name "udiskie") + (version "1.7.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "udiskie" version)) + (sha256 + (base32 + "121g9dkr7drv9igpdbcbkj59x15mm72rzp3198bp50zj0lr4wbvi")))) + (build-system python-build-system) + (native-inputs + `(("asciidoc" ,asciidoc) + ("gettext" ,gettext-minimal) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("gobject-introspection" ,gobject-introspection) + ("gtk+" ,gtk+) + ("libnotify" ,libnotify) + ("udisks" ,udisks))) + (propagated-inputs + `(("python-docopt" ,python-docopt) + ("python-pygobject" ,python-pygobject) + ("python-keyutils" ,python-keyutils) + ("python-pyxdg" ,python-pyxdg) + ("python-pyyaml" ,python-pyyaml))) + (arguments + `(;; The tests want libappindicator, which is not available. + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-gi-typelib + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) + (wrap-program (string-append out "/bin/udiskie") + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) + #t))))) + (home-page "https://github.com/coldfix/udiskie") + (synopsis "Automounter for removable media") + (description + "The udiskie program is a udisks2 front-end that allows to manage +removeable media such as CDs or flash drives from userspace. + +Its features include: + +@itemize +@item automount removable media +@item notifications +@item tray icon +@item command line tools for manual un-/mounting +@item LUKS encrypted devices +@item unlocking with keyfiles +@item loop devices (mounting iso archives) +@item password caching +@end itemize") + (license license:expat))) -- 2.23.0
guix-patches <at> gnu.org
:bug#37975
; Package guix-patches
.
(Tue, 29 Oct 2019 11:11:02 GMT) Full text and rfc822 format available.Message #14 received at 37975 <at> debbugs.gnu.org (full text, mbox):
From: Pierre Neidhardt <mail <at> ambrevar.xyz> To: Guillaume Le Vaillant <glv <at> posteo.net> Cc: 37975 <at> debbugs.gnu.org Subject: Re: [bug#37975] [PATCH 2/2] gnu: Add udiskie. Date: Tue, 29 Oct 2019 12:10:15 +0100
[Message part 1 (text/plain, inline)]
Hi Guillaume, Looking great, just a few nits below: > + (arguments > + `(;; The tests want libappindicator, which is not available. Why isn't available? Should we package it? URL of the lib? > + #:tests? #f > + #:phases > + (modify-phases %standard-phases > + (add-after 'install 'wrap-gi-typelib > + (lambda* (#:key outputs #:allow-other-keys) > + (let ((out (assoc-ref outputs "out")) > + (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) > + (wrap-program (string-append out "/bin/udiskie") > + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) > + #t))))) > + (home-page "https://github.com/coldfix/udiskie") > + (synopsis "Automounter for removable media") > + (description > + "The udiskie program is a udisks2 front-end that allows to manage @command{udiskie}. > +removeable media such as CDs or flash drives from userspace. Typo: removable. > + > +Its features include: > + > +@itemize > +@item automount removable media > +@item notifications > +@item tray icon > +@item command line tools for manual un-/mounting I find the "-/" syntax a bit unconventional. Maybe "(un)mounting" would be better. In doubt, "mounting and unmounting" works in all cases :) > +@item LUKS encrypted devices > +@item unlocking with keyfiles > +@item loop devices (mounting iso archives) iso => ISO > +@item password caching > +@end itemize") => @end itemize\n Also maybe improve the typography of the list, e.g. add commas at the end of every line and a period for the last line. -- Pierre Neidhardt https://ambrevar.xyz/
[signature.asc (application/pgp-signature, inline)]
guix-patches <at> gnu.org
:bug#37975
; Package guix-patches
.
(Tue, 29 Oct 2019 14:03:02 GMT) Full text and rfc822 format available.Message #17 received at 37975 <at> debbugs.gnu.org (full text, mbox):
From: Guillaume Le Vaillant <glv <at> posteo.net> To: Pierre Neidhardt <mail <at> ambrevar.xyz> Cc: 37975 <at> debbugs.gnu.org Subject: Re: [bug#37975] [PATCH 2/2] gnu: Add udiskie. Date: Tue, 29 Oct 2019 15:02:05 +0100
Pierre Neidhardt skribis: >> + (arguments >> + `(;; The tests want libappindicator, which is not available. > > Why isn't available? Should we package it? URL of the lib? Apparently libappindicator is a library for the Unity desktop environment. I think it does not make much sense to add it as Unity is not in Guix. Instead I added a patch removing the support for libappindicator from udiskie.
guix-patches <at> gnu.org
:bug#37975
; Package guix-patches
.
(Tue, 29 Oct 2019 14:05:01 GMT) Full text and rfc822 format available.Message #20 received at 37975 <at> debbugs.gnu.org (full text, mbox):
From: Guillaume Le Vaillant <glv <at> posteo.net> To: 37975 <at> debbugs.gnu.org Cc: Guillaume Le Vaillant <glv <at> posteo.net> Subject: [PATCH v2 1/2] gnu: Add python-keyutils. Date: Tue, 29 Oct 2019 15:03:51 +0100
* gnu/packages/python-crypto.scm (python-keyutils): New variable. --- gnu/packages/python-crypto.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index f05c01060f..7dac25eb61 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2018 Nicolas Goaziou <mail <at> nicolasgoaziou.fr> ;;; Copyright © 2018 Vagrant Cascadian <vagrant <at> debian.org> ;;; Copyright © 2018 Nam Nguyen <namn <at> berkeley.edu> +;;; Copyright © 2019 Guillaume Le Vaillant <glv <at> posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1062,3 +1063,30 @@ Password-Authenticated Key Exchange algorithm.") (description "This package provides a Twisted-based Tor controller client, with state-tracking and configuration abstractions.") (license license:expat))) + +(define-public python-keyutils + (package + (name "python-keyutils") + (version "0.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "keyutils" version)) + (sha256 + (base32 + "0lipygpzhwzzsq2k5imb1jgkmj8y4khxdwhzadjs3bd56g6bmkx9")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-pytest-runner" ,python-pytest-runner))) + (inputs + `(("keyutils" ,keyutils))) + (arguments + '(#:tests? #f)) + (home-page "https://github.com/sassoftware/python-keyutils") + (synopsis "Python bindings for keyutils") + (description + "This is a set of python bindings for keyutils, a key management suite +that leverages the infrastructure provided by the Linux kernel for safely +storing and retrieving sensitive infromation in your programs.") + (license license:asl2.0))) -- 2.23.0
guix-patches <at> gnu.org
:bug#37975
; Package guix-patches
.
(Tue, 29 Oct 2019 14:05:02 GMT) Full text and rfc822 format available.Message #23 received at 37975 <at> debbugs.gnu.org (full text, mbox):
From: Guillaume Le Vaillant <glv <at> posteo.net> To: 37975 <at> debbugs.gnu.org Cc: Guillaume Le Vaillant <glv <at> posteo.net> Subject: [PATCH v2 2/2] gnu: Add udiskie. Date: Tue, 29 Oct 2019 15:03:52 +0100
* gnu/packages/freedesktop.scm (udiskie): New variable. * gnu/packages/patches/udiskie-no-appindicator.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/freedesktop.scm | 61 +++++++ .../patches/udiskie-no-appindicator.patch | 155 ++++++++++++++++++ 3 files changed, 217 insertions(+) create mode 100644 gnu/packages/patches/udiskie-no-appindicator.patch diff --git a/gnu/local.mk b/gnu/local.mk index 1b04485422..01ab967148 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1387,6 +1387,7 @@ dist_patch_DATA = \ %D%/packages/patches/tuxpaint-stamps-path.patch \ %D%/packages/patches/txr-shell.patch \ %D%/packages/patches/u-boot-fix-mkimage-header-verification.patch \ + %D%/packages/patches/udiskie-no-appindicator.patch \ %D%/packages/patches/unzip-CVE-2014-8139.patch \ %D%/packages/patches/unzip-CVE-2014-8140.patch \ %D%/packages/patches/unzip-CVE-2014-8141.patch \ diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index b18d71cb98..91c0a70b9c 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2018 Pierre Neidhardt <mail <at> ambrevar.xyz> ;;; Copyright © 2018 Stefan Stefanović <stefanx2ovic <at> gmail.com> ;;; Copyright © 2019 Reza Alizadeh Majd <r.majd <at> pantherx.org> +;;; Copyright © 2019 Guillaume Le Vaillant <glv <at> posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -74,6 +75,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages polkit) #:use-module (gnu packages python) + #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-xyz) #:use-module (gnu packages sqlite) #:use-module (gnu packages valgrind) @@ -1439,3 +1441,62 @@ encoding names are iconv-compatible.") ;; This combines code under MPL 1.1, LGPL 2.1+, and GPL 2.0+, so the ;; combination is GPL 2.0+. (license license:gpl2+))) + +(define-public udiskie + (package + (name "udiskie") + (version "1.7.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "udiskie" version)) + (sha256 + (base32 + "121g9dkr7drv9igpdbcbkj59x15mm72rzp3198bp50zj0lr4wbvi")) + (patches (search-patches "udiskie-no-appindicator.patch")))) + (build-system python-build-system) + (native-inputs + `(("asciidoc" ,asciidoc) + ("gettext" ,gettext-minimal) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("gobject-introspection" ,gobject-introspection) + ("gtk+" ,gtk+) + ("libnotify" ,libnotify) + ("udisks" ,udisks))) + (propagated-inputs + `(("python-docopt" ,python-docopt) + ("python-pygobject" ,python-pygobject) + ("python-keyutils" ,python-keyutils) + ("python-pyxdg" ,python-pyxdg) + ("python-pyyaml" ,python-pyyaml))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-gi-typelib + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) + (wrap-program (string-append out "/bin/udiskie") + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) + #t))))) + (home-page "https://github.com/coldfix/udiskie") + (synopsis "Automounter for removable media") + (description + "The @command{udiskie} program is a udisks2 front-end that allows to +manage removable media such as CDs or flash drives from userspace. + +Its features include: + +@itemize +@item automount removable media, +@item notifications, +@item tray icon, +@item command line tools for manual (un)mounting, +@item LUKS encrypted devices, +@item unlocking with keyfiles, +@item loop devices (mounting ISO archives), +@item password caching. +@end itemize +") + (license license:expat))) diff --git a/gnu/packages/patches/udiskie-no-appindicator.patch b/gnu/packages/patches/udiskie-no-appindicator.patch new file mode 100644 index 0000000000..c19099cdaa --- /dev/null +++ b/gnu/packages/patches/udiskie-no-appindicator.patch @@ -0,0 +1,155 @@ +Remove the support for Unity's appindicator. + +diff -Naur udiskie-1.7.7/completions/_udiskie udiskie-1.7.7a/completions/_udiskie +--- udiskie-1.7.7/completions/_udiskie 2019-02-17 18:28:58.000000000 +0100 ++++ udiskie-1.7.7a/completions/_udiskie 2019-10-29 14:21:04.556193639 +0100 +@@ -21,8 +21,6 @@ + '(-a)'{-A,--no-automount}"[disable automounting]" + '(-N)'{-n,--notify}"[show popup notifications]" + '(-n)'{-N,--no-notify}"[disable notifications]" +- '(--no-appindicator)'--appindicator"[use appindicator for status icon]" +- '(--appindicator)'--no-appindicator"[don't use appindicator]" + '(-T -s)'{-t,--tray}"[show tray icon]" + '(-T -t)'{-s,--smart-tray}"[auto hide tray icon]" + '(-t -s)'{-T,--no-tray}"[disable tray icon]" +diff -Naur udiskie-1.7.7/doc/udiskie.8.txt udiskie-1.7.7a/doc/udiskie.8.txt +--- udiskie-1.7.7/doc/udiskie.8.txt 2019-02-17 18:28:58.000000000 +0100 ++++ udiskie-1.7.7a/doc/udiskie.8.txt 2019-10-29 14:21:52.304570344 +0100 +@@ -95,12 +95,6 @@ + *-F, \--no-file-manager*:: + Disable browsing. + +-*-appindicator*:: +- Use AppIndicator3 for the status icon. Use this on Ubuntu/Unity if no icon is shown. +- +-*--no-appindicator*:: +- Use Gtk.StatusIcon for the status icon (default). +- + *--password-cache MINUTES*:: + Cache passwords for LUKS partitions and set the timeout. + +diff -Naur udiskie-1.7.7/udiskie/appindicator.py udiskie-1.7.7a/udiskie/appindicator.py +--- udiskie-1.7.7/udiskie/appindicator.py 2019-02-17 18:28:58.000000000 +0100 ++++ udiskie-1.7.7a/udiskie/appindicator.py 1970-01-01 01:00:00.000000000 +0100 +@@ -1,61 +0,0 @@ +-""" +-Status icon using AppIndicator3. +-""" +- +-from gi.repository import Gtk +-from gi.repository import AppIndicator3 +- +-from udiskie.async_ import Async +- +- +-class AppIndicatorIcon(object): +- +- """ +- Show status icon using AppIndicator as backend. Replaces +- `udiskie.tray.StatusIcon` on ubuntu/unity. +- """ +- +- def __init__(self, menumaker, _icons): +- self._maker = menumaker +- self._menu = Gtk.Menu() +- self._indicator = AppIndicator3.Indicator.new( +- 'udiskie', +- _icons.get_icon_name('media'), +- AppIndicator3.IndicatorCategory.HARDWARE) +- self._indicator.set_status(AppIndicator3.IndicatorStatus.PASSIVE) +- self._indicator.set_menu(self._menu) +- # Get notified before menu is shown, see: +- # https://bugs.launchpad.net/screenlets/+bug/522152/comments/15 +- dbusmenuserver = self._indicator.get_property('dbus-menu-server') +- self._dbusmenuitem = dbusmenuserver.get_property('root-node') +- self._conn = self._dbusmenuitem.connect('about-to-show', self._on_show) +- self.task = Async() +- menumaker._quit_action = self.destroy +- # Populate menu initially, so libdbusmenu does not ignore the +- # 'about-to-show': +- self._maker(self._menu) +- +- def destroy(self): +- self.show(False) +- self._dbusmenuitem.disconnect(self._conn) +- self.task.callback() +- +- @property +- def visible(self): +- status = self._indicator.get_status() +- return status == AppIndicator3.IndicatorStatus.ACTIVE +- +- def show(self, show=True): +- if show == self.visible: +- return +- status = (AppIndicator3.IndicatorStatus.ACTIVE if show else +- AppIndicator3.IndicatorStatus.PASSIVE) +- self._indicator.set_status(status) +- +- def _on_show(self, menu): +- # clear menu: +- for item in self._menu.get_children(): +- self._menu.remove(item) +- # repopulate: +- self._maker(self._menu) +- self._menu.show_all() +diff -Naur udiskie-1.7.7/udiskie/cli.py udiskie-1.7.7a/udiskie/cli.py +--- udiskie-1.7.7/udiskie/cli.py 2019-02-17 18:28:58.000000000 +0100 ++++ udiskie-1.7.7a/udiskie/cli.py 2019-10-29 14:18:22.678919186 +0100 +@@ -376,9 +376,6 @@ + -T, --no-tray Disable tray icon + -m MENU, --menu MENU Tray menu [flat/nested] + +- --appindicator Use appindicator for status icon +- --no-appindicator Don't use appindicator +- + --password-cache MINUTES Set password cache timeout + --no-password-cache Disable password cache + +@@ -400,7 +397,6 @@ + 'notify': True, + 'tray': False, + 'menu': 'flat', +- 'appindicator': False, + 'file_manager': 'xdg-open', + 'password_prompt': 'builtin:gui', + 'password_cache': False, +@@ -415,7 +411,6 @@ + '--no-tray': False, + '--smart-tray': 'auto'}), + 'menu': Value('--menu'), +- 'appindicator': Switch('appindicator'), + 'file_manager': OptionalValue('--file-manager'), + 'password_prompt': OptionalValue('--password-prompt'), + 'password_cache': OptionalValue('--password-cache'), +@@ -541,11 +536,7 @@ + raise ValueError("Invalid menu: %s" % (options['menu'],)) + + menu_maker = udiskie.tray.UdiskieMenu(self, icons, actions, flat) +- if options['appindicator']: +- import udiskie.appindicator +- TrayIcon = udiskie.appindicator.AppIndicatorIcon +- else: +- TrayIcon = udiskie.tray.TrayIcon ++ TrayIcon = udiskie.tray.TrayIcon + trayicon = TrayIcon(menu_maker, icons) + return udiskie.tray.UdiskieStatusIcon(trayicon, menu_maker, smart) + +diff -Naur udiskie-1.7.7/udiskie.egg-info/SOURCES.txt udiskie-1.7.7a/udiskie.egg-info/SOURCES.txt +--- udiskie-1.7.7/udiskie.egg-info/SOURCES.txt 2019-02-17 19:42:25.000000000 +0100 ++++ udiskie-1.7.7a/udiskie.egg-info/SOURCES.txt 2019-10-29 14:40:09.333315287 +0100 +@@ -24,7 +24,6 @@ + test/test_cache.py + test/test_match.py + udiskie/__init__.py +-udiskie/appindicator.py + udiskie/async_.py + udiskie/automount.py + udiskie/cache.py +@@ -46,4 +45,4 @@ + udiskie.egg-info/dependency_links.txt + udiskie.egg-info/entry_points.txt + udiskie.egg-info/requires.txt +-udiskie.egg-info/top_level.txt +\ Pas de fin de ligne à la fin du fichier ++udiskie.egg-info/top_level.txt -- 2.23.0
guix-patches <at> gnu.org
:bug#37975
; Package guix-patches
.
(Tue, 29 Oct 2019 14:18:02 GMT) Full text and rfc822 format available.Message #26 received at 37975 <at> debbugs.gnu.org (full text, mbox):
From: Pierre Neidhardt <mail <at> ambrevar.xyz> To: Guillaume Le Vaillant <glv <at> posteo.net> Cc: 37975 <at> debbugs.gnu.org Subject: Re: [bug#37975] [PATCH 2/2] gnu: Add udiskie. Date: Tue, 29 Oct 2019 15:17:51 +0100
[Message part 1 (text/plain, inline)]
Guillaume Le Vaillant <glv <at> posteo.net> writes: > Apparently libappindicator is a library for the Unity desktop > environment. I think it does not make much sense to add it as Unity is > not in Guix. Instead I added a patch removing the support for > libappindicator from udiskie. Alright, could you the just explain this in the comment? Thanks! -- Pierre Neidhardt https://ambrevar.xyz/
[signature.asc (application/pgp-signature, inline)]
guix-patches <at> gnu.org
:bug#37975
; Package guix-patches
.
(Tue, 29 Oct 2019 15:15:01 GMT) Full text and rfc822 format available.Message #29 received at 37975 <at> debbugs.gnu.org (full text, mbox):
From: Guillaume Le Vaillant <glv <at> posteo.net> To: 37975 <at> debbugs.gnu.org Cc: Guillaume Le Vaillant <glv <at> posteo.net> Subject: [PATCH v3 1/2] gnu: Add python-keyutils. Date: Tue, 29 Oct 2019 16:14:13 +0100
* gnu/packages/python-crypto.scm (python-keyutils): New variable. --- gnu/packages/python-crypto.scm | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/gnu/packages/python-crypto.scm b/gnu/packages/python-crypto.scm index f05c01060f..7dac25eb61 100644 --- a/gnu/packages/python-crypto.scm +++ b/gnu/packages/python-crypto.scm @@ -19,6 +19,7 @@ ;;; Copyright © 2018 Nicolas Goaziou <mail <at> nicolasgoaziou.fr> ;;; Copyright © 2018 Vagrant Cascadian <vagrant <at> debian.org> ;;; Copyright © 2018 Nam Nguyen <namn <at> berkeley.edu> +;;; Copyright © 2019 Guillaume Le Vaillant <glv <at> posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1062,3 +1063,30 @@ Password-Authenticated Key Exchange algorithm.") (description "This package provides a Twisted-based Tor controller client, with state-tracking and configuration abstractions.") (license license:expat))) + +(define-public python-keyutils + (package + (name "python-keyutils") + (version "0.6") + (source + (origin + (method url-fetch) + (uri (pypi-uri "keyutils" version)) + (sha256 + (base32 + "0lipygpzhwzzsq2k5imb1jgkmj8y4khxdwhzadjs3bd56g6bmkx9")))) + (build-system python-build-system) + (native-inputs + `(("python-pytest" ,python-pytest) + ("python-pytest-runner" ,python-pytest-runner))) + (inputs + `(("keyutils" ,keyutils))) + (arguments + '(#:tests? #f)) + (home-page "https://github.com/sassoftware/python-keyutils") + (synopsis "Python bindings for keyutils") + (description + "This is a set of python bindings for keyutils, a key management suite +that leverages the infrastructure provided by the Linux kernel for safely +storing and retrieving sensitive infromation in your programs.") + (license license:asl2.0))) -- 2.23.0
guix-patches <at> gnu.org
:bug#37975
; Package guix-patches
.
(Tue, 29 Oct 2019 15:15:02 GMT) Full text and rfc822 format available.Message #32 received at 37975 <at> debbugs.gnu.org (full text, mbox):
From: Guillaume Le Vaillant <glv <at> posteo.net> To: 37975 <at> debbugs.gnu.org Cc: Guillaume Le Vaillant <glv <at> posteo.net> Subject: [PATCH v3 2/2] gnu: Add udiskie. Date: Tue, 29 Oct 2019 16:14:14 +0100
* gnu/packages/freedesktop.scm (udiskie): New variable. * gnu/packages/patches/udiskie-no-appindicator.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/freedesktop.scm | 63 +++++++ .../patches/udiskie-no-appindicator.patch | 155 ++++++++++++++++++ 3 files changed, 219 insertions(+) create mode 100644 gnu/packages/patches/udiskie-no-appindicator.patch diff --git a/gnu/local.mk b/gnu/local.mk index 1b04485422..01ab967148 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1387,6 +1387,7 @@ dist_patch_DATA = \ %D%/packages/patches/tuxpaint-stamps-path.patch \ %D%/packages/patches/txr-shell.patch \ %D%/packages/patches/u-boot-fix-mkimage-header-verification.patch \ + %D%/packages/patches/udiskie-no-appindicator.patch \ %D%/packages/patches/unzip-CVE-2014-8139.patch \ %D%/packages/patches/unzip-CVE-2014-8140.patch \ %D%/packages/patches/unzip-CVE-2014-8141.patch \ diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index b18d71cb98..2574153cef 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -15,6 +15,7 @@ ;;; Copyright © 2018 Pierre Neidhardt <mail <at> ambrevar.xyz> ;;; Copyright © 2018 Stefan Stefanović <stefanx2ovic <at> gmail.com> ;;; Copyright © 2019 Reza Alizadeh Majd <r.majd <at> pantherx.org> +;;; Copyright © 2019 Guillaume Le Vaillant <glv <at> posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -74,6 +75,7 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages polkit) #:use-module (gnu packages python) + #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-xyz) #:use-module (gnu packages sqlite) #:use-module (gnu packages valgrind) @@ -1439,3 +1441,64 @@ encoding names are iconv-compatible.") ;; This combines code under MPL 1.1, LGPL 2.1+, and GPL 2.0+, so the ;; combination is GPL 2.0+. (license license:gpl2+))) + +(define-public udiskie + (package + (name "udiskie") + (version "1.7.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "udiskie" version)) + (sha256 + (base32 + "121g9dkr7drv9igpdbcbkj59x15mm72rzp3198bp50zj0lr4wbvi")) + ;; Remove support for the libappindicator library of the + ;; Unity desktop environment which is not in Guix. + (patches (search-patches "udiskie-no-appindicator.patch")))) + (build-system python-build-system) + (native-inputs + `(("asciidoc" ,asciidoc) + ("gettext" ,gettext-minimal) + ("gobject-introspection" ,gobject-introspection))) + (inputs + `(("gobject-introspection" ,gobject-introspection) + ("gtk+" ,gtk+) + ("libnotify" ,libnotify) + ("udisks" ,udisks))) + (propagated-inputs + `(("python-docopt" ,python-docopt) + ("python-pygobject" ,python-pygobject) + ("python-keyutils" ,python-keyutils) + ("python-pyxdg" ,python-pyxdg) + ("python-pyyaml" ,python-pyyaml))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'wrap-gi-typelib + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) + (wrap-program (string-append out "/bin/udiskie") + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) + #t))))) + (home-page "https://github.com/coldfix/udiskie") + (synopsis "Automounter for removable media") + (description + "The @command{udiskie} program is a udisks2 front-end that allows to +manage removable media such as CDs or flash drives from userspace. + +Its features include: + +@itemize +@item automount removable media, +@item notifications, +@item tray icon, +@item command line tools for manual (un)mounting, +@item LUKS encrypted devices, +@item unlocking with keyfiles, +@item loop devices (mounting ISO archives), +@item password caching. +@end itemize +") + (license license:expat))) diff --git a/gnu/packages/patches/udiskie-no-appindicator.patch b/gnu/packages/patches/udiskie-no-appindicator.patch new file mode 100644 index 0000000000..c19099cdaa --- /dev/null +++ b/gnu/packages/patches/udiskie-no-appindicator.patch @@ -0,0 +1,155 @@ +Remove the support for Unity's appindicator. + +diff -Naur udiskie-1.7.7/completions/_udiskie udiskie-1.7.7a/completions/_udiskie +--- udiskie-1.7.7/completions/_udiskie 2019-02-17 18:28:58.000000000 +0100 ++++ udiskie-1.7.7a/completions/_udiskie 2019-10-29 14:21:04.556193639 +0100 +@@ -21,8 +21,6 @@ + '(-a)'{-A,--no-automount}"[disable automounting]" + '(-N)'{-n,--notify}"[show popup notifications]" + '(-n)'{-N,--no-notify}"[disable notifications]" +- '(--no-appindicator)'--appindicator"[use appindicator for status icon]" +- '(--appindicator)'--no-appindicator"[don't use appindicator]" + '(-T -s)'{-t,--tray}"[show tray icon]" + '(-T -t)'{-s,--smart-tray}"[auto hide tray icon]" + '(-t -s)'{-T,--no-tray}"[disable tray icon]" +diff -Naur udiskie-1.7.7/doc/udiskie.8.txt udiskie-1.7.7a/doc/udiskie.8.txt +--- udiskie-1.7.7/doc/udiskie.8.txt 2019-02-17 18:28:58.000000000 +0100 ++++ udiskie-1.7.7a/doc/udiskie.8.txt 2019-10-29 14:21:52.304570344 +0100 +@@ -95,12 +95,6 @@ + *-F, \--no-file-manager*:: + Disable browsing. + +-*-appindicator*:: +- Use AppIndicator3 for the status icon. Use this on Ubuntu/Unity if no icon is shown. +- +-*--no-appindicator*:: +- Use Gtk.StatusIcon for the status icon (default). +- + *--password-cache MINUTES*:: + Cache passwords for LUKS partitions and set the timeout. + +diff -Naur udiskie-1.7.7/udiskie/appindicator.py udiskie-1.7.7a/udiskie/appindicator.py +--- udiskie-1.7.7/udiskie/appindicator.py 2019-02-17 18:28:58.000000000 +0100 ++++ udiskie-1.7.7a/udiskie/appindicator.py 1970-01-01 01:00:00.000000000 +0100 +@@ -1,61 +0,0 @@ +-""" +-Status icon using AppIndicator3. +-""" +- +-from gi.repository import Gtk +-from gi.repository import AppIndicator3 +- +-from udiskie.async_ import Async +- +- +-class AppIndicatorIcon(object): +- +- """ +- Show status icon using AppIndicator as backend. Replaces +- `udiskie.tray.StatusIcon` on ubuntu/unity. +- """ +- +- def __init__(self, menumaker, _icons): +- self._maker = menumaker +- self._menu = Gtk.Menu() +- self._indicator = AppIndicator3.Indicator.new( +- 'udiskie', +- _icons.get_icon_name('media'), +- AppIndicator3.IndicatorCategory.HARDWARE) +- self._indicator.set_status(AppIndicator3.IndicatorStatus.PASSIVE) +- self._indicator.set_menu(self._menu) +- # Get notified before menu is shown, see: +- # https://bugs.launchpad.net/screenlets/+bug/522152/comments/15 +- dbusmenuserver = self._indicator.get_property('dbus-menu-server') +- self._dbusmenuitem = dbusmenuserver.get_property('root-node') +- self._conn = self._dbusmenuitem.connect('about-to-show', self._on_show) +- self.task = Async() +- menumaker._quit_action = self.destroy +- # Populate menu initially, so libdbusmenu does not ignore the +- # 'about-to-show': +- self._maker(self._menu) +- +- def destroy(self): +- self.show(False) +- self._dbusmenuitem.disconnect(self._conn) +- self.task.callback() +- +- @property +- def visible(self): +- status = self._indicator.get_status() +- return status == AppIndicator3.IndicatorStatus.ACTIVE +- +- def show(self, show=True): +- if show == self.visible: +- return +- status = (AppIndicator3.IndicatorStatus.ACTIVE if show else +- AppIndicator3.IndicatorStatus.PASSIVE) +- self._indicator.set_status(status) +- +- def _on_show(self, menu): +- # clear menu: +- for item in self._menu.get_children(): +- self._menu.remove(item) +- # repopulate: +- self._maker(self._menu) +- self._menu.show_all() +diff -Naur udiskie-1.7.7/udiskie/cli.py udiskie-1.7.7a/udiskie/cli.py +--- udiskie-1.7.7/udiskie/cli.py 2019-02-17 18:28:58.000000000 +0100 ++++ udiskie-1.7.7a/udiskie/cli.py 2019-10-29 14:18:22.678919186 +0100 +@@ -376,9 +376,6 @@ + -T, --no-tray Disable tray icon + -m MENU, --menu MENU Tray menu [flat/nested] + +- --appindicator Use appindicator for status icon +- --no-appindicator Don't use appindicator +- + --password-cache MINUTES Set password cache timeout + --no-password-cache Disable password cache + +@@ -400,7 +397,6 @@ + 'notify': True, + 'tray': False, + 'menu': 'flat', +- 'appindicator': False, + 'file_manager': 'xdg-open', + 'password_prompt': 'builtin:gui', + 'password_cache': False, +@@ -415,7 +411,6 @@ + '--no-tray': False, + '--smart-tray': 'auto'}), + 'menu': Value('--menu'), +- 'appindicator': Switch('appindicator'), + 'file_manager': OptionalValue('--file-manager'), + 'password_prompt': OptionalValue('--password-prompt'), + 'password_cache': OptionalValue('--password-cache'), +@@ -541,11 +536,7 @@ + raise ValueError("Invalid menu: %s" % (options['menu'],)) + + menu_maker = udiskie.tray.UdiskieMenu(self, icons, actions, flat) +- if options['appindicator']: +- import udiskie.appindicator +- TrayIcon = udiskie.appindicator.AppIndicatorIcon +- else: +- TrayIcon = udiskie.tray.TrayIcon ++ TrayIcon = udiskie.tray.TrayIcon + trayicon = TrayIcon(menu_maker, icons) + return udiskie.tray.UdiskieStatusIcon(trayicon, menu_maker, smart) + +diff -Naur udiskie-1.7.7/udiskie.egg-info/SOURCES.txt udiskie-1.7.7a/udiskie.egg-info/SOURCES.txt +--- udiskie-1.7.7/udiskie.egg-info/SOURCES.txt 2019-02-17 19:42:25.000000000 +0100 ++++ udiskie-1.7.7a/udiskie.egg-info/SOURCES.txt 2019-10-29 14:40:09.333315287 +0100 +@@ -24,7 +24,6 @@ + test/test_cache.py + test/test_match.py + udiskie/__init__.py +-udiskie/appindicator.py + udiskie/async_.py + udiskie/automount.py + udiskie/cache.py +@@ -46,4 +45,4 @@ + udiskie.egg-info/dependency_links.txt + udiskie.egg-info/entry_points.txt + udiskie.egg-info/requires.txt +-udiskie.egg-info/top_level.txt +\ Pas de fin de ligne à la fin du fichier ++udiskie.egg-info/top_level.txt -- 2.23.0
guix-patches <at> gnu.org
:bug#37975
; Package guix-patches
.
(Wed, 30 Oct 2019 16:54:01 GMT) Full text and rfc822 format available.Message #35 received at 37975 <at> debbugs.gnu.org (full text, mbox):
From: Pierre Neidhardt <mail <at> ambrevar.xyz> To: Guillaume Le Vaillant <glv <at> posteo.net> Cc: 37975 <at> debbugs.gnu.org Subject: Re: [bug#37975] [PATCH v3 1/2] gnu: Add python-keyutils. Date: Wed, 30 Oct 2019 17:53:40 +0100
Merged, thanks a lot for this very useful package! -- Pierre Neidhardt https://ambrevar.xyz/
Pierre Neidhardt <mail <at> ambrevar.xyz>
to control <at> debbugs.gnu.org
.
(Wed, 30 Oct 2019 16:54:02 GMT) Full text and rfc822 format available.Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Thu, 28 Nov 2019 12:24:09 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.