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;