From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IJyV3-0007cz-Qg for qemu-devel@nongnu.org; Sat, 11 Aug 2007 17:27:57 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IJyV3-0007cl-6I for qemu-devel@nongnu.org; Sat, 11 Aug 2007 17:27:57 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IJyV3-0007ci-0f for qemu-devel@nongnu.org; Sat, 11 Aug 2007 17:27:57 -0400 Received: from ranger.systems.pipex.net ([62.241.162.32]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IJyV2-0008E5-L0 for qemu-devel@nongnu.org; Sat, 11 Aug 2007 17:27:56 -0400 Received: from [10.0.0.7] (81-86-106-14.dsl.pipex.com [81.86.106.14]) by ranger.systems.pipex.net (Postfix) with ESMTP id 7C7CCE0001EB for ; Sat, 11 Aug 2007 22:27:55 +0100 (BST) Message-ID: <46BE29F9.9050904@ecs.soton.ac.uk> Date: Sat, 11 Aug 2007 22:28:25 +0100 From: Philip Boulain MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH 4/4][RFC] Add logic to QEMU to read command line options from qcow2 images References: <59abf66e0708081124g14901b01i841b70d17ae1e097@mail.gmail.com> <59abf66e0708081252of2948d7we85c9084bad245d4@mail.gmail.com> <46BDFA90.4070400@ecs.soton.ac.uk> <46BE138D.7000500@codemonkey.ws> In-Reply-To: <46BE138D.7000500@codemonkey.ws> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Anthony Liguori wrote: > Philip Boulain wrote: >> That should probably be "#!/usr/bin/env qemu", or something similar... > I think the magic should just be "#!". Whatever you put as the QEMU > executable is your choice. Separating the args to the next line > actually does make it pretty portable. Not really; you'd still have to use the editing tool (qemu-img?) to prep it for your particular QEMU binary location on that particular host. But, yes: being able to set arbitrary binaries is essential. Using env is probably a good /default/, though. > Yes, I think that another argument should be required as Dan suggested > although I'd like something more explicit like "-read-args-from-image". > In the case where the image was directly executable, it would be > embedded as part of the interpreter arguments. This works, so long as qemu disregards "-read-args-from-image" unless it's being called as an interpreter. Otherwise, you've put the lock and the key in the same place. :) If an image says: #!/whatever/qemu -read-args-from-image -curious-and-interesting-flags This should use those flags: $ ./image.qcow2 And this shouldn't, because you don't need to have made it executable: $ qemu -hda image.qcow2 (But this would:) $ qemu -read-args-from-image -hda image.qcow2 (Side thought: presumably, we're assuming that the in-file and on-command-line arguments are unioned, ideally with the latter taking precidence if mutually exclusive.) >> This also doesn't apply outside of UNIX-like environments, e.g. >> Windows... > I think this is covered by requiring the additional argument. Agreed. LionsPhil