diff options
-rw-r--r-- | Dockerfile-debian-python2-sqlite | 80 | ||||
-rw-r--r-- | Makefile.in | 1 | ||||
-rw-r--r-- | configure.ac | 24 | ||||
-rw-r--r-- | docs/source/siteadmin/deploying.rst | 14 | ||||
-rw-r--r-- | docs/source/siteadmin/relnotes.rst | 2 | ||||
-rw-r--r-- | docs/source/siteadmin/upgrading.rst | 14 | ||||
-rw-r--r-- | mediagoblin/__init__.py | 12 | ||||
-rw-r--r-- | setup.py | 90 |
8 files changed, 9 insertions, 228 deletions
diff --git a/Dockerfile-debian-python2-sqlite b/Dockerfile-debian-python2-sqlite deleted file mode 100644 index 93b398d3..00000000 --- a/Dockerfile-debian-python2-sqlite +++ /dev/null @@ -1,80 +0,0 @@ -# A Dockerfile for MediaGoblin hacking. -# -# See Dockerfile-debian-python3-sqlite for documentation. - -FROM debian:buster - -RUN apt-get update && apt-get install -y \ -automake \ -git \ -nodejs \ -npm \ -python-dev \ -python-lxml \ -python-pil \ -virtualenv - -# RUN apt-get install -y \ -# python-alembic \ -# python-celery \ -# python-jsonschema \ -# python-kombu \ -# python-lxml \ -# python-migrate \ -# python-mock \ -# python-py \ -# python-pytest \ -# python-pytest-xdist \ -# python-six \ -# python-snowballstemmer \ -# python-sphinx \ -# python-sphinxcontrib.websupport \ -# python-webtest - -# RUN apt-get install -y \ -# gstreamer1.0-libav \ -# gstreamer1.0-plugins-bad \ -# gstreamer1.0-plugins-base \ -# gstreamer1.0-plugins-good \ -# gstreamer1.0-plugins-ugly \ -# python-gst-1.0 - -# RUN apt-get install -y \ -# gir1.2-gst-plugins-base-1.0 \ -# gir1.2-gstreamer-1.0 \ -# gstreamer1.0-tools \ -# python-gi - -RUN mkdir /opt/mediagoblin -RUN chown -R www-data:www-data /opt/mediagoblin -WORKDIR /opt/mediagoblin - -RUN mkdir --mode=g+w /var/www -RUN chown root:www-data /var/www - -RUN groupadd --system mediagoblin --gid 1024 && adduser www-data mediagoblin - -USER www-data - -RUN echo "1" - -RUN git clone --depth=1 git://git.savannah.gnu.org/mediagoblin.git --branch master . -# RUN git clone --depth=1 https://gitlab.com/BenSturmfels/mediagoblin.git --branch master . - -RUN ./bootstrap.sh -RUN VIRTUALENV_FLAGS='--system-site-packages' ./configure --without-python3 - -RUN make - -RUN ./bin/python -m pytest ./mediagoblin/tests --boxed - -# RUN echo '[[mediagoblin.media_types.audio]]' >> mediagoblin.ini -# RUN echo '[[mediagoblin.media_types.video]]' >> mediagoblin.ini - -RUN ./bin/gmg dbupdate -RUN ./bin/gmg adduser --username admin --password a --email admin@example.com -RUN ./bin/gmg makeadmin admin - -EXPOSE 6543/tcp - -CMD ["./lazyserver.sh", "--server-name=broadcast"] diff --git a/Makefile.in b/Makefile.in index 56e8a683..deb0f529 100644 --- a/Makefile.in +++ b/Makefile.in @@ -45,7 +45,6 @@ datarootdir = @datarootdir@ pkgdatadir = $(datadir)/@PACKAGE_NAME@ pkgincludedir = $(includedir)/@PACKAGE_NAME@ PYTHONPATH = $(pythondir)$(PATH_SEPARATOR)$(DESTDIR)$(pythondir) -USE_PYTHON3 = @USE_PYTHON3@ EXTLIB_INSTALLS = extlib/jquery extlib/video.js extlib/leaflet extlib/tinymce diff --git a/configure.ac b/configure.ac index 62b14b14..b75f1c56 100644 --- a/configure.ac +++ b/configure.ac @@ -79,26 +79,10 @@ dnl dnl In this section, we check for the presence of important commands dnl and programs. -dnl--A bit simpler python init---------------------------------------- -dnl Expect python2.7 or python2.6 unless --with-python3 is given. -dnl---- - - -AC_ARG_WITH([python3], - [AS_HELP_STRING([--with-python3], [Set up to use Python 3 by default.])], - [], - [with_python3=yes]) -AS_IF([test "x$with_python3" != xno], - AC_CHECK_PROGS([PYTHON], [python3], [none]) - AC_SUBST([USE_PYTHON3], [true]) - AS_IF([test "x$PYTHON" = xnone], - [AC_MSG_FAILURE( - [--with-python3 given but no acceptable python3 could be found])]), - AC_CHECK_PROGS([PYTHON], [python2.7], [none]) - AC_SUBST([USE_PYTHON3], [false]) - AS_IF([test "x$PYTHON" = xnone], - [AC_MSG_FAILURE( - [No acceptable python (2.7) could be found])])) +AC_CHECK_PROGS([PYTHON], [python3], [none]) +AS_IF([test "x$PYTHON" = xnone], + [AC_MSG_FAILURE( + [--with-python3 given but no acceptable python3 could be found])]) dnl---- dnl With the following set of macros, we implement an option diff --git a/docs/source/siteadmin/deploying.rst b/docs/source/siteadmin/deploying.rst index 9c88a04d..09619997 100644 --- a/docs/source/siteadmin/deploying.rst +++ b/docs/source/siteadmin/deploying.rst @@ -56,7 +56,7 @@ Dependencies MediaGoblin has the following core dependencies: -- Python 3.4+ (Python 2.7 is supported, but not recommended) +- Python 3.4+ - `python3-lxml <http://lxml.de/>`_ - `git <http://git-scm.com/>`_ - `SQLite <http://www.sqlite.org/>`_/`PostgreSQL <http://www.postgresql.org/>`_ @@ -82,13 +82,6 @@ Issue the following commands: sudo dnf install automake gcc git-core make nodejs npm python3-devel \ python3-lxml python3-pillow virtualenv -.. note:: - - MediaGoblin now uses Python 3 by default. To use Python 2, you may - instead substitute from "python3" to "python" for most package - names in the Debian instructions and this should cover dependency - installation. Python 2 installation has not been tested on Fedora. - For a production deployment, you'll also need Nginx as frontend web server and RabbitMQ to store the media processing queue:: @@ -265,11 +258,6 @@ Set up the environment:: $ VIRTUALENV_FLAGS='--system-site-packages' ./configure $ make -.. note:: - - If you'd prefer to run MediaGoblin with Python 2, pass in - ``--without-python3`` to the ``./configure`` command. - Create and set the proper permissions on the ``user_dev`` directory. This directory will be used to store uploaded media files:: diff --git a/docs/source/siteadmin/relnotes.rst b/docs/source/siteadmin/relnotes.rst index 69126834..2cb1a5cf 100644 --- a/docs/source/siteadmin/relnotes.rst +++ b/docs/source/siteadmin/relnotes.rst @@ -29,10 +29,12 @@ carefully, or at least skim over it. **Improvements:** + - Drop Python 2 installation support (Ben Sturmfels) **Bug fixes:** - Make LDAP plugin Python 3 compatible [#5607] (Olivier Mehani) +- Pin a compatible version of WTForms (milquetoast) 0.10.0 diff --git a/docs/source/siteadmin/upgrading.rst b/docs/source/siteadmin/upgrading.rst index 7b1109e3..47d78264 100644 --- a/docs/source/siteadmin/upgrading.rst +++ b/docs/source/siteadmin/upgrading.rst @@ -58,20 +58,6 @@ Upgrade (upgrading to Python 3) 6. Restart MediaGoblin -Upgrade (remaining on Python 2 - not recommended) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -1. Update to the latest release. In your ``mediagoblin`` directory, run: - ``git fetch && git checkout -q stable && git submodule update`` -2. Remove your existing installation: - ``rm -rf bin include lib lib64 node_modules`` -3. Install MediaGoblin: - ``./bootstrap.sh && ./configure --without-python3 && make`` -4. Update the database: - ``./bin/gmg dbupdate`` -5. Restart MediaGoblin - - Updating your system Python --------------------------- diff --git a/mediagoblin/__init__.py b/mediagoblin/__init__.py index d4ecd745..88dedd28 100644 --- a/mediagoblin/__init__.py +++ b/mediagoblin/__init__.py @@ -14,16 +14,4 @@ # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -import warnings - -import six - from mediagoblin._version import __version__ - - -if six.PY2: - warnings.warn( - "MediaGoblin's Python 2 support will be removed in the next" - " release. Please consider switching to Python 3.", - DeprecationWarning, - ) @@ -23,8 +23,6 @@ import re import sys -PY2 = sys.version_info[0] == 2 # six is not installed yet - READMEFILE = "README" VERSIONFILE = os.path.join("mediagoblin", "_version.py") VSRE = r"^__version__ = ['\"]([^'\"]*)['\"]" @@ -40,86 +38,6 @@ def get_version(): raise RuntimeError("Unable to find version string in %s." % VERSIONFILE) -pyversion_install_requires = [] -if PY2: - pyversion_install_requires.append('alabaster<=0.7.999') # Tested with 0.7.12 - pyversion_install_requires.append('alembic<=1.4.999') # Tested with 1.4.2 - pyversion_install_requires.append('amqp<=2.5.999') # Tested with 2.5.2 - pyversion_install_requires.append('apipkg<=1.999') # Tested with 1.5 - pyversion_install_requires.append('atomicwrites<=1.4.999') # Tested with 1.4.0 - pyversion_install_requires.append('attrs<=19.3.999') # Tested with 19.3.0 - pyversion_install_requires.append('Babel<=2.8.999') # Tested with 2.8.0 - pyversion_install_requires.append('beautifulsoup4<=4.7.999') # Tested with 4.7.1 - pyversion_install_requires.append('billiard<=3.5.0.999') # Tested with 3.5.0.5 - pyversion_install_requires.append('celery<=4.2.999') # Tested with 4.2.2 - pyversion_install_requires.append('certifi<=2020.4.5.999') # Tested with 2020.4.5.1 - pyversion_install_requires.append('chardet<=3.0.999') # Tested with 3.0.4 - pyversion_install_requires.append('configobj<=5.0.999') # Tested with 5.0.6 - pyversion_install_requires.append('configparser<=5.0.999') # Tested with 5.0.0 - pyversion_install_requires.append('contextlib2<=0.6.999') # Tested with 0.6.0.post1 - pyversion_install_requires.append('decorator<=4.4.999') # Tested with 4.4.2 - pyversion_install_requires.append('dnspython<=1.16.999') # Tested with 1.16.0 - pyversion_install_requires.append('docutils<=0.999') # Tested with 0.16 - pyversion_install_requires.append('email-validator<=1.0.999') # Tested with 1.0.5 - pyversion_install_requires.append('execnet<=1.7.999') # Tested with 1.7.1 - pyversion_install_requires.append('ExifRead<=2.1.999') # Tested with 2.1.2 - pyversion_install_requires.append('funcsigs<=1.0.999') # Tested with 1.0.2 - pyversion_install_requires.append('functools32<=3.2.999') # Tested with 3.2.3.post2 - pyversion_install_requires.append('idna<=2.999') # Tested with 2.9 - pyversion_install_requires.append('imagesize<=1.2.999') # Tested with 1.2.0 - pyversion_install_requires.append('importlib-metadata<=1.6.999') # Tested with 1.6.0 - pyversion_install_requires.append('itsdangerous<=1.1.999') # Tested with 1.1.0 - pyversion_install_requires.append('Jinja2<=2.11.999') # Tested with 2.11.2 - pyversion_install_requires.append('jsonschema<=3.2.999') # Tested with 3.2.0 - pyversion_install_requires.append('kombu<=4.3.999') # Tested with 4.3.0 - pyversion_install_requires.append('Mako<=1.1.999') # Tested with 1.1.2 - pyversion_install_requires.append('Markdown<=3.1.999') # Tested with 3.1.1 - pyversion_install_requires.append('MarkupSafe<=1.1.999') # Tested with 1.1.1 - pyversion_install_requires.append('mock<=1.0.999') # Tested with 1.0.1 - pyversion_install_requires.append('more-itertools<=5.0.999') # Tested with 5.0.0 - pyversion_install_requires.append('oauthlib<=3.1.999') # Tested with 3.1.0 - pyversion_install_requires.append('packaging<=20.999') # Tested with 20.3 - pyversion_install_requires.append('Paste<=3.4.999') # Tested with 3.4.0 - pyversion_install_requires.append('PasteDeploy<=2.1.999') # Tested with 2.1.0 - pyversion_install_requires.append('PasteScript<=3.2.999') # Tested with 3.2.0 - pyversion_install_requires.append('pathlib2<=2.3.999') # Tested with 2.3.5 - pyversion_install_requires.append('pbr<=5.4.999') # Tested with 5.4.5 - pyversion_install_requires.append('pkg-resources<=0.0.999') # Tested with 0.0.0 - pyversion_install_requires.append('pluggy<=0.13.999') # Tested with 0.13.1 - pyversion_install_requires.append('py<=1.8.999') # Tested with 1.8.1 - pyversion_install_requires.append('py-bcrypt<=0.999') # Tested with 0.4 - pyversion_install_requires.append('Pygments<=2.5.999') # Tested with 2.5.2 - pyversion_install_requires.append('PyLD<=1.0.999') # Tested with 1.0.5 - pyversion_install_requires.append('pyparsing<=2.4.999') # Tested with 2.4.7 - pyversion_install_requires.append('pyrsistent<=0.16.999') # Tested with 0.16.0 - pyversion_install_requires.append('pytest<=4.6.999') # Tested with 4.6.9 - pyversion_install_requires.append('pytest-forked<=1.1.999') # Tested with 1.1.3 - pyversion_install_requires.append('pytest-xdist<=1.31.999') # Tested with 1.31.0 - pyversion_install_requires.append('python-dateutil<=2.8.999') # Tested with 2.8.1 - pyversion_install_requires.append('python-editor<=1.0.999') # Tested with 1.0.4 - pyversion_install_requires.append('pytz<=2020.999') # Tested with 2020.1 - pyversion_install_requires.append('requests<=2.23.999') # Tested with 2.23.0 - pyversion_install_requires.append('scandir<=1.10.999') # Tested with 1.10.0 - pyversion_install_requires.append('six<=1.12.999') # Tested with 1.12.0 - pyversion_install_requires.append('snowballstemmer<=2.0.999') # Tested with 2.0.0 - pyversion_install_requires.append('Sphinx<=1.8.999') # Tested with 1.8.5 - pyversion_install_requires.append('sphinxcontrib-websupport<=1.2.999') # Tested with 1.2.2 - pyversion_install_requires.append('SQLAlchemy<=1.3.999') # Tested with 1.3.16 - pyversion_install_requires.append('sqlalchemy-migrate<=0.13.999') # Tested with 0.13.0 - pyversion_install_requires.append('sqlparse<=0.3.999') # Tested with 0.3.1 - pyversion_install_requires.append('Tempita<=0.5.999') # Tested with 0.5.3.dev0 - pyversion_install_requires.append('typing<=3.7.4.999') # Tested with 3.7.4.1 - pyversion_install_requires.append('Unidecode<=1.1.999') # Tested with 1.1.1 - pyversion_install_requires.append('urllib3<=1.25.999') # Tested with 1.25.9 - pyversion_install_requires.append('vine<=1.3.999') # Tested with 1.3.0 - pyversion_install_requires.append('waitress<=1.4.999') # Tested with 1.4.3 - pyversion_install_requires.append('wcwidth<=0.1.999') # Tested with 0.1.9 - pyversion_install_requires.append('WebOb<=1.8.999') # Tested with 1.8.6 - pyversion_install_requires.append('WebTest<=2.0.999') # Tested with 2.0.35 - pyversion_install_requires.append('Werkzeug<=0.16.999') # Tested with 0.16.1 - pyversion_install_requires.append('WTForms<=2.3.999') # Tested with 2.3.1 - pyversion_install_requires.append('zipp<=1.2.999') # Tested with 1.2.0 - install_requires = [ 'waitress', 'alembic>=0.7.5', @@ -151,7 +69,7 @@ install_requires = [ 'PasteScript', 'requests>=2.6.0', 'certifi>=2017.4.17', # Reported to be a requirement on Fedora 31 (TODO: test) - 'PyLD<2.0.0', # Python 2, but also breaks a Python 3 test if >= 2.0.0. + 'PyLD<2.0.0', # Breaks a Python 3 test if >= 2.0.0. 'ExifRead>=2.0.0', 'email-validator', # Seems that WTForms must have dropped this. # This is optional: @@ -160,11 +78,7 @@ install_requires = [ # their package managers. # 'lxml', # 'Pillow', -] + pyversion_install_requires - -if not PY2: - # PyPI version (1.4.2) does not have proper Python 3 support - install_requires.append('ExifRead>=2.0.0') +] with open(READMEFILE, encoding="utf-8") as fobj: long_description = fobj.read() |