You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
3.9 KiB
132 lines
3.9 KiB
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 |
|
From: Peter Jones <pjones@redhat.com> |
|
Date: Tue, 11 Sep 2018 14:20:37 -0400 |
|
Subject: [PATCH] Add a "version" command. |
|
|
|
This adds a command that shows you info about grub's version, the grub target |
|
platform, the compiler version, and if you built with |
|
--with-rpm-version=<string>, the rpm package version. |
|
|
|
Signed-off-by: Peter Jones <pjones@redhat.com> |
|
--- |
|
configure.ac | 13 ++++++++++ |
|
grub-core/Makefile.core.def | 5 ++++ |
|
grub-core/commands/version.c | 56 ++++++++++++++++++++++++++++++++++++++++++++ |
|
config.h.in | 1 + |
|
4 files changed, 75 insertions(+) |
|
create mode 100644 grub-core/commands/version.c |
|
|
|
diff --git a/configure.ac b/configure.ac |
|
index 152e7dba652..cfdac6bed5a 100644 |
|
--- a/configure.ac |
|
+++ b/configure.ac |
|
@@ -312,6 +312,19 @@ AC_SUBST(target_cpu) |
|
AC_SUBST(platform) |
|
|
|
# Define default variables |
|
+have_with_rpm_version=n |
|
+AC_ARG_WITH([rpm_version], |
|
+ AS_HELP_STRING([--with-rpm-version=VERSION], |
|
+ [set the rpm package version [[guessed]]]), |
|
+ [have_with_rpm_version=y], |
|
+ [have_with_rpm_version=n]) |
|
+if test x$have_with_rpm_version = xy; then |
|
+ rpm_version="$with_rpm_version" |
|
+else |
|
+ rpm_version="" |
|
+fi |
|
+GRUB_RPM_VERSION="$rpm_version" |
|
+AC_SUBST(GRUB_RPM_VERSION) |
|
|
|
have_with_bootdir=n |
|
AC_ARG_WITH([bootdir], |
|
diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def |
|
index 84a3d89de9a..498ca11762a 100644 |
|
--- a/grub-core/Makefile.core.def |
|
+++ b/grub-core/Makefile.core.def |
|
@@ -579,6 +579,11 @@ image = { |
|
enable = mips_loongson; |
|
}; |
|
|
|
+module = { |
|
+ name = version; |
|
+ common = commands/version.c; |
|
+}; |
|
+ |
|
module = { |
|
name = disk; |
|
common = lib/disk.c; |
|
diff --git a/grub-core/commands/version.c b/grub-core/commands/version.c |
|
new file mode 100644 |
|
index 00000000000..f0966a518f7 |
|
--- /dev/null |
|
+++ b/grub-core/commands/version.c |
|
@@ -0,0 +1,56 @@ |
|
+/* version.c - Command to print the grub version and build info. */ |
|
+/* |
|
+ * GRUB -- GRand Unified Bootloader |
|
+ * Copyright (C) 2006,2007,2008 Free Software Foundation, Inc. |
|
+ * |
|
+ * GRUB is free software: you can redistribute it and/or modify |
|
+ * it under the terms of the GNU General Public License as published by |
|
+ * the Free Software Foundation, either version 3 of the License, or |
|
+ * (at your option) any later version. |
|
+ * |
|
+ * GRUB is distributed in the hope that it will be useful, |
|
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
+ * GNU General Public License for more details. |
|
+ * |
|
+ * You should have received a copy of the GNU General Public License |
|
+ * along with GRUB. If not, see <http://www.gnu.org/licenses/>. |
|
+ */ |
|
+ |
|
+#include <grub/dl.h> |
|
+#include <grub/term.h> |
|
+#include <grub/time.h> |
|
+#include <grub/types.h> |
|
+#include <grub/misc.h> |
|
+#include <grub/extcmd.h> |
|
+#include <grub/i18n.h> |
|
+ |
|
+GRUB_MOD_LICENSE ("GPLv3+"); |
|
+ |
|
+static grub_err_t |
|
+grub_cmd_version (grub_command_t cmd UNUSED, int argc, char **args UNUSED) |
|
+{ |
|
+ if (argc != 0) |
|
+ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("no arguments expected")); |
|
+ |
|
+ grub_printf (_("GNU GRUB version %s\n"), PACKAGE_VERSION); |
|
+ grub_printf (_("Platform %s-%s\n"), GRUB_TARGET_CPU, GRUB_PLATFORM); |
|
+ if (grub_strlen(GRUB_RPM_VERSION) != 0) |
|
+ grub_printf (_("RPM package version %s\n"), GRUB_RPM_VERSION); |
|
+ grub_printf (_("Compiler version %s\n"), __VERSION__); |
|
+ |
|
+ return 0; |
|
+} |
|
+ |
|
+static grub_command_t cmd; |
|
+ |
|
+GRUB_MOD_INIT(version) |
|
+{ |
|
+ cmd = grub_register_command ("version", grub_cmd_version, NULL, |
|
+ N_("Print version and build information.")); |
|
+} |
|
+ |
|
+GRUB_MOD_FINI(version) |
|
+{ |
|
+ grub_unregister_command (cmd); |
|
+} |
|
diff --git a/config.h.in b/config.h.in |
|
index 9e8f9911b18..c7e316f0f1f 100644 |
|
--- a/config.h.in |
|
+++ b/config.h.in |
|
@@ -59,6 +59,7 @@ |
|
|
|
#define GRUB_TARGET_CPU "@GRUB_TARGET_CPU@" |
|
#define GRUB_PLATFORM "@GRUB_PLATFORM@" |
|
+#define GRUB_RPM_VERSION "@GRUB_RPM_VERSION@" |
|
|
|
#define RE_ENABLE_I18N 1 |
|
|
|
|