diff options
-rw-r--r-- | .builds/debian-10-with-site-packages.yml | 59 | ||||
-rw-r--r-- | .builds/fedora-33-with-site-packages.yml | 61 | ||||
-rw-r--r-- | Dockerfile-fedora-python3-sqlite | 43 | ||||
-rw-r--r-- | docs/source/siteadmin/deploying.rst | 11 | ||||
-rw-r--r-- | docs/source/siteadmin/media-types.rst | 10 | ||||
-rw-r--r-- | docs/source/siteadmin/relnotes.rst | 2 |
6 files changed, 160 insertions, 26 deletions
diff --git a/.builds/debian-10-with-site-packages.yml b/.builds/debian-10-with-site-packages.yml new file mode 100644 index 00000000..8b8760a7 --- /dev/null +++ b/.builds/debian-10-with-site-packages.yml @@ -0,0 +1,59 @@ +image: debian/buster +packages: + # Install bootstrap and configure dependencies. + - automake + - nodejs + - npm + - python3-dev + - virtualenv + + # Install make and runtime dependencies. + - python3-alembic + - python3-jsonschema + - python3-kombu + - python3-lxml + - python3-migrate + - python3-pillow + - python3-py + - python3-pytest + - python3-pytest-xdist + - python3-snowballstemmer + - python3-sphinx + - python3-sphinxcontrib.websupport + - python3-webtest + + # Install audio dependencies. + - gstreamer1.0-libav + - gstreamer1.0-plugins-bad + - gstreamer1.0-plugins-base + - gstreamer1.0-plugins-good + - gstreamer1.0-plugins-ugly + - python3-gst-1.0 + - python3-numpy + + # Install video dependencies. + - gir1.2-gst-plugins-base-1.0 + - gir1.2-gstreamer-1.0 + - gstreamer1.0-tools + - python3-gi + + # Install raw image dependencies. + - libexiv2-dev + - libboost-python-dev + + # Install document (PDF-only) dependencies. + - poppler-utils + +tasks: + - core: | + cd mediagoblin + git show --oneline --no-patch + ./bootstrap.sh + VIRTUALENV_FLAGS='--system-site-packages' ./configure + make + + # Install raw image library from PyPI as not available in Debian 10. + ./bin/pip install py3exiv2 + + # Run the tests, explicitly listing out skipped tests. + ./bin/python -m pytest -rs ./mediagoblin/tests --boxed diff --git a/.builds/fedora-33-with-site-packages.yml b/.builds/fedora-33-with-site-packages.yml new file mode 100644 index 00000000..562441fd --- /dev/null +++ b/.builds/fedora-33-with-site-packages.yml @@ -0,0 +1,61 @@ +image: fedora/33 +packages: + # Install bootstrap and configure dependencies. + - automake + # - gcc + # - make + - nodejs + - npm + - python3-devel + - virtualenv + + # Install make and runtime dependencies. + # - findutils + - python3-alembic + - python3-celery + - python3-jsonschema + - python3-kombu + - python3-lxml + - python3-migrate + - python3-pillow + - python3-py + - python3-pytest + - python3-pytest-xdist + - python3-snowballstemmer + - python3-sphinx + - python3-webtest + - libffi-devel + # - which + + # Install audio dependencies. + - gstreamer1-plugins-base + - gstreamer1-plugins-bad-free + - gstreamer1-plugins-good + - gstreamer1-plugins-ugly-free + - python3-numpy + + # Install video dependencies. + - python3-gobject + - python3-gstreamer1 + - gstreamer1-plugin-openh264 + + # # Install raw image dependencies. + # - libexiv2-dev + # - libboost-python-dev + + # # Install document (PDF-only) dependencies. + # - poppler-utils + +tasks: + - core: | + cd mediagoblin + git show --oneline --no-patch + ./bootstrap.sh + VIRTUALENV_FLAGS='--system-site-packages' ./configure + make + + # # Install raw image library from PyPI as not available in Debian 10. + # ./bin/pip install py3exiv2 + + # Run the tests, explicitly listing out skipped tests. + ./bin/python -m pytest -rs ./mediagoblin/tests --boxed diff --git a/Dockerfile-fedora-python3-sqlite b/Dockerfile-fedora-python3-sqlite index 287ebc9c..72f2874d 100644 --- a/Dockerfile-fedora-python3-sqlite +++ b/Dockerfile-fedora-python3-sqlite @@ -8,7 +8,7 @@ # # See Dockerfile-debian-python3-sqlite for details. -FROM fedora:31 +FROM fedora:33 RUN dnf -y install \ automake \ @@ -39,22 +39,23 @@ python3-sphinx \ # python3-sphinxcontrib.websupport \ python3-webtest \ # Fedora only -which +which \ +# To build waitress on Fedora 33 (not required for 31) +libffi-devel -# RUN dnf -y install \ -# gstreamer1.0-libav \ -# gstreamer1.0-plugins-bad \ -# gstreamer1.0-plugins-base \ -# gstreamer1.0-plugins-good \ -# gstreamer1.0-plugins-ugly \ -# python3-gst-1.0 \ -# python3-numpy +RUN dnf -y install \ +gstreamer1-plugins-base \ +gstreamer1-plugins-bad-free \ +gstreamer1-plugins-good \ +gstreamer1-plugins-ugly-free \ +python3-numpy -# RUN apt-get install -y \ -# gir1.2-gst-plugins-base-1.0 \ -# gir1.2-gstreamer-1.0 \ -# gstreamer1.0-tools \ -# python3-gi +RUN dnf search gst + +RUN dnf -y install \ +python3-gobject \ +python3-gstreamer1 \ +gstreamer1-plugin-openh264 # RUN apt-get install -y \ # poppler-utils @@ -72,7 +73,7 @@ RUN chown root:www-data /var/www USER www-data -RUN git clone --depth=1 git://git.savannah.gnu.org/mediagoblin.git --branch master . +RUN git clone --depth=1 https://git.sr.ht/~mediagoblin/mediagoblin --branch ci . RUN git show --oneline --no-patch RUN ./bootstrap.sh @@ -81,8 +82,8 @@ 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 echo '[[mediagoblin.media_types.audio]]' >> mediagoblin.ini +RUN echo '[[mediagoblin.media_types.video]]' >> mediagoblin.ini # Fedora only RUN ./bin/pip install certifi @@ -90,6 +91,12 @@ RUN ./bin/gmg dbupdate RUN ./bin/gmg adduser --username admin --password a --email admin@example.com RUN ./bin/gmg makeadmin admin +# Without the following we get "ModuleNotFoundError: No module named +# 'paste.script'" when running ./lazyserver.sh. Not sure why as PasteScript is +# in the setup.py requirements. Before this we have Paste==3.4.0; after we have +# Paste==3.5.0. +RUN ./bin/pip install PasteScript --force-reinstall + EXPOSE 6543/tcp CMD ["./lazyserver.sh", "--server-name=broadcast"] diff --git a/docs/source/siteadmin/deploying.rst b/docs/source/siteadmin/deploying.rst index 09619997..75eb8826 100644 --- a/docs/source/siteadmin/deploying.rst +++ b/docs/source/siteadmin/deploying.rst @@ -65,7 +65,7 @@ MediaGoblin has the following core dependencies: - `Node.js <https://nodejs.org>`_ These instructions have been tested on Debian 10, CentOS 8 and -Fedora 31. These instructions should approximately translate to recent +Fedora 33. These instructions should approximately translate to recent Debian derivatives such as Ubuntu 18.04 and Trisquel 8, and to relatives of Fedora such as CentOS 8. @@ -75,12 +75,13 @@ Issue the following commands: # Debian 10 sudo apt update - sudo apt install automake git nodejs npm python3-dev python3-gi \ + sudo apt install automake git nodejs npm python3-dev \ python3-gst-1.0 python3-lxml python3-pil virtualenv - # Fedora 31 - sudo dnf install automake gcc git-core make nodejs npm python3-devel \ - python3-lxml python3-pillow virtualenv + # Fedora 33 + sudo dnf install automake gcc git-core make nodejs npm \ + libffi-devel python3-devel python3-lxml python3-pillow \ + virtualenv For a production deployment, you'll also need Nginx as frontend web server and RabbitMQ to store the media processing queue:: diff --git a/docs/source/siteadmin/media-types.rst b/docs/source/siteadmin/media-types.rst index 6c7409eb..1c2ebcec 100644 --- a/docs/source/siteadmin/media-types.rst +++ b/docs/source/siteadmin/media-types.rst @@ -90,11 +90,11 @@ as whatever GStreamer plugins you want, good/bad/ugly): .. code-block:: bash - # Debian and co. + # Debian sudo apt install python3-gst-1.0 gstreamer1.0-plugins-{base,bad,good,ugly} \ gstreamer1.0-libav python3-numpy - # Fedora and co. + # Fedora sudo dnf install gstreamer1-plugins-{base,bad-free,good,ugly-free} \ python3-numpy @@ -130,11 +130,15 @@ good/bad/ugly): .. code-block:: bash - # Debian and co. + # Debian sudo apt install python3-gi gstreamer1.0-tools gir1.2-gstreamer-1.0 \ gir1.2-gst-plugins-base-1.0 gstreamer1.0-plugins-{good,bad,ugly} \ gstreamer1.0-libav python3-gst-1.0 + # Fedora + sudo dnf install gstreamer1-plugins-{base,bad-free,good,ugly-free,openh264} \ + python3-gobject python3-gstreamer1 + .. note:: We unfortunately do not have working installation instructions for Fedora and diff --git a/docs/source/siteadmin/relnotes.rst b/docs/source/siteadmin/relnotes.rst index 1292e114..36e14193 100644 --- a/docs/source/siteadmin/relnotes.rst +++ b/docs/source/siteadmin/relnotes.rst @@ -29,6 +29,8 @@ carefully, or at least skim over it. **Improvements:** +- Add Debian and Fedora CI builds for sourcehut (Ben Sturmfels) +- Extend Fedora install docs and development Dockerfile to support audio/video (Ben Sturmfels) - Remove Python 2 installation and compatibility code (Ben Sturmfels) - Reinstate Python 3 audio spectrograms [#5610] (Fernando Gutierrez) |