Accepting request 582201 from home:jengelh:branches:ical3
- Update to new upstream release 3.0.3 OBS-URL: https://build.opensuse.org/request/show/582201 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/libical?expand=0&rev=47
This commit is contained in:
parent
3bc8bea59f
commit
91dfbdaa2d
@ -1,43 +0,0 @@
|
|||||||
From 101a29ef57341a786012eb07dcfcec5c597f4493 Mon Sep 17 00:00:00 2001
|
|
||||||
X-Backport: Rediff for 2.0.0
|
|
||||||
From: Jan Engelhardt <jengelh@inai.de>
|
|
||||||
Date: Mon, 3 Oct 2016 10:25:00 +0200
|
|
||||||
Subject: [PATCH] build: ICU must appear as Requires in pkgconfig
|
|
||||||
References: https://github.com/libical/libical/pull/244
|
|
||||||
|
|
||||||
libical.pc specifies -licu-i18n in its Libs: field,
|
|
||||||
but no Requires: icu-i18n. As a result, the automatic dependency
|
|
||||||
generator in Linux distributions won't see the ICU requirement,
|
|
||||||
won't install it, and builds of secondary software fails.
|
|
||||||
|
|
||||||
$ gcc icalthing.c `pkg-config libical --cflags --libs`
|
|
||||||
[...]
|
|
||||||
gcc: error: /usr/lib64/libicuuc.so: No such file or directory
|
|
||||||
|
|
||||||
Move ICU from Libs to Requires, so the dependency scanner can do its
|
|
||||||
job. Specifically move it to Requires.private, since specifying -licu*
|
|
||||||
is not normally needed when libical is a shared library since it
|
|
||||||
already has it recorded in the ELF.
|
|
||||||
---
|
|
||||||
libical.pc.in | 6 +++---
|
|
||||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
Index: libical-2.0.0/libical.pc.in
|
|
||||||
===================================================================
|
|
||||||
--- libical-2.0.0.orig/libical.pc.in
|
|
||||||
+++ libical-2.0.0/libical.pc.in
|
|
||||||
@@ -2,11 +2,11 @@ prefix=@prefix@
|
|
||||||
exec_prefix=@exec_prefix@
|
|
||||||
libdir=@libdir@
|
|
||||||
includedir=@includedir@
|
|
||||||
-threadslib=@PTHREAD_LIBS@
|
|
||||||
-iculib=@ICU_LIBRARIES@ @ICU_I18N_LIBRARIES@
|
|
||||||
|
|
||||||
Name: libical
|
|
||||||
Description: An implementation of basic iCAL protocols
|
|
||||||
Version: @VERSION@
|
|
||||||
-Libs: -L${libdir} -lical -licalss -licalvcal ${threadslib} ${iculib}
|
|
||||||
+Libs: -L${libdir} -lical -licalss -licalvcal
|
|
||||||
+Libs.private: @PTHREAD_LIBS@
|
|
||||||
+Requires.private: icu-i18n
|
|
||||||
Cflags: -I${includedir}
|
|
@ -1,3 +1 @@
|
|||||||
libical2
|
libical3
|
||||||
obsoletes "libical-<targettype> <= <version>"
|
|
||||||
provides "libical2-<targettype> = <version>"
|
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:654c11f759c19237be39f6ad401d917e5a05f36f1736385ed958e60cf21456da
|
|
||||||
size 699099
|
|
3
libical-3.0.3.tar.gz
Normal file
3
libical-3.0.3.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:5b91eb8ad2d2dcada39d2f81d5e3ac15895823611dc7df91df39a35586f39241
|
||||||
|
size 866624
|
@ -1,27 +0,0 @@
|
|||||||
From 6b9438d746cec6e4e632d78c5244f4be6314d1c9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Allen Winter <allen.winter@kdab.com>
|
|
||||||
Date: Sun, 28 May 2017 12:51:10 -0400
|
|
||||||
Subject: [PATCH] icaltypes.c - icalreqstattype_from_string(), copy the
|
|
||||||
reqstattype's debug string into its own memory in the ring buffer.
|
|
||||||
|
|
||||||
Issue#253
|
|
||||||
---
|
|
||||||
src/libical/icaltypes.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/libical/icaltypes.c b/src/libical/icaltypes.c
|
|
||||||
index 70c50d29..85c33545 100644
|
|
||||||
--- a/src/libical/icaltypes.c
|
|
||||||
+++ b/src/libical/icaltypes.c
|
|
||||||
@@ -140,7 +140,7 @@ struct icalreqstattype icalreqstattype_from_string(const char *str)
|
|
||||||
|
|
||||||
p2 = strchr(p1 + 1, ';');
|
|
||||||
if (p2 != 0 && *p2 != 0) {
|
|
||||||
- stat.debug = p2 + 1;
|
|
||||||
+ stat.debug = icalmemory_tmp_copy(p2 + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
return stat;
|
|
||||||
--
|
|
||||||
2.12.3
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
|||||||
From 04d84749e53db08c71ed0ce8b6ba5c11082743cd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ken Murchison <murch@andrew.cmu.edu>
|
|
||||||
Date: Fri, 2 Dec 2016 14:14:03 -0500
|
|
||||||
Subject: [PATCH] icalparser.c: make sure we have a prev_char before checking
|
|
||||||
it
|
|
||||||
|
|
||||||
---
|
|
||||||
src/libical/icalparser.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/libical/icalparser.c b/src/libical/icalparser.c
|
|
||||||
index 9d332375..2735c9ac 100644
|
|
||||||
--- a/src/libical/icalparser.c
|
|
||||||
+++ b/src/libical/icalparser.c
|
|
||||||
@@ -148,7 +148,7 @@ static char *parser_get_next_char(char c, char *str, int qm)
|
|
||||||
char prev_char = 0;
|
|
||||||
|
|
||||||
while (next_char != 0) {
|
|
||||||
- if (prev_char != '\\') {
|
|
||||||
+ if (prev_char && prev_char != '\\') {
|
|
||||||
if (qm == 1 && next_char == '"') {
|
|
||||||
/* Encountered a quote, toggle quote mode */
|
|
||||||
quote_mode = !quote_mode;
|
|
||||||
--
|
|
||||||
2.12.3
|
|
||||||
|
|
@ -1,26 +0,0 @@
|
|||||||
From 38757abb495ea6cb40faa5418052278bf75040f7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ken Murchison <murch@andrew.cmu.edu>
|
|
||||||
Date: Fri, 2 Dec 2016 14:13:22 -0500
|
|
||||||
Subject: [PATCH] icaltime.c: don't read past end of string (can't check
|
|
||||||
str[19] if length is 16)
|
|
||||||
|
|
||||||
---
|
|
||||||
src/libical/icaltime.c | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/libical/icaltime.c b/src/libical/icaltime.c
|
|
||||||
index ca647633..4077ce75 100644
|
|
||||||
--- a/src/libical/icaltime.c
|
|
||||||
+++ b/src/libical/icaltime.c
|
|
||||||
@@ -445,7 +445,7 @@ struct icaltimetype icaltime_from_string(const char *str)
|
|
||||||
tt.is_utc = 0;
|
|
||||||
tt.is_date = 0;
|
|
||||||
} else if ((size == 16) || (size == 20)) { /* UTC time, ends in 'Z' */
|
|
||||||
- if ((str[15] != 'Z') && (str[19] != 'Z'))
|
|
||||||
+ if ((str[size-1] != 'Z'))
|
|
||||||
goto FAIL;
|
|
||||||
|
|
||||||
tt.is_utc = 1;
|
|
||||||
--
|
|
||||||
2.12.3
|
|
||||||
|
|
@ -1,100 +0,0 @@
|
|||||||
From 53e68ff6e2133c54ff44df53e8b75ef21125fb3d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ken Murchison <murch@andrew.cmu.edu>
|
|
||||||
Date: Tue, 13 Dec 2016 16:22:42 -0500
|
|
||||||
Subject: [PATCH] icalparser.c: sanity check VALUE parameter against what is
|
|
||||||
allowed
|
|
||||||
|
|
||||||
Backported by Mike Gorse <mgorse@suse.com>
|
|
||||||
---
|
|
||||||
src/libical/icalparser.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++--
|
|
||||||
1 file changed, 67 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/libical/icalparser.c b/src/libical/icalparser.c
|
|
||||||
index 998bc96d..62e3a401 100644
|
|
||||||
--- a/src/libical/icalparser.c
|
|
||||||
+++ b/src/libical/icalparser.c
|
|
||||||
@@ -1023,6 +1023,12 @@ icalcomponent *icalparser_add_line(icalparser *parser, char *line)
|
|
||||||
|
|
||||||
/* If it is a VALUE parameter, set the kind of value */
|
|
||||||
if (icalparameter_isa(param) == ICAL_VALUE_PARAMETER) {
|
|
||||||
+ const char unknown_type[] =
|
|
||||||
+ "Got a VALUE parameter with an unknown type";
|
|
||||||
+ const char illegal_type[] =
|
|
||||||
+ "Got a VALUE parameter with an illegal type for property";
|
|
||||||
+ const char *value_err = NULL;
|
|
||||||
+
|
|
||||||
value_kind =
|
|
||||||
(icalvalue_kind)icalparameter_value_to_value_kind(
|
|
||||||
icalparameter_get_value(param));
|
|
||||||
@@ -1033,8 +1039,66 @@ icalcomponent *icalparser_add_line(icalparser *parser, char *line)
|
|
||||||
parameter ( it was not one of the defined
|
|
||||||
values ), so reset the value_kind */
|
|
||||||
|
|
||||||
- insert_error(tail, str,
|
|
||||||
- "Got a VALUE parameter with an unknown type",
|
|
||||||
+ value_err = unknown_type;
|
|
||||||
+ }
|
|
||||||
+ else if (value_kind !=
|
|
||||||
+ icalproperty_kind_to_value_kind(icalproperty_isa(prop))) {
|
|
||||||
+ /* VALUE parameter type does not match default type
|
|
||||||
+ for this property (check for allowed alternate types) */
|
|
||||||
+
|
|
||||||
+ switch (prop_kind) {
|
|
||||||
+ case ICAL_ATTACH_PROPERTY:
|
|
||||||
+ /* Accept BINARY */
|
|
||||||
+ if (value_kind != ICAL_BINARY_VALUE)
|
|
||||||
+ value_err = illegal_type;
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ case ICAL_DTEND_PROPERTY:
|
|
||||||
+ case ICAL_DUE_PROPERTY:
|
|
||||||
+ case ICAL_DTSTART_PROPERTY:
|
|
||||||
+ case ICAL_EXDATE_PROPERTY:
|
|
||||||
+ case ICAL_RECURRENCEID_PROPERTY:
|
|
||||||
+ /* Accept DATE */
|
|
||||||
+ if (value_kind != ICAL_DATE_VALUE)
|
|
||||||
+ value_err = illegal_type;
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ case ICAL_GEO_PROPERTY:
|
|
||||||
+ /* Accept FLOAT (but change to GEO) */
|
|
||||||
+ if (value_kind != ICAL_FLOAT_VALUE)
|
|
||||||
+ value_err = illegal_type;
|
|
||||||
+ else value_kind = ICAL_GEO_VALUE;
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ case ICAL_RDATE_PROPERTY:
|
|
||||||
+ /* Accept DATE or PERIOD */
|
|
||||||
+ if (value_kind != ICAL_DATE_VALUE &&
|
|
||||||
+ value_kind != ICAL_PERIOD_VALUE)
|
|
||||||
+ value_err = illegal_type;
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ case ICAL_TRIGGER_PROPERTY:
|
|
||||||
+ /* Accept DATE-TIME */
|
|
||||||
+ if (value_kind != ICAL_DATETIME_VALUE)
|
|
||||||
+ value_err = illegal_type;
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ case ICAL_X_PROPERTY:
|
|
||||||
+ /* Accept ANY value type */
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ default:
|
|
||||||
+ /* ONLY default type is allowed */
|
|
||||||
+ value_err = illegal_type;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (value_err != NULL) {
|
|
||||||
+ /* Ooops, unknown/illegal VALUE parameter,
|
|
||||||
+ so reset the value_kind */
|
|
||||||
+
|
|
||||||
+ insert_error(tail, str, value_err,
|
|
||||||
ICAL_XLICERRORTYPE_PARAMETERVALUEPARSEERROR);
|
|
||||||
|
|
||||||
value_kind = icalproperty_kind_to_value_kind(icalproperty_isa(prop));
|
|
||||||
--
|
|
||||||
2.12.3
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
|||||||
From 6bcc779a17a2d286e4c3cb958ddf369cc01cb42c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Allen Winter <allen.winter@kdab.com>
|
|
||||||
Date: Thu, 15 Dec 2016 18:17:10 -0500
|
|
||||||
Subject: [PATCH] icaltimezone.c - fix heap-use-after-free caused by
|
|
||||||
fetch_lat_long_from_string() issue#262
|
|
||||||
|
|
||||||
Backported by Mike Gorse <mgorse@suse.com>
|
|
||||||
---
|
|
||||||
diff -urp libical-2.0.0.orig/src/libical/icaltimezone.c libical-2.0.0/src/libical/icaltimezone.c
|
|
||||||
--- libical-2.0.0.orig/src/libical/icaltimezone.c 2015-12-28 15:44:53.000000000 -0600
|
|
||||||
+++ libical-2.0.0/src/libical/icaltimezone.c 2017-06-19 15:48:27.789017341 -0500
|
|
||||||
@@ -1520,39 +1520,39 @@ static int fetch_lat_long_from_string(co
|
|
||||||
|
|
||||||
/* We need to parse the latitude/longitude co-ordinates and location fields */
|
|
||||||
sptr = (char *)str;
|
|
||||||
- while (*sptr != '\t') {
|
|
||||||
+ while ((*sptr != '\t') && (*sptr != '\0')) {
|
|
||||||
sptr++;
|
|
||||||
}
|
|
||||||
temp = ++sptr;
|
|
||||||
- while (*sptr != '\t') {
|
|
||||||
+ while (*sptr != '\t' && *sptr != '\0') {
|
|
||||||
sptr++;
|
|
||||||
}
|
|
||||||
len = (ptrdiff_t) (sptr - temp);
|
|
||||||
lat = (char *)malloc(len + 1);
|
|
||||||
lat = strncpy(lat, temp, len);
|
|
||||||
lat[len] = '\0';
|
|
||||||
- while (*sptr != '\t') {
|
|
||||||
+ while ((*sptr != '\t') && (*sptr != '\0')) {
|
|
||||||
sptr++;
|
|
||||||
}
|
|
||||||
loc = ++sptr;
|
|
||||||
- while (!isspace((int)(*sptr))) {
|
|
||||||
+ while (!isspace((int)(*sptr)) && (*sptr != '\0')) {
|
|
||||||
sptr++;
|
|
||||||
}
|
|
||||||
- len = (ptrdiff_t) (sptr - loc);
|
|
||||||
+ len = (ptrdiff_t)(sptr - loc);
|
|
||||||
location = strncpy(location, loc, len);
|
|
||||||
location[len] = '\0';
|
|
||||||
|
|
||||||
#if defined(sun) && defined(__SVR4)
|
|
||||||
/* Handle EET, MET and WET in zone_sun.tab. */
|
|
||||||
if (!strcmp(location, "Europe/")) {
|
|
||||||
- while (*sptr != '\t') {
|
|
||||||
+ while ((*sptr != '\t') && (*sptr != '\0')) {
|
|
||||||
sptr++;
|
|
||||||
}
|
|
||||||
loc = ++sptr;
|
|
||||||
- while (!isspace(*sptr)) {
|
|
||||||
+ while (!isspace(*sptr) && (*sptr != '\0')) {
|
|
||||||
sptr++;
|
|
||||||
}
|
|
||||||
- len = sptr - loc;
|
|
||||||
+ len = (ptrdiff_t)(sptr - loc);
|
|
||||||
location = strncpy(location, loc, len);
|
|
||||||
location[len] = '\0';
|
|
||||||
}
|
|
||||||
Only in libical-2.0.0/src/libical: icaltimezone.c.orig
|
|
@ -1,3 +1,24 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Mar 3 10:36:33 UTC 2018 - jengelh@inai.de
|
||||||
|
|
||||||
|
- Update to new upstream release 3.0.3
|
||||||
|
* Various changes to the API over 2.x.
|
||||||
|
* Fixed use-after-free issues and some memory leaks
|
||||||
|
* More accurate VTIMEZONE generation when using the system time
|
||||||
|
zone data (when USE_BUILTIN_TZDATA=False)
|
||||||
|
* icalvalue_new/set_date and icalvalue_new/set_datetime now
|
||||||
|
enforce DATE and DATE-TIME values respectively.
|
||||||
|
* draft-ietf-calext-extensions (RFC 7986) support added.
|
||||||
|
* Parameter values are now en/decoded per RFC 6868.
|
||||||
|
* Added support for VPATCH component.
|
||||||
|
- Disable building static libs, nothing seems to be using it.
|
||||||
|
- Remove 0001-build-ICU-must-appear-as-Requires-in-pkgconfig.patch,
|
||||||
|
libical-boo986631-read-past-end.patch,
|
||||||
|
libical-boo986631-check-prev-char.patch,
|
||||||
|
libical-parser-sanity-check.patch,
|
||||||
|
libical-timezone-use-after-free.patch,
|
||||||
|
libical-boo1015964-use-after-free.patch (all are upstream)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Feb 28 16:35:25 UTC 2018 - dimstar@opensuse.org
|
Wed Feb 28 16:35:25 UTC 2018 - dimstar@opensuse.org
|
||||||
|
|
||||||
|
53
libical.spec
53
libical.spec
@ -16,35 +16,24 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
|
|
||||||
%define sonum 2
|
%define sonum 3
|
||||||
Name: libical
|
Name: libical
|
||||||
Version: 2.0.0
|
Version: 3.0.3
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: An Implementation of Basic iCAL Protocols
|
Summary: An Implementation of Basic iCAL Protocols
|
||||||
License: MPL-1.0 OR LGPL-2.1-only
|
License: MPL-2.0 OR LGPL-2.1-only
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
URL: http://sourceforge.net/projects/freeassociation/
|
Url: http://sourceforge.net/projects/freeassociation/
|
||||||
#Git-Clone: https://github.com/libical/libical
|
#Git-Clone: https://github.com/libical/libical
|
||||||
Source: https://github.com/libical/libical/releases/download/v%{version}/%{name}-%{version}.tar.gz
|
Source: https://github.com/libical/libical/releases/download/v%{version}/%{name}-%{version}.tar.gz
|
||||||
Source2: baselibs.conf
|
Source2: baselibs.conf
|
||||||
Patch1: 0001-build-ICU-must-appear-as-Requires-in-pkgconfig.patch
|
BuildRequires: cmake >= 3.1
|
||||||
# PATCH-FIX-UPSTREAM libical-boo986631-read-past-end.patch boo#986631 mgorse@suse.com -- fix for reading passed end of string (CVE-2016-5827)
|
|
||||||
Patch2: libical-boo986631-read-past-end.patch
|
|
||||||
# PATCH-FIX-UPSTREAM libical-boo986631-check-prev-char.patch boo#986631 mgorse@suse.com -- make sure we have a prev_char before checking it
|
|
||||||
Patch3: libical-boo986631-check-prev-char.patch
|
|
||||||
# PATCH-FIX-UPSTREAM libical-parser-sanity-check.patch mgorse@suse.com -- sanity check value parameter against what is allowed.
|
|
||||||
Patch4: libical-parser-sanity-check.patch
|
|
||||||
# PATCH-FIX-UPSTREAM libical-timezone-use-after-free.patch mgorse@suse.com -- fix use after free in fetch_lat_long_from_string
|
|
||||||
Patch5: libical-timezone-use-after-free.patch
|
|
||||||
# PATCH-FIX-UPSTREAM libical-boo1015964-use-after-free.patch boo#986639 boo#1015984 mgorse@suse.com -- copy reqstattype's debug string into its own memory (CVE-2016-5824 CVE-2016-9584).
|
|
||||||
Patch6: libical-boo1015964-use-after-free.patch
|
|
||||||
BuildRequires: cmake >= 2.4
|
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
BuildRequires: pkgconfig(icu-i18n)
|
BuildRequires: pkgconfig(icu-i18n)
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Libical is an open source implementation of the IETF's iCalendar
|
Libical is an implementation of the IETF's iCalendar
|
||||||
calendaring and scheduling protocols (RFC 2445, 2446, and 2447). It
|
calendaring and scheduling protocols (RFC 2445, 2446, and 2447). It
|
||||||
parses iCal components and provides a C API for manipulating the
|
parses iCal components and provides a C API for manipulating the
|
||||||
component properties, parameters, and subcomponents.
|
component properties, parameters, and subcomponents.
|
||||||
@ -56,7 +45,7 @@ Provides: %{name} = %{version}
|
|||||||
Obsoletes: %{name} < %{version}
|
Obsoletes: %{name} < %{version}
|
||||||
|
|
||||||
%description -n %{name}%{sonum}
|
%description -n %{name}%{sonum}
|
||||||
Libical is an open source implementation of the IETF's iCalendar
|
Libical is an implementation of the IETF's iCalendar
|
||||||
calendaring and scheduling protocols (RFC 2445, 2446, and 2447). It
|
calendaring and scheduling protocols (RFC 2445, 2446, and 2447). It
|
||||||
parses iCal components and provides a C API for manipulating the
|
parses iCal components and provides a C API for manipulating the
|
||||||
component properties, parameters, and subcomponents.
|
component properties, parameters, and subcomponents.
|
||||||
@ -67,46 +56,29 @@ Group: Development/Libraries/C and C++
|
|||||||
Requires: %{name}%{sonum} = %{version}
|
Requires: %{name}%{sonum} = %{version}
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
Libical is an Open Source implementation of the IETF's iCalendar
|
Libical is an implementation of the IETF's iCalendar
|
||||||
Calendaring and Scheduling protocols. (RFC 2445, 2446, and 2447). It
|
|
||||||
parses iCal components and provides a C API for manipulating the
|
|
||||||
component properties, parameters, and subcomponents.
|
|
||||||
|
|
||||||
%package devel-static
|
|
||||||
Summary: Additional static library for development with libical
|
|
||||||
Group: Development/Libraries/C and C++
|
|
||||||
Requires: %{name}-devel = %{version}
|
|
||||||
|
|
||||||
%description devel-static
|
|
||||||
Libical is an Open Source implementation of the IETF's iCalendar
|
|
||||||
Calendaring and Scheduling protocols. (RFC 2445, 2446, and 2447). It
|
Calendaring and Scheduling protocols. (RFC 2445, 2446, and 2447). It
|
||||||
parses iCal components and provides a C API for manipulating the
|
parses iCal components and provides a C API for manipulating the
|
||||||
component properties, parameters, and subcomponents.
|
component properties, parameters, and subcomponents.
|
||||||
|
|
||||||
%package doc
|
%package doc
|
||||||
Summary: Example source code for libical-using programs
|
Summary: Example source code for programs to use libical
|
||||||
Group: Documentation/Other
|
Group: Documentation/Other
|
||||||
%if 0%{?suse_version} >= 1120
|
%if 0%{?suse_version} >= 1120
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%description doc
|
%description doc
|
||||||
Libical is an open source implementation of the IETF's iCalendar
|
Libical is an implementation of the IETF's iCalendar
|
||||||
calendaring and scheduling protocols (RFC 2445, 2446, and 2447). It
|
calendaring and scheduling protocols (RFC 2445, 2446, and 2447). It
|
||||||
parses iCal components and provides a C API for manipulating the
|
parses iCal components and provides a C API for manipulating the
|
||||||
component properties, parameters, and subcomponents.
|
component properties, parameters, and subcomponents.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch1 -p1
|
|
||||||
%patch2 -p1
|
|
||||||
%patch3 -p1
|
|
||||||
%patch4 -p1
|
|
||||||
%patch5 -p1
|
|
||||||
%patch6 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%cmake
|
%cmake -DICAL_GLIB=false -DSHARED_ONLY=true
|
||||||
make -j1
|
make -j1
|
||||||
|
|
||||||
%install
|
%install
|
||||||
@ -127,9 +99,6 @@ rm examples/CMakeLists.txt
|
|||||||
%{_includedir}/libical/
|
%{_includedir}/libical/
|
||||||
%{_libdir}/cmake/LibIcal/
|
%{_libdir}/cmake/LibIcal/
|
||||||
|
|
||||||
%files devel-static
|
|
||||||
%{_libdir}/*.a
|
|
||||||
|
|
||||||
%files doc
|
%files doc
|
||||||
%doc doc/*.txt
|
%doc doc/*.txt
|
||||||
%doc examples/
|
%doc examples/
|
||||||
|
Loading…
Reference in New Issue
Block a user