From 1798c4aeca70ac8d0a243684d6a798fbc65735f8 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 14 Jul 2018 20:57:42 +0100 Subject: gentoo resync : 14.07.2018 --- dev-lang/mlton/mlton-20180207.ebuild | 264 ----------------------------------- 1 file changed, 264 deletions(-) delete mode 100644 dev-lang/mlton/mlton-20180207.ebuild (limited to 'dev-lang/mlton/mlton-20180207.ebuild') diff --git a/dev-lang/mlton/mlton-20180207.ebuild b/dev-lang/mlton/mlton-20180207.ebuild deleted file mode 100644 index b8df540a09ff..000000000000 --- a/dev-lang/mlton/mlton-20180207.ebuild +++ /dev/null @@ -1,264 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -inherit check-reqs eutils multibuild pax-utils - -DESCRIPTION="Standard ML optimizing compiler and libraries" -BASE_URI="mirror://sourceforge/${PN}" -SRC_URI="!binary? ( ${BASE_URI}/${P}.src.tgz ) - !bootstrap-smlnj? ( amd64? ( ${BASE_URI}/${P}-1.amd64-linux.tgz ) )" -HOMEPAGE="http://www.mlton.org" - -LICENSE="HPND MIT" -SLOT="0/${PV}" -KEYWORDS="~amd64 ~x86" -IUSE="binary bootstrap-smlnj stage3 doc pax_kernel" - -DEPEND="dev-libs/gmp:* - bootstrap-smlnj? ( dev-lang/smlnj ) - !bootstrap-smlnj? ( - !amd64? ( dev-lang/smlnj ) - ) - pax_kernel? ( sys-apps/elfix ) - doc? ( virtual/latex-base )" -RDEPEND="dev-libs/gmp:*" - -QA_PRESTRIPPED="binary? ( - usr/lib64/${PN}/bin/mlnlffigen - usr/lib64/${PN}/bin/mllex - usr/lib64/${PN}/bin/mlprof - usr/lib64/${PN}/bin/mlyacc - usr/lib64/${PN}/lib/mlton-compile - usr/lib/${PN}/bin/mlnlffigen - usr/lib/${PN}/bin/mllex - usr/lib/${PN}/bin/mlprof - usr/lib/${PN}/bin/mlyacc - usr/lib/${PN}/lib/mlton-compile -)" - -B="${P}-1.${ARCH}-${KERNEL}" -R="${WORKDIR}/${B}" - -mlton_subdir() { - echo $(get_libdir)/${PN} -} - -mlton_dir() { - echo "${EPREFIX%/}"/usr/$(mlton_subdir) -} - -mlton_memory_requirement() { - # The resident set size of compiling mlton with mlton is almost 14GB on amd64. - # http://mlton.org/SelfCompiling - # Compiling MLton requires at least 1GB of RAM for 32-bit platforms (2GB is - # preferable) and at least 2GB RAM for 64-bit platforms (4GB is preferable). - # If your machine has less RAM, self-compilation will likely fail, or at least - # take a very long time due to paging. Even if you have enough memory, there - # simply may not be enough available, due to memory consumed by other - # processes. In this case, you may see an Out of memory message, or - # self-compilation may become extremely slow. The only fix is to make sure - # that enough memory is available. - [[ ${ARCH} == "x86" ]] && echo "2G" || echo "4G" -} - -pkg_pretend() { - if use !binary; then - local CHECKREQS_MEMORY=$(mlton_memory_requirement) - check-reqs_pkg_pretend - fi -} - -pkg_setup() { - if use !binary; then - local CHECKREQS_MEMORY=$(mlton_memory_requirement) - check-reqs_pkg_setup - fi -} - -mlton_bootstrap_variant() { - local b="" - if use bootstrap-smlnj || ! use amd64; then - b="bootstrap-smlnj" - else - b="bootstrap" - fi - echo "${b}" -} - -mlton_bootstrap_build_dir() { - echo $(basename ${S})"-"$(mlton_bootstrap_variant) -} - -mlton_bootstrap_bin_dir() { - local b=$(mlton_bootstrap_build_dir) - if use bootstrap-smlnj || ! use amd64; then - b+="/build/bin" - else - b+="/bin" - fi - echo "${b}" -} - -# Return the array of multilib build variants -mlton_multibuild_variants() { - local MULTIBUILD_VARIANTS=() - if ! use binary; then - if use bootstrap-smlnj || ! use amd64; then - MULTIBUILD_VARIANTS+=( $(mlton_bootstrap_variant) ) - use stage3 && MULTIBUILD_VARIANTS+=( build-with-mlton ) - else - MULTIBUILD_VARIANTS+=( build-with-mlton ) - fi - fi - echo ${MULTIBUILD_VARIANTS[*]} -} - -# Return the last multibuild variant -mlton_last_multibuild_variant() { - local vs=( $(mlton_multibuild_variants) ) - echo ${vs[${#vs[@]}-1]} -} - -src_unpack() { - default - if use binary; then - mkdir -p "${S}" || die - fi -} - -BIN_STUBS=( mllex mlnlffigen mlprof mlton mlyacc ) - -mlton_create_bin_stubs() { - local SUBDIR=$(mlton_subdir) - mkdir "${S}"/bin_stubs || die - pushd "${S}"/bin_stubs || die - for i in ${BIN_STUBS[*]}; do - cat <<- EOF >> ${i} - #!/bin/bash - exec ${EPREFIX%/}/usr/${SUBDIR}/bin/${i} \$* - EOF - chmod a+x ${i} || die - done - popd || die -} - -src_prepare() { - if ! use binary; then - # For Gentoo hardened: paxmark the mlton-compiler, mllex and mlyacc executables - epatch "${FILESDIR}/${PN}-20180207-paxmark.patch" - # Fix the bootstrap-smlnj and bootstrap-polyml Makefile targets - epatch "${FILESDIR}/${PN}-20180207-bootstrap.patch" - fi - default - $(mlton_create_bin_stubs) - if use binary; then - pax-mark m "${R}/lib/${PN}/mlton-compile" - pax-mark m "${R}/bin/mllex" - pax-mark m "${R}/bin/mlyacc" - ln -s ${R} ../$(mlton_bootstrap_build_dir) || die - gunzip ${R}/share/man/man1/*.gz || die - else - local MULTIBUILD_VARIANTS=( $(mlton_multibuild_variants) ) - multibuild_copy_sources - if ! use bootstrap-smlnj && [[ ${ARCH} == "amd64" ]]; then - ln -s ${B} ../$(mlton_bootstrap_build_dir) || die - fi - fi -} - -mlton_src_compile() { - if [[ ${MULTIBUILD_VARIANT} == $(mlton_bootstrap_variant) ]]; then - emake -j1 \ - "bootstrap-smlnj" \ - PAXMARK=$(usex pax_kernel "paxmark.sh" "true") \ - CFLAGS="${CFLAGS}" \ - WITH_GMP_INC_DIR="${EPREFIX}"/usr/include \ - WITH_GMP_LIB_DIR="${EPREFIX}"/$(get_libdir) - else - export PATH="${WORKDIR}/"$(mlton_bootstrap_bin_dir)":${PATH}" - einfo "${MULTIBUILD_VARIANT}: Building mlton with mlton in PATH=$PATH" - emake -j1 \ - CFLAGS="${CFLAGS}" \ - WITH_GMP_INC_DIR="${EPREFIX}"/usr/include \ - WITH_GMP_LIB_DIR="${EPREFIX}"/$(get_libdir) - fi - if [[ ${MULTIBUILD_VARIANT} == $(mlton_last_multibuild_variant) ]]; then - if use doc; then - export VARTEXFONTS="${T}/fonts" - emake docs - fi - fi -} - -src_compile() { - if ! use binary; then - local MULTIBUILD_VARIANTS=( $(mlton_multibuild_variants) ) - multibuild_foreach_variant run_in_build_dir mlton_src_compile - fi -} - -mlton_src_test() { - emake check -} - -src_test() { - if ! use binary; then - local MULTIBUILD_VARIANTS=( $(mlton_last_multibuild_variant) ) - multibuild_foreach_variant run_in_build_dir mlton_src_test - fi -} - -mlton_src_install() { - local DIR=$(mlton_dir) - emake \ - install-no-strip install-strip \ - DESTDIR="${D}" \ - PREFIX="${DIR}" - if use doc; then - emake TDOC="${D}"/usr/share/doc/${PF} install-docs \ - DESTDIR="${D}" \ - PREFIX="${DIR}" - fi -} - -mlton_install_bin_stubs() { - exeinto /usr/bin - for i in ${BIN_STUBS[*]}; do - doexe "${S}"/bin_stubs/${i} - done -} - -src_install() { - $(mlton_install_bin_stubs) - if use binary; then - local DIR=$(mlton_dir) - exeinto "${DIR}"/bin - doexe "${R}"/bin/* - insinto "${DIR}"/lib - doins -r "${R}"/lib/${PN} - exeinto "${DIR}"/lib/${PN} - doexe "${R}"/lib/${PN}/mlton-compile - doman "${R}"/share/man/man1/* - if use doc; then - local DOCS=( "${R}"/share/doc/${PN}/. ) - einstalldocs - fi - else - local MULTIBUILD_VARIANTS=( $(mlton_last_multibuild_variant) ) - multibuild_foreach_variant run_in_build_dir mlton_src_install - fi -} - -pkg_postinst() { - # There are PIC objects in libmlton-pic.a. -link-opt -lmlton-pic does not help as mlton - # specifies -lmlton before -lmlton-pic. It appears that it would be necessary to patch mlton - # to convince mlton to use the lib*-pic.a libraries when linking an executable. - ewarn 'PIE in Gentoo hardened requires executables to be linked with -fPIC. mlton by default links' - ewarn 'executables against the non PIC objects in libmlton.a. http://mlton.org/MLtonWorld notes:' - ewarn 'Executables that save and load worlds are incompatible with address space layout' - ewarn 'randomization (ASLR) of the executable.' - ewarn 'To suppress the generation of position-independent executables.' - ewarn '-link-opt -fno-PIE' -} -- cgit v1.2.3