From: Stewart Smith <stewart@linux.vnet.ibm.com>
To: Stefan Weil <sw@weilnetz.de>, qemu-devel@nongnu.org
Cc: qemu-trivial@nongnu.org
Subject: Re: [Qemu-trivial] [Qemu-devel] [PATCH] configure: helpfully output package names for some missing dependencies.
Date: Thu, 23 Jan 2014 22:08:10 +1100 [thread overview]
Message-ID: <87eh3z552d.fsf@river.au.ibm.com> (raw)
In-Reply-To: <52E0B4EC.4040904@weilnetz.de>
Stefan Weil <sw@weilnetz.de> writes:
> Am 23.01.2014 05:54, schrieb Stewart Smith:
>> diff --git a/configure b/configure
>> index 3782a6a..87303f6 100755
>> --- a/configure
>> +++ b/configure
>> @@ -1532,7 +1532,9 @@ EOF
>> :
>> else
>> error_exit "zlib check failed" \
>> - "Make sure to have the zlib libs and headers installed."
>> + "Make sure to have the zlib libs and headers installed." \
>> + "Debian/Ubuntu: zlib1g-dev" \
>> + "Fedora/RHEL: zlib-devel"
>> fi
>> fi
>
> Removing that zlib check is on my private todo list since QEMU uses
> glib2, because glib2 already depends on zlib.
It may have some value existing as (at least on Fedora) glib2-devel
depends on libz.so.1 (i.e. zlib) but *not* on zlib-devel, so if we just
checked for glib2 we'd get the lib but not the headers for zlib, thus
having a failing build.
>> @@ -2656,6 +2662,8 @@ EOF
>> # have neither and want - prompt for system/submodule install
>> error_exit "DTC not present. Your options:" \
>> " (1) Preferred: Install the DTC devel package" \
>> + " Ubuntu/Debian: libfdt-dev" \
>
> The previous line uses a tab character. Replace it by blanks.
ack. Will do.
> Here a small hint might by useful because searching for 'DTC' packages
> will usually fail. What about writing "DTC (libfdt) devel package"?
ack, will do.
>> + " Fedora/RHEL: libfdt-devel" \
>> " (2) Fetch the DTC submodule, using:" \
>> " git submodule update --init dtc"
>> else
>>
>
> I'm not sure whether the file 'configure' is the right place for the
> precise package information. Here are some thoughts:
It's possibly not the ideal place, but I've never found an ideal
place. In other projects I've had the list of package names bitrot in:
- configure output
- README
- HACKING
- INSTALL
- some other documentation that ends up on a web site
Pretty much the only place it hasn't bitrotted is puppet manifests and
modules for setting up build machines... which isn't the *ideal* form of
documentation :)
That being said, I've found the package names outputted by configure to
be useful, even if not always perfect.
> * Those help messages are only useful for Debian / Fedore based Linux
> distributions, but not for OpenSuSE and definitely not for other
> hosts (Mac OS X, Windows, BSD).
My guess is that for OSX, Windows and BSD the git submodule option may
be taken more often?
I'll happily add in the OpenSuSE packages.. I'm just a bit less
experienced with OpenSuSE (maybe it's time for a VM though).
> * They only cover a very limited set of packages. For a really useful
> QEMU, lots of more packages are needed.
That was to be my next patch: fleshing out the list and thinking of
somewhere to put the optional package names so that they're easily
discoverable.
> * Package names are not really good interfaces because they tend to
> change over time.
Yep, they do - but this is relatively rare, and usually it's a version
number bump, and the old name usually gives you something to search for
that only gives a couple of results (rather than dozens).
> My personal impression is that the current hints in configure are
> sufficient (with the one exception DTC) and that the QEMU wiki is a
> better place to document build dependencies for the different platforms.
I'd vote for and rather than or, simply because I'm not good enough to
read all the Wiki docs before typing "./configure && make" and I suspect
I'm not the only one in the world :)
WARNING: multiple messages have this Message-ID (diff)
From: Stewart Smith <stewart@linux.vnet.ibm.com>
To: Stefan Weil <sw@weilnetz.de>, qemu-devel@nongnu.org
Cc: qemu-trivial@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] configure: helpfully output package names for some missing dependencies.
Date: Thu, 23 Jan 2014 22:08:10 +1100 [thread overview]
Message-ID: <87eh3z552d.fsf@river.au.ibm.com> (raw)
In-Reply-To: <52E0B4EC.4040904@weilnetz.de>
Stefan Weil <sw@weilnetz.de> writes:
> Am 23.01.2014 05:54, schrieb Stewart Smith:
>> diff --git a/configure b/configure
>> index 3782a6a..87303f6 100755
>> --- a/configure
>> +++ b/configure
>> @@ -1532,7 +1532,9 @@ EOF
>> :
>> else
>> error_exit "zlib check failed" \
>> - "Make sure to have the zlib libs and headers installed."
>> + "Make sure to have the zlib libs and headers installed." \
>> + "Debian/Ubuntu: zlib1g-dev" \
>> + "Fedora/RHEL: zlib-devel"
>> fi
>> fi
>
> Removing that zlib check is on my private todo list since QEMU uses
> glib2, because glib2 already depends on zlib.
It may have some value existing as (at least on Fedora) glib2-devel
depends on libz.so.1 (i.e. zlib) but *not* on zlib-devel, so if we just
checked for glib2 we'd get the lib but not the headers for zlib, thus
having a failing build.
>> @@ -2656,6 +2662,8 @@ EOF
>> # have neither and want - prompt for system/submodule install
>> error_exit "DTC not present. Your options:" \
>> " (1) Preferred: Install the DTC devel package" \
>> + " Ubuntu/Debian: libfdt-dev" \
>
> The previous line uses a tab character. Replace it by blanks.
ack. Will do.
> Here a small hint might by useful because searching for 'DTC' packages
> will usually fail. What about writing "DTC (libfdt) devel package"?
ack, will do.
>> + " Fedora/RHEL: libfdt-devel" \
>> " (2) Fetch the DTC submodule, using:" \
>> " git submodule update --init dtc"
>> else
>>
>
> I'm not sure whether the file 'configure' is the right place for the
> precise package information. Here are some thoughts:
It's possibly not the ideal place, but I've never found an ideal
place. In other projects I've had the list of package names bitrot in:
- configure output
- README
- HACKING
- INSTALL
- some other documentation that ends up on a web site
Pretty much the only place it hasn't bitrotted is puppet manifests and
modules for setting up build machines... which isn't the *ideal* form of
documentation :)
That being said, I've found the package names outputted by configure to
be useful, even if not always perfect.
> * Those help messages are only useful for Debian / Fedore based Linux
> distributions, but not for OpenSuSE and definitely not for other
> hosts (Mac OS X, Windows, BSD).
My guess is that for OSX, Windows and BSD the git submodule option may
be taken more often?
I'll happily add in the OpenSuSE packages.. I'm just a bit less
experienced with OpenSuSE (maybe it's time for a VM though).
> * They only cover a very limited set of packages. For a really useful
> QEMU, lots of more packages are needed.
That was to be my next patch: fleshing out the list and thinking of
somewhere to put the optional package names so that they're easily
discoverable.
> * Package names are not really good interfaces because they tend to
> change over time.
Yep, they do - but this is relatively rare, and usually it's a version
number bump, and the old name usually gives you something to search for
that only gives a couple of results (rather than dozens).
> My personal impression is that the current hints in configure are
> sufficient (with the one exception DTC) and that the QEMU wiki is a
> better place to document build dependencies for the different platforms.
I'd vote for and rather than or, simply because I'm not good enough to
read all the Wiki docs before typing "./configure && make" and I suspect
I'm not the only one in the world :)
next prev parent reply other threads:[~2014-01-23 11:08 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-23 4:54 [Qemu-trivial] [PATCH] configure: helpfully output package names for some missing dependencies Stewart Smith
2014-01-23 4:54 ` [Qemu-devel] " Stewart Smith
2014-01-23 6:21 ` [Qemu-trivial] " Stefan Weil
2014-01-23 6:21 ` Stefan Weil
2014-01-23 10:28 ` [Qemu-trivial] " Peter Maydell
2014-01-23 10:28 ` Peter Maydell
2014-01-23 11:08 ` Stewart Smith [this message]
2014-01-23 11:08 ` Stewart Smith
2014-01-24 1:39 ` [Qemu-trivial] [PATCH v2 0/6] configure: make output and errors more friendly Stewart Smith
2014-01-24 1:39 ` [Qemu-devel] " Stewart Smith
2014-01-24 1:39 ` [Qemu-trivial] [PATCH v2 1/6] configure: add hint of libfdt to DTC dependency not found message Stewart Smith
2014-01-24 1:39 ` [Qemu-devel] " Stewart Smith
2014-01-24 6:13 ` [Qemu-trivial] " Stefan Weil
2014-01-24 6:13 ` Stefan Weil
2014-01-24 1:39 ` [Qemu-trivial] [PATCH v2 2/6] configure: sort output of configure results alphabetically Stewart Smith
2014-01-24 1:39 ` [Qemu-devel] " Stewart Smith
2014-01-24 1:39 ` [Qemu-trivial] [PATCH v2 3/6] configure: alphabetize output of --help and separate into groups Stewart Smith
2014-01-24 1:39 ` [Qemu-devel] " Stewart Smith
2014-01-24 6:30 ` [Qemu-trivial] " Stefan Weil
2014-01-24 6:30 ` Stefan Weil
2014-01-24 1:39 ` [Qemu-trivial] [PATCH v2 4/6] configure: add help for --disable-xfsctl and --enable-xfsctl Stewart Smith
2014-01-24 1:39 ` [Qemu-devel] " Stewart Smith
2014-01-24 1:39 ` [Qemu-trivial] [PATCH v2 5/6] configure: add hints to a remedy for feature_not_found errors Stewart Smith
2014-01-24 1:39 ` [Qemu-devel] " Stewart Smith
2014-01-24 1:39 ` [Qemu-trivial] [PATCH v2 6/6] configure: helpfully output package names for some missing dependencies Stewart Smith
2014-01-24 1:39 ` [Qemu-devel] " Stewart Smith
2014-02-01 9:55 ` [Qemu-trivial] [PATCH v2 0/6] configure: make output and errors more friendly Michael Tokarev
2014-02-01 9:55 ` [Qemu-devel] " Michael Tokarev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87eh3z552d.fsf@river.au.ibm.com \
--to=stewart@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-trivial@nongnu.org \
--cc=sw@weilnetz.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.