From: Gleb Natapov <gleb@qumranet.com>
To: "Andreas Färber" <andreas.faerber@web.de>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2 4/6] Use libuuid if available.
Date: Mon, 25 Aug 2008 17:03:51 +0300 [thread overview]
Message-ID: <20080825140351.GO6192@minantech.com> (raw)
In-Reply-To: <BF8F5040-13E8-4DCA-BA08-FEDACA7C6870@web.de>
On Mon, Aug 25, 2008 at 01:45:53PM +0200, Andreas Färber wrote:
>>> I don't remember hearing an answer on why this is necessary. For
>>> which
>>> use case can't you just either use -uuid `uuidgen` or a hardcoded
>>> default value like the Slirp IPv4 subnet?
>> It can be used for UUID generation when VM is started for the first
>> time.
>> Management application can retrieve UUID using monitor and use it for
>> consequent runs. But the same result can be achieved in a different
>> way
>> too. So no, I really don't have a strong use case for this feature,
>> but
>> the patch set is organised in such way that it is possible to ignore
>> this particular patch.
>
> Okay, then I'd ask to invert the logic so that the user has to
> explicitly ask for it, maybe -uuid random (setting generate_uuid = 0 by
> default and =1 in that case). Then no accidental damage should be done
> and a Management Application can still use it.
>
Something like this?
---
Use libuuid if available.
If libuuid is available use it for UUID generation in case a user
asks for it.
Signed-off-by: Gleb Natapov <gleb@qumranet.com>
diff --git a/Makefile.target b/Makefile.target
index 2464484..54defd9 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -518,6 +518,10 @@ CPPFLAGS += $(CONFIG_VNC_TLS_CFLAGS)
LIBS += $(CONFIG_VNC_TLS_LIBS)
endif
+ifdef CONFIG_UUID
+LIBS += -luuid
+endif
+
# SCSI layer
OBJS+= lsi53c895a.o esp.o
diff --git a/configure b/configure
index acb4a4a..fa46a64 100755
--- a/configure
+++ b/configure
@@ -110,6 +110,7 @@ curses="yes"
aio="yes"
nptl="yes"
mixemu="no"
+uuid="yes"
# OS specific
targetos=`uname -s`
@@ -316,6 +317,8 @@ for opt do
;;
--enable-uname-release=*) uname_release="$optarg"
;;
+ --disable-uuid) uuid="no"
+ ;;
--sparc_cpu=*)
sparc_cpu="$optarg"
case $sparc_cpu in
@@ -780,6 +783,19 @@ EOF
fi
##########################################
+# uuid library
+if test "$uuid" = "yes" ; then
+ uuid=no
+ cat > $TMPC << EOF
+#include <uuid/uuid.h>
+int main(void) { uuid_t u; return 0; }
+EOF
+ if $cc -o $TMPE $TMPC -luuid 2> /dev/null ; then
+ uuid=yes
+ fi
+fi
+
+##########################################
# Sound support libraries probe
audio_drv_probe()
@@ -961,6 +977,7 @@ echo "uname -r $uname_release"
echo "NPTL support $nptl"
echo "vde support $vde"
echo "AIO support $aio"
+echo "UUID support $uuid"
if test $sdl_too_old = "yes"; then
echo "-> Your SDL version is too old - please upgrade to have SDL support"
@@ -1168,6 +1185,10 @@ if test "$vnc_tls" = "yes" ; then
echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
echo "#define CONFIG_VNC_TLS 1" >> $config_h
fi
+if test "$uuid" = "yes" ; then
+ echo "CONFIG_UUID=yes" >> $config_mak
+ echo "#define CONFIG_UUID 1" >> $config_h
+fi
qemu_version=`head $source_path/VERSION`
echo "VERSION=$qemu_version" >>$config_mak
echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
diff --git a/vl.c b/vl.c
index 30fef2a..655dd3c 100644
--- a/vl.c
+++ b/vl.c
@@ -142,6 +142,11 @@ int inet_aton(const char *cp, struct in_addr *ia);
#include "exec-all.h"
+#ifdef CONFIG_UUID
+#include <uuid/uuid.h>
+static int generate_uuid;
+#endif
+
#define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup"
#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown"
#ifdef __sun__
@@ -8803,6 +8808,12 @@ int main(int argc, char **argv)
cursor_hide = 0;
break;
case QEMU_OPTION_uuid:
+#ifdef CONFIG_UUID
+ if (strcmp(optarg, "gen") == 0) {
+ generate_uuid = 1;
+ break;
+ }
+#endif
if(qemu_uuid_parse(optarg, qemu_uuid) < 0) {
fprintf(stderr, "Fail to parse UUID string."
" Wrong format.\n");
@@ -8908,6 +8919,11 @@ int main(int argc, char **argv)
monitor_device = "stdio";
}
+#if CONFIG_UUID
+ if (generate_uuid)
+ uuid_generate(qemu_uuid);
+#endif
+
#ifndef _WIN32
if (daemonize) {
pid_t pid;
--
Gleb.
next prev parent reply other threads:[~2008-08-25 14:20 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-25 9:58 [Qemu-devel] [PATCH v2 0/6] Add UUID command-line option Gleb Natapov
2008-08-25 9:58 ` [Qemu-devel] [PATCH v2 1/6] Use IO port for qemu<->guest BIOS communication Gleb Natapov
2008-08-25 14:24 ` Anthony Liguori
2008-08-25 14:40 ` Gleb Natapov
2008-08-25 15:01 ` Blue Swirl
2008-08-25 18:01 ` Anthony Liguori
2008-08-25 18:27 ` Blue Swirl
2008-08-26 8:24 ` Gleb Natapov
2008-08-26 16:46 ` Blue Swirl
2008-08-26 19:30 ` Avi Kivity
2008-08-26 19:43 ` Blue Swirl
2008-08-27 8:18 ` Avi Kivity
2008-08-27 11:05 ` Gleb Natapov
2008-08-27 17:10 ` Blue Swirl
2008-08-28 5:29 ` Gleb Natapov
2008-09-07 2:33 ` Anthony Liguori
2008-09-07 9:32 ` Blue Swirl
2008-09-08 5:39 ` Gleb Natapov
2008-08-25 14:25 ` Anthony Liguori
2008-08-25 14:46 ` Gleb Natapov
2008-08-25 15:37 ` Jamie Lokier
2008-08-25 18:53 ` [Qemu-devel] Re: [PATCH v2 1/6] Use IO port for qemu<->guest BIOScommunication Sebastian Herbszt
2008-08-26 8:17 ` Gleb Natapov
2008-08-25 9:58 ` [Qemu-devel] [PATCH v2 2/6] Add -uuid command line option Gleb Natapov
2008-08-25 9:58 ` [Qemu-devel] [PATCH v2 3/6] Add "info uuid" command to monitor Gleb Natapov
2008-08-25 9:58 ` [Qemu-devel] [PATCH v2 4/6] Use libuuid if available Gleb Natapov
2008-08-25 11:08 ` Andreas Färber
2008-08-25 11:26 ` Gleb Natapov
2008-08-25 11:35 ` Jamie Lokier
2008-08-25 11:45 ` Andreas Färber
2008-08-25 14:03 ` Gleb Natapov [this message]
2008-08-25 18:57 ` [Qemu-devel] " Sebastian Herbszt
2008-08-25 9:58 ` [Qemu-devel] [PATCH v2 5/6] Add UUID to BIOS configuration info Gleb Natapov
2008-08-25 9:58 ` [Qemu-devel] [PATCH v2 6/6] Pass cpu speed into SM BIOS Gleb Natapov
2008-08-25 14:17 ` Anthony Liguori
2008-08-25 14:26 ` Gleb Natapov
2008-08-25 19:26 ` [Qemu-devel] " Sebastian Herbszt
2008-08-26 6:23 ` Gleb Natapov
2008-08-27 23:42 ` [Qemu-devel] " Sebastian Herbszt
2008-08-28 5:28 ` Gleb Natapov
2008-08-25 19:15 ` [Qemu-devel] " Sebastian Herbszt
2008-08-26 6:34 ` Gleb Natapov
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=20080825140351.GO6192@minantech.com \
--to=gleb@qumranet.com \
--cc=andreas.faerber@web.de \
--cc=qemu-devel@nongnu.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).