Bug#905465: thunderbird: Please adjust Build-Depends, as checked while trying to backport to stretch
Control: tags -1 pending Hello Cyril, I'm back from DebConf and preparing TB 60.0 for unstable currently. I'm fine with your patches and will include them into the next upload. Thanks for them and the detailed extensive explanation. Some just informational comments at the various points. On Sun, Aug 05, 2018 at 04:44:05AM +0200, Cyril Brulebois wrote: ... > 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) That was mostly problematic in the past and we decided to build versions for stretch or jessie with the embedded code copies mostly all the time. > - 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. The same as above, OTOH in the past we also could simply patch the configure script as Thunderbird isn't needed a up2date Sqlite3 library at build nor at runtime. The newest functions aren't used in Thunderbird. Will this once I'm at the point to build TB 60.0 for stretch. > - 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. Yes, that's a left over (and a bug for sure) from the usage of the embedded ICU code until 1:60.0~b9-1 as the Debain version was to old for a long time. The ICU library was pulled anyway from some other build dependcy. > - 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 I'm not sure if the release team would accept this ne version within the normal release, my guess is no. So we will need to handle this as the NSS and NSPR packages, we will turn on the usage of the internal code copy here. >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. This needs to be adressed in the upstream issue tracker, if you can open a new report there I'd be thankful for this. It will get lost on my side for sure due other packaging work I need to do. >→ And it'd be nice to bump the minimal version in Build-Depends. Yes, thanks! > 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 As written above that's the "normal" way unfortunately. We will need to do the same again for 60.x in stretch. > Final note: trying to build such a package within stretch currently > depends on having stretch-proposed-updates enabled, to get cargo and > friends. Moritz has contacted me about this, they have planned to update the security buildd's to have these packages already included. For now I need to get out the version for unstable first. Anyway, thanks for contributing! Regards Carsten
Bug#905465: thunderbird: Please adjust Build-Depends, as checked while trying to backport to stretch
Hello Cyril, On Sun, Aug 05, 2018 at 04:44:05AM +0200, Cyril Brulebois wrote: ... > 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.) just a short heads up, from a first look this is all reasonable and s correct. I will have a deeper look at this once I'm home from DebConf, I make some additional holidays and be back next week so far. Now Mozilla got also handled the release of 60.0 and this could be also packaged now. Regrads Carsten
Bug#905465: thunderbird: Please adjust Build-Depends, as checked while trying to backport to stretch
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 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 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 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