Re: [Qemu-devel] [PATCH] README: fill out some useful quickstart information

2015-09-23 Thread Daniel P. Berrange
On Wed, Sep 23, 2015 at 12:00:08PM +0200, Paolo Bonzini wrote:
> 
> 
> On 23/09/2015 11:52, Markus Armbruster wrote:
> > > I don't think this is necessary.  We should remove duplicate information
> > > from qemu-doc.texi, developer documentation doesn't belong in manuals.
> >
> > Just to avoid misunderstandings: I wouldn't object to splitting
> > qemu-doc.texi into a user manual and developer documentation.
> 
> That really boils down to moving chapter 6 somewhere else; everything
> else is user documentation.  I think we should start with Dan's patch,
> and then integrate it with any missing information from chapter 6.

With GNU autotools you get a generic INSTALL file which describe the
way you use configure to build. I'd suggest we just move chapter 6
to be an INSTALL file in plain text, and just have the README file
point people in that direction. Keep qemu-doc.texi as purely the
runtime usage manual


Regards,
Daniel
-- 
|: http://berrange.com  -o-http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org  -o- http://virt-manager.org :|
|: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org   -o-   http://live.gnome.org/gtk-vnc :|



Re: [Qemu-devel] [PATCH] README: fill out some useful quickstart information

2015-09-23 Thread Paolo Bonzini


On 23/09/2015 11:52, Markus Armbruster wrote:
> > I don't think this is necessary.  We should remove duplicate information
> > from qemu-doc.texi, developer documentation doesn't belong in manuals.
>
> Just to avoid misunderstandings: I wouldn't object to splitting
> qemu-doc.texi into a user manual and developer documentation.

That really boils down to moving chapter 6 somewhere else; everything
else is user documentation.  I think we should start with Dan's patch,
and then integrate it with any missing information from chapter 6.

Together with his build system docs, the non-texi developer
documentation is better than anything qemu-doc.texi has ever had
(*insert usual rant about perfect being the enemy of good*).

We also have the opposite problem (user documentation placed in docs/
instead of qemu-doc.texi) but that is separate.

Paolo



Re: [Qemu-devel] [PATCH] README: fill out some useful quickstart information

2015-09-23 Thread Markus Armbruster
Paolo Bonzini  writes:

> On 22/09/2015 10:16, Markus Armbruster wrote:
>
>> John Snow  writes:
>>
>>> "To build QEMU, you'd generally [some basic steps that have generally
>>> worked for a long time], but for up-to-date authoritative information,
>>> please do:
>>>
>>> mkdir path_to/build_dir
>>> cd path_to/build_dir
>>> ../../configure
>>> make qemu-doc.html"
>>>
>>> We wind up documenting how to almost do a build anyway.
>
> I don't think this is necessary.  We should remove duplicate information
> from qemu-doc.texi, developer documentation doesn't belong in manuals.

Just to avoid misunderstandings: I wouldn't object to splitting
qemu-doc.texi into a user manual and developer documentation.



Re: [Qemu-devel] [PATCH] README: fill out some useful quickstart information

2015-09-22 Thread Paolo Bonzini


On 22/09/2015 10:16, Markus Armbruster wrote:
>> "To build QEMU, you'd generally [some basic steps that have generally
>> worked for a long time], but for up-to-date authoritative information,
>> please do:
>>
>> mkdir path_to/build_dir
>> cd path_to/build_dir
>> ../../configure
>> make qemu-doc.html"
>>
>> We wind up documenting how to almost do a build anyway.

I don't think this is necessary.  We should remove duplicate information
from qemu-doc.texi, developer documentation doesn't belong in manuals.

Paolo



Re: [Qemu-devel] [PATCH] README: fill out some useful quickstart information

2015-09-22 Thread Markus Armbruster
John Snow  writes:

> On 09/17/2015 12:43 PM, Markus Armbruster wrote:
>> "Daniel P. Berrange"  writes:
>> 
>>> On Thu, Sep 17, 2015 at 01:20:43PM +0100, Peter Maydell wrote:
 On 17 September 2015 at 13:05, Daniel P. Berrange
  wrote:
> On Thu, Sep 17, 2015 at 12:32:56PM +0100, Peter Maydell wrote:
>> On 17 September 2015 at 12:03, Daniel P. Berrange
>>  wrote:
>
>>> +Building
>>> +
>>> +
>>> +QEMU is multi-platform software intended to be buildable on
>>> all modern Linux
>>> +platforms, OS-X, Win32 (via the Mingw64 toolchain) and a
>>> variety of other
>>> +UNIX targets. The simple process to build QEMU is
>>
>> This whole section seems to be duplicating our existing build
>> documentation (which is in qemu-doc.texi in the 'compilation'
>> section). We should document how to build QEMU in exactly one
>> place, not two (though I can see the rationale for that one
>> place not being in a .texi file.)
>
> The problem I have with refering people to qemu-doc.html,
> is that in order to order to view the docs on how to build
> QEMU, you first have to build QEMU, or enjoy reading the
> .texi source code :-)  Though that doc does get exposed
> via the website too, it is nice to not rely on people having
> internet access all the time.
>
> The qemu-doc.html chapter 6 is a bit more detailed in what
> it descibes. I tend to view the instructions we put in the
> README file as the minimal quick-start, and then point to
> the comprehensive docs as a detailed reference on the matter.

 I don't think we should have two places at all. If a "quick
 start" is useful it should be at the start of the one document
 we have on building QEMU.
>>>
>>> How about splitting "Chapter 6 Compilation" out of the qemu-doc.texi
>>> file into a standalone file, in a format that is friendly to read
>>> without needing generating first.
>> 
>> Do we want a "Compilation" chapter in qemu-doc, or do we want it to be a
>> separate document?  "Both" is a legitimate answer.  Multiple documents
>> can be generated from a single source.
>> 
>> Must the separate document be available right after unpacking a tarball?
>> "Yes" doesn't mean we can't generate it --- projects include generated
>> files in tarballs all the time, e.g. Autoconf-generated configure.
>> 
>> Must the separate document be available right after git-clone?  "Yes"
>> doesn't mean we can't generate it, only that we have to commit a
>> generated file, which is a bit awkward.
>> 
>> Personally, I wouldn't bother.  People capable of git-clone are capable
>> of finding and running a bootstrap script.  Common with projects using
>> Autoconf that don't commit the generated configure.
>> 
>
> OK, but I'd spell it out:
>
> "To build QEMU, you'd generally [some basic steps that have generally
> worked for a long time], but for up-to-date authoritative information,
> please do:
>
> mkdir path_to/build_dir
> cd path_to/build_dir
> ../../configure
> make qemu-doc.html"
>
> We wind up documenting how to almost do a build anyway.

If we follow the customary way projects using Autoconf avoid committing
generated stuff, this would be as simple as:

If you build from a tarball:

1. Unpack the tarball.  Since you're reading this, you probably did
that already.

2. cd to the root of the source tree.

3. Read [insert filename] for further instructions.

If you build from git:

1. Clone the tree.  Since you're reading this, you probably did that
already.

2. cd to the root of the source tree and run "./bootstrap".  This
requires [insert prereqs...] to be installed.

3. Read [insert filename] for further instructions.

The git version of step 2 generates the file for step 3 from sources.
It's included in the tarball.

> So I think we'd need to make the qemu-doc file one we can generate
> without needing to get through the sometimes-arduous configure step first.
>
> Or at least, split out the build information into something that can be
> generated in a standalone fashion.
>
> My personal preference is, like in my above example, to give a brief
> "Here's what usually works" blurb as a quick-start that will hopefully
> work for most people, followed by a link to a more authoritative
> document that takes more mental energy to parse (or even to conjure into
> existence) than the quick blurb.
>
> At this point though, we're already being a huge pain in the ass. I'm in
> favor of a statically available "Here's how to build" that we don't need
> to generate, but I won't insist on it if there are some strong reasons
> that we need to auto-generate simple build information.

I honestly don't think the three steps above qualify as painful.



Re: [Qemu-devel] [PATCH] README: fill out some useful quickstart information

2015-09-21 Thread John Snow


On 09/17/2015 12:43 PM, Markus Armbruster wrote:
> "Daniel P. Berrange"  writes:
> 
>> On Thu, Sep 17, 2015 at 01:20:43PM +0100, Peter Maydell wrote:
>>> On 17 September 2015 at 13:05, Daniel P. Berrange  
>>> wrote:
 On Thu, Sep 17, 2015 at 12:32:56PM +0100, Peter Maydell wrote:
> On 17 September 2015 at 12:03, Daniel P. Berrange
>  wrote:

>> +Building
>> +
>> +
>> +QEMU is multi-platform software intended to be buildable on
>> all modern Linux
>> +platforms, OS-X, Win32 (via the Mingw64 toolchain) and a
>> variety of other
>> +UNIX targets. The simple process to build QEMU is
>
> This whole section seems to be duplicating our existing build
> documentation (which is in qemu-doc.texi in the 'compilation'
> section). We should document how to build QEMU in exactly one
> place, not two (though I can see the rationale for that one
> place not being in a .texi file.)

 The problem I have with refering people to qemu-doc.html,
 is that in order to order to view the docs on how to build
 QEMU, you first have to build QEMU, or enjoy reading the
 .texi source code :-)  Though that doc does get exposed
 via the website too, it is nice to not rely on people having
 internet access all the time.

 The qemu-doc.html chapter 6 is a bit more detailed in what
 it descibes. I tend to view the instructions we put in the
 README file as the minimal quick-start, and then point to
 the comprehensive docs as a detailed reference on the matter.
>>>
>>> I don't think we should have two places at all. If a "quick
>>> start" is useful it should be at the start of the one document
>>> we have on building QEMU.
>>
>> How about splitting "Chapter 6 Compilation" out of the qemu-doc.texi
>> file into a standalone file, in a format that is friendly to read
>> without needing generating first.
> 
> Do we want a "Compilation" chapter in qemu-doc, or do we want it to be a
> separate document?  "Both" is a legitimate answer.  Multiple documents
> can be generated from a single source.
> 
> Must the separate document be available right after unpacking a tarball?
> "Yes" doesn't mean we can't generate it --- projects include generated
> files in tarballs all the time, e.g. Autoconf-generated configure.
> 
> Must the separate document be available right after git-clone?  "Yes"
> doesn't mean we can't generate it, only that we have to commit a
> generated file, which is a bit awkward.
> 
> Personally, I wouldn't bother.  People capable of git-clone are capable
> of finding and running a bootstrap script.  Common with projects using
> Autoconf that don't commit the generated configure.
> 

OK, but I'd spell it out:

"To build QEMU, you'd generally [some basic steps that have generally
worked for a long time], but for up-to-date authoritative information,
please do:

mkdir path_to/build_dir
cd path_to/build_dir
../../configure
make qemu-doc.html"

We wind up documenting how to almost do a build anyway.

So I think we'd need to make the qemu-doc file one we can generate
without needing to get through the sometimes-arduous configure step first.

Or at least, split out the build information into something that can be
generated in a standalone fashion.

My personal preference is, like in my above example, to give a brief
"Here's what usually works" blurb as a quick-start that will hopefully
work for most people, followed by a link to a more authoritative
document that takes more mental energy to parse (or even to conjure into
existence) than the quick blurb.

At this point though, we're already being a huge pain in the ass. I'm in
favor of a statically available "Here's how to build" that we don't need
to generate, but I won't insist on it if there are some strong reasons
that we need to auto-generate simple build information.

--js

>>Perhaps using something like
>> Markdown[1] would be a suitable thing, as that is essentially plain
>> text with a little extra punctuation, so it is easily readable as
>> source, as well as allowing reasonably pleasant HTML generation
>> allowing us to publish it to the website too ?
> 
> Texinfo isn't exactly the greatest markup system, but it works, and it
> can generate reasonably pleasant HTML.  Ditto PDF and plain text.
> 
> Why not extract the existing chapter into a separate .texi, include it
> from the user manual, include it from a trivial .texi master file,
> format the latter to plain text with something like
> 
> $ texi2any --plaintext -I . how-to-build.texi >HOW-TO-BUILD
> 
> No need for redoing the markup.
> 
> [...]
> 



Re: [Qemu-devel] [PATCH] README: fill out some useful quickstart information

2015-09-21 Thread John Snow


On 09/17/2015 07:03 AM, Daniel P. Berrange wrote:
> The README file is usually the first thing consulted when a user
> or developer obtains a copy of the QEMU source. The current QEMU
> README is lacking immediately useful information and so not very
> friendly for first time encounters. It either redirects users to
> qemu-doc.html (which does not exist until they've actually
> compiled QEMU), or the website (which assumes the user has
> convenient internet access at time of reading).
> 
> This fills out the README file as simple quick-start guide on
> the topics of building source, submitting patches, licensing
> and how to contact the QEMU community. It does not intend to be
> comprehensive, instead referring people to an appropriate web
> page to obtain more detailed information. The intent is to give
> users quick guidance to get them going in the right direction.
> 
> Signed-off-by: Daniel P. Berrange 
> ---
>  README | 108 
> +++--
>  1 file changed, 106 insertions(+), 2 deletions(-)
> 
> diff --git a/README b/README
> index c7c990d..71142c3 100644
> --- a/README
> +++ b/README
> @@ -1,3 +1,107 @@
> -Read the documentation in qemu-doc.html or on http://wiki.qemu-project.org
> + QEMU README
> +  ===
>  
> -- QEMU team
> +QEMU is a generic and open source machine emulator and virtualizer. When used
> +as a machine emulator, QEMU can run OSes and programs made for one machine
> +(e.g. an ARM board) on a different machine (e.g. your own PC). By using 
> dynamic
> +translation, it achieves very good performance. When used as a virtualizer,
> +QEMU achieves near native performances by executing the guest code directly 
> on
> +the host CPU. QEMU supports virtualization when executing under the Xen
> +hypervisor or using the KVM kernel module in Linux.
> +
> +
> +Building
> +
> +
> +QEMU is multi-platform software intended to be buildable on all modern Linux
> +platforms, OS-X, Win32 (via the Mingw64 toolchain) and a variety of other
> +UNIX targets. The simple process to build QEMU is
> +
> +  ./configure
> +  make
> +  sudo make install
> +
> +The configure script supports a number of arguments to turn on/off various
> +optional features. These can be seen with "configure --help".
> +
> +For additional information on building QEMU for Linux and Windows consult:
> +
> +  http://qemu-project.org/Hosts/Linux
> +  http://qemu-project.org/Hosts/W32
> +
> +
> +Submitting patches
> +==
> +
> +The QEMU source code is maintained under the GIT version control system.
> +
> +   git clone git://git.qemu-project.org/qemu.git
> +
> +When submitting patches, the preferred approach is to use 'git format-patch'
> +and/or 'git send-email' to format & send the mail to the 
> qemu-devel@nongnu.org
> +mailing list. All patches submitted must contain a 'Signed-off-by' line from
> +the author.
> +
> +For additional information on submitting patches consult:
> +
> +  http://qemu-project.org/Contribute/SubmitAPatch
> +  http://qemu-project.org/Contribute/TrivialPatches
> +

I'd mention the HACKING and CODING_STYLE files too, since they're likely
to be in the same folder as this README, which relates back to your
"useful offline" point in the commit message justification.

> +
> +Bug reporting
> +=
> +
> +The QEMU project uses Launchpad as its primary upstream bug tracker. Bugs
> +found when running code built from QEMU git or upstream released sources
> +should be reported via:
> +
> +  https://bugs.launchpad.net/qemu/
> +
> +If using QEMU via an operating system vendor pre-built binary package, it
> +is preferrable to report bugs to the vendor's own bug tracker first. If the

Preferable, in US English at least. (As an aside: are we formalized on
en_US or en_GB? neither?)

> +bug is also known to affect latest upstream code, it can also be reported
> +via launchpad.
> +
> +For additional information on bug reporting consult:
> +
> +  http://qemu-project.org/Contribute/ReportABug
> +
> +
> +Licensing
> +=
> +
> +  - QEMU as a whole is released under the GNU General Public License, 
> version 2.
> +
> +  - Parts of QEMU have specific licenses which are compatible with the GNU
> +General Public License, version 2. Hence each source file contains its 
> own
> +licensing information. Source files with no licensing information are
> +released under the GNU General Public License, version 2 or (at your
> +option) any later version. As of July 2013, contributions under version
> +2 of the GNU General Public License (and no later version) are only
> +accepted for the following files or directories: bsd-user/, linux-user/,
> +hw/misc/vfio.c, hw/xen/xen_pt*.
> +
> +  - The Tiny Code Generator (TCG) is released under the BSD license (see
> +license headers in files).
> +
> +  - QEMU is a trademark of Fabrice Bellard.
> +
> +For additional information on QEMU licensing consult:
> +

I th

Re: [Qemu-devel] [PATCH] README: fill out some useful quickstart information

2015-09-17 Thread Markus Armbruster
"Daniel P. Berrange"  writes:

> On Thu, Sep 17, 2015 at 01:20:43PM +0100, Peter Maydell wrote:
>> On 17 September 2015 at 13:05, Daniel P. Berrange  
>> wrote:
>> > On Thu, Sep 17, 2015 at 12:32:56PM +0100, Peter Maydell wrote:
>> >> On 17 September 2015 at 12:03, Daniel P. Berrange
>> >>  wrote:
>> >
>> >> > +Building
>> >> > +
>> >> > +
>> >> > +QEMU is multi-platform software intended to be buildable on
>> >> > all modern Linux
>> >> > +platforms, OS-X, Win32 (via the Mingw64 toolchain) and a
>> >> > variety of other
>> >> > +UNIX targets. The simple process to build QEMU is
>> >>
>> >> This whole section seems to be duplicating our existing build
>> >> documentation (which is in qemu-doc.texi in the 'compilation'
>> >> section). We should document how to build QEMU in exactly one
>> >> place, not two (though I can see the rationale for that one
>> >> place not being in a .texi file.)
>> >
>> > The problem I have with refering people to qemu-doc.html,
>> > is that in order to order to view the docs on how to build
>> > QEMU, you first have to build QEMU, or enjoy reading the
>> > .texi source code :-)  Though that doc does get exposed
>> > via the website too, it is nice to not rely on people having
>> > internet access all the time.
>> >
>> > The qemu-doc.html chapter 6 is a bit more detailed in what
>> > it descibes. I tend to view the instructions we put in the
>> > README file as the minimal quick-start, and then point to
>> > the comprehensive docs as a detailed reference on the matter.
>> 
>> I don't think we should have two places at all. If a "quick
>> start" is useful it should be at the start of the one document
>> we have on building QEMU.
>
> How about splitting "Chapter 6 Compilation" out of the qemu-doc.texi
> file into a standalone file, in a format that is friendly to read
> without needing generating first.

Do we want a "Compilation" chapter in qemu-doc, or do we want it to be a
separate document?  "Both" is a legitimate answer.  Multiple documents
can be generated from a single source.

Must the separate document be available right after unpacking a tarball?
"Yes" doesn't mean we can't generate it --- projects include generated
files in tarballs all the time, e.g. Autoconf-generated configure.

Must the separate document be available right after git-clone?  "Yes"
doesn't mean we can't generate it, only that we have to commit a
generated file, which is a bit awkward.

Personally, I wouldn't bother.  People capable of git-clone are capable
of finding and running a bootstrap script.  Common with projects using
Autoconf that don't commit the generated configure.

>Perhaps using something like
> Markdown[1] would be a suitable thing, as that is essentially plain
> text with a little extra punctuation, so it is easily readable as
> source, as well as allowing reasonably pleasant HTML generation
> allowing us to publish it to the website too ?

Texinfo isn't exactly the greatest markup system, but it works, and it
can generate reasonably pleasant HTML.  Ditto PDF and plain text.

Why not extract the existing chapter into a separate .texi, include it
from the user manual, include it from a trivial .texi master file,
format the latter to plain text with something like

$ texi2any --plaintext -I . how-to-build.texi >HOW-TO-BUILD

No need for redoing the markup.

[...]



Re: [Qemu-devel] [PATCH] README: fill out some useful quickstart information

2015-09-17 Thread Peter Maydell
On 17 September 2015 at 13:36, Daniel P. Berrange  wrote:
> How about splitting "Chapter 6 Compilation" out of the qemu-doc.texi
> file into a standalone file, in a format that is friendly to read
> without needing generating first.  Perhaps using something like
> Markdown[1] would be a suitable thing, as that is essentially plain
> text with a little extra punctuation, so it is easily readable as
> source, as well as allowing reasonably pleasant HTML generation
> allowing us to publish it to the website too ?

Yes, that sounds like a good idea.

-- PMM



Re: [Qemu-devel] [PATCH] README: fill out some useful quickstart information

2015-09-17 Thread Daniel P. Berrange
On Thu, Sep 17, 2015 at 01:20:43PM +0100, Peter Maydell wrote:
> On 17 September 2015 at 13:05, Daniel P. Berrange  wrote:
> > On Thu, Sep 17, 2015 at 12:32:56PM +0100, Peter Maydell wrote:
> >> On 17 September 2015 at 12:03, Daniel P. Berrange  
> >> wrote:
> >
> >> > +Building
> >> > +
> >> > +
> >> > +QEMU is multi-platform software intended to be buildable on all modern 
> >> > Linux
> >> > +platforms, OS-X, Win32 (via the Mingw64 toolchain) and a variety of 
> >> > other
> >> > +UNIX targets. The simple process to build QEMU is
> >>
> >> This whole section seems to be duplicating our existing build
> >> documentation (which is in qemu-doc.texi in the 'compilation'
> >> section). We should document how to build QEMU in exactly one
> >> place, not two (though I can see the rationale for that one
> >> place not being in a .texi file.)
> >
> > The problem I have with refering people to qemu-doc.html,
> > is that in order to order to view the docs on how to build
> > QEMU, you first have to build QEMU, or enjoy reading the
> > .texi source code :-)  Though that doc does get exposed
> > via the website too, it is nice to not rely on people having
> > internet access all the time.
> >
> > The qemu-doc.html chapter 6 is a bit more detailed in what
> > it descibes. I tend to view the instructions we put in the
> > README file as the minimal quick-start, and then point to
> > the comprehensive docs as a detailed reference on the matter.
> 
> I don't think we should have two places at all. If a "quick
> start" is useful it should be at the start of the one document
> we have on building QEMU.

How about splitting "Chapter 6 Compilation" out of the qemu-doc.texi
file into a standalone file, in a format that is friendly to read
without needing generating first.  Perhaps using something like
Markdown[1] would be a suitable thing, as that is essentially plain
text with a little extra punctuation, so it is easily readable as
source, as well as allowing reasonably pleasant HTML generation
allowing us to publish it to the website too ?

> >> Also I'm not sure our 'make install' target is a great thing to recommend.
> >
> > Any particular reason why 'make install' is bad ? I've not personally
> > had any trouble with it, though to be fair I always build with
> > '--prefix=$HOME/usr/qemu-git' so I'm not splattering stuff into /usr
> 
> Pretty much the "splats over /usr", with a side order of "I'm not
> sure how much testing it gets".

Heh, ok

Regards,
Daniel

[1] eg https://help.github.com/articles/markdown-basics/
   http://daringfireball.net/projects/markdown/syntax
-- 
|: http://berrange.com  -o-http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org  -o- http://virt-manager.org :|
|: http://autobuild.org   -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org   -o-   http://live.gnome.org/gtk-vnc :|



Re: [Qemu-devel] [PATCH] README: fill out some useful quickstart information

2015-09-17 Thread Peter Maydell
On 17 September 2015 at 13:05, Daniel P. Berrange  wrote:
> On Thu, Sep 17, 2015 at 12:32:56PM +0100, Peter Maydell wrote:
>> On 17 September 2015 at 12:03, Daniel P. Berrange  
>> wrote:
>
>> > +Building
>> > +
>> > +
>> > +QEMU is multi-platform software intended to be buildable on all modern 
>> > Linux
>> > +platforms, OS-X, Win32 (via the Mingw64 toolchain) and a variety of other
>> > +UNIX targets. The simple process to build QEMU is
>>
>> This whole section seems to be duplicating our existing build
>> documentation (which is in qemu-doc.texi in the 'compilation'
>> section). We should document how to build QEMU in exactly one
>> place, not two (though I can see the rationale for that one
>> place not being in a .texi file.)
>
> The problem I have with refering people to qemu-doc.html,
> is that in order to order to view the docs on how to build
> QEMU, you first have to build QEMU, or enjoy reading the
> .texi source code :-)  Though that doc does get exposed
> via the website too, it is nice to not rely on people having
> internet access all the time.
>
> The qemu-doc.html chapter 6 is a bit more detailed in what
> it descibes. I tend to view the instructions we put in the
> README file as the minimal quick-start, and then point to
> the comprehensive docs as a detailed reference on the matter.

I don't think we should have two places at all. If a "quick
start" is useful it should be at the start of the one document
we have on building QEMU.

>> Also I'm not sure our 'make install' target is a great thing to recommend.
>
> Any particular reason why 'make install' is bad ? I've not personally
> had any trouble with it, though to be fair I always build with
> '--prefix=$HOME/usr/qemu-git' so I'm not splattering stuff into /usr

Pretty much the "splats over /usr", with a side order of "I'm not
sure how much testing it gets".

>> > +
>> > +The configure script supports a number of arguments to turn on/off various
>> > +optional features. These can be seen with "configure --help".
>> > +
>> > +For additional information on building QEMU for Linux and Windows consult:
>> > +
>> > +  http://qemu-project.org/Hosts/Linux
>> > +  http://qemu-project.org/Hosts/W32
>>
>> We've just significantly improved our documentation for building
>> on OSX, and we should mention it here.
>
> Are those docs mentioned anywhere on the wiki, or just in the qemu-doc.html
> file ?  I took these two links from this page:
>
>   http://qemu-project.org/Documentation/GettingStartedDevelopers
>
> which doesn't mention OS-X. So we should probably address that at the
> same time.

The OSX documentation is in qemu-doc.texi.

Again, we should have all our 'how to build' docs in one place.

>> This part is no longer entirely true, incidentally (eg the AArch64 TCG 
>> backend
>> is GPL2+).
>
> I can just do what Paolo suggests and simply point people to the LICENSE
> file instead.

Yes, that would be better.

>> > +Contact
>> > +===
>> > +
>> > +The QEMU community can be contacted in a number of ways, with the two main
>> > +methods being E-Mail and IRC
>> > +
>> > + - qemu-devel@nongnu.org 
>> > (http://lists.nongnu.org/mailman/listinfo/qemu-devel)
>> > + - #qemu on irc.oftc.net
>> > +
>> > +For additional information on contacted the community consult:
>> > +
>> > +  http://qemu-project.org/Contribute/StartHere
>> > +
>> > +-- End
>>
>> Some of the lines in this file seem to be a bit over-long.
>
> Any preference for max length to stick too ? I merely ran
> it through checkpatch.pl, which enforces 80 char limit IIRC.
> I'm happy to reformat to shorter a shorter length if desired.

Wrap-at-between-70-and-75-ish is the usual recommendation, I think.

thanks
-- PMM



Re: [Qemu-devel] [PATCH] README: fill out some useful quickstart information

2015-09-17 Thread Daniel P. Berrange
On Thu, Sep 17, 2015 at 12:32:56PM +0100, Peter Maydell wrote:
> On 17 September 2015 at 12:03, Daniel P. Berrange  wrote:
> > The README file is usually the first thing consulted when a user
> > or developer obtains a copy of the QEMU source. The current QEMU
> > README is lacking immediately useful information and so not very
> > friendly for first time encounters. It either redirects users to
> > qemu-doc.html (which does not exist until they've actually
> > compiled QEMU), or the website (which assumes the user has
> > convenient internet access at time of reading).
> >
> > This fills out the README file as simple quick-start guide on
> > the topics of building source, submitting patches, licensing
> > and how to contact the QEMU community. It does not intend to be
> > comprehensive, instead referring people to an appropriate web
> > page to obtain more detailed information. The intent is to give
> > users quick guidance to get them going in the right direction.
> >
> > Signed-off-by: Daniel P. Berrange 
> > ---
> >  README | 108 
> > +++--
> >  1 file changed, 106 insertions(+), 2 deletions(-)
> >
> > diff --git a/README b/README
> > index c7c990d..71142c3 100644
> > --- a/README
> > +++ b/README
> > @@ -1,3 +1,107 @@
> > -Read the documentation in qemu-doc.html or on http://wiki.qemu-project.org
> > + QEMU README
> > +===
> >
> > -- QEMU team
> > +QEMU is a generic and open source machine emulator and virtualizer. When 
> > used
> > +as a machine emulator, QEMU can run OSes and programs made for one machine
> > +(e.g. an ARM board) on a different machine (e.g. your own PC). By using 
> > dynamic
> > +translation, it achieves very good performance. When used as a virtualizer,
> > +QEMU achieves near native performances by executing the guest code 
> > directly on
> > +the host CPU. QEMU supports virtualization when executing under the Xen
> > +hypervisor or using the KVM kernel module in Linux.
> 
> This kind of forgets the linux-user use case (which isn't machine emulation).

FYI, I just copied this text from the qemu-project.org front page :-) If
anyone has suggestions for improvements I'm all ears - we should update
the website too.

> > +Building
> > +
> > +
> > +QEMU is multi-platform software intended to be buildable on all modern 
> > Linux
> > +platforms, OS-X, Win32 (via the Mingw64 toolchain) and a variety of other
> > +UNIX targets. The simple process to build QEMU is
> 
> This whole section seems to be duplicating our existing build
> documentation (which is in qemu-doc.texi in the 'compilation'
> section). We should document how to build QEMU in exactly one
> place, not two (though I can see the rationale for that one
> place not being in a .texi file.)

The problem I have with refering people to qemu-doc.html,
is that in order to order to view the docs on how to build
QEMU, you first have to build QEMU, or enjoy reading the
.texi source code :-)  Though that doc does get exposed
via the website too, it is nice to not rely on people having
internet access all the time.

The qemu-doc.html chapter 6 is a bit more detailed in what
it descibes. I tend to view the instructions we put in the
README file as the minimal quick-start, and then point to
the comprehensive docs as a detailed reference on the matter.

> > +  ./configure
> > +  make
> > +  sudo make install
> 
> I would prefer it if we recommended people to build in a separate
> build directory, ie:
> 
> mkdir build
> cd build
> ../configure
> make

Sure, that does make sense.

> 
> Also I'm not sure our 'make install' target is a great thing to recommend.

Any particular reason why 'make install' is bad ? I've not personally
had any trouble with it, though to be fair I always build with
'--prefix=$HOME/usr/qemu-git' so I'm not splattering stuff into /usr

> 
> > +
> > +The configure script supports a number of arguments to turn on/off various
> > +optional features. These can be seen with "configure --help".
> > +
> > +For additional information on building QEMU for Linux and Windows consult:
> > +
> > +  http://qemu-project.org/Hosts/Linux
> > +  http://qemu-project.org/Hosts/W32
> 
> We've just significantly improved our documentation for building
> on OSX, and we should mention it here.

Are those docs mentioned anywhere on the wiki, or just in the qemu-doc.html
file ?  I took these two links from this page:

  http://qemu-project.org/Documentation/GettingStartedDevelopers

which doesn't mention OS-X. So we should probably address that at the
same time.

> > +Licensing
> > +=
> 
> This section seems to be duplicating the LICENSE file.
> 
> > +
> > +  - QEMU as a whole is released under the GNU General Public License, 
> > version 2.
> > +
> > +  - Parts of QEMU have specific licenses which are compatible with the GNU
> > +General Public License, version 2. Hence each source file contains its 
> > own
> > +licen

Re: [Qemu-devel] [PATCH] README: fill out some useful quickstart information

2015-09-17 Thread Paolo Bonzini


On 17/09/2015 13:03, Daniel P. Berrange wrote:
> +
> +Licensing
> +=
> +
> +  - QEMU as a whole is released under the GNU General Public License, 
> version 2.
> +
> +  - Parts of QEMU have specific licenses which are compatible with the GNU
> +General Public License, version 2. Hence each source file contains its 
> own
> +licensing information. Source files with no licensing information are
> +released under the GNU General Public License, version 2 or (at your
> +option) any later version. As of July 2013, contributions under version
> +2 of the GNU General Public License (and no later version) are only
> +accepted for the following files or directories: bsd-user/, linux-user/,
> +hw/misc/vfio.c, hw/xen/xen_pt*.
> +
> +  - The Tiny Code Generator (TCG) is released under the BSD license (see
> +license headers in files).
> +
> +  - QEMU is a trademark of Fabrice Bellard.
> +
> +For additional information on QEMU licensing consult:
> +
> +  http://qemu-project.org/License

As mentioned by Peter, this text and this URL are a duplicate of the
LICENSE file.  I would just put a tl;dr in the README file, like this:

  QEMU as a whole is released under the GNU General Public License,
  version 2.  Parts of QEMU have specific licenses which are compatible
  with the GNU General Public License, version 2.

  For additional information on QEMU licensing see the LICENSE file.

Paolo



Re: [Qemu-devel] [PATCH] README: fill out some useful quickstart information

2015-09-17 Thread Peter Maydell
On 17 September 2015 at 12:03, Daniel P. Berrange  wrote:
> The README file is usually the first thing consulted when a user
> or developer obtains a copy of the QEMU source. The current QEMU
> README is lacking immediately useful information and so not very
> friendly for first time encounters. It either redirects users to
> qemu-doc.html (which does not exist until they've actually
> compiled QEMU), or the website (which assumes the user has
> convenient internet access at time of reading).
>
> This fills out the README file as simple quick-start guide on
> the topics of building source, submitting patches, licensing
> and how to contact the QEMU community. It does not intend to be
> comprehensive, instead referring people to an appropriate web
> page to obtain more detailed information. The intent is to give
> users quick guidance to get them going in the right direction.
>
> Signed-off-by: Daniel P. Berrange 
> ---
>  README | 108 
> +++--
>  1 file changed, 106 insertions(+), 2 deletions(-)
>
> diff --git a/README b/README
> index c7c990d..71142c3 100644
> --- a/README
> +++ b/README
> @@ -1,3 +1,107 @@
> -Read the documentation in qemu-doc.html or on http://wiki.qemu-project.org
> + QEMU README
> +===
>
> -- QEMU team
> +QEMU is a generic and open source machine emulator and virtualizer. When used
> +as a machine emulator, QEMU can run OSes and programs made for one machine
> +(e.g. an ARM board) on a different machine (e.g. your own PC). By using 
> dynamic
> +translation, it achieves very good performance. When used as a virtualizer,
> +QEMU achieves near native performances by executing the guest code directly 
> on
> +the host CPU. QEMU supports virtualization when executing under the Xen
> +hypervisor or using the KVM kernel module in Linux.

This kind of forgets the linux-user use case (which isn't machine emulation).

> +
> +
> +Building
> +
> +
> +QEMU is multi-platform software intended to be buildable on all modern Linux
> +platforms, OS-X, Win32 (via the Mingw64 toolchain) and a variety of other
> +UNIX targets. The simple process to build QEMU is

This whole section seems to be duplicating our existing build
documentation (which is in qemu-doc.texi in the 'compilation'
section). We should document how to build QEMU in exactly one
place, not two (though I can see the rationale for that one
place not being in a .texi file.)

> +
> +  ./configure
> +  make
> +  sudo make install

I would prefer it if we recommended people to build in a separate
build directory, ie:

mkdir build
cd build
../configure
make

Also I'm not sure our 'make install' target is a great thing to recommend.

> +
> +The configure script supports a number of arguments to turn on/off various
> +optional features. These can be seen with "configure --help".
> +
> +For additional information on building QEMU for Linux and Windows consult:
> +
> +  http://qemu-project.org/Hosts/Linux
> +  http://qemu-project.org/Hosts/W32

We've just significantly improved our documentation for building
on OSX, and we should mention it here.

> +
> +
> +Submitting patches
> +==
> +
> +The QEMU source code is maintained under the GIT version control system.
> +
> +   git clone git://git.qemu-project.org/qemu.git
> +
> +When submitting patches, the preferred approach is to use 'git format-patch'
> +and/or 'git send-email' to format & send the mail to the 
> qemu-devel@nongnu.org
> +mailing list. All patches submitted must contain a 'Signed-off-by' line from
> +the author.
> +
> +For additional information on submitting patches consult:
> +
> +  http://qemu-project.org/Contribute/SubmitAPatch
> +  http://qemu-project.org/Contribute/TrivialPatches
> +
> +
> +Bug reporting
> +=
> +
> +The QEMU project uses Launchpad as its primary upstream bug tracker. Bugs
> +found when running code built from QEMU git or upstream released sources
> +should be reported via:
> +
> +  https://bugs.launchpad.net/qemu/
> +
> +If using QEMU via an operating system vendor pre-built binary package, it
> +is preferrable to report bugs to the vendor's own bug tracker first. If the

"preferable"

> +bug is also known to affect latest upstream code, it can also be reported
> +via launchpad.
> +
> +For additional information on bug reporting consult:
> +
> +  http://qemu-project.org/Contribute/ReportABug
> +
> +
> +Licensing
> +=

This section seems to be duplicating the LICENSE file.

> +
> +  - QEMU as a whole is released under the GNU General Public License, 
> version 2.
> +
> +  - Parts of QEMU have specific licenses which are compatible with the GNU
> +General Public License, version 2. Hence each source file contains its 
> own
> +licensing information. Source files with no licensing information are
> +released under the GNU General Public License, version 2 or (at your
> +option) any later version. As of July 2

[Qemu-devel] [PATCH] README: fill out some useful quickstart information

2015-09-17 Thread Daniel P. Berrange
The README file is usually the first thing consulted when a user
or developer obtains a copy of the QEMU source. The current QEMU
README is lacking immediately useful information and so not very
friendly for first time encounters. It either redirects users to
qemu-doc.html (which does not exist until they've actually
compiled QEMU), or the website (which assumes the user has
convenient internet access at time of reading).

This fills out the README file as simple quick-start guide on
the topics of building source, submitting patches, licensing
and how to contact the QEMU community. It does not intend to be
comprehensive, instead referring people to an appropriate web
page to obtain more detailed information. The intent is to give
users quick guidance to get them going in the right direction.

Signed-off-by: Daniel P. Berrange 
---
 README | 108 +++--
 1 file changed, 106 insertions(+), 2 deletions(-)

diff --git a/README b/README
index c7c990d..71142c3 100644
--- a/README
+++ b/README
@@ -1,3 +1,107 @@
-Read the documentation in qemu-doc.html or on http://wiki.qemu-project.org
+ QEMU README
+===
 
-- QEMU team
+QEMU is a generic and open source machine emulator and virtualizer. When used
+as a machine emulator, QEMU can run OSes and programs made for one machine
+(e.g. an ARM board) on a different machine (e.g. your own PC). By using dynamic
+translation, it achieves very good performance. When used as a virtualizer,
+QEMU achieves near native performances by executing the guest code directly on
+the host CPU. QEMU supports virtualization when executing under the Xen
+hypervisor or using the KVM kernel module in Linux.
+
+
+Building
+
+
+QEMU is multi-platform software intended to be buildable on all modern Linux
+platforms, OS-X, Win32 (via the Mingw64 toolchain) and a variety of other
+UNIX targets. The simple process to build QEMU is
+
+  ./configure
+  make
+  sudo make install
+
+The configure script supports a number of arguments to turn on/off various
+optional features. These can be seen with "configure --help".
+
+For additional information on building QEMU for Linux and Windows consult:
+
+  http://qemu-project.org/Hosts/Linux
+  http://qemu-project.org/Hosts/W32
+
+
+Submitting patches
+==
+
+The QEMU source code is maintained under the GIT version control system.
+
+   git clone git://git.qemu-project.org/qemu.git
+
+When submitting patches, the preferred approach is to use 'git format-patch'
+and/or 'git send-email' to format & send the mail to the qemu-devel@nongnu.org
+mailing list. All patches submitted must contain a 'Signed-off-by' line from
+the author.
+
+For additional information on submitting patches consult:
+
+  http://qemu-project.org/Contribute/SubmitAPatch
+  http://qemu-project.org/Contribute/TrivialPatches
+
+
+Bug reporting
+=
+
+The QEMU project uses Launchpad as its primary upstream bug tracker. Bugs
+found when running code built from QEMU git or upstream released sources
+should be reported via:
+
+  https://bugs.launchpad.net/qemu/
+
+If using QEMU via an operating system vendor pre-built binary package, it
+is preferrable to report bugs to the vendor's own bug tracker first. If the
+bug is also known to affect latest upstream code, it can also be reported
+via launchpad.
+
+For additional information on bug reporting consult:
+
+  http://qemu-project.org/Contribute/ReportABug
+
+
+Licensing
+=
+
+  - QEMU as a whole is released under the GNU General Public License, version 
2.
+
+  - Parts of QEMU have specific licenses which are compatible with the GNU
+General Public License, version 2. Hence each source file contains its own
+licensing information. Source files with no licensing information are
+released under the GNU General Public License, version 2 or (at your
+option) any later version. As of July 2013, contributions under version
+2 of the GNU General Public License (and no later version) are only
+accepted for the following files or directories: bsd-user/, linux-user/,
+hw/misc/vfio.c, hw/xen/xen_pt*.
+
+  - The Tiny Code Generator (TCG) is released under the BSD license (see
+license headers in files).
+
+  - QEMU is a trademark of Fabrice Bellard.
+
+For additional information on QEMU licensing consult:
+
+  http://qemu-project.org/License
+
+
+Contact
+===
+
+The QEMU community can be contacted in a number of ways, with the two main
+methods being E-Mail and IRC
+
+ - qemu-devel@nongnu.org (http://lists.nongnu.org/mailman/listinfo/qemu-devel)
+ - #qemu on irc.oftc.net
+
+For additional information on contacted the community consult:
+
+  http://qemu-project.org/Contribute/StartHere
+
+-- End
-- 
2.4.3