Skip to content
This repository has been archived by the owner on Dec 4, 2020. It is now read-only.

Commit

Permalink
Add a new grub2-efi port, it depends upon the standard sysutils/grub2
Browse files Browse the repository at this point in the history
port, but adds the lib/grub/x86_64-efi boot modules
  • Loading branch information
Kris Moore committed Oct 14, 2013
1 parent 0a15f21 commit 42ca77f
Show file tree
Hide file tree
Showing 14 changed files with 2,022 additions and 0 deletions.
49 changes: 49 additions & 0 deletions build-files/ports-overlay/sysutils/grub2-efi/Makefile
@@ -0,0 +1,49 @@
# Created by: kmoore@FreeBSD.org
# $

PORTNAME= grub2-efi
PORTVERSION= 2.00
PORTREVISION= 1
CATEGORIES= sysutils
MASTER_SITES= GNU/grub
DISTNAME= grub-${PORTVERSION}

MAINTAINER= kmoore@FreeBSD.org
COMMENT= Multiboot EFI boot loader

LICENSE= GPLv3

BUILD_DEPENDS= ${LOCALBASE}/bin/flex:${PORTSDIR}/textproc/flex \
help2man:${PORTSDIR}/misc/help2man

RUN_DEPENDS= ${LOCALBASE}/bin/mformat:${PORTSDIR}/emulators/mtools \
${LOCALBASE}/bin/grub-mkrescue:${PORTSDIR}/sysutils/grub2

SSP_UNSAFE= yes
USE_XZ= yes
USE_GCC= yes
USE_AUTOTOOLS= automake aclocal autoconf
ACLOCAL_ARGS= -Im4
GNU_CONFIGURE= yes
USE_GMAKE= yes
USES= bison gettext
ONLY_FOR_ARCHS= amd64
MAKE_JOBS_UNSAFE= yes

CONFIGURE_ARGS= --with-platform=efi --disable-werror --localedir=${PREFIX}/share/locale
CONFIGURE_ENV= CPP="${CC} -E" \
LEX=${LOCALBASE}/bin/flex

.include <bsd.port.pre.mk>

post-patch:
@${LN} -s ${LOCALBASE}/lib/X11/fonts/dejavu/DejaVuSans.ttf ${WRKSRC}
@${TOUCH} -t 200001010000 ${WRKSRC}/Makefile.util.def

post-configure:
@${LN} -sfh /usr/include/machine /usr/include/sys /usr/include/x86 ${WRKSRC}/grub-core

do-install:
@cd ${WRKSRC}/grub-core && gmake install DESTDIR=${STAGEDIR}

.include <bsd.port.post.mk>
2 changes: 2 additions & 0 deletions build-files/ports-overlay/sysutils/grub2-efi/distinfo
@@ -0,0 +1,2 @@
SHA256 (grub-2.00.tar.xz) = 784ec38e7edc32239ad75b8e66df04dc8bfb26d88681bc9f627133a6eb85c458
SIZE (grub-2.00.tar.xz) = 5136412

Large diffs are not rendered by default.

@@ -0,0 +1,11 @@
--- Makefile.util.def.orig
+++ Makefile.util.def
@@ -266,7 +266,7 @@ program = {
ldadd = libgrubgcry.a;
ldadd = libgrubkern.a;
ldadd = grub-core/gnulib/libgnu.a;
- ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) -lfuse';
+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM) -lfuse';
condition = COND_GRUB_MOUNT;
};

@@ -0,0 +1,130 @@
--- build-aux/test-driver.o 2013-07-29 08:36:33.775875020 -0400
+++ build-aux/test-driver 2013-07-29 08:35:04.085870311 -0400
@@ -0,0 +1,127 @@
+#! /bin/sh
+# test-driver - basic testsuite driver script.
+
+scriptversion=2012-06-27.10; # UTC
+
+# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+#
+# This program 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 2, or (at your option)
+# any later version.
+#
+# This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+# Make unconditional expansion of undefined variables an error. This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+usage_error ()
+{
+ echo "$0: $*" >&2
+ print_usage >&2
+ exit 2
+}
+
+print_usage ()
+{
+ cat <<END
+Usage:
+ test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
+ [--expect-failure={yes|no}] [--color-tests={yes|no}]
+ [--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
+The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+END
+}
+
+# TODO: better error handling in option parsing (in particular, ensure
+# TODO: $log_file, $trs_file and $test_name are defined).
+test_name= # Used for reporting.
+log_file= # Where to save the output of the test script.
+trs_file= # Where to save the metadata of the test run.
+expect_failure=no
+color_tests=no
+enable_hard_errors=yes
+while test $# -gt 0; do
+ case $1 in
+ --help) print_usage; exit $?;;
+ --version) echo "test-driver $scriptversion"; exit $?;;
+ --test-name) test_name=$2; shift;;
+ --log-file) log_file=$2; shift;;
+ --trs-file) trs_file=$2; shift;;
+ --color-tests) color_tests=$2; shift;;
+ --expect-failure) expect_failure=$2; shift;;
+ --enable-hard-errors) enable_hard_errors=$2; shift;;
+ --) shift; break;;
+ -*) usage_error "invalid option: '$1'";;
+ esac
+ shift
+done
+
+if test $color_tests = yes; then
+ # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
+ red='' # Red.
+ grn='' # Green.
+ lgn='' # Light green.
+ blu='' # Blue.
+ mgn='' # Magenta.
+ std='' # No color.
+else
+ red= grn= lgn= blu= mgn= std=
+fi
+
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
+trap "st=129; $do_exit" 1
+trap "st=130; $do_exit" 2
+trap "st=141; $do_exit" 13
+trap "st=143; $do_exit" 15
+
+# Test script is run here.
+"$@" >$log_file 2>&1
+estatus=$?
+if test $enable_hard_errors = no && test $estatus -eq 99; then
+ estatus=1
+fi
+
+case $estatus:$expect_failure in
+ 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
+ 0:*) col=$grn res=PASS recheck=no gcopy=no;;
+ 77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
+ 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
+ *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
+ *:*) col=$red res=FAIL recheck=yes gcopy=yes;;
+esac
+
+# Report outcome to console.
+echo "${col}${res}${std}: $test_name"
+
+# Register the test result, and other relevant metadata.
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
@@ -0,0 +1,35 @@
--- configure.ac.orig
+++ configure.ac
@@ -1044,19 +1044,19 @@ fi

if test x"$libzfs_excuse" = x ; then
# Only check for system headers if libzfs support has not been disabled.
- AC_CHECK_HEADERS(libzfs.h libnvpair.h)
+ AC_CHECK_HEADERS(libzfs.h libnvpair.h, [], [], [typedef int boolean_t;])
fi

if test x"$libzfs_excuse" = x ; then
AC_CHECK_LIB([zfs], [libzfs_init],
[],
- [libzfs_excuse="need zfs library"])
+ [libzfs_excuse="need zfs library"], [-lavl -lnvpair -luutil -lm])
fi

if test x"$libzfs_excuse" = x ; then
AC_CHECK_LIB([nvpair], [nvlist_print],
[],
- [libzfs_excuse="need nvpair library"])
+ [libzfs_excuse="need nvpair library"], [-lavl -lnvpair -luutil -lm])
fi

if test x"$enable_libzfs" = xyes && test x"$libzfs_excuse" != x ; then
@@ -1069,6 +1069,9 @@ if test x"$libzfs_excuse" = x ; then
AC_DEFINE([HAVE_LIBZFS], [1],
[Define to 1 if you have the ZFS library.])
LIBNVPAIR="-lnvpair"
+ if test x$host_kernel = xkfreebsd; then
+ LIBNVPAIR="$LIBNVPAIR -lavl -luutil -lm"
+ fi
AC_DEFINE([HAVE_LIBNVPAIR], [1],
[Define to 1 if you have the NVPAIR library.])
fi

0 comments on commit 42ca77f

Please sign in to comment.