From a485e1e663060e8c62103d81dfffec591f624360 Mon Sep 17 00:00:00 2001 From: Attila Lendvai Date: Fri, 7 Jan 2022 13:50:30 +0100 Subject: gnu: Add gpaste. * gnu/packages/gnome-xyz.scm (gpaste): New variable. Signed-off-by: Nicolas Goaziou --- gnu/local.mk | 1 + gnu/packages/gnome-xyz.scm | 56 +++++++++++++++++++++++++++++ gnu/packages/patches/gpaste-fix-paths.patch | 24 +++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 gnu/packages/patches/gpaste-fix-paths.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0807728b5f..e4f596f0bd 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1196,6 +1196,7 @@ dist_patch_DATA = \ %D%/packages/patches/go-github-com-urfave-cli-fix-tests.patch \ %D%/packages/patches/go-github-com-urfave-cli-v2-fix-tests.patch \ %D%/packages/patches/go-skip-gc-test.patch \ + %D%/packages/patches/gpaste-fix-paths.patch \ %D%/packages/patches/gpm-glibc-2.26.patch \ %D%/packages/patches/gpodder-disable-updater.patch \ %D%/packages/patches/gpsbabel-fix-i686-test.patch \ diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm index 8161db557d..299dd65882 100644 --- a/gnu/packages/gnome-xyz.scm +++ b/gnu/packages/gnome-xyz.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2021 Guillaume Le Vaillant ;;; Copyright © 2021 Songlin Jiang ;;; Copyright © 2021 Justin Veilleux +;;; Copyright © 2021 Attila Lendvai ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,13 +36,16 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system copy) #:use-module (guix build-system meson) + #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix packages) #:use-module (guix utils) #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) #:use-module (gnu packages acl) #:use-module (gnu packages attr) #:use-module (gnu packages autotools) + #:use-module (gnu packages backup) #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages build-tools) @@ -686,6 +690,58 @@ scrollable tiling of windows and per monitor workspaces. It's inspired by paper notebooks and tiling window managers.") (license license:gpl3))) +(define-public gpaste + (package + (name "gpaste") + (version "3.42.2") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Keruspe/GPaste") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1k5qvgzwl357k72qfim5zfas2a0n6j24jnlm1v472l7h6gb6lssm")) + (patches + (search-patches "gpaste-fix-paths.patch")))) + (build-system meson-build-system) + (native-inputs + (list autoconf automake gettext-minimal gobject-introspection + (list glib "bin") ; for glib-compile-resources + libtool pkg-config vala)) + (inputs + (list appstream-glib libarchive gjs mutter graphene)) + (arguments + (list #:meson meson-0.59 ;positional arguments error with meson 0.60 + #:glib-or-gtk? #true + #:configure-flags + #~(list + (string-append "-Dcontrol-center-keybindings-dir=" + #$output "/share/gnome-control-center/keybindings") + (string-append "-Ddbus-services-dir=" + #$output "/share/dbus-1/services") + (string-append "-Dsystemd-user-unit-dir=" + #$output "/etc/systemd/user")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-introspection-install-dir + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* '("src/gnome-shell/extension.js" + "src/gnome-shell/prefs.js") + (("@typelibPath@") + (string-append out "/lib/girepository-1.0/"))))))))) + (home-page "https://github.com/Keruspe/GPaste") + (synopsis "Clipboard management system for GNOME Shell") + (description "GPaste is a clipboard manager, a tool which allows you to +keep a trace of what you’re copying and pasting. Is is really useful when +you go through tons of documentation and you want to keep around a bunch of +functions you might want to use, for example. The clipboard manager will +store an history of everything you do, so that you can get back to older +copies you now want to paste.") + (license license:bsd-2))) + (define-public arc-theme (package (name "arc-theme") diff --git a/gnu/packages/patches/gpaste-fix-paths.patch b/gnu/packages/patches/gpaste-fix-paths.patch new file mode 100644 index 0000000000..be63878fe6 --- /dev/null +++ b/gnu/packages/patches/gpaste-fix-paths.patch @@ -0,0 +1,24 @@ +This is copied from NixOS, which is under MIT licence. +https://github.com/NixOS/nixpkgs/blob/master/pkgs/desktops/gnome/misc/gpaste/ +--- a/src/gnome-shell/extension.js ++++ b/src/gnome-shell/extension.js +@@ -6,6 +6,8 @@ + + const Config = imports.misc.config; + ++imports.gi.GIRepository.Repository.prepend_search_path('@typelibPath@'); ++ + imports.gi.versions.Clutter = Config.LIBMUTTER_API_VERSION; + imports.gi.versions.GLib = '2.0'; + imports.gi.versions.GPaste = '1.0'; +--- a/src/gnome-shell/prefs.js ++++ b/src/gnome-shell/prefs.js +@@ -6,6 +6,8 @@ + + const Gettext = imports.gettext; + ++imports.gi.GIRepository.Repository.prepend_search_path('@typelibPath@'); ++ + //const { GPaste } = imports.gi; + + const ExtensionUtils = imports.misc.extensionUtils; -- cgit v1.2.3