From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by lists.gnu.org with archive (Exim 4.71) id 1VwbQ5-0001W1-Lz for mharc-grub-devel@gnu.org; Fri, 27 Dec 2013 12:41:57 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47616) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VwbPv-0001VM-8H for grub-devel@gnu.org; Fri, 27 Dec 2013 12:41:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VwbPm-0008Oq-Ht for grub-devel@gnu.org; Fri, 27 Dec 2013 12:41:47 -0500 Received: from mail-lb0-x22c.google.com ([2a00:1450:4010:c04::22c]:39131) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VwbPm-0008OZ-9o for grub-devel@gnu.org; Fri, 27 Dec 2013 12:41:38 -0500 Received: by mail-lb0-f172.google.com with SMTP id x18so4438630lbi.3 for ; Fri, 27 Dec 2013 09:41:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id; bh=4/zdDobDMgAomysNswXtzkp9OJpyA+zOf9i9qCnh2o0=; b=EKjVoC4ITSVZJxXkBUVaNyvLV+F9NDeGwYVLC22Zb9fApkCdDHqmygaHyvIjZHCjMd pWA9WS08wkbSYV+c7G8E++e25y6V9M7pkZwwzYd63BD5n+RpOA4JIXhjd6zuGkK1KEgU TKP1CxumblIQw1sBZ8chzkzJNLEx6uxSg+SO3Wu7Z9CT4c6pU46lqTvvFNTNDwjQdfTm YwZ2pp1IMKf7O+N3pW9hHphm/CqSS8nQSBYK8hhhwUUovWBIIQH0dpTWaWGnkBZypNGM w/uCU3Y2w35GcKyt37sXGjQQjA6v6lM72WbuJf6gq16jwRmY+s2S763ikv4qcDTksbA4 h0Uw== X-Received: by 10.112.188.135 with SMTP id ga7mr20468692lbc.5.1388166096944; Fri, 27 Dec 2013 09:41:36 -0800 (PST) Received: from localhost.localdomain (ppp91-76-134-134.pppoe.mtu-net.ru. [91.76.134.134]) by mx.google.com with ESMTPSA id r10sm27578825lag.7.2013.12.27.09.41.36 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 27 Dec 2013 09:41:36 -0800 (PST) From: Andrey Borzenkov To: grub-devel@gnu.org Subject: [PATCH] normalize default prefix in grub-mkimage Date: Fri, 27 Dec 2013 21:41:16 +0400 Message-Id: <1388166076-10718-1-git-send-email-arvidjaar@gmail.com> X-Mailer: git-send-email 1.8.4 X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:4010:c04::22c X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: The development of GNU GRUB List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Dec 2013 17:41:55 -0000 This fixes bogus "C:\boot\grub" at runtime for Windows build as well as the case when /boot is on separate mount point for other systems. --- util/grub-mkimage.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/util/grub-mkimage.c b/util/grub-mkimage.c index a2bd4c1..4d54f0a 100644 --- a/util/grub-mkimage.c +++ b/util/grub-mkimage.c @@ -84,6 +84,7 @@ static struct argp_option options[] = { { 0, 0, 0, 0, 0, 0 } }; +static char *default_prefix; #pragma GCC diagnostic ignored "-Wformat-nonliteral" static char * @@ -94,7 +95,7 @@ help_filter (int key, const char *text, void *input __attribute__ ((unused))) case 'd': return xasprintf (text, grub_util_get_pkglibdir ()); case 'p': - return xasprintf (text, DEFAULT_DIRECTORY); + return xasprintf (text, default_prefix); case 'O': { char *formats = grub_install_get_image_targets_string (), *ret; @@ -245,6 +246,7 @@ main (int argc, char *argv[]) grub_util_host_init (&argc, &argv); + default_prefix = grub_make_system_path_relative_to_its_root (DEFAULT_DIRECTORY); memset (&arguments, 0, sizeof (struct arguments)); arguments.comp = GRUB_COMPRESSION_AUTO; arguments.modules_max = argc + 1; @@ -252,6 +254,7 @@ main (int argc, char *argv[]) * sizeof (arguments.modules[0])); memset (arguments.modules, 0, (arguments.modules_max + 1) * sizeof (arguments.modules[0])); + arguments.prefix = xstrdup (default_prefix); if (argp_parse (&argp, argc, argv, 0, 0, &arguments) != 0) { @@ -287,8 +290,7 @@ main (int argc, char *argv[]) strcpy (ptr, dn); } - grub_install_generate_image (arguments.dir, - arguments.prefix ? : DEFAULT_DIRECTORY, fp, + grub_install_generate_image (arguments.dir, arguments.prefix, fp, arguments.output, arguments.modules, arguments.memdisk, arguments.pubkeys, arguments.npubkeys, arguments.config, @@ -298,6 +300,8 @@ main (int argc, char *argv[]) grub_util_file_sync (fp); fclose (fp); + free (default_prefix); + if (arguments.dir) free (arguments.dir); -- tg: (645ff63..) u/mingw/default-prefix (depends on: master)