From owner-svn-ports-all@FreeBSD.ORG Wed Oct 22 17:03:01 2014 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id BFB4BF73; Wed, 22 Oct 2014 17:03:01 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AB73E655; Wed, 22 Oct 2014 17:03:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id s9MH31Wn059224; Wed, 22 Oct 2014 17:03:01 GMT (envelope-from kmoore@FreeBSD.org) Received: (from kmoore@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id s9MH30Es059203; Wed, 22 Oct 2014 17:03:00 GMT (envelope-from kmoore@FreeBSD.org) Message-Id: <201410221703.s9MH30Es059203@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: kmoore set sender to kmoore@FreeBSD.org using -f From: Kris Moore Date: Wed, 22 Oct 2014 17:03:00 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r371362 - in head/sysutils/grub2-pcbsd: . files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Oct 2014 17:03:02 -0000 Author: kmoore Date: Wed Oct 22 17:02:59 2014 New Revision: 371362 URL: https://svnweb.freebsd.org/changeset/ports/371362 QAT: https://qat.redports.org/buildarchive/r371362/ Log: - Add GELI passphrase passthrough support to default grub.cfg - Add detection for EFI mode at boot - Don't clobber ${PREFIX}/etc/grub.d/40_custom on re-install - Bump PORTREV Added: head/sysutils/grub2-pcbsd/pkg-install (contents, props changed) Modified: head/sysutils/grub2-pcbsd/Makefile head/sysutils/grub2-pcbsd/files/00_header.in head/sysutils/grub2-pcbsd/files/10_ktrueos.in head/sysutils/grub2-pcbsd/files/patch-grub-core_disk_geli.c head/sysutils/grub2-pcbsd/pkg-plist Modified: head/sysutils/grub2-pcbsd/Makefile ============================================================================== --- head/sysutils/grub2-pcbsd/Makefile Wed Oct 22 16:25:55 2014 (r371361) +++ head/sysutils/grub2-pcbsd/Makefile Wed Oct 22 17:02:59 2014 (r371362) @@ -3,7 +3,7 @@ PORTNAME= grub2-pcbsd PORTVERSION= 2.02p -PORTREVISION= 8 +PORTREVISION= 9 CATEGORIES= sysutils MASTER_SITES= http://www.pcbsd.org/~kris/software/ \ ftp://ftp.pcbsd.org/pub/software/ @@ -88,6 +88,7 @@ post-install: @${INSTALL_SCRIPT} ${WRKDIR}/10_kfreebsd ${STAGEDIR}${PREFIX}/etc/grub.d/ @${INSTALL_SCRIPT} ${WRKDIR}/10_ktrueos ${STAGEDIR}${PREFIX}/etc/grub.d/ @${INSTALL_SCRIPT} ${WRKDIR}/30_os-prober ${STAGEDIR}${PREFIX}/etc/grub.d/ + @${MV} ${STAGEDIR}${PREFIX}/etc/grub.d/40_custom ${STAGEDIR}/${PREFIX}/etc/grub.d/40_custom.dist .include Modified: head/sysutils/grub2-pcbsd/files/00_header.in ============================================================================== --- head/sysutils/grub2-pcbsd/files/00_header.in Wed Oct 22 16:25:55 2014 (r371361) +++ head/sysutils/grub2-pcbsd/files/00_header.in Wed Oct 22 17:02:59 2014 (r371362) @@ -104,6 +104,11 @@ fi export menuentry_id_option +if [ x"\${gelipassphrase}" != x ]; then + set pass=\$gelipassphrase + export pass +fi + if [ "\${prev_saved_entry}" ]; then set saved_entry="\${prev_saved_entry}" save_env saved_entry @@ -206,9 +211,20 @@ EOF fi cat << EOF - set gfxmode=${GRUB_GFXMODE} - load_video - insmod gfxterm + if [ x"\${grub_platform}" = xpc ] ; then + set gfxmode=${GRUB_GFXMODE} + load_video + insmod gfxterm + else + # EFI + insmod efi_gop + insmod gfxterm + insmod font + insmod videotest + insmod videoinfo + set gfxmode=${GRUB_GFXMODE} + set gfxpayload=vga=normal + fi EOF # Gettext variables and module Modified: head/sysutils/grub2-pcbsd/files/10_ktrueos.in ============================================================================== --- head/sysutils/grub2-pcbsd/files/10_ktrueos.in Wed Oct 22 16:25:55 2014 (r371361) +++ head/sysutils/grub2-pcbsd/files/10_ktrueos.in Wed Oct 22 17:02:59 2014 (r371362) @@ -90,6 +90,9 @@ display_loaderopts() rm /tmp/.sObjs.$$ done + # Using GELI encryption? + haveGELI="false" + # Now lets echo out the modules to load if [ "$haveObjs" = "1" ] ; then while read line @@ -108,6 +111,10 @@ display_loaderopts() echo "$line" >> /tmp/.lSysCtls.$$ continue fi + + # Are we loading GELI module? + if [ "$module" = "geom_eli" ] ; then haveGELI="true" ; fi + echo " kfreebsd_module_elf ${loadPrefix}/@/boot/${mPath}/${module}.ko" done < /tmp/.lRObjs.$$ fi @@ -131,6 +138,14 @@ display_loaderopts() umount /mnt.$$ >/dev/null rmdir /mnt.$$ >/dev/null fi + + # Set the grub.platform kenv variable + echo " set kFreeBSD.grub.platform=\$grub_platform" + + # See if we need to do GELI passphrase passthrough + if [ "$haveGELI" = "true" ] ; then + echo " set kFreeBSD.kern.geom.eli.passphrase=\$pass" + fi } detect_beadm() Modified: head/sysutils/grub2-pcbsd/files/patch-grub-core_disk_geli.c ============================================================================== --- head/sysutils/grub2-pcbsd/files/patch-grub-core_disk_geli.c Wed Oct 22 16:25:55 2014 (r371361) +++ head/sysutils/grub2-pcbsd/files/patch-grub-core_disk_geli.c Wed Oct 22 17:02:59 2014 (r371362) @@ -1,23 +1,5 @@ --- grub-core/disk/geli.c.orig 2014-05-15 14:00:10.000000000 -0400 +++ grub-core/disk/geli.c 2014-09-26 10:18:53.325111693 -0400 -@@ -225,7 +225,7 @@ - - /* Look for GELI magic sequence. */ - if (grub_memcmp (header->magic, GELI_MAGIC, sizeof (GELI_MAGIC)) -- || grub_le_to_cpu32 (header->version) > 5 -+ || grub_le_to_cpu32 (header->version) > 7 - || grub_le_to_cpu32 (header->version) < 1) - grub_util_error ("%s", _("wrong ELI magic or version")); - -@@ -265,7 +265,7 @@ - - /* Look for GELI magic sequence. */ - if (grub_memcmp (header.magic, GELI_MAGIC, sizeof (GELI_MAGIC)) -- || grub_le_to_cpu32 (header.version) > 5 -+ || grub_le_to_cpu32 (header.version) > 7 - || grub_le_to_cpu32 (header.version) < 1) - { - grub_dprintf ("geli", "wrong magic %02x\n", header.magic[0]); @@ -430,6 +430,9 @@ if (!grub_password_get (passphrase, MAX_PASSPHRASE)) return grub_error (GRUB_ERR_BAD_ARGUMENT, "Passphrase not supplied"); Added: head/sysutils/grub2-pcbsd/pkg-install ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sysutils/grub2-pcbsd/pkg-install Wed Oct 22 17:02:59 2014 (r371362) @@ -0,0 +1,22 @@ +#!/bin/sh + +PREFIX=${PKG_PREFIX-/usr/local} + +if [ "$2" != "POST-INSTALL" ] ; then + exit 0 +fi + +# If this is during staging, we can skip for now +echo $PREFIX | grep -q '/stage/' +if [ $? -eq 0 ] ; then + exit 0 +fi + +# Copy over user-editable 40_custom script +if [ ! -e "${PREFIX}/etc/grub.d/40_custom" ] ; then + cp ${PREFIX}/etc/grub.d/40_custom.dist ${PREFIX}/etc/grub.d/40_custom + chmod 755 ${PREFIX}/etc/grub.d/40_custom +fi + +exit 0 + Modified: head/sysutils/grub2-pcbsd/pkg-plist ============================================================================== --- head/sysutils/grub2-pcbsd/pkg-plist Wed Oct 22 16:25:55 2014 (r371361) +++ head/sysutils/grub2-pcbsd/pkg-plist Wed Oct 22 17:02:59 2014 (r371362) @@ -155,7 +155,7 @@ man/man1/grub-syslinux2cfg.1.gz man/man8/grub-macbless.8.gz etc/grub.d/00_header etc/grub.d/30_os-prober -etc/grub.d/40_custom +etc/grub.d/40_custom.dist etc/grub.d/41_custom etc/grub.d/10_kfreebsd etc/grub.d/10_ktrueos