diff options
author | S. Lockwood-Childs <sjl@vctlabs.com> | 2018-05-28 09:52:49 +0000 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2018-06-18 14:24:33 -0400 |
commit | 5e3ff44c52b30a73aa2efb5ba713f478bf8ea663 (patch) | |
tree | d3d03ae6569443b115621ebf8f6062a5e5b59388 /sys-boot | |
parent | media-sound/mpd: fix whitespace (diff) | |
download | musl-5e3ff44c52b30a73aa2efb5ba713f478bf8ea663.tar.gz musl-5e3ff44c52b30a73aa2efb5ba713f478bf8ea663.tar.bz2 musl-5e3ff44c52b30a73aa2efb5ba713f478bf8ea663.zip |
sys-boot/syslinux: add package
needs musl patch to handle undefined __uint8 etc
Diffstat (limited to 'sys-boot')
-rw-r--r-- | sys-boot/syslinux/Manifest | 1 | ||||
-rw-r--r-- | sys-boot/syslinux/files/syslinux-6.03-sysmacros.patch | 34 | ||||
-rw-r--r-- | sys-boot/syslinux/files/syslinux-musl.patch | 22 | ||||
-rw-r--r-- | sys-boot/syslinux/metadata.xml | 11 | ||||
-rw-r--r-- | sys-boot/syslinux/syslinux-6.04_pre1.ebuild | 113 |
5 files changed, 181 insertions, 0 deletions
diff --git a/sys-boot/syslinux/Manifest b/sys-boot/syslinux/Manifest new file mode 100644 index 00000000..10c5556e --- /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 00000000..af464fe5 --- /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 <vapier@gentoo.org> +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 <vapier@gentoo.org> +--- + 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 00000000..ba89d3b7 --- /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 00000000..dbe176ca --- /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>chithanh@gentoo.org</email> +</maintainer> +<maintainer type="project"> + <email>base-system@gentoo.org</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 00000000..7356e25e --- /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 +} |