diff --git a/pkgs/desktops/gnome-3/misc/california/default.nix b/pkgs/desktops/gnome-3/misc/california/default.nix index c81238d2498..91aeb7ca00a 100644 --- a/pkgs/desktops/gnome-3/misc/california/default.nix +++ b/pkgs/desktops/gnome-3/misc/california/default.nix @@ -23,6 +23,11 @@ in stdenv.mkDerivation rec { url = https://src.fedoraproject.org/rpms/california/raw/c00bf9924d8fa8cb0a9ec06564d1a1b00c9055af/f/0002-Build-with-evolution-data-server-3.13.90.patch; sha256 = "0g9923n329p32gzr1q52ad30f8vyz8vrri4rih0w8klmf02ga4pm"; }) + # Apply Fedora patch to build with libical > 3.0 + (fetchurl { + url = https://src.fedoraproject.org/rpms/california/raw/2af9a6a1b67b53f3fca1472c5350dc11a1acf28f/f/california-0.4.0-libical-3.0.patch; + sha256 = "0cxycfaql0bsiz9hzanns33pwdqpb5n44znfcfa66i1bin34r4n6"; + }) ]; passthru = { diff --git a/pkgs/desktops/xfce/applications/orage.nix b/pkgs/desktops/xfce/applications/orage.nix index 812630e17d0..9b347715c45 100644 --- a/pkgs/desktops/xfce/applications/orage.nix +++ b/pkgs/desktops/xfce/applications/orage.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchurl, pkgconfig, bison, flex, intltool, gtk, libical, dbus-glib +{ stdenv, fetchurl, fetchpatch, pkgconfig, bison, flex, intltool, gtk, libical, dbus-glib , libnotify, popt, xfce }: @@ -13,8 +13,17 @@ stdenv.mkDerivation rec { sha256 = "0qlhvnl2m33vfxqlbkic2nmfpwyd4mq230jzhs48cg78392amy9w"; }; + patches = [ + # Fix build with libical 3.0 + (fetchpatch { + name = "fix-libical3.patch"; + url = https://git.archlinux.org/svntogit/packages.git/plain/trunk/libical3.patch?h=packages/orage&id=7b1b06c42dda034d538977b9f3550b28e370057f; + sha256 = "1l8s106mcidmbx2p8c2pi8v9ngbv2x3fsgv36j8qk8wyd4qd1jbf"; + }) + ]; + nativeBuildInputs = [ pkgconfig intltool bison flex ]; - + buildInputs = [ gtk libical dbus-glib libnotify popt xfce.libxfce4util xfce.xfce4-panel ]; diff --git a/pkgs/desktops/xfce4-13/orage/default.nix b/pkgs/desktops/xfce4-13/orage/default.nix index 6a2f37cbef6..3857846ea82 100644 --- a/pkgs/desktops/xfce4-13/orage/default.nix +++ b/pkgs/desktops/xfce4-13/orage/default.nix @@ -1,4 +1,4 @@ -{ lib, mkXfceDerivation, dbus_glib ? null, gtk2, libical, libnotify ? null +{ lib, fetchpatch, mkXfceDerivation, dbus_glib ? null, gtk2, libical, libnotify ? null , popt ? null, libxfce4ui ? null, xfce4-panel ? null, withPanelPlugin ? true }: assert withPanelPlugin -> libxfce4ui != null && xfce4-panel != null; @@ -15,4 +15,13 @@ mkXfceDerivation rec { sha256 = "04z6y1vfaz1im1zq1zr7cf8pjibjhj9zkyanbp7vn30q520yxa0m"; buildInputs = [ dbus_glib gtk2 libical libnotify popt ] ++ optionals withPanelPlugin [ libxfce4ui xfce4-panel ]; + + patches = [ + # Fix build with libical 3.0 + (fetchpatch { + name = "fix-libical3.patch"; + url = https://git.archlinux.org/svntogit/packages.git/plain/trunk/libical3.patch?h=packages/orage&id=7b1b06c42dda034d538977b9f3550b28e370057f; + sha256 = "1l8s106mcidmbx2p8c2pi8v9ngbv2x3fsgv36j8qk8wyd4qd1jbf"; + }) + ]; } diff --git a/pkgs/development/libraries/libical/default.nix b/pkgs/development/libraries/libical/default.nix index fd9c8dc9a5e..1efc16b2bf5 100644 --- a/pkgs/development/libraries/libical/default.nix +++ b/pkgs/development/libraries/libical/default.nix @@ -1,29 +1,53 @@ -{ stdenv, fetchFromGitHub, perl, cmake }: +{ stdenv, fetchFromGitHub, perl, pkgconfig, cmake, ninja, vala, gobjectIntrospection +, python3, tzdata, gtk-doc, docbook_xsl, docbook_xml_dtd_43, glib, libxml2, icu }: stdenv.mkDerivation rec { name = "libical-${version}"; - version = "2.0.0"; + version = "3.0.3"; + + outputs = [ "out" "dev" "devdoc" ]; src = fetchFromGitHub { owner = "libical"; repo = "libical"; rev = "v${version}"; - sha256 = "0xsvqy1hzmwxn783wrb2k8p751544pzv39v9ynr9pj4yzkwjzsvb"; + sha256 = "0dhlfn6n136di4fbqd74gdaibyh5zz1vac5x8ii3bjc2d5h7hw8h"; }; - nativeBuildInputs = [ perl cmake ]; + nativeBuildInputs = [ + perl pkgconfig cmake ninja vala gobjectIntrospection + (python3.withPackages (pkgs: with pkgs; [ pygobject3 ])) # running libical-glib tests + gtk-doc docbook_xsl docbook_xml_dtd_43 # docs + ]; + buildInputs = [ glib libxml2 icu ]; + + cmakeFlags = [ + "-DGOBJECT_INTROSPECTION=True" + "-DICAL_GLIB_VAPI=True" + ]; patches = [ # TODO: upstream this patch + # https://github.com/libical/libical/issues/350 ./respect-env-tzdir.patch ]; - doCheck = false; # fails all the tests (ctest) + # Using install check so we do not have to manually set + # LD_LIBRARY_PATH and GI_TYPELIB_PATH variables + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + + export TZDIR=${tzdata}/share/zoneinfo + ctest --output-on-failure + + runHook postInstallCheck + ''; meta = with stdenv.lib; { homepage = https://github.com/libical/libical; description = "An Open Source implementation of the iCalendar protocols"; - license = licenses.mpl10; + license = licenses.mpl20; platforms = platforms.unix; maintainers = with maintainers; [ wkennington ]; }; diff --git a/pkgs/development/libraries/libical/respect-env-tzdir.patch b/pkgs/development/libraries/libical/respect-env-tzdir.patch index 715ba1fa842..59d23e490e5 100644 --- a/pkgs/development/libraries/libical/respect-env-tzdir.patch +++ b/pkgs/development/libraries/libical/respect-env-tzdir.patch @@ -1,9 +1,9 @@ --- a/src/libical/icaltz-util.c +++ b/src/libical/icaltz-util.c -@@ -96,9 +96,9 @@ typedef struct - static char *zdir = NULL; +@@ -94,9 +94,9 @@ + static const char *zdir = NULL; - static char *search_paths[] = { + static const char *search_paths[] = { + "/etc/zoneinfo", "/usr/share/zoneinfo", "/usr/lib/zoneinfo", @@ -11,13 +11,13 @@ "/usr/share/lib/zoneinfo" }; -@@ -179,6 +179,15 @@ static void set_zonedir(void) +@@ -178,6 +178,15 @@ const char *fname = ZONES_TAB_SYSTEM_FILENAME; size_t i, num_search_paths; + const char *env_tzdir = getenv ("TZDIR"); + if (env_tzdir) { -+ snprintf(file_path, MAXPATHLEN, "%s/%s", env_tzdir, fname); ++ sprintf (file_path, "%s/%s", env_tzdir, fname); + if (!access (file_path, F_OK|R_OK)) { + zdir = env_tzdir; + return;