qemu-trivial
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-trivial] [Qemu-devel] [PATCH] configure: helpfully output pack


From: Stewart Smith
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
User-agent: Notmuch/0.16 (http://notmuchmail.org) Emacs/24.3.1 (x86_64-redhat-linux-gnu)

Stefan Weil <address@hidden> 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 :)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]