All of lore.kernel.org
 help / color / mirror / Atom feed
* [HACKATHON] Toolstack session
@ 2016-04-20 18:20 Roger Pau Monné
  2016-04-26 13:44 ` xen.git build system (Re: [HACKATHON] Toolstack session) Wei Liu
  0 siblings, 1 reply; 6+ messages in thread
From: Roger Pau Monné @ 2016-04-20 18:20 UTC (permalink / raw)
  To: xen-devel

Toolstack session
=================

Topics:

 - Build system
 - Stubdom
 - Testing
 - {o/c}xenstored

Wei: what downstream consumers expect from the build system. Xen has a top 
level makefile that builds everything, by pulling other projects source 
code. Trying to make it cleaner.

George: someone recommended to pull grub2 into the Xen build system, but it 
was seen as too much. Try to remove other pieces that Xen build system pull 
in in order to perform a build. Package Raisin in a way that includes all 
the needed dependencies (source).

Doug: Gentoo/Yocto build system based on the one from Debian. It's not good 
to pull things from the internet when performing a build. Yocto build system 
disables network access when performing a build, custom patches are needed 
in order to fix that. XenServer has to do the same.

George: In general people packaging Xen needs to work around the fact that 
Xen pulls things from the internet while building

Doug: this doesn't work for stubdom

Olaf: it's possible to do the same for stubdom, Suse does it.

Doug: stubdom build always call the git binary, even if the code it's 
already there.

Ian: Debian doesn't build stubdom.

Wei: it's a PITA that the Xen build system downloads stuff while building. 
Need to solve this.

Ian: two different things in the build system:

 - Our build process downloads stuff while building. This annoys packagers, 
but it's probably important for users that build Xen from source. We cannot 
force them to download stuff manually.
 - Release tarballs _still_ need to download more stuff while building 
(firmware?).

How to fix:
 - Everything controlled by the Xen build system, make it clear what will be 
downloaded, have a target to download the required sources.
 - Use Raisin or something similar, that pulls in everything.

George: difficulties building things from outside, like blktap. Requires 
libxc, which is inside the Xen build system.

Juergen: add the download section to configure.

Ian: seems worse than adding it to the makefile.

Olaf: configure to select what to download/install.

Ian: add download options to configure, add a download target to the build 
makefile. Default to stay the same as it is now.

Konrad: configure to create a list of what Xen build wants to download.

Ian: hard to make it declarative.

****: the build process is taking very long. Sometimes it fails, shouldn't 
re-download things again.

Ian: clean only cleans objects, distclean cleans everything downloaded. 
Maybe add a configure or make target to pull and build pvgrub2?

George: some distros might only want to compile core, and use Qemu/pvgrub2.. 
from other distro packages.

Doug: important to keep in sync with upstream, having custom (cherry-picked) 
patches on top of upstream repos makes it harder for distro to use the 
already present-packages.

George: try to clean things up, clear separation between download and build 
phases.

Andrew: it would be interesting to be able to pass libraries or object files 
to the Xen build system, instead of only pointing it to source 
trees/packages.

George: Raisin would help with that.

Ian: hard to modify Raisin to do this, will take a long time to get there. 
Maybe will take care of those changes, will try to make things not harder 
for people that wants to build things independently.

Stubdom
=======

Wei: stubdom in tree, it's not getting much attention.

Ian: not to be confused with rump-kernels. Should Wei continue working on 
splitting up stubdom? Should it be split from the Xen source tree?

Doug: different release cadence.

Ian: would make it easier for distros to consume maybe.

Wei: I will post patches to split stubdom from the repo.

****: What about using Linux in stubdoms?

Roger: Linux kernel can only be built on Linux.

George: have a script that you can call to build it?

David: use things already present in order to build Linux distros, like 
Yocto or even the Debian packages.

Ian: in any case, it should be an opt-in disabled by default, since it's not 
possible to build Linux on != Linux. We should also have a clear protocol 
about how a stubdom interacts with the toolstack. Toolstack needs to tell 
stubdom which devices will be available to the guest.

Wei: I've done some fixes to it, seems better ATM.

Doug: get the protocol into a standard, in a way that stubdoms would be 
interchangeable (Linux/MiniOS/rump).

Wei: Linux stubdom can become a separate project, but there needs to be a 
clear and standard protocol.

Testing
=======

Wei: Upstream relies on OSSTest, tracks both Xen and other projects (Linux, 
QEMU, SeaBIOS...). Tight on resources, more machines would help testing 
things faster. 

Doug: other projects do more tests before anything even reaching staging.

Luis: 0-day testing has been offered to Xen, need to speak about which Xen 
or Linux versions should be tested.

David: that runs on top of KVM, so it would only allow us to the test PV 
Dom0.

Andrew: that's what needs more testing.

David: reduce some load, reduce the number of Linux branches that we test.

Ian: remove maybe every Linux branch except for Linus master and the stable 
branches. Improve performance by reducing the number of re-installs of 
certain jobs, we would have a performance boost of 20% maybe.

Ian: a dedicated build box doesn't seem to have a lot of difference. The 
real delay is availability of test boxes.

Andrew: smoke test only runs every 4h, and takes 3h to finish. XenServer 
test system is much faster.

Ian: OSSTest lacks machines in order to test more often/faster. Maybe split 
to a model where there are several input branches that get merged into the 
main repository, this would force committers to keep their branch in good 
state.

****: How to split the threes?

****: by committers, or by code areas (x86, tools...).

{o/c}xenstore
=============

Luis: oxenstore is smaller, more performant, is it the default?

Andrew: if ocaml is found, it is compiled by default.

George: also start the ocaml one by default.

Luis: can we get rid of the C one?

Andrew: no, it's used by the xenstore stubdom, would need someone to port 
the xenstore to MirageOS.

****: almost every distro/OS has a ocaml compiler, so it *could* be made the 
default.

Andrew: XenServer has been using it for ~9 years.

Dario: add a test for cxenstored-stubdom, so that we can make the ocaml one 
the default, and still get test coverage on the C one.

Ross: it should be quite easy to get the MirageOS oxenstored stubdom.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* xen.git build system (Re: [HACKATHON] Toolstack session)
  2016-04-20 18:20 [HACKATHON] Toolstack session Roger Pau Monné
@ 2016-04-26 13:44 ` Wei Liu
  2016-04-26 14:05   ` Dario Faggioli
  2016-04-27 17:03   ` George Dunlap
  0 siblings, 2 replies; 6+ messages in thread
From: Wei Liu @ 2016-04-26 13:44 UTC (permalink / raw)
  To: Xen-devel
  Cc: Juergen Gross, olaf, Wei Liu, George Dunlap, Andrew Cooper,
	Ian Jackson, Doug Goldstein, Roger Pau Monné

Hi all

I spent some time this morning to work out the details of xen.git build
system.

* How build system works at the moment?
  1. Stubdom.mk.in and Tools.mk.in define FETCHER variable.
  2. m4/fetcher.m4 checks for wget or ftp, which becomes FETCHER.
  3. StdGNU.mk defines GIT. It can be overwritten by setting envar
     when building.
  4. scripts/git-checkout.sh is used to checkout git tree.
  5. Invocation of git-checkout.sh in Makefile, tools/Makefile and
     tools/firmware/Makefile.
  6. Direct invocation of GIT in Makefile, tools/Makefile,
     tools/firmware/Makefile in the subtree force update targets.
  7. stubdom/Makefile and tools/firmware/etherboot/Makefile invoke FETCHER.

* What will be cloned?
  1. mini-os
  2. qemu-trad
  3. qemu-xen -- can be skipped with --with-system-qemu
  4. seabios -- can be skipped with --with-system-seabios
  5. ovmf -- can be skipped with --with-system-ovmf

* What needs to be fetched?
  1. Stubdom needs:
     - newlib
     - zlib
     - libpci
     - lwip
     - gmp
     - polarssl
     - tpmemu
     - ocaml
     - grub
  2. tools/firmware/etherboot needs:
     - ipxe
  A dumb way of dealing with these tarballs might be just to commit them
  in tree. That way we can just eliminate fetcher all together. But I
  think there are people who want a convenient way to replace tarballs
  (how?), so input welcome here.

And some comments on individual items.

On Wed, Apr 20, 2016 at 07:20:33PM +0100, Roger Pau Monné wrote:
> Topics:
> 
>  - Build system
> 
> Wei: what downstream consumers expect from the build system. Xen has a top 
> level makefile that builds everything, by pulling other projects source 
> code. Trying to make it cleaner.
> 
> George: someone recommended to pull grub2 into the Xen build system, but it 
> was seen as too much. Try to remove other pieces that Xen build system pull 
> in in order to perform a build. Package Raisin in a way that includes all 
> the needed dependencies (source).
> 
> Doug: Gentoo/Yocto build system based on the one from Debian. It's not good 
> to pull things from the internet when performing a build. Yocto build system 
> disables network access when performing a build, custom patches are needed 
> in order to fix that. XenServer has to do the same.
> 

I can provide patches to add a --disable-download configure option. That
would basically stub out GIT and FETCHER to be /bin/false (Linux) or
/usr/bin/false (*BSD). The default would still be --enable-download.

Is such big switch good enough as first step?

> George: In general people packaging Xen needs to work around the fact that 
> Xen pulls things from the internet while building
> 
> Doug: this doesn't work for stubdom
> 
> Olaf: it's possible to do the same for stubdom, Suse does it.
> 

The rationale for a --disable-download switch is because it doesn't
affect distros (see reason above).

> Doug: stubdom build always call the git binary, even if the code it's 
> already there.
> 

This can be sorted out.

> Ian: Debian doesn't build stubdom.
> 
> Wei: it's a PITA that the Xen build system downloads stuff while building. 
> Need to solve this.
> 
> Ian: two different things in the build system:
> 
>  - Our build process downloads stuff while building. This annoys packagers, 
> but it's probably important for users that build Xen from source. We cannot 
> force them to download stuff manually.
>  - Release tarballs _still_ need to download more stuff while building 
> (firmware?).
> 
> How to fix:
>  - Everything controlled by the Xen build system, make it clear what will be 
> downloaded, have a target to download the required sources.

What I don't really get is whether this implies a dedicated target to
download components (and recursively search for dependencies) *and*
place them in the right place in xen.git build system. This option
doesn't seem maintainable to me. The anticipation is that  we might add
more stuff in xen.git. We can't track what every package needs and
provide some options to work out where to put those dependencies.

I think having xen.git build system only track top-level components
(such as seabios, ovmf etc) is doable.

>  - Use Raisin or something similar, that pulls in everything.
> 
> George: difficulties building things from outside, like blktap. Requires 
> libxc, which is inside the Xen build system.
> 
> Juergen: add the download section to configure.
> 
> Ian: seems worse than adding it to the makefile.
> 
> Olaf: configure to select what to download/install.
> 

Only top-level component is ok.

Wei.

> Ian: add download options to configure, add a download target to the build 
> makefile. Default to stay the same as it is now.
> 
> Konrad: configure to create a list of what Xen build wants to download.
> 
> Ian: hard to make it declarative.
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: xen.git build system (Re: [HACKATHON] Toolstack session)
  2016-04-26 13:44 ` xen.git build system (Re: [HACKATHON] Toolstack session) Wei Liu
@ 2016-04-26 14:05   ` Dario Faggioli
  2016-04-26 14:10     ` Wei Liu
  2016-04-27 17:03   ` George Dunlap
  1 sibling, 1 reply; 6+ messages in thread
From: Dario Faggioli @ 2016-04-26 14:05 UTC (permalink / raw)
  To: Wei Liu, Xen-devel
  Cc: Juergen Gross, olaf, George Dunlap, Doug Goldstein, Ian Jackson,
	Andrew Cooper, Roger Pau Monné


[-- Attachment #1.1: Type: text/plain, Size: 1311 bytes --]

On Tue, 2016-04-26 at 14:44 +0100, Wei Liu wrote:
> Hi all
> 
> I spent some time this morning to work out the details of xen.git
> build
> system.
> 
> * How build system works at the moment?
>   1. Stubdom.mk.in and Tools.mk.in define FETCHER variable.
>   2. m4/fetcher.m4 checks for wget or ftp, which becomes FETCHER.
>   3. StdGNU.mk defines GIT. It can be overwritten by setting envar
>      when building.
>   4. scripts/git-checkout.sh is used to checkout git tree.
>   5. Invocation of git-checkout.sh in Makefile, tools/Makefile and
>      tools/firmware/Makefile.
>   6. Direct invocation of GIT in Makefile, tools/Makefile,
>      tools/firmware/Makefile in the subtree force update targets.
>   7. stubdom/Makefile and tools/firmware/etherboot/Makefile invoke
> FETCHER.
> 
> * What will be cloned?
>   1. mini-os
>   2. qemu-trad
>
Can be skipped with '--disable-qemu-traditional', I think?
(that's what I do pretty much all the time, and it seems to work for
me)

Regards,
Dario
-- 
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)


[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 181 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: xen.git build system (Re: [HACKATHON] Toolstack session)
  2016-04-26 14:05   ` Dario Faggioli
@ 2016-04-26 14:10     ` Wei Liu
  0 siblings, 0 replies; 6+ messages in thread
From: Wei Liu @ 2016-04-26 14:10 UTC (permalink / raw)
  To: Dario Faggioli
  Cc: Juergen Gross, olaf, Wei Liu, George Dunlap, Andrew Cooper,
	Ian Jackson, Xen-devel, Doug Goldstein, Roger Pau Monné

On Tue, Apr 26, 2016 at 04:05:00PM +0200, Dario Faggioli wrote:
> On Tue, 2016-04-26 at 14:44 +0100, Wei Liu wrote:
> > Hi all
> > 
> > I spent some time this morning to work out the details of xen.git
> > build
> > system.
> > 
> > * How build system works at the moment?
> >   1. Stubdom.mk.in and Tools.mk.in define FETCHER variable.
> >   2. m4/fetcher.m4 checks for wget or ftp, which becomes FETCHER.
> >   3. StdGNU.mk defines GIT. It can be overwritten by setting envar
> >      when building.
> >   4. scripts/git-checkout.sh is used to checkout git tree.
> >   5. Invocation of git-checkout.sh in Makefile, tools/Makefile and
> >      tools/firmware/Makefile.
> >   6. Direct invocation of GIT in Makefile, tools/Makefile,
> >      tools/firmware/Makefile in the subtree force update targets.
> >   7. stubdom/Makefile and tools/firmware/etherboot/Makefile invoke
> > FETCHER.
> > 
> > * What will be cloned?
> >   1. mini-os
> >   2. qemu-trad
> >
> Can be skipped with '--disable-qemu-traditional', I think?
> (that's what I do pretty much all the time, and it seems to work for
> me)
> 

Yes. Mini-os can be skipped with "--disable-stubdom" BTW.

Wei.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: xen.git build system (Re: [HACKATHON] Toolstack session)
  2016-04-26 13:44 ` xen.git build system (Re: [HACKATHON] Toolstack session) Wei Liu
  2016-04-26 14:05   ` Dario Faggioli
@ 2016-04-27 17:03   ` George Dunlap
  2016-04-28 11:24     ` Wei Liu
  1 sibling, 1 reply; 6+ messages in thread
From: George Dunlap @ 2016-04-27 17:03 UTC (permalink / raw)
  To: Wei Liu, Xen-devel
  Cc: Juergen Gross, olaf, George Dunlap, Andrew Cooper,
	Doug Goldstein, Ian Jackson, Roger Pau Monné

On 26/04/16 14:44, Wei Liu wrote:
> Hi all
> 
> I spent some time this morning to work out the details of xen.git build
> system.
> 
> * How build system works at the moment?
>   1. Stubdom.mk.in and Tools.mk.in define FETCHER variable.
>   2. m4/fetcher.m4 checks for wget or ftp, which becomes FETCHER.
>   3. StdGNU.mk defines GIT. It can be overwritten by setting envar
>      when building.
>   4. scripts/git-checkout.sh is used to checkout git tree.
>   5. Invocation of git-checkout.sh in Makefile, tools/Makefile and
>      tools/firmware/Makefile.
>   6. Direct invocation of GIT in Makefile, tools/Makefile,
>      tools/firmware/Makefile in the subtree force update targets.
>   7. stubdom/Makefile and tools/firmware/etherboot/Makefile invoke FETCHER.
> 
> * What will be cloned?
>   1. mini-os
>   2. qemu-trad
>   3. qemu-xen -- can be skipped with --with-system-qemu
>   4. seabios -- can be skipped with --with-system-seabios
>   5. ovmf -- can be skipped with --with-system-ovmf
> 
> * What needs to be fetched?
>   1. Stubdom needs:
>      - newlib
>      - zlib
>      - libpci
>      - lwip
>      - gmp
>      - polarssl
>      - tpmemu
>      - ocaml
>      - grub
>   2. tools/firmware/etherboot needs:
>      - ipxe
>   A dumb way of dealing with these tarballs might be just to commit them
>   in tree. That way we can just eliminate fetcher all together.

Commit the tarballs in-tree?

I don't think we want to do that; but we certainly could consider
including them in our release tarball.

>> Wei: what downstream consumers expect from the build system. Xen has a top 
>> level makefile that builds everything, by pulling other projects source 
>> code. Trying to make it cleaner.
>>
>> George: someone recommended to pull grub2 into the Xen build system, but it 
>> was seen as too much. Try to remove other pieces that Xen build system pull 
>> in in order to perform a build. Package Raisin in a way that includes all 
>> the needed dependencies (source).
>>
>> Doug: Gentoo/Yocto build system based on the one from Debian. It's not good 
>> to pull things from the internet when performing a build. Yocto build system 
>> disables network access when performing a build, custom patches are needed 
>> in order to fix that. XenServer has to do the same.
>>
> 
> I can provide patches to add a --disable-download configure option. That
> would basically stub out GIT and FETCHER to be /bin/false (Linux) or
> /usr/bin/false (*BSD). The default would still be --enable-download.
> 
> Is such big switch good enough as first step?

I'm not sure that we necessarily need a "--disable-download" option.
The thing that has to be patched out is that configure will fail if it
can't find wget.

>> How to fix:
>>  - Everything controlled by the Xen build system, make it clear what will be 
>> downloaded, have a target to download the required sources.
> 
> What I don't really get is whether this implies a dedicated target to
> download components (and recursively search for dependencies) *and*
> place them in the right place in xen.git build system. This option
> doesn't seem maintainable to me. The anticipation is that  we might add
> more stuff in xen.git. We can't track what every package needs and
> provide some options to work out where to put those dependencies.
> 
> I think having xen.git build system only track top-level components
> (such as seabios, ovmf etc) is doable.

I don't think anyone was suggesting that we download all the
sub-dependencies of everything recursively from scratch.  The
expectation is that Xen will build in a "typical" distro environment,
and that we'll download only things that we develop (xen, minios,
qemu-trad, qemu-upstream, minios), things we expect a typical distro not
to have (seabios, ovmf, ipxe), or things that need custom patches /
recompilation (newlib and all the components recompiled against newlib
for stubdom).

It might be worth going back to revisit some of these decisions --
seabios is available in many distros now, and I don't think we've had
any hard requirements missing from major seabios releases for a while
now; it might be time to start thinking about taking seabios out of the
Xen build, for instance.

I suppose mini-os, like rumpkernels, is a bit of a special case because
everything really does require recompilation, almost like a distro.

But to be honest, I was a bit confused about how discussed "make
download" target was supposed to work in practice.  The SOP for
rpm-based project seems to try as much as possible to only include
upstream tarballs with patches.  When rpmbuild time comes, *all* the
building happens without access to the internet; all tarballs must
already be present in the SOURCES directory.  So having a separate "make
download" wouldn't really help CentOS at least -- unless it gave you a
list of files to copy into your SOURCES directory, and copy out again in
your spec file.

 -George


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: xen.git build system (Re: [HACKATHON] Toolstack session)
  2016-04-27 17:03   ` George Dunlap
@ 2016-04-28 11:24     ` Wei Liu
  0 siblings, 0 replies; 6+ messages in thread
From: Wei Liu @ 2016-04-28 11:24 UTC (permalink / raw)
  To: George Dunlap
  Cc: Juergen Gross, olaf, Wei Liu, George Dunlap, Doug Goldstein,
	Ian Jackson, Andrew Cooper, Xen-devel, Roger Pau Monné

On Wed, Apr 27, 2016 at 06:03:54PM +0100, George Dunlap wrote:
> On 26/04/16 14:44, Wei Liu wrote:
> > Hi all
> > 
> > I spent some time this morning to work out the details of xen.git build
> > system.
> > 
> > * How build system works at the moment?
> >   1. Stubdom.mk.in and Tools.mk.in define FETCHER variable.
> >   2. m4/fetcher.m4 checks for wget or ftp, which becomes FETCHER.
> >   3. StdGNU.mk defines GIT. It can be overwritten by setting envar
> >      when building.
> >   4. scripts/git-checkout.sh is used to checkout git tree.
> >   5. Invocation of git-checkout.sh in Makefile, tools/Makefile and
> >      tools/firmware/Makefile.
> >   6. Direct invocation of GIT in Makefile, tools/Makefile,
> >      tools/firmware/Makefile in the subtree force update targets.
> >   7. stubdom/Makefile and tools/firmware/etherboot/Makefile invoke FETCHER.
> > 
> > * What will be cloned?
> >   1. mini-os
> >   2. qemu-trad
> >   3. qemu-xen -- can be skipped with --with-system-qemu
> >   4. seabios -- can be skipped with --with-system-seabios
> >   5. ovmf -- can be skipped with --with-system-ovmf
> > 
> > * What needs to be fetched?
> >   1. Stubdom needs:
> >      - newlib
> >      - zlib
> >      - libpci
> >      - lwip
> >      - gmp
> >      - polarssl
> >      - tpmemu
> >      - ocaml
> >      - grub
> >   2. tools/firmware/etherboot needs:
> >      - ipxe
> >   A dumb way of dealing with these tarballs might be just to commit them
> >   in tree. That way we can just eliminate fetcher all together.
> 
> Commit the tarballs in-tree?
> 

The extracted source code, actually.

> I don't think we want to do that; but we certainly could consider
> including them in our release tarball.
> 

This would do, too.

> >> Wei: what downstream consumers expect from the build system. Xen has a top 
> >> level makefile that builds everything, by pulling other projects source 
> >> code. Trying to make it cleaner.
> >>
> >> George: someone recommended to pull grub2 into the Xen build system, but it 
> >> was seen as too much. Try to remove other pieces that Xen build system pull 
> >> in in order to perform a build. Package Raisin in a way that includes all 
> >> the needed dependencies (source).
> >>
> >> Doug: Gentoo/Yocto build system based on the one from Debian. It's not good 
> >> to pull things from the internet when performing a build. Yocto build system 
> >> disables network access when performing a build, custom patches are needed 
> >> in order to fix that. XenServer has to do the same.
> >>
> > 
> > I can provide patches to add a --disable-download configure option. That
> > would basically stub out GIT and FETCHER to be /bin/false (Linux) or
> > /usr/bin/false (*BSD). The default would still be --enable-download.
> > 
> > Is such big switch good enough as first step?
> 
> I'm not sure that we necessarily need a "--disable-download" option.
> The thing that has to be patched out is that configure will fail if it
> can't find wget.
> 

It will be a side effect of --disable-download because FETCHER will be
set to false.  I like to make things explicit in this case.

Can you elaborate on how every thing fit together in your vision? There
must be something else that you have not expressed explicitly to make
sure the whole build environment (xen build system + the build host)
won't fetch external stuff.

I'm open to ideas on how things -- xen build system and build host --
fit together and make adequate adjustment to the xen build system. But
unfortunately I also envisage different people have different views on
how the world functions.

> >> How to fix:
> >>  - Everything controlled by the Xen build system, make it clear what will be 
> >> downloaded, have a target to download the required sources.
> > 
> > What I don't really get is whether this implies a dedicated target to
> > download components (and recursively search for dependencies) *and*
> > place them in the right place in xen.git build system. This option
> > doesn't seem maintainable to me. The anticipation is that  we might add
> > more stuff in xen.git. We can't track what every package needs and
> > provide some options to work out where to put those dependencies.
> > 
> > I think having xen.git build system only track top-level components
> > (such as seabios, ovmf etc) is doable.
> 
> I don't think anyone was suggesting that we download all the
> sub-dependencies of everything recursively from scratch.  The
> expectation is that Xen will build in a "typical" distro environment,
> and that we'll download only things that we develop (xen, minios,
> qemu-trad, qemu-upstream, minios), things we expect a typical distro not
> to have (seabios, ovmf, ipxe), or things that need custom patches /
> recompilation (newlib and all the components recompiled against newlib
> for stubdom).
> 
> It might be worth going back to revisit some of these decisions --
> seabios is available in many distros now, and I don't think we've had
> any hard requirements missing from major seabios releases for a while
> now; it might be time to start thinking about taking seabios out of the
> Xen build, for instance.
> 

Seabios, ovmf are already handled. IPXE, no, because we need patching
it. It would be trivial to provide --with-system-ipxe though.

I propose downstream consumers to go over the list of stuff I listed
above and explicitly express their thoughts on individual components, so
that we can have concrete actions on each items.

> I suppose mini-os, like rumpkernels, is a bit of a special case because
> everything really does require recompilation, almost like a distro.
> 

Yes, they will need some special treatment in order for downstream to
consume them.

> But to be honest, I was a bit confused about how discussed "make
> download" target was supposed to work in practice.  The SOP for

I don't have good idea either. We need to collect more data points on
this.

Wei.

> rpm-based project seems to try as much as possible to only include
> upstream tarballs with patches.  When rpmbuild time comes, *all* the
> building happens without access to the internet; all tarballs must
> already be present in the SOURCES directory.  So having a separate "make
> download" wouldn't really help CentOS at least -- unless it gave you a
> list of files to copy into your SOURCES directory, and copy out again in
> your spec file.
> 
>  -George
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-04-28 11:22 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-04-20 18:20 [HACKATHON] Toolstack session Roger Pau Monné
2016-04-26 13:44 ` xen.git build system (Re: [HACKATHON] Toolstack session) Wei Liu
2016-04-26 14:05   ` Dario Faggioli
2016-04-26 14:10     ` Wei Liu
2016-04-27 17:03   ` George Dunlap
2016-04-28 11:24     ` Wei Liu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.