--- python-vobject-0.8.1c.orig/debian/copyright
+++ python-vobject-0.8.1c/debian/copyright
@@ -0,0 +1,68 @@
+This package was debianized by Guido Guenther <agx@sigxcpu.org> on
+Wed, 6 Sep 2006 11:04:33 +0200.
+
+It was downloaded from http://vobject.skyhouseconsulting.com/
+
+Upstream Author: Jeffrey Harris <jeffrey@osafoundation.org>
+
+Copyright (c) 2004-2006 Jeffrey Harris. All rights reserved.
+
+License:
+
+/* ====================================================================
+ * The Apache Software License, Version 1.1
+ *
+ * Copyright (c) 2004-2006 Jeffrey Harris. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowledgment:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself,
+ * if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "Apache" and "Apache Software Foundation" must
+ * not be used to endorse or promote products derived from this
+ * software without prior written permission. For written
+ * permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ * nor may "Apache" appear in their name, without prior written
+ * permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ * Portions of this software are based upon public domain software
+ * originally written at the National Center for Supercomputing Applications,
+ * University of Illinois, Urbana-Champaign.
+ */
+
--- python-vobject-0.8.1c.orig/debian/control
+++ python-vobject-0.8.1c/debian/control
@@ -0,0 +1,19 @@
+Source: python-vobject
+Section: python
+Priority: optional
+Maintainer: Calendarserver Maintainers <calendarserver-maintainers@lists.alioth.debian.org>
+Uploaders: Guido Günther <agx@sigxcpu.org>
+Build-Depends: cdbs, debhelper (>= 5), python-dev, python-support (>= 0.3), python-dateutil, python-setuptools, quilt
+Standards-Version: 3.8.3
+Vcs-Git: git://git.debian.org/git/calendarserver/python-vobject.git
+Vcs-Browser: http://git.debian.org/?p=calendarserver/python-vobject.git
+Homepage: http://vobject.skyhouseconsulting.com/
+
+Package: python-vobject
+Architecture: all
+Depends: ${python:Depends}, ${misc:Depends}, python-dateutil (>= 1.1)
+Conflicts: calendarserver (<< 2.0)
+Description: parse iCalendar and VCards in Python
+ Parses iCalendar and vCard files into Python data structures, decoding the
+ relevant encodings. Also serializes vobject data structures to valid iCalendar
+ or vCard unicode strings.
--- python-vobject-0.8.1c.orig/debian/changelog
+++ python-vobject-0.8.1c/debian/changelog
@@ -0,0 +1,154 @@
+python-vobject (0.8.1c-4) unstable; urgency=low
+
+ * [80b984b] Restore original upstream behaviour on unrecognized parameters
+ (Closes: #569273)
+ * [ae6eba8] Normalise year info to be within Python's year bounds. Thanks
+ to Dave Holland for the patch (Closes: #574133)
+
+ -- Guido Günther <agx@sigxcpu.org> Wed, 01 Jun 2011 20:05:05 +0200
+
+python-vobject (0.8.1c-3) unstable; urgency=low
+
+ [ Rahul Amaram ]
+ * [57d7cbd] Add patches from Apple Calendarserver 2.3 acked by Jeffrey
+ Harris
+
+ -- Guido Günther <agx@sigxcpu.org> Mon, 04 Jan 2010 20:32:01 +0100
+
+python-vobject (0.8.1c-2) unstable; urgency=low
+
+ * Upload to unstable (Closes: #554563)
+ * [0365f3c] Bump standards version
+ * [fda4195] Add README.source
+
+ -- Guido Günther <agx@sigxcpu.org> Tue, 08 Dec 2009 20:38:38 +0100
+
+python-vobject (0.8.1c-1) experimental; urgency=low
+
+ * [d403e62] Imported Upstream version 0.8.1c
+ * [e66c3d7] rebase ics_diff patch
+ * [20fc2d0] conflict with calendarserver << 2.0 since older version
+ rely on vobject bugs that are now fixed
+ (http://trac.calendarserver.org/ticket/287) (Closes: #491915)
+ * [f03e51c] change maintainer to calendarserver team and bump
+ standards version
+ * [c5d850d] honor nocheck in DEB_BUILD_OPTIONS
+ * [17e1a18] debian/watch: allow letter in the version match
+
+ -- Guido Günther <agx@sigxcpu.org> Fri, 17 Apr 2009 23:13:41 +0200
+
+python-vobject (0.7.1-1) experimental; urgency=low
+
+ * [43d3667] New Upstream version
+ * [ecc0342] drop support for python 2.4 - the code uses python 2.5
+ constructs
+ * [0b81a6b] update remove_ics.diff patch
+
+ -- Guido Guenther <agx@sigxcpu.org> Fri, 08 Aug 2008 14:46:19 +0200
+
+python-vobject (0.6.6-1) experimental; urgency=low
+
+ * Upload to experimental since it breaks calendarserver:
+ http://trac.calendarserver.org/ticket/287
+ * [bd308fb] new upstream version 0.6.6
+ * [59a6bae] refresh remove_ics_diff.patch
+ * [2a0a9d9] bump standards version to 3.8.0
+ * [096502c] debian/control: add Homepage:
+
+ -- Guido Guenther <agx@sigxcpu.org> Fri, 20 Jun 2008 09:37:02 +0200
+
+python-vobject (0.6.0-1) unstable; urgency=low
+
+ * New Upstream Version
+ * fix Python spelling
+ * fix PYTHONPATH for doctests
+ * lower setuptools version number since 0.6c8 isn't in Debian yet and
+ 0.6c7 is fine
+
+ -- Guido Guenther <agx@sigxcpu.org> Fri, 22 Feb 2008 09:43:55 +0100
+
+python-vobject (0.5.0-1) unstable; urgency=low
+
+ * New upstream version
+
+ -- Guido Guenther <agx@sigxcpu.org> Wed, 16 Jan 2008 11:45:55 +0100
+
+python-vobject (0.4.9-1) unstable; urgency=low
+
+ * New Upstream Version (Closes: #458188)
+ * update upstream URL
+ * add watch file
+ * add VCS-* fields
+ * bump standards version
+
+ -- Guido Guenther <agx@sigxcpu.org> Wed, 02 Jan 2008 10:59:16 +0100
+
+python-vobject (0.4.8-1) unstable; urgency=low
+
+ * New Upstream Version (Closes: #421894)
+ * remove_ics_diff.patch: don't install /usr/bin/ics_diff
+
+ -- Guido Guenther <agx@sigxcpu.org> Mon, 18 Jun 2007 18:30:30 +0200
+
+python-vobject (0.4.4-1.1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Remove quilt support as there is no patches dir (Closes: #393885).
+
+ -- Luk Claes <luk@debian.org> Thu, 26 Oct 2006 20:29:44 +0200
+
+python-vobject (0.4.4-1) unstable; urgency=low
+
+ * New Upstream Version
+ * includes all of our patches so we can drop debian/patches/*.patch
+ * good candidate for etch
+
+ -- Guido Guenther <agx@sigxcpu.org> Wed, 11 Oct 2006 09:05:51 +0200
+
+python-vobject (0.4.3-2) unstable; urgency=low
+
+ * depend on python-setuptools (Closes: #391881).
+
+ -- Guido Guenther <agx@sigxcpu.org> Mon, 9 Oct 2006 13:26:12 +0200
+
+python-vobject (0.4.3-1) unstable; urgency=low
+
+ * New Upstream (non SVN!) Version
+ * cdbs cleanups
+
+ -- Guido Guenther <agx@sigxcpu.org> Sat, 7 Oct 2006 00:50:15 +0200
+
+python-vobject (0.0.svn155-2) unstable; urgency=low
+
+ * build depend on python-dateutil so the testuite can run properly.
+ (Closes: #389385)
+
+ -- Guido Guenther <agx@sigxcpu.org> Mon, 25 Sep 2006 15:49:10 +0200
+
+python-vobject (0.0.svn155-1) unstable; urgency=low
+
+ * new upstream svn version
+ * update icalendar.patch and base.patch from revision 188 of:
+ http://trac.macosforge.org/projects/calendarserver/browser/CalendarServer/trunk/patches/vObject/base.patch
+ http://trac.macosforge.org/projects/calendarserver/browser/CalendarServer/trunk/patches/vObject/icalendar.patch
+ * call test during build
+ * add versione (>= 1.1) dependency for python-dateutil
+
+ -- Guido Guenther <agx@sigxcpu.org> Sat, 23 Sep 2006 23:57:41 +0200
+
+python-vobject (0.0.svn147-2) unstable; urgency=low
+
+ * set pyversions
+ * rm debian/dirs
+
+ -- Guido Guenther <agx@sigxcpu.org> Thu, 7 Sep 2006 16:23:55 +0200
+
+python-vobject (0.0.svn147-1) unstable; urgency=low
+
+ * Initial release (Closes: #386254)
+ * import icalendar.patch and base.patch:
+ http://trac.macosforge.org/projects/calendarserver/browser/CalendarServer/trunk/patches/vObject/base.patch
+ http://trac.macosforge.org/projects/calendarserver/browser/CalendarServer/trunk/patches/vObject/icalendar.patch
+
+ -- Guido Guenther <agx@sigxcpu.org> Wed, 6 Sep 2006 11:04:33 +0200
+
--- python-vobject-0.8.1c.orig/debian/pycompat
+++ python-vobject-0.8.1c/debian/pycompat
@@ -0,0 +1 @@
+2
--- python-vobject-0.8.1c.orig/debian/watch
+++ python-vobject-0.8.1c/debian/watch
@@ -0,0 +1,10 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# See uscan(1) for format
+
+# Compulsory line, this is a version 3 file
+version=3
+
+http://vobject.skyhouseconsulting.com/vobject-([\da-z\.]+)\.tar\.gz
+
--- python-vobject-0.8.1c.orig/debian/compat
+++ python-vobject-0.8.1c/debian/compat
@@ -0,0 +1 @@
+5
--- python-vobject-0.8.1c.orig/debian/pyversions
+++ python-vobject-0.8.1c/debian/pyversions
@@ -0,0 +1 @@
+2.5-
--- python-vobject-0.8.1c.orig/debian/rules
+++ python-vobject-0.8.1c/debian/rules
@@ -0,0 +1,17 @@
+#!/usr/bin/make -f
+
+DEB_PYTHON_SYSTEM = pysupport
+
+# Add here any variable or target overrides you need
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/python-distutils.mk
+include /usr/share/cdbs/1/rules/patchsys-quilt.mk
+
+DEB_PYTHON_CLEAN_ARGS = --all
+DEB_PYTHON_INSTALL_ARGS_ALL += --single-version-externally-managed
+
+ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
+build/python-vobject::
+ python test_vobject.py
+endif
+
--- python-vobject-0.8.1c.orig/debian/docs
+++ python-vobject-0.8.1c/debian/docs
@@ -0,0 +1,2 @@
+ACKNOWLEDGEMENTS.txt
+README.txt
--- python-vobject-0.8.1c.orig/debian/README.source
+++ python-vobject-0.8.1c/debian/README.source
@@ -0,0 +1,57 @@
+This package uses quilt to manage all modifications to the upstream
+source. Changes are stored in the source package as diffs in
+debian/patches and applied during the build.
+
+To configure quilt to use debian/patches instead of patches, you want
+either to export QUILT_PATCHES=debian/patches in your environment
+or use this snippet in your ~/.quiltrc:
+
+ for where in ./ ../ ../../ ../../../ ../../../../ ../../../../../; do
+ if [ -e ${where}debian/rules -a -d ${where}debian/patches ]; then
+ export QUILT_PATCHES=debian/patches
+ fi
+ done
+
+To get the fully patched source after unpacking the source package, cd to
+the root level of the source package and run:
+
+ quilt push -a
+
+The last patch listed in debian/patches/series will become the current
+patch.
+
+To add a new set of changes, first run quilt push -a, and then run:
+
+ quilt new <patch>
+
+where <patch> is a descriptive name for the patch, used as the filename in
+debian/patches. Then, for every file that will be modified by this patch,
+run:
+
+ quilt add <file>
+
+before editing those files. You must tell quilt with quilt add what files
+will be part of the patch before making changes or quilt will not work
+properly. After editing the files, run:
+
+ quilt refresh
+
+to save the results as a patch.
+
+Alternately, if you already have an external patch and you just want to
+add it to the build system, run quilt push -a and then:
+
+ quilt import -P <patch> /path/to/patch
+ quilt push -a
+
+(add -p 0 to quilt import if needed). <patch> as above is the filename to
+use in debian/patches. The last quilt push -a will apply the patch to
+make sure it works properly.
+
+To remove an existing patch from the list of patches that will be applied,
+run:
+
+ quilt delete <patch>
+
+You may need to run quilt pop -a to unapply patches first before running
+this command.
--- python-vobject-0.8.1c.orig/debian/patches/0002-Deepcopy-params.patch
+++ python-vobject-0.8.1c/debian/patches/0002-Deepcopy-params.patch
@@ -0,0 +1,54 @@
+From: Morgen Sagen <sagen@apple.com>
+Date: Mon, 4 Jan 2010 20:26:58 +0100
+Subject: Deepcopy params
+
+---
+ vobject/base.py | 14 +++++++++-----
+ 1 files changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/vobject/base.py b/vobject/base.py
+index b56c36a..40baf1e 100644
+--- a/vobject/base.py
++++ b/vobject/base.py
+@@ -284,6 +284,8 @@ class ContentLine(VBase):
+ self.value = copy.copy(copyit.value)
+ self.encoded = self.encoded
+ self.params = copy.copy(copyit.params)
++ for k,v in self.params.items():
++ self.params[k] = copy.copy(v)
+ self.singletonparams = copy.copy(copyit.singletonparams)
+ self.lineNumber = copyit.lineNumber
+
+@@ -627,16 +629,16 @@ class Component(VBase):
+ print
+
+ class VObjectError(Exception):
+- def __init__(self, message, lineNumber=None):
+- self.message = message
++ def __init__(self, msg, lineNumber=None):
++ self.msg = msg
+ if lineNumber is not None:
+ self.lineNumber = lineNumber
+ def __str__(self):
+ if hasattr(self, 'lineNumber'):
+ return "At line %s: %s" % \
+- (self.lineNumber, self.message)
++ (self.lineNumber, self.msg)
+ else:
+- return repr(self.message)
++ return repr(self.msg)
+
+ class ParseError(VObjectError):
+ pass
+@@ -953,7 +955,9 @@ def defaultSerialize(obj, buf, lineLength):
+ if obj.group is not None:
+ s.write(obj.group + '.')
+ s.write(obj.name.upper())
+- for key, paramvals in obj.params.iteritems():
++ keys = sorted(obj.params.iterkeys())
++ for key in keys:
++ paramvals = obj.params[key]
+ s.write(';' + key + '=' + ','.join(dquoteEscape(p) for p in paramvals))
+ s.write(':' + obj.value)
+ if obj.behavior and not startedEncoded: obj.behavior.decode(obj)
+--
--- python-vobject-0.8.1c.orig/debian/patches/0004-Normalise-year-info-to-be-within-Python-s-year-bound.patch
+++ python-vobject-0.8.1c/debian/patches/0004-Normalise-year-info-to-be-within-Python-s-year-bound.patch
@@ -0,0 +1,26 @@
+From: Dave Holland <dave@debian.org>
+Date: Wed, 1 Jun 2011 19:58:27 +0200
+Subject: Normalise year info to be within Python's year bounds.
+
+Closes: #574133
+---
+ vobject/icalendar.py | 5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/vobject/icalendar.py b/vobject/icalendar.py
+index b960deb..79ea7af 100644
+--- a/vobject/icalendar.py
++++ b/vobject/icalendar.py
+@@ -1617,6 +1617,11 @@ def stringToDateTime(s, tzinfo=None):
+ tzinfo = utc
+ except:
+ raise ParseError("'%s' is not a valid DATE-TIME" % s)
++ if year < datetime.MINYEAR:
++ year = datetime.MINYEAR
++ if year > datetime.MAXYEAR:
++ year = datetime.MAXYEAR
++
+ return datetime.datetime(year, month, day, hour, minute, second, 0, tzinfo)
+
+
+--
--- python-vobject-0.8.1c.orig/debian/patches/series
+++ python-vobject-0.8.1c/debian/patches/series
@@ -0,0 +1,4 @@
+0001-don-t-install-ics_diff.patch
+0002-Deepcopy-params.patch
+0003-Treat-untils-as-floating.patch
+0004-Normalise-year-info-to-be-within-Python-s-year-bound.patch
--- python-vobject-0.8.1c.orig/debian/patches/0001-don-t-install-ics_diff.patch
+++ python-vobject-0.8.1c/debian/patches/0001-don-t-install-ics_diff.patch
@@ -0,0 +1,22 @@
+From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
+Date: Fri, 17 Apr 2009 22:46:06 +0200
+Subject: don't install ics_diff
+
+---
+ setup.py | 2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index d5b59da..f8e9b09 100755
+--- a/setup.py
++++ b/setup.py
+@@ -54,8 +54,6 @@ setup(name = "vobject",
+ license = "Apache",
+ zip_safe = True,
+ url = "http://vobject.skyhouseconsulting.com",
+- entry_points = { 'console_scripts': ['ics_diff = vobject.ics_diff:main',
+- 'change_tz = vobject.change_tz:main']},
+ include_package_data = True,
+ test_suite = "test_vobject",
+
+--
--- python-vobject-0.8.1c.orig/debian/patches/0003-Treat-untils-as-floating.patch
+++ python-vobject-0.8.1c/debian/patches/0003-Treat-untils-as-floating.patch
@@ -0,0 +1,41 @@
+From: Morgen Sagen <sagen@apple.com>
+Date: Mon, 4 Jan 2010 20:27:01 +0100
+Subject: Treat untils as floating
+
+---
+ vobject/icalendar.py | 14 +++++++++++++-
+ 1 files changed, 13 insertions(+), 1 deletions(-)
+
+diff --git a/vobject/icalendar.py b/vobject/icalendar.py
+index 4a1da7c..b960deb 100644
+--- a/vobject/icalendar.py
++++ b/vobject/icalendar.py
+@@ -427,6 +427,18 @@ class RecurringComponent(Component):
+ if dtstart.tzinfo is not None:
+ until = until.astimezone(dtstart.tzinfo)
+
++ # RFC2445 actually states that UNTIL must be a UTC value. Whilst the
++ # changes above work OK, one problem case is if DTSTART is floating but
++ # UNTIL is properly specified as UTC (or with a TZID). In that case dateutil
++ # will fail datetime comparisons. There is no easy solution to this as
++ # there is no obvious timezone (at this point) to do proper floating time
++ # offset compisons. The best we can do is treat the UNTIL value as floating.
++ # This could mean incorrect determination of the last instance. The better
++ # solution here is to encourage clients to use COUNT rather than UNTIL
++ # when DTSTART is floating.
++ if dtstart.tzinfo is None:
++ until = until.replace(tzinfo=None)
++
+ rule._until = until
+
+ # add the rrule or exrule to the rruleset
+@@ -473,7 +485,7 @@ class RecurringComponent(Component):
+ untilSerialize = lambda x: dateTimeToString(x, True)
+
+ for name in DATESANDRULES:
+- if hasattr(self.contents, name):
++ if name in self.contents:
+ del self.contents[name]
+ setlist = getattr(rruleset, '_' + name)
+ if name in DATENAMES:
+--