[PATCH rust-team] gnu: authenticator: Deprecate in favor of gnome-authenticator.

  • Done
  • quality assurance status badge
Details
2 participants
  • Efraim Flashner
  • Giacomo Leidi
Owner
unassigned
Submitted by
Giacomo Leidi
Severity
normal

Debbugs page

G
G
Giacomo Leidi wrote 7 days ago
(address . guix-patches@gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
93ae237973b0ea60e36a4c32e520c5249f4a3fe2.1735950813.git.goodoldpaul@autistici.org
This commit is a follow up to 64bcc8ba0f1ea8addaf0a1c65b3fca6cb1bf5422,
it deprecates the old Python authenticator package in favor of the new
gnome-authenticator Rust implementation.

* gnu/services/gnome.scm (authenticator): Deprecate in favor of gnome-authenticator.

Change-Id: I02081f4cd1dfdb8bd2327a9931299e97f8a11aee
---
gnu/packages/gnome.scm | 326 ++++++++++++++++-------------------------
1 file changed, 127 insertions(+), 199 deletions(-)

Toggle diff (382 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index a5891cb82d..30038379f5 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -36,7 +36,7 @@
;;; Copyright © 2019 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2019 Florian Pelz <pelzflorian@pelzflorian.de>
-;;; Copyright © 2019 Giacomo Leidi <goodoldpaul@autistici.org>
+;;; Copyright © 2019, 2024, 2025 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2019 Jelle Licht <jlicht@fsfe.org>
;;; Copyright © 2019 Jonathan Frederickson <jonathan@terracrypt.net>
;;; Copyright © 2019-2024 Maxim Cournoyer <maxim.cournoyer@gmail.com>
@@ -79,7 +79,6 @@
;;; Copyright © 2023 Zhu Zihao <all_but_last@163.com>
;;; Copyright © 2024 Dariqq <dariqq@posteo.net>
;;; Copyright © 2024 James Smith <jsubuntuxp@disroot.org>
-;;; Copyright © 2024 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -10493,81 +10492,152 @@ (define-public byzanz
(home-page "https://git.gnome.org/browse/byzanz")
(license license:gpl2+))))
-(define-public authenticator
+(define-public gnome-authenticator
(package
- (name "authenticator")
- (version "3.32.2")
+ (name "gnome-authenticator")
+ (version "4.4.0")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://gitlab.gnome.org/World/Authenticator")
+ (url "https://gitlab.gnome.org/World/Authenticator.git/")
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1c4r9rnrz5gazrfg0z2rcwax4nscs7z391bcjcl74k6ln3blwzpr"))))
- (build-system meson-build-system)
+ (base32 "0zavax35n048spx097ymiq31s8b879qwbg8xmcxcx73r6m823mic"))))
+ (build-system cargo-build-system)
(arguments
(list
- #:glib-or-gtk? #t
+ #:install-source? #f
+ #:vendor-dir "vendor"
+ #:cargo-inputs
+ (list rust-aes-gcm-0.10
+ rust-anyhow-1
+ rust-async-std-1
+ rust-aperture-0.3
+ rust-ashpd-0.6
+ rust-data-encoding-2
+ rust-diesel-2
+ rust-diesel-migrations-2
+ rust-futures-channel-0.3
+ rust-futures-executor-0.3
+ rust-futures-util-0.3
+ rust-gettext-rs-0.7
+ rust-gtk4-0.7
+ rust-hex-0.4
+ rust-image-0.24
+ rust-libadwaita-0.5
+ rust-oo7-0.2
+ rust-percent-encoding-2
+ rust-prost-0.12
+ rust-qrencode-0.14
+ rust-quick-xml-0.30
+ rust-rand-0.8
+ rust-reqwest-0.11
+ rust-ring-0.17
+ rust-rust-argon2-2
+ rust-scrypt-0.11
+ rust-search-provider-0.6
+ rust-serde-1
+ rust-serde-json-1
+ rust-svg-metadata-0.4
+ rust-tokio-1
+ rust-tracing-0.1
+ rust-tracing-subscriber-0.3
+ rust-url-2
+ rust-uuid-1
+ rust-zbar-rust-0.0.23 ; any 0.0.*
+ rust-zeroize-1)
+ #:imported-modules `(,@%meson-build-system-modules
+ ,@%glib-or-gtk-build-system-modules
+ ,@%cargo-build-system-modules)
+ #:modules `((guix build cargo-build-system)
+ ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
+ ((guix build meson-build-system) #:prefix meson:)
+ (guix build utils))
#:phases
#~(modify-phases %standard-phases
- (add-after 'unpack 'patch-meson.build
+ (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
+ (assoc-ref glib-or-gtk:%standard-phases
+ 'generate-gdk-pixbuf-loaders-cache-file))
+ (add-after 'unpack 'prepare-for-build
(lambda _
- (substitute* "data/meson.build"
- (("^ 'desktop',.*") "")
- (("^ 'appdata',.*") ""))))
- (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((prog (search-input-file outputs "bin/authenticator"))
- (pylib (string-append #$output "/lib/python"
- #$(version-major+minor
- (package-version
- (this-package-input "python")))
- "/site-packages")))
- (wrap-program prog
- `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH") ,pylib))
- `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))))))))
- (native-inputs
- (list desktop-file-utils
- gettext-minimal
- `(,glib "bin")
- gobject-introspection
- `(,gtk+ "bin")
- pkg-config))
- (inputs
- (list bash-minimal
- gsettings-desktop-schemas
- gtk+
- libhandy-0.0
- libsecret
- python
- python-beautifulsoup4
- python-pillow
- python-pyfavicon
- python-pygobject
- python-pyotp
- python-pyzbar
- yoyo-migrations
- zbar))
- (home-page "https://gitlab.gnome.org/World/Authenticator/")
- (synopsis "Two-factor authentication application built for GNOME")
- (description
- "Authenticator is a two-factor authentication (2FA) application built for
-the GNOME desktop environment.
+ (substitute* "meson.build"
+ (("gtk_update_icon_cache: true")
+ "gtk_update_icon_cache: false")
+ (("update_desktop_database: true")
+ "update_desktop_database: false"))
+ ;; Help the tests find the Cargo.toml in the sources.
+ (substitute* "src/meson.build"
+ (("'test'") "'test', cargo_options"))
+ (delete-file "Cargo.lock")))
+ ;; Add meson-configure phase here and not before 'configure because
+ ;; the meson 'configure phase changes to a different directory and
+ ;; we need it created before unpacking the crates.
+ (add-before 'unpack-rust-crates 'meson-configure
+ (lambda args
+ (apply (assoc-ref meson:%standard-phases 'configure)
+ #:build-type "debugoptimized"
+ #:configure-flags '()
+ args)))
+ (replace 'build
+ (assoc-ref meson:%standard-phases 'build))
+ (replace 'check
+ (lambda args
+ (apply (assoc-ref meson:%standard-phases 'check)
+ #:test-options '()
+ args)))
+ (replace 'install
+ (assoc-ref meson:%standard-phases 'install))
+ (add-after 'install 'glib-or-gtk-compile-schemas
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
+ (add-after 'install 'glib-or-gtk-wrap
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
+ (add-after 'glib-or-gtk-wrap 'wrap-extra-paths
+ (lambda _
+ (let ((gst-plugins-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
+ (wrap-program (string-append #$output "/bin/authenticator")
+ `("GST_PLUGIN_SYSTEM_PATH" ":" suffix (,gst-plugins-path))))))
+ (add-after 'strip 'shrink-runpath
+ (assoc-ref meson:%standard-phases 'shrink-runpath)))))
+ (native-inputs (list gettext-minimal
+ `(,glib "bin") ; for glib-compile-schemas
+ meson
+ ninja
+ pkg-config))
+ (inputs (list bash-minimal
+ glib
+ gstreamer
+ gst-plugins-base
+ gst-plugins-bad
+ gtk
+ libadwaita
+ openssl
+ pipewire ; Needed but not listed
+ sqlite
+ zbar))
+ (home-page "https://apps.gnome.org/Authenticator")
+ (synopsis "Generate two-factor codes")
+ (description "Simple application for generating Two-Factor Authentication
+Codes:
-Features:
+It features:
@itemize
-@item QR code scanner
+@item Time-based/Counter-based/Steam methods support
+@item SHA-1/SHA-256/SHA-512 algorithms support
+@item QR code scanner using a camera or from a screenshot
+@item Lock the application with a password
@item Beautiful UI
-@item Huge database of more than 560 supported services
-@item Keep your PIN tokens secure by locking the application with a password
-@item Automatically fetch an image for services using their favicon
-@item The possibility to add new services
+@item GNOME Shell search provider
+@item Backup/Restore from/into known applications like FreeOTP+,
+Aegis (encrypted / plain-text), andOTP, Google Authenticator
@end itemize")
(license license:gpl3+)))
+(define-public authenticator
+ (deprecated-package "authenticator" gnome-authenticator))
+
(define-public gsound
(package
(name "gsound")
@@ -13567,148 +13637,6 @@ (define-public gnome-builder
profiler via Sysprof, debugging support, and more.")
(license license:gpl3+)))
-(define-public gnome-authenticator
- (package
- (name "gnome-authenticator")
- (version "4.4.0")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://gitlab.gnome.org/World/Authenticator.git/")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0zavax35n048spx097ymiq31s8b879qwbg8xmcxcx73r6m823mic"))))
- (build-system cargo-build-system)
- (arguments
- (list
- #:install-source? #f
- #:vendor-dir "vendor"
- #:cargo-inputs
- (list rust-aes-gcm-0.10
- rust-anyhow-1
- rust-async-std-1
- rust-aperture-0.3
- rust-ashpd-0.6
- rust-data-encoding-2
- rust-diesel-2
- rust-diesel-migrations-2
- rust-futures-channel-0.3
- rust-futures-executor-0.3
- rust-futures-util-0.3
- rust-gettext-rs-0.7
- rust-gtk4-0.7
- rust-hex-0.4
- rust-image-0.24
- rust-libadwaita-0.5
- rust-oo7-0.2
- rust-percent-encoding-2
- rust-prost-0.12
- rust-qrencode-0.14
- rust-quick-xml-0.30
- rust-rand-0.8
- rust-reqwest-0.11
- rust-ring-0.17
- rust-rust-argon2-2
- rust-scrypt-0.11
- rust-search-provider-0.6
- rust-serde-1
- rust-serde-json-1
- rust-svg-metadata-0.4
- rust-tokio-1
- rust-tracing-0.1
- rust-tracing-subscriber-0.3
- rust-url-2
- rust-uuid-1
- rust-zbar-rust-0.0.23 ; any 0.0.*
- rust-zeroize-1)
- #:imported-modules `(,@%meson-build-system-modules
- ,@%glib-or-gtk-build-system-modules
- ,@%cargo-build-system-modules)
- #:modules `((guix build cargo-build-system)
- ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
- ((guix build meson-build-system) #:prefix meson:)
- (guix build utils))
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'generate-gdk-pixbuf-loaders-cache-file
- (assoc-ref glib-or-gtk:%standard-phases
- 'generate-gdk-pixbuf-loaders-cache-file))
- (add-after 'unpack 'prepare-for-build
- (lambda _
- (substitute* "meson.build"
- (("gtk_update_icon_cache: true")
- "gtk_update_icon_cache: false")
- (("update_desktop_database: true")
- "update_desktop_database: false"))
- ;; Help the tests find the Cargo.toml in the sources.
- (substitute* "src/meson.build"
- (("'test'") "'test', cargo_options"))
- (delete-file "Cargo.lock")))
- ;; Add meson-configure phase here and not before 'configure because
- ;; the meson 'configure phase changes to a different directory and
- ;; we need it created before unpacking the crates.
- (add-before 'unpack-rust-crates 'meson-configure
- (lambda args
- (apply (assoc-ref meson:%standard-phases 'configure)
- #:build-type "debugoptimized"
- #:configure-flags '()
- args)))
- (replace 'build
- (assoc-ref meson:%standard-phases 'build))
- (replace 'check
- (lambda args
- (apply (assoc-ref meson:%standard-phases 'check)
- #:test-options '()
- args)))
- (replace 'install
- (assoc-ref meson:%standard-phases 'install))
- (add-after 'install 'glib-or-gtk-compile-schemas
- (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
- (add-after 'install 'glib-or-gtk-wrap
- (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
- (add-after 'glib-or-gtk-wrap 'wrap-extra-paths
- (lambda _
- (let ((gst-plugins-path (getenv "GST_PLUGIN_SYSTEM_PATH")))
- (wrap-program (string-append #$output "/bin/authenticator")
- `("GST_PLUGIN_SYSTEM_PATH" ":" suffix (,gst-plugins-path))))))
- (add-after 'strip 'shrink-runpath
- (assoc-ref meson:%standard-phases 'shrink-runpath)))))
- (native-inputs (list gettext-minimal
- `(,glib "bin") ; for glib-compile-schemas
- meson
- ninja
- pkg-config))
- (inputs (list glib
- gstreamer
- gst-plugins-base
- gst-plugins-bad
- gtk
- libadwaita
- openssl
- pipewire ; Needed but not listed
- sqlite
- zbar))
- (home-page "https://apps.gnome.org/Authenticator")
- (synopsis "Generate two-factor codes")
- (description "Simple application for generating Two-Factor Authentication
-Codes:
-
-It features:
-
-@itemize
-@item Time-based/Counter-based/Steam methods support
-@item SHA-1/SHA-256/SHA-512 algorithms support
-@item QR code scanner using a camera or from a screenshot
-@item Lock the application with a password
-@item Beautiful UI
-@item GNOME Shell search provider
-@item Backup/Restore from/into known applications like FreeOTP+,
-Aegis (encrypted / plain-text), andOTP, Google Authenticator
-@end itemize")
- (license license:gpl3+)))
-
(define-public komikku
(package
(name "komikku")

base-commit: 5f92f009a19c1a5a8b7df5a7bcb1e1f283a953f8
--
2.47.1
P
P
paul wrote 7 days ago
Re: gnu: authenticator: Deprecate in favor of gnome-authenticator.
(address . 75331@debbugs.gnu.org)(address . efraim@flashner.co.il)
7f2eab18-5c83-4218-9862-ef43200e5289@autistici.org
Hi Efraim,

I noticed that there was an old authenticator package at gnome.scm . I
made this patch against the rust-team branch to deprecate it in favor of
gnome-authenticator. Thank you for your work

cheers,

giacomo
E
E
Efraim Flashner wrote 5 days ago
(name . paul)(address . goodoldpaul@autistici.org)(address . 75331-done@debbugs.gnu.org)
Z3qkiHqycpMe-jgb@3900XT
Looks good to me. Pushed to the rust-team branch.

--
Efraim Flashner <efraim@flashner.co.il> אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAmd6pIgACgkQQarn3Mo9
g1GjuxAAuyEofico22nYGUKsjRIj8RJiUwaKVDxVYVZroPJSTe8vKn1cQ/nDkOxT
usvxrrffcTusKoPx2Jp52QicYdAaf+UoQzsLZk5xK8BQMUgZ7pRW4ID0fXq6YolO
yyBq5yOrxEpk1ueR7Jpk/Ari9yBRhIFeTur4f62Bk5YdpfP8rAMsf+WL55H9a5/F
zt7COaBKqkp3Pgo6d5rhAgUVaf4IueJevh7aH3fgujd8ApACDOhiMOsMBLXr8n1q
OkaM0gnmEzVjf4tj4B16/xW/ak1PK1eag0ilBgWQ0LIB8TNHUjUZBDLfJWpFcSgu
BCCUXgdA4krKgRrF01LU1AtZLatRCq2DqVaP7mjSBib639rkEgTv5qvE4Y/Ka70R
w9RVuGG62XKgc3TRtOTBivKg0XeQoh5Fi8dZI8hbQqF93gumESGQeSGRoJsML60l
w6bY0FRUC64lOZPOadAkQOR/KywGFdjfnTLk43tTgohlQNVAi/Wyj/AHGZa0UMuP
xJbW7RmZ0YZGIeB6VovOB4Tu3lTeox+TJxOGjW7S0p2zglVho0nFyi8V5i+JCB4X
zFcVYK1oEMOcbI/Tr5YECLBFGmoAlSkBQI/HFWxg3mbnvhAwUxtGd8WajOc7Ijpq
ugU7ddZzlB4/zAs4vTXxMQ48rW4//8hOf6X+dkTVaNz+psAtr4U=
=5yr5
-----END PGP SIGNATURE-----


Closed
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 75331@patchwise.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 75331
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch