Bug#905465: thunderbird: Please adjust Build-Depends, as checked while trying to backport to stretch

2018-08-15 Thread Carsten Schoenert
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

2018-08-08 Thread Carsten Schoenert
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

2018-08-04 Thread Cyril Brulebois
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