pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

offlineimap: add package for Python 3 version of offlineimap



Module Name:	pkgsrc-wip
Committed By:	Thomas Klausner <wiz%NetBSD.org@localhost>
Pushed By:	wiz
Date:		Wed Apr 23 17:40:23 2025 +0200
Changeset:	9f1cc65739e4685a5a6beba58ef0db3abc783df9

Modified Files:
	Makefile
Added Files:
	offlineimap/DESCR
	offlineimap/Makefile
	offlineimap/PLIST
	offlineimap/TODO
	offlineimap/distinfo
	offlineimap/patches/patch-pyproject.toml
	py-imaplib2/DESCR
	py-imaplib2/Makefile
	py-imaplib2/PLIST
	py-imaplib2/TODO
	py-imaplib2/distinfo

Log Message:
offlineimap: add package for Python 3 version of offlineimap

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=9f1cc65739e4685a5a6beba58ef0db3abc783df9

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 Makefile                                 |   2 +
 offlineimap/DESCR                        |   5 ++
 offlineimap/Makefile                     |  36 +++++++++
 offlineimap/PLIST                        | 126 +++++++++++++++++++++++++++++++
 offlineimap/TODO                         |   1 +
 offlineimap/distinfo                     |   6 ++
 offlineimap/patches/patch-pyproject.toml |  37 +++++++++
 py-imaplib2/DESCR                        |   7 ++
 py-imaplib2/Makefile                     |  18 +++++
 py-imaplib2/PLIST                        |  12 +++
 py-imaplib2/TODO                         |   1 +
 py-imaplib2/distinfo                     |   5 ++
 12 files changed, 256 insertions(+)

diffs:
diff --git a/Makefile b/Makefile
index 9359ced7f9..33e60a78ab 100644
--- a/Makefile
+++ b/Makefile
@@ -2685,6 +2685,7 @@ SUBDIR+=	ocaml-uunf
 SUBDIR+=	ocamlweb
 SUBDIR+=	ocserv
 SUBDIR+=	odin
+SUBDIR+=	offlineimap
 SUBDIR+=	offpunk
 SUBDIR+=	offset
 SUBDIR+=	oggfwd
@@ -3973,6 +3974,7 @@ SUBDIR+=	py-idx2numpy
 SUBDIR+=	py-ift-nifty
 SUBDIR+=	py-igraph
 SUBDIR+=	py-iisignature
+SUBDIR+=	py-imaplib2
 SUBDIR+=	py-imexam
 SUBDIR+=	py-import-linter
 SUBDIR+=	py-imread
diff --git a/offlineimap/DESCR b/offlineimap/DESCR
new file mode 100644
index 0000000000..e046903b37
--- /dev/null
+++ b/offlineimap/DESCR
@@ -0,0 +1,5 @@
+OfflineIMAP is a tool to simplify your e-mail reading.  It synchronizes
+remote IMAP folders and local Maildir folders. It is fast flexible
+and safe. It is also useful if you want to use a mail reader that
+does not have IMAP support, has poor IMAP support, or does not
+provide disconnected operation.
diff --git a/offlineimap/Makefile b/offlineimap/Makefile
new file mode 100644
index 0000000000..d2d427b98e
--- /dev/null
+++ b/offlineimap/Makefile
@@ -0,0 +1,36 @@
+# $NetBSD: Makefile,v 1.42 2024/08/14 17:25:21 wiz Exp $
+
+DISTNAME=	offlineimap3-8.0.0.2024.08.26
+CATEGORIES=	mail
+MASTER_SITES=	${MASTER_SITE_GITHUB:=OfflineIMAP/}
+# 8.0.0 is 4 years old, so use snapshot
+GITHUB_TAG=	db347452273bb0f1b1a8ea952f6fb46cf95fedbf
+
+MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=	https://github.com/OfflineIMAP/offlineimap3
+COMMENT=	Powerful IMAP/Maildir synchronization and reader support (v3)
+LICENSE=	gnu-gpl-v2 # or later
+
+TOOL_DEPENDS+=	${PYPKGPREFIX}-setuptools-[0-9]*:../../devel/py-setuptools
+DEPENDS+=	${PYPKGPREFIX}-rfc6555-[0-9]*:../../net/py-rfc6555
+DEPENDS+=	${PYPKGPREFIX}-imaplib2>=3.5:../../wip/py-imaplib2
+DEPENDS+=	${PYPKGPREFIX}-urllib3>=1.25.9:../../www/py-urllib3
+
+INSTALLATION_DIRS=	share/examples/offlineimap
+
+CONFLICTS+=	offlineimap-[0-9]*
+
+post-install:
+.for f in offlineimap.conf offlineimap.conf.minimal
+	${INSTALL_DATA} ${WRKSRC}/${f} ${DESTDIR}${PREFIX}/share/examples/offlineimap/${f}
+.endfor
+
+WHEEL_NAME=	offlineimap-8.0.0
+
+# needs imap credentials for testing:
+# as of 8.0.0.2024.08.26
+# 1 warning, 1 error
+
+.include "../../lang/python/batteries-included.mk"
+.include "../../lang/python/wheel.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/offlineimap/PLIST b/offlineimap/PLIST
new file mode 100644
index 0000000000..abe482dcc0
--- /dev/null
+++ b/offlineimap/PLIST
@@ -0,0 +1,126 @@
+@comment $NetBSD$
+bin/offlineimap
+${PYSITELIB}/${WHEEL_INFODIR}/METADATA
+${PYSITELIB}/${WHEEL_INFODIR}/RECORD
+${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
+${PYSITELIB}/${WHEEL_INFODIR}/licenses/COPYING
+${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt
+${PYSITELIB}/offlineimap/CustomConfig.py
+${PYSITELIB}/offlineimap/CustomConfig.pyc
+${PYSITELIB}/offlineimap/CustomConfig.pyo
+${PYSITELIB}/offlineimap/__init__.py
+${PYSITELIB}/offlineimap/__init__.pyc
+${PYSITELIB}/offlineimap/__init__.pyo
+${PYSITELIB}/offlineimap/accounts.py
+${PYSITELIB}/offlineimap/accounts.pyc
+${PYSITELIB}/offlineimap/accounts.pyo
+${PYSITELIB}/offlineimap/error.py
+${PYSITELIB}/offlineimap/error.pyc
+${PYSITELIB}/offlineimap/error.pyo
+${PYSITELIB}/offlineimap/folder/Base.py
+${PYSITELIB}/offlineimap/folder/Base.pyc
+${PYSITELIB}/offlineimap/folder/Base.pyo
+${PYSITELIB}/offlineimap/folder/Gmail.py
+${PYSITELIB}/offlineimap/folder/Gmail.pyc
+${PYSITELIB}/offlineimap/folder/Gmail.pyo
+${PYSITELIB}/offlineimap/folder/GmailMaildir.py
+${PYSITELIB}/offlineimap/folder/GmailMaildir.pyc
+${PYSITELIB}/offlineimap/folder/GmailMaildir.pyo
+${PYSITELIB}/offlineimap/folder/IMAP.py
+${PYSITELIB}/offlineimap/folder/IMAP.pyc
+${PYSITELIB}/offlineimap/folder/IMAP.pyo
+${PYSITELIB}/offlineimap/folder/LocalStatus.py
+${PYSITELIB}/offlineimap/folder/LocalStatus.pyc
+${PYSITELIB}/offlineimap/folder/LocalStatus.pyo
+${PYSITELIB}/offlineimap/folder/LocalStatusSQLite.py
+${PYSITELIB}/offlineimap/folder/LocalStatusSQLite.pyc
+${PYSITELIB}/offlineimap/folder/LocalStatusSQLite.pyo
+${PYSITELIB}/offlineimap/folder/Maildir.py
+${PYSITELIB}/offlineimap/folder/Maildir.pyc
+${PYSITELIB}/offlineimap/folder/Maildir.pyo
+${PYSITELIB}/offlineimap/folder/UIDMaps.py
+${PYSITELIB}/offlineimap/folder/UIDMaps.pyc
+${PYSITELIB}/offlineimap/folder/UIDMaps.pyo
+${PYSITELIB}/offlineimap/folder/__init__.py
+${PYSITELIB}/offlineimap/folder/__init__.pyc
+${PYSITELIB}/offlineimap/folder/__init__.pyo
+${PYSITELIB}/offlineimap/globals.py
+${PYSITELIB}/offlineimap/globals.pyc
+${PYSITELIB}/offlineimap/globals.pyo
+${PYSITELIB}/offlineimap/imaplibutil.py
+${PYSITELIB}/offlineimap/imaplibutil.pyc
+${PYSITELIB}/offlineimap/imaplibutil.pyo
+${PYSITELIB}/offlineimap/imapserver.py
+${PYSITELIB}/offlineimap/imapserver.pyc
+${PYSITELIB}/offlineimap/imapserver.pyo
+${PYSITELIB}/offlineimap/imaputil.py
+${PYSITELIB}/offlineimap/imaputil.pyc
+${PYSITELIB}/offlineimap/imaputil.pyo
+${PYSITELIB}/offlineimap/init.py
+${PYSITELIB}/offlineimap/init.pyc
+${PYSITELIB}/offlineimap/init.pyo
+${PYSITELIB}/offlineimap/localeval.py
+${PYSITELIB}/offlineimap/localeval.pyc
+${PYSITELIB}/offlineimap/localeval.pyo
+${PYSITELIB}/offlineimap/mbnames.py
+${PYSITELIB}/offlineimap/mbnames.pyc
+${PYSITELIB}/offlineimap/mbnames.pyo
+${PYSITELIB}/offlineimap/repository/Base.py
+${PYSITELIB}/offlineimap/repository/Base.pyc
+${PYSITELIB}/offlineimap/repository/Base.pyo
+${PYSITELIB}/offlineimap/repository/Gmail.py
+${PYSITELIB}/offlineimap/repository/Gmail.pyc
+${PYSITELIB}/offlineimap/repository/Gmail.pyo
+${PYSITELIB}/offlineimap/repository/GmailMaildir.py
+${PYSITELIB}/offlineimap/repository/GmailMaildir.pyc
+${PYSITELIB}/offlineimap/repository/GmailMaildir.pyo
+${PYSITELIB}/offlineimap/repository/IMAP.py
+${PYSITELIB}/offlineimap/repository/IMAP.pyc
+${PYSITELIB}/offlineimap/repository/IMAP.pyo
+${PYSITELIB}/offlineimap/repository/LocalStatus.py
+${PYSITELIB}/offlineimap/repository/LocalStatus.pyc
+${PYSITELIB}/offlineimap/repository/LocalStatus.pyo
+${PYSITELIB}/offlineimap/repository/Maildir.py
+${PYSITELIB}/offlineimap/repository/Maildir.pyc
+${PYSITELIB}/offlineimap/repository/Maildir.pyo
+${PYSITELIB}/offlineimap/repository/__init__.py
+${PYSITELIB}/offlineimap/repository/__init__.pyc
+${PYSITELIB}/offlineimap/repository/__init__.pyo
+${PYSITELIB}/offlineimap/threadutil.py
+${PYSITELIB}/offlineimap/threadutil.pyc
+${PYSITELIB}/offlineimap/threadutil.pyo
+${PYSITELIB}/offlineimap/ui/Curses.py
+${PYSITELIB}/offlineimap/ui/Curses.pyc
+${PYSITELIB}/offlineimap/ui/Curses.pyo
+${PYSITELIB}/offlineimap/ui/Machine.py
+${PYSITELIB}/offlineimap/ui/Machine.pyc
+${PYSITELIB}/offlineimap/ui/Machine.pyo
+${PYSITELIB}/offlineimap/ui/Noninteractive.py
+${PYSITELIB}/offlineimap/ui/Noninteractive.pyc
+${PYSITELIB}/offlineimap/ui/Noninteractive.pyo
+${PYSITELIB}/offlineimap/ui/TTY.py
+${PYSITELIB}/offlineimap/ui/TTY.pyc
+${PYSITELIB}/offlineimap/ui/TTY.pyo
+${PYSITELIB}/offlineimap/ui/UIBase.py
+${PYSITELIB}/offlineimap/ui/UIBase.pyc
+${PYSITELIB}/offlineimap/ui/UIBase.pyo
+${PYSITELIB}/offlineimap/ui/__init__.py
+${PYSITELIB}/offlineimap/ui/__init__.pyc
+${PYSITELIB}/offlineimap/ui/__init__.pyo
+${PYSITELIB}/offlineimap/ui/debuglock.py
+${PYSITELIB}/offlineimap/ui/debuglock.pyc
+${PYSITELIB}/offlineimap/ui/debuglock.pyo
+${PYSITELIB}/offlineimap/utils/__init__.py
+${PYSITELIB}/offlineimap/utils/__init__.pyc
+${PYSITELIB}/offlineimap/utils/__init__.pyo
+${PYSITELIB}/offlineimap/utils/const.py
+${PYSITELIB}/offlineimap/utils/const.pyc
+${PYSITELIB}/offlineimap/utils/const.pyo
+${PYSITELIB}/offlineimap/utils/distro_utils.py
+${PYSITELIB}/offlineimap/utils/distro_utils.pyc
+${PYSITELIB}/offlineimap/utils/distro_utils.pyo
+${PYSITELIB}/offlineimap/utils/stacktrace.py
+${PYSITELIB}/offlineimap/utils/stacktrace.pyc
+${PYSITELIB}/offlineimap/utils/stacktrace.pyo
+share/examples/offlineimap/offlineimap.conf
+share/examples/offlineimap/offlineimap.conf.minimal
diff --git a/offlineimap/TODO b/offlineimap/TODO
new file mode 100644
index 0000000000..6c7025b8d2
--- /dev/null
+++ b/offlineimap/TODO
@@ -0,0 +1 @@
+Needs testing if it can replace offlineimap.
diff --git a/offlineimap/distinfo b/offlineimap/distinfo
new file mode 100644
index 0000000000..ae80d1a741
--- /dev/null
+++ b/offlineimap/distinfo
@@ -0,0 +1,6 @@
+$NetBSD: distinfo,v 1.13 2021/10/26 10:54:11 nia Exp $
+
+BLAKE2s (offlineimap3-8.0.0.2024.08.26-db347452273bb0f1b1a8ea952f6fb46cf95fedbf.tar.gz) = 6be2361739174381abf3521a53e8ddb62709933baefc79c385c00bfe8874bd4e
+SHA512 (offlineimap3-8.0.0.2024.08.26-db347452273bb0f1b1a8ea952f6fb46cf95fedbf.tar.gz) = 9b3da6838e02d88dad75259620036d6c864a6b2ff1620cdf83189265a7528d28e809b8779cae589beaf4b163ccd81104f2ad96d2710934c41b691a971354717d
+Size (offlineimap3-8.0.0.2024.08.26-db347452273bb0f1b1a8ea952f6fb46cf95fedbf.tar.gz) = 706499 bytes
+SHA1 (patch-pyproject.toml) = d2f28ccab83abb4e4cb97f41053bf323246d6001
diff --git a/offlineimap/patches/patch-pyproject.toml b/offlineimap/patches/patch-pyproject.toml
new file mode 100644
index 0000000000..6967604478
--- /dev/null
+++ b/offlineimap/patches/patch-pyproject.toml
@@ -0,0 +1,37 @@
+$NetBSD$
+
+Traceback (most recent call last):
+  File "<frozen runpy>", line 198, in _run_module_as_main
+  File "<frozen runpy>", line 88, in _run_code
+  File "/usr/pkg/lib/python3.13/site-packages/installer/__main__.py", line 105, in <module>
+    _main(sys.argv[1:], "python -m installer")
+    ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/pkg/lib/python3.13/site-packages/installer/__main__.py", line 101, in _main
+    installer.install(source, destination, {})
+    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
+  File "/usr/pkg/lib/python3.13/site-packages/installer/_core.py", line 109, in install
+    record = destination.write_file(
+        scheme=scheme,
+    ...<2 lines>...
+        is_executable=is_executable,
+    )
+  File "/usr/pkg/lib/python3.13/site-packages/installer/destinations.py", line 203, in write_file
+    return self.write_to_fs(
+           ~~~~~~~~~~~~~~~~^
+        scheme, path_, stream_with_different_shebang, is_executable
+        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+    )
+    ^
+  File "/usr/pkg/lib/python3.13/site-packages/installer/destinations.py", line 167, in write_to_fs
+    raise FileExistsError(message)
+FileExistsError: File already exists: /scratch/mail/offlineimap3/work/.destdir/usr/pkg/bin/offlineimap
+
+--- pyproject.toml.orig	2025-04-23 15:36:44.841097452 +0000
++++ pyproject.toml
+@@ -51,6 +51,3 @@ keyring = ["keyring"]
+ cygwin = ["portalocker[cygwin]"]
+ kerberos = ["gssapi[kerberos]"]
+ testinternet = ["certifi~=2020.6.20"]
+-
+-[project.scripts]
+-offlineimap = "offlineimap.init:main"
diff --git a/py-imaplib2/DESCR b/py-imaplib2/DESCR
new file mode 100644
index 0000000000..86e283caf6
--- /dev/null
+++ b/py-imaplib2/DESCR
@@ -0,0 +1,7 @@
+imaplib2 is a threaded Python IMAP4 client.
+
+Based on RFC 3501 and original imaplib module.
+
+This is a version of imaplib that uses threads to allow full use of the
+IMAP4 concurrency features, and to de-couple a user of imaplib from i/o
+lags, except where explicitly allowed.
diff --git a/py-imaplib2/Makefile b/py-imaplib2/Makefile
new file mode 100644
index 0000000000..b4d82c3e56
--- /dev/null
+++ b/py-imaplib2/Makefile
@@ -0,0 +1,18 @@
+# $NetBSD$
+
+DISTNAME=	imaplib2-3.6
+PKGNAME=	${PYPKGPREFIX}-${DISTNAME}
+CATEGORIES=	mail python
+MASTER_SITES=	${MASTER_SITE_PYPI:=i/imaplib2/}
+
+MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=	https://github.com/jazzband/imaplib2/
+COMMENT=	Threaded Python IMAP4 client
+LICENSE=	mit
+
+TOOL_DEPENDS+=	${PYPKGPREFIX}-setuptools-[0-9]*:../../devel/py-setuptools
+
+USE_LANGUAGES=	# none
+
+.include "../../lang/python/wheel.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/py-imaplib2/PLIST b/py-imaplib2/PLIST
new file mode 100644
index 0000000000..d1080121d1
--- /dev/null
+++ b/py-imaplib2/PLIST
@@ -0,0 +1,12 @@
+@comment $NetBSD$
+${PYSITELIB}/${WHEEL_INFODIR}/METADATA
+${PYSITELIB}/${WHEEL_INFODIR}/RECORD
+${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
+${PYSITELIB}/${WHEEL_INFODIR}/licenses/LICENCE
+${PYSITELIB}/${WHEEL_INFODIR}/top_level.txt
+${PYSITELIB}/imaplib2/__init__.py
+${PYSITELIB}/imaplib2/__init__.pyc
+${PYSITELIB}/imaplib2/__init__.pyo
+${PYSITELIB}/imaplib2/imaplib2.py
+${PYSITELIB}/imaplib2/imaplib2.pyc
+${PYSITELIB}/imaplib2/imaplib2.pyo
diff --git a/py-imaplib2/TODO b/py-imaplib2/TODO
new file mode 100644
index 0000000000..05550fa4c1
--- /dev/null
+++ b/py-imaplib2/TODO
@@ -0,0 +1 @@
+Untested, otherwise ready.
diff --git a/py-imaplib2/distinfo b/py-imaplib2/distinfo
new file mode 100644
index 0000000000..56bd39b4a4
--- /dev/null
+++ b/py-imaplib2/distinfo
@@ -0,0 +1,5 @@
+$NetBSD$
+
+BLAKE2s (imaplib2-3.6.tar.gz) = 6051b045d265d4f9c093fdee6e047a9db3f5b4c61a0e4d8d0e0002dedc084f12
+SHA512 (imaplib2-3.6.tar.gz) = 66c48a51b749ae50020d59855a4ea489ddd49b5b5919a2d3d576231f7a3979cf302f88aab525bf011075a36103eeeb52ab1a246633af3877b7095c2ea2399394
+Size (imaplib2-3.6.tar.gz) = 26252 bytes


Home | Main Index | Thread Index | Old Index