summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/icalendar')
-rw-r--r--dev-python/icalendar/ChangeLog14
-rw-r--r--dev-python/icalendar/files/01_all_UIDGenerator-fix.patch22
-rw-r--r--dev-python/icalendar/files/02_all_vDatetime-tzinfo-fix.patch30
-rw-r--r--dev-python/icalendar/files/03_all_duration-fix.patch33
-rw-r--r--dev-python/icalendar/files/04_all_date-type-test-in-vDDDTypes.patch22
-rw-r--r--dev-python/icalendar/files/05_all_utf8-multi-octet-fix.patch30
-rw-r--r--dev-python/icalendar/files/06_all_test.py-use-set.patch37
-rw-r--r--dev-python/icalendar/icalendar-2.0.1.ebuild4
-rw-r--r--dev-python/icalendar/icalendar-2.1-r1.ebuild6
-rw-r--r--dev-python/icalendar/icalendar-2.1_p20100409.ebuild40
10 files changed, 232 insertions, 6 deletions
diff --git a/dev-python/icalendar/ChangeLog b/dev-python/icalendar/ChangeLog
index 9b19547c5e36..52a86bef62f8 100644
--- a/dev-python/icalendar/ChangeLog
+++ b/dev-python/icalendar/ChangeLog
@@ -1,6 +1,18 @@
# ChangeLog for dev-python/icalendar
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-python/icalendar/ChangeLog,v 1.6 2010/02/08 08:48:54 pva Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-python/icalendar/ChangeLog,v 1.7 2010/04/25 17:58:12 nixphoeni Exp $
+
+*icalendar-2.1_p20100409 (25 Apr 2010)
+
+ 25 Apr 2010; Joe Sapp <nixphoeni@gentoo.org>
+ +files/01_all_UIDGenerator-fix.patch, icalendar-2.0.1.ebuild,
+ +files/02_all_vDatetime-tzinfo-fix.patch, icalendar-2.1-r1.ebuild,
+ +files/03_all_duration-fix.patch, +icalendar-2.1_p20100409.ebuild,
+ +files/04_all_date-type-test-in-vDDDTypes.patch,
+ +files/05_all_utf8-multi-octet-fix.patch,
+ +files/06_all_test.py-use-set.patch:
+ Added an ebuild to include patches flying across the mailing list. It's
+ unknown when upstream will release a version incorporating these fixes.
08 Feb 2010; Peter Volkov <pva@gentoo.org> icalendar-2.0.1.ebuild,
icalendar-2.1-r1.ebuild:
diff --git a/dev-python/icalendar/files/01_all_UIDGenerator-fix.patch b/dev-python/icalendar/files/01_all_UIDGenerator-fix.patch
new file mode 100644
index 000000000000..4f2b78dc9133
--- /dev/null
+++ b/dev-python/icalendar/files/01_all_UIDGenerator-fix.patch
@@ -0,0 +1,22 @@
+--- src/icalendar/tools.py
++++ src/icalendar/tools.py
+@@ -1,5 +1,6 @@
+ from string import ascii_letters, digits
+ import random
++from datetime import datetime
+
+ """
+ This module contains non-essential tools for iCalendar. Pretty thin so far eh?
+@@ -42,9 +43,9 @@
+ datetime-uniquevalue at host. Like:
+ 20050105T225746Z-HKtJMqUgdO0jDUwm at example.com
+ """
+- from PropertyValues import vText, vDatetime
++ from icalendar.prop import vText, vDatetime
+ unique = unique or self.rnd_string()
+- return vText('%s-%s@%s' % (vDatetime.today().ical(), unique, host_name))
++ return vText('%s-%s@%s' % (vDatetime(datetime.today()).ical(), unique, host_name))
+
+
+ if __name__ == "__main__":
+
diff --git a/dev-python/icalendar/files/02_all_vDatetime-tzinfo-fix.patch b/dev-python/icalendar/files/02_all_vDatetime-tzinfo-fix.patch
new file mode 100644
index 000000000000..7f06b4f68c9e
--- /dev/null
+++ b/dev-python/icalendar/files/02_all_vDatetime-tzinfo-fix.patch
@@ -0,0 +1,30 @@
+From http://codespeak.net/pipermail/icalendar-dev/2009-July/000139.html:
+
+SUMMARY: The encoding mechanism of vDatetime handles tzinfo fields
+incorrectly (specifically with respect to daylight savings time).
+Attached is a simple patch that makes it work.
+
+DETAILS: Currently vDatetime.ical() tries to compute the utcoffset of
+the tzinfo, and then subtract that offset. This approach is valid,
+but the computation of the utcoffset is wrong, because it's done relative
+to datetime.now() instead of the actual datetime object (self.dt)
+to be converted. This is an issue for timezones whose utcoffset varies
+throughout the year, e.g., from daylight savings time.
+Replacing datetime.now() with self.dt would fix the code,
+but I opted to use the builtin 'asttimezone' method
+because it's slightly simpler.
+
+Submitted by Erik Demaine.
+===================================================================
+--- src/icalendar/prop.py.orig 2009-12-14 08:43:50.000000000 -0500
++++ src/icalendar/prop.py 2009-12-20 12:41:28.000000000 -0500
+@@ -309,8 +309,7 @@
+
+ def ical(self):
+ if self.dt.tzinfo:
+- utc_time = self.dt - self.dt.tzinfo.utcoffset(datetime.now())
+- return utc_time.strftime("%Y%m%dT%H%M%SZ")
++ return self.dt.astimezone (UTC).strftime("%Y%m%dT%H%M%SZ")
+ return self.dt.strftime("%Y%m%dT%H%M%S")
+
+ def from_ical(ical):
diff --git a/dev-python/icalendar/files/03_all_duration-fix.patch b/dev-python/icalendar/files/03_all_duration-fix.patch
new file mode 100644
index 000000000000..d6d857a342d1
--- /dev/null
+++ b/dev-python/icalendar/files/03_all_duration-fix.patch
@@ -0,0 +1,33 @@
+--- src/icalendar/prop.py.old Mon Dec 14 13:43:50 2009
++++ src/icalendar/prop.py Tue Jan 19 15:09:58 2010
+@@ -57,7 +57,7 @@
+ TIME_PART = r'T(?:(\d+)H)?(?:(\d+)M)?(?:(\d+)S)?'
+ DATETIME_PART = '(?:%s)?(?:%s)?' % (DATE_PART, TIME_PART)
+ WEEKS_PART = r'(\d+)W'
+-DURATION_REGEX = re.compile(r'([-+]?)P(?:%s|%s)$'
++DURATION_REGEX = re.compile(r'([-+]?)P(?:%s)?(?:%s)?$'
+ % (WEEKS_PART, DATETIME_PART))
+ WEEKDAY_RULE = re.compile('(?P<signal>[+-]?)(?P<relative>[\d]?)'
+ '(?P<weekday>[\w]{2})$')
+@@ -467,14 +467,14 @@
+ """
+ try:
+ match = DURATION_REGEX.match(ical)
++ if not any(match.groups()):
++ raise ValueError()
+ sign, weeks, days, hours, minutes, seconds = match.groups()
+- if weeks:
+- value = timedelta(weeks=int(weeks))
+- else:
+- value = timedelta(days=int(days or 0),
+- hours=int(hours or 0),
+- minutes=int(minutes or 0),
+- seconds=int(seconds or 0))
++ value = timedelta(weeks=int(weeks or 0),
++ days=int(days or 0),
++ hours=int(hours or 0),
++ minutes=int(minutes or 0),
++ seconds=int(seconds or 0))
+ if sign == '-':
+ value = -value
+ return value
diff --git a/dev-python/icalendar/files/04_all_date-type-test-in-vDDDTypes.patch b/dev-python/icalendar/files/04_all_date-type-test-in-vDDDTypes.patch
new file mode 100644
index 000000000000..799576f2f944
--- /dev/null
+++ b/dev-python/icalendar/files/04_all_date-type-test-in-vDDDTypes.patch
@@ -0,0 +1,22 @@
+--- src/icalendar/prop.py.orig 2010-03-29 21:05:47.000000000 -0400
++++ src/icalendar/prop.py 2010-03-29 21:01:47.000000000 -0400
+@@ -585,7 +585,7 @@
+ wrong_type_used = 0
+ if wrong_type_used:
+ raise ValueError ('You must use datetime, date or timedelta')
+- if isinstance(dt, date):
++ if type(dt) is date:
+ self.params = Parameters(dict(value='DATE'))
+
+ self.dt = dt
+--- src/icalendar/cal.py.orig 2009-12-14 08:43:50.000000000 -0500
++++ src/icalendar/cal.py 2010-04-25 09:11:44.000000000 -0400
+@@ -520,7 +520,7 @@
+ >>> event.set('dtstart', datetime(2005,4,4,8,0,0))
+ >>> cal.add_component(event)
+ >>> cal.subcomponents[0].as_string()
+- 'BEGIN:VEVENT\\r\\nDTSTART;VALUE=DATE:20050404T080000\\r\\nSUMMARY:Python meeting about calendaring\\r\\nUID:42\\r\\nEND:VEVENT\\r\\n'
++ 'BEGIN:VEVENT\\r\\nDTSTART:20050404T080000\\r\\nSUMMARY:Python meeting about calendaring\\r\\nUID:42\\r\\nEND:VEVENT\\r\\n'
+
+ Write to disc
+ >>> import tempfile, os
diff --git a/dev-python/icalendar/files/05_all_utf8-multi-octet-fix.patch b/dev-python/icalendar/files/05_all_utf8-multi-octet-fix.patch
new file mode 100644
index 000000000000..e0ac0cf3671e
--- /dev/null
+++ b/dev-python/icalendar/files/05_all_utf8-multi-octet-fix.patch
@@ -0,0 +1,30 @@
+From http://codespeak.net/pipermail/icalendar-dev/2010-April/000152.html:
+
+Lines get folded in the middle of multi-octet sequences (checked out
+code from svn today). Consider this case:
+import icalendar
+ical = icalendar.Calendar()
+ical.add('summary', u'a' + u'ą'*100)
+ical.as_string().decode('utf-8')
+...
+UnicodeDecodeError: 'utf8' codec can't decode bytes in position 90-91:
+invalid data
+
+I have attached a diff of a simple one-line fix.
+
+As I see in the code you actually try not to split a multi-octet
+character but you don't recalculate the slice after finding the new
+end position. Could you confirm this?
+
+Submitted by Rimvydas Naktinis.
+===================================================================
+--- src/icalendar/parser.py (revision 73587)
++++ src/icalendar/parser.py (working copy)
+@@ -456,6 +456,7 @@
+ else:
+ end -= 1
+
++ slice = self[start:end]
+ new_lines.append(slice)
+ if end == l_line:
+ # Done
diff --git a/dev-python/icalendar/files/06_all_test.py-use-set.patch b/dev-python/icalendar/files/06_all_test.py-use-set.patch
new file mode 100644
index 000000000000..cef265e3b34d
--- /dev/null
+++ b/dev-python/icalendar/files/06_all_test.py-use-set.patch
@@ -0,0 +1,37 @@
+--- test.py.orig 2010-04-25 09:19:36.000000000 -0400
++++ test.py 2010-04-25 09:26:23.000000000 -0400
+@@ -77,7 +77,6 @@
+ import traceback
+ import linecache
+ import pdb
+-from sets import Set
+
+ __metaclass__ = type
+
+@@ -261,7 +260,7 @@
+ """Returns a set of test case classes used in a test suite."""
+ if not isinstance(suite, unittest.TestSuite):
+ raise TypeError('not a TestSuite', suite)
+- results = Set()
++ results = set()
+ for test in suite._tests:
+ if isinstance(test, unittest.TestCase):
+ results.add(test.__class__)
+@@ -293,7 +292,7 @@
+ if test_suite is None:
+ continue
+ if cfg.warn_omitted:
+- all_classes = Set(get_all_test_cases(module))
++ all_classes = set(get_all_test_cases(module))
+ classes_in_suite = get_test_classes_from_testsuite(test_suite)
+ difference = all_classes - classes_in_suite
+ for test_class in difference:
+@@ -320,7 +319,7 @@
+ def get_test_hooks(test_files, cfg, tracer=None):
+ """Returns a list of test hooks from a given list of test modules."""
+ results = []
+- dirs = Set(map(os.path.dirname, test_files))
++ dirs = set(map(os.path.dirname, test_files))
+ for dir in list(dirs):
+ if os.path.basename(dir) == 'ftests':
+ dirs.add(os.path.join(os.path.dirname(dir), 'tests'))
diff --git a/dev-python/icalendar/icalendar-2.0.1.ebuild b/dev-python/icalendar/icalendar-2.0.1.ebuild
index 5b6252c22852..c16c2ec103e8 100644
--- a/dev-python/icalendar/icalendar-2.0.1.ebuild
+++ b/dev-python/icalendar/icalendar-2.0.1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-python/icalendar/icalendar-2.0.1.ebuild,v 1.4 2010/02/08 08:48:54 pva Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-python/icalendar/icalendar-2.0.1.ebuild,v 1.5 2010/04/25 17:58:12 nixphoeni Exp $
EAPI=2
inherit eutils distutils
@@ -22,7 +22,7 @@ RDEPEND="${DEPEND}"
DOCS="CHANGES.txt CREDITS.txt doc/* HISTORY.txt README.txt TODO.txt"
src_prepare() {
- epatch "${FILESDIR}/${P}-UIDGenerator-fix.patch"
+ epatch "${FILESDIR}/01_all_UIDGenerator-fix.patch"
}
src_test() {
diff --git a/dev-python/icalendar/icalendar-2.1-r1.ebuild b/dev-python/icalendar/icalendar-2.1-r1.ebuild
index 8fa69def6259..00e4ad42f327 100644
--- a/dev-python/icalendar/icalendar-2.1-r1.ebuild
+++ b/dev-python/icalendar/icalendar-2.1-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-python/icalendar/icalendar-2.1-r1.ebuild,v 1.3 2010/02/08 08:48:54 pva Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-python/icalendar/icalendar-2.1-r1.ebuild,v 1.4 2010/04/25 17:58:12 nixphoeni Exp $
EAPI="2"
SUPPORT_PYTHON_ABIS="1"
@@ -23,8 +23,8 @@ RESTRICT_PYTHON_ABIS="3.*"
DOCS="CHANGES.txt CREDITS.txt doc/* HISTORY.txt README.txt TODO.txt"
src_prepare() {
- epatch "${FILESDIR}/${PN}-2.0.1-UIDGenerator-fix.patch"
- epatch "${FILESDIR}/${P}-vDatetime-tzinfo-fix.patch"
+ epatch "${FILESDIR}/01_all_UIDGenerator-fix.patch"
+ epatch "${FILESDIR}/02_all_vDatetime-tzinfo-fix.patch"
}
src_test() {
diff --git a/dev-python/icalendar/icalendar-2.1_p20100409.ebuild b/dev-python/icalendar/icalendar-2.1_p20100409.ebuild
new file mode 100644
index 000000000000..4a6e949468a4
--- /dev/null
+++ b/dev-python/icalendar/icalendar-2.1_p20100409.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-python/icalendar/icalendar-2.1_p20100409.ebuild,v 1.1 2010/04/25 17:58:12 nixphoeni Exp $
+
+EAPI="2"
+SUPPORT_PYTHON_ABIS="1"
+PYTHON_DEPEND="2"
+
+inherit eutils distutils
+
+MY_P="${PN}-${PV%%_p*}"
+S="${WORKDIR}/${MY_P}"
+
+DESCRIPTION="Package used for parsing and generating iCalendar files (RFC 2445)."
+HOMEPAGE="http://codespeak.net/icalendar/ http://pypi.python.org/pypi/icalendar"
+SRC_URI="http://pypi.python.org/packages/source/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND=""
+DEPEND="dev-python/setuptools"
+RESTRICT_PYTHON_ABIS="3.*"
+
+DOCS="CHANGES.txt CREDITS.txt doc/* HISTORY.txt README.txt TODO.txt"
+EPATCH_SUFFIX="patch"
+
+src_prepare() {
+ epatch "${FILESDIR}"
+ distutils_src_prepare
+}
+
+src_test() {
+ testing() {
+ "$(PYTHON)" test.py
+ }
+ python_execute_function testing
+}