From 83023afeed8e9ddf044ab31b4e2f9659ed49fbbd Mon Sep 17 00:00:00 2001 From: kleink Date: Wed, 1 Jun 2016 21:05:46 +0000 Subject: [PATCH] Update py-flask to 0.11. Version 0.11 ------------ Released on May 29th 2016, codename Absinthe. - Added support to serializing top-level arrays to :func:`flask.jsonify`. This introduces a security risk in ancient browsers. See :ref:`json-security` for details. - Added before_render_template signal. - Added `**kwargs` to :meth:`flask.Test.test_client` to support passing additional keyword arguments to the constructor of :attr:`flask.Flask.test_client_class`. - Added ``SESSION_REFRESH_EACH_REQUEST`` config key that controls the set-cookie behavior. If set to ``True`` a permanent session will be refreshed each request and get their lifetime extended, if set to ``False`` it will only be modified if the session actually modifies. Non permanent sessions are not affected by this and will always expire if the browser window closes. - Made Flask support custom JSON mimetypes for incoming data. - Added support for returning tuples in the form ``(response, headers)`` from a view function. - Added :meth:`flask.Config.from_json`. - Added :attr:`flask.Flask.config_class`. - Added :meth:`flask.config.Config.get_namespace`. - Templates are no longer automatically reloaded outside of debug mode. This can be configured with the new ``TEMPLATES_AUTO_RELOAD`` config key. - Added a workaround for a limitation in Python 3.3's namespace loader. - Added support for explicit root paths when using Python 3.3's namespace packages. - Added :command:`flask` and the ``flask.cli`` module to start the local debug server through the click CLI system. This is recommended over the old ``flask.run()`` method as it works faster and more reliable due to a different design and also replaces ``Flask-Script``. - Error handlers that match specific classes are now checked first, thereby allowing catching exceptions that are subclasses of HTTP exceptions (in ``werkzeug.exceptions``). This makes it possible for an extension author to create exceptions that will by default result in the HTTP error of their choosing, but may be caught with a custom error handler if desired. - Added :meth:`flask.Config.from_mapping`. - Flask will now log by default even if debug is disabled. The log format is now hardcoded but the default log handling can be disabled through the ``LOGGER_HANDLER_POLICY`` configuration key. - Removed deprecated module functionality. - Added the ``EXPLAIN_TEMPLATE_LOADING`` config flag which when enabled will instruct Flask to explain how it locates templates. This should help users debug when the wrong templates are loaded. - Enforce blueprint handling in the order they were registered for template loading. - Ported test suite to py.test. - Deprecated ``request.json`` in favour of ``request.get_json()``. - Add "pretty" and "compressed" separators definitions in jsonify() method. Reduces JSON response size when JSONIFY_PRETTYPRINT_REGULAR=False by removing unnecessary white space included by default after separators. - JSON responses are now terminated with a newline character, because it is a convention that UNIX text files end with a newline and some clients don't deal well when this newline is missing. See https://github.com/pallets/flask/pull/1262 -- this came up originally as a part of https://github.com/kennethreitz/httpbin/issues/168 - The automatically provided ``OPTIONS`` method is now correctly disabled if the user registered an overriding rule with the lowercase-version ``options`` (issue ``#1288``). - ``flask.json.jsonify`` now supports the ``datetime.date`` type (pull request ``#1326``). - Don't leak exception info of already catched exceptions to context teardown handlers (pull request ``#1393``). - Allow custom Jinja environment subclasses (pull request ``#1422``). - ``flask.g`` now has ``pop()`` and ``setdefault`` methods. - Turn on autoescape for ``flask.templating.render_template_string`` by default (pull request ``#1515``). - ``flask.ext`` is now deprecated (pull request ``#1484``). - ``send_from_directory`` now raises BadRequest if the filename is invalid on the server OS (pull request ``#1763``). - Added the ``JSONIFY_MIMETYPE`` configuration variable (pull request ``#1728``). - Exceptions during teardown handling will no longer leave bad application contexts lingering around. --- www/py-flask/ALTERNATIVES | 1 + www/py-flask/Makefile | 15 ++- www/py-flask/PLIST | 155 ++-------------------------- www/py-flask/distinfo | 11 +- www/py-flask/patches/patch-setup.py | 23 +++++ 5 files changed, 51 insertions(+), 154 deletions(-) create mode 100644 www/py-flask/ALTERNATIVES create mode 100644 www/py-flask/patches/patch-setup.py diff --git a/www/py-flask/ALTERNATIVES b/www/py-flask/ALTERNATIVES new file mode 100644 index 0000000000000..be5f8d1535bc3 --- /dev/null +++ b/www/py-flask/ALTERNATIVES @@ -0,0 +1 @@ +bin/flask @PREFIX@/bin/flask@PYVERSSUFFIX@ diff --git a/www/py-flask/Makefile b/www/py-flask/Makefile index 0aeb97763a451..d84decc32bf09 100644 --- a/www/py-flask/Makefile +++ b/www/py-flask/Makefile @@ -1,9 +1,9 @@ -# $NetBSD: Makefile,v 1.7 2014/01/25 10:30:28 wiz Exp $ +# $NetBSD: Makefile,v 1.8 2016/06/01 21:05:46 kleink Exp $ -DISTNAME= Flask-0.10.1 +DISTNAME= Flask-0.11 PKGNAME= ${PYPKGPREFIX}-${DISTNAME:tl} CATEGORIES= www python -MASTER_SITES= http://pypi.python.org/packages/source/F/Flask/ +MASTER_SITES= ${MASTER_SITE_PYPI:=F/Flask/} MAINTAINER= kleink@NetBSD.org HOMEPAGE= http://flask.pocoo.org/ @@ -12,9 +12,18 @@ LICENSE= modified-bsd USE_LANGUAGES= # empty +PLIST_SUBST+= PYVERSSUFFIX=${PYVERSSUFFIX:Q} + +DEPENDS+= ${PYPKGPREFIX}-click>=2.0:../../devel/py-click DEPENDS+= ${PYPKGPREFIX}-itsdangerous-[0-9]*:../../security/py-itsdangerous DEPENDS+= ${PYPKGPREFIX}-jinja2-[0-9]*:../../textproc/py-jinja2 DEPENDS+= ${PYPKGPREFIX}-werkzeug-[0-9]*:../../www/py-werkzeug +# actually TEST_DEPENDS +BUILD_DEPENDS+= ${PYPKGPREFIX}-test-[0-9]*:../../devel/py-test + +do-test: + cd ${WRKSRC} && py.test-${PYVERSSUFFIX} + .include "../../lang/python/egg.mk" .include "../../mk/bsd.pkg.mk" diff --git a/www/py-flask/PLIST b/www/py-flask/PLIST index 0af253c79114c..64acf8899da9d 100644 --- a/www/py-flask/PLIST +++ b/www/py-flask/PLIST @@ -1,13 +1,18 @@ -@comment $NetBSD: PLIST,v 1.3 2013/07/09 17:24:46 kleink Exp $ +@comment $NetBSD: PLIST,v 1.4 2016/06/01 21:05:46 kleink Exp $ +bin/flask${PYVERSSUFFIX} ${PYSITELIB}/${EGG_INFODIR}/PKG-INFO ${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt ${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt +${PYSITELIB}/${EGG_INFODIR}/entry_points.txt ${PYSITELIB}/${EGG_INFODIR}/not-zip-safe ${PYSITELIB}/${EGG_INFODIR}/requires.txt ${PYSITELIB}/${EGG_INFODIR}/top_level.txt ${PYSITELIB}/flask/__init__.py ${PYSITELIB}/flask/__init__.pyc ${PYSITELIB}/flask/__init__.pyo +${PYSITELIB}/flask/__main__.py +${PYSITELIB}/flask/__main__.pyc +${PYSITELIB}/flask/__main__.pyo ${PYSITELIB}/flask/_compat.py ${PYSITELIB}/flask/_compat.pyc ${PYSITELIB}/flask/_compat.pyo @@ -17,6 +22,9 @@ ${PYSITELIB}/flask/app.pyo ${PYSITELIB}/flask/blueprints.py ${PYSITELIB}/flask/blueprints.pyc ${PYSITELIB}/flask/blueprints.pyo +${PYSITELIB}/flask/cli.py +${PYSITELIB}/flask/cli.pyc +${PYSITELIB}/flask/cli.pyo ${PYSITELIB}/flask/config.py ${PYSITELIB}/flask/config.pyc ${PYSITELIB}/flask/config.pyo @@ -44,9 +52,6 @@ ${PYSITELIB}/flask/json.pyo ${PYSITELIB}/flask/logging.py ${PYSITELIB}/flask/logging.pyc ${PYSITELIB}/flask/logging.pyo -${PYSITELIB}/flask/module.py -${PYSITELIB}/flask/module.pyc -${PYSITELIB}/flask/module.pyo ${PYSITELIB}/flask/sessions.py ${PYSITELIB}/flask/sessions.pyc ${PYSITELIB}/flask/sessions.pyo @@ -59,148 +64,6 @@ ${PYSITELIB}/flask/templating.pyo ${PYSITELIB}/flask/testing.py ${PYSITELIB}/flask/testing.pyc ${PYSITELIB}/flask/testing.pyo -${PYSITELIB}/flask/testsuite/__init__.py -${PYSITELIB}/flask/testsuite/__init__.pyc -${PYSITELIB}/flask/testsuite/__init__.pyo -${PYSITELIB}/flask/testsuite/appctx.py -${PYSITELIB}/flask/testsuite/appctx.pyc -${PYSITELIB}/flask/testsuite/appctx.pyo -${PYSITELIB}/flask/testsuite/basic.py -${PYSITELIB}/flask/testsuite/basic.pyc -${PYSITELIB}/flask/testsuite/basic.pyo -${PYSITELIB}/flask/testsuite/blueprints.py -${PYSITELIB}/flask/testsuite/blueprints.pyc -${PYSITELIB}/flask/testsuite/blueprints.pyo -${PYSITELIB}/flask/testsuite/config.py -${PYSITELIB}/flask/testsuite/config.pyc -${PYSITELIB}/flask/testsuite/config.pyo -${PYSITELIB}/flask/testsuite/deprecations.py -${PYSITELIB}/flask/testsuite/deprecations.pyc -${PYSITELIB}/flask/testsuite/deprecations.pyo -${PYSITELIB}/flask/testsuite/examples.py -${PYSITELIB}/flask/testsuite/examples.pyc -${PYSITELIB}/flask/testsuite/examples.pyo -${PYSITELIB}/flask/testsuite/ext.py -${PYSITELIB}/flask/testsuite/ext.pyc -${PYSITELIB}/flask/testsuite/ext.pyo -${PYSITELIB}/flask/testsuite/helpers.py -${PYSITELIB}/flask/testsuite/helpers.pyc -${PYSITELIB}/flask/testsuite/helpers.pyo -${PYSITELIB}/flask/testsuite/regression.py -${PYSITELIB}/flask/testsuite/regression.pyc -${PYSITELIB}/flask/testsuite/regression.pyo -${PYSITELIB}/flask/testsuite/reqctx.py -${PYSITELIB}/flask/testsuite/reqctx.pyc -${PYSITELIB}/flask/testsuite/reqctx.pyo -${PYSITELIB}/flask/testsuite/signals.py -${PYSITELIB}/flask/testsuite/signals.pyc -${PYSITELIB}/flask/testsuite/signals.pyo -${PYSITELIB}/flask/testsuite/static/index.html -${PYSITELIB}/flask/testsuite/subclassing.py -${PYSITELIB}/flask/testsuite/subclassing.pyc -${PYSITELIB}/flask/testsuite/subclassing.pyo -${PYSITELIB}/flask/testsuite/templates/_macro.html -${PYSITELIB}/flask/testsuite/templates/context_template.html -${PYSITELIB}/flask/testsuite/templates/escaping_template.html -${PYSITELIB}/flask/testsuite/templates/mail.txt -${PYSITELIB}/flask/testsuite/templates/nested/nested.txt -${PYSITELIB}/flask/testsuite/templates/simple_template.html -${PYSITELIB}/flask/testsuite/templates/template_filter.html -${PYSITELIB}/flask/testsuite/templates/template_test.html -${PYSITELIB}/flask/testsuite/templating.py -${PYSITELIB}/flask/testsuite/templating.pyc -${PYSITELIB}/flask/testsuite/templating.pyo -${PYSITELIB}/flask/testsuite/test_apps/blueprintapp/__init__.py -${PYSITELIB}/flask/testsuite/test_apps/blueprintapp/__init__.pyc -${PYSITELIB}/flask/testsuite/test_apps/blueprintapp/__init__.pyo -${PYSITELIB}/flask/testsuite/test_apps/blueprintapp/apps/__init__.py -${PYSITELIB}/flask/testsuite/test_apps/blueprintapp/apps/__init__.pyc -${PYSITELIB}/flask/testsuite/test_apps/blueprintapp/apps/__init__.pyo -${PYSITELIB}/flask/testsuite/test_apps/blueprintapp/apps/admin/__init__.py -${PYSITELIB}/flask/testsuite/test_apps/blueprintapp/apps/admin/__init__.pyc -${PYSITELIB}/flask/testsuite/test_apps/blueprintapp/apps/admin/__init__.pyo -${PYSITELIB}/flask/testsuite/test_apps/blueprintapp/apps/admin/static/css/test.css -${PYSITELIB}/flask/testsuite/test_apps/blueprintapp/apps/admin/static/test.txt -${PYSITELIB}/flask/testsuite/test_apps/blueprintapp/apps/admin/templates/admin/index.html -${PYSITELIB}/flask/testsuite/test_apps/blueprintapp/apps/frontend/__init__.py -${PYSITELIB}/flask/testsuite/test_apps/blueprintapp/apps/frontend/__init__.pyc -${PYSITELIB}/flask/testsuite/test_apps/blueprintapp/apps/frontend/__init__.pyo -${PYSITELIB}/flask/testsuite/test_apps/blueprintapp/apps/frontend/templates/frontend/index.html -${PYSITELIB}/flask/testsuite/test_apps/config_module_app.py -${PYSITELIB}/flask/testsuite/test_apps/config_module_app.pyc -${PYSITELIB}/flask/testsuite/test_apps/config_module_app.pyo -${PYSITELIB}/flask/testsuite/test_apps/config_package_app/__init__.py -${PYSITELIB}/flask/testsuite/test_apps/config_package_app/__init__.pyc -${PYSITELIB}/flask/testsuite/test_apps/config_package_app/__init__.pyo -${PYSITELIB}/flask/testsuite/test_apps/flask_broken/__init__.py -${PYSITELIB}/flask/testsuite/test_apps/flask_broken/__init__.pyc -${PYSITELIB}/flask/testsuite/test_apps/flask_broken/__init__.pyo -${PYSITELIB}/flask/testsuite/test_apps/flask_broken/b.py -${PYSITELIB}/flask/testsuite/test_apps/flask_broken/b.pyc -${PYSITELIB}/flask/testsuite/test_apps/flask_broken/b.pyo -${PYSITELIB}/flask/testsuite/test_apps/flask_newext_package/__init__.py -${PYSITELIB}/flask/testsuite/test_apps/flask_newext_package/__init__.pyc -${PYSITELIB}/flask/testsuite/test_apps/flask_newext_package/__init__.pyo -${PYSITELIB}/flask/testsuite/test_apps/flask_newext_package/submodule.py -${PYSITELIB}/flask/testsuite/test_apps/flask_newext_package/submodule.pyc -${PYSITELIB}/flask/testsuite/test_apps/flask_newext_package/submodule.pyo -${PYSITELIB}/flask/testsuite/test_apps/flask_newext_simple.py -${PYSITELIB}/flask/testsuite/test_apps/flask_newext_simple.pyc -${PYSITELIB}/flask/testsuite/test_apps/flask_newext_simple.pyo -${PYSITELIB}/flask/testsuite/test_apps/flaskext/__init__.py -${PYSITELIB}/flask/testsuite/test_apps/flaskext/__init__.pyc -${PYSITELIB}/flask/testsuite/test_apps/flaskext/__init__.pyo -${PYSITELIB}/flask/testsuite/test_apps/flaskext/oldext_package/__init__.py -${PYSITELIB}/flask/testsuite/test_apps/flaskext/oldext_package/__init__.pyc -${PYSITELIB}/flask/testsuite/test_apps/flaskext/oldext_package/__init__.pyo -${PYSITELIB}/flask/testsuite/test_apps/flaskext/oldext_package/submodule.py -${PYSITELIB}/flask/testsuite/test_apps/flaskext/oldext_package/submodule.pyc -${PYSITELIB}/flask/testsuite/test_apps/flaskext/oldext_package/submodule.pyo -${PYSITELIB}/flask/testsuite/test_apps/flaskext/oldext_simple.py -${PYSITELIB}/flask/testsuite/test_apps/flaskext/oldext_simple.pyc -${PYSITELIB}/flask/testsuite/test_apps/flaskext/oldext_simple.pyo -${PYSITELIB}/flask/testsuite/test_apps/importerror.py -${PYSITELIB}/flask/testsuite/test_apps/importerror.pyc -${PYSITELIB}/flask/testsuite/test_apps/importerror.pyo -${PYSITELIB}/flask/testsuite/test_apps/lib/python2.5/site-packages/SiteEgg.egg -${PYSITELIB}/flask/testsuite/test_apps/lib/python2.5/site-packages/site_app.py -${PYSITELIB}/flask/testsuite/test_apps/lib/python2.5/site-packages/site_app.pyc -${PYSITELIB}/flask/testsuite/test_apps/lib/python2.5/site-packages/site_app.pyo -${PYSITELIB}/flask/testsuite/test_apps/lib/python2.5/site-packages/site_package/__init__.py -${PYSITELIB}/flask/testsuite/test_apps/lib/python2.5/site-packages/site_package/__init__.pyc -${PYSITELIB}/flask/testsuite/test_apps/lib/python2.5/site-packages/site_package/__init__.pyo -${PYSITELIB}/flask/testsuite/test_apps/main_app.py -${PYSITELIB}/flask/testsuite/test_apps/main_app.pyc -${PYSITELIB}/flask/testsuite/test_apps/main_app.pyo -${PYSITELIB}/flask/testsuite/test_apps/moduleapp/__init__.py -${PYSITELIB}/flask/testsuite/test_apps/moduleapp/__init__.pyc -${PYSITELIB}/flask/testsuite/test_apps/moduleapp/__init__.pyo -${PYSITELIB}/flask/testsuite/test_apps/moduleapp/apps/__init__.py -${PYSITELIB}/flask/testsuite/test_apps/moduleapp/apps/__init__.pyc -${PYSITELIB}/flask/testsuite/test_apps/moduleapp/apps/__init__.pyo -${PYSITELIB}/flask/testsuite/test_apps/moduleapp/apps/admin/__init__.py -${PYSITELIB}/flask/testsuite/test_apps/moduleapp/apps/admin/__init__.pyc -${PYSITELIB}/flask/testsuite/test_apps/moduleapp/apps/admin/__init__.pyo -${PYSITELIB}/flask/testsuite/test_apps/moduleapp/apps/admin/static/css/test.css -${PYSITELIB}/flask/testsuite/test_apps/moduleapp/apps/admin/static/test.txt -${PYSITELIB}/flask/testsuite/test_apps/moduleapp/apps/admin/templates/index.html -${PYSITELIB}/flask/testsuite/test_apps/moduleapp/apps/frontend/__init__.py -${PYSITELIB}/flask/testsuite/test_apps/moduleapp/apps/frontend/__init__.pyc -${PYSITELIB}/flask/testsuite/test_apps/moduleapp/apps/frontend/__init__.pyo -${PYSITELIB}/flask/testsuite/test_apps/moduleapp/apps/frontend/templates/index.html -${PYSITELIB}/flask/testsuite/test_apps/path/installed_package/__init__.py -${PYSITELIB}/flask/testsuite/test_apps/path/installed_package/__init__.pyc -${PYSITELIB}/flask/testsuite/test_apps/path/installed_package/__init__.pyo -${PYSITELIB}/flask/testsuite/test_apps/subdomaintestmodule/__init__.py -${PYSITELIB}/flask/testsuite/test_apps/subdomaintestmodule/__init__.pyc -${PYSITELIB}/flask/testsuite/test_apps/subdomaintestmodule/__init__.pyo -${PYSITELIB}/flask/testsuite/test_apps/subdomaintestmodule/static/hello.txt -${PYSITELIB}/flask/testsuite/testing.py -${PYSITELIB}/flask/testsuite/testing.pyc -${PYSITELIB}/flask/testsuite/testing.pyo -${PYSITELIB}/flask/testsuite/views.py -${PYSITELIB}/flask/testsuite/views.pyc -${PYSITELIB}/flask/testsuite/views.pyo ${PYSITELIB}/flask/views.py ${PYSITELIB}/flask/views.pyc ${PYSITELIB}/flask/views.pyo diff --git a/www/py-flask/distinfo b/www/py-flask/distinfo index e3b0474bd5d26..da2c884f5d368 100644 --- a/www/py-flask/distinfo +++ b/www/py-flask/distinfo @@ -1,6 +1,7 @@ -$NetBSD: distinfo,v 1.3 2015/11/04 02:47:27 agc Exp $ +$NetBSD: distinfo,v 1.4 2016/06/01 21:05:46 kleink Exp $ -SHA1 (Flask-0.10.1.tar.gz) = d3d078262b053f4438e2ed3fd6f9b923c2c92172 -RMD160 (Flask-0.10.1.tar.gz) = 8f06ed2da14ed2dfbad7a38026a32f1117fb7600 -SHA512 (Flask-0.10.1.tar.gz) = 0008d62d03a46b071c7d0510513d011a9bfd2b77df7f677371a446ca9805d16b1ee5e17dd8dd7cde6443a629370234e44735e20381de20a7da385969797f053f -Size (Flask-0.10.1.tar.gz) = 544247 bytes +SHA1 (Flask-0.11.tar.gz) = 9a080ae1544583193ddc8c98787107c55ab89b34 +RMD160 (Flask-0.11.tar.gz) = 3a5c9c8835d57da552b7f0b6cfee2f58b0f7590b +SHA512 (Flask-0.11.tar.gz) = 77ee9998c96ba5e4eb007b81e04a051a6f8fc3ac837496a8c9e6637fdbff3e6fbba4912919b1cb2c5ed72951cc9fb8eb28d699e3f15de14ecbb51c362111eafc +Size (Flask-0.11.tar.gz) = 563928 bytes +SHA1 (patch-setup.py) = f8eb610f7e620355862d0d8edb818636f7e6d3c3 diff --git a/www/py-flask/patches/patch-setup.py b/www/py-flask/patches/patch-setup.py new file mode 100644 index 0000000000000..5912ddf916961 --- /dev/null +++ b/www/py-flask/patches/patch-setup.py @@ -0,0 +1,23 @@ +$NetBSD: patch-setup.py,v 1.1 2016/06/01 21:05:46 kleink Exp $ + +Adjust script path to allow multiple Python version installs. + +--- setup.py.orig 2016-05-22 08:33:12.000000000 +0000 ++++ setup.py +@@ -43,6 +43,7 @@ Links + + """ + import re ++import sys + import ast + from setuptools import setup + +@@ -93,6 +94,6 @@ setup( + ], + entry_points=''' + [console_scripts] +- flask=flask.cli:main +- ''' ++ flask%s=flask.cli:main ++ ''' % sys.version[0:3] + )