Source: thunderbird Version: 1:60.0~b10-1 Severity: important Tags: patch Hi,
While working on a Tails-enabled backport of Thunderbird for stretch, I've encountered a number of issues with minimal versions of some build dependencies. Here's a summary of my findings (a bit verbose so that I can reference this bug report in Tails tickets): - nss and nspr have their minimal version documented correctly. Both packages can be trivially backported to stretch, but only nss gets updated dependencies in the resulting package (meaning one would only need the backported version of nspr for building, but need the backported nss both at build time and at run time): libnss3 (>= 2:3.30) libnspr4 (>= 2:4.10.9) - libsqlite-dev needs a trivial backport as well, only needed at build time (not at runtime): libsqlite3-0 (>= 3.14.0) → The version in Build-Depends is insufficient though. - libicu-dev is needed (and needs a backport too) for icu-i18n.pc; at this point I noticed the debian/mozconfig.default file and started toying with embedded code copies instead of backporting more packages. → The package isn't documented in Build-Depends at all. - Even if the configure script doesn't check for a minimal version of libhunspell-dev, the one declared in Build-Depends (1.2) isn't sufficient. Building within stretch (so against 1.4) leads to build errors: | error: 'class Hunspell' has no member named 'get_dict_encoding' | error: no matching function for call to 'Hunspell::spell(std::__cxx11::string&)' | error: no matching function for call to 'Hunspell::suggest(std::__cxx11::string&)' hunspell can be trivially backported as well, and a build results in an unversioned dependency against a new binary package: libhunspell-1.6-0 Checking upstream's git history, those first appeared in 1.5.1. → I think it'd be good to mention this upstream, so that they adjust their configure script. → And it'd be nice to bump the minimal version in Build-Depends. I've addressed all packaging points (i.e. everything except suggested upstream change) through 3 commits in my debian/experimental, available on salsa: https://salsa.debian.org/kibi/thunderbird/commits/debian/experimental (They are also attached to this bug report.) On the Tails side, I've decided to switch to embedded code copies for the following libraries: nss, nspr, icu, hunspell, sqlite. While backporting them seems easy, I'd like to avoid possible side effects in other reverse dependencies, hoping to have a self-contained thunderbird update. Relevant commit in my Tails topic branch: https://salsa.debian.org/kibi/thunderbird/commit/8b81093efea0b9a81dcea96b74e3459e5db3a396 I guess you might follow a similar path as well for stretch/updates, which was done in the past already: https://salsa.debian.org/kibi/thunderbird/commit/6755547f7d8e2df047bd779683e8204a8ddba94e but feel free to double check, and maybe correct me on this. Final note: trying to build such a package within stretch currently depends on having stretch-proposed-updates enabled, to get cargo and friends. Cheers, -- Cyril Brulebois -- Debian Consultant @ DEBAMAX -- https://debamax.com/
>From 9234830b940c98f34aedbd18eb7e44397c8ddb94 Mon Sep 17 00:00:00 2001 From: Cyril Brulebois <cy...@debamax.com> Date: Sun, 5 Aug 2018 04:04:51 +0200 Subject: [PATCH 1/3] Bump libsqlite3-dev version. Let's align with what configure scripts check. --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index ce6bc6fb0b..641f6928de 100644 --- a/debian/control +++ b/debian/control @@ -39,7 +39,7 @@ Build-Depends: libpulse-dev, libreadline-dev, libstartup-notification0-dev, - libsqlite3-dev (>= 3.20.1), + libsqlite3-dev (>= 3.22.0~), libvpx-dev (>= 1.5.0), libx11-dev, libx11-xcb-dev, -- 2.11.0
>From e5a12c7dc5cfde65cb557a3a785b51cab5968f58 Mon Sep 17 00:00:00 2001 From: Cyril Brulebois <cy...@debamax.com> Date: Sun, 5 Aug 2018 04:05:18 +0200 Subject: [PATCH 2/3] Add libicu-dev to Build-Depends (required for icu-i18n.pc). --- debian/control | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/control b/debian/control index 641f6928de..27f4b22809 100644 --- a/debian/control +++ b/debian/control @@ -29,6 +29,7 @@ Build-Depends: libgtk2.0-dev, libgtk-3-dev (>= 3.4), libhunspell-dev (>= 1.2), + libicu-dev (>= 59.1~), libjsoncpp-dev, libidl-dev (>= 0.8.0), libiw-dev [linux-any], -- 2.11.0
>From 37cabf67afeac2bfbe2b0a360cf7c094fce59249 Mon Sep 17 00:00:00 2001 From: Cyril Brulebois <cy...@debamax.com> Date: Sun, 5 Aug 2018 04:08:04 +0200 Subject: [PATCH 3/3] Bump libhunspell-dev version. Building thunderbird in stretch, against hunspell 1.4, leads to these errors because of missing functions in its API: | error: 'class Hunspell' has no member named 'get_dict_encoding' | error: no matching function for call to 'Hunspell::spell(std::__cxx11::string&)' | error: no matching function for call to 'Hunspell::suggest(std::__cxx11::string&)' These functions were added in 1.5.1, so the upstream configure scripts should probably check for it as a minimal version. --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 27f4b22809..8b403aa21f 100644 --- a/debian/control +++ b/debian/control @@ -28,7 +28,7 @@ Build-Depends: libglib2.0-dev, libgtk2.0-dev, libgtk-3-dev (>= 3.4), - libhunspell-dev (>= 1.2), + libhunspell-dev (>= 1.5.1~), libicu-dev (>= 59.1~), libjsoncpp-dev, libidl-dev (>= 0.8.0), -- 2.11.0