Hi, you are not the first to run into this issue (several people reported this either on list or in private to me before), so I'm now CC'ing the debian-backports mailinglist and the APT Development Team. Am 10.05.2017 um 18:00 schrieb JM: > I am writing to let you know that the current ejabberd package in > jessie-backports (16.09-4~bpo8+1) depends on erlang-base << 1:18.3 > while the package in jessie-backports is erlang-base > (1:19.2.1+dfsg-2~bpo8+1). A simple 'apt-get -t jessie-backports > install ejabberd' fails due to unmet dependencies and requires the > user to faff about with pinning or installing core erlang > dependencies from stable and others (erlang-p1-*) from backports. This is quite right. The erlang backport was made after the ejabberd backport, breaking the ejabberd packages which where built with erlang from stable and did not work with the newer Erlang unless every erlang library involved had been rebuilt (at least 20 of my packages alone). Since there was no experience with Erlang 19.2 on jessie while Erlang 17.3 had proven to be reliable, I decided to stick with 17.3. Another reason was better comparability in regards to bugs, logs, etc. Now to the problem: using "apt-get -t jessie-backports" temporarily pins jessie-backports so much higher than jessie (unless manually pinned different) that apt tries to satisfy everything from jessie-backports, which fails due to the dependency on packages from jessie. AFAIK it is perfectly legitimate for backports to depend on packages from stable although a newer version is available in backports, otherwise the whole dependency chain would have to be rebuilt against the newer compiler/library (in this case Erlang). The workaround is quite simple, I put everything in the ejabberd package that needs to be installed from jessie beforehand and apt basically tells you so when you try to install ejabberd directly from jessie-backports without having erlang/ejabberd already installed: > The following packages have unmet dependencies: > ejabberd : > Depends: erlang-base (< 1:18.3) but 1:19.2.1+dfsg-1~bpo8+1 is to be installed > Depends: erlang-edoc (< 1:18.3) but 1:19.2.1+dfsg-1~bpo8+1 is to be installed > Depends: erlang-odbc (< 1:18.3) but 1:19.2.1+dfsg-1~bpo8+1 is to be installed So you install ejabberd from jessie-backports on a fresh+clean jessie system as follows: * apt-get install erlang-base erlang-edoc erlang-odbc * apt-get -t jessie-backports install ejabberd If you also want the complete set of ejabberd-contrib modules: * apt-get install erlang-os-mon * apt-get -t jessie-backports install ejabberd-contrib If that is too complicated for people, there are 2 possible solutions that I can think of: 1) the whole chain of backports must be updated and rebuilt against the backported Erlang 19.2 2) apt must be improved to handle such situations successfully For future ejabberd backports to jessie-backports-sloppy I'll have to use 19.2 as 17.3 is no longer supported upstream, but I'd prefer not to touch the ones in jessie-backports anymore unless (security) bugs require it. Forcing ejabberd users to upgrade Erlang from 17.3 to 19.2 would certainly break most other/custom Erlang software they might be running. Best wishes, -- .''`. Philipp Huebner <debalance@debian.org> : :' : pgp fp: 6719 25C5 B8CD E74A 5225 3DF9 E5CA 8C49 25E4 205F `. `'` `-
Attachment:
signature.asc
Description: OpenPGP digital signature