2018-12-10 12:14:34 -05:00
|
|
|
#!/usr/bin/make -f
|
2018-12-20 06:33:29 -05:00
|
|
|
#
|
|
|
|
# Build Debian package using https://github.com/spotify/dh-virtualenv
|
|
|
|
#
|
2018-12-10 12:14:34 -05:00
|
|
|
|
2019-07-17 12:47:07 -04:00
|
|
|
# assume we only have one package
|
|
|
|
PACKAGE_NAME:=`dh_listpackages`
|
|
|
|
|
2018-12-20 06:33:29 -05:00
|
|
|
override_dh_systemd_enable:
|
|
|
|
dh_systemd_enable --name=matrix-synapse
|
2018-12-10 12:14:34 -05:00
|
|
|
|
2018-12-20 06:33:29 -05:00
|
|
|
override_dh_installinit:
|
|
|
|
dh_installinit --name=matrix-synapse
|
2018-12-10 12:14:34 -05:00
|
|
|
|
2019-07-17 12:47:07 -04:00
|
|
|
# we don't really want to strip the symbols from our object files.
|
2018-12-20 06:33:29 -05:00
|
|
|
override_dh_strip:
|
2018-12-10 12:14:34 -05:00
|
|
|
|
2020-04-03 05:23:36 -04:00
|
|
|
# dh_shlibdeps calls dpkg-shlibdeps, which finds all the binary files
|
|
|
|
# (executables and shared libs) in the package, and looks for the shared
|
|
|
|
# libraries that they depend on. It then adds a dependency on the package that
|
|
|
|
# contains that library to the package.
|
|
|
|
#
|
|
|
|
# We make two modifications to that process...
|
|
|
|
#
|
2018-12-20 06:33:29 -05:00
|
|
|
override_dh_shlibdeps:
|
2020-04-03 05:23:36 -04:00
|
|
|
# Firstly, postgres is not a hard dependency for us, so we want to make
|
|
|
|
# the things that psycopg2 depends on (such as libpq) be
|
|
|
|
# recommendations rather than hard dependencies. We do so by
|
|
|
|
# running dpkg-shlibdeps manually on psycopg2's libs.
|
|
|
|
#
|
2019-07-17 12:47:07 -04:00
|
|
|
find debian/$(PACKAGE_NAME)/ -path '*/site-packages/psycopg2/*.so' | \
|
|
|
|
xargs dpkg-shlibdeps -Tdebian/$(PACKAGE_NAME).substvars \
|
|
|
|
-pshlibs1 -dRecommends
|
|
|
|
|
2020-04-03 05:23:36 -04:00
|
|
|
# secondly, we exclude PIL's libraries from the process. They are known
|
|
|
|
# to be self-contained, but they have interdependencies and
|
|
|
|
# dpkg-shlibdeps doesn't know how to resolve them.
|
|
|
|
#
|
|
|
|
# As of Pillow 7.1.0, these libraries are in
|
|
|
|
# site-packages/Pillow.libs. Previously, they were in
|
|
|
|
# site-packages/PIL/.libs.
|
|
|
|
#
|
|
|
|
# (we also need to exclude psycopg2, of course, since we've already
|
|
|
|
# dealt with that.)
|
|
|
|
#
|
|
|
|
dh_shlibdeps \
|
|
|
|
-X site-packages/PIL/.libs \
|
|
|
|
-X site-packages/Pillow.libs \
|
|
|
|
-X site-packages/psycopg2
|
2018-12-10 12:14:34 -05:00
|
|
|
|
2018-12-20 06:33:29 -05:00
|
|
|
override_dh_virtualenv:
|
|
|
|
./debian/build_virtualenv
|
|
|
|
|
|
|
|
# We are restricted to compat level 9 (because xenial), so have to
|
|
|
|
# enable the systemd bits manually.
|
|
|
|
%:
|
|
|
|
dh $@ --with python-virtualenv --with systemd
|