[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] Fix grub-shell to avoid breaking "make distcheck"
From: |
Vladimir 'φ-coder/phcoder' Serbinenko |
Subject: |
Re: [PATCH] Fix grub-shell to avoid breaking "make distcheck" |
Date: |
Mon, 02 Dec 2013 06:40:58 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131005 Icedove/17.0.9 |
On 29.11.2013 15:12, Colin Watson wrote:
> 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.
I agree with the patch but I'm unsure whether --themes-idrectory has to
be a hidden option or appear in --help.
> ---
> 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 <address@hidden>
>
> + 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 <address@hidden>
> +
> * 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;
>
signature.asc
Description: OpenPGP digital signature
- Re: [PATCH] Fix grub-shell to avoid breaking "make distcheck",
Vladimir 'φ-coder/phcoder' Serbinenko <=