[Top][All Lists]

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

Re: [PATCH] configure: Check bzip2 is available

From: Philippe Mathieu-Daudé
Subject: Re: [PATCH] configure: Check bzip2 is available
Date: Fri, 8 Nov 2019 12:58:23 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.1

On 11/8/19 12:39 PM, Laszlo Ersek wrote:
On 11/08/19 11:42, Philippe Mathieu-Daudé wrote:
On 11/8/19 11:34 AM, Thomas Huth wrote:
On 08/11/2019 11.28, Philippe Mathieu-Daudé wrote:
The bzip2 tool is not included in default installations.
On freshly installed systems, ./configure succeeds but 'make'
might fail later:

      BUNZIP2 pc-bios/edk2-i386-secure-code.fd.bz2
    /bin/sh: bzip2: command not found
    make: *** [Makefile:305: pc-bios/edk2-i386-secure-code.fd] Error 127
    make: *** Deleting file 'pc-bios/edk2-i386-secure-code.fd'
    make: *** Waiting for unfinished jobs....

Add a check in ./configure to warn the user if bzip2 is missing.

Fixes: 536d2173b2b
Reported-by: Thomas Huth <address@hidden>
Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
   configure | 7 +++++++
   1 file changed, 7 insertions(+)

diff --git a/configure b/configure
index efe165edf9..9957e913e8 100755
--- a/configure
+++ b/configure
@@ -1851,6 +1851,13 @@ python_version=$($python -c 'import sys;
print("%d.%d.%d" % (sys.version_info[0]
   # Suppress writing compiled files
   python="$python -B"
+# Some firmware binaries are compressed with bzip2
+if has bzip2; then
+  :
+  error_exit "bzip2 program not found. Please install it"

It's only required for the edk2 binaries, isn't it? So should this
maybe also check whether we build any of the i386-softmmu,
x86_64-softmmu arm-softmmu or aarch64-softmmu targets and pass otherwise?

I have this on my TODO somewhere, because we extract the edk2 firmwares
even if we only build MIPS/PowerPC.

But that applies to all of "BLOBS" in the root-level Makefile, doesn't
it? We also install, say, "vgabios-qxl.bin", when only the MIPS/PowerPC
system emulators are built. The only aspect that's specific to edk2
binaries is that they are kept compressed until installation time, to
save space in the git repo and in the source tarball.

You are right, other targets could improve this too.
Since this add quite complexity to the buildsys and nobody complained about that previously, I suggest we clean that *after* we switch the build machinery to Meson.

I'm reminded of the "external QEMU blob / firmware repo" idea.

Do you mind starting a new thread asking about it? It would be nice we clear this during the next dev cycle.



reply via email to

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