From 4947f5246cccc690cc3c708d95356142915f64bd Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Mon, 18 Jan 2016 10:58:36 +0100 Subject: [PATCH] Update to 2.0.0 --- .gitignore | 1 + libical-1.0-avoid-putenv.patch | 177 --------------------------------- libical.spec | 21 ++-- sources | 2 +- 4 files changed, 15 insertions(+), 186 deletions(-) delete mode 100644 libical-1.0-avoid-putenv.patch diff --git a/.gitignore b/.gitignore index ba2c70a..71eaff2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /libical-0.48.tar.gz /libical-1.0.tar.gz /libical-1.0.1.tar.gz +/libical-2.0.0.tar.gz diff --git a/libical-1.0-avoid-putenv.patch b/libical-1.0-avoid-putenv.patch deleted file mode 100644 index 2b2fc80..0000000 --- a/libical-1.0-avoid-putenv.patch +++ /dev/null @@ -1,177 +0,0 @@ -diff -up libical-1.0.1/src/libical/icaltime.c.avoid-putenv libical-1.0.1/src/libical/icaltime.c ---- libical-1.0.1/src/libical/icaltime.c.avoid-putenv 2014-10-09 17:07:05.000000000 +0200 -+++ libical-1.0.1/src/libical/icaltime.c 2015-01-26 11:56:35.153309240 +0100 -@@ -64,11 +64,6 @@ - #define gmtime_r(tp,tmp) (gmtime(tp)?(*(tmp)=*gmtime(tp),(tmp)):0) - #endif - --#ifdef HAVE_PTHREAD -- #include -- static pthread_mutex_t tzid_mutex = PTHREAD_MUTEX_INITIALIZER; --#endif -- - /* - * Function to convert a struct tm time specification - * to an ANSI time_t using the specified time zone. -@@ -77,7 +72,7 @@ - * local daylight savings time applied to the result. - * This function expects well-formed input. - */ --static time_t make_time(struct tm *tm, int tzm) -+static time_t make_time(struct tm *tm, int tzm, int be_strict) - { - time_t tim; - -@@ -91,13 +86,13 @@ static time_t make_time(struct tm *tm, i - #if (SIZEOF_TIME_T == 4) - /* check that year specification within range */ - -- if (tm->tm_year < 70 || tm->tm_year > 138) -+ if (be_strict && (tm->tm_year < 70 || tm->tm_year > 138)) - return((time_t) -1); - - /* check for upper bound of Jan 17, 2038 (to avoid possibility of - 32-bit arithmetic overflow) */ - -- if (tm->tm_year == 138) { -+ if (be_strict && tm->tm_year == 138) { - if (tm->tm_mon > 0) - return((time_t) -1); - else if (tm->tm_mday > 17) -@@ -291,99 +286,12 @@ time_t icaltime_as_timet(const struct ic - stm.tm_year = tt.year-1900; - stm.tm_isdst = -1; - -- t = make_time(&stm, 0); -+ t = make_time(&stm, 0, 1); - - return t; - - } - -- --/* Structure used by set_tz to hold an old value of TZ, and the new -- value, which is in memory we will have to free in unset_tz */ --/* This will hold the last "TZ=XXX" string we used with putenv(). After we -- call putenv() again to set a new TZ string, we can free the previous one. -- As far as I know, no libc implementations actually free the memory used in -- the environment variables (how could they know if it is a static string or -- a malloc'ed string?), so we have to free it ourselves. */ --static char* saved_tz = NULL; -- --/* If you use set_tz(), you must call unset_tz() some time later to restore the -- original TZ. Pass unset_tz() the string that set_tz() returns. Call both the functions -- locking the tzid mutex as in icaltime_as_timet_with_zone */ --char* set_tz(const char* tzid) --{ -- char *old_tz, *old_tz_copy = NULL, *new_tz; -- -- /* Get the old TZ setting and save a copy of it to return. */ -- old_tz = getenv("TZ"); -- if(old_tz){ -- old_tz_copy = (char*)malloc(strlen (old_tz) + 4); -- -- if(old_tz_copy == 0){ -- icalerror_set_errno(ICAL_NEWFAILED_ERROR); -- return 0; -- } -- -- strcpy (old_tz_copy, "TZ="); -- strcpy (old_tz_copy + 3, old_tz); -- } -- -- /* Create the new TZ string. */ -- new_tz = (char*)malloc(strlen (tzid) + 4); -- -- if(new_tz == 0){ -- icalerror_set_errno(ICAL_NEWFAILED_ERROR); -- free(old_tz_copy); -- return 0; -- } -- -- strcpy (new_tz, "TZ="); -- strcpy (new_tz + 3, tzid); -- -- /* Add the new TZ to the environment. */ -- putenv(new_tz); -- -- /* Free any previous TZ environment string we have used in a synchronized manner. */ -- -- free (saved_tz); -- -- /* Save a pointer to the TZ string we just set, so we can free it later. */ -- saved_tz = new_tz; -- -- return old_tz_copy; /* This will be zero if the TZ env var was not set */ --} -- --void unset_tz(char *tzstr) --{ -- /* restore the original environment */ -- -- if(tzstr!=0){ -- putenv(tzstr); -- } else { -- /* Delete from environment. We prefer unsetenv(3) over putenv(3) -- because the former is POSIX and behaves consistently. The later -- does not unset the variable in some systems (like NetBSD), leaving -- it with an empty value. This causes problems later because further -- calls to time related functions in libc will treat times in UTC. */ --#ifdef HAVE_UNSETENV -- unsetenv("TZ"); --#else --#ifdef _MSC_VER -- putenv("TZ="); // The equals is required to remove with MS Visual C++ --#else -- putenv("TZ"); --#endif --#endif -- } -- -- /* Free any previous TZ environment string we have used in a synchronized manner */ -- free (saved_tz); -- -- /* Save a pointer to the TZ string we just set, so we can free it later. -- (This can possibly be NULL if there was no TZ to restore.) */ -- saved_tz = tzstr; --} -- - /** Return the time as seconds past the UNIX epoch, using the - * given timezone. - * -@@ -397,8 +305,6 @@ time_t icaltime_as_timet_with_zone(const - { - icaltimezone *utc_zone; - struct tm stm; -- time_t t; -- char *old_tz; - struct icaltimetype local_tt; - - utc_zone = icaltimezone_get_utc_timezone (); -@@ -426,25 +332,8 @@ time_t icaltime_as_timet_with_zone(const - stm.tm_mon = local_tt.month-1; - stm.tm_year = local_tt.year-1900; - stm.tm_isdst = -1; --/* The functions putenv and mktime are not thread safe, inserting a lock --to prevent any crashes */ - --#ifdef HAVE_PTHREAD -- pthread_mutex_lock (&tzid_mutex); --#endif -- -- /* Set TZ to UTC and use mktime to convert to a time_t. */ -- old_tz = set_tz ("UTC"); -- tzset (); -- -- t = mktime (&stm); -- unset_tz (old_tz); -- tzset (); -- --#ifdef HAVE_PTHREAD -- pthread_mutex_unlock (&tzid_mutex); --#endif -- return t; -+ return make_time (&stm, 0, 0); - } - - const char* icaltime_as_ical_string(const struct icaltimetype tt) diff --git a/libical.spec b/libical.spec index 5951793..e2fa302 100644 --- a/libical.spec +++ b/libical.spec @@ -1,11 +1,10 @@ Summary: Reference implementation of the iCalendar data type and serialization format Name: libical -Version: 1.0.1 -Release: 2%{?dist} +Version: 2.0.0 +Release: 1%{?dist} License: LGPLv2 or MPLv1.1 URL: http://freeassociation.sourceforge.net/ Source: https://github.com/%{name}/%{name}/archive/v%{version}/%{name}-%{version}.tar.gz -Patch0: libical-1.0-avoid-putenv.patch BuildRequires: bison, byacc, flex BuildRequires: cmake @@ -25,7 +24,6 @@ applications that use libical. %prep %setup -q -%patch0 -p1 -b .avoid-putenv %build mkdir -p %{_target_platform} @@ -50,21 +48,28 @@ make test ARGS="-V" -C %{_target_platform} %files %doc LICENSE ReadMe.txt THANKS -%{_libdir}/libical.so.1* -%{_libdir}/libicalss.so.1* -%{_libdir}/libicalvcal.so.1* +%{_libdir}/libical.so.2* +%{_libdir}/libical_cxx.so.2* +%{_libdir}/libicalss.so.2* +%{_libdir}/libicalss_cxx.so.2* +%{_libdir}/libicalvcal.so.2* %files devel %doc doc/UsingLibical.txt -%{_includedir}/ical.h %{_libdir}/libical.so +%{_libdir}/libical_cxx.so %{_libdir}/libicalss.so +%{_libdir}/libicalss_cxx.so %{_libdir}/libicalvcal.so %{_libdir}/pkgconfig/libical.pc %{_libdir}/cmake/LibIcal/ %{_includedir}/libical/ %changelog +* Mon Jan 18 2016 Milan Crha - 2.0.0-1 +- Update to 2.0.0 +- Remove patch for RH bug #1176204 (fixed upstream) + * Wed Jun 17 2015 Fedora Release Engineering - 1.0.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild diff --git a/sources b/sources index 5bc3682..23a5242 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -af91db06b22559f863869c5a382ad08a libical-1.0.1.tar.gz +6bf8e5f5a3ba88baf390d0134e05d76e libical-2.0.0.tar.gz