about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2019-10-19 23:01:24 +0200
committerJan Tojnar <jtojnar@gmail.com>2019-10-20 01:53:11 +0200
commit84eabbc85bb2bb5aceda0c27d907618e24378e4f (patch)
tree2800ce07b33d22e6078f7c5be08155b0dbd9c623
parent7ba42794a87d5e8425a54f7db0fe1a1466893676 (diff)
downloadnixlib-84eabbc85bb2bb5aceda0c27d907618e24378e4f.tar
nixlib-84eabbc85bb2bb5aceda0c27d907618e24378e4f.tar.gz
nixlib-84eabbc85bb2bb5aceda0c27d907618e24378e4f.tar.bz2
nixlib-84eabbc85bb2bb5aceda0c27d907618e24378e4f.tar.lz
nixlib-84eabbc85bb2bb5aceda0c27d907618e24378e4f.tar.xz
nixlib-84eabbc85bb2bb5aceda0c27d907618e24378e4f.tar.zst
nixlib-84eabbc85bb2bb5aceda0c27d907618e24378e4f.zip
gnome3.gpaste: general improvements
* Port to Meson (builds much faster)
   * needed a patch to install systemd units
   * soversion does not match but we do not care (https://github.com/Keruspe/GPaste/pull/285)
* Format with nixpkgs-format
* Updated license (BSD since 3.20)
* Drop dbus dependency (we are setting the paths manually anyway)
* Switch to fetchFromGitHub
* Add comment why clutter is needed
-rw-r--r--pkgs/desktops/gnome-3/misc/gpaste/default.nix74
1 files changed, 59 insertions, 15 deletions
diff --git a/pkgs/desktops/gnome-3/misc/gpaste/default.nix b/pkgs/desktops/gnome-3/misc/gpaste/default.nix
index 35aa2cbb83a0..00e21e30a29a 100644
--- a/pkgs/desktops/gnome-3/misc/gpaste/default.nix
+++ b/pkgs/desktops/gnome-3/misc/gpaste/default.nix
@@ -1,16 +1,47 @@
-{ stdenv, fetchurl, autoreconfHook, pkgconfig, vala, glib, gjs, mutter
-, pango, gtk3, gnome3, dbus, clutter, appstream-glib, wrapGAppsHook, gobject-introspection }:
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, appstream-glib
+, clutter
+, gjs
+, glib
+, gnome3
+, gobject-introspection
+, gtk3
+, meson
+, mutter
+, ninja
+, pango
+, pkgconfig
+, vala
+, wrapGAppsHook
+}:
 
 stdenv.mkDerivation rec {
   version = "3.34.1";
   pname = "gpaste";
 
-  src = fetchurl {
-    url = "https://github.com/Keruspe/GPaste/archive/v${version}.tar.gz";
-    sha256 = "1vqa1r7niyfjrxlnd4jb4vx6n9jd2260g1scnjalrl0xrnpbsbds";
+  src = fetchFromGitHub {
+    owner = "Keruspe";
+    repo = "GPaste";
+    rev = "v${version}";
+    sha256 = "1jcj0kgxhad8rblyqhwa2yhkf0010k80w9bm2rajanad2c3bqaxa";
   };
 
   patches = [
+    # Meson fixes
+    # https://github.com/Keruspe/GPaste/pull/283
+    # install systemd units
+    (fetchpatch {
+      url = "https://github.com/Keruspe/GPaste/commit/a474d8c1f2bd600476ba52dc19f517787845533b.patch";
+      sha256 = "19m1ar61l2n0vb5a5qfhdny8giivqlyq04l3j9i8llv16vx80rg2";
+    })
+    # apply symbol versioning
+    (fetchpatch {
+      url = "https://github.com/Keruspe/GPaste/commit/08047752e8dba9363673ddefd422c43075f08006.patch";
+      sha256 = "0jvcs1a17sijvb2wqyn3y8shdxrhv4kwzxs39kmh9y8nyx2dzhpf";
+    })
+
     ./fix-paths.patch
   ];
 
@@ -26,24 +57,37 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [
-    autoreconfHook pkgconfig vala appstream-glib wrapGAppsHook
+    appstream-glib
+    gobject-introspection
+    meson
+    ninja
+    pkgconfig
+    vala
+    wrapGAppsHook
   ];
+
   buildInputs = [
-    glib gjs mutter gtk3 dbus
-    clutter pango gobject-introspection
+    clutter # required by mutter-clutter
+    gjs
+    glib
+    gtk3
+    mutter
+    pango
   ];
 
-  configureFlags = [
-    "--with-controlcenterdir=${placeholder "out"}/share/gnome-control-center/keybindings"
-    "--with-dbusservicesdir=${placeholder "out"}/share/dbus-1/services"
-    "--with-systemduserunitdir=${placeholder "out"}/etc/systemd/user"
+  mesonFlags = [
+    "-Dcontrol-center-keybindings-dir=${placeholder "out"}/share/gnome-control-center/keybindings"
+    "-Ddbus-services-dir=${placeholder "out"}/share/dbus-1/services"
+    "-Dsystemd-user-unit-dir=${placeholder "out"}/etc/systemd/user"
   ];
 
-  enableParallelBuilding = true;
+  postInstall = ''
+    ${glib.dev}/bin/glib-compile-schemas "$out/share/glib-2.0/schemas"
+  '';
 
   meta = with stdenv.lib; {
-    homepage = https://github.com/Keruspe/GPaste;
-    description = "Clipboard management system with GNOME3 integration";
+    homepage = "https://github.com/Keruspe/GPaste";
+    description = "Clipboard management system with GNOME 3 integration";
     license = licenses.gpl3;
     platforms = platforms.linux;
     maintainers = gnome3.maintainers;