Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Jan 2025 13:22:10 GMT
From:      Ruslan Makhmatkhanov <rm@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: c46f669958ee - main - zope: Remove leaf zope ports that have no sense in absence of zope itself
Message-ID:  <202501111322.50BDMAST061516@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by rm:

URL: https://cgit.FreeBSD.org/ports/commit/?id=c46f669958eedea1755ce692fd664eeee2f7d720

commit c46f669958eedea1755ce692fd664eeee2f7d720
Author:     Ruslan Makhmatkhanov <rm@FreeBSD.org>
AuthorDate: 2025-01-11 13:21:48 +0000
Commit:     Ruslan Makhmatkhanov <rm@FreeBSD.org>
CommitDate: 2025-01-11 13:21:48 +0000

    zope: Remove leaf zope ports that have no sense in absence of zope itself
---
 MOVED                                            |   5 +
 devel/Makefile                                   |   2 -
 devel/py-ExtensionClass/Makefile                 |  18 -
 devel/py-ExtensionClass/distinfo                 |   3 -
 devel/py-ExtensionClass/pkg-descr                |   2 -
 devel/py-repoze.sphinx.autointerface/Makefile    |  19 -
 devel/py-repoze.sphinx.autointerface/distinfo    |   2 -
 devel/py-repoze.sphinx.autointerface/pkg-descr   |   3 -
 mail/Makefile                                    |   1 -
 mail/py-Products.SecureMailHost/Makefile         |  18 -
 mail/py-Products.SecureMailHost/distinfo         |   2 -
 mail/py-Products.SecureMailHost/files/patch-2to3 | 165 --------
 mail/py-Products.SecureMailHost/pkg-descr        |   2 -
 security/Makefile                                |   1 -
 security/py-RestrictedPython/Makefile            |  18 -
 security/py-RestrictedPython/distinfo            |   2 -
 security/py-RestrictedPython/files/patch-2to3    | 469 -----------------------
 security/py-RestrictedPython/pkg-descr           |   2 -
 sysutils/Makefile                                |   1 -
 sysutils/py-zdaemon/Makefile                     |  21 -
 sysutils/py-zdaemon/distinfo                     |   2 -
 sysutils/py-zdaemon/pkg-descr                    |   6 -
 22 files changed, 5 insertions(+), 759 deletions(-)

diff --git a/MOVED b/MOVED
index aad3bb6a23a0..2d973f4a8cca 100644
--- a/MOVED
+++ b/MOVED
@@ -4006,3 +4006,8 @@ devel/py-Products.PloneLanguageTool||2025-01-11|Remove leaf zope ports that have
 devel/py-collective.monkeypatcher||2025-01-11|Remove leaf zope ports that have no sense in absence of zope itself
 devel/py-diazo||2025-01-11|Remove leaf zope ports that have no sense in absence of zope itself
 devel/py-repoze.xmliter||2025-01-11|Remove leaf zope ports that have no sense in absence of zope itself
+mail/py-Products.SecureMailHost||2025-01-11|Remove leaf zope ports that have no sense in absence of zope itself
+devel/py-repoze.sphinx.autointerface||2025-01-11|Remove leaf zope ports that have no sense in absence of zope itself
+devel/py-ExtensionClass||2025-01-11|Remove leaf zope ports that have no sense in absence of zope itself
+security/py-RestrictedPython||2025-01-11|Remove leaf zope ports that have no sense in absence of zope itself
+sysutils/py-zdaemon||2025-01-11|Remove leaf zope ports that have no sense in absence of zope itself
diff --git a/devel/Makefile b/devel/Makefile
index 86058c0787fd..c6abcdda0f61 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -4342,7 +4342,6 @@
     SUBDIR += py-BTrees
     SUBDIR += py-DateTime
     SUBDIR += py-Dumper
-    SUBDIR += py-ExtensionClass
     SUBDIR += py-Faker
     SUBDIR += py-IBMQuantumExperience
     SUBDIR += py-Jinja2
@@ -5805,7 +5804,6 @@
     SUBDIR += py-regress
     SUBDIR += py-remote-pdb
     SUBDIR += py-repoze.lru
-    SUBDIR += py-repoze.sphinx.autointerface
     SUBDIR += py-repoze.tm2
     SUBDIR += py-repoze.who
     SUBDIR += py-represent
diff --git a/devel/py-ExtensionClass/Makefile b/devel/py-ExtensionClass/Makefile
deleted file mode 100644
index 45eb7235a4fd..000000000000
--- a/devel/py-ExtensionClass/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-PORTNAME=	ExtensionClass
-PORTVERSION=	5.1
-CATEGORIES=	devel python zope
-MASTER_SITES=	PYPI
-PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
-DIST_SUBDIR=	zope
-
-MAINTAINER=	zope@FreeBSD.org
-COMMENT=	Metaclass for subclassable extension types
-WWW=		https://pypi.org/project/ExtensionClass/
-
-LICENSE=	ZPL21
-LICENSE_FILE=	${WRKSRC}/LICENSE.txt
-
-USES=		python
-USE_PYTHON=	autoplist distutils
-
-.include <bsd.port.mk>
diff --git a/devel/py-ExtensionClass/distinfo b/devel/py-ExtensionClass/distinfo
deleted file mode 100644
index ee3155cb6f7d..000000000000
--- a/devel/py-ExtensionClass/distinfo
+++ /dev/null
@@ -1,3 +0,0 @@
-TIMESTAMP = 1706485929
-SHA256 (zope/ExtensionClass-5.1.tar.gz) = 21121c5e12721ddf8fb7af90c4199ef46ea5045e9ffa98d9e20cd7c98025e3da
-SIZE (zope/ExtensionClass-5.1.tar.gz) = 36053
diff --git a/devel/py-ExtensionClass/pkg-descr b/devel/py-ExtensionClass/pkg-descr
deleted file mode 100644
index 71381879b73c..000000000000
--- a/devel/py-ExtensionClass/pkg-descr
+++ /dev/null
@@ -1,2 +0,0 @@
-This package provides a metaclass that allows classes implemented
-in extension modules to be subclassed in Python.
diff --git a/devel/py-repoze.sphinx.autointerface/Makefile b/devel/py-repoze.sphinx.autointerface/Makefile
deleted file mode 100644
index d3c0a4ed99ed..000000000000
--- a/devel/py-repoze.sphinx.autointerface/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-PORTNAME=	repoze.sphinx.autointerface
-PORTVERSION=	0.8
-CATEGORIES=	devel python
-MASTER_SITES=	PYPI
-PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
-
-MAINTAINER=	zope@FreeBSD.org
-COMMENT=	Auto-generates API docs from Zope interfaces
-WWW=		http://www.repoze.org
-
-LICENSE=	BSD4CLAUSE
-LICENSE_FILE=	${WRKSRC}/LICENSE.txt
-
-USES=		python
-USE_PYTHON=	autoplist distutils
-
-NO_ARCH=	yes
-
-.include <bsd.port.mk>
diff --git a/devel/py-repoze.sphinx.autointerface/distinfo b/devel/py-repoze.sphinx.autointerface/distinfo
deleted file mode 100644
index 1646cae9bdb3..000000000000
--- a/devel/py-repoze.sphinx.autointerface/distinfo
+++ /dev/null
@@ -1,2 +0,0 @@
-SHA256 (repoze.sphinx.autointerface-0.8.tar.gz) = 8ef0383276ab722efb1e4a6523726262058dfd82615ccf7e5004aee3fe8ecc23
-SIZE (repoze.sphinx.autointerface-0.8.tar.gz) = 8987
diff --git a/devel/py-repoze.sphinx.autointerface/pkg-descr b/devel/py-repoze.sphinx.autointerface/pkg-descr
deleted file mode 100644
index ff98eebe6368..000000000000
--- a/devel/py-repoze.sphinx.autointerface/pkg-descr
+++ /dev/null
@@ -1,3 +0,0 @@
-This package defines an extension for the Sphinx documentation system.
-The extension allows generation of API documentation by introspection of
-zope.interface instances in code.
diff --git a/mail/Makefile b/mail/Makefile
index ba7dfee1497d..7fc7b579932a 100644
--- a/mail/Makefile
+++ b/mail/Makefile
@@ -503,7 +503,6 @@
     SUBDIR += procmail
     SUBDIR += procmail-bgrb
     SUBDIR += proxsmtp
-    SUBDIR += py-Products.SecureMailHost
     SUBDIR += py-afew
     SUBDIR += py-aiosmtpd
     SUBDIR += py-alot
diff --git a/mail/py-Products.SecureMailHost/Makefile b/mail/py-Products.SecureMailHost/Makefile
deleted file mode 100644
index 20f0f166c114..000000000000
--- a/mail/py-Products.SecureMailHost/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-PORTNAME=	Products.SecureMailHost
-PORTVERSION=	1.1.2
-PORTREVISION=	1
-CATEGORIES=	mail python zope
-MASTER_SITES=	PYPI
-PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
-DIST_SUBDIR=	zope
-
-MAINTAINER=	zope@FreeBSD.org
-COMMENT=	Reimplementation of the standard Zope2 MailHost
-WWW=		https://pypi.org/project/Products.SecureMailHost/
-
-LICENSE=	ZPL21
-
-USES=		python zip
-USE_PYTHON=	distutils autoplist
-
-.include <bsd.port.mk>
diff --git a/mail/py-Products.SecureMailHost/distinfo b/mail/py-Products.SecureMailHost/distinfo
deleted file mode 100644
index 132791dc3bd2..000000000000
--- a/mail/py-Products.SecureMailHost/distinfo
+++ /dev/null
@@ -1,2 +0,0 @@
-SHA256 (zope/Products.SecureMailHost-1.1.2.zip) = 5c46b81c06e6555cf4c3ee9facbbab1d5cc75bc7b435b7db9f5bc0862ca7dae7
-SIZE (zope/Products.SecureMailHost-1.1.2.zip) = 29352
diff --git a/mail/py-Products.SecureMailHost/files/patch-2to3 b/mail/py-Products.SecureMailHost/files/patch-2to3
deleted file mode 100644
index 8f5b763bd1e4..000000000000
--- a/mail/py-Products.SecureMailHost/files/patch-2to3
+++ /dev/null
@@ -1,165 +0,0 @@
---- Products/SecureMailHost/SecureMailHost.py.orig	2009-09-05 08:33:50 UTC
-+++ Products/SecureMailHost/SecureMailHost.py
-@@ -16,7 +16,7 @@
- $Id: SecureMailHost.py 96773 2009-09-05 14:33:50Z hannosch $
- """
- 
--from config import BAD_HEADERS
-+from .config import BAD_HEADERS
- from copy import deepcopy
- 
- import email.Message
-@@ -201,10 +201,10 @@ class SecureMailBase(MailBase):
-             if addr:
-                 result = self.validateEmailAddresses(addr)
-                 if not result:
--                    raise MailHostError, 'Invalid email address: %s' % addr
-+                    raise MailHostError('Invalid email address: %s' % addr)
-         result = self.validateSingleEmailAddress(mfrom)
-         if not result:
--            raise MailHostError, 'Invalid email address: %s' % mfrom
-+            raise MailHostError('Invalid email address: %s' % mfrom)
- 
-         # create message
-         if isinstance(message, email.Message.Message):
-@@ -212,7 +212,7 @@ class SecureMailBase(MailBase):
-             # change the message
-             msg = deepcopy(message)
-         else:
--            if isinstance(message, unicode):
-+            if isinstance(message, str):
-                 message = message.encode(charset)
-             msg = email.MIMEText.MIMEText(message, subtype, charset)
- 
-@@ -228,7 +228,7 @@ class SecureMailBase(MailBase):
- 
-         for bad in BAD_HEADERS:
-             if bad in kwargs:
--                raise MailHostError, 'Header %s is forbidden' % bad
-+                raise MailHostError('Header %s is forbidden' % bad)
-         self.setHeaderOf(msg, **kwargs)
- 
-         # we have to pass *all* recipient email addresses to the
-@@ -251,7 +251,7 @@ class SecureMailBase(MailBase):
- 
-         All occurences of the key are deleted first!
-         """
--        for key, val in kwargs.items():
-+        for key, val in list(kwargs.items()):
-             del msg[key] # save - email.Message won't raise a KeyError
-             if skipEmpty and not val:
-                 continue
-@@ -293,7 +293,7 @@ class SecureMailBase(MailBase):
-         # stage 2: get a list of address strings using email.formataddr
-         addresses = []
-         for addr in addr_list:
--            if isinstance(addr, basestring):
-+            if isinstance(addr, str):
-                 addresses.append(email.Utils.formataddr(('', addr)))
-             else:
-                 if len(addr) != 2:
-@@ -311,7 +311,7 @@ class SecureMailBase(MailBase):
-         """Lower-level function to validate a single normalized email
-         address, see validateEmailAddress
-         """
--        if not isinstance(address, basestring):
-+        if not isinstance(address, str):
-             return False
- 
-         sub = EMAIL_CUTOFF_RE.match(address);
-@@ -329,7 +329,7 @@ class SecureMailBase(MailBase):
-     def validateSingleEmailAddress(self, address):
-         """Validate a single email address, see also validateEmailAddresses
-         """
--        if not isinstance(address, basestring):
-+        if not isinstance(address, str):
-             return False
- 
-         sub = EMAIL_CUTOFF_RE.match(address);
-@@ -353,7 +353,7 @@ class SecureMailBase(MailBase):
-         """Validate a list of possibly several email addresses, see
-         also validateSingleEmailAddress
-         """
--        if not isinstance(addresses, basestring):
-+        if not isinstance(addresses, str):
-             return False
- 
-         sub = EMAIL_CUTOFF_RE.match(addresses);
---- Products/SecureMailHost/tests/common.py.orig	2004-07-18 15:21:52 UTC
-+++ Products/SecureMailHost/tests/common.py
-@@ -2,12 +2,6 @@ from Testing import ZopeTestCase
- 
- from Products.SecureMailHost.SecureMailHost import SecureMailBase
- 
--try:
--    True
--except NameError:
--    True=1
--    False=0
--
- ZopeTestCase.installProduct('MailHost', quiet=1)
- ZopeTestCase.installProduct('PageTemplates', quiet=1)
- ZopeTestCase.installProduct('PythonScripts', quiet=1)
---- Products/SecureMailHost/tests/framework.py.orig	2004-05-16 01:36:28 UTC
-+++ Products/SecureMailHost/tests/framework.py
-@@ -52,7 +52,7 @@ if __INSTANCE_HOME.endswith(os.sep):
- 
- # Find and import the Testing package
- #
--if not sys.modules.has_key('Testing'):
-+if 'Testing' not in sys.modules:
-     p0 = sys.path[0]
-     if p0 and __name__ == '__main__':
-         os.chdir(p0)
-@@ -66,12 +66,12 @@ if not sys.modules.has_key('Testing'):
-             break
-         p, d = s and ('','') or os.path.split(p)
-     else:
--        print 'Unable to locate Testing package.',
--        print 'You might need to set SOFTWARE_HOME.'
-+        print('Unable to locate Testing package.', end=' ')
-+        print('You might need to set SOFTWARE_HOME.')
-         sys.exit(1)
- 
- import Testing, unittest
--execfile(os.path.join(os.path.dirname(Testing.__file__), 'common.py'))
-+exec(compile(open(os.path.join(os.path.dirname(Testing.__file__), 'common.py'), "rb").read(), os.path.join(os.path.dirname(Testing.__file__), 'common.py'), 'exec'))
- 
- # Include ZopeTestCase support
- #
-@@ -80,8 +80,8 @@ if 1:   # Create a new scope
-     p = os.path.join(os.path.dirname(Testing.__file__), 'ZopeTestCase')
- 
-     if not os.path.isdir(p):
--        print 'Unable to locate ZopeTestCase package.',
--        print 'You might need to install ZopeTestCase.'
-+        print('Unable to locate ZopeTestCase package.', end=' ')
-+        print('You might need to install ZopeTestCase.')
-         sys.exit(1)
- 
-     ztc_common = 'ztc_common.py'
-@@ -89,19 +89,19 @@ if 1:   # Create a new scope
- 
-     f = 0
-     if os.path.exists(ztc_common_global):
--        execfile(ztc_common_global)
-+        exec(compile(open(ztc_common_global, "rb").read(), ztc_common_global, 'exec'))
-         f = 1
-     if os.path.exists(ztc_common):
--        execfile(ztc_common)
-+        exec(compile(open(ztc_common, "rb").read(), ztc_common, 'exec'))
-         f = 1
- 
-     if not f:
--        print 'Unable to locate %s.' % ztc_common
-+        print('Unable to locate %s.' % ztc_common)
-         sys.exit(1)
- 
- # Debug
- #
--print 'SOFTWARE_HOME: %s' % os.environ.get('SOFTWARE_HOME', 'Not set')
--print 'INSTANCE_HOME: %s' % os.environ.get('INSTANCE_HOME', 'Not set')
-+print('SOFTWARE_HOME: %s' % os.environ.get('SOFTWARE_HOME', 'Not set'))
-+print('INSTANCE_HOME: %s' % os.environ.get('INSTANCE_HOME', 'Not set'))
- sys.stdout.flush()
- 
diff --git a/mail/py-Products.SecureMailHost/pkg-descr b/mail/py-Products.SecureMailHost/pkg-descr
deleted file mode 100644
index 9d648d27f1f4..000000000000
--- a/mail/py-Products.SecureMailHost/pkg-descr
+++ /dev/null
@@ -1,2 +0,0 @@
-SecureMailHost is a reimplementation of the standard Zope2 MailHost
-with some security and usability enhancements.
diff --git a/security/Makefile b/security/Makefile
index 5b4e83c4d4cd..1e190d10e886 100644
--- a/security/Makefile
+++ b/security/Makefile
@@ -873,7 +873,6 @@
     SUBDIR += pwauth
     SUBDIR += pwman
     SUBDIR += pwned-check
-    SUBDIR += py-RestrictedPython
     SUBDIR += py-SecretStorage
     SUBDIR += py-YubiOTP
     SUBDIR += py-acme
diff --git a/security/py-RestrictedPython/Makefile b/security/py-RestrictedPython/Makefile
deleted file mode 100644
index beca681e7a2c..000000000000
--- a/security/py-RestrictedPython/Makefile
+++ /dev/null
@@ -1,18 +0,0 @@
-PORTNAME=	RestrictedPython
-PORTVERSION=	3.6.0
-PORTREVISION=	2
-CATEGORIES=	security python zope
-MASTER_SITES=	PYPI
-PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
-DIST_SUBDIR=	zope
-
-MAINTAINER=	zope@FreeBSD.org
-COMMENT=	Restricted execution environment for Python
-WWW=		https://pypi.org/project/RestrictedPython/
-
-LICENSE=	ZPL21
-
-USES=		python zip
-USE_PYTHON=	distutils autoplist
-
-.include <bsd.port.mk>
diff --git a/security/py-RestrictedPython/distinfo b/security/py-RestrictedPython/distinfo
deleted file mode 100644
index 83054ff824c1..000000000000
--- a/security/py-RestrictedPython/distinfo
+++ /dev/null
@@ -1,2 +0,0 @@
-SHA256 (zope/RestrictedPython-3.6.0.zip) = 0edb2579b4174282bee3997abc6316d122c7ca6dcd02f4423352213cde571434
-SIZE (zope/RestrictedPython-3.6.0.zip) = 56739
diff --git a/security/py-RestrictedPython/files/patch-2to3 b/security/py-RestrictedPython/files/patch-2to3
deleted file mode 100644
index 931d63b3254c..000000000000
--- a/security/py-RestrictedPython/files/patch-2to3
+++ /dev/null
@@ -1,469 +0,0 @@
---- src/RestrictedPython/Eval.py.orig	2010-07-09 04:28:54 UTC
-+++ src/RestrictedPython/Eval.py
-@@ -60,10 +60,10 @@ class RestrictionCapableEval:
-                 self.expr, '<string>')
-             if PROFILE:
-                 end = clock()
--                print 'prepRestrictedCode: %d ms for %s' % (
--                    (end - start) * 1000, `self.expr`)
-+                print('prepRestrictedCode: %d ms for %s' % (
-+                    (end - start) * 1000, repr(self.expr)))
-             if err:
--                raise SyntaxError, err[0]
-+                raise SyntaxError(err[0])
-             self.used = tuple(used.keys())
-             self.rcode = co
- 
---- src/RestrictedPython/Guards.py.orig	2010-07-09 04:07:16 UTC
-+++ src/RestrictedPython/Guards.py
-@@ -98,7 +98,7 @@ def _write_wrapper():
-             try:
-                 f = getattr(self.ob, secattr)
-             except AttributeError:
--                raise TypeError, error_msg
-+                raise TypeError(error_msg)
-             f(*args)
-         return handler
-     class Wrapper:
---- src/RestrictedPython/Limits.py.orig	2010-07-07 14:42:56 UTC
-+++ src/RestrictedPython/Limits.py
-@@ -25,22 +25,22 @@ def limited_range(iFirst, *args):
-     elif len(args) == 2:
-         iStart, iEnd, iStep = iFirst, args[0], args[1]
-     else:
--        raise AttributeError, 'range() requires 1-3 int arguments'
--    if iStep == 0: raise ValueError, 'zero step for range()'
-+        raise AttributeError('range() requires 1-3 int arguments')
-+    if iStep == 0: raise ValueError('zero step for range()')
-     iLen = int((iEnd - iStart) / iStep)
-     if iLen < 0: iLen = 0
--    if iLen >= RANGELIMIT: raise ValueError, 'range() too large'
--    return range(iStart, iEnd, iStep)
-+    if iLen >= RANGELIMIT: raise ValueError('range() too large')
-+    return list(range(iStart, iEnd, iStep))
- limited_builtins['range'] = limited_range
- 
- def limited_list(seq):
-     if isinstance(seq, str):
--        raise TypeError, 'cannot convert string to list'
-+        raise TypeError('cannot convert string to list')
-     return list(seq)
- limited_builtins['list'] = limited_list
- 
- def limited_tuple(seq):
-     if isinstance(seq, str):
--        raise TypeError, 'cannot convert string to tuple'
-+        raise TypeError('cannot convert string to tuple')
-     return tuple(seq)
- limited_builtins['tuple'] = limited_tuple
---- src/RestrictedPython/RCompile.py.orig	2010-07-07 14:42:56 UTC
-+++ src/RestrictedPython/RCompile.py
-@@ -20,12 +20,12 @@ from compiler import ast, parse, misc, syntax, pycodeg
- from compiler.pycodegen import AbstractCompileMode, Expression, \
-      Interactive, Module, ModuleCodeGenerator, FunctionCodeGenerator, findOp
- 
--import MutatingWalker
--from RestrictionMutator import RestrictionMutator
-+from . import MutatingWalker
-+from .RestrictionMutator import RestrictionMutator
- 
- 
- def niceParse(source, filename, mode):
--    if isinstance(source, unicode):
-+    if isinstance(source, str):
-         # Use the utf-8-sig BOM so the compiler
-         # detects this as a UTF-8 encoded string.
-         source = '\xef\xbb\xbf' + source.encode('utf-8')
-@@ -58,7 +58,7 @@ class RestrictedCompileMode(AbstractCompileMode):
-         tree = self.parse()
-         MutatingWalker.walk(tree, self.rm)
-         if self.rm.errors:
--            raise SyntaxError, self.rm.errors[0]
-+            raise SyntaxError(self.rm.errors[0])
-         misc.set_filename(self.filename, tree)
-         syntax.check(tree)
-         return tree
-@@ -72,7 +72,7 @@ class RestrictedCompileMode(AbstractCompileMode):
- def compileAndTuplize(gen):
-     try:
-         gen.compile()
--    except SyntaxError, v:
-+    except SyntaxError as v:
-         return None, (str(v),), gen.rm.warnings, gen.rm.used_names
-     return gen.getCode(), (), gen.rm.warnings, gen.rm.used_names
- 
---- src/RestrictedPython/tests/before_and_after.py.orig	2010-07-09 04:29:10 UTC
-+++ src/RestrictedPython/tests/before_and_after.py
-@@ -77,11 +77,11 @@ def nested_list_comprehension_after():
- # print
- 
- def simple_print_before():
--    print "foo"
-+    print("foo")
- 
- def simple_print_after():
-     _print = _print_()
--    print >> _print, "foo"
-+    print("foo", file=_print)
- 
- # getitem
- 
-@@ -117,13 +117,13 @@ def simple_delitem_after():
- 
- def function_with_print_before():
-     def foo():
--        print "foo"
-+        print("foo")
-         return printed
- 
- def function_with_print_after():
-     def foo():
-         _print = _print_()
--        print >> _print, "foo"
-+        print("foo", file=_print)
-         return _print()
- 
- def function_with_getattr_before():
---- src/RestrictedPython/tests/class.py.orig	2010-07-07 14:42:56 UTC
-+++ src/RestrictedPython/tests/class.py
-@@ -10,4 +10,4 @@ x = MyClass()
- x.set(12)
- x.set(x.get() + 1)
- if x.get() != 13:
--    raise AssertionError, "expected 13, got %d" % x.get()
-+    raise AssertionError("expected 13, got %d" % x.get())
---- src/RestrictedPython/tests/restricted_module.py.orig	2010-07-07 14:42:56 UTC
-+++ src/RestrictedPython/tests/restricted_module.py
-@@ -1,42 +1,43 @@
- import sys
-+from functools import reduce
- 
- def print0():
--    print 'Hello, world!',
-+    print('Hello, world!', end=' ')
-     return printed
- 
- def print1():
--    print 'Hello,',
--    print 'world!',
-+    print('Hello,', end=' ')
-+    print('world!', end=' ')
-     return printed
- 
- def printStuff():
--    print 'a', 'b', 'c',
-+    print('a', 'b', 'c', end=' ')
-     return printed
- 
- def printToNone():
-     x = None
--    print >>x, 'Hello, world!',
-+    print('Hello, world!', end=' ', file=x)
-     return printed
- 
- def printLines():
-     # This failed before Zope 2.4.0a2
--    r = range(3)
-+    r = list(range(3))
-     for n in r:
-         for m in r:
--            print m + n * len(r),
--        print
-+            print(m + n * len(r), end=' ')
-+        print()
-     return printed
- 
- def try_map():
-     inc = lambda i: i+1
-     x = [1, 2, 3]
--    print map(inc, x),
-+    print(list(map(inc, x)), end=' ')
-     return printed
- 
- def try_apply():
-     def f(x, y, z):
-         return x + y + z
--    print f(*(300, 20), **{'z': 1}),
-+    print(f(*(300, 20), **{'z': 1}), end=' ')
-     return printed
- 
- def try_inplace():
-@@ -45,17 +46,17 @@ def try_inplace():
- 
- def primes():
-     # Somewhat obfuscated code on purpose
--    print filter(None,map(lambda y:y*reduce(lambda x,y:x*y!=0,
--    map(lambda x,y=y:y%x,range(2,int(pow(y,0.5)+1))),1),range(2,20))),
-+    print([_f for _f in [y*reduce(lambda x,y:x*y!=0,
-+    list(map(lambda x,y=y:y%x,list(range(2,int(pow(y,0.5)+1))))),1) for y in range(2,20)] if _f], end=' ')
-     return printed
- 
- def allowed_read(ob):
--    print ob.allowed
--    print ob.s
--    print ob[0]
--    print ob[2]
--    print ob[3:-1]
--    print len(ob)
-+    print(ob.allowed)
-+    print(ob.s)
-+    print(ob[0])
-+    print(ob[2])
-+    print(ob[3:-1])
-+    print(len(ob))
-     return printed
- 
- def allowed_default_args(ob):
-@@ -83,13 +84,13 @@ def allowed_simple():
- def allowed_write(ob):
-     ob.writeable = 1
-     #ob.writeable += 1
--    [1 for ob.writeable in 1,2]
-+    [1 for ob.writeable in [1,2]]
-     ob['safe'] = 2
-     #ob['safe'] += 2
--    [1 for ob['safe'] in 1,2]
-+    [1 for ob['safe'] in [1,2]]
- 
- def denied_print(ob):
--    print >> ob, 'Hello, world!',
-+    print('Hello, world!', end=' ', file=ob)
- 
- def denied_getattr(ob):
-     #ob.disallowed += 1
-@@ -108,7 +109,7 @@ def denied_setattr2(ob):
-     ob.allowed = -1
- 
- def denied_setattr3(ob):
--    [1 for ob.allowed in 1,2]
-+    [1 for ob.allowed in [1,2]]
- 
- def denied_getitem(ob):
-     ob[1]
-@@ -125,7 +126,7 @@ def denied_setitem2(ob):
-     ob['x'] = 2
- 
- def denied_setitem3(ob):
--    [1 for ob['x'] in 1,2]
-+    [1 for ob['x'] in [1,2]]
- 
- def denied_setslice(ob):
-     ob[0:1] = 'a'
-@@ -135,7 +136,7 @@ def denied_setslice2(ob):
-     ob[0:1] = 'a'
- 
- def denied_setslice3(ob):
--    [1 for ob[0:1] in 1,2]
-+    [1 for ob[0:1] in [1,2]]
- 
- ##def strange_attribute():
- ##    # If a guard has attributes with names that don't start with an
---- src/RestrictedPython/tests/security_in_syntax.py.orig	2010-07-09 04:07:16 UTC
-+++ src/RestrictedPython/tests/security_in_syntax.py
-@@ -29,7 +29,7 @@ def bad_attr():
-     some_ob._some_attr = 15
- 
- def no_exec():
--    exec 'q = 1'
-+    exec('q = 1')
- 
- def no_yield():
-     yield 42
-@@ -47,7 +47,7 @@ def from_import_as_bad_name():
- def except_using_bad_name():
-     try:
-         foo
--    except NameError, _leading_underscore:
-+    except NameError as _leading_underscore:
-         # The name of choice (say, _write) is now assigned to an exception
-         # object.  Hard to exploit, but conceivable.
-         pass
---- src/RestrictedPython/tests/testRestrictions.py.orig	2010-07-09 04:07:16 UTC
-+++ src/RestrictedPython/tests/testRestrictions.py
-@@ -52,10 +52,10 @@ def find_source(fn, func):
- 
- def get_source(func):
-     """Less silly interface to find_source"""
--    file = func.func_globals['__file__']
-+    file = func.__globals__['__file__']
-     if file.endswith('.pyc'):
-         file = file[:-1]
--    source = find_source(file, func.func_code)[1]
-+    source = find_source(file, func.__code__)[1]
-     assert source.strip(), "Source should not be empty!"
-     return source
- 
-@@ -76,7 +76,7 @@ def create_rmodule():
-                  'len', 'chr', 'ord',
-                  ):
-         rmodule[name] = builtins[name]
--    exec code in rmodule
-+    exec(code, rmodule)
- 
- class AccessDenied (Exception): pass
- 
-@@ -145,7 +145,7 @@ def guarded_getitem(ob, index):
- 
- def minimal_import(name, _globals, _locals, names):
-     if name != "__future__":
--        raise ValueError, "Only future imports are allowed"
-+        raise ValueError("Only future imports are allowed")
-     import __future__
-     return __future__
- 
-@@ -185,14 +185,14 @@ def inplacevar_wrapper(op, x, y):
-     inplacevar_wrapper_called[op] = x, y
-     # This is really lame.  But it's just a test. :)
-     globs = {'x': x, 'y': y}
--    exec 'x'+op+'y' in globs
-+    exec('x'+op+'y', globs)
-     return globs['x']
- 
- class RestrictionTests(unittest.TestCase):
-     def execFunc(self, name, *args, **kw):
-         func = rmodule[name]
--        verify.verify(func.func_code)
--        func.func_globals.update({'_getattr_': guarded_getattr,
-+        verify.verify(func.__code__)
-+        func.__globals__.update({'_getattr_': guarded_getattr,
-                                   '_getitem_': guarded_getitem,
-                                   '_write_': TestGuard,
-                                   '_print_': PrintCollector,
-@@ -263,7 +263,7 @@ class RestrictionTests(unittest.TestCase):
-         self.assertEqual(inplacevar_wrapper_called['+='], (1, 3))
- 
-     def checkDenied(self):
--        for k in rmodule.keys():
-+        for k in list(rmodule.keys()):
-             if k[:6] == 'denied':
-                 try:
-                     self.execFunc(k, RestrictedObject())
-@@ -290,10 +290,10 @@ class RestrictionTests(unittest.TestCase):
-         # Unrestricted compile.
-         code = compile(source, fn, 'exec')
-         m = {'__builtins__': {'__import__':minimal_import}}
--        exec code in m
--        for k, v in m.items():
-+        exec(code, m)
-+        for k, v in list(m.items()):
-             if hasattr(v, 'func_code'):
--                filename, source = find_source(fn, v.func_code)
-+                filename, source = find_source(fn, v.__code__)
-                 # Now compile it with restrictions
-                 try:
-                     code = compile_restricted(source, filename, 'exec')
-@@ -327,11 +327,11 @@ class RestrictionTests(unittest.TestCase):
-         self.assertEqual(res, expect)
- 
-     def checkStackSize(self):
--        for k, rfunc in rmodule.items():
-+        for k, rfunc in list(rmodule.items()):
-             if not k.startswith('_') and hasattr(rfunc, 'func_code'):
--                rss = rfunc.func_code.co_stacksize
--                ss = getattr(restricted_module, k).func_code.co_stacksize
--                self.failUnless(
-+                rss = rfunc.__code__.co_stacksize
-+                ss = getattr(restricted_module, k).__code__.co_stacksize
-+                self.assertTrue(
-                     rss >= ss, 'The stack size estimate for %s() '
-                     'should have been at least %d, but was only %d'
-                     % (k, ss, rss))
-@@ -427,7 +427,7 @@ class RestrictionTests(unittest.TestCase):
-             calls.append(seq)
-             return list(seq)
-         globals = {"_getiter_": getiter, '_inplacevar_': inplacevar_wrapper}
--        exec co in globals, {}
-+        exec(co, globals, {})
-         # The comparison here depends on the exact code that is
-         # contained in unpack.py.
-         # The test doing implicit unpacking in an "except:" clause is
-@@ -454,7 +454,7 @@ class RestrictionTests(unittest.TestCase):
-                                               [[[3, 4]]], [[3, 4]], [3, 4],
-                     ]
-         i = expected.index(ineffable)
--        self.assert_(isinstance(calls[i], TypeError))
-+        self.assertTrue(isinstance(calls[i], TypeError))
-         expected[i] = calls[i]
-         self.assertEqual(calls, expected)
- 
-@@ -466,7 +466,7 @@ class RestrictionTests(unittest.TestCase):
-             calls.append(s)
-             return list(s)
-         globals = {"_getiter_": getiter}
--        exec co in globals, {}
-+        exec(co, globals, {})
-         self.assertEqual(calls, [[(1,2)], (1, 2)])
- 
-     def checkUnpackSequenceSingle(self):
-@@ -477,7 +477,7 @@ class RestrictionTests(unittest.TestCase):
-             calls.append(s)
-             return list(s)
-         globals = {"_getiter_": getiter}
--        exec co in globals, {}
-+        exec(co, globals, {})
-         self.assertEqual(calls, [(1, 2)])
- 
-     def checkClass(self):
-@@ -496,7 +496,7 @@ class RestrictionTests(unittest.TestCase):
-         globals = {"_getattr_": test_getattr,
-                    "_write_": test_setattr,
-                    }
--        exec co in globals, {}
-+        exec(co, globals, {})
-         # Note that the getattr calls don't correspond to the method call
-         # order, because the x.set method is fetched before its arguments
-         # are evaluated.
-@@ -506,7 +506,7 @@ class RestrictionTests(unittest.TestCase):
- 
-     def checkLambda(self):
-         co = self._compile_file("lambda.py")
--        exec co in {}, {}
-+        exec(co, {}, {})
- 
-     def checkEmpty(self):
-         rf = RFunction("", "", "issue945", "empty.py", {})
---- src/RestrictedPython/tests/unpack.py.orig	2010-07-07 14:42:56 UTC
-+++ src/RestrictedPython/tests/unpack.py
-@@ -20,7 +20,7 @@ try:
- except ValueError:
-     pass
- else:
--    raise AssertionError, "expected 'unpack list of wrong size'"
-+    raise AssertionError("expected 'unpack list of wrong size'")
- 
- def u2(L):
-     x, (a, b), y = L
-@@ -37,9 +37,10 @@ try:
- except TypeError:
-     pass
- else:
--    raise AssertionError, "expected 'iteration over non-sequence'"
-+    raise AssertionError("expected 'iteration over non-sequence'")
- 
--def u3((x, y)):
-+def u3(xxx_todo_changeme):
-+    (x, y) = xxx_todo_changeme
-     assert x == 'a'
-     assert y == 'b'
-     return x, y
-@@ -58,7 +59,8 @@ def u5(x):
-         raise TypeError(x)
-     # This one is tricky to test, because the first level of unpacking
-     # has a TypeError instance.  That's a headache for the test driver.
--    except TypeError, [(a, b)]:
-+    except TypeError as xxx_todo_changeme1:
-+        [(a, b)] = xxx_todo_changeme1.args
-         assert a == 42
-         assert b == 666
- 
---- src/RestrictedPython/tests/verify.py.orig	2010-07-07 14:42:56 UTC
-+++ src/RestrictedPython/tests/verify.py
-@@ -83,7 +83,7 @@ def _verifycode(code):
-                     window[2].arg == "_write_"):
-                 # check that arg is appropriately wrapped
-                 for i, op in enumerate(window):
--                    print i, op.opname, op.arg
-+                    print(i, op.opname, op.arg)
-                 raise ValueError("unguard attribute set/del at %s:%d"
-                                  % (code.co_filename, line))
-         if op.opname.startswith("UNPACK"):
diff --git a/security/py-RestrictedPython/pkg-descr b/security/py-RestrictedPython/pkg-descr
deleted file mode 100644
index 30006591d683..000000000000
--- a/security/py-RestrictedPython/pkg-descr
+++ /dev/null
@@ -1,2 +0,0 @@
-RestrictedPython provides a restricted execution environment for Python,
-e.g. for running untrusted code.
diff --git a/sysutils/Makefile b/sysutils/Makefile
index de1f795f61f0..64919ddd5cd0 100644
--- a/sysutils/Makefile
+++ b/sysutils/Makefile
@@ -1093,7 +1093,6 @@
     SUBDIR += py-upt-pypi
     SUBDIR += py-upt-rubygems
     SUBDIR += py-uptime
-    SUBDIR += py-zdaemon
     SUBDIR += qchroot
     SUBDIR += qdirstat
     SUBDIR += qflipper
diff --git a/sysutils/py-zdaemon/Makefile b/sysutils/py-zdaemon/Makefile
deleted file mode 100644
index c78007cb7ddb..000000000000
--- a/sysutils/py-zdaemon/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-PORTNAME=	zdaemon
-PORTVERSION=	4.1.0
-PORTREVISION=	1
-CATEGORIES=	sysutils python
-MASTER_SITES=	PYPI
-PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
-
-MAINTAINER=	zope@FreeBSD.org
-COMMENT=	Daemon Process Control Library and Tools for Unix-bases Systems
-WWW=		https://pypi.org/project/zdaemon/
-
-LICENSE=	ZPL21
-LICENSE_FILE=	${WRKSRC}/LICENSE.txt
-
-RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}ZConfig>0:devel/py-zconfig@${PY_FLAVOR}
-
-NO_ARCH=	yes
-USES=		python zip
-USE_PYTHON=	autoplist distutils
-
-.include <bsd.port.mk>
diff --git a/sysutils/py-zdaemon/distinfo b/sysutils/py-zdaemon/distinfo
deleted file mode 100644
index fd551639ad44..000000000000
--- a/sysutils/py-zdaemon/distinfo
+++ /dev/null
@@ -1,2 +0,0 @@
-SHA256 (zdaemon-4.1.0.zip) = 185b374ab49f928bbcdb7572c5cd7c3a9e75324a005ce73dfee4208ce10ab1f9
-SIZE (zdaemon-4.1.0.zip) = 74287
diff --git a/sysutils/py-zdaemon/pkg-descr b/sysutils/py-zdaemon/pkg-descr
deleted file mode 100644
index fc970314c73b..000000000000
--- a/sysutils/py-zdaemon/pkg-descr
+++ /dev/null
@@ -1,6 +0,0 @@
-zdaemon is a Python package which provides APIs for managing
-applications run as daemons. Its principal use to date has
-been to manage the application server and storage server daemons
-for Zope / ZEO, although it is not limited to running Python-based
-applications (for instance, it has been used to manage the
-'spread' daemon).



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202501111322.50BDMAST061516>