Package: release.debian.org Severity: normal User: release.debian....@packages.debian.org Usertags: unblock
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Please unblock package khal Previous fix for bug#908497 (FTBFS with python-dateutil 2.7.3-1) was incomplete and hid the real underlying problem. Release 1:0.9.10-1.1 replaces the patch introduced in 1:0.9.10-0.1 with the corresponding patch cherry-picked upstream. unblock khal/1:0.9.10-1.1 -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEn+Ppw2aRpp/1PMaELHwxRsGgASEFAly8D/wACgkQLHwxRsGg ASF8IRAAjOZxfUyRsypsRARlnht7k3Tw9/ZSzWCI4Ml4v0azph9C52vi0nfL7cBN hAZ8wSj4uumTLITYRyt2l38U17nlfvwrWt4D9Pv0AHWGZVBRGdsGjiSS03UIm9QX an+rjx5GhL+r1/mFhgHgC0Pb+fvotV7pMZ89rSxy3g1gv1Xt6Cxcm9zW2ME+ZjOT uofAhDB4nl5EbTOxXCEw/q+kgATgmS1CNeErWdj7iu86oKTDVfcYpW2nb0ldM2TL Iw9aDDgJey+cvpCeGad/lxsOZTBfNU/Nn1SgkIXWHWcb5FcuLlXlSsvBLlcxl0h3 g6RPtp9aT1a1nAkiKIfjCr7r4WoDRsrsBweeiFIgVAuxADjnnKzfRaLMcjralEzA NQgGVsxueJnj8NoMd1lYJwqALaeT5uaDVi8BXUAnBYpC/zqmh89Qx0bhQiS4Miic ID4FUNel48X1W7i/UZ1aNJcaf/LrfMaQlImp7Ns4MCdpy20jwwSSt7m4vFpsjUbj Hz6DFf7Ffx6njRhJ2wPtDoEZL1kp+6wrNOIYgctlu8ZzG1M73a3jfTB/pAciPWxu 5quR1cInyFuEQ15pe0Yk5P7jnokadIDebvcRlasUSu8bMLNQOCdQIOBi23EspFLk IL4v2nQiuJZShHO1OGiczJc4Og6d1O12cNUT8nTFFVVpc4H+0AE= =qK2A -----END PGP SIGNATURE-----
diff --git a/debian/changelog b/debian/changelog index 292fbb6..3100246 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,12 @@ +khal (1:0.9.10-1.1) unstable; urgency=medium + + * Non-maintainer upload. + * Add patch cherry-picked upstream to fix parse categories as list, + superseding patch 0008 only fixing testsuite. + Tighten build-dependency on python3-icalendar. + + -- Jonas Smedegaard <d...@jones.dk> Tue, 26 Mar 2019 09:56:46 +0100 + khal (1:0.9.10-1) unstable; urgency=medium [ Ondřej Nový ] diff --git a/debian/control b/debian/control index 254176e..d0501fc 100644 --- a/debian/control +++ b/debian/control @@ -15,7 +15,7 @@ Build-Depends: debhelper (>= 12), python3-dateutil, python3-doc, python3-freezegun, - python3-icalendar, + python3-icalendar (>= 4.0.3), python3-pytest, python3-setuptools, python3-setuptools-scm, diff --git a/debian/patches/0000-20190325~c58fb88-fix-parse-categories-as-list.patch b/debian/patches/0000-20190325~c58fb88-fix-parse-categories-as-list.patch new file mode 100644 index 0000000..1d69783 --- /dev/null +++ b/debian/patches/0000-20190325~c58fb88-fix-parse-categories-as-list.patch @@ -0,0 +1,121 @@ +Description: fix pass categories as list + Support (only) icalendar >= 4.0.3 + . + With icalendar 4.0.3 the CATEGORIES Property became a list + as mandated by the RFC. +Author: Christian Geier <ge...@lostpackets.de> +Bug: https://github.com/pimutils/khal/issues/825 +Last-Update: 2019-03-26 +--- +This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ +--- a/khal/cli.py ++++ b/khal/cli.py +@@ -335,7 +335,7 @@ + @click.option('--location', '-l', + help=('The location of the new event.')) + @click.option('--categories', '-g', +- help=('The categories of the new event.')) ++ help=('The categories of the new event, comma separated.')) + @click.option('--repeat', '-r', + help=('Repeat event: daily, weekly, monthly or yearly.')) + @click.option('--until', '-u', +--- a/khal/controllers.py ++++ b/khal/controllers.py +@@ -349,6 +349,8 @@ + categories=None, repeat=None, until=None, alarms=None, + timezone=None, format=None, env=None): + """Create a new event from arguments and add to vdirs""" ++ if isinstance(categories, str): ++ categories = list([category.strip() for category in categories.split(',')]) + try: + event = utils.new_event( + locale=conf['locale'], location=location, categories=categories, +@@ -489,7 +491,10 @@ + value = prompt(question, default) + if allow_none and value == "None": + value = "" +- getattr(event, "update_" + attr)(value) ++ if attr == 'categories': ++ getattr(event, "update_" + attr)(list([cat.strip() for cat in value.split(',')])) ++ else: ++ getattr(event, "update_" + attr)(value) + edited = True + + if edited: +--- a/khal/khalendar/event.py ++++ b/khal/khalendar/event.py +@@ -409,13 +409,16 @@ + + @property + def categories(self): +- return self._vevents[self.ref].get('CATEGORIES', '') ++ try: ++ return self._vevents[self.ref].get('CATEGORIES', '').to_ical().decode('utf-8') ++ except AttributeError: ++ return '' + + def update_categories(self, categories): +- if categories.strip(): +- self._vevents[self.ref]['CATEGORIES'] = categories +- else: +- self._vevents[self.ref].pop('CATEGORIES', False) ++ assert isinstance(categories, list) ++ self._vevents[self.ref].pop('CATEGORIES', False) ++ if categories: ++ self._vevents[self.ref].add('CATEGORIES', categories) + + @property + def description(self): +--- a/khal/ui/editor.py ++++ b/khal/ui/editor.py +@@ -414,7 +414,7 @@ + self.event.update_summary(self.summary.get_edit_text()) + self.event.update_description(self.description.get_edit_text()) + self.event.update_location(self.location.get_edit_text()) +- self.event.update_categories(self.categories.get_edit_text()) ++ self.event.update_categories(self.categories.get_edit_text().split(',')) + + if self.startendeditor.changed: + self.event.update_start_end( +--- a/setup.py ++++ b/setup.py +@@ -11,7 +11,7 @@ + + requirements = [ + 'click>=3.2', +- 'icalendar', ++ 'icalendar>=4.0.3', + 'urwid', + 'pyxdg', + 'pytz', +--- a/tests/event_test.py ++++ b/tests/event_test.py +@@ -55,7 +55,7 @@ + event.update_summary('A not so simple Event') + event.update_description('Everything has changed') + event.update_location('anywhere') +- event.update_categories('meeting') ++ event.update_categories(['meeting']) + assert normalize_component(event.raw) == normalize_component(event_updated.raw) + + +@@ -95,7 +95,7 @@ + def test_update_remove_categories(): + event = Event.fromString(_get_text('event_dt_simple_updated'), **EVENT_KWARGS) + event_nocat = Event.fromString(_get_text('event_dt_simple_nocat'), **EVENT_KWARGS) +- event.update_categories(' ') ++ event.update_categories([]) + assert normalize_component(event.raw) == normalize_component(event_nocat.raw) + + +--- a/tests/utils_test.py ++++ b/tests/utils_test.py +@@ -564,7 +564,7 @@ + event = _construct_event(data_list.split(), + description='please describe the event', + location='in the office', +- categories='boring meeting', ++ categories=['boring meeting'], + locale=LOCALE_BERLIN) + assert _replace_uid(event).to_ical() == vevent + diff --git a/debian/patches/0008_pass-categories-as-list.patch b/debian/patches/0008_pass-categories-as-list.patch deleted file mode 100644 index 7df0de2..0000000 --- a/debian/patches/0008_pass-categories-as-list.patch +++ /dev/null @@ -1,17 +0,0 @@ -Description: fix pass categories as list in test -Author: Jonas Smedegaard <d...@jones.dk> -Bug: https://github.com/pimutils/khal/issues/825 -Last-Update: 2018-12-13 ---- -This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ ---- a/tests/utils_test.py -+++ b/tests/utils_test.py -@@ -564,7 +564,7 @@ - event = _construct_event(data_list.split(), - description='please describe the event', - location='in the office', -- categories='boring meeting', -+ categories=['boring meeting'], - locale=LOCALE_BERLIN) - assert _replace_uid(event).to_ical() == vevent - diff --git a/debian/patches/series b/debian/patches/series index b4fea8b..83cb8b4 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,7 +1,7 @@ +0000-20190325~c58fb88-fix-parse-categories-as-list.patch 0001-No-RSS-news-in-docs.patch 0003-Fix-intersphinx-mapping.patch 0004-Fix-tests-failing-due-to-timezone.patch 0005-Avoid-privacy-breach-in-sphinx-doc.patch 0006-Timezone-tests-may-fail-due-to-older-pytz-with-newer.patch 0007-Workaround-test-of-stdin-input.patch -0008_pass-categories-as-list.patch