{"id":813805,"url":"http://patchwork.ozlabs.org/api/patches/813805/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20170914114236.25343-3-kraxel@redhat.com/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20170914114236.25343-3-kraxel@redhat.com>","list_archive_url":null,"date":"2017-09-14T11:42:36","name":"[v2,2/2] Add --firmwarepath to configure","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"b8d1aa5a862b6fdac527684009f125a94de044a3","submitter":{"id":589,"url":"http://patchwork.ozlabs.org/api/people/589/?format=json","name":"Gerd Hoffmann","email":"kraxel@redhat.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20170914114236.25343-3-kraxel@redhat.com/mbox/","series":[{"id":3085,"url":"http://patchwork.ozlabs.org/api/series/3085/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=3085","date":"2017-09-14T11:42:35","name":"Add --firmwarepath to configure","version":2,"mbox":"http://patchwork.ozlabs.org/series/3085/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/813805/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/813805/checks/","tags":{},"related":[],"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx03.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=kraxel@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xtGst1gbvz9sCZ\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 14 Sep 2017 21:44:50 +1000 (AEST)","from localhost ([::1]:47066 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dsSZc-0002BZ-D5\n\tfor incoming@patchwork.ozlabs.org; Thu, 14 Sep 2017 07:44:48 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:55436)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <kraxel@redhat.com>) id 1dsSXd-00089l-I6\n\tfor qemu-devel@nongnu.org; Thu, 14 Sep 2017 07:42:46 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <kraxel@redhat.com>) id 1dsSXY-0005WU-VK\n\tfor qemu-devel@nongnu.org; Thu, 14 Sep 2017 07:42:45 -0400","from mx1.redhat.com ([209.132.183.28]:47118)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <kraxel@redhat.com>) id 1dsSXY-0005VF-Mg\n\tfor qemu-devel@nongnu.org; Thu, 14 Sep 2017 07:42:40 -0400","from smtp.corp.redhat.com\n\t(int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id BCA197EBDC\n\tfor <qemu-devel@nongnu.org>; Thu, 14 Sep 2017 11:42:39 +0000 (UTC)","from sirius.home.kraxel.org (ovpn-117-51.ams2.redhat.com\n\t[10.36.117.51])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 22EEA6C928;\n\tThu, 14 Sep 2017 11:42:37 +0000 (UTC)","by sirius.home.kraxel.org (Postfix, from userid 1000)\n\tid 40F9B3F110; Thu, 14 Sep 2017 13:42:36 +0200 (CEST)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com BCA197EBDC","From":"Gerd Hoffmann <kraxel@redhat.com>","To":"qemu-devel@nongnu.org","Date":"Thu, 14 Sep 2017 13:42:36 +0200","Message-Id":"<20170914114236.25343-3-kraxel@redhat.com>","In-Reply-To":"<20170914114236.25343-1-kraxel@redhat.com>","References":"<20170914114236.25343-1-kraxel@redhat.com>","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.14","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.27]);\n\tThu, 14 Sep 2017 11:42:39 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"[Qemu-devel] [PATCH v2 2/2] Add --firmwarepath to configure","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"Paolo Bonzini <pbonzini@redhat.com>, Gerd Hoffmann <kraxel@redhat.com>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"},"content":"Add a firmware path config option to configure.  Multiple directories\nare accepted, with the usual colon as separator.  Default value is\n${prefix}/share/qemu-firmware.  The path is searched in addition to the\ncurrent search path (typically ${prefix}/share/qemu).\n\nThis prepares qemu for the planned split of the prebuilt firmware blobs\ninto a separate project.\n\nDistributions can also use this to get rid of the firmware symlink farm\nand add -- for example -- /usr/share/seabios to the firmware path\ninstead.\n\nSigned-off-by: Gerd Hoffmann <kraxel@redhat.com>\n---\n configure             |  6 ++++++\n vl.c                  | 12 +++++++++---\n scripts/create_config |  2 +-\n 3 files changed, 16 insertions(+), 4 deletions(-)","diff":"diff --git a/configure b/configure\nindex fd7e3a5e81..870bdbd3e4 100755\n--- a/configure\n+++ b/configure\n@@ -332,6 +332,7 @@ modules=\"no\"\n prefix=\"/usr/local\"\n mandir=\"\\${prefix}/share/man\"\n datadir=\"\\${prefix}/share\"\n+firmwarepath=\"\\${prefix}/share/qemu-firmware\"\n qemu_docdir=\"\\${prefix}/share/doc/qemu\"\n bindir=\"\\${prefix}/bin\"\n libdir=\"\\${prefix}/lib\"\n@@ -915,6 +916,8 @@ for opt do\n   ;;\n   --localstatedir=*) local_statedir=\"$optarg\"\n   ;;\n+  --firmwarepath=*) firmwarepath=\"$optarg\"\n+  ;;\n   --sbindir=*|--sharedstatedir=*|\\\n   --oldincludedir=*|--datarootdir=*|--infodir=*|--localedir=*|\\\n   --htmldir=*|--dvidir=*|--pdfdir=*|--psdir=*)\n@@ -1418,6 +1421,7 @@ Advanced options (experts only):\n   --libdir=PATH            install libraries in PATH\n   --sysconfdir=PATH        install config in PATH$confsuffix\n   --localstatedir=PATH     install local state in PATH (set at runtime on win32)\n+  --firmwarepath=PATH      search PATH for firmware files\n   --with-confsuffix=SUFFIX suffix for QEMU data inside datadir/libdir/sysconfdir [$confsuffix]\n   --enable-debug           enable common debug build options\n   --disable-strip          disable stripping binaries\n@@ -5259,6 +5263,7 @@ libs_softmmu=\"$pixman_libs $libs_softmmu\"\n \n echo \"Install prefix    $prefix\"\n echo \"BIOS directory    $(eval echo $qemu_datadir)\"\n+echo \"firmware path     $(eval echo $firmwarepath)\"\n echo \"binary directory  $(eval echo $bindir)\"\n echo \"library directory $(eval echo $libdir)\"\n echo \"module directory  $(eval echo $qemu_moddir)\"\n@@ -5450,6 +5455,7 @@ echo \"mandir=$mandir\" >> $config_host_mak\n echo \"sysconfdir=$sysconfdir\" >> $config_host_mak\n echo \"qemu_confdir=$qemu_confdir\" >> $config_host_mak\n echo \"qemu_datadir=$qemu_datadir\" >> $config_host_mak\n+echo \"qemu_firmwarepath=$firmwarepath\" >> $config_host_mak\n echo \"qemu_docdir=$qemu_docdir\" >> $config_host_mak\n echo \"qemu_moddir=$qemu_moddir\" >> $config_host_mak\n if test \"$mingw32\" = \"no\" ; then\ndiff --git a/vl.c b/vl.c\nindex 37a3401920..da6dfaf9d4 100644\n--- a/vl.c\n+++ b/vl.c\n@@ -3048,6 +3048,7 @@ int main(int argc, char **argv, char **envp)\n     Error *main_loop_err = NULL;\n     Error *err = NULL;\n     bool list_data_dirs = false;\n+    char **dirs;\n     typedef struct BlockdevOptions_queue {\n         BlockdevOptions *bdo;\n         Location loc;\n@@ -4232,11 +4233,16 @@ int main(int argc, char **argv, char **envp)\n         qemu_set_log(0);\n     }\n \n-    /* If no data_dir is specified then try to find it relative to the\n-       executable path.  */\n+    /* add configured firmware directories */\n+    dirs = g_strsplit(CONFIG_QEMU_FIRMWAREPATH, G_SEARCHPATH_SEPARATOR_S, 0);\n+    for (i = 0; dirs[i] != NULL; i++) {\n+        qemu_add_data_dir(dirs[i]);\n+    }\n+\n+    /* try to find datadir relative to the executable path */\n     qemu_add_data_dir(os_find_datadir());\n \n-    /* If all else fails use the install path specified when building. */\n+    /* add the datadir specified when building */\n     qemu_add_data_dir(CONFIG_QEMU_DATADIR);\n \n     /* -L help lists the data directories and exits. */\ndiff --git a/scripts/create_config b/scripts/create_config\nindex e6929dd61e..603b826886 100755\n--- a/scripts/create_config\n+++ b/scripts/create_config\n@@ -15,7 +15,7 @@ case $line in\n     echo \"#define QEMU_VERSION_MINOR $minor\"\n     echo \"#define QEMU_VERSION_MICRO $micro\"\n     ;;\n- qemu_*dir=*) # qemu-specific directory configuration\n+ qemu_*dir=* | qemu_*path=*) # qemu-specific directory configuration\n     name=${line%=*}\n     value=${line#*=}\n     define_name=$(echo $name | LC_ALL=C tr '[a-z]' '[A-Z]')\n","prefixes":["v2","2/2"]}