diff options
| author | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
|---|---|---|
| committer | root <root@alpha.trunkmasters.com> | 2026-06-12 19:09:37 -0500 |
| commit | b590c8d7572b727d565cc0b8ff660d43569845de (patch) | |
| tree | 06f7a4102ea4e845df8b66660f252920d52952f9 /sys-boot/elilo | |
| parent | 24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff) | |
| download | baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip | |
Adding metadata
Diffstat (limited to 'sys-boot/elilo')
| -rw-r--r-- | sys-boot/elilo/Manifest | 2 | ||||
| -rw-r--r-- | sys-boot/elilo/elilo-3.16-r6.ebuild | 94 | ||||
| -rw-r--r-- | sys-boot/elilo/files/elilo-3.16-ARCH.patch | 12 | ||||
| -rw-r--r-- | sys-boot/elilo/files/elilo-3.16-FLAGS.patch | 19 | ||||
| -rw-r--r-- | sys-boot/elilo/files/elilo-3.16-elilo-loop.patch | 15 | ||||
| -rw-r--r-- | sys-boot/elilo/files/elilo-3.16-gnu-efi-3.0.6-ia64.patch | 112 | ||||
| -rw-r--r-- | sys-boot/elilo/files/elilo-3.16-strncpy-clash.patch | 23 | ||||
| -rw-r--r-- | sys-boot/elilo/files/elilo.conf.sample | 9 | ||||
| -rw-r--r-- | sys-boot/elilo/metadata.xml | 5 |
9 files changed, 291 insertions, 0 deletions
diff --git a/sys-boot/elilo/Manifest b/sys-boot/elilo/Manifest new file mode 100644 index 000000000000..41b5e2e78a3e --- /dev/null +++ b/sys-boot/elilo/Manifest @@ -0,0 +1,2 @@ +DIST elilo-3.16-all.tar.gz 485844 BLAKE2B 813762ffef32a640c074973a07d886e0de137be10ff08e9375cd894b0d83dd8bc96cc33f80da1e698db49cc9f105a905abb2fa04048eaca394d3d70e79cb8534 SHA512 4289b45f2e40b2a12167f2efd9a482cf97baedb13fc24813f360f375296d0d3f107d6c980b4b31262816f664a2536353fa124e689cbd65093da9b16fdddaf842 +DIST elilo_3.14-3.debian.tar.gz 32179 BLAKE2B 84f8055d3e33b99ce91079768da80a8800c3c2f569ce5619641a983efb943055dfd9a8fb2fda8e5e6d60009ffefbcc1573098f022f06635d4d5304bc3bfddf1e SHA512 b2d5927bf84d61cc432fc916301ddb3be74db16d3e5ba4f13039e2925606b8870991fbb17f837005d8f2b655b7dcd2b2311dfacd7f02183762caf7081ede638f diff --git a/sys-boot/elilo/elilo-3.16-r6.ebuild b/sys-boot/elilo/elilo-3.16-r6.ebuild new file mode 100644 index 000000000000..e4363db96609 --- /dev/null +++ b/sys-boot/elilo/elilo-3.16-r6.ebuild @@ -0,0 +1,94 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit secureboot toolchain-funcs + +DESCRIPTION="Linux boot loader for EFI-based systems such as IA-64" +HOMEPAGE="https://sourceforge.net/projects/elilo/" +SRC_URI="https://downloads.sourceforge.net/elilo/${P}-all.tar.gz + mirror://debian/pool/main/e/elilo/elilo_3.14-3.debian.tar.gz" +S="${WORKDIR}/${P}-source" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +# gnu-efi contains only static libs, so there's no run-time dep on it +DEPEND=">=sys-boot/gnu-efi-3.0g + dev-util/patchutils" +# dosfstools[compat] to enable 'dosfsck' symlink +RDEPEND="sys-boot/efibootmgr + sys-fs/dosfstools[compat]" + +PATCHES=( + "${FILESDIR}"/${PN}-3.16-elilo-loop.patch #299665 + "${FILESDIR}"/${PN}-3.16-gnu-efi-3.0.6-ia64.patch + "${FILESDIR}"/${PN}-3.16-strncpy-clash.patch + "${FILESDIR}"/${PN}-3.16-FLAGS.patch + "${FILESDIR}"/${PN}-3.16-ARCH.patch +) + +src_unpack() { + unpack ${A} ./${P}-source.tar.gz + mv debian "${S}"/ || die +} + +src_prepare() { + default + + case $(tc-arch) in + ia64) iarch=ia64 ;; + x86) iarch=ia32 ;; + amd64) iarch=x86_64 ;; + *) die "unknown architecture: $(tc-arch)" ;; + esac + + # Now Gentooize it. + sed -i \ + -e '1s:/bin/sh:/bin/bash:' \ + -e "s:##VERSION##:${PV}:" \ + -e 's:Debian GNU/:Gentoo :g' \ + -e 's:Debian:Gentoo:g' \ + -e 's:debian:gentoo:g' \ + -e "s:dpkg --print-architecture:echo ${iarch}:" \ + debian/elilo.sh || die +} + +src_compile() { + # "prefix" on the next line specifies where to find gcc, as, ld, + # etc. It's not the usual meaning of "prefix". By blanking it we + # allow PATH to be searched. + local libdir="${ESYSROOT}/usr/$(get_libdir)" + emake -j1 \ + prefix= \ + AS="$(tc-getAS)" \ + CC="$(tc-getCC)" \ + LD="$(tc-getLD)" \ + OBJCOPY="$(tc-getOBJCOPY)" \ + HOSTARCH=${iarch} \ + ARCH=${iarch} \ + EFIINC="${ESYSROOT}/usr/include/efi" \ + GNUEFILIB="${libdir}" \ + EFILIB="${libdir}" \ + EFICRT0="${libdir}" \ + NATIVE_CFLAGS="${CFLAGS}" \ + NATIVE_LDFLAGS="${LDFLAGS}" +} + +src_install() { + exeinto /usr/lib/elilo + doexe elilo.efi + + newsbin debian/elilo.sh elilo + dosbin tools/eliloalt + + insinto /etc + newins "${FILESDIR}"/elilo.conf.sample elilo.conf + + dodoc docs/* "${FILESDIR}"/elilo.conf.sample + doman debian/*.[0-9] + + secureboot_auto_sign --in-place +} diff --git a/sys-boot/elilo/files/elilo-3.16-ARCH.patch b/sys-boot/elilo/files/elilo-3.16-ARCH.patch new file mode 100644 index 000000000000..935cf7adbe4e --- /dev/null +++ b/sys-boot/elilo/files/elilo-3.16-ARCH.patch @@ -0,0 +1,12 @@ +Allow for easier override from make's commandline. +--- a/Make.defaults ++++ b/Make.defaults +@@ -64,7 +64,7 @@ TOPDIR = + ALLSUBDIRS = ia32 ia64 x86_64 fs choosers devschemes tools + + HOSTARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH | sed s,i[3456789]86,ia32, | sed s,amd64,x86_64, ) +-ARCH := $(shell dpkg-architecture -qDEB_BUILD_ARCH | sed s,i[3456789]86,ia32, | sed s,amd64,x86_64, ) ++ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH | sed s,i[3456789]86,ia32, | sed s,amd64,x86_64, ) + INCDIR = -I. -I$(TOPDIR) -I$(EFIINC) -I$(EFIINC)/$(ARCH) -I$(EFIINC)/protocol -I$(TOPDIR)/efi110 + CPPFLAGS = -DCONFIG_$(ARCH) + diff --git a/sys-boot/elilo/files/elilo-3.16-FLAGS.patch b/sys-boot/elilo/files/elilo-3.16-FLAGS.patch new file mode 100644 index 000000000000..a77e44d0b186 --- /dev/null +++ b/sys-boot/elilo/files/elilo-3.16-FLAGS.patch @@ -0,0 +1,19 @@ +eliloalt is a rare native tool. Allow user to explicitly pass +standart optimization flags via + $ make NATIIVE_CFLAGS=${CFLAGS} NATIVE_LDFLAGS +https://bugs.gentoo.org/744931 +--- a/tools/Makefile ++++ b/tools/Makefile +@@ -42,10 +42,10 @@ all: $(TARGET) + # redefine local rule (we build a Linux/ia64 binary here) + # + %.o: %.c +- $(CC) $(OPTIMFLAGS) $(DEBUGFLAGS) -c $< -o $@ ++ $(CC) $(OPTIMFLAGS) $(NATIVE_CFLAGS) $(DEBUGFLAGS) -c $< -o $@ + + $(TARGET): %:%.o +- $(CC) -o $@ $(OPTIMFLAGS) $(DEBUGFLAGS) $^ ++ $(CC) -o $@ $(OPTIMFLAGS) $(NATIVE_CFLAGS) $(NATIVE_LDFLAGS) $(DEBUGFLAGS) $^ + + clean: + $(RM) -f $(TARGET) $(FILES) diff --git a/sys-boot/elilo/files/elilo-3.16-elilo-loop.patch b/sys-boot/elilo/files/elilo-3.16-elilo-loop.patch new file mode 100644 index 000000000000..b574c29f220b --- /dev/null +++ b/sys-boot/elilo/files/elilo-3.16-elilo-loop.patch @@ -0,0 +1,15 @@ +https://bugs.gentoo.org/299665 + +patch by Dennis Schridde <devurandom@gmx.net> + +--- a/debian/elilo.sh ++++ b/debian/elilo.sh +@@ -321,6 +321,8 @@ + + mnt() + { ++ local loop ++ + ## we can even create bootstrap filesystem images directly if you + ## ever wanted too. + if [ -f "$boot" ] ; then diff --git a/sys-boot/elilo/files/elilo-3.16-gnu-efi-3.0.6-ia64.patch b/sys-boot/elilo/files/elilo-3.16-gnu-efi-3.0.6-ia64.patch new file mode 100644 index 000000000000..21f10f316441 --- /dev/null +++ b/sys-boot/elilo/files/elilo-3.16-gnu-efi-3.0.6-ia64.patch @@ -0,0 +1,112 @@ +Disambiguate setpjmp()/longjmp()/jmp_buf across elilo copy and gnu-efi-3.0.6. + +In order not to chang the behaviour I'm keeping elilo's implementation +as the jmp_buf passing ABI is slightly different scross the two. + + setjmp.h:25:14: error: conflicting types for 'jmp_buf' + typedef long jmp_buf[_JBLEN] __attribute__ ((aligned (16))); /* guarantees 128-bit alignment! */ + ^~~~~~~ + In file included from /usr/include/efi/efisetjmp.h:5:0, + from /usr/include/efi/efi.h:60, + from gzip.c:29: + /usr/include/efi/ia64/efisetjmp_arch.h:45:23: note: previous declaration of 'jmp_buf' was here + } ALIGN(JMPBUF_ALIGN) jmp_buf; + ^~~~~~~ +diff --git a/ia64/gzip.c b/ia64/gzip.c +index cc0c943..e2d40f6 100644 +--- a/ia64/gzip.c ++++ b/ia64/gzip.c +@@ -138,3 +138,3 @@ static void error(char *m); + +-static jmp_buf jbuf; ++static jmp_buf_ia64_elilo jbuf; + static int error_return; +@@ -598,3 +598,3 @@ load_abort: + error_return = ELILO_LOAD_ABORTED; +- longjmp(jbuf, 1); ++ longjmp_ia64_elilo(jbuf, 1); + } +@@ -606,3 +606,3 @@ error(char *x) + /* will eventually exit with error from gunzip() */ +- longjmp(jbuf,1); ++ longjmp_ia64_elilo(jbuf,1); + } +@@ -645,3 +645,3 @@ gunzip_kernel(fops_fd_t fd, kdesc_t *kd) + +- if (setjmp(jbuf) == 1) goto error; ++ if (setjmp_ia64_elilo(jbuf) == 1) goto error; + +diff --git a/ia64/longjmp.S b/ia64/longjmp.S +index 23dec86..5341632 100644 +--- a/ia64/longjmp.S ++++ b/ia64/longjmp.S +@@ -18,5 +18,5 @@ + +- Note that __sigsetjmp() did NOT flush the register stack. Instead, +- we do it here since __longjmp() is usually much less frequently +- invoked than __sigsetjmp(). The only difficulty is that __sigsetjmp() ++ Note that __sigsetjmp_ia64_elilo() did NOT flush the register stack. Instead, ++ we do it here since __longjmp_ia64_elilo() is usually much less frequently ++ invoked than __sigsetjmp(). The only difficulty is that __sigsetjmp_ia64_elilo() + didn't (and wouldn't be able to) save ar.rnat either. This is a problem +@@ -40,8 +40,8 @@ + +- /* __longjmp(__jmp_buf buf, int val) */ ++ /* __longjmp_ia64_elilo(__jmp_buf_ia64_elilo buf, int val) */ + + .text +- .global longjmp +- .proc longjmp +-longjmp: ++ .global longjmp_ia64_elilo ++ .proc longjmp_ia64_elilo ++longjmp_ia64_elilo: + alloc r8=ar.pfs,2,1,0,0 +@@ -161,2 +161,2 @@ longjmp: + br.ret.dptk.few rp +- .endp longjmp ++ .endp longjmp_ia64_elilo +diff --git a/ia64/setjmp.S b/ia64/setjmp.S +index 4c83d03..57f5542 100644 +--- a/ia64/setjmp.S ++++ b/ia64/setjmp.S +@@ -70,14 +70,14 @@ + .text +- .global setjmp +- .proc setjmp +-setjmp: ++ .global setjmp_ia64_elilo ++ .proc setjmp_ia64_elilo ++setjmp_ia64_elilo: + alloc r8=ar.pfs,2,0,0,0 + mov in1=1 +- br.cond.sptk.many __sigsetjmp +- .endp setjmp ++ br.cond.sptk.many __sigsetjmp_ia64_elilo ++ .endp setjmp_ia64_elilo + +- /* __sigsetjmp(__jmp_buf buf, int savemask) */ ++ /* __sigsetjmp_ia64_elilo(__jmp_buf buf, int savemask) */ + +- .proc __sigsetjmp +-__sigsetjmp: ++ .proc __sigsetjmp_ia64_elilo ++__sigsetjmp_ia64_elilo: + //.prologue ASM_UNW_PRLG_RP|ASM_UNW_PRLG_PFS, ASM_UNW_PRLG_GRSAVE(2) +@@ -173,2 +173,2 @@ __sigsetjmp: + +- .endp __sigsetjmp ++ .endp __sigsetjmp_ia64_elilo +diff --git a/ia64/setjmp.h b/ia64/setjmp.h +index 91bbfc1..f9e654d 100644 +--- a/ia64/setjmp.h ++++ b/ia64/setjmp.h +@@ -24,5 +24,5 @@ + /* the __jmp_buf element type should be __float80 per ABI... */ +-typedef long jmp_buf[_JBLEN] __attribute__ ((aligned (16))); /* guarantees 128-bit alignment! */ ++typedef long jmp_buf_ia64_elilo[_JBLEN] __attribute__ ((aligned (16))); /* guarantees 128-bit alignment! */ + +-extern int setjmp (jmp_buf __env); +-extern void longjmp (jmp_buf __env, int __val); ++extern int setjmp_ia64_elilo (jmp_buf_ia64_elilo __env); ++extern void longjmp_ia64_elilo (jmp_buf_ia64_elilo __env, int __val); diff --git a/sys-boot/elilo/files/elilo-3.16-strncpy-clash.patch b/sys-boot/elilo/files/elilo-3.16-strncpy-clash.patch new file mode 100644 index 000000000000..fb2f6878be03 --- /dev/null +++ b/sys-boot/elilo/files/elilo-3.16-strncpy-clash.patch @@ -0,0 +1,23 @@ +gnu-efi-3.0.8 added StrnCpy. This caused conflict with elilo's definition: + ./../fs/../strops.h:30:16: error: conflicting types for 'StrnCpy' + extern CHAR16 *StrnCpy(OUT CHAR16 *dst, IN const CHAR16 *src, UINTN count); + ^~~~~~~ + +Work it around by always using private copy. + +Reported-by: Bill Glessner +--- a/strops.h ++++ b/strops.h +@@ -29,3 +29,4 @@ + extern CHAR16 *StrChr(IN const CHAR16 *s, const CHAR16 c); ++#define StrnCpy elilo_StrnCpy + extern CHAR16 *StrnCpy(OUT CHAR16 *dst, IN const CHAR16 *src, UINTN count); + extern CHAR8 *StrnXCpy(OUT CHAR8 *dst, IN const CHAR16 *src, UINTN count); +--- a/strops.c ++++ b/strops.c +@@ -27,4 +27,6 @@ + #include <efilib.h> + ++#include "strops.h" ++ + //#define CHAR_NULL (CHAR16)'\0' diff --git a/sys-boot/elilo/files/elilo.conf.sample b/sys-boot/elilo/files/elilo.conf.sample new file mode 100644 index 000000000000..ed97975c69d7 --- /dev/null +++ b/sys-boot/elilo/files/elilo.conf.sample @@ -0,0 +1,9 @@ +boot=/dev/sda1 +install=/usr/lib/elilo/elilo.efi +delay=20 +default=gentoo + +image=/boot/kernel-2.6.12-gentoo-r6 + label=gentoo + root=/dev/sda3 + read-only diff --git a/sys-boot/elilo/metadata.xml b/sys-boot/elilo/metadata.xml new file mode 100644 index 000000000000..5f33304011d5 --- /dev/null +++ b/sys-boot/elilo/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <origin>baldeagleos-repo</origin> +</pkgmetadata> |
