From 84eabbc85bb2bb5aceda0c27d907618e24378e4f Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 19 Oct 2019 23:01:24 +0200 Subject: [PATCH] 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 --- pkgs/desktops/gnome-3/misc/gpaste/default.nix | 74 +++++++++++++++---- 1 file 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 35aa2cbb83a..00e21e30a29 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;