mirror of
https://github.com/element-hq/synapse.git
synced 2024-11-22 01:25:44 +03:00
Improve Depends
specs in debian package. (#5675)
This is basically a contrived way of adding a `Recommends` on `libpq5`, to fix #5653. The way this is supposed to happen in debhelper is to run `dh_shlibdeps`, which in turn runs `dpkg-shlibdeps`, which spits things out into `debian/<package>.substvars` whence they can later be included by `control`. Previously, we had disabled `dh_shlibdeps`, mostly because `dpkg-shlibdeps` gets confused about PIL's interdependent objects, but that's not really the right thing to do and there is another way to work around that. Since we don't always use postgres, we don't necessarily want a hard Depends on libpq5, so I've actually ended up adding an explicit invocation of `dpkg-shlibdeps` for `psycopg2`. I've also updated the build-depends list for the package, which was missing a couple of entries.
This commit is contained in:
parent
2091c91fde
commit
1def298119
6 changed files with 33 additions and 3 deletions
1
changelog.d/5675.doc
Normal file
1
changelog.d/5675.doc
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Minor tweaks to postgres documentation.
|
3
debian/changelog
vendored
3
debian/changelog
vendored
|
@ -3,6 +3,9 @@ matrix-synapse-py3 (1.1.0-1) UNRELEASED; urgency=medium
|
||||||
[ Amber Brown ]
|
[ Amber Brown ]
|
||||||
* Update logging config defaults to match API changes in Synapse.
|
* Update logging config defaults to match API changes in Synapse.
|
||||||
|
|
||||||
|
[ Richard van der Hoff ]
|
||||||
|
* Add Recommends and Depends for some libraries which you probably want.
|
||||||
|
|
||||||
-- Erik Johnston <erikj@rae> Thu, 04 Jul 2019 13:59:02 +0100
|
-- Erik Johnston <erikj@rae> Thu, 04 Jul 2019 13:59:02 +0100
|
||||||
|
|
||||||
matrix-synapse-py3 (1.1.0) stable; urgency=medium
|
matrix-synapse-py3 (1.1.0) stable; urgency=medium
|
||||||
|
|
7
debian/control
vendored
7
debian/control
vendored
|
@ -2,16 +2,20 @@ Source: matrix-synapse-py3
|
||||||
Section: contrib/python
|
Section: contrib/python
|
||||||
Priority: extra
|
Priority: extra
|
||||||
Maintainer: Synapse Packaging team <packages@matrix.org>
|
Maintainer: Synapse Packaging team <packages@matrix.org>
|
||||||
|
# keep this list in sync with the build dependencies in docker/Dockerfile-dhvirtualenv.
|
||||||
Build-Depends:
|
Build-Depends:
|
||||||
debhelper (>= 9),
|
debhelper (>= 9),
|
||||||
dh-systemd,
|
dh-systemd,
|
||||||
dh-virtualenv (>= 1.1),
|
dh-virtualenv (>= 1.1),
|
||||||
|
libsystemd-dev,
|
||||||
|
libpq-dev,
|
||||||
lsb-release,
|
lsb-release,
|
||||||
python3-dev,
|
python3-dev,
|
||||||
python3,
|
python3,
|
||||||
python3-setuptools,
|
python3-setuptools,
|
||||||
python3-pip,
|
python3-pip,
|
||||||
python3-venv,
|
python3-venv,
|
||||||
|
libsqlite3-dev,
|
||||||
tar,
|
tar,
|
||||||
Standards-Version: 3.9.8
|
Standards-Version: 3.9.8
|
||||||
Homepage: https://github.com/matrix-org/synapse
|
Homepage: https://github.com/matrix-org/synapse
|
||||||
|
@ -28,9 +32,12 @@ Depends:
|
||||||
debconf,
|
debconf,
|
||||||
python3-distutils|libpython3-stdlib (<< 3.6),
|
python3-distutils|libpython3-stdlib (<< 3.6),
|
||||||
${misc:Depends},
|
${misc:Depends},
|
||||||
|
${shlibs:Depends},
|
||||||
${synapse:pydepends},
|
${synapse:pydepends},
|
||||||
# some of our scripts use perl, but none of them are important,
|
# some of our scripts use perl, but none of them are important,
|
||||||
# so we put perl:Depends in Suggests rather than Depends.
|
# so we put perl:Depends in Suggests rather than Depends.
|
||||||
|
Recommends:
|
||||||
|
${shlibs1:Recommends},
|
||||||
Suggests:
|
Suggests:
|
||||||
sqlite3,
|
sqlite3,
|
||||||
${perl:Depends},
|
${perl:Depends},
|
||||||
|
|
14
debian/rules
vendored
14
debian/rules
vendored
|
@ -3,15 +3,29 @@
|
||||||
# Build Debian package using https://github.com/spotify/dh-virtualenv
|
# Build Debian package using https://github.com/spotify/dh-virtualenv
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# assume we only have one package
|
||||||
|
PACKAGE_NAME:=`dh_listpackages`
|
||||||
|
|
||||||
override_dh_systemd_enable:
|
override_dh_systemd_enable:
|
||||||
dh_systemd_enable --name=matrix-synapse
|
dh_systemd_enable --name=matrix-synapse
|
||||||
|
|
||||||
override_dh_installinit:
|
override_dh_installinit:
|
||||||
dh_installinit --name=matrix-synapse
|
dh_installinit --name=matrix-synapse
|
||||||
|
|
||||||
|
# we don't really want to strip the symbols from our object files.
|
||||||
override_dh_strip:
|
override_dh_strip:
|
||||||
|
|
||||||
override_dh_shlibdeps:
|
override_dh_shlibdeps:
|
||||||
|
# make the postgres package's dependencies a recommendation
|
||||||
|
# rather than a hard dependency.
|
||||||
|
find debian/$(PACKAGE_NAME)/ -path '*/site-packages/psycopg2/*.so' | \
|
||||||
|
xargs dpkg-shlibdeps -Tdebian/$(PACKAGE_NAME).substvars \
|
||||||
|
-pshlibs1 -dRecommends
|
||||||
|
|
||||||
|
# all the other dependencies can be normal 'Depends' requirements,
|
||||||
|
# except for PIL's, which is self-contained and which confuses
|
||||||
|
# dpkg-shlibdeps.
|
||||||
|
dh_shlibdeps -X site-packages/PIL/.libs -X site-packages/psycopg2
|
||||||
|
|
||||||
override_dh_virtualenv:
|
override_dh_virtualenv:
|
||||||
./debian/build_virtualenv
|
./debian/build_virtualenv
|
||||||
|
|
|
@ -43,6 +43,9 @@ RUN cd dh-virtualenv-1.1 && dpkg-buildpackage -us -uc -b
|
||||||
FROM ${distro}
|
FROM ${distro}
|
||||||
|
|
||||||
# Install the build dependencies
|
# Install the build dependencies
|
||||||
|
#
|
||||||
|
# NB: keep this list in sync with the list of build-deps in debian/control
|
||||||
|
# TODO: it would be nice to do that automatically.
|
||||||
RUN apt-get update -qq -o Acquire::Languages=none \
|
RUN apt-get update -qq -o Acquire::Languages=none \
|
||||||
&& env DEBIAN_FRONTEND=noninteractive apt-get install \
|
&& env DEBIAN_FRONTEND=noninteractive apt-get install \
|
||||||
-yqq --no-install-recommends -o Dpkg::Options::=--force-unsafe-io \
|
-yqq --no-install-recommends -o Dpkg::Options::=--force-unsafe-io \
|
||||||
|
|
|
@ -11,7 +11,9 @@ a postgres database.
|
||||||
|
|
||||||
* If you are using the `matrix.org debian/ubuntu
|
* If you are using the `matrix.org debian/ubuntu
|
||||||
packages <../INSTALL.md#matrixorg-packages>`_,
|
packages <../INSTALL.md#matrixorg-packages>`_,
|
||||||
the necessary libraries will already be installed.
|
the necessary python library will already be installed, but you will need to
|
||||||
|
ensure the low-level postgres library is installed, which you can do with
|
||||||
|
``apt install libpq5``.
|
||||||
|
|
||||||
* For other pre-built packages, please consult the documentation from the
|
* For other pre-built packages, please consult the documentation from the
|
||||||
relevant package.
|
relevant package.
|
||||||
|
@ -34,7 +36,7 @@ Assuming your PostgreSQL database user is called ``postgres``, create a user
|
||||||
su - postgres
|
su - postgres
|
||||||
createuser --pwprompt synapse_user
|
createuser --pwprompt synapse_user
|
||||||
|
|
||||||
Before you can authenticate with the ``synapse_user``, you must create a
|
Before you can authenticate with the ``synapse_user``, you must create a
|
||||||
database that it can access. To create a database, first connect to the database
|
database that it can access. To create a database, first connect to the database
|
||||||
with your database user::
|
with your database user::
|
||||||
|
|
||||||
|
@ -53,7 +55,7 @@ and then run::
|
||||||
This would create an appropriate database named ``synapse`` owned by the
|
This would create an appropriate database named ``synapse`` owned by the
|
||||||
``synapse_user`` user (which must already have been created as above).
|
``synapse_user`` user (which must already have been created as above).
|
||||||
|
|
||||||
Note that the PostgreSQL database *must* have the correct encoding set (as
|
Note that the PostgreSQL database *must* have the correct encoding set (as
|
||||||
shown above), otherwise it will not be able to store UTF8 strings.
|
shown above), otherwise it will not be able to store UTF8 strings.
|
||||||
|
|
||||||
You may need to enable password authentication so ``synapse_user`` can connect
|
You may need to enable password authentication so ``synapse_user`` can connect
|
||||||
|
|
Loading…
Reference in a new issue