aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Dokuchaev <danfe@FreeBSD.org>2025-02-09 03:40:06 +0000
committerAlexey Dokuchaev <danfe@FreeBSD.org>2025-02-09 03:40:06 +0000
commit891000e056fa707781d605bf47af2f31262cdbd3 (patch)
treeed8c9b2af42a0c4ac70d66a9d66dd8ff8356a95e
parenta09b35aea49994e85aebcffce515e4d2efc874d2 (diff)
sysutils/grub2-efi: the port had been improved (+)
- Revert previous naive -fpermissive "fix" and #include <grub/env.h> to obtain the grub_env_set() prototype - Replace RUN_DEPENDS manipulation with USE_GCC=yes:build and hand-rolled `do-install' target with INSTALL_WRKSRC - While here, adjust LICENSE and wrap overly long lines Fixes: 9bc25ee236c4 PR: 284483
-rw-r--r--sysutils/grub2-efi/Makefile21
-rw-r--r--sysutils/grub2-efi/files/patch-grub-core_disk_geli.c16
2 files changed, 20 insertions, 17 deletions
diff --git a/sysutils/grub2-efi/Makefile b/sysutils/grub2-efi/Makefile
index 6adabb040567..3f15a3329f5c 100644
--- a/sysutils/grub2-efi/Makefile
+++ b/sysutils/grub2-efi/Makefile
@@ -9,7 +9,7 @@ MAINTAINER= ports@FreeBSD.org
COMMENT= Multiboot EFI boot loader
WWW= https://www.gnu.org/software/grub/
-LICENSE= GPLv3
+LICENSE= GPLv3+
RUN_DEPENDS= ${LOCALBASE}/bin/mformat:filesystems/mtools \
${LOCALBASE}/bin/grub-mkrescue:sysutils/grub2-pcbsd
@@ -21,20 +21,19 @@ ONLY_FOR_ARCHS= amd64
USES= autoreconf:build bison cpe gettext gmake python tar:xz
WRKSRC= ${WRKDIR}/grub-${PORTVERSION}
+INSTALL_WRKSRC= ${WRKSRC}/grub-core
SSP_UNSAFE= yes
-USE_GCC= yes
+USE_GCC= yes:build
GNU_CONFIGURE= yes
MAKE_JOBS_UNSAFE= yes
CPE_PRODUCT= grub
CPE_VENDOR= gnu
-CONFIGURE_ARGS= --with-platform=efi --disable-werror --localedir=${PREFIX}/share/locale
+CONFIGURE_ARGS= --with-platform=efi --disable-werror \
+ --localedir=${PREFIX}/share/locale
CONFIGURE_ENV= CPP="${CC} -E" \
LEX=${LOCALBASE}/bin/flex
-CFLAGS+= -fpermissive
-
-.include <bsd.port.pre.mk>
post-patch:
@${LN} -s ${LOCALBASE}/share/fonts/dejavu/DejaVuSans.ttf ${WRKSRC}
@@ -45,11 +44,7 @@ pre-configure:
cd ${WRKSRC} && ./autogen.sh
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}
-
-RUN_DEPENDS:= ${RUN_DEPENDS:Ngcc*}
+ @${LN} -sfh /usr/include/machine /usr/include/sys /usr/include/x86 \
+ ${WRKSRC}/grub-core
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/sysutils/grub2-efi/files/patch-grub-core_disk_geli.c b/sysutils/grub2-efi/files/patch-grub-core_disk_geli.c
index f8d1f9bed333..318610292ea0 100644
--- a/sysutils/grub2-efi/files/patch-grub-core_disk_geli.c
+++ b/sysutils/grub2-efi/files/patch-grub-core_disk_geli.c
@@ -1,12 +1,20 @@
--- grub-core/disk/geli.c.orig 2015-01-30 16:34:55 UTC
+++ grub-core/disk/geli.c
-@@ -445,6 +445,9 @@ recover_key (grub_disk_t source, grub_cr
+@@ -50,6 +50,7 @@
+ #include <grub/misc.h>
+ #include <grub/mm.h>
+ #include <grub/dl.h>
++#include <grub/env.h>
+ #include <grub/err.h>
+ #include <grub/disk.h>
+ #include <grub/crypto.h>
+@@ -444,6 +445,9 @@ recover_key (grub_disk_t source, grub_cryptodisk_t dev
+ grub_free (tmp);
if (!grub_password_get (passphrase, MAX_PASSPHRASE))
return grub_error (GRUB_ERR_BAD_ARGUMENT, "Passphrase not supplied");
-
++
+ /* Set the GELI passphrase to GRUB env, for passing to FreeBSD kernel */
+ grub_env_set ("gelipassphrase", passphrase);
-+
+
/* Calculate the PBKDF2 of the user supplied passphrase. */
if (grub_le_to_cpu32 (header.niter) != 0)
- {