Debian Bug report logs - #921458
qemu-system-common: dependancy on gcc-s390x-linux-gnu fails on non-x86 hosts

Package: src:qemu; Maintainer for src:qemu is Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>;

Reported by: Alex Bennée <alex.bennee@linaro.org>

Date: Tue, 5 Feb 2019 19:15:01 UTC

Severity: wishlist

Tags: moreinfo, wontfix

Done: Alex Bennée <alex.bennee@linaro.org>

Bug is archived. No further changes may be made.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, alex.bennee@linaro.org, Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>:
Bug#921458; Package qemu-system-common. (Tue, 05 Feb 2019 19:15:04 GMT) (full text, mbox, link).


Acknowledgement sent to Alex Bennée <alex.bennee@linaro.org>:
New Bug report received and forwarded. Copy sent to alex.bennee@linaro.org, Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>. (Tue, 05 Feb 2019 19:15:04 GMT) (full text, mbox, link).


Message #5 received at submit@bugs.debian.org (full text, mbox, reply):

From: Alex Bennée <alex.bennee@linaro.org>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: qemu-system-common: dependancy on gcc-s390x-linux-gnu fails on non-x86 hosts
Date: Tue, 05 Feb 2019 19:12:54 +0000
Package: qemu-system-common
Version: 1:3.1+dfsg-2+b1
Severity: normal

Dear Maintainer,

This is a problem when running:

  apt build-dep qemu

On a arm64 host. I also ran into other failures while trying:

  apt build-dep -a arm64 qemu

On a multiarch setup. The root reason is that the s390 cross compiler
isn't packaged for all of debian's release architectures.

-- System Information:
Debian Release: buster/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: arm64, armhf

Kernel: Linux 4.19.0-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_GB.UTF-8), LANGUAGE=en_GB.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_GB.UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages qemu-system-common depends on:
ii  adduser       3.118
ii  libc6         2.28-5
ii  libcap-ng0    0.7.9-2
ii  libcap2       1:2.25-1.2
ii  libglib2.0-0  2.58.2-3

qemu-system-common recommends no packages.

qemu-system-common suggests no packages.

-- no debconf information

--
Alex Bennée



Information forwarded to debian-bugs-dist@lists.debian.org, Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>:
Bug#921458; Package qemu-system-common. (Wed, 06 Feb 2019 08:30:06 GMT) (full text, mbox, link).


Acknowledgement sent to Michael Tokarev <mjt@tls.msk.ru>:
Extra info received and forwarded to list. Copy sent to Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>. (Wed, 06 Feb 2019 08:30:06 GMT) (full text, mbox, link).


Message #10 received at 921458@bugs.debian.org (full text, mbox, reply):

From: Michael Tokarev <mjt@tls.msk.ru>
To: Alex Bennée <alex.bennee@linaro.org>, 921458@bugs.debian.org
Subject: Re: Bug#921458: qemu-system-common: dependancy on gcc-s390x-linux-gnu fails on non-x86 hosts
Date: Wed, 6 Feb 2019 11:27:35 +0300
Control: reassign -1 src:qemu
Control: tag -1 + moreinfo

05.02.2019 22:12, Alex Bennée wrote:
> Package: qemu-system-common
> Version: 1:3.1+dfsg-2+b1
> Severity: normal
> 
> Dear Maintainer,
> 
> This is a problem when running:
> 
>    apt build-dep qemu
> 
> On a arm64 host. I also ran into other failures while trying:
> 
>    apt build-dep -a arm64 qemu
> 
> On a multiarch setup. The root reason is that the s390 cross compiler
> isn't packaged for all of debian's release architectures.

Hm. So how this should be done? Please note that gcc-s390x is only
listed in Build-Depends-Indep, not in Build-Depends, and the indep
target is really only buildable on x86 exactly _because_ cross-compilers
are not available on other architectures.

What should the dependencies look like?

Thanks,

/mjt



Bug reassigned from package 'qemu-system-common' to 'src:qemu'. Request was from Michael Tokarev <mjt@tls.msk.ru> to 921458-submit@bugs.debian.org. (Wed, 06 Feb 2019 08:30:07 GMT) (full text, mbox, link).


No longer marked as found in versions qemu/1:3.1+dfsg-2. Request was from Michael Tokarev <mjt@tls.msk.ru> to 921458-submit@bugs.debian.org. (Wed, 06 Feb 2019 08:30:08 GMT) (full text, mbox, link).


Added tag(s) moreinfo. Request was from Michael Tokarev <mjt@tls.msk.ru> to 921458-submit@bugs.debian.org. (Wed, 06 Feb 2019 08:30:08 GMT) (full text, mbox, link).


Information forwarded to debian-bugs-dist@lists.debian.org, Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>:
Bug#921458; Package src:qemu. (Wed, 06 Feb 2019 11:03:05 GMT) (full text, mbox, link).


Acknowledgement sent to Alex Bennée <alex.bennee@linaro.org>:
Extra info received and forwarded to list. Copy sent to Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>. (Wed, 06 Feb 2019 11:03:05 GMT) (full text, mbox, link).


Message #21 received at 921458@bugs.debian.org (full text, mbox, reply):

From: Alex Bennée <alex.bennee@linaro.org>
To: Michael Tokarev <mjt@tls.msk.ru>
Cc: 921458@bugs.debian.org
Subject: Re: Bug#921458: qemu-system-common: dependancy on gcc-s390x-linux-gnu fails on non-x86 hosts
Date: Wed, 06 Feb 2019 10:58:44 +0000
Michael Tokarev <mjt@tls.msk.ru> writes:

> Control: reassign -1 src:qemu
> Control: tag -1 + moreinfo
>
> 05.02.2019 22:12, Alex Bennée wrote:
>> Package: qemu-system-common
>> Version: 1:3.1+dfsg-2+b1
>> Severity: normal
>>
>> Dear Maintainer,
>>
>> This is a problem when running:
>>
>>    apt build-dep qemu
>>
>> On a arm64 host. I also ran into other failures while trying:
>>
>>    apt build-dep -a arm64 qemu
>>
>> On a multiarch setup. The root reason is that the s390 cross compiler
>> isn't packaged for all of debian's release architectures.
>
> Hm. So how this should be done? Please note that gcc-s390x is only
> listed in Build-Depends-Indep, not in Build-Depends, and the indep
> target is really only buildable on x86 exactly _because_
> cross-compilers

s/cross-compilers/some cross-compilers/

Most of the other architectures tend to at least have their 32 bit
cousins as well as x86 cross compilers available. However x86 currently
has the largest breadth of cross compiler support. 

> are not available on other architectures.

Ideally I'd like to support more cross compilers on more host architectures.
However my attempts at getting all target binutils on arm have stalled
somewhat and I suspect it's too late for the buster release cycle.

> What should the dependencies look like?

I'm not sure - it does seem weird that we are treating what is in effect
an s390x architecture blob as architecture independent. I guess QEMU is
good at generating weird exception cases.

How did we ship s390x blobs on non-x86 release architectures before
this change?

>
> Thanks,
>
> /mjt


-- 
Alex Bennée



Information forwarded to debian-bugs-dist@lists.debian.org, Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>:
Bug#921458; Package src:qemu. (Wed, 06 Feb 2019 11:09:04 GMT) (full text, mbox, link).


Acknowledgement sent to Michael Tokarev <mjt@tls.msk.ru>:
Extra info received and forwarded to list. Copy sent to Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>. (Wed, 06 Feb 2019 11:09:04 GMT) (full text, mbox, link).


Message #26 received at 921458@bugs.debian.org (full text, mbox, reply):

From: Michael Tokarev <mjt@tls.msk.ru>
To: Alex Bennée <alex.bennee@linaro.org>
Cc: 921458@bugs.debian.org
Subject: Re: Bug#921458: qemu-system-common: dependancy on gcc-s390x-linux-gnu fails on non-x86 hosts
Date: Wed, 6 Feb 2019 14:08:26 +0300
06.02.2019 13:58, Alex Bennée wrote:
[]
>> What should the dependencies look like?
> 
> I'm not sure - it does seem weird that we are treating what is in effect
> an s390x architecture blob as architecture independent. I guess QEMU is
> good at generating weird exception cases.

Actually _all_ firmware blobs are shipped as indep packages. We don't want
to enable whole mips or arm or sparc or ppc multiarch on x86 just to install
or run qemu on host.

> How did we ship s390x blobs on non-x86 release architectures before
> this change?

For s390x we didn't, at all, there was a bug open for missing s390x fw,
users of qemu-system-s390x were getting firmware from upstream site.

For some other stuff, like qemu-specific x86 firmware (needed on all
arches as well, just like s390x or ppc blobs), we used an ugly hack
to embed sources for said firmware in other package's debian/foo.tar.gz
files. For yet another, we created separate package which builds
arch-all blobs (openbios, seabios, etc).

I really like to stop this mess, and now it is possible finally because
cross-compilers are available.

There was another way to deal with this - one package which qemu-team
maintains builds a cross-compiler from gcc source first and uses that
compiler to build actual firmware blobs. I don't think this is a good
solution.

I especially used build-depends-indep for all these cross-compilers,
in order for qemu arch-specific packages to remain buildable on non-
x86 architectures. Is this wrong somehow?  If this is wrong, I think
we should bring this on some mailinglist, so that maybe multiarch
or cross-gcc people will share their opinion?

Thank you!

/mjt



Information forwarded to debian-bugs-dist@lists.debian.org, Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>:
Bug#921458; Package src:qemu. (Thu, 07 Feb 2019 18:51:12 GMT) (full text, mbox, link).


Acknowledgement sent to Alex Bennée <alex.bennee@linaro.org>:
Extra info received and forwarded to list. Copy sent to Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>. (Thu, 07 Feb 2019 18:51:12 GMT) (full text, mbox, link).


Message #31 received at 921458@bugs.debian.org (full text, mbox, reply):

From: Alex Bennée <alex.bennee@linaro.org>
To: Michael Tokarev <mjt@tls.msk.ru>
Cc: 921458@bugs.debian.org, debian-devel@lists.debian.org, debian-cross@lists.debian.org
Subject: Handling build-depends-indep for non-x86 source packages (was: Bug#921458: qemu-system-common: dependancy on gcc-s390x-linux-gnu fails on non-x86 hosts)
Date: Thu, 07 Feb 2019 18:49:01 +0000
Hi,

The following bug has come up and we would like some input from the
multiarch and cross developers on how best to handle this case.

In an ideal world all cross compilers would be available on all release
architectures but I think it will be a while before we get there. My own
efforts to get just all the cross binutils cleanly building on arm64
have stalled somewhat so in the meantime is there anything we can do to
keep build-dependencies working on all arches?

See bellow for more context:

Michael Tokarev <mjt@tls.msk.ru> writes:

> 06.02.2019 13:58, Alex Bennée wrote:
> []
>>> What should the dependencies look like?
>>
>> I'm not sure - it does seem weird that we are treating what is in effect
>> an s390x architecture blob as architecture independent. I guess QEMU is
>> good at generating weird exception cases.
>
> Actually _all_ firmware blobs are shipped as indep packages. We don't want
> to enable whole mips or arm or sparc or ppc multiarch on x86 just to install
> or run qemu on host.
>
>> How did we ship s390x blobs on non-x86 release architectures before
>> this change?
>
> For s390x we didn't, at all, there was a bug open for missing s390x fw,
> users of qemu-system-s390x were getting firmware from upstream site.
>
> For some other stuff, like qemu-specific x86 firmware (needed on all
> arches as well, just like s390x or ppc blobs), we used an ugly hack
> to embed sources for said firmware in other package's debian/foo.tar.gz
> files. For yet another, we created separate package which builds
> arch-all blobs (openbios, seabios, etc).
>
> I really like to stop this mess, and now it is possible finally because
> cross-compilers are available.
>
> There was another way to deal with this - one package which qemu-team
> maintains builds a cross-compiler from gcc source first and uses that
> compiler to build actual firmware blobs. I don't think this is a good
> solution.
>
> I especially used build-depends-indep for all these cross-compilers,
> in order for qemu arch-specific packages to remain buildable on non-
> x86 architectures. Is this wrong somehow?  If this is wrong, I think
> we should bring this on some mailinglist, so that maybe multiarch
> or cross-gcc people will share their opinion?
>
> Thank you!
>
> /mjt


--
Alex Bennée



Information forwarded to debian-bugs-dist@lists.debian.org, Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>:
Bug#921458; Package src:qemu. (Thu, 07 Feb 2019 19:24:04 GMT) (full text, mbox, link).


Acknowledgement sent to Sam Hartman <hartmans@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>. (Thu, 07 Feb 2019 19:24:04 GMT) (full text, mbox, link).


Message #36 received at 921458@bugs.debian.org (full text, mbox, reply):

From: Sam Hartman <hartmans@debian.org>
To: Alex Bennée <alex.bennee@linaro.org>
Cc: Michael Tokarev <mjt@tls.msk.ru>, 921458@bugs.debian.org, debian-devel@lists.debian.org, debian-cross@lists.debian.org
Subject: Re: Handling build-depends-indep for non-x86 source packages
Date: Thu, 07 Feb 2019 14:22:03 -0500
>>>>> "Alex" == Alex Bennée <alex.bennee@linaro.org> writes:

    Alex> Hi,

    Alex> The following bug has come up and we would like some input
    Alex> from the multiarch and cross developers on how best to handle
    Alex> this case.

    Alex> In an ideal world all cross compilers would be available on
    Alex> all release architectures but I think it will be a while
    Alex> before we get there. My own efforts to get just all the cross
    Alex> binutils cleanly building on arm64 have stalled somewhat so in
    Alex> the meantime is there anything we can do to keep
    Alex> build-dependencies working on all arches?


Let me make sure I'm understanding the concern.

You want to build an arch: all firmware package so qemu can be used on
any host for a particular target.

In order to do that you need a compiler for the target, so you want that
target to be a  build-depends-indep for the package building the
firmware.

As a result that firmware package  will not be buildable on an arch that
is missing the cross compiler in question.
That seems inherent: if you need an arm compiler and m68k doesn't have
an arm compiler, you aren't going to be able to use m68k to build your
arm firmware.

Presumably since you're bringing up the issue something beyond that
breaks.  Do you run into testing migration or other issues if a
build-depends-indep package is not available on all arches?
What exactly is going wrong?



Information forwarded to debian-bugs-dist@lists.debian.org, Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>:
Bug#921458; Package src:qemu. (Wed, 13 Feb 2019 13:48:03 GMT) (full text, mbox, link).


Acknowledgement sent to Alex Bennée <alex.bennee@linaro.org>:
Extra info received and forwarded to list. Copy sent to Debian QEMU Team <pkg-qemu-devel@lists.alioth.debian.org>. (Wed, 13 Feb 2019 13:48:03 GMT) (full text, mbox, link).


Message #41 received at 921458@bugs.debian.org (full text, mbox, reply):

From: Alex Bennée <alex.bennee@linaro.org>
To: Michael Tokarev <mjt@tls.msk.ru>
Cc: 921458@bugs.debian.org
Subject: Re: Bug#921458: qemu-system-common: dependancy on gcc-s390x-linux-gnu fails on non-x86 hosts
Date: Wed, 13 Feb 2019 13:45:51 +0000
Michael Tokarev <mjt@tls.msk.ru> writes:

> 06.02.2019 13:58, Alex Bennée wrote:
> []
>>> What should the dependencies look like?

As per:

  From: Helmut Grohne <helmut@subdivi.de>
  Subject: Re: [PATCH] binutils: enable s390x/ppc64el on arm64 hosts
  Message-ID: <20190213051906.GA24514@alf.mars>

The workaround is to use:

  apt-get build-dep --arch-only qemu

On non-x86 build machines to skip attempting to install only the
packages needed for this architectures build. There is further
background mentioned in the above email:

  For more background on this matter, I recommend the rather longer thread
  on the open policy bug about adding Build-Indep-Architecture (#846970).
  That field is supposed to document which architecture you can build
  architecture-independent packages on. This may sound backwards
  initially, but you'll encounter a number of affected packages and the
  field is supposed to at least document the status quo.

So I'm closing this bug.

--
Alex Bennée



Severity set to 'wishlist' from 'normal' Request was from Alex Bennée <alex.bennee@linaro.org> to control@bugs.debian.org. (Wed, 13 Feb 2019 13:51:02 GMT) (full text, mbox, link).


Added tag(s) wontfix. Request was from Alex Bennée <alex.bennee@linaro.org> to control@bugs.debian.org. (Wed, 13 Feb 2019 13:51:03 GMT) (full text, mbox, link).


Reply sent to Alex Bennée <alex.bennee@linaro.org>:
You have taken responsibility. (Wed, 13 Feb 2019 14:12:07 GMT) (full text, mbox, link).


Notification sent to Alex Bennée <alex.bennee@linaro.org>:
Bug acknowledged by developer. (Wed, 13 Feb 2019 14:12:07 GMT) (full text, mbox, link).


Message #50 received at 921458-done@bugs.debian.org (full text, mbox, reply):

From: Alex Bennée <alex.bennee@linaro.org>
To: 921458-done@bugs.debian.org
Subject: Re: Bug#921458: Info received (Bug#921458: qemu-system-common: dependancy on gcc-s390x-linux-gnu fails on non-x86 hosts)
Date: Wed, 13 Feb 2019 14:09:55 +0000
This bug can now be closed as decent work around available.

--
Alex Bennée



Bug archived. Request was from Debbugs Internal Request <owner@bugs.debian.org> to internal_control@bugs.debian.org. (Thu, 14 Mar 2019 07:26:51 GMT) (full text, mbox, link).


Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Thu Nov 23 23:33:39 2023; Machine Name: bembo

Debian Bug tracking system

Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.

Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.