commit:     5e3ff44c52b30a73aa2efb5ba713f478bf8ea663
Author:     S. Lockwood-Childs <sjl <AT> vctlabs <DOT> com>
AuthorDate: Mon May 28 09:52:49 2018 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Mon Jun 18 18:24:33 2018 +0000
URL:        https://gitweb.gentoo.org/proj/musl.git/commit/?id=5e3ff44c

sys-boot/syslinux: add package

needs musl patch to handle undefined __uint8 etc

 sys-boot/syslinux/Manifest                         |   1 +
 .../syslinux/files/syslinux-6.03-sysmacros.patch   |  34 +++++++
 sys-boot/syslinux/files/syslinux-musl.patch        |  22 ++++
 sys-boot/syslinux/metadata.xml                     |  11 ++
 sys-boot/syslinux/syslinux-6.04_pre1.ebuild        | 113 +++++++++++++++++++++
 5 files changed, 181 insertions(+)

diff --git a/sys-boot/syslinux/Manifest b/sys-boot/syslinux/Manifest
new file mode 100644
index 0000000..10c5556
--- /dev/null
+++ b/sys-boot/syslinux/Manifest
@@ -0,0 +1 @@
+DIST syslinux-6.04-pre1.tar.xz 5283272 BLAKE2B 
800e5977ed13b26a1756c33d8625e850631b642e26a86e3328196ddd998596693c3a26db0ada4c0ba78a4ba692a1cc01886b6eb693d877ddafcfb325ecdeb639
 SHA512 
7927dd39be8e2dcf4138a6fea33def67d19d938379d694f15b48fdd2f5924c028b7a9e7bd71d0c7c6630c203e9e2a54296628e530632ad5e6f55b1ebefe8fc98

diff --git a/sys-boot/syslinux/files/syslinux-6.03-sysmacros.patch 
b/sys-boot/syslinux/files/syslinux-6.03-sysmacros.patch
new file mode 100644
index 0000000..af464fe
--- /dev/null
+++ b/sys-boot/syslinux/files/syslinux-6.03-sysmacros.patch
@@ -0,0 +1,34 @@
+https://bugs.gentoo.org/579928
+
+From d84db34dbe39d55b4d7e868764c056689aa0793b Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <[email protected]>
+Date: Tue, 19 Apr 2016 01:56:41 -0400
+Subject: [PATCH] extlinux: pull in sys/sysmacros.h for major/minor/makedev
+
+These functions are defined in sys/sysmacros.h, so add the include to
+main.c.  This is already handled correctly in mountinfo.c.  Otherwise
+we get build failures like:
+
+main.o: In function 'find_device_sysfs':
+extlinux/main.c:1131: undefined reference to 'minor'
+
+Signed-off-by: Mike Frysinger <[email protected]>
+---
+ extlinux/main.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/extlinux/main.c b/extlinux/main.c
+index a7ebd49..ebff7ea 100644
+--- a/extlinux/main.c
++++ b/extlinux/main.c
+@@ -38,6 +38,7 @@
+ #include <sysexits.h>
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+ #include <sys/mount.h>
+ #include <sys/vfs.h>
+-- 
+2.7.4
+

diff --git a/sys-boot/syslinux/files/syslinux-musl.patch 
b/sys-boot/syslinux/files/syslinux-musl.patch
new file mode 100644
index 0000000..ba89d3b
--- /dev/null
+++ b/sys-boot/syslinux/files/syslinux-musl.patch
@@ -0,0 +1,22 @@
+--- syslinux-6.04-pre1/efi/wrapper.h.orig      2018-05-28 09:29:03.313673979 
+0000
++++ syslinux-6.04-pre1/efi/wrapper.h   2018-05-28 09:22:27.546908344 +0000
+@@ -26,6 +26,19 @@
+ #define __packed      __attribute__((packed))
+ #define OFFSETOF(t,m) ((size_t)&((t *)0)->m)
+ 
++#ifndef __uint8_t
++#define __uint8_t uint8_t
++#endif
++#ifndef __uint16_t
++#define __uint16_t uint16_t
++#endif
++#ifndef __uint32_t
++#define __uint32_t uint32_t
++#endif
++#ifndef __uint64_t
++#define __uint64_t uint64_t
++#endif
++
+ struct header {
+       __uint16_t msdos_signature;
+       __uint8_t _pad1[0x16];

diff --git a/sys-boot/syslinux/metadata.xml b/sys-boot/syslinux/metadata.xml
new file mode 100644
index 0000000..dbe176c
--- /dev/null
+++ b/sys-boot/syslinux/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+<maintainer type="person">
+       <email>[email protected]</email>
+</maintainer>
+<maintainer type="project">
+       <email>[email protected]</email>
+       <name>Gentoo Base System</name>
+</maintainer>
+</pkgmetadata>

diff --git a/sys-boot/syslinux/syslinux-6.04_pre1.ebuild 
b/sys-boot/syslinux/syslinux-6.04_pre1.ebuild
new file mode 100644
index 0000000..7356e25
--- /dev/null
+++ b/sys-boot/syslinux/syslinux-6.04_pre1.ebuild
@@ -0,0 +1,113 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils toolchain-funcs
+
+DESCRIPTION="SYSLINUX, PXELINUX, ISOLINUX, EXTLINUX and MEMDISK bootloaders"
+HOMEPAGE="http://www.syslinux.org/";
+# Final releases in 6.xx/$PV.tar.* (literal "xx")
+# Testing releases in Testing/$PV/$PV.tar.*
+SRC_URI_DIR=${PV:0:1}.xx
+SRC_URI_TESTING=Testing/${PV:0:4}
+[[ ${PV/_alpha} != $PV ]] && SRC_URI_DIR=$SRC_URI_TESTING
+[[ ${PV/_beta} != $PV ]] && SRC_URI_DIR=$SRC_URI_TESTING
+[[ ${PV/_pre} != $PV ]] && SRC_URI_DIR=$SRC_URI_TESTING
+[[ ${PV/_rc} != $PV ]] && SRC_URI_DIR=$SRC_URI_TESTING
+SRC_URI="mirror://kernel/linux/utils/boot/syslinux/${SRC_URI_DIR}/${P/_/-}.tar.xz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="-* amd64 x86"
+IUSE="custom-cflags"
+
+RDEPEND="sys-fs/mtools
+               dev-perl/Crypt-PasswdMD5
+               dev-perl/Digest-SHA1"
+DEPEND="${RDEPEND}
+       dev-lang/nasm
+       >=sys-boot/gnu-efi-3.0u
+       virtual/os-headers"
+
+S=${WORKDIR}/${P/_/-}
+
+# This ebuild is a departure from the old way of rebuilding everything in 
syslinux
+# This departure is necessary since hpa doesn't support the rebuilding of 
anything other
+# than the installers.
+
+# These are executables which come precompiled and are run by the boot loader
+QA_PREBUILT="usr/share/${PN}/*.c32"
+
+# removed all the unpack/patching stuff since we aren't rebuilding the core 
stuff anymore
+
+src_prepare() {
+       rm -f gethostip #bug 137081
+
+       epatch "${FILESDIR}"/${PN}-6.03-sysmacros.patch #579928
+       epatch "${FILESDIR}"/${PN}-musl.patch
+
+       # Don't prestrip or override user LDFLAGS, bug #305783
+       local SYSLINUX_MAKEFILES="extlinux/Makefile linux/Makefile 
mtools/Makefile \
+               sample/Makefile utils/Makefile"
+       sed -i ${SYSLINUX_MAKEFILES} -e '/^LDFLAGS/d' || die "sed failed"
+
+       if use custom-cflags; then
+               sed -i ${SYSLINUX_MAKEFILES} \
+                       -e 's|-g -Os||g' \
+                       -e 's|-Os||g' \
+                       -e 's|CFLAGS[[:space:]]\+=|CFLAGS +=|g' \
+                       || die "sed custom-cflags failed"
+       else
+               QA_FLAGS_IGNORED="
+                       /sbin/extlinux
+                       /usr/bin/memdiskfind
+                       /usr/bin/gethostip
+                       /usr/bin/isohybrid
+                       /usr/bin/syslinux
+                       "
+       fi
+       case ${ARCH} in
+               amd64)  loaderarch="efi64" ;;
+               x86)    loaderarch="efi32" ;;
+               *)      ewarn "Unsupported architecture, building installers 
only." ;;
+       esac
+
+       # building with ld.gold causes problems, bug #563364
+       if tc-ld-is-gold; then
+               ewarn "Building syslinux with the gold linker may cause 
problems, see bug #563364"
+               if [[ -z "${I_KNOW_WHAT_I_AM_DOING}" ]]; then
+                       tc-ld-disable-gold
+                       ewarn "set I_KNOW_WHAT_I_AM_DOING=1 to override this."
+               else
+                       ewarn "Continuing anyway as requested."
+               fi
+       fi
+}
+
+src_compile() {
+       # build system abuses the LDFLAGS variable to pass arguments to ld
+       unset LDFLAGS
+       if [[ ! -z ${loaderarch} ]]; then
+               emake CC="$(tc-getCC)" LD="$(tc-getLD)" ${loaderarch}
+       fi
+       emake CC="$(tc-getCC)" LD="$(tc-getLD)" ${loaderarch} installer
+}
+
+src_install() {
+       # parallel install fails sometimes
+       einfo "loaderarch=${loaderarch}"
+       emake -j1 LD="$(tc-getLD)" INSTALLROOT="${D}" MANDIR=/usr/share/man 
bios ${loaderarch} install
+       dodoc README NEWS doc/*.txt
+}
+
+pkg_postinst() {
+       # print warning for users upgrading from the previous stable version
+       if has 4.07 ${REPLACING_VERSIONS}; then
+               ewarn "syslinux now uses dynamically linked ELF executables. 
Before you reboot,"
+               ewarn "ensure that needed dependencies are fulfilled. For 
example, run from your"
+               ewarn "syslinux directory:"
+               ewarn
+               ewarn "LD_LIBRARY_PATH=\".\" ldd menu.c32"
+       fi
+}

Reply via email to