Bug#996699: [Debian-on-mobile-maintainers] Bug#996699: Bug#996699: chatty: Cross-building fails to resolve libpurple-dev
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
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
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
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
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
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
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