From: Colin Watson <cjwatson@ubuntu.com>
To: grub-devel@gnu.org
Subject: [PATCH] Fix grub-shell to avoid breaking "make distcheck"
Date: Fri, 29 Nov 2013 14:12:13 +0000 [thread overview]
Message-ID: <20131129141213.GD16321@riva.ucam.org> (raw)
Copying the themes directory in grub-shell isn't
parallel-test-friendly and breaks on the second test when the source
directory is read-only (as in "make distcheck"). Instead, add a
--themes-directory option to grub-mkrescue et al, and use it in
grub-shell.
---
ChangeLog | 8 ++++++++
include/grub/util/install.h | 4 ++++
tests/util/grub-shell.in | 5 +++--
util/grub-install-common.c | 20 ++++++++++++++++++--
4 files changed, 33 insertions(+), 4 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index ad83563..7b55a7a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2013-11-29 Colin Watson <cjwatson@ubuntu.com>
+ Copying the themes directory in grub-shell isn't
+ parallel-test-friendly and breaks on the second test when the source
+ directory is read-only (as in "make distcheck"). Instead, add a
+ --themes-directory option to grub-mkrescue et al, and use it in
+ grub-shell.
+
+2013-11-29 Colin Watson <cjwatson@ubuntu.com>
+
* docs/grub-dev.texi (Font Metrics): Exclude @image command from DVI
builds, since we don't have an EPS version of font_char_metrics.png.
Add leading dot to image extension per the Texinfo documentation.
diff --git a/include/grub/util/install.h b/include/grub/util/install.h
index 5cb33fc..891d170 100644
--- a/include/grub/util/install.h
+++ b/include/grub/util/install.h
@@ -50,6 +50,9 @@
{ "locale-directory", GRUB_INSTALL_OPTIONS_LOCALE_DIRECTORY, \
N_("DIR"), 0, \
N_("use translations under DIR [default=%s]"), 1 }, \
+ { "themes-directory", GRUB_INSTALL_OPTIONS_THEMES_DIRECTORY, \
+ N_("DIR"), 0, \
+ N_("use themes under DIR [default=%s]"), 1 }, \
{ "grub-mkimage", GRUB_INSTALL_OPTIONS_GRUB_MKIMAGE, \
"FILE", OPTION_HIDDEN, 0, 1 }, \
/* TRANSLATORS: "embed" is a verb (command description). "*/ \
@@ -106,6 +109,7 @@ enum grub_install_options {
GRUB_INSTALL_OPTIONS_INSTALL_COMPRESS,
GRUB_INSTALL_OPTIONS_DIRECTORY2,
GRUB_INSTALL_OPTIONS_LOCALE_DIRECTORY,
+ GRUB_INSTALL_OPTIONS_THEMES_DIRECTORY,
GRUB_INSTALL_OPTIONS_GRUB_MKIMAGE
};
diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in
index 5f20b64..d9a5253 100644
--- a/tests/util/grub-shell.in
+++ b/tests/util/grub-shell.in
@@ -347,9 +347,10 @@ if test -z "$debug"; then
fi
if [ x$boot != xnet ] && [ x$boot != xemu ]; then
- cp -R "@srcdir@/themes" "@builddir@"
pkgdatadir="@builddir@" "@builddir@/grub-mkrescue" "--output=${isofile}" "--override-directory=${builddir}/grub-core" \
- --rom-directory="${rom_directory}" $mkimage_extra_arg ${mkrescue_args} \
+ --rom-directory="${rom_directory}" \
+ --themes-directory="@srcdir@/themes" \
+ $mkimage_extra_arg ${mkrescue_args} \
"/boot/grub/grub.cfg=${cfgfile}" "/boot/grub/testcase.cfg=${source}" \
${files} >/dev/null 2>&1
fi
diff --git a/util/grub-install-common.c b/util/grub-install-common.c
index 91b558e..3204bc4 100644
--- a/util/grub-install-common.c
+++ b/util/grub-install-common.c
@@ -60,6 +60,8 @@ grub_install_help_filter (int key, const char *text,
return xasprintf(text, grub_util_get_pkglibdir ());
case GRUB_INSTALL_OPTIONS_LOCALE_DIRECTORY:
return xasprintf(text, grub_util_get_localedir ());
+ case GRUB_INSTALL_OPTIONS_THEMES_DIRECTORY:
+ return grub_util_path_concat (2, grub_util_get_pkgdatadir (), "themes");
default:
return (char *) text;
}
@@ -220,6 +222,7 @@ struct install_list install_fonts = { 1, 0, 0, 0 };
struct install_list install_themes = { 1, 0, 0, 0 };
char *grub_install_source_directory = NULL;
char *grub_install_locale_directory = NULL;
+char *grub_install_themes_directory = NULL;
void
grub_install_push_module (const char *val)
@@ -320,6 +323,10 @@ grub_install_parse (int key, char *arg)
free (grub_install_locale_directory);
grub_install_locale_directory = xstrdup (arg);
return 1;
+ case GRUB_INSTALL_OPTIONS_THEMES_DIRECTORY:
+ free (grub_install_themes_directory);
+ grub_install_themes_directory = xstrdup (arg);
+ return 1;
case GRUB_INSTALL_OPTIONS_INSTALL_MODULES:
handle_install_list (&install_modules, arg, 0);
return 1;
@@ -666,6 +673,7 @@ grub_install_copy_files (const char *src,
{
char *dst_platform, *dst_locale, *dst_fonts;
const char *pkgdatadir = grub_util_get_pkgdatadir ();
+ char *themes_dir;
{
char *platform;
@@ -780,14 +788,20 @@ grub_install_copy_files (const char *src,
install_themes.entries[1] = NULL;
}
+ if (grub_install_themes_directory)
+ themes_dir = xstrdup (grub_install_themes_directory);
+ else
+ themes_dir = grub_util_path_concat (2, grub_util_get_pkgdatadir (),
+ "themes");
+
for (i = 0; i < install_themes.n_entries; i++)
{
- char *srcf = grub_util_path_concat (4, pkgdatadir, "themes",
+ char *srcf = grub_util_path_concat (3, themes_dir,
install_themes.entries[i],
"theme.txt");
if (grub_util_is_regular (srcf))
{
- char *srcd = grub_util_path_concat (3, pkgdatadir, "themes",
+ char *srcd = grub_util_path_concat (2, themes_dir,
install_themes.entries[i]);
char *dstd = grub_util_path_concat (3, dst, "themes",
install_themes.entries[i]);
@@ -799,6 +813,8 @@ grub_install_copy_files (const char *src,
free (srcf);
}
+ free (themes_dir);
+
if (install_fonts.is_default)
{
install_fonts.is_default = 0;
--
1.8.4.4
next reply other threads:[~2013-11-29 14:12 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-29 14:12 Colin Watson [this message]
2013-12-02 5:40 ` [PATCH] Fix grub-shell to avoid breaking "make distcheck" Vladimir 'φ-coder/phcoder' Serbinenko
2013-12-04 13:37 ` Colin Watson
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=20131129141213.GD16321@riva.ucam.org \
--to=cjwatson@ubuntu.com \
--cc=grub-devel@gnu.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).