From d2ad04cd382e097eb72f4084deee9842aa362ba1 Mon Sep 17 00:00:00 2001 From: Pascal Wittmann Date: Tue, 16 Jun 2015 14:56:15 +0200 Subject: [PATCH] add california, a calendar application for gnome --- pkgs/desktops/gnome-3/3.16/default.nix | 2 + ...d-with-evolution-data-server-3.13.90.patch | 39 +++++++++++++++++++ .../gnome-3/3.16/misc/california/default.nix | 39 +++++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 pkgs/desktops/gnome-3/3.16/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch create mode 100644 pkgs/desktops/gnome-3/3.16/misc/california/default.nix diff --git a/pkgs/desktops/gnome-3/3.16/default.nix b/pkgs/desktops/gnome-3/3.16/default.nix index 2dee0cefd92..da3527d8ceb 100644 --- a/pkgs/desktops/gnome-3/3.16/default.nix +++ b/pkgs/desktops/gnome-3/3.16/default.nix @@ -279,6 +279,8 @@ let #### Misc -- other packages on http://ftp.gnome.org/pub/GNOME/sources/ + california = callPackage ./misc/california { }; + geary = callPackage ./misc/geary { webkitgtk = webkitgtk24x; }; diff --git a/pkgs/desktops/gnome-3/3.16/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch b/pkgs/desktops/gnome-3/3.16/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch new file mode 100644 index 00000000000..c229cc96094 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.16/misc/california/0002-Build-with-evolution-data-server-3.13.90.patch @@ -0,0 +1,39 @@ +diff --git a/configure.ac b/configure.ac +index 8a94642..1ca6426 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -27,7 +27,7 @@ AC_SUBST(LDFLAGS) + GLIB_REQUIRED=2.38.0 + GTK_REQUIRED=3.12.2 + GEE_REQUIRED=0.10.5 +-ECAL_REQUIRED=3.8.5 ++ECAL_REQUIRED=3.13.90 + LIBSOUP_REQUIRED=2.44 + GDATA_REQUIRED=0.14.0 + GOA_REQUIRED=3.8.3 +diff --git a/src/backing/eds/backing-eds-calendar-source.vala b/src/backing/eds/backing-eds-calendar-source.vala +index ee6a572..5009b5d 100644 +--- a/src/backing/eds/backing-eds-calendar-source.vala ++++ b/src/backing/eds/backing-eds-calendar-source.vala +@@ -256,7 +256,7 @@ internal class EdsCalendarSource : CalendarSource { + + // Invoked by EdsStore prior to making it available outside of unit + internal async void open_async(Cancellable? cancellable) throws Error { +- client = (E.CalClient) yield E.CalClient.connect(eds_source, E.CalClientSourceType.EVENTS, ++ client = (E.CalClient) yield E.CalClient.connect(eds_source, E.CalClientSourceType.EVENTS, 1, + cancellable); + + client.bind_property("readonly", this, PROP_READONLY, BindingFlags.SYNC_CREATE); +diff --git a/vapi/libecal-1.2.vapi b/vapi/libecal-1.2.vapi +index 6ead3ec..46fd711 100644 +--- a/vapi/libecal-1.2.vapi ++++ b/vapi/libecal-1.2.vapi +@@ -23,7 +23,7 @@ namespace E { + public bool check_save_schedules (); + public static bool check_timezones (iCal.icalcomponent comp, GLib.List comps, GLib.Callback tzlookup, void* ecalclient, GLib.Cancellable cancellable) throws GLib.Error; + [CCode (finish_name = "e_cal_client_connect_finish")] +- public static async unowned E.Client connect (E.Source source, E.CalClientSourceType source_type, GLib.Cancellable cancellable) throws GLib.Error; ++ public static async unowned E.Client connect (E.Source source, E.CalClientSourceType source_type, uint32 wait_for_connected_seconds, GLib.Cancellable cancellable) throws GLib.Error; + public static unowned E.Client connect_sync (E.Source source, E.CalClientSourceType source_type, GLib.Cancellable cancellable) throws GLib.Error; + [CCode (finish_name = "e_cal_client_create_object_finish")] + public async void create_object (iCal.icalcomponent icalcomp, GLib.Cancellable? cancellable, out string out_uid) throws GLib.Error; diff --git a/pkgs/desktops/gnome-3/3.16/misc/california/default.nix b/pkgs/desktops/gnome-3/3.16/misc/california/default.nix new file mode 100644 index 00000000000..4bdeeb23a91 --- /dev/null +++ b/pkgs/desktops/gnome-3/3.16/misc/california/default.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchurl, intltool, pkgconfig, gtk3, vala, makeWrapper +, gnome3, glib, libsoup, libgdata, sqlite, itstool, xdg_utils }: + +let + majorVersion = "0.4"; +in +stdenv.mkDerivation rec { + name = "california-${majorVersion}.0"; + + src = fetchurl { + url = "mirror://gnome/sources/california/${majorVersion}/${name}.tar.xz"; + sha256 = "1dky2kllv469k8966ilnf4xrr7z35pq8mdvs7kwziy59cdikapxj"; + }; + + propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ]; + + buildInputs = [ makeWrapper intltool pkgconfig vala glib gtk3 gnome3.libgee + libsoup libgdata gnome3.gnome_online_accounts gnome3.evolution_data_server + sqlite itstool xdg_utils gnome3.gsettings_desktop_schemas ]; + + preFixup = '' + wrapProgram "$out/bin/california" \ + --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \ + --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gnome3.defaultIconTheme}/share:${gnome3.gnome_themes_standard}/share:$out/share:$GSETTINGS_SCHEMAS_PATH:${gnome3.gsettings_desktop_schemas}/share" + ''; + + enableParallelBuilding = true; + + # Apply fedoras patch to build with evolution-data-server >3.13 + patches = [ ./0002-Build-with-evolution-data-server-3.13.90.patch ]; + + meta = with stdenv.lib; { + homepage = https://wiki.gnome.org/Apps/California; + description = "Calendar application for GNOME 3"; + maintainers = with maintainers; [ pSub ]; + license = licenses.lgpl21; + platforms = platforms.linux; + }; +}