diff options
author | Eygene Ryabinkin <rea@FreeBSD.org> | 2012-06-19 08:41:42 +0000 |
---|---|---|
committer | Eygene Ryabinkin <rea@FreeBSD.org> | 2012-06-19 08:41:42 +0000 |
commit | 68dba16b26408fd084e827379372a4c97a1c5c9a (patch) | |
tree | de0500f46fc648bd3325df3746f01f7a5ad855c3 /mail/offlineimap | |
parent | - Update to 4.0.5589 (diff) |
mail/offlineimap: upgrade to 6.5.4
Changes since 6.5.3.1:
- Bump bundled imaplib2 library 2.29 --> 2.33
- Actually perform the SSL fingerprint check (reported by J. Cook)
- Curses UI, don't use colors after we shut down curses already
(C.H"oger)
- Document that '%' needs encoding as '%%' in *.conf
- Fix crash when IMAP.quickchanged() led to an Error
(reported by sharat87)
- Implement the createfolders setting to disable folder propagation
(see docs)
Changes since 6.5.3:
- Don't fail if no dry-run setting exists in offlineimap.conf
(introduced in 6.5.3)
Changes since 6.5.2.1:
- --dry-run mode protects us from performing any actual action.
It will not precisely give the exact information what will happen.
If e.g. it would need to create a folder, it merely outputs "Would
create folder X", but not how many and which mails it would
transfer.
- Internal code changes to prepare for Python3
- Improve user documentation of nametrans/folderfilter
- Fixed some cases where invalid nametrans rules were not caught and
we would not propagate local folders to the remote repository. (now
tested in test03)
- Revert "* Slight performance enhancement uploading mails to an IMAP
server in the common case." It might have led to instabilities.
- Revamped documentation structure. make in the docs dir or make doc
in the root dir will now create the 1) man page and 2) the user
documentation using sphinx (requiring python-doctools, and sphinx).
The resulting user docs are in docs/html. You can also only create
the man pages with make man in the docs dir.
- -f command line option only works on the untranslated remote
repository folder names now. Previously folderfilters had to match
both the local AND remote name which caused unwanted behavior in
combination with nametrans rules. Clarify in the help text.
- Some better output when using nonsensical configuration settings
Notes
Notes:
svn path=/head/; revision=299623
Diffstat (limited to 'mail/offlineimap')
-rw-r--r-- | mail/offlineimap/Makefile | 49 | ||||
-rw-r--r-- | mail/offlineimap/distinfo | 4 | ||||
-rw-r--r-- | mail/offlineimap/files/patch-fix-super-usage | 31 | ||||
-rw-r--r-- | mail/offlineimap/files/patch-imaplib2-python-bug3473 | 37 | ||||
-rw-r--r-- | mail/offlineimap/files/patch-use-interpolation | 62 |
5 files changed, 101 insertions, 82 deletions
diff --git a/mail/offlineimap/Makefile b/mail/offlineimap/Makefile index be2b60fd919a..3ec3af046777 100644 --- a/mail/offlineimap/Makefile +++ b/mail/offlineimap/Makefile @@ -6,7 +6,7 @@ # PORTNAME= offlineimap -DISTVERSION= 6.5.2.1 +DISTVERSION= 6.5.4 CATEGORIES= mail python MASTER_SITES= http://cloud.github.com/downloads/spaetz/offlineimap/ \ http://dist.codelabs.ru/fbsd/offlineimap/ @@ -22,24 +22,36 @@ LICENSE_FILE_GPLv2=${WRKSRC}/COPYING OPTIONS= HTMLDOCS "Generate HTML documentation" Off -WRKSRC= ${WRKDIR}/${PORTNAME} +WRKSRC= ${WRKDIR}/${GITHUB_USER}-${PORTNAME}-${GITHUB_HASH} SUB_FILES= pkg-message PATCH_STRIP= -p1 +GITHUB_USER= spaetz +GITHUB_HASH= c9e9690 + USE_PYTHON= 2.6+ USE_PYDISTUTILS= yes -DOCS= Changelog.rst README.rst SubmittingPatches.rst \ - docs/FAQ.rst docs/INSTALL.rst docs/MANUAL.rst docs/UPGRADE.rst -EXAMPLES= offlineimap.conf offlineimap.conf.minimal -PORTDOCS= ${DOCS:T} -PORTEXAMPLES= ${EXAMPLES} +DOC_FILES= Changelog.maint.rst Changelog.rst \ + docs/INSTALL.rst docs/MANUAL.rst \ + docs/doc-src/API.rst docs/doc-src/FAQ.rst \ + docs/doc-src/HACKING.rst docs/doc-src/INSTALL.rst \ + docs/doc-src/MANUAL.rst docs/doc-src/advanced_config.rst \ + docs/doc-src/features.rst docs/doc-src/index.rst \ + docs/doc-src/nametrans.rst docs/doc-src/offlineimap.rst \ + docs/doc-src/repository.rst docs/doc-src/ui.rst +PORTDOCS= docs ${DOC_FILES:N*/*} +EXAMPLE_FILES= offlineimap.conf offlineimap.conf.minimal +PORTEXAMPLES= ${EXAMPLE_FILES:N*/*} + +DOC_DIRS= ${DOC_FILES:H:O:u:N.} +EXAMPLE_DIRS= ${EXAMPLE_FILES:H:O:u:N.} .include <bsd.port.options.mk> .if !defined(NOPORTDOCS) && defined(WITH_HTMLDOCS) BUILD_DEPENDS+= rst2html:${PORTSDIR}/textproc/py-docutils -DOCS:= ${DOCS} ${DOCS:M*.rst:S/.rst$/.html/} +DOC_FILES:= ${DOC_FILES} ${DOC_FILES:M*.rst:S/.rst$/.html/} .endif # This is needed for pkg-message.in @@ -51,19 +63,32 @@ SUB_LIST+= PORTEXAMPLES="" post-build: .if !defined(NOPORTDOCS) && defined(WITH_HTMLDOCS) -.for r in ${DOCS:M*.rst} - rst2html ${WRKSRC}/${r} ${WRKSRC}/${r:R}.html +.for r in ${DOC_FILES:M*.rst} + @${ECHO} "Translating ${r} to HTML..." + @rst2html ${WRKSRC}/${r} ${WRKSRC}/${r:R}.html .endfor .endif post-install: .if !defined(NOPORTDOCS) @${MKDIR} ${DOCSDIR} - cd ${WRKSRC} && ${INSTALL_DATA} ${DOCS} ${DOCSDIR} + @for i in ${DOC_DIRS}; do \ + ${MKDIR} ${DOCSDIR}/$$i; \ + done + @cd ${WRKSRC} && for i in ${DOC_FILES}; do \ + ${ECHO} "Installing ${DOCSDIR}/$$i"; \ + ${INSTALL_DATA} $$i ${DOCSDIR}/$$i; \ + done .endif .if !defined(NOPORTEXAMPLES) @${MKDIR} ${EXAMPLESDIR} - cd ${WRKSRC} && ${INSTALL_DATA} ${EXAMPLES} ${EXAMPLESDIR} + @for i in ${EXAMPLE_DIRS}; do \ + ${MKDIR} ${EXAMPLESDIR}/$$i; \ + done + @cd ${WRKSRC} && for i in ${EXAMPLE_FILES}; do \ + ${ECHO} "Installing ${EXAMPLESDIR}/$$i"; \ + ${INSTALL_DATA} $$i ${EXAMPLESDIR}/$$i; \ + done .endif @${CAT} ${PKGMESSAGE} diff --git a/mail/offlineimap/distinfo b/mail/offlineimap/distinfo index 7e81718ed47d..d0e13c9b8aa7 100644 --- a/mail/offlineimap/distinfo +++ b/mail/offlineimap/distinfo @@ -1,2 +1,2 @@ -SHA256 (offlineimap-v6.5.2.1.tar.gz) = 996aa89bcc27fbbbb40f021d7043b5606059587d79105a5c9dbc0096754c95ad -SIZE (offlineimap-v6.5.2.1.tar.gz) = 161136 +SHA256 (offlineimap-v6.5.4.tar.gz) = 831a97b5154f398b65e1c06427668b78cf833d99fac36cc8278ad2cf0c393a0c +SIZE (offlineimap-v6.5.4.tar.gz) = 167023 diff --git a/mail/offlineimap/files/patch-fix-super-usage b/mail/offlineimap/files/patch-fix-super-usage deleted file mode 100644 index ada8d2ddd25e..000000000000 --- a/mail/offlineimap/files/patch-fix-super-usage +++ /dev/null @@ -1,31 +0,0 @@ -From 45c1d4fc6ed09d6e1a5412c2ac902b236b4e212f Mon Sep 17 00:00:00 2001 -From: Eygene Ryabinkin <rea@codelabs.ru> -Date: Sun, 19 Feb 2012 20:55:06 +0400 -Subject: [PATCH] Fix Curses interface for Python 2.6 - -In 2.6 all logging classes are not the new-style ones, so they -have no mro() method and, thus, we can't use super() for them. -Since CursesLogHanler is singly-inherited method, there will -be no problems in usage of the explicit superclass name. - -Signed-off-by: Eygene Ryabinkin <rea@codelabs.ru> ---- - offlineimap/ui/Curses.py | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/offlineimap/ui/Curses.py b/offlineimap/ui/Curses.py -index af41d35..fa791bb 100644 ---- a/offlineimap/ui/Curses.py -+++ b/offlineimap/ui/Curses.py -@@ -282,7 +282,7 @@ class CursesLogHandler(logging.StreamHandler): - """self.ui has been set to the UI class before anything is invoked""" - - def emit(self, record): -- log_str = super(CursesLogHandler, self).format(record) -+ log_str = logging.StreamHandler.format(self, record) - color = self.ui.gettf().curses_color - # We must acquire both locks. Otherwise, deadlock can result. - # This can happen if one thread calls _msg (locking curses, then --- -1.7.9 - diff --git a/mail/offlineimap/files/patch-imaplib2-python-bug3473 b/mail/offlineimap/files/patch-imaplib2-python-bug3473 deleted file mode 100644 index 154d309176a1..000000000000 --- a/mail/offlineimap/files/patch-imaplib2-python-bug3473 +++ /dev/null @@ -1,37 +0,0 @@ -From b28b53c1367352eb9f634d4f23d13142b9bbbd4d Mon Sep 17 00:00:00 2001 -From: Eygene Ryabinkin <rea@codelabs.ru> -Date: Sun, 19 Feb 2012 17:35:28 +0400 -Subject: [PATCH] Imaplib2: work around the Python bug 3473 - -It was not possible to pass anything, but (*args, **kwargs) -before the following bug was solved, - http://bugs.python.org/issue3473 -so we can't say (*args, key1 = value1, key2 = value2), but we -should pack keys and values to the dictionary and pass it -with **kwargs. - -Python <= 2.5 have this unfixed, so we should fix this in our code. - -Signed-off-by: Eygene Ryabinkin <rea@codelabs.ru> ---- - offlineimap/imaplib2.py | 4 +++- - 1 files changed, 3 insertions(+), 1 deletions(-) - -diff --git a/offlineimap/imaplib2.py b/offlineimap/imaplib2.py -index ffa2676..ed978be 100644 ---- a/offlineimap/imaplib2.py -+++ b/offlineimap/imaplib2.py -@@ -1591,7 +1591,9 @@ class IMAP4(object): - def _simple_command(self, name, *args, **kw): - - if 'callback' in kw: -- self._command(name, *args, callback=self._command_completer, cb_arg=kw, cb_self=True) -+ # http://bugs.python.org/issue3473 -+ kwargs = {'callback':self._command_completer, 'cb_arg':kw, 'cb_self':True} -+ self._command(name, *args, **kwargs) - return (None, None) - return self._command_complete(self._command(name, *args), kw) - --- -1.7.9 - diff --git a/mail/offlineimap/files/patch-use-interpolation b/mail/offlineimap/files/patch-use-interpolation new file mode 100644 index 000000000000..a6004f25e339 --- /dev/null +++ b/mail/offlineimap/files/patch-use-interpolation @@ -0,0 +1,62 @@ +From 8cf576b9edd7f7fe245d4590206ff740d3ed31e3 Mon Sep 17 00:00:00 2001 +From: Eygene Ryabinkin <rea@codelabs.ru> +Date: Wed, 6 Jun 2012 07:45:01 +0400 +Subject: [PATCH] Use '%' instead of String.format() + +Python 2.6 doesn't like empty {} specifications for +String.format(), but the ones that were changed don't +really need the full machinery of String.format() here. + +Signed-off-by: Eygene Ryabinkin <rea@codelabs.ru> +--- + offlineimap/folder/Base.py | 2 +- + offlineimap/ui/UIBase.py | 6 +++--- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/offlineimap/folder/Base.py b/offlineimap/folder/Base.py +index 6f6f364..4c3f1ca 100644 +--- a/offlineimap/folder/Base.py ++++ b/offlineimap/folder/Base.py +@@ -386,7 +386,7 @@ class BaseFolder(object): + self.getmessageuidlist()) + num_to_copy = len(copylist) + if num_to_copy and self.repository.account.dryrun: +- self.ui.info("[DRYRUN] Copy {} messages from {}[{}] to {}".format( ++ self.ui.info("[DRYRUN] Copy %d messages from %s[%s] to %s" % ( + num_to_copy, self, self.repository, dstfolder.repository)) + return + for num, uid in enumerate(copylist): +diff --git a/offlineimap/ui/UIBase.py b/offlineimap/ui/UIBase.py +index eea929d..6608d6d 100644 +--- a/offlineimap/ui/UIBase.py ++++ b/offlineimap/ui/UIBase.py +@@ -301,7 +301,7 @@ class UIBase(object): + def makefolder(self, repo, foldername): + """Called when a folder is created""" + prefix = "[DRYRUN] " if self.dryrun else "" +- self.info("{}Creating folder {}[{}]".format( ++ self.info("%sCreating folder %s[%s]" % ( + prefix, foldername, repo)) + + def syncingfolder(self, srcrepos, srcfolder, destrepos, destfolder): +@@ -346,7 +346,7 @@ class UIBase(object): + def deletingmessages(self, uidlist, destlist): + ds = self.folderlist(destlist) + prefix = "[DRYRUN] " if self.dryrun else "" +- self.info("{}Deleting {} messages ({}) in {}".format( ++ self.info("%sDeleting %s messages (%s) in %s" % ( + prefix, len(uidlist), + offlineimap.imaputil.uid_sequence(uidlist), ds)) + +@@ -474,7 +474,7 @@ class UIBase(object): + + def callhook(self, msg): + if self.dryrun: +- self.info("[DRYRUN] {}".format(msg)) ++ self.info("[DRYRUN] %s" % (msg)) + else: + self.info(msg) + +-- +1.7.10.3 + |