diff --git a/debian/changelog b/debian/changelog
index b964cf90a2..8aba444f1d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,9 @@ matrix-synapse-py3 (1.1.0-1) UNRELEASED; urgency=medium
[ Amber Brown ]
* 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
matrix-synapse-py3 (1.1.0) stable; urgency=medium
diff --git a/debian/control b/debian/control
index 4abfa02051..9e679c9d42 100644
--- a/debian/control
+++ b/debian/control
@@ -2,16 +2,20 @@ Source: matrix-synapse-py3
Section: contrib/python
Priority: extra
Maintainer: Synapse Packaging team <packages@matrix.org>
+# keep this list in sync with the build dependencies in docker/Dockerfile-dhvirtualenv.
Build-Depends:
debhelper (>= 9),
dh-systemd,
dh-virtualenv (>= 1.1),
+ libsystemd-dev,
+ libpq-dev,
lsb-release,
python3-dev,
python3,
python3-setuptools,
python3-pip,
python3-venv,
+ libsqlite3-dev,
tar,
Standards-Version: 3.9.8
Homepage: https://github.com/matrix-org/synapse
@@ -28,9 +32,12 @@ Depends:
debconf,
python3-distutils|libpython3-stdlib (<< 3.6),
${misc:Depends},
+ ${shlibs:Depends},
${synapse:pydepends},
# some of our scripts use perl, but none of them are important,
# so we put perl:Depends in Suggests rather than Depends.
+Recommends:
+ ${shlibs1:Recommends},
Suggests:
sqlite3,
${perl:Depends},
diff --git a/debian/rules b/debian/rules
index 05cbbdde08..a4d2ce2ba4 100755
--- a/debian/rules
+++ b/debian/rules
@@ -3,15 +3,29 @@
# Build Debian package using https://github.com/spotify/dh-virtualenv
#
+# assume we only have one package
+PACKAGE_NAME:=`dh_listpackages`
+
override_dh_systemd_enable:
dh_systemd_enable --name=matrix-synapse
override_dh_installinit:
dh_installinit --name=matrix-synapse
+# we don't really want to strip the symbols from our object files.
override_dh_strip:
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:
./debian/build_virtualenv
|