blueness    14/10/21 01:15:17

  Modified:             ChangeLog
  Added:                uclibc-0.9.33.9999.ebuild
  Log:
  Add live ebuild for 0.9.33 branch, bug #510082
  
  (Portage version: 2.2.8-r2/cvs/Linux x86_64, signed Manifest commit with key 
0xF52D4BBA)

Revision  Changes    Path
1.94                 sys-libs/uclibc/ChangeLog

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-libs/uclibc/ChangeLog?rev=1.94&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-libs/uclibc/ChangeLog?rev=1.94&content-type=text/plain
diff : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-libs/uclibc/ChangeLog?r1=1.93&r2=1.94

Index: ChangeLog
===================================================================
RCS file: /var/cvsroot/gentoo-x86/sys-libs/uclibc/ChangeLog,v
retrieving revision 1.93
retrieving revision 1.94
diff -u -r1.93 -r1.94
--- ChangeLog   12 Aug 2014 06:47:41 -0000      1.93
+++ ChangeLog   21 Oct 2014 01:15:17 -0000      1.94
@@ -1,6 +1,12 @@
 # ChangeLog for sys-libs/uclibc
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-libs/uclibc/ChangeLog,v 1.93 2014/08/12 
06:47:41 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-libs/uclibc/ChangeLog,v 1.94 2014/10/21 
01:15:17 blueness Exp $
+
+*uclibc-0.9.33.9999 (21 Oct 2014)
+
+  21 Oct 2014; Anthony G. Basile <[email protected]>
+  +uclibc-0.9.33.9999.ebuild:
+  Add live ebuild for 0.9.33 branch, bug #510082
 
   12 Aug 2014; Mike Frysinger <[email protected]> uclibc-0.9.33.2-r12.ebuild,
   uclibc-9999.ebuild:



1.1                  sys-libs/uclibc/uclibc-0.9.33.9999.ebuild

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-libs/uclibc/uclibc-0.9.33.9999.ebuild?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-libs/uclibc/uclibc-0.9.33.9999.ebuild?rev=1.1&content-type=text/plain

Index: uclibc-0.9.33.9999.ebuild
===================================================================
# Copyright 1999-2014 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-libs/uclibc/uclibc-0.9.33.9999.ebuild,v 
1.1 2014/10/21 01:15:17 blueness Exp $

inherit eutils flag-o-matic multilib toolchain-funcs savedconfig
if [[ ${PV} == *9999 ]] ; then
        EGIT_BRANCH="0.9.33"
        EGIT_REPO_URI="git://git.busybox.net/uClibc"
        inherit git-2
fi

export CBUILD=${CBUILD:-${CHOST}}
export CTARGET=${CTARGET:-${CHOST}}
if [[ ${CTARGET} == ${CHOST} ]] ; then
        if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
                export CTARGET=${CATEGORY/cross-}
        fi
fi

MY_P=uClibc-${PV}
DESCRIPTION="C library for developing embedded Linux systems"
HOMEPAGE="http://www.uclibc.org/";
if [[ ${PV} != *9999 ]] ; then
        PATCH_VER=""
        SRC_URI="http://uclibc.org/downloads/${MY_P}.tar.bz2
                
${PATCH_VER:+mirror://gentoo/${MY_P}-patches-${PATCH_VER}.tar.bz2}"
        KEYWORDS="-* ~amd64 ~arm ~m68k ~mips ~ppc ~sh ~sparc ~x86"
fi

LICENSE="LGPL-2"
SLOT="0"
IUSE="debug hardened iconv ipv6 nptl rpc ssp uclibc-compat wordexp 
crosscompile_opts_headers-only"
RESTRICT="strip"

S=${WORKDIR}/${MY_P}

is_crosscompile() {
        [[ ${CHOST} != ${CTARGET} ]]
}
alt_build_kprefix() {
        if [[ ${CBUILD} == ${CHOST} && ${CTARGET} == ${CHOST} ]] ; then
                echo /usr/include
        else
                echo /usr/${CTARGET}/usr/include
        fi
}

just_headers() {
        use crosscompile_opts_headers-only && is_crosscompile
}

uclibc_endian() {
        # XXX: this wont work for a toolchain which is bi-endian, but we
        #      dont have any such thing at the moment, so not a big deal
        touch "${T}"/endian.s
        $(tc-getAS ${CTARGET}) "${T}"/endian.s -o "${T}"/endian.o
        case $(file "${T}"/endian.o) in
                *" MSB "*) echo "BIG";;
                *" LSB "*) echo "LITTLE";;
                *)         echo "NFC";;
        esac
        rm -f "${T}"/endian.{s,o}
}

pkg_setup() {
        if [ ${CTARGET} = ${CHOST} ] ; then
                case ${CHOST} in
                *-uclinux*|*-uclibc*) ;;
                *) die "Use sys-devel/crossdev to build a uclibc toolchain" ;;
                esac
        fi
}

check_cpu_opts() {
        case ${CTARGET} in
        # Need to handle $ABI here w/mips.
        mips[1234]*) export UCLIBC_CPU="MIPS_ISA_${CTARGET:4:1}";;
        sh[2345]*)   export UCLIBC_CPU="SH${CTARGET:2:1}";;
        i[3456]86*)  export UCLIBC_CPU="${CTARGET:1:1}86";;
        # XXX: Should figure out how to handle sparc.
        esac

        if use nptl ; then
                case ${CTARGET} in
                i386*)
                        die "Your target has no support for NPTL"
                        ;;
                esac
        fi
}

kconfig_q_opt() {
        local flag=$1; shift
        case ${flag} in
        y|n) ;;
        *) flag=$(usex ${flag} y n) ;;
        esac

        local var="defs_${flag}"
        eval "${var}+=( $* )"
}

get_opt() {
        (
        unset ${1}
        . ${2:-"${S}"/.config}
        echo ${!1}
        )
}

src_oldconfig() {
        yes "" 2>/dev/null | emake -s oldconfig >/dev/null
}
src_config() {
        restore_config .config
        if [ -f .config ]; then
                src_oldconfig
                return 0
        else
                ewarn "Could not locate user configfile, so we will save a 
default one"
        fi

        emake ARCH=${target} defconfig >/dev/null || die

        local defs_{y,n} defs

        defs=(
                DO{DEBUG_PT,ASSERTS}
                SUPPORT_LD_DEBUG_EARLY
                UCLIBC_HAS_PROFILING
        )
        kconfig_q_opt n "${defs[@]}"
        kconfig_q_opt debug DODEBUG SUPPORT_LD_DEBUG

        sed -i -e '/ARCH_.*_ENDIAN/d' .config
        kconfig_q_opt y "ARCH_WANTS_$(uclibc_endian)_ENDIAN"

        if [[ ${CTARGET} == arm* ]] ; then
                kconfig_q_opt n CONFIG_ARM_OABI
                kconfig_q_opt y CONFIG_ARM_EABI
        fi

        defs=(
                MALLOC_GLIBC_COMPAT
                DO_C99_MATH
                
UCLIBC_HAS_{CTYPE_CHECKED,WCHAR,HEXADECIMAL_FLOATS,GLIBC_CUSTOM_PRINTF,FOPEN_EXCLUSIVE_MODE,GLIBC_CUSTOM_STREAMS,PRINTF_M_SPEC}
                UCLIBC_HAS_FENV
                UCLIBC_HAS_{N,}FTW
                UCLIBC_HAS_GNU_GLOB
                UCLIBC_HAS_LIBUTIL
                UCLIBC_HAS_PROGRAM_INVOCATION_NAME
                UCLIBC_HAS_RESOLVER_SUPPORT
                UCLIBC_HAS_TZ_FILE_READ_MANY
                UCLIBC_HAS_UTMPX
                UCLIBC_SUPPORT_AI_ADDRCONFIG
                UCLIBC_SUSV3_LEGACY
                UCLIBC_SUSV3_LEGACY_MACROS
                UCLIBC_SUSV4_LEGACY
                UCLIBC_USE_NETLINK
                PTHREADS_DEBUG_SUPPORT
        )
        kconfig_q_opt y "${defs[@]}"
        kconfig_q_opt n UCLIBC_HAS_CTYPE_UNSAFE
        kconfig_q_opt n UCLIBC_HAS_LOCALE
        kconfig_q_opt n HAS_NO_THREADS
        kconfig_q_opt ipv6 UCLIBC_HAS_IPV6
        kconfig_q_opt nptl UCLIBC_HAS_THREADS_NATIVE
        kconfig_q_opt !nptl LINUXTHREADS_OLD
        kconfig_q_opt rpc UCLIBC_HAS_{,{FULL,REENTRANT}_}RPC
        kconfig_q_opt wordexp UCLIBC_HAS_WORDEXP
        kconfig_q_opt uclibc-compat UCLIBC_HAS_LIB{NSL,RESOLV}_STUB 
COMPAT_ATEXIT

        # we need to do it independently of hardened to get ssp.c built into 
libc
        kconfig_q_opt y UCLIBC_HAS_SSP
        kconfig_q_opt n UCLIBC_HAS_SSP_COMPAT
        kconfig_q_opt y UCLIBC_HAS_ARC4RANDOM
        kconfig_q_opt n PROPOLICE_BLOCK_ABRT
        kconfig_q_opt y PROPOLICE_BLOCK_SEGV

        # arm/mips do not emit PT_GNU_STACK, but if we enable this here
        # it will be emitted as RWE, ppc has to be checked, x86 needs it
        # this option should be used independently of hardened
        if has $(tc-arch) x86 || has $(tc-arch) ppc ; then
                kconfig_q_opt y UCLIBC_BUILD_NOEXECSTACK
        else
                kconfig_q_opt n UCLIBC_BUILD_NOEXECSTACK
        fi
        kconfig_q_opt y UCLIBC_BUILD_RELRO
        kconfig_q_opt hardened UCLIBC_BUILD_PIE
        kconfig_q_opt hardened UCLIBC_BUILD_NOW
        kconfig_q_opt !ssp SSP_QUICK_CANARY
        kconfig_q_opt ssp UCLIBC_BUILD_SSP

        local def
        for def in 1 2 ; do
                # Run twice as some config opts depend on others being enabled 
first.
                for def in ${defs_y[@]} ; do
                        sed -i -e "s:.*\<${def}\>.*set:${def}=y:g" .config
                done
                for def in ${defs_n[@]} ; do
                        sed -i -e "s:${def}=y:# ${def} is not set:g" .config
                done
                src_oldconfig
        done

        einfo "Enabled options:"
        for def in ${defs_y[@]} ; do
                einfo " " $(grep "^${def}=y" .config || echo "could not find 
${def}")
        done
        einfo "Disabled options:"
        for def in ${defs_n[@]} ; do
                einfo " " $(grep "^# ${def} is not set" .config || echo "could 
not find ${def}")
        done

        # setup build and run paths
        sed -i \
                -e "/^CROSS_COMPILER_PREFIX/s:=.*:=\"${CTARGET}-\":" \
                -e "/^KERNEL_HEADERS/s:=.*:=\"$(alt_build_kprefix)\":" \
                -e "/^SHARED_LIB_LOADER_PREFIX/s:=.*:=\"/$(get_libdir)\":" \
                -e "/^DEVEL_PREFIX/s:=.*:=\"/usr\":" \
                -e "/^RUNTIME_PREFIX/s:=.*:=\"/\":" \
                -e "/^UCLIBC_EXTRA_CFLAGS/s:=.*:=\"${UCLIBC_EXTRA_CFLAGS}\":" \
                .config || die

        src_oldconfig
}

src_unpack() {
        if [[ ${PV} == *9999 ]] ; then
                git-2_src_unpack
        else
                unpack ${A}
        fi
        cd "${S}"
        if [[ -n ${PATCH_VER} ]] ; then
                EPATCH_SUFFIX="patch" epatch "${WORKDIR}"/patch
        fi

        epatch_user

        check_cpu_opts

        echo
        einfo "Runtime Prefix: /"
        einfo "Devel Prefix:   /usr"
        einfo "Kernel Prefix:  $(alt_build_kprefix)"
        einfo "CBUILD:         ${CBUILD}"
        einfo "CHOST:          ${CHOST}"
        einfo "CTARGET:        ${CTARGET}"
        einfo "CPU:            ${UCLIBC_CPU:-default}"
        einfo "ENDIAN:         $(uclibc_endian)"
        echo

        ########## CPU SELECTION ##########

        local target=$(tc-arch) config_target
        case ${target} in
        amd64) target="x86_64";;
        arm)   target="arm";     config_target="GENERIC_ARM";;
        avr)   target="avr32";;
        mips)  target="mips";    config_target="MIPS_ISA_1";;
        ppc)   target="powerpc";;
        sh)    target="sh";      config_target="SH4";;
        x86)   target="i386";    config_target="486";;
        esac
        if [[ -n ${config_target} ]] ; then
                sed -i -e "s:default CONFIG_${config_target}:default 
CONFIG_${UCLIBC_CPU:-${config_target}}:" \
                        extra/Configs/Config.${target} || die
        fi
        sed -i -e "s:^HOSTCC.*=.*:HOSTCC=$(tc-getBUILD_CC):" Rules.mak

        src_config

        if use iconv ; then
                # Run after make clean, otherwise files removed
                find ./extra/locale/charmaps -name "*.pairs" > 
extra/locale/codesets.txt
                if [[ ! -f /etc/locale.gen ]] ; then
                        # See ./extra/locale/LOCALES for examples
                        die "Please create an appropriate /etc/locale.gen for 
locale support"
                fi
                echo -e "@euro e\n@cyrillic c\n#---\nUTF-8 yes\n8-BIT 
yes\n#---\n\n" > ./extra/locale/locales.txt
                cat /etc/locale.gen >> ./extra/locale/locales.txt
        fi
}

src_compile() {
        emake headers || die
        just_headers && return 0

        emake || die
        if is_crosscompile ; then
                emake -C utils hostutils || die
        else
                emake utils || die
        fi
}

src_test() {
        is_crosscompile && return 0

        # assert test fails on pax/grsec enabled kernels - normal
        # vfork test fails in sandbox (both glibc/uclibc)
        emake UCLIBC_ONLY=1 check || die
}

src_install() {
        local sysroot=${D}
        is_crosscompile && sysroot+="/usr/${CTARGET}"

        local target="install"
        just_headers && target="install_headers"
        emake DESTDIR="${sysroot}" ${target} || die

        save_config .config

        # remove files coming from kernel-headers
        rm -rf "${sysroot}"/usr/include/{linux,asm*}

        # Make sure we install the sys-include symlink so that when
        # we build a 2nd stage cross-compiler, gcc finds the target
        # system headers correctly.  See gcc/doc/gccinstall.info
        if is_crosscompile ; then
                dosym usr/include /usr/${CTARGET}/sys-include
                if ! just_headers && [[ -n $(get_opt HAVE_SHARED) ]] ; then
                        newbin utils/ldconfig.host ${CTARGET}-ldconfig || die
                        newbin utils/ldd.host ${CTARGET}-ldd || die
                fi
                return 0
        fi

        emake DESTDIR="${D}" install_utils || die
        dobin extra/scripts/getent
        dodoc Changelog* README TODO docs/*.txt DEDICATION.mjn3
}

pkg_postinst() {
        is_crosscompile && return 0

        if [ ! -e "${ROOT}"/etc/TZ ] ; then
                ewarn "Please remember to set your timezone in /etc/TZ"
                mkdir -p "${ROOT}"/etc
                echo "UTC" > "${ROOT}"/etc/TZ
        fi
        [ "${ROOT}" != "/" ] && return 0
        # update cache before reloading init
        ldconfig
        # reload init ...
        /sbin/telinit U 2>/dev/null
}




Reply via email to