Bug#996699: [Debian-on-mobile-maintainers] Bug#996699: Bug#996699: chatty: Cross-building fails to resolve libpurple-dev

2021-10-21 Thread Evangelos Ribeiro Tzaras
Hi,

On Wed, 2021-10-20 at 14:59 +0200, Helmut Grohne wrote:
> 
> On Wed, Oct 20, 2021 at 10:17:30AM +0200, Evangelos Ribeiro Tzaras
> wrote:
> > On Sun, 2021-10-17 at 09:26 -0400, Travis Wrightsman via Debian-on-
> > mobile-maintainers wrote:
> > > Package: chatty
> > > Version: 0.4.0-1
> > > Severity: serious
> > > Justification: fails to build from source
> > > Tags: ftbfs upstream
> 
> We do not yet categorize cross build issues as ftbfs. In any case,
> cross
> build issues are not release critical as Sebastian Ramacher pointed
> out.
> Please refrain from filing cross build bugs without patches.
> 

Good to know!

> > 
> 
> > CCing debian-cross in the hopes that someone can shed some light
> > here
> > :)
> 
> Very good. That was the right thing to do.

That is always nice to hear, isn't it? :)


> As a general thing, if you want to look into why something doesn't
> cross
> build, go check at our cross build quality assurance:
> http://crossqa.debian.net/src/chatty
> 

Mentally noted!

> We learn a couple of things there:
>  * chatty doesn't have satisfiable cross-Build-Depends for any
>    architecture and consequently has never been built.
>  * There are no linked bug reports (at the time of this writing, but
> the
>    usertagging should make this bug show up there soon).
>  * The dependency issue is with libpurple-dev (as you correctly
>    identified).
> 
> crossqa uses dose to check dependency issues, so it can only see one
> of
> many problems and the first issues it happens to see is with
> libpurple-dev. To see the others, we check the bootstrap.d.n link:
> https://bootstrap.debian.net/cross_all/chatty.html
> 
> Good news: It's libpurple-dev and libpurple-dev only.
> 
> Time to look into libpurple-dev, right?
> 
> It's an Architecture: all package and those can never satisfy cross
> Build-Depends unless marked Multi-Arch: foreign. So clear thing, we
> mark
> it Multi-Arch: foreign and we're done, right? Unfortunately, not.
> libpurple-dev Depends on libpurple0 (among other things) and quite
> clearly, it exposes libpurple0. Since libpurple0 is
> architecture-dependent and exposed by libpurple-dev, libpurple-dev
> cannot be Multi-Arch: foreign. The thing is: When we issue a
> dependency
> on libpurple-dev (for a particular architecture), we want a matching
> libpurple0 (of the requested architecture). And this constraint
> cannot
> be transferred through Architecture: all packages. That issue is
> known
> as the "multiarch interpreter problem", because it happened with
> interpreters first. In any case, the canonical solution to this
> problem
> is to turn libpurple-dev Architecture: any. At that point the
> resolver
> will pick the host architecture libpurple-dev and the dependency will
> ensure that we also get the host architecture libpurple0.
> 
> If this leaves any questions, don't hesitate to ask
> (debian-cr...@lists.debian.org).

Thanks a lot for taking the time to explain this and providing a patch!


--
Evangelos


signature.asc
Description: This is a digitally signed message part


Bug#996699: [Debian-on-mobile-maintainers] Bug#996699: chatty: Cross-building fails to resolve libpurple-dev

2021-10-20 Thread Richard Laager
On a related note, I still need to bring this package's debehlper compat 
level current. That would hopefully address these:
W: finch-dev: pkg-config-unavailable-for-cross-compilation 
usr/lib/pkgconfig/finch.pc
W: libpurple-dev: pkg-config-unavailable-for-cross-compilation 
usr/lib/pkgconfig/purple.pc
W: pidgin-dev: pkg-config-unavailable-for-cross-compilation 
usr/lib/pkgconfig/pidgin.pc


--
Richard



OpenPGP_signature
Description: OpenPGP digital signature


Bug#996699: [Debian-on-mobile-maintainers] Bug#996699: chatty: Cross-building fails to resolve libpurple-dev

2021-10-20 Thread Helmut Grohne
Control: tags -1 + patch

On Wed, Oct 20, 2021 at 02:59:14PM +0200, Helmut Grohne wrote:
> It's an Architecture: all package and those can never satisfy cross
> Build-Depends unless marked Multi-Arch: foreign. So clear thing, we mark
> it Multi-Arch: foreign and we're done, right? Unfortunately, not.
> libpurple-dev Depends on libpurple0 (among other things) and quite
> clearly, it exposes libpurple0. Since libpurple0 is
> architecture-dependent and exposed by libpurple-dev, libpurple-dev
> cannot be Multi-Arch: foreign. The thing is: When we issue a dependency
> on libpurple-dev (for a particular architecture), we want a matching
> libpurple0 (of the requested architecture). And this constraint cannot
> be transferred through Architecture: all packages. That issue is known
> as the "multiarch interpreter problem", because it happened with
> interpreters first. In any case, the canonical solution to this problem
> is to turn libpurple-dev Architecture: any. At that point the resolver
> will pick the host architecture libpurple-dev and the dependency will
> ensure that we also get the host architecture libpurple0.

I also said "don't file cross build bugs without a patch". Here you go.

Helmut
diff --minimal -Nru pidgin-2.14.7/debian/changelog 
pidgin-2.14.7/debian/changelog
--- pidgin-2.14.7/debian/changelog  2021-10-05 02:31:35.0 +0200
+++ pidgin-2.14.7/debian/changelog  2021-10-20 17:02:30.0 +0200
@@ -1,3 +1,10 @@
+pidgin (2.14.7-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Convert libpidgin-dev to Architecture: any. (Closes: #996699)
+
+ -- Helmut Grohne   Wed, 20 Oct 2021 17:02:30 +0200
+
 pidgin (2.14.7-2) unstable; urgency=medium
 
   * Backport fix for XMPP double free (Closes: 995370)
diff --minimal -Nru pidgin-2.14.7/debian/control pidgin-2.14.7/debian/control
--- pidgin-2.14.7/debian/control2021-01-23 06:14:46.0 +0100
+++ pidgin-2.14.7/debian/control2021-10-20 17:02:29.0 +0200
@@ -153,11 +153,10 @@
 
 Package: libpurple-dev
 Section: libdevel
-Architecture: all
+Architecture: any
 Depends: libdbus-glib-1-dev,
  libglib2.0-dev,
- libpurple0 (<< ${source:Upstream-Version}+1~),
- libpurple0 (>= ${source:Upstream-Version}),
+ libpurple0 (= ${binary:Version}),
  pkg-config,
  ${misc:Depends},
 Description: multi-protocol instant messaging library - development files


Bug#996699: [Debian-on-mobile-maintainers] Bug#996699: chatty: Cross-building fails to resolve libpurple-dev

2021-10-20 Thread Helmut Grohne
Control: tags -1 - ftbfs upstream
Control: reasign -1 libpurple-dev
Control: retitle -1 convert libpurple-dev to Architecture: any
Control: affects -1 + src:bitlbee src:chatty src:pidgin-awayonlock 
src:pidgin-gnome-keyring src:pidgin-nateon src:purple-discord src:purple-lurch 
src:purple-matrix src:purple-mm-sms src:purple-rocketchat 
src:purple-xmpp-carbons src:purple-xmpp-http-upload src:telegram-purple
Control: user debian-cr...@lists.debian.org
Control: usertags -1 + cross-satisfiability

On Wed, Oct 20, 2021 at 10:17:30AM +0200, Evangelos Ribeiro Tzaras wrote:
> On Sun, 2021-10-17 at 09:26 -0400, Travis Wrightsman via Debian-on-
> mobile-maintainers wrote:
> > Package: chatty
> > Version: 0.4.0-1
> > Severity: serious
> > Justification: fails to build from source
> > Tags: ftbfs upstream

We do not yet categorize cross build issues as ftbfs. In any case, cross
build issues are not release critical as Sebastian Ramacher pointed out.
Please refrain from filing cross build bugs without patches.

> > Chatty fails to cross-build due to a dependency resolution error for
> > the
> > libpurple-dev package.
> > 
> > I'm not sure this is a chatty-specific bug but I'm also not sure where
> > else to place it.
> 
> I've just checked with another package which uses libpurple-dev (f.e.
> purple-matrix)  and ran (perhaps unsurprisingly) into the same issue
> when crossbuilding.

You nailed it.

> Possibly (probably?) related crossbuild failure in pidgin:
> https://salsa.debian.org/debian/pidgin/-/jobs/2035973#L1446 

No. That's a different and unrelated issue.

> CCing debian-cross in the hopes that someone can shed some light here
> :)

Very good. That was the right thing to do.

> More generally: What should be the next steps?
> 
> I guess I could reassign this bug to the pidgin source package (as it
> provides libpurple-dev)?

This one is partially correct as I'll explain below.

> And open bugs to
> a) libxml-parser-perl
> b) libdevel-checklib-perl
> c) python3 (and/or all the packages that make python FTCBFS)

No.

As a general thing, if you want to look into why something doesn't cross
build, go check at our cross build quality assurance:
http://crossqa.debian.net/src/chatty

We learn a couple of things there:
 * chatty doesn't have satisfiable cross-Build-Depends for any
   architecture and consequently has never been built.
 * There are no linked bug reports (at the time of this writing, but the
   usertagging should make this bug show up there soon).
 * The dependency issue is with libpurple-dev (as you correctly
   identified).

crossqa uses dose to check dependency issues, so it can only see one of
many problems and the first issues it happens to see is with
libpurple-dev. To see the others, we check the bootstrap.d.n link:
https://bootstrap.debian.net/cross_all/chatty.html

Good news: It's libpurple-dev and libpurple-dev only.

Time to look into libpurple-dev, right?

It's an Architecture: all package and those can never satisfy cross
Build-Depends unless marked Multi-Arch: foreign. So clear thing, we mark
it Multi-Arch: foreign and we're done, right? Unfortunately, not.
libpurple-dev Depends on libpurple0 (among other things) and quite
clearly, it exposes libpurple0. Since libpurple0 is
architecture-dependent and exposed by libpurple-dev, libpurple-dev
cannot be Multi-Arch: foreign. The thing is: When we issue a dependency
on libpurple-dev (for a particular architecture), we want a matching
libpurple0 (of the requested architecture). And this constraint cannot
be transferred through Architecture: all packages. That issue is known
as the "multiarch interpreter problem", because it happened with
interpreters first. In any case, the canonical solution to this problem
is to turn libpurple-dev Architecture: any. At that point the resolver
will pick the host architecture libpurple-dev and the dependency will
ensure that we also get the host architecture libpurple0.

If this leaves any questions, don't hesitate to ask
(debian-cr...@lists.debian.org).

Helmut



Bug#996699: [Debian-on-mobile-maintainers] Bug#996699: chatty: Cross-building fails to resolve libpurple-dev

2021-10-20 Thread Evangelos Ribeiro Tzaras
Hi and thanks for your report!

On Sun, 2021-10-17 at 09:26 -0400, Travis Wrightsman via Debian-on-
mobile-maintainers wrote:
> Package: chatty
> Version: 0.4.0-1
> Severity: serious
> Justification: fails to build from source
> Tags: ftbfs upstream
> 
> Chatty fails to cross-build due to a dependency resolution error for
> the
> libpurple-dev package.
> 
> I'm not sure this is a chatty-specific bug but I'm also not sure where
> else to place it.

I've just checked with another package which uses libpurple-dev (f.e.
purple-matrix)  and ran (perhaps unsurprisingly) into the same issue
when crossbuilding.
CCing the pidgin maintainer.


> 
> It occurs on Debian Salsa builds:
> https://salsa.debian.org/DebianOnMobile-team/chatty/-/jobs/1940649#L1475

Possibly (probably?) related crossbuild failure in pidgin:
https://salsa.debian.org/debian/pidgin/-/jobs/2035973#L1446 

 pidgin-cross-build-deps:arm64 : Depends: libxml-parser-perl:arm64 but
it is not installable
 Depends: python3:arm64 but it is not
going to be installed
Unable to resolve dependencies!  Giving up...


I've also looked at libxml-parser-perl which fails both locally with
the pbuilder invocation from below and in CI.
https://salsa.debian.org/devrtz/libxml-parser-perl/-/jobs/2100268#L1425

The following packages have unmet dependencies:
 builddeps:/build/libxml-parser-perl_2.46-2.dsc:arm64 : Depends:
libdevel-checklib-perl:arm64 but it is not installable


I've not (yet) dived any deeper than this.

> 
> It also occurs when using git-buildpackage to cross-build for my
> (arm64)
> PinePhone from my (amd64) laptop.
> 
> $ BUILDER=pbuilder DIST=bookworm git-pbuilder create
> $ echo 'PBUILDERSATISFYDEPENDSCMD="/usr/lib/pbuilder/pbuilder-
> satisfydepends-apt"' > ~/.pbuilderrc
> $ BUILDER=pbuilder gbp buildpackage --git-pbuilder --git-pbuilder-
> options="--host-arch arm64" --git-dist=bookworm
> [...]
> Building dependency tree...
> Some packages could not be installed. This may mean that you have
> requested an impossible situation or if you are using the unstable
> distribution that some required packages have not yet been created
> or been moved out of Incoming.
> The following information may help to resolve the situation:
> 
> The following packages have unmet dependencies:
>  builddeps:/build/chatty_0.4.0-1.dsc:arm64 : Depends: libpurple-
> dev:arm64 but it is not installable
> E: Unable to correct problems, you have held broken packages.
> E: pbuilder-satisfydepends failed.
> [...]
> 

I can reproduce this, but I don't really understand why this happens as
I'm not intimately familiar with all the intricacies of crossbuilding
because I usually "cross"build in natively in an arm64 qemu chroot.

CCing debian-cross in the hopes that someone can shed some light here
:)

More generally: What should be the next steps?

I guess I could reassign this bug to the pidgin source package (as it
provides libpurple-dev)?
And open bugs to
a) libxml-parser-perl
b) libdevel-checklib-perl
c) python3 (and/or all the packages that make python FTCBFS)

> Chatty builds successfully on the PinePhone using git-buildpackage.
> 
> 

--
Cheers,
Evangelos



Bug#996699: chatty: Cross-building fails to resolve libpurple-dev

2021-10-17 Thread Travis Wrightsman
Package: chatty
Version: 0.4.0-1
Severity: serious
Justification: fails to build from source
Tags: ftbfs upstream

Chatty fails to cross-build due to a dependency resolution error for the
libpurple-dev package.

I'm not sure this is a chatty-specific bug but I'm also not sure where
else to place it.

It occurs on Debian Salsa builds:
https://salsa.debian.org/DebianOnMobile-team/chatty/-/jobs/1940649#L1475

It also occurs when using git-buildpackage to cross-build for my (arm64)
PinePhone from my (amd64) laptop.

$ BUILDER=pbuilder DIST=bookworm git-pbuilder create
$ echo 
'PBUILDERSATISFYDEPENDSCMD="/usr/lib/pbuilder/pbuilder-satisfydepends-apt"' > 
~/.pbuilderrc
$ BUILDER=pbuilder gbp buildpackage --git-pbuilder 
--git-pbuilder-options="--host-arch arm64" --git-dist=bookworm
[...]
Building dependency tree...
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 builddeps:/build/chatty_0.4.0-1.dsc:arm64 : Depends: libpurple-dev:arm64 but 
it is not installable
E: Unable to correct problems, you have held broken packages.
E: pbuilder-satisfydepends failed.
[...]

Chatty builds successfully on the PinePhone using git-buildpackage.



Bug#996699: chatty: Cross-building fails to resolve libpurple-dev

2021-10-17 Thread Sebastian Ramacher
Control: severity -1 normal

On 2021-10-17 09:26:12 -0400, Travis Wrightsman wrote:
> Package: chatty
> Version: 0.4.0-1
> Severity: serious

Cross-building bugs are not serious

Cheers

> Justification: fails to build from source
> Tags: ftbfs upstream
> 
> Chatty fails to cross-build due to a dependency resolution error for the
> libpurple-dev package.
> 
> I'm not sure this is a chatty-specific bug but I'm also not sure where
> else to place it.
> 
> It occurs on Debian Salsa builds:
> https://salsa.debian.org/DebianOnMobile-team/chatty/-/jobs/1940649#L1475
> 
> It also occurs when using git-buildpackage to cross-build for my (arm64)
> PinePhone from my (amd64) laptop.
> 
> $ BUILDER=pbuilder DIST=bookworm git-pbuilder create
> $ echo 
> 'PBUILDERSATISFYDEPENDSCMD="/usr/lib/pbuilder/pbuilder-satisfydepends-apt"' > 
> ~/.pbuilderrc
> $ BUILDER=pbuilder gbp buildpackage --git-pbuilder 
> --git-pbuilder-options="--host-arch arm64" --git-dist=bookworm
> [...]
> Building dependency tree...
> Some packages could not be installed. This may mean that you have
> requested an impossible situation or if you are using the unstable
> distribution that some required packages have not yet been created
> or been moved out of Incoming.
> The following information may help to resolve the situation:
> 
> The following packages have unmet dependencies:
>  builddeps:/build/chatty_0.4.0-1.dsc:arm64 : Depends: libpurple-dev:arm64 but 
> it is not installable
> E: Unable to correct problems, you have held broken packages.
> E: pbuilder-satisfydepends failed.
> [...]
> 
> Chatty builds successfully on the PinePhone using git-buildpackage.

-- 
Sebastian Ramacher


signature.asc
Description: PGP signature