aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Dockerfile-debian-python2-sqlite80
-rw-r--r--Makefile.in1
-rw-r--r--configure.ac24
-rw-r--r--docs/source/siteadmin/deploying.rst14
-rw-r--r--docs/source/siteadmin/relnotes.rst2
-rw-r--r--docs/source/siteadmin/upgrading.rst14
-rw-r--r--mediagoblin/__init__.py12
-rw-r--r--setup.py90
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,
- )
diff --git a/setup.py b/setup.py
index c48acabc..91e93e22 100644
--- a/setup.py
+++ b/setup.py
@@ -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()