Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Update debian build scripts for Pillow 7.1.1. #7212

Merged
merged 1 commit into from
Apr 3, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changelog.d/7212.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Roll back the pin to Pillow 7.0 which was introduced in Synapse 1.12.2.
7 changes: 7 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
matrix-synapse-py3 (1.12.2ubuntu1) UNRELEASED; urgency=medium
anoadragon453 marked this conversation as resolved.
Show resolved Hide resolved

* Update the Debian build scripts to handle the new installation paths
for the support libraries introduced by Pillow 7.1.1.

-- Richard van der Hoff <richard@matrix.org> Thu, 02 Apr 2020 23:18:52 +0100

matrix-synapse-py3 (1.12.2) stable; urgency=medium

* New synapse release 1.12.2.
Expand Down
33 changes: 27 additions & 6 deletions debian/rules
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,38 @@ override_dh_installinit:
# we don't really want to strip the symbols from our object files.
override_dh_strip:

# 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...
#
override_dh_shlibdeps:
# make the postgres package's dependencies a recommendation
# rather than a hard dependency.
# 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.
#
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
# 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

override_dh_virtualenv:
./debian/build_virtualenv
Expand Down
4 changes: 1 addition & 3 deletions synapse/python_dependencies.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,7 @@
"pyasn1-modules>=0.0.7",
"daemonize>=2.3.1",
"bcrypt>=3.1.0",
# Pillow 7.1.0 causes the following issue on debian buster:
# https://github.com/python-pillow/Pillow/issues/2377
"pillow>=4.3.0,<7.1.0",
"pillow>=4.3.0",
"sortedcontainers>=1.4.4",
"pymacaroons>=0.13.0",
"msgpack>=0.5.2",
Expand Down