debian/0000755000000000000000000000000012316762256007200 5ustar debian/copyright0000644000000000000000000004445612303423467011142 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: taskcoach Upstream-Contact: Task Coach developers Source: http://www.taskcoach.org Upstream provides many tarballs. We use the "raw source tar archive". Please see debian/watch for details. . These files are removed from the upstream archive (by running debian/dfsg_cleaner): . * build.in/portableapps: Contains a GPL-2 copy, but some files mention the BSD license. Windows binary: TaskCoachPortable.exe. See http://portableapps.com/. . * build.in/winpenpack: Non DFSG license (winPenPack License Agreement v1.0) Windows binary: X-TaskCoach.exe. See http://www.winpenpack.com/en/news.php. . * dist.in: Windows binaries: *.dll (Visual 9 runtime). . * extension/macos: Mac binaries: *.so (convenience for developers without xcode). . * i18n.in/messages.pot: Generated during compilation, mentioning the build date. Upstream insists on keeping it for Launchpad integration. . * taskcoachlib/bin.in: Mac and Windows binaries: *.so *.pyd (python dynamic library). Upstream intends to drop pysyncml dependency for license reasons anyways. . * tests/disttests/win32/sendinput/sendinput.pyd: Windows binary (python dynamic library). . * tools/webchecker.py: No license, but a copyright claimer. Obsolete, once used by upstream to check website availability. . * website.in: Part only used to rebuild the upstream website. website.in/css/jquery.lightbox-0.5.css and website.in/js/jquery.lightbox-0.5.min.css have a suspicious license (CCAttribution-ShareAlike 2.5 Brazil http://creativecommons.org/licenses/by-sa/2.5/br/deed.en_US). . Although compatible with DFSG, these thirdparty tarballs can be replaced with .deb dependencies and are removed to gain space: taskcoachlib/thirdparty/combotreebox.py thirdparty/SquareMap-*.tar.gz thirdparty/aui-*.tar.gz thirdparty/chardet-*.tar.gz thirdparty/keyring-*.tar.gz thirdparty/pyparsing-*.tar.gz thirdparty/python-dateutil-*.tar.gz thirdparty/pyxdg-*.tar.gz Files: * Copyright: 2004-2013 Task Coach developers 2013 Ivan Romanov 2012-2013 Aaron Wolf 2005-2013 Jérôme Laheurte 2004-2013 Frank Niessink 2012 Nicola Chiapolini 2011 David Harks 2010 Svetoslav Trochev 2009 George Weeks 2008 Rob McMullen 2008 Carl Zmola 2008 Thomas Sonne Olesen 2008 João Alexandre de Toledo 2008 Marcin Zajaczkowski 2011 Tobias Gradl 2005-2013 Rosetta Contributors and Canonical Ltd License: GPL-3+ Files: debian/* Copyright: 2009 Alejandro Garrido Mota 2012-2013 Nicolas Boulenguez License: GPL-3+ Files: icons.in/nuvola.zip Copyright: 2003-2013 David Vignoni (david@icon-king.com) License: LGPL-2.1 Comment: No explicit version, last update 1.3.29 -> 1.3.31. Files: taskcoachlib/thirdparty/_weakrefset.py Copyright: 2013-2013 Task Coach developers License: GPL-3+ Comment: This code is separated-out because it is needed by abc.py to load everything else at startup. Files: taskcoachlib/thirdparty/deltaTime.py Copyright: 2000-2012 Paul McGuire License: MIT Comment: The license is not explicit, but the file is very similar to an example provided with python-pyparsing by the same author, so we can assume the same license. Files: taskcoachlib/thirdparty/guid.py Copyright: 2006-2012 Conan C. Albrecht License: MIT Comment: See taskcoachlib/thirdparty/README.txt. Files: taskcoachlib/thirdparty/smartdatetimectrl.py Copyright: 2012-2012 Jerome Laheurte 2012-2012 Frank Niessink License: GPL-3+ Comment: See taskcoachlib/thirdparty/README.txt. Files: taskcoachlib/thirdparty/snarl.py Copyright: 2012-2012 Alexander Lash License: GPL-2 Comment: Quoting the author in a mail exchange (end 2011): It would be my pleasure to re-release this code under an explicit license. Would the GPLv2 be acceptable? If so, please consider this e-mail a licensing of the code under the GPLv2. I'll publish an updated version of snarl.py with license included on my github. Very excited about inclusion. :) Files: timeline/* Copyright: 2009-2009 Frank Niessink Mike C. Fletcher License: MIT Files: thirdparty/agw-* Copyright: 2000-2012 Andrea Gavana License: wxwindows Comment: Provided by python-wxgtk2.8, but taskcoach copies the sources because it insists on patching customtreectrl.py and hypertreelist.py (see Makefile). . customtreectrl: patch for 1.3, wxgtk 2.8.12.1 provides 1.2. . hypertreelist: patch for 2.6, wxgtk 2.8.12.1 provides 2.4. Files: thirdparty/wxScheduler-* Copyright: 2009-2013 Esposti Daniele: expo --at-- expobrain -dot- net 2009-2013 Michele Petrazzo: michele -dot- petrazzo --at-- unipex -dot- it 2009-2013 Jérôme Laheurte: fraca7 --at-- free -dot- fr License: wxwindows See readme.txt in thirdparty/wxScheduler-r150.tar.gz, and http://www.wxwidgets.org/about/newlicen.htm. Files: thirdparty/desktop-* Copyright: 2005-2012 Paul Boddie 2012 Jérôme Laheurte License: LGPL-3+ Comment: See thirdparty/README.txt. Files: thirdparty/gntp-* Copyright: 2011-2011 Paul Traylor License: MIT Files: thirdparty/lockfile-* Copyright: 2007-2007 Skip Montanaro License: MIT Comment: Taskcoach uses the version available in Debian (0.8), but patches it. . For a single file, there is not much to do to avoid redundancy. Files: thirdparty/pybonjour-* Copyright: 2007-2008 Christopher J. Stawarz License: MIT Files: thirdparty/PyPubSub-* Copyright: 2006-2012 Oliver Schoenborn License: BSD Comment: See taskcoachlib/thirdparty/README.txt. Debian packages revision 249 (in wxgtk 2.8.12.1), taskcoach embeds version 3.3.0 and does patch it. Moreover, the API has changed, so we extract the taskcoach version. . It may be tempting to use dh_linktree and at least avoid redundancy for identical files, but each file has changed (copyright notices) and this would generate a binary Depends with the exact version. Files: thirdparty/python-ntlm-* Copyright: 2001-2011 Ben Dyer 2001-2011 Dmitry A. Rozmanov 2001-2011 Matthijs Mullender License: LGPL-3+ Comment: Debian packages 1.0.1, missing IMAP support. . See thirdparty/README.txt. Files: thirdparty/WMI-* Copyright: 2003-2003 Tim Golden License: MIT Files: thirdparty/wxScheduler-* Copyright: 2010-2012 Esposti Daniele: expo --at-- expobrain -dot- net 2010-2012 Michele Petrazzo: michele -dot- petrazzo --at-- unipex -dot- it 2010-2012 Jérôme Laheurte: fraca7 --at-- free -dot- fr License: wxwindows Files: tools/img2img.py tools/img2py.py Copyright: 2002 Total Control Software 2002 Cliff Wells 2003 Jeff Grimmett (grimmtooth@softhome.net) 2007 Gianluca Costa (archimede86@katamail.com) 2007 Anthony Tuininga (anthony.tuininga@gmail.com) License: wxwindows Files: tools/pygettext.py Copyright: 1990-2002 Barry Warsaw 1990-2002 Peter Funk 2002-2002 Jürgen Hermann License: PSF-2.7.2 TODO: belongs to python debian package. License: GPL-2 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation version 2. . This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program. If not, see . . On Debian systems, the complete text of the GNU General Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". License: GPL-3+ This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. . This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with this program. If not, see . . On Debian systems, the complete text of the GNU General Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". License: LGPL-2.1 This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, version 2.1 of the License. . This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. . You should have received a copy of the GNU Lesser General Public License along with this library. If not, see . . On Debian systems, the complete text of the GNU Lesser General Public License version 2.1 can be found in "/usr/share/common-licenses/LGPL-2.1". License: LGPL-3+ This package is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. . This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. . You should have received a copy of the GNU Lesser General Public License along with this program. If not, see . . On Debian systems, the complete text of the GNU Lesser General Public License version 3 can be found in "/usr/share/common-licenses/LGPL-3". License: MIT Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. License: wxwindows wxWindows Library Licence, Version 3.1 ====================================== . Copyright (C) 1998-2005 Julian Smart, Robert Roebling et al . Everyone is permitted to copy and distribute verbatim copies of this licence document, but changing it is not allowed. . WXWINDOWS LIBRARY LICENCE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION . This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public Licence as published by the Free Software Foundation; either version 2 of the Licence, or (at your option) any later version. . This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public Licence for more details. . You should have received a copy of the GNU Library General Public Licence along with this software, usually in a file named COPYING.LIB. If not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. . EXCEPTION NOTICE . 1. As a special exception, the copyright holders of this library give permission for additional uses of the text contained in this release of the library as licenced under the wxWindows Library Licence, applying either version 3.1 of the Licence, or (at your option) any later version of the Licence as published by the copyright holders of version 3.1 of the Licence document. . 2. The exception is that you may use, copy, link, modify and distribute under your own terms, binary object code versions of works based on the Library. . 3. If you copy code from files distributed under the terms of the GNU General Public Licence or the GNU Library General Public Licence into a copy of this library, as this licence permits, the exception does not apply to the code that you add in this way. To avoid misleading anyone as to the status of such modified files, you must delete this exception notice from such code and/or adjust the licensing conditions notice accordingly. . 4. If you write modifications of your own for this library, it is your choice whether to permit this exception to apply to your modifications. If you do not wish that, you must delete the exception notice from such code and/or adjust the licensing conditions notice accordingly. License: PSF-2.7.2 PSF LICENSE AGREEMENT FOR PYTHON 2.7.2 . This LICENSE AGREEMENT is between the Python Software Foundation (“PSF”), and the Individual or Organization (“Licensee”) accessing and otherwise using Python 2.7.2 software in source or binary form and its associated documentation. . Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 2.7.2 alone or in any derivative version, provided, however, that PSF’s License Agreement and PSF’s notice of copyright, i.e., “Copyright © 2001-2012 Python Software Foundation; All Rights Reserved” are retained in Python 2.7.2 alone or in any derivative version prepared by Licensee. . In the event Licensee prepares a derivative work that is based on or incorporates Python 2.7.2 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python 2.7.2. . PSF is making Python 2.7.2 available to Licensee on an “AS IS” basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 2.7.2 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. . PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON 2.7.2 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 2.7.2, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. . This License Agreement will automatically terminate upon a material breach of its terms and conditions. . Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. . By copying, installing or otherwise using Python 2.7.2, Licensee agrees to be bound by the terms and conditions of this License Agreement. License: BSD Copyright (c) The Regents of the University of California. 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. Neither the name of the University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. . THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS 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 REGENTS OR 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. debian/taskcoach.menu0000644000000000000000000000026712303421235012014 0ustar ?package(taskcoach): \ needs="X11" \ section="Applications/Project Management" \ title="Task Coach" \ command="/usr/bin/taskcoach" \ icon="/usr/share/pixmaps/taskcoach.xpm" debian/changelog0000644000000000000000000000521712316762210011045 0ustar taskcoach (1.3.36-1ubuntu3) trusty; urgency=medium * Let the autopkg test depend on language-pack-en too. -- Matthias Klose Wed, 02 Apr 2014 10:29:48 +0200 taskcoach (1.3.36-1ubuntu1) trusty; urgency=medium * Build-depend on language-pack-en. -- Matthias Klose Wed, 02 Apr 2014 08:40:50 +0100 taskcoach (1.3.36-1) unstable; urgency=medium * New upstream release. Closes: #738435. No need for apscheduler/dh_linktree anymore. * Run all upstream unit tests. patches/disable_loadtest.diff: removes a crashing integration test. * Compress DFSG tarball with xz instead of bz2. -- Nicolas Boulenguez Tue, 04 Mar 2014 14:00:53 +0100 taskcoach (1.3.35-1) unstable; urgency=medium * New upstream release. Rebuild closes: #737604. * Exclude unused thirdparties from repackaged upstream. * Run upstream integration tests, both in rules and tests/control. Many Build-Depends added by the tests. -- Nicolas Boulenguez Tue, 04 Feb 2014 22:18:31 +0100 taskcoach (1.3.34-1) unstable; urgency=low * New upstream release. * copyright, dfsg_cleaner: update format URL, gather documentation. -- Nicolas Boulenguez Sun, 01 Dec 2013 10:56:31 +0100 taskcoach (1.3.33-1) unstable; urgency=low * New upstream release. * Standards-Version: 3.9.5 without changes. -- Nicolas Boulenguez Wed, 06 Nov 2013 02:07:58 +0100 taskcoach (1.3.32-2) unstable; urgency=low * patches/replace_thirdparty..: absolute import instead of hard-coded path. Correct import of combotreebox in entry.py. Bug reported upstream at http://sourceforge.net/p/taskcoach/bugs/1462/. -- Nicolas Boulenguez Sun, 13 Oct 2013 15:27:58 +0200 taskcoach (1.3.32-1) unstable; urgency=low * New upstream release. * Replace dh_linktree with a patch importing packaged python modules, when possible. Depends are less strict about versions. Closes: #721851. Links are kept for pubsub and apscheduler. * control: adapt X-Python-Version to Build-Depends. -- Nicolas Boulenguez Sat, 07 Sep 2013 14:17:52 +0200 taskcoach (1.3.31-1) unstable; urgency=low * New upstream release. Rebuild Closes: #719204. * control: Suggest python-kde4. Less strict dependencies: python >= 2.7 -> 2.6, libavahi-compat-libdnssdl Depends -> Recommends. * copyright: dates, comments. -- Nicolas Boulenguez Fri, 09 Aug 2013 17:35:26 +0200 taskcoach (1.3.29-1) unstable; urgency=low * Initial release (Closes: #509768). -- Nicolas Boulenguez Tue, 08 Jan 2013 20:01:56 +0100 debian/TODO0000644000000000000000000000105112303427563007660 0ustar Some tools in thirdparty/ desserve their own package. For example, guid.py is embedded in many python packages. Once locale problems are set, activate unit tests in debian/tests. Huge space gain, for a frequently updated package like this one. Build-Depend on nuvola-icon-theme instead of embedding nuvola.zip. Modify copyright and dfsg_clean accordingly. Wait for the nuvola-icon-theme maintainers to explain why the content differs so much from nuvola.zip with the same readme.txt. Check https://lists.debian.org/debian-qt-kde/2014/02/msg00072.html debian/dfsg_cleaner0000755000000000000000000000146012303421235011524 0ustar #!/bin/sh set -C -e -f -u -v # debian/dfsg_cleaner: remove parts of pristine upstream tarball not # embedded in the DFSG tarball. This script is used when merging a new # upstream version into the dfsg_clean git branch. # See debian/copyright for the motivation of these removals. git rm --force -r --ignore-unmatch -- \ build.in/portableapps \ build.in/winpenpack \ dist.in \ extension/macos \ i18n.in/messages.pot \ taskcoachlib/bin.in \ taskcoachlib/thirdparty/combotreebox.py \ tests/disttests/win32/sendinput/sendinput.pyd \ thirdparty/SquareMap-*.tar.gz \ thirdparty/aui-*.tar.gz \ thirdparty/chardet-*.tar.gz \ thirdparty/keyring-*.tar.gz \ thirdparty/pyparsing-*.tar.gz \ thirdparty/python-dateutil-*.tar.gz \ thirdparty/pyxdg-*.tar.gz \ tools/webchecker.py \ website.in debian/compat0000644000000000000000000000000212303421235010357 0ustar 9 debian/taskcoach.10000644000000000000000000000277012303421235011211 0ustar .\" Hey, EMACS: -*- nroff -*- .\" First parameter, NAME, should be all caps .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection .\" other parameters are allowed: see man(7), man(1) .TH TASKCOACH 1 "December 25, 2008" .SH NAME taskcoach \- A friendly and simple task manager .SH SYNOPSIS .B taskcoach .RI [ options ] .br .SH DESCRIPTION .PP \fBtaskcoach\fP Task Coach is a simple open source todo manager to manage personal tasks and todo lists. It grew out of a frustration that well-known task managers, such as those provided with Outlook or Lotus Notes, do not provide facilities for composite tasks .SH OPTIONS The application follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included below. .TP .B \-h, \-\-help Show summary of options. .TP .B \-v, \-\-version Show version of program. .TP .B \-i INIFILE, \-\-ini=INIFILE use the specified INIFILE for storing settings .TP .B \-l LANGUAGE, \-\-language=LANGUAGE use the specified LANGUAGE for the GUI (e.g. "nl" or "fr") .TP .B \-p POFILE, \-\-po=POFILE use the specified POFILE for translation of the GUI .SH SEE ALSO The official web page (http://taskcoach.org) contains an experimental documentation in wiki format. .SH AUTHOR taskcoach was written by Frank Niessink and Jerome Laheurte . .PP This manual page was written by Alejandro Garrido Mota , for the Debian project (and may be used by others). debian/taskcoach.manpages0000644000000000000000000000002312303421235012631 0ustar debian/taskcoach.1 debian/patches/0000755000000000000000000000000012305373473010624 5ustar debian/patches/do_not_install_buildlib.diff0000644000000000000000000000111712303421235016320 0ustar Description: avoid embedding buildlib packages Upstream (Jérôme Laheurte) is working on this since 1.3.8, but this change has non trivial effects on some architectures. Author: Nicolas Boulenguez --- a/setup.py +++ b/setup.py @@ -57,7 +57,7 @@ 'url': meta.url, 'license': meta.license, 'download_url': meta.download, - 'packages': findPackages('taskcoachlib') + findPackages('buildlib'), + 'packages': findPackages('taskcoachlib'), 'scripts': ['taskcoach.py'], 'classifiers': [\ 'Development Status :: 5 - Production/Stable', debian/patches/accept_older_aui.diff0000644000000000000000000000166512303421235014734 0ustar Description: make taskcoachlib compatible with older aui versions Taskcoach embeds the latest available aui version, but in Debian we want to use the maybe older installed aui from python-wxgtk. . The profile of the AddTool procedure has been added a parameter, but the default value is None so the code below has the same effect with both versions. Forwarded: not-needed Author: Nicolas Boulenguez --- a/taskcoachlib/gui/toolbar.py +++ b/taskcoachlib/gui/toolbar.py @@ -31,7 +31,7 @@ short_help_string = kwargs.pop('shortHelp', '') bitmap2 = self.MakeDisabledBitmap(bitmap1) super(_Toolbar, self).AddTool(id, label, bitmap1, bitmap2, kind, - short_help_string, long_help_string, None, None) + short_help_string, long_help_string, None) def GetToolState(self, toolid): return self.GetToolToggled(toolid) debian/patches/replace_thirdparty_with_deb_packages.diff0000644000000000000000000002147712305361267021057 0ustar Description: Import installed dependencies instead of thirdparty/. Upstream embeds many external libraries to avoid asking the user to download many small packages, and to ensure version compatibilities. . For the usual reasons, we try to avoid code redundancy, and prefer Depends and use available python packages. . Packages: chardet, dateutil, keyring, pyparsing, squaremap, xdg. From wxgtk: aui, combotreebox. . For pyparsing, the import clause in deltaTime.py specifies no path, causing python to use the extracted source found in the current directory. We do not extract and let python search in installed directories. Author: Nicolas Boulenguez Forwarded: not-needed --- a/taskcoachlib/config/settings.py +++ b/taskcoachlib/config/settings.py @@ -316,7 +316,7 @@ def pathToConfigDir(self, environ): try: if operating_system.isGTK(): - from taskcoachlib.thirdparty.xdg import BaseDirectory + from xdg import BaseDirectory path = BaseDirectory.save_config_path(meta.name) elif operating_system.isMac(): import Carbon.Folder, Carbon.Folders, Carbon.File @@ -335,7 +335,7 @@ def _pathToDataDir(self, *args, **kwargs): forceGlobal = kwargs.pop('forceGlobal', False) if operating_system.isGTK(): - from taskcoachlib.thirdparty.xdg import BaseDirectory + from xdg import BaseDirectory path = BaseDirectory.save_data_path(meta.name) elif operating_system.isMac(): import Carbon.Folder, Carbon.Folders, Carbon.File --- a/taskcoachlib/persistence/csv/reader.py +++ b/taskcoachlib/persistence/csv/reader.py @@ -20,7 +20,7 @@ from taskcoachlib.domain.date import DateTime, TimeDelta from taskcoachlib.domain.task import Task from taskcoachlib.i18n import _ -from taskcoachlib.thirdparty.dateutil import parser as dparser +from dateutil import parser as dparser import csv import tempfile import StringIO --- a/taskcoachlib/widgets/password.py +++ b/taskcoachlib/widgets/password.py @@ -31,7 +31,7 @@ hsz = wx.BoxSizer(wx.HORIZONTAL) hsz.Add(wx.StaticText(pnl, wx.ID_ANY, _('Password:')), 0, wx.ALL, 3) - from taskcoachlib.thirdparty.keyring import get_password + from keyring import get_password password = get_password(self.domain, self.username) self.password = (password or '').decode('UTF-8') self.passwordField = wx.TextCtrl(pnl, wx.ID_ANY, self.password, style=wx.TE_PASSWORD) @@ -65,7 +65,7 @@ def OnOK(self, event): self.password = self.passwordField.GetValue() - from taskcoachlib.thirdparty.keyring import set_password + from keyring import set_password if self.keepInKeychain.GetValue(): set_password(self.domain, self.username, self.password.encode('UTF-8')) else: @@ -82,7 +82,7 @@ global _PASSWORDCACHE try: - from taskcoachlib.thirdparty.keyring import set_password, get_password + from keyring import set_password, get_password except: # Keychain unavailable. if _PASSWORDCACHE is None: --- a/taskcoachlib/gui/wizard/csvimport.py +++ b/taskcoachlib/gui/wizard/csvimport.py @@ -19,7 +19,7 @@ from taskcoachlib import meta from taskcoachlib.i18n import _ -from taskcoachlib.thirdparty import chardet +import chardet import wx import csv import tempfile --- a/taskcoachlib/mailer/__init__.py +++ b/taskcoachlib/mailer/__init__.py @@ -17,7 +17,8 @@ ''' import wx, os, re, tempfile, urllib, email, email.header -from taskcoachlib.thirdparty import desktop, chardet +from taskcoachlib.thirdparty import desktop +import chardet from taskcoachlib.mailer.macmail import getSubjectOfMail from taskcoachlib.i18n import _ from taskcoachlib import operating_system --- a/taskcoachlib/widgets/squaremap.py +++ b/taskcoachlib/widgets/squaremap.py @@ -16,9 +16,14 @@ along with this program. If not, see . ''' +# The installed module in system default directory has the same name +# than this file in the current directory. +# Absolute imports avoid confusion. +from __future__ import absolute_import + import wx, operator -from taskcoachlib.thirdparty.squaremap import squaremap -import tooltip +from squaremap import squaremap +from . import tooltip class SquareMap(tooltip.ToolTipMixin, squaremap.SquareMap): --- a/taskcoachlib/gui/dialog/entry.py +++ b/taskcoachlib/gui/dialog/entry.py @@ -22,7 +22,7 @@ from taskcoachlib.domain import date from taskcoachlib.gui import artprovider from taskcoachlib.i18n import _ -from taskcoachlib.thirdparty import combotreebox +from wx.lib import combotreebox import datetime from wx.lib import newevent import wx --- a/Makefile +++ b/Makefile @@ -191,24 +191,16 @@ templates: taskcoachlib/persistence/xml/templates.py thirdpartymodules: - cd thirdparty; tar xzf chardet-2.1.1.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty chardet-2.1.1/chardet - cd thirdparty; tar xzf python-dateutil-1.5.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty python-dateutil-1.5/dateutil cd thirdparty; tar xzf desktop-0.4.1.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty desktop-0.4.1/desktop - cd thirdparty; tar xzf keyring-3.3.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty keyring-3.3/keyring cd thirdparty; tar xzf lockfile-0.8.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty lockfile-0.8/lockfile.py cd thirdparty; tar xzf PyPubSub-3.3.0.tar.gz --strip-components=2 -C ../taskcoachlib/thirdparty PyPubSub-3.3.0/src/pubsub - cd thirdparty; tar xzf SquareMap-1.0.3.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty SquareMap-1.0.3/squaremap cd thirdparty; tar xzf python-ntlm-40080cff37ab32570f9bb50bad0a46b957409c18.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty python-ntlm/ntlm cd thirdparty; tar xzf wxScheduler-r150.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty wxScheduler/wxScheduler - cd thirdparty; tar xzf aui-r72315.tar.gz -C ../taskcoachlib/thirdparty cd thirdparty; tar xzf WMI-1.4.9.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty WMI-1.4.9/wmi.py - cd thirdparty; tar xzf pyparsing-1.5.5.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty pyparsing-1.5.5/pyparsing_py2.py - mv taskcoachlib/thirdparty/pyparsing_py2.py taskcoachlib/thirdparty/pyparsing.py cd thirdparty; tar xzf pybonjour-1.1.1.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty pybonjour-1.1.1/pybonjour.py cd thirdparty; tar xzf agw-r70845.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty agw/customtreectrl.py cd thirdparty; tar xzf agw-r70819.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty agw/hypertreelist.py cd thirdparty; tar xzf gntp-d639fa2e981fe41196a5115ad64320b5061f004b.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty gntp/gntp - cd thirdparty; tar xzf pyxdg-0.25.tar.gz --strip-components=1 -C ../taskcoachlib/thirdparty pyxdg-0.25/xdg cd taskcoachlib/thirdparty; patch -p1 < ../../thirdparty/patches/lockfile.diff cd taskcoachlib/thirdparty; patch -p1 < ../../thirdparty/patches/customtreectrl.diff cd taskcoachlib/thirdparty; patch -p1 < ../../thirdparty/patches/hypertreelist-headers.diff --- a/taskcoachlib/gui/mainwindow.py +++ b/taskcoachlib/gui/mainwindow.py @@ -31,7 +31,7 @@ from taskcoachlib.powermgt import PowerStateMixin from taskcoachlib.help.balloontips import BalloonTipManager from taskcoachlib.thirdparty.pubsub import pub -import taskcoachlib.thirdparty.aui as aui +import wx.lib.agw.aui as aui import wx, ctypes --- a/taskcoachlib/gui/toolbar.py +++ b/taskcoachlib/gui/toolbar.py @@ -17,7 +17,7 @@ ''' from taskcoachlib import operating_system -from taskcoachlib.thirdparty import aui +from wx.lib.agw import aui import wx import uicommand --- a/taskcoachlib/gui/viewer/container.py +++ b/taskcoachlib/gui/viewer/container.py @@ -19,7 +19,7 @@ from taskcoachlib import operating_system from taskcoachlib.gui import menu from taskcoachlib.thirdparty.pubsub import pub -import taskcoachlib.thirdparty.aui as aui +import wx.lib.agw.aui as aui import wx --- a/taskcoachlib/widgets/dialog.py +++ b/taskcoachlib/widgets/dialog.py @@ -18,7 +18,7 @@ from taskcoachlib import operating_system from taskcoachlib.i18n import _ -from taskcoachlib.thirdparty import aui +from wx.lib.agw import aui import notebook import wx import wx.html --- a/taskcoachlib/widgets/frame.py +++ b/taskcoachlib/widgets/frame.py @@ -17,7 +17,7 @@ ''' import wx -import taskcoachlib.thirdparty.aui as aui +import wx.lib.agw.aui as aui from taskcoachlib import operating_system --- a/taskcoachlib/widgets/notebook.py +++ b/taskcoachlib/widgets/notebook.py @@ -16,7 +16,7 @@ along with this program. If not, see . ''' -import taskcoachlib.thirdparty.aui as aui +import wx.lib.agw.aui as aui import wx debian/patches/series0000644000000000000000000000031412305360020012017 0ustar do_not_install_buildlib.diff official_img2py.diff official_pygettext.diff interpreter_name_for_smartdatetimectrl.diff replace_thirdparty_with_deb_packages.diff accept_older_aui.diff disable_loadtest.diff debian/patches/disable_loadtest.diff0000644000000000000000000000246212305373473014764 0ustar Author: Nicolas Boulenguez Description: disable parts of integrationtests/LoadTest.py Parts of this test fail to terminate since version 1.3.36. Upstream is investigating. Forwarded: not-needed --- a/tests/integrationtests/LoadTest.py +++ b/tests/integrationtests/LoadTest.py @@ -46,13 +46,13 @@ def mockErrorDialog(self, *args, **kwargs): # pylint: disable=W0613 self.errorDialogCalled = True - def testLoadInvalidFileDoesNotAffectFile(self): - self.mockApp.iocontroller.open(self.filename, showerror=self.mockErrorDialog) - lines = file(self.filename, 'r').readlines() - self.failUnless(self.errorDialogCalled) - self.assertEqual(2, len(lines)) - self.assertEqual('Line 1\n', lines[0]) - self.assertEqual('Line 2\n', lines[1]) + # def testLoadInvalidFileDoesNotAffectFile(self): + # self.mockApp.iocontroller.open(self.filename, showerror=self.mockErrorDialog) + # lines = file(self.filename, 'r').readlines() + # self.failUnless(self.errorDialogCalled) + # self.assertEqual(2, len(lines)) + # self.assertEqual('Line 1\n', lines[0]) + # self.assertEqual('Line 2\n', lines[1]) def testLoadNonExistingFileGivesErrorMessage(self): self.mockApp.iocontroller.open("I don't exist.tsk", debian/patches/official_pygettext.diff0000644000000000000000000000153612305361254015346 0ustar Description: use pygettext from python debian package. Current man page for pygettext, available on the net, says that xgettext has made pygettext obsolete. . May be related to http://bugs.python.org/issue8502 . http://docs.python.org/release/2.6.8/library/gettext.html?highlight=pygettext#internationalizing-your-programs-and-modules seems to show that pygettext is provided by the default python library. . Upstream has been contacted in a private mail circa 1.3.22. Author: Nicolas Boulenguez --- a/Makefile +++ b/Makefile @@ -241,7 +241,7 @@ cd i18n.in; $(PYTHON) make.py i18n.in/messages.pot: $(shell find taskcoachlib -name '*.py' | grep -v i18n) - $(PYTHON) tools/pygettext.py --output-dir i18n.in taskcoachlib + pygettext --output-dir i18n.in taskcoachlib changes: $(PYTHON) changes.in/make.py text > CHANGES.txt debian/patches/official_img2py.diff0000644000000000000000000000103512305362327014514 0ustar Description: use img2py.py and img2img.py from python-wxgtk2.8. Both tools are provided by wx in the tools subdirectory. . Upstream has been contacted via private email circa 1.3.22. Author: Nicolas Boulenguez --- a/icons.in/make.py +++ b/icons.in/make.py @@ -20,9 +20,9 @@ import wxversion, sys wxversion.ensureMinimal("2.8") -sys.path.append('../tools') -import os, img2py +import os +from wx.tools import img2py def extractIcon(iconZipFile, pngFilename, pngZipped): pngFile = file(pngFilename, 'wb') debian/patches/interpreter_name_for_smartdatetimectrl.diff0000644000000000000000000000067412305361110021467 0ustar Description: correct non portable python interpreter name This removes a lintian warning, without any other effect because the script is never executed directly. Author: Nicolas Boulenguez Forwarded: not-needed --- a/taskcoachlib/thirdparty/smartdatetimectrl.py +++ b/taskcoachlib/thirdparty/smartdatetimectrl.py @@ -1,4 +1,4 @@ -#!/usr/bin/python-32 +#!/usr/bin/env python # This file is part of smartdatetimectrl. debian/control0000644000000000000000000000401412316737400010573 0ustar Source: taskcoach Section: utils Priority: optional Maintainer: Nicolas Boulenguez Build-Depends-Indep: debhelper (>= 9), # This should be repeated as X-Python-Version below. # 2.6.6-3~: https://wiki.debian.org/Python/TransitionToDHPython2 python (>= 2.6.6-3~), # patches/official_img2py.diff triggers #698198 patched by 2.8.12.1-13 python-wxgtk2.8 (>= 2.8.12.1-13), # See debian/rules: graphicsmagick, # Unit tests have the same dependencies than the installed package. python-chardet (>= 2.0.1), python-dateutil (>= 1.5), python-keyring (>= 0.9.2), python-pyparsing (>= 1.5.5), python-squaremap (>= 1.0.2), python-xdg (>= 0.25), python-wxversion (>= 2.8.9.2-unicode), libxss1, fonts-dejavu, # See tests/control. hicolor-icon-theme, language-pack-en | locales-all, x11-utils, xauth, xvfb Standards-Version: 3.9.5 Homepage: http://www.taskcoach.org X-Python-Version: >= 2.6 VCS-Git: git://anonscm.debian.org/collab-maint/taskcoach.git VCS-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/taskcoach.git XS-Testsuite: autopkgtest Package: taskcoach Architecture: all Depends: ${misc:Depends}, ${python:Depends}, # See debian/copyright python-chardet (>= 2.0.1), python-dateutil (>= 1.5), python-keyring (>= 0.9.2), python-pyparsing (>= 1.5.5), python-squaremap (>= 1.0.2), python-xdg (>= 0.25), # See buildlib/bdist_deb.py: python-wxgtk2.8 (>= 2.8.9.2-unicode), python-wxversion (>= 2.8.9.2-unicode), libxss1, fonts-dejavu Recommends: python-notify, libgnome2-0, libavahi-compat-libdnssd1 Suggests: espeak, python-kde4 Description: friendly task manager Task Coach is a friendly open source todo manager to manage personal tasks and todo lists. It supports composite tasks, i.e. tasks within tasks. In addition, Task Coach allows you to categorize your tasks, track effort against a budget per task, and much more. Task Coach is available for Windows, Mac OS X, BSD, Linux, iPhone and iPad. . Your database may be synchronized across these platforms. If espeak is installed, reminders can be spoken. debian/taskcoach.docs0000644000000000000000000000006112303421235011770 0ustar COPYRIGHT.txt HACKING.txt PUBLICITY.txt TODO.tsk debian/tests/0000755000000000000000000000000012316762172010337 5ustar debian/tests/unittests0000644000000000000000000000137712305374476012340 0ustar #!/bin/sh set -C -e -f -u # This script must be executed in the source tree. It runs the # upstream test suite tests/test.py. # The latter insists on writing various files, so we need to run it in # a writable directory: ADTTMP/tests_tmp. Cleaning ADTTMP/tests_tmp is # the responsibility of the caller. # When called by debian/rules, . is writable, ADTTMP=. and "tests.py" # will find the local version of taskcoachlib in ... # When called by autopkg-test or sadt, . may not be writable and # "tests.py" will not find taskcoachlib in .., so it will use the # system-wide installed version. cp --archive tests "$ADTTMP/tests_tmp" cd "$ADTTMP/tests_tmp" LC_ALL=en_US.utf8 \ xvfb-run \ python test.py --integrationtests --unittests # --verbose is allowed here. debian/tests/control0000644000000000000000000000035512316762172011745 0ustar Tests: unittests Depends: @, # avoids a gtk-warning on stderr hicolor-icon-theme, # Some tests need en_US.utf8. language-pack-en | locales-all, # xprop x11-utils, # xauth xauth, # xvfb-run (needs xauth, read /usr/bin/xvfb-run) xvfb debian/rules0000755000000000000000000000513312305370365010254 0ustar #!/usr/bin/make -f # export DH_VERBOSE := 1 POLICY_TARGETS := binary binary-arch binary-indep build build-arch \ build-indep clean .PHONY: $(POLICY_TARGETS) $(POLICY_TARGETS): dh $@ --with python2 # Tell each dh_auto_* tool which buildsystem is needed. override_dh_auto_clean:: override_%: $* --buildsystem=makefile -- reallyclean override_dh_auto_build: override_%: $* --buildsystem=makefile -- prepare $* --buildsystem=python_distutils override_dh_auto_install:: override_%: $* --buildsystem=python_distutils override_dh_auto_test: rm -fr tests_tmp ADTTMP=. sh debian/tests/unittests override_dh_auto_clean:: rm -rf tests_tmp # Translate upstream changelog to text for dh_installchangelogs. # Upstream "make clean" will remove it. CHANGES.txt: python changes.in/make.py text > $@ override_dh_auto_build: CHANGES.txt # Files extracted from thirdparty tarballs by "make prepare" should be # deleted with "make nuke", but upstream implementation uses the local # subversion repository so we have to do an ugly explicit list. # Information about thirdparty is centralized in debian/copyright. override_dh_auto_clean:: rm -f taskcoachlib/thirdparty/customtreectrl.py rm -f -r taskcoachlib/thirdparty/desktop rm -f -r taskcoachlib/thirdparty/gntp rm -f taskcoachlib/thirdparty/hypertreelist.py rm -f taskcoachlib/thirdparty/lockfile.py rm -f -r taskcoachlib/thirdparty/ntlm rm -f -r taskcoachlib/thirdparty/pubsub rm -f taskcoachlib/thirdparty/pybonjour.py rm -f taskcoachlib/thirdparty/wmi.py rm -f -r taskcoachlib/thirdparty/wxScheduler # Generated file, removed by dfsg_cleaner. See there for details. override_dh_auto_clean:: rm -f i18n.in/messages.pot # Provide an icon for the menu file. XPM_ICON := icons.in/taskcoach.xpm $(XPM_ICON): %.xpm: %.png gm convert $< $@ override_dh_auto_build: $(XPM_ICON) override_dh_auto_install:: dh_install $(XPM_ICON) usr/share/pixmaps override_dh_auto_clean:: rm -f $(XPM_ICON) # Upstream provides the main executable with a .py suffix. EXE_DIR := debian/taskcoach/usr/bin DESKTOP := debian/taskcoach/usr/share/applications/taskcoach.desktop override_dh_auto_install:: cd $(EXE_DIR) && mv taskcoach.py taskcoach sed --in-place s/Exec=taskcoach.py/Exec=taskcoach/ $(DESKTOP) # Upstream provided XPM is too large for Debian standards (48x48). MENU_ICON := debian/taskcoach/usr/share/pixmaps/taskcoach.xpm override_dh_auto_install:: gm convert -resize 32x32 $(MENU_ICON) $(MENU_ICON).tmp mv -f $(MENU_ICON).tmp $(MENU_ICON) # Avoid compressing the TODO list, provided in the taskcoach format. override_dh_compress: dh_compress -Xusr/share/doc/taskcoach/TODO.tsk debian/source/0000755000000000000000000000000012303421235010461 5ustar debian/source/format0000644000000000000000000000001412303421235011667 0ustar 3.0 (quilt) debian/README.source0000644000000000000000000000204612303421235011342 0ustar This package uses the default "3.0 (quilt)" source format. Read the rest of this file only if you need the latest debian packaging from the version control system. The Debian packaging is maintained in a git repository. The "upstream" branch tracks the contents of the upstream tarball. Non DFSG-compliant files are removed by the debian/dfsg_cleaner script, the "dfsg_clean" branch is useful to rebuild the tarball distributed by Debian. As usual, the "master" branch adds the debian subdirectory. You will need the "git-buildpackage" debian package. Its usage is described in http://wiki.debian.org/PackagingWithGit, with a link to the full manual. Pristine-tar and patch-queue are not used. In brief: # Clone the whole repository. gbp-clone --all git://anonscm.debian.org/collab-maint/taskcoach.git # Enter the directory containing the local copy. cd taskcoach # Build the package. git buildpackage # Clean the tree. debuild clean Launching "gitk --all &" may help a lot. -- Nicolas Boulenguez , Wed, 6 Nov 2013 02:07:41 +0100 debian/gbp.conf0000644000000000000000000000055312305352744010615 0ustar # debian/gbp.conf: options for git-buildpackage. # This file is ignored by dpkg-source because it is mentioned in # debian/source/local-options. [DEFAULT] compression = xz pristine-tar = False [git-buildpackage] debian-branch = master upstream-branch = dfsg_clean upstream-tree = branch [git-import-orig] debian-branch = dfsg_clean upstream-branch = upstream debian/watch0000644000000000000000000000067012303421235010215 0ustar version=3 # qa.debian.org runs a redirector which allows a simpler form of URL # for SourceForge based projects. The format below will automatically # be rewritten to use the redirector. # This may induce a delay between sourceforge publishing a file and # uscan knowing about it. Last line of # http://qa.debian.org/watch/sf.php/taskcoach mentions the date of the # last database update. http://sf.net/taskcoach/TaskCoach-(.+)-raw\.tgz