guix/gnu/packages/gnome-circle.scm
Noé Lopez c30da59c0d
gnu: deja-dup: Move to (gnu packages gnome-circle).
* gnu/packages/gnome-circle.scm (deja-dup): New variable.
* gnu/packages/gnome.scm (deja-dup): Replace with deprecated alias.

Change-Id: I7bbaf8887ed4339f1480b16fc64149902b451f27
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2026-01-24 00:05:34 +01:00

298 lines
11 KiB
Scheme

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019-2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2019-2022 Liliana Marie Prikler <liliana.prikler@gmail.com>
;;; Copyright © 2019, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2019, 2024, 2025 Giacomo Leidi <goodoldpaul@autistici.org>
;;; Copyright © 2020, 2021, 2022, 2023 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2025 Noé Lopez <noelopez@free.fr>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
;;; Comment:
;;; This module is for packages that are part of GNOME Circle
;;; <https://circle.gnome.org/>.
;;; Code:
(define-module (gnu packages gnome-circle)
#:use-module (gnu packages aidc)
#:use-module (gnu packages backup)
#:use-module (gnu packages bash)
#:use-module (gnu packages enchant)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages haskell-xyz)
#:use-module (gnu packages linux)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages rust)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
#:use-module (gnu packages web)
#:use-module (gnu packages webkit)
#:use-module (guix build-system cargo)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages))
(define-public apostrophe
(package
(name "apostrophe")
(version "2.6.3")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://gitlab.gnome.org/World/apostrophe")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
(base32
"0wsvq2434p650cf3vq5w7a6czbk8in0ra7nji45mvwyfahdyn6j4"))))
(build-system meson-build-system)
(arguments
(list
#:glib-or-gtk? #t
#:imported-modules `(,@%meson-build-system-modules
(guix build python-build-system))
#:modules '((guix build meson-build-system)
((guix build python-build-system) #:prefix python:)
(guix build utils))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-meson
(lambda _
(substitute* "build-aux/meson_post_install.py"
(("gtk-update-icon-cache") "true"))))
(add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
(lambda* (#:key inputs outputs #:allow-other-keys)
(wrap-program (search-input-file outputs "bin/apostrophe")
`("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")
,(python:site-packages inputs outputs)))
`("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
`("PATH" prefix (,(dirname
(search-input-file inputs
"/bin/pandoc"))))))))))
(inputs
(list bash-minimal
glib
gobject-introspection
gspell
gtk+
libhandy
pandoc
python
python-chardet
python-levenshtein
python-regex
python-pycairo
python-pygobject
python-pyenchant
python-pypandoc
webkitgtk-with-libsoup2))
(native-inputs
(list gettext-minimal
`(,glib "bin")
pkg-config
sassc))
(home-page "https://gitlab.gnome.org/World/apostrophe")
(synopsis "Markdown editor written in Python with GTK+")
(description "Apostrophe is a GTK+ based distraction-free Markdown editor.
It uses pandoc as back-end for parsing Markdown.")
(license license:gpl3)))
(define-public deja-dup
(package
(name "deja-dup")
(version "45.2")
(source (origin
(method url-fetch)
(uri (string-append "https://gitlab.gnome.org/World/deja-dup/-/archive/"
version "/deja-dup-" version ".tar.bz2"))
(sha256
(base32
"000cwy1haiglkvn5plmhrs2a1fhpcpw6z4mdzck7ybmky795amza"))))
(build-system meson-build-system)
(arguments
(list
#:glib-or-gtk? #t
#:configure-flags
#~(list
;; Otherwise, the RUNPATH will lack the final path component.
(string-append "-Dc_link_args=-Wl,-rpath="
(assoc-ref %outputs "out") "/lib/deja-dup"))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
(let ((python (assoc-ref inputs "python")))
(substitute* '("libdeja/duplicity/DuplicityInstance.vala"
"libdeja/tests/scripts/instance-error.test")
(("/bin/rm")
(which "rm")))
(substitute* "libdeja/tests/runner.vala"
(("/bin/sh")
(which "sh")))
(substitute* "libdeja/tests/scripts/instance-error.test"
(("`which python3`")
(string-append python "/bin/python3"))))))
(add-after 'unpack 'patch-libgpg-error
(lambda* (#:key inputs #:allow-other-keys)
(let ((libgpg-error (assoc-ref inputs "libgpg-error")))
(substitute* "meson.build"
(("(gpgerror_libs = ).*" _ var)
(format #f "~a '-L~a/lib -lgpg-error'\n" var libgpg-error))))))
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)
;; Add duplicity to the search path
(wrap-program (string-append (assoc-ref outputs "out")
"/bin/deja-dup")
`("PATH" ":" prefix
(,(dirname (search-input-file inputs "/bin/duplicity"))))))))))
(inputs
(list bash-minimal
duplicity
gsettings-desktop-schemas
gtk
json-glib
libadwaita
libgpg-error
libnotify
libsecret
libsoup
libhandy
packagekit
python
python-pygobject))
(native-inputs
(list appstream-glib
desktop-file-utils
gettext-minimal
`(,glib "bin") ;for glib-compile-schemas
gobject-introspection
`(,gtk "bin") ;for gtk-update-icon-cache
itstool
pkg-config
vala))
(home-page "https://wiki.gnome.org/Apps/DejaDup")
(synopsis "Simple backup tool, for regular encrypted backups")
(description
"Déjà Dup is a simple backup tool, for regular encrypted backups. It
uses duplicity as the backend, which supports incremental backups and storage
either on a local, or remote machine via a number of methods.")
(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 meson-build-system)
(arguments
(list
#:imported-modules `(,@%meson-build-system-modules
,@%cargo-build-system-modules)
#:modules `(((guix build cargo-build-system) #:prefix cargo:)
(guix build meson-build-system)
(guix build utils))
#:phases
(with-extensions (list (cargo-guile-json))
#~(modify-phases %standard-phases
(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")))
;; The meson 'configure phase changes to a different directory and
;; we need it created before unpacking the crates.
(add-after 'configure 'prepare-cargo-build-system
(lambda args
(for-each
(lambda (phase)
(format #t "Running cargo phase: ~a~%" phase)
(apply (assoc-ref cargo:%standard-phases phase)
#:vendor-dir "vendor"
#:cargo-target #$(cargo-triplet)
args))
'(unpack-rust-crates
configure
check-for-pregenerated-files
patch-cargo-checksums))))))))
(native-inputs
(append
(list gettext-minimal
`(,glib "bin") ; for glib-compile-schemas
pkg-config
rust
`(,rust "cargo"))
(or (and=> (%current-target-system)
(compose list make-rust-sysroot))
'())))
(inputs (cons* bash-minimal
glib
gstreamer
gst-plugins-base
gst-plugins-bad
gtk
libadwaita
openssl
pipewire ; Needed but not listed
sqlite
zbar
(cargo-inputs 'gnome-authenticator)))
(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+)))