mirror of
https://github.com/element-hq/synapse.git
synced 2024-11-22 01:25:44 +03:00
Install the optional dependencies into the debian package (#4325)
since #4298, the optional dependencies are no longer installed with a simple `pip install .`, which meant that they were not being included in the debian package. The easy fix to that is dh_virtualenv --extras, but that needs dh_virtualenv 1.1...
This commit is contained in:
parent
d7843f47b6
commit
7134832c01
5 changed files with 37 additions and 20 deletions
1
changelog.d/4325.feature
Normal file
1
changelog.d/4325.feature
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Synapse can now have its conditional/extra dependencies installed by pip. This functionality can be used by using `pip install matrix-synapse[feature]`, where feature is a comma separated list with the possible values "email.enable_notifs", "ldap3", "postgres", "saml2", "url_preview", and "test". If you want to install all optional dependencies, you can use "all" instead.
|
3
debian/build_virtualenv
vendored
3
debian/build_virtualenv
vendored
|
@ -33,7 +33,8 @@ dh_virtualenv \
|
||||||
--preinstall="lxml" \
|
--preinstall="lxml" \
|
||||||
--preinstall="mock" \
|
--preinstall="mock" \
|
||||||
--extra-pip-arg="--no-cache-dir" \
|
--extra-pip-arg="--no-cache-dir" \
|
||||||
--extra-pip-arg="--compile"
|
--extra-pip-arg="--compile" \
|
||||||
|
--extras="all"
|
||||||
|
|
||||||
# we copy the tests to a temporary directory so that we can put them on the
|
# we copy the tests to a temporary directory so that we can put them on the
|
||||||
# PYTHONPATH without putting the uninstalled synapse on the pythonpath.
|
# PYTHONPATH without putting the uninstalled synapse on the pythonpath.
|
||||||
|
|
2
debian/control
vendored
2
debian/control
vendored
|
@ -5,7 +5,7 @@ Maintainer: Synapse Packaging team <packages@matrix.org>
|
||||||
Build-Depends:
|
Build-Depends:
|
||||||
debhelper (>= 9),
|
debhelper (>= 9),
|
||||||
dh-systemd,
|
dh-systemd,
|
||||||
dh-virtualenv (>= 1.0),
|
dh-virtualenv (>= 1.1),
|
||||||
lsb-release,
|
lsb-release,
|
||||||
python3-dev,
|
python3-dev,
|
||||||
python3,
|
python3,
|
||||||
|
|
|
@ -11,6 +11,35 @@
|
||||||
|
|
||||||
# Get the distro we want to pull from as a dynamic build variable
|
# Get the distro we want to pull from as a dynamic build variable
|
||||||
ARG distro=""
|
ARG distro=""
|
||||||
|
|
||||||
|
###
|
||||||
|
### Stage 0: build a dh-virtualenv
|
||||||
|
###
|
||||||
|
FROM ${distro} as builder
|
||||||
|
|
||||||
|
RUN apt-get update -qq -o Acquire::Languages=none
|
||||||
|
RUN env DEBIAN_FRONTEND=noninteractive apt-get install \
|
||||||
|
-yqq --no-install-recommends \
|
||||||
|
build-essential \
|
||||||
|
ca-certificates \
|
||||||
|
devscripts \
|
||||||
|
equivs \
|
||||||
|
wget
|
||||||
|
|
||||||
|
# fetch and unpack the package
|
||||||
|
RUN wget -q -O /dh-virtuenv-1.1.tar.gz https://github.com/spotify/dh-virtualenv/archive/1.1.tar.gz
|
||||||
|
RUN tar xvf /dh-virtuenv-1.1.tar.gz
|
||||||
|
|
||||||
|
# install its build deps
|
||||||
|
RUN cd dh-virtualenv-1.1/ \
|
||||||
|
&& env DEBIAN_FRONTEND=noninteractive mk-build-deps -ri -t "apt-get -yqq --no-install-recommends"
|
||||||
|
|
||||||
|
# build it
|
||||||
|
RUN cd dh-virtualenv-1.1 && dpkg-buildpackage -us -uc -b
|
||||||
|
|
||||||
|
###
|
||||||
|
### Stage 1
|
||||||
|
###
|
||||||
FROM ${distro}
|
FROM ${distro}
|
||||||
|
|
||||||
# Install the build dependencies
|
# Install the build dependencies
|
||||||
|
@ -21,15 +50,15 @@ RUN apt-get update -qq -o Acquire::Languages=none \
|
||||||
debhelper \
|
debhelper \
|
||||||
devscripts \
|
devscripts \
|
||||||
dh-systemd \
|
dh-systemd \
|
||||||
dh-virtualenv \
|
|
||||||
equivs \
|
|
||||||
lsb-release \
|
lsb-release \
|
||||||
python3-dev \
|
python3-dev \
|
||||||
python3-pip \
|
python3-pip \
|
||||||
python3-setuptools \
|
python3-setuptools \
|
||||||
python3-venv \
|
python3-venv \
|
||||||
sqlite3 \
|
sqlite3
|
||||||
wget
|
|
||||||
|
COPY --from=builder /dh-virtualenv_1.1-1_all.deb /
|
||||||
|
RUN apt-get install -yq /dh-virtualenv_1.1-1_all.deb
|
||||||
|
|
||||||
WORKDIR /synapse/source
|
WORKDIR /synapse/source
|
||||||
ENTRYPOINT ["bash","/synapse/source/docker/build_debian.sh"]
|
ENTRYPOINT ["bash","/synapse/source/docker/build_debian.sh"]
|
||||||
|
|
|
@ -6,20 +6,6 @@ set -ex
|
||||||
|
|
||||||
DIST=`lsb_release -c -s`
|
DIST=`lsb_release -c -s`
|
||||||
|
|
||||||
# We need to build a newer dh_virtualenv on older OSes like Xenial.
|
|
||||||
if [ "$DIST" = 'xenial' ]; then
|
|
||||||
mkdir -p /tmp/dhvenv
|
|
||||||
cd /tmp/dhvenv
|
|
||||||
wget https://github.com/spotify/dh-virtualenv/archive/1.1.tar.gz
|
|
||||||
tar xvf 1.1.tar.gz
|
|
||||||
cd dh-virtualenv-1.1/
|
|
||||||
env DEBIAN_FRONTEND=noninteractive mk-build-deps -ri -t "apt-get -yqq --no-install-recommends -o Dpkg::Options::=--force-unsafe-io"
|
|
||||||
dpkg-buildpackage -us -uc -b
|
|
||||||
cd /tmp/dhvenv
|
|
||||||
apt-get install -yqq ./dh-virtualenv_1.1-1_all.deb
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
# we get a read-only copy of the source: make a writeable copy
|
# we get a read-only copy of the source: make a writeable copy
|
||||||
cp -aT /synapse/source /synapse/build
|
cp -aT /synapse/source /synapse/build
|
||||||
cd /synapse/build
|
cd /synapse/build
|
||||||
|
|
Loading…
Reference in a new issue