flup is not supported on Python3, so MediaGoblin doesn't have a supported way to enable FastCGI support.
This change removes all references to flup and FastCGI and updates deployment instructions to use simple HTTP forwarding with nginx to access mediagoblin's non-static resources.
Prior to this change, when pagination kicks in on the user management or report
management panel, the following exception is raised:
TypeError: a bytes-like object is required, not 'str'
The cause is that `request.query_string` in the URL parameters in raw bytestring
form as per Werkzeug documentation.
This doesn't seem to be an issue in my Guix SD/Python 3.7 testing, but hit an
issue on Debian 9/Python3.5 where concatenating text to `request.query_string`
was causing the error:
TypeError: a bytes-like object is required, not 'str'
This clearly hasn't been an issue in the past though, so I suspect there's a
library somewhere that's on a different version and is behaving differently.
In addition to side-stepping spectrograms completely in Python 3 in 1038aea8,
this commit adds some fallbacks that will help with potential issues in Python 2.
Fixes Issue #5457
Signed-off-by: Ben Sturmfels <ben@sturm.com.au>
Author: Jorge <mediagoblin@gybs.waa>
This change adds a Python 3-specific audio thumbnailer that side-steps the
bundled Python 2-only `audioprocessing` module. Instead of an audio spectrogram,
Python 3 users will get a static image.
This also allows me to remove my ineffective customisations to
`audioprocessing`, returning it to the upstream version as should always be the
case for vendored code in "extlib".
Warning was:
PyGIWarning: GstPbutils was imported without specifying a version first. Use gi.require_version('GstPbutils', '1.0') before import to ensure that the right version gets loaded.
Switching from iteritems() to items() is technically less memory efficient on
Python 2, but this appeared be a significantly cleaner approach than adding six
to the template context. It's also the right choice assuming the project will at
some point go Python 3 only.