Merge pull request #42762 from jtojnar/libical-3

libical: 2.0.0 → 3.0.3
This commit is contained in:
Jan Tojnar 2018-06-29 21:35:01 +02:00 committed by GitHub
commit 29bcc391e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 61 additions and 14 deletions

View File

@ -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; url = https://src.fedoraproject.org/rpms/california/raw/c00bf9924d8fa8cb0a9ec06564d1a1b00c9055af/f/0002-Build-with-evolution-data-server-3.13.90.patch;
sha256 = "0g9923n329p32gzr1q52ad30f8vyz8vrri4rih0w8klmf02ga4pm"; 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 = { passthru = {

View File

@ -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 , libnotify, popt, xfce
}: }:
@ -13,8 +13,17 @@ stdenv.mkDerivation rec {
sha256 = "0qlhvnl2m33vfxqlbkic2nmfpwyd4mq230jzhs48cg78392amy9w"; 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 ]; nativeBuildInputs = [ pkgconfig intltool bison flex ];
buildInputs = [ gtk libical dbus-glib libnotify popt xfce.libxfce4util buildInputs = [ gtk libical dbus-glib libnotify popt xfce.libxfce4util
xfce.xfce4-panel ]; xfce.xfce4-panel ];

View File

@ -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 }: , popt ? null, libxfce4ui ? null, xfce4-panel ? null, withPanelPlugin ? true }:
assert withPanelPlugin -> libxfce4ui != null && xfce4-panel != null; assert withPanelPlugin -> libxfce4ui != null && xfce4-panel != null;
@ -15,4 +15,13 @@ mkXfceDerivation rec {
sha256 = "04z6y1vfaz1im1zq1zr7cf8pjibjhj9zkyanbp7vn30q520yxa0m"; sha256 = "04z6y1vfaz1im1zq1zr7cf8pjibjhj9zkyanbp7vn30q520yxa0m";
buildInputs = [ dbus_glib gtk2 libical libnotify popt ] buildInputs = [ dbus_glib gtk2 libical libnotify popt ]
++ optionals withPanelPlugin [ libxfce4ui xfce4-panel ]; ++ 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";
})
];
} }

View File

@ -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 { stdenv.mkDerivation rec {
name = "libical-${version}"; name = "libical-${version}";
version = "2.0.0"; version = "3.0.3";
outputs = [ "out" "dev" "devdoc" ];
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "libical"; owner = "libical";
repo = "libical"; repo = "libical";
rev = "v${version}"; 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 = [ patches = [
# TODO: upstream this patch # TODO: upstream this patch
# https://github.com/libical/libical/issues/350
./respect-env-tzdir.patch ./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; { meta = with stdenv.lib; {
homepage = https://github.com/libical/libical; homepage = https://github.com/libical/libical;
description = "An Open Source implementation of the iCalendar protocols"; description = "An Open Source implementation of the iCalendar protocols";
license = licenses.mpl10; license = licenses.mpl20;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ wkennington ]; maintainers = with maintainers; [ wkennington ];
}; };

View File

@ -1,9 +1,9 @@
--- a/src/libical/icaltz-util.c --- a/src/libical/icaltz-util.c
+++ b/src/libical/icaltz-util.c +++ b/src/libical/icaltz-util.c
@@ -96,9 +96,9 @@ typedef struct @@ -94,9 +94,9 @@
static char *zdir = NULL; static const char *zdir = NULL;
static char *search_paths[] = { static const char *search_paths[] = {
+ "/etc/zoneinfo", + "/etc/zoneinfo",
"/usr/share/zoneinfo", "/usr/share/zoneinfo",
"/usr/lib/zoneinfo", "/usr/lib/zoneinfo",
@ -11,13 +11,13 @@
"/usr/share/lib/zoneinfo" "/usr/share/lib/zoneinfo"
}; };
@@ -179,6 +179,15 @@ static void set_zonedir(void) @@ -178,6 +178,15 @@
const char *fname = ZONES_TAB_SYSTEM_FILENAME; const char *fname = ZONES_TAB_SYSTEM_FILENAME;
size_t i, num_search_paths; size_t i, num_search_paths;
+ const char *env_tzdir = getenv ("TZDIR"); + const char *env_tzdir = getenv ("TZDIR");
+ if (env_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)) { + if (!access (file_path, F_OK|R_OK)) {
+ zdir = env_tzdir; + zdir = env_tzdir;
+ return; + return;