summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenda Xu <heroxbd@gentoo.org>2018-01-08 15:30:20 +0900
committerBenda Xu <heroxbd@gentoo.org>2018-01-08 16:04:08 +0900
commit432cbaf78b08c242af523efc80d360c148fa95e7 (patch)
tree3070799a434eb1a013e93fa6e926267bc1860a43 /profiles/features
parentapp-text/calibre: remove old versino 3.3.0 (diff)
downloadgentoo-432cbaf78b08c242af523efc80d360c148fa95e7.tar.gz
gentoo-432cbaf78b08c242af523efc80d360c148fa95e7.tar.bz2
gentoo-432cbaf78b08c242af523efc80d360c148fa95e7.zip
profiles: prefix refactorization.
legacy profiles explicitly refer to the kernel supported.
Diffstat (limited to 'profiles/features')
-rw-r--r--profiles/features/prefix/standalone/beyond-kernel-2.6.16/make.defaults (renamed from profiles/features/prefix/standalone/legacy/make.defaults)0
-rw-r--r--profiles/features/prefix/standalone/beyond-kernel-2.6.16/package.mask (renamed from profiles/features/prefix/standalone/legacy/package.mask)3
-rw-r--r--profiles/features/prefix/standalone/beyond-kernel-2.6.16/package.unmask (renamed from profiles/features/prefix/standalone/legacy/package.unmask)1
-rw-r--r--profiles/features/prefix/standalone/beyond-kernel-2.6.16/parent1
-rw-r--r--profiles/features/prefix/standalone/beyond-kernel-2.6.16/profile.bashrc (renamed from profiles/features/prefix/standalone/legacy/profile.bashrc)0
-rw-r--r--profiles/features/prefix/standalone/make.defaults2
-rw-r--r--profiles/features/prefix/standalone/packages12
-rw-r--r--profiles/features/prefix/standalone/profile.bashrc86
8 files changed, 104 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/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