All of lore.kernel.org
 help / color / mirror / Atom feed
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.

  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 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.