Subject: [alpine-aports] [PATCH] Initial commit of rEFInd package for alpine linux. - Includes patich to disable fortify headers when building libeg as nanojpeg.c uses custom efi allocators that were breaking.

From: Eric Molitor <[email-masked]>
Date: Mon, 31 Dec 2018 16:13:19 +0000

---
 community/refind/APKBUILD                     | 30 +++++++++++++++++++
 community/refind/refind-disable-fortify.patch | 11 +++++++
 2 files changed, 41 insertions(+)
 create mode 100644 community/refind/APKBUILD
 create mode 100644 community/refind/refind-disable-fortify.patch

diff --git a/community/refind/APKBUILD b/community/refind/APKBUILD
new file mode 100644
index 0000000000..07f7532685
--- /dev/null
+++ b/community/refind/APKBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Eric Molitor <[email-masked]>
+pkgname=refind
+pkgver=0.11.4
+pkgrel=0
+pkgdesc="rEFInd EFI Boot Manager"
+url="http://www.rodsbooks.com/refind"
+arch="aarch64 x86 x86_64"
+options="!check"  # No test suite.
+license="GPL-2.0"
+depends=""
+makedepends="gnu-efi-dev bash"
+#subpackages="$pkgname-doc"
+source="https://sourceforge.net/projects/refind/files/${pkgver}/${pkgname}-src-${pkgver}.tar.gz
+	refind-disable-fortify.patch"
+
+builddir="$srcdir/${pkgname}-${pkgver}"
+
+build() {
+	cd "$builddir"
+	make gnuefi
+}
+
+package() {
+	cd "$builddir"
+	install -Dm755 refind/refind_x64.efi $pkgdir/usr/share/refind/refind_x64.efi 
+	install -Dm755 refind.conf-sample $pkgdir/usr/share/refind/refind.conf-sample 
+	cp -r icons $pkgdir/usr/share/refind 
+}
+sha512sums="529962ae432edaf1895ba98deb00a23c66bd742578e1a367f70f7ed22dd7be7daf1960df8af410fba79ca775169120499a4c10119331b2b12b55a002d4354de1  refind-src-0.11.4.tar.gz
+ccb61e6e5ae0d762932941d7edd5b9a3506db42cfce70ebc57468837799e60fee73b3c568ae603a6ebb677ae702fb5beb5d13b16daf976b954b35047b6f4ecc0  refind-disable-fortify.patch"
diff --git a/community/refind/refind-disable-fortify.patch b/community/refind/refind-disable-fortify.patch
new file mode 100644
index 0000000000..b59b711473
--- /dev/null
+++ b/community/refind/refind-disable-fortify.patch
@@ -0,0 +1,11 @@
+--- refind-0.11.4-orig/libeg/Makefile
++++ refind-0.11.4/libeg/Makefile
+@@ -12,7 +12,7 @@
+ 
+ VPATH = $(SRCDIR)
+ 
+-LOCAL_GNUEFI_CFLAGS  = -I$(SRCDIR) -I$(SRCDIR)/../include
++LOCAL_GNUEFI_CFLAGS  = -D_FORTIFY_SOURCE=0 -I$(SRCDIR) -I$(SRCDIR)/../include
+ 
+ OBJS            = nanojpeg.o nanojpeg_xtra.o screen.o image.o text.o load_bmp.o load_icns.o lodepng.o lodepng_xtra.o
+ TARGET          = libeg.a
-- 
2.20.1

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---

---

From: Steffen Nurpmeso <[email-masked]>
Date: Mon, 31 Dec 2018 19:45:11 +0100

Eric Molitor wrote in <[email-masked]>:
 |---
 | community/refind/APKBUILD                     | 30 +++++++++++++++++++
 | community/refind/refind-disable-fortify.patch | 11 +++++++
 | 2 files changed, 41 insertions(+)
 | create mode 100644 community/refind/APKBUILD
 | create mode 100644 community/refind/refind-disable-fortify.patch

Does this always work for you?  Once i put Alpine on the bare
metal of an old MacBook Air back in October/November, by sheer
luck, and because it is in my repo for a long time i put rEFIt

  -rw-r----- 1 steffen code 6823525 Mar  7  2010 /x/src/code/.rEFIt-0.14.dmg

first, otherwise we would have been, well, dead (booting from
USB is impossible for whatever reason, and i do not dare to touch
the firmware): even though the initial screen was there, it
failed to boot Linux.  Luckily the refit entry could be selected,
and with it i could, and still can boot.  In the meantime,
whatever might have changed, 0.11.3 could boot at least once
(i usually boot once a week only, and see rEFIt first).

I used to know that rEFIt has the same problem, but it is always
stunning that if you mess up the configuration file (especially
the boot order) the software will not fall back to some automatic
"just try to get the best out of it", but fails to start up.  This
configuration file parse problem includes busy loops which can
turn your computer into a toaster.  Maybe it has to be this way.
Other than that this works here for a decade.

(I am very lucky that the Acer just works with nothing but
Syslinux.  And now that i have finally and somehow could set bit
2 to gain the "legacy_boot" bit in the GPT partitioning of the
server, it is like that there, too!)

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

---

---

From: Eric Molitor <[email-masked]>
Date: Mon, 31 Dec 2018 19:19:30 +0000

Ugh, I need to fix the license as it's actually BSD / GPL 3 and not GPL 2
as the APKBUILD states. I will fix that tomorrow and resubmit.

Yes it works well for me. Refind is one of the few uefi bootloader that
supports MOKs and works consistently well for me. That said if you break
the config it can still go horribly wrong and be difficult to fix.

My preference is to directly use the efi stub support of the kernel
building in the kernel commandline. However that's not very portable. :)

- Eric

On Mon, 31 Dec 2018, 16:14 Eric Molitor <[email-masked] wrote:

> +source="
> https://sourceforge.net/projects/refind/files/${pkgver}/${pkgname}-src-${pkgver}.tar.gz
> +       install -Dm755 refind.conf-sample
> $pkgdir/usr/share/refind/refind.conf-sample
> diff --git a/community/refind/refind-disable-fortify.patch
> b/community/refind/refind-disable-fortify.patch
> new file mode 100644
> + OBJS            = nanojpeg.o nanojpeg_xtra.o screen.o image.o text.o
> load_bmp.o load_icns.o lodepng.o lodepng_xtra.o
> + TARGET          = libeg.a
> --
> 2.20.1
>
>

---

From: Steffen Nurpmeso <[email-masked]>
Date: Mon, 31 Dec 2018 21:25:37 +0100

Eric Molitor wrote in <CAFy3MMhV_pOT0f+NdmnhaEW6uYW=XKf=Qp6h4Ey0a-v-xQF2\
[email-masked]>:
 |Ugh, I need to fix the license as it's actually BSD / GPL 3 and not \
 |GPL 2 as the APKBUILD states. I will fix that tomorrow and resubmit.
 |
 |Yes it works well for me. Refind is one of the few uefi bootloader \
 |that supports MOKs and works consistently well for me. That said if \

Ok, thanks.  Good to know.  Maybe it is just the old machine or...
whatever.  I had to look what a MOK is.  Well.  They are on your
machine already, that is very bad.

 |you break the config it 
 |can still go horribly wrong and be difficult to fix. 

The situation seems to be unchanged indeed.

 |My preference is to directly use the efi stub support of the kernel \
 |building in the kernel commandline. However that's not very portable. :)

I have read a bit on that on November, but i am a user space guy
with few machines and come from BSD land...

--steffen
|

---

---

From: Eric Molitor <[email-masked]>
Date: Tue, 1 Jan 2019 11:56:11 +0000

---
Changes v1 -> v2
- Fix License to correctly reflect GPL v3.0
- Use numeric prefix on patch

 .../refind/10-refind-disable-fortify.patch    | 11 +++++++
 community/refind/APKBUILD                     | 30 +++++++++++++++++++
 2 files changed, 41 insertions(+)
 create mode 100644 community/refind/10-refind-disable-fortify.patch
 create mode 100644 community/refind/APKBUILD

diff --git a/community/refind/10-refind-disable-fortify.patch b/community/refind/10-refind-disable-fortify.patch
new file mode 100644
+++ b/community/refind/10-refind-disable-fortify.patch
index 0000000000..7946da60c4
+license="GPL-3.0"

---

---

From: Eric Molitor <[email-masked]>
Date: Tue, 1 Jan 2019 12:33:56 +0000

https://www.rodsbooks.com/refind
A fork of the rEFIt boot manager for computers based on the
Extensible Firmware Interface (EFI) and Unified EFI (UEFI).
---
Changes v2 -> v3:
- Update sha512sums
- Correctly use numeric patches

index 0000000000..a280c06332
+	10-refind-disable-fortify.patch"
+ccb61e6e5ae0d762932941d7edd5b9a3506db42cfce70ebc57468837799e60fee73b3c568ae603a6ebb677ae702fb5beb5d13b16daf976b954b35047b6f4ecc0  10-refind-disable-fortify.patch"
-- 
2.20.1

---

---

From: Eric Molitor <[email-masked]>
Date: Tue, 1 Jan 2019 20:39:19 +0000

https://www.rodsbooks.com/refind
A fork of the rEFIt boot manager for computers based on the
Extensible Firmware Interface (EFI) and Unified EFI (UEFI).
---
Changes v3 -> v4:
 - Correctly place new package in test

 .../refind/10-refind-disable-fortify.patch    | 11 +++++++
 testing/refind/APKBUILD                       | 30 +++++++++++++++++++
 2 files changed, 41 insertions(+)
 create mode 100644 testing/refind/10-refind-disable-fortify.patch
 create mode 100644 testing/refind/APKBUILD

diff --git a/testing/refind/10-refind-disable-fortify.patch b/testing/refind/10-refind-disable-fortify.patch
new file mode 100644
+++ b/testing/refind/10-refind-disable-fortify.patch
diff --git a/testing/refind/APKBUILD b/testing/refind/APKBUILD
+++ b/testing/refind/APKBUILD

---

---

From: Eric Molitor <[email-masked]>
Date: Tue, 1 Jan 2019 20:45:10 +0000

https://www.rodsbooks.com/refind
A fork of the rEFIt boot manager for computers based on the
Extensible Firmware Interface (EFI) and Unified EFI (UEFI).
---
Changes v4 -> v5:
- Remove commented out subpackage
- Correct package location description to testing/refind

 .../refind/10-refind-disable-fortify.patch    | 11 +++++++
 testing/refind/APKBUILD                       | 29 +++++++++++++++++++
 2 files changed, 40 insertions(+)
 create mode 100644 testing/refind/10-refind-disable-fortify.patch
 create mode 100644 testing/refind/APKBUILD

index 0000000000..873d3554d6
@@ -0,0 +1,29 @@

---