diff options
Diffstat (limited to 'profiles/features')
11 files changed, 119 insertions, 1 deletions
diff --git a/profiles/features/prefix/standalone/legacy/make.defaults b/profiles/features/prefix/standalone/beyond-kernel-2.6.16/make.defaults index 22044de87632..22044de87632 100644 --- a/profiles/features/prefix/standalone/legacy/make.defaults +++ b/profiles/features/prefix/standalone/beyond-kernel-2.6.16/make.defaults diff --git a/profiles/features/prefix/standalone/legacy/package.mask b/profiles/features/prefix/standalone/beyond-kernel-2.6.16/package.mask index 5125269d289d..0aa01a72efb0 100644 --- a/profiles/features/prefix/standalone/legacy/package.mask +++ b/profiles/features/prefix/standalone/beyond-kernel-2.6.16/package.mask @@ -1,7 +1,8 @@ # >=glibc-2.20 requires >=linux-2.6.32. +# https://lwn.net/Articles/611162 >=sys-libs/glibc-2.20 # >=python-3.4 assumes F_DUPFD_CLOEXEC of fcntl, # which requires >=linux-2.6.24. # python-3.3 seems to be unconditionally using utimensat. ->=dev-lang/python-3
\ No newline at end of file +>=dev-lang/python-3 diff --git a/profiles/features/prefix/standalone/legacy/package.unmask b/profiles/features/prefix/standalone/beyond-kernel-2.6.16/package.unmask index 0d7380b42738..9b37b1386380 100644 --- a/profiles/features/prefix/standalone/legacy/package.unmask +++ b/profiles/features/prefix/standalone/beyond-kernel-2.6.16/package.unmask @@ -1,2 +1,3 @@ # >=glibc-2.20 requires >=linux-2.6.32. +# https://lwn.net/Articles/611162 <sys-libs/glibc-2.20 diff --git a/profiles/features/prefix/standalone/beyond-kernel-2.6.16/parent b/profiles/features/prefix/standalone/beyond-kernel-2.6.16/parent new file mode 100644 index 000000000000..f3229c5b9876 --- /dev/null +++ b/profiles/features/prefix/standalone/beyond-kernel-2.6.16/parent @@ -0,0 +1 @@ +.. diff --git a/profiles/features/prefix/standalone/legacy/profile.bashrc b/profiles/features/prefix/standalone/beyond-kernel-2.6.16/profile.bashrc index e537cc0fa319..e537cc0fa319 100644 --- a/profiles/features/prefix/standalone/legacy/profile.bashrc +++ b/profiles/features/prefix/standalone/beyond-kernel-2.6.16/profile.bashrc diff --git a/profiles/features/prefix/standalone/beyond-kernel-2.6.32/package.mask b/profiles/features/prefix/standalone/beyond-kernel-2.6.32/package.mask new file mode 100644 index 000000000000..666a526176df --- /dev/null +++ b/profiles/features/prefix/standalone/beyond-kernel-2.6.32/package.mask @@ -0,0 +1,7 @@ +# https://www.sourceware.org/ml/libc-alpha/2016-08/msg00212.html +# glibc-2.24 needs linux-3.2 at runtime, except on x86 and amd64. +# on x86 and amd64, it is glibc-2.26 to require linux-3.2. +# https://www.sourceware.org/ml/libc-alpha/2017-08/msg00010.html + +# we just use a universal glibc-2.24 on all ARCHes for simplicity. +>=sys-libs/glibc-2.24 diff --git a/profiles/features/prefix/standalone/beyond-kernel-2.6.32/package.unmask b/profiles/features/prefix/standalone/beyond-kernel-2.6.32/package.unmask new file mode 100644 index 000000000000..9f79b4f81de0 --- /dev/null +++ b/profiles/features/prefix/standalone/beyond-kernel-2.6.32/package.unmask @@ -0,0 +1,7 @@ +# https://www.sourceware.org/ml/libc-alpha/2016-08/msg00212.html +# glibc-2.24 needs linux-3.2 at runtime, except on x86 and amd64. +# on x86 and amd64, it is glibc-2.26 to require linux-3.2. +# https://www.sourceware.org/ml/libc-alpha/2017-08/msg00010.html + +# we just use a universal glibc-2.24 on all ARCHes for simplicity. +<sys-libs/glibc-2.24 diff --git a/profiles/features/prefix/standalone/beyond-kernel-2.6.32/parent b/profiles/features/prefix/standalone/beyond-kernel-2.6.32/parent new file mode 100644 index 000000000000..f3229c5b9876 --- /dev/null +++ b/profiles/features/prefix/standalone/beyond-kernel-2.6.32/parent @@ -0,0 +1 @@ +.. diff --git a/profiles/features/prefix/standalone/make.defaults b/profiles/features/prefix/standalone/make.defaults index 0e1661e1014d..09b32b13eaaa 100644 --- a/profiles/features/prefix/standalone/make.defaults +++ b/profiles/features/prefix/standalone/make.defaults @@ -5,3 +5,5 @@ # and when python-2.7 goes end-of-life on 2020-01-01. # https://docs.python.org/devguide/#status-of-python-branches ac_cv_func_getentropy=no +# Reconsider the stability of Prefix in 2019. +ACCEPT_KEYWORDS="~${ARCH}" diff --git a/profiles/features/prefix/standalone/packages b/profiles/features/prefix/standalone/packages new file mode 100644 index 000000000000..8d5b9aeeb330 --- /dev/null +++ b/profiles/features/prefix/standalone/packages @@ -0,0 +1,12 @@ +# RAP does not need busybox for emergency recovery, the host have all those tools. +-*sys-apps/busybox + +# Most of the iproute2 suit require root privilege to function. +-*sys-apps/iproute2 + +# Man pages are not essential. +-*sys-apps/man-pages +-*virtual/man + +# A service manager is not essential. +-*virtual/service-manager diff --git a/profiles/features/prefix/standalone/profile.bashrc b/profiles/features/prefix/standalone/profile.bashrc new file mode 100644 index 000000000000..60a2af632d18 --- /dev/null +++ b/profiles/features/prefix/standalone/profile.bashrc @@ -0,0 +1,86 @@ +# -*- mode: shell-script; -*- +# RAP specific patches pending upstream: +# binutils: http://article.gmane.org/gmane.comp.gnu.binutils/67593 +# gcc: https://gcc.gnu.org/ml/gcc-patches/2014-12/msg00331.html + +# Disable RAP trick during bootstrap stage2 +[[ -z ${BOOTSTRAP_RAP_STAGE2} ]] || return 0 + +if [[ ${CATEGORY}/${PN} == sys-devel/gcc && ${EBUILD_PHASE} == configure ]]; then + cd "${S}" + einfo "Prefixifying dynamic linkers..." + for h in gcc/config/*/*linux*.h; do + ebegin " Updating $h" + sed -i -r "/_DYNAMIC_LINKER/s,([\":])(/lib),\1${EPREFIX}\2,g" $h + eend $? + done + + # use sysroot of toolchain to get currect include and library at compile time + EXTRA_ECONF="${EXTRA_ECONF} --with-sysroot=${EPREFIX}" + + ebegin "remove --sysroot call on ld for native toolchain" + sed -i 's/--sysroot=%R//' gcc/gcc.c + eend $? +elif [[ ${CATEGORY}/${PN} == sys-devel/binutils && ${EBUILD_PHASE} == prepare ]]; then + ebegin "Prefixifying native library path" + sed -i -r "/NATIVE_LIB_DIRS/s,((/usr(/local|)|)/lib),${EPREFIX}\1,g" \ + "${S}"/ld/configure.tgt + eend $? + ebegin "Prefixifying path to /etc/ld.so.conf" + sed -i -r "s,\"/etc,\"${EPREFIX}/etc," "${S}"/ld/emultempl/elf32.em + eend $? +elif [[ ${CATEGORY}/${PN} == sys-libs/glibc && ${EBUILD_PHASE} == compile ]]; then + cd "${S}" + einfo "Prefixifying hardcoded path" + + for f in libio/iopopen.c \ + shadow/lckpwdf.c resolv/{netdb,resolv}.h elf/rtld.c \ + nis/nss_compat/compat-{grp,initgroups,{,s}pwd}.c \ + nss/{bug-erange,nss_files/files-{XXX,init{,groups}}}.c \ + sysdeps/{{generic,unix/sysv/linux}/paths.h,posix/system.c} + do + ebegin " Updating $f" + sed -i -r "s,([:\"])/(etc|usr|bin|var),\1${EPREFIX}/\2,g" $f + eend $? + done + ebegin " Updating nss/db-Makefile" + sed -i -r \ + -e "s,/(etc|var),${EPREFIX}/\1,g" \ + nss/db-Makefile + eend $? +elif [[ ${CATEGORY}/${PN} == dev-lang/python && ${EBUILD_PHASE} == configure ]]; then + # Guide h2py to look into glibc of Prefix + ebegin "Guiding h2py to look into Prefix" + export include="${EPREFIX}"/usr/include + sed -i -r \ + -e "s,/usr/include,\"${EPREFIX}\"/usr/include,g" "${S}"/Lib/plat-linux*/regen + eend $? + ebegin "Prefixifying distutils paths" + sed -re "s,([^[:alnum:]])(/usr[/[:alnum:]]*/(lib[[:alnum:]]*|include)|/lib[[:alnum:]]*),\1${EPREFIX}\2,g" \ + -i "${S}"/setup.py + eend $? +elif [[ ${CATEGORY}/${PN} == dev-lang/perl && ${EBUILD_PHASE} == configure ]]; then + ebegin "Prefixifying pwd path" + sed -r "s,'((|/usr)/bin/pwd),'${EPREFIX}\1," -i "${S}"/dist/PathTools/Cwd.pm + eend $? + + # Configure checks for /system/lib/libandroid.so to override linux into linux-android, + # which is not desired for Gentoo + ebegin "Removing Android detection" + sed "/libandroid.so/d" -i "${S}"/Configure + eend $? +elif [[ ${CATEGORY}/${PN} == sys-devel/make && ${EBUILD_PHASE} == prepare ]]; then + ebegin "Prefixifying default shell" + sed -i -r "/default_shell/s,\"(/bin/sh),\"${EPREFIX}\1," "${S}"/job.c + eend $? +elif [[ ${CATEGORY}/${PN} == sys-libs/zlib && ${EBUILD_PHASE} == prepare ]]; then + [[ -n "${BOOTSTRAP_RAP}" ]] || return 0 + ebegin "Remove executable builds for bootstrap" + sed -i 's/ALL=.*/ALL="\\$(LIBS)"/' "${S}"/configure + eend $? +elif [[ ${CATEGORY}/${PN} == dev-lang/php && ${EBUILD_PHASE} == prepare ]]; then + # introduced in bug 419525, subtle glibc location difference. + ebegin "Prefixifying ext/iconv/config.m4 paths" + sed -i -r "/for i in/s,(/usr(/local|)),${EPREFIX}\1,g" "${S}"/ext/iconv/config.m4 + eend $? +fi |