2021-04-03 22:41:26 +03:00
|
|
|
# Copyright 1999-2021 Gentoo Authors
|
2020-05-27 09:47:58 +03:00
|
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
|
|
|
|
EAPI=7
|
|
|
|
|
2021-04-16 14:09:53 +03:00
|
|
|
inherit toolchain-funcs
|
2020-05-27 09:47:58 +03:00
|
|
|
|
|
|
|
DESCRIPTION="SYSLINUX, PXELINUX, ISOLINUX, EXTLINUX and MEMDISK bootloaders"
|
|
|
|
HOMEPAGE="https://www.syslinux.org/"
|
2021-04-03 22:41:26 +03:00
|
|
|
# Final releases in 6.xx/${PV}.tar.* (literal "xx")
|
|
|
|
# Testing releases in Testing/${PV}/${PV}.tar.*
|
2020-05-27 09:47:58 +03:00
|
|
|
SRC_URI_DIR=${PV:0:1}.xx
|
|
|
|
SRC_URI_TESTING=Testing/${PV:0:4}
|
2021-04-03 22:41:26 +03:00
|
|
|
[[ ${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}
|
2020-05-27 09:47:58 +03:00
|
|
|
SRC_URI="https://www.kernel.org/pub/linux/utils/boot/syslinux/${SRC_URI_DIR}/${P/_/-}.tar.xz"
|
|
|
|
|
|
|
|
LICENSE="GPL-2"
|
|
|
|
SLOT="0"
|
2020-12-17 15:40:00 +03:00
|
|
|
KEYWORDS="-* amd64 x86"
|
2020-05-27 09:47:58 +03:00
|
|
|
IUSE="custom-cflags"
|
|
|
|
|
2021-07-16 08:53:09 +03:00
|
|
|
RDEPEND="sys-apps/util-linux
|
|
|
|
sys-fs/mtools
|
2020-05-27 09:47:58 +03:00
|
|
|
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
|
|
|
|
|
|
|
|
PATCHES=(
|
|
|
|
"${FILESDIR}"/${PN}-6.03-sysmacros.patch #579928
|
|
|
|
"${FILESDIR}"/${P}-singleloadsegment.patch #662678
|
|
|
|
"${FILESDIR}"/${P}-fcommon.patch #705730
|
|
|
|
)
|
|
|
|
|
|
|
|
src_prepare() {
|
|
|
|
default
|
|
|
|
|
|
|
|
rm -f gethostip #bug 137081
|
|
|
|
|
|
|
|
# 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
|
|
|
|
|
|
|
|
tc-export AR CC LD OBJCOPY RANLIB
|
|
|
|
}
|
|
|
|
|
|
|
|
_emake() {
|
|
|
|
emake \
|
|
|
|
AR="${AR}" \
|
|
|
|
CC="${CC}" \
|
|
|
|
LD="${LD}" \
|
|
|
|
OBJCOPY="${OBJCOPY}" \
|
|
|
|
RANLIB="${RANLIB}" \
|
|
|
|
"$@"
|
|
|
|
}
|
|
|
|
|
|
|
|
src_compile() {
|
|
|
|
# build system abuses the LDFLAGS variable to pass arguments to ld
|
|
|
|
unset LDFLAGS
|
|
|
|
if [[ ! -z ${loaderarch} ]]; then
|
|
|
|
_emake ${loaderarch}
|
|
|
|
fi
|
|
|
|
_emake ${loaderarch} installer
|
|
|
|
}
|
|
|
|
|
|
|
|
src_install() {
|
|
|
|
# parallel install fails sometimes
|
|
|
|
einfo "loaderarch=${loaderarch}"
|
|
|
|
_emake -j1 INSTALLROOT="${D}" MANDIR=/usr/share/man bios ${loaderarch} install
|
|
|
|
dodoc README NEWS doc/*.txt
|
|
|
|
}
|