summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Kinard <kumba@gentoo.org>2021-08-13 00:51:26 -0400
committerJoshua Kinard <kumba@gentoo.org>2021-08-13 00:51:26 -0400
commit4937d2abb8b88c921fadbdcb2043a22d6572c912 (patch)
treec244a440ad411109dcbdf436b1d3871c24ac8d0d /sys-kernel/mips-sources
parentapp-emulation/docker: keyword ~riscv (diff)
downloadgentoo-4937d2abb8b88c921fadbdcb2043a22d6572c912.tar.gz
gentoo-4937d2abb8b88c921fadbdcb2043a22d6572c912.tar.bz2
gentoo-4937d2abb8b88c921fadbdcb2043a22d6572c912.zip
sys-kernel/mips-sources: LTS Updates, EAPI 8, cleanups
- Updated to latest LTS versions for 4.14, 4.19, & 5.4 - Upgraded to EAPI 8 - Cleaned up various logic checks, [[ ]] instead of [ ], fixed use of $S in pkg_postinst, support USE symlink Signed-off-by: Joshua Kinard <kumba@gentoo.org> Package-Manager: Portage-3.0.20, Repoman-3.0.3
Diffstat (limited to 'sys-kernel/mips-sources')
-rw-r--r--sys-kernel/mips-sources/Manifest6
-rw-r--r--sys-kernel/mips-sources/metadata.xml12
-rw-r--r--sys-kernel/mips-sources/mips-sources-4.14.243.ebuild (renamed from sys-kernel/mips-sources/mips-sources-4.14.241.ebuild)118
-rw-r--r--sys-kernel/mips-sources/mips-sources-4.19.203.ebuild (renamed from sys-kernel/mips-sources/mips-sources-4.19.200.ebuild)111
-rw-r--r--sys-kernel/mips-sources/mips-sources-5.4.140.ebuild (renamed from sys-kernel/mips-sources/mips-sources-5.4.137.ebuild)111
5 files changed, 194 insertions, 164 deletions
diff --git a/sys-kernel/mips-sources/Manifest b/sys-kernel/mips-sources/Manifest
index e90f79dd8cfc..8e0b6e0f6707 100644
--- a/sys-kernel/mips-sources/Manifest
+++ b/sys-kernel/mips-sources/Manifest
@@ -5,6 +5,6 @@ DIST mips-sources-4.14.0-patches-v3.tar.xz 287468 BLAKE2B 24212e2d6ca784986d0e3e
DIST mips-sources-4.19.0-patches-v3.tar.xz 289136 BLAKE2B 9c77c641d4c4603983c0bc11cba5d83337c7373f67bc5870b8b02d6d4a537c8c02f21fe47fd64f13c5e10d37100654857d0b598be6d8c429f5fe1d7332b6b6bd SHA512 7199a20f20f9d0a4eae38279335d8c9da20940fb37f0ba38cb6b68fdd5c9d4d2e2b65efff5383065e685c0fb5ad639c6d79d74989a5b4200b987f175de7da422
DIST mips-sources-5.4-patches-v6.tar.xz 197884 BLAKE2B 08dad7c3d7ba3d04afe5a39dd0e0930894c124beebecfaa66aab6f42f3151f5271186e6735cd19344e05ea10faf11461290f62667d12379660734a63828c595a SHA512 472f44d1e212ca0bfae896dcf3ec45bbeb47fe1aa49b80060c2d0b7347b065ce8354e6b8ad009d7b5e2923d4072a9a93acf9ecbcc56575195ad5b60bef1af12e
DIST mipsgit-4.14.0-20180128.diff.xz 1008 BLAKE2B 2a317ff97aab096883680c6b653e993aee31994e6caec52c52dfbbb61f1dc1f25d03ebd3182fa122923a67aeee0aa598b36e603692333e4c9ccdc741fd456d96 SHA512 378deb1bc1d10a6b4912e5e4a0d6fcab28952e2e59c35fc879601841cf8160081b318a2598ef74db225e95f0f26483f6b9a56a348811b1ee7b8934391dd271ae
-DIST patch-4.14.241.xz 4387084 BLAKE2B 7d3126cbb14d1e5459689314b4a465712f66bc4b88392ad8514811cbfca5a2110c3f3c8cf577d86ac7aa5c8cd699336aed1f51368cae0a7e47f36c6ff8758393 SHA512 2f509afd824f1a924c10d763c1608b401c098c2e4084922bcc1b9a3ab558bd43ba3a62c232a99be5717666eb32baa93ca4a2b7c233b8184df567aaf1a5dc92da
-DIST patch-4.19.200.xz 4167064 BLAKE2B 5216e28d2a8cb22415d94a3f397f86cb0bdb9bc8d05be5d6a679e5ef58342c188e2ec37c7469cda0a61ebed42929597a2a4175f56f2b7912494ffc801e1a5189 SHA512 c979cbc8016b5c7409494940ab652f997807a459f008225fda79000c23b46e2f3c4fffa70b746b40a8d07ee0e9654511d1ecd9fab5016c8bdd1977ae51ef5dd4
-DIST patch-5.4.137.xz 3214908 BLAKE2B de1d58f6100e89cee5c103748cab753c4dab425e730695af61000bd4fb2f1a8d4c699aaf32f1dc77c28778477466a2ca24e14b9efca882608cc4166dc51ffb02 SHA512 30da56861035f55ce11fd0db06fb4f289b51753f3f24b5e863b77f23d53dab38edb7cfe80c528d394fb70a7b46d66f47adc9e2e765feebc7b0b293e7515631a3
+DIST patch-4.14.243.xz 4395156 BLAKE2B a9a57aaf8fac8b35ecfa52f6086d20cca8593370075e23476dfa8ae1a6219d9a415df2c3e6e88d7d775927cc05ab89280a24464c0664b9485c11ac2e66f712ec SHA512 a85571c72cf814acdff0829269f5a352d2626eef367f3aae978ae86a5cb3a47e117406af5bc8bbb5c6c76d3ead8cb8d2f572ab3e3dc4ae94c17e0b1a445d3c0b
+DIST patch-4.19.203.xz 4181892 BLAKE2B fd681104c226a3f7031f983e026fe5522daa3bfcf0e0ae30f71ff67e599c69974a3d556ee5bef66a6de380c2e89c282c9d8ceed35a9cd14fd30b6a116944e8fb SHA512 c75f24116e05d5e857b9200017906f3ca35f961b53e7b3966499f16209b67a8c4ad185359e4b20a3a5cb72bd9f799423c7ac65630a670f5f15837b146926b1a6
+DIST patch-5.4.140.xz 3240512 BLAKE2B ca28f6c97802d72d9ca30b9383bbb633e6dcdd1ba24643399dce781d0501b3db377d640509e71f8bf8c1fe4e113e2b6403f4b8bc50b5360b43cc4e6dfafef34b SHA512 ae2824a4f4732c8f723c97dfd80f1b104f144c827b98581f9e2eafc33b3bde881cbe90aeaaea014ce0a2b10f03406217816e7b6e9fe195c42cee88c204f66044
diff --git a/sys-kernel/mips-sources/metadata.xml b/sys-kernel/mips-sources/metadata.xml
index 83fb9fad8bd8..3e6ed7f33a27 100644
--- a/sys-kernel/mips-sources/metadata.xml
+++ b/sys-kernel/mips-sources/metadata.xml
@@ -5,13 +5,19 @@
<email>mips@gentoo.org</email>
<name>Mips Team</name>
</maintainer>
+
+ <upstream>
+ <remote-id type="cpe">cpe:/o:linux:linux_kernel</remote-id>
+ </upstream>
+
+ <longdescription>
+ mips-sources are based on kernel.org linux releases wth custom patches for MIPS-Based machines
+ </longdescription>
+
<use>
<flag name="ip27">Enables additional support for SGI Origin (IP27)</flag>
<flag name="ip28">Enables additional support for SGI Indigo2 Impact R10000 (IP28)</flag>
<flag name="ip30">Enables support for SGI Octane (IP30, 'Speedracer')</flag>
<flag name="experimental">Apply experimental (80xx) patches.</flag>
</use>
- <upstream>
- <remote-id type="cpe">cpe:/o:linux:linux_kernel</remote-id>
- </upstream>
</pkgmetadata>
diff --git a/sys-kernel/mips-sources/mips-sources-4.14.241.ebuild b/sys-kernel/mips-sources/mips-sources-4.14.243.ebuild
index e32d7a2792a8..d94fd01dbe48 100644
--- a/sys-kernel/mips-sources/mips-sources-4.14.241.ebuild
+++ b/sys-kernel/mips-sources/mips-sources-4.14.243.ebuild
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
# EAPI Version
-EAPI="6"
+EAPI="8"
#//------------------------------------------------------------------------------
@@ -24,7 +24,7 @@ K_FROM_GIT="yes"
ETYPE="sources"
# Inherit Eclasses
-inherit kernel-2 eapi7-ver
+inherit kernel-2
detect_version
# Version Data
@@ -78,15 +78,17 @@ err_disabled_mach() {
# See if this machine needs a USE passed or skip dying
local has_use
- [ ! -z "${m_use}" -a "${m_use}" != "skip" ] && has_use="USE=\"${m_use}\" "
+ [[ "${m_use}" != "skip" ]] \
+ && has_use="USE=\"${m_use}\" "
# Print error && (maybe) die
echo -e ""
- if [ "${is_test}" != "test" ]; then
+ if [[ "${is_test}" != "test" ]]; then
eerror "${m_name} Support has been disabled in this ebuild"
eerror "revision. If you wish to merge ${m_name} sources, then"
eerror "run ${has_use}emerge =mips-sources-${stable_ver}"
- [ "${m_use}" != "skip" ] && die "${m_name} Support disabled."
+ [[ "${m_use}" != "skip" ]] \
+ && die "${m_name} Support disabled."
else
ewarn "${m_name} Support has been marked as needing testing in this"
ewarn "ebuild revision. This usually means that any patches to support"
@@ -110,17 +112,33 @@ err_only_one_mach_allowed() {
die "Only one machine-type patchset allowed"
}
-pkg_postinst() {
- # Symlink /usr/src/linux as appropriate
- local my_ksrc="${S##*/}"
+fkv_to_machtype() {
+ # For any machines that use external patches, we rename the source
+ # tree to match the machine type.
+ local fkv="${F_KV%-*}"
+ local v="${fkv}"
for x in {ip27,ip28,ip30}; do
- use ${x} && my_ksrc="${my_ksrc}.${x}"
+ use ${x} && v="${v}.${x}" && break
done
- if [ ! -e "${ROOT}usr/src/linux" ]; then
- rm -f "${ROOT}usr/src/linux"
- ln -sf "${my_ksrc}" "${ROOT}/usr/src/linux"
+ echo "${v}"
+}
+
+pkg_postinst() {
+ if ! use symlink; then
+ return 0
+ fi
+
+ local kern_sym="/usr/src/linux"
+
+ # Check that /usr/src/linux is safe to overwrite
+ if [[ -e "${kern_sym}" && ! -L "${kern_sym}" ]]; then
+ die "${kern_sym} already exists, but is not a symbolic link"
fi
+
+ # Symlink /usr/src/linux as appropriate
+ local kern_ver=$(fkv_to_machtype)
+ ln -snf "linux-${kern_ver}" "${kern_sym}"
}
pkg_setup() {
@@ -140,35 +158,37 @@ pkg_setup() {
shift # Shift the positions
m_name="${*}" # Get the rest (Name)
- if use ${m_ip}; then
- # Fetch the value indiciating if the machine is enabled or not
- m_enable="DO_${m_ip/ip/IP}"
- m_enable="${!m_enable}"
+ if ! use ${m_ip}; then
+ continue
+ fi
- # Make sure only one of these exclusive machine patches is selected
- [ "${arch_is_selected}" = "no" ] \
- && arch_is_selected="yes" \
- || err_only_one_mach_allowed
+ # Fetch the value indiciating if the machine is enabled or not
+ m_enable="DO_${m_ip/ip/IP}"
+ m_enable="${!m_enable}"
- # Is the machine support disabled or marked as needing testing?
- [ "${m_enable}" = "test" ] \
- && err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}" "test"
- [ "${m_enable}" = "no" ] \
- && err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}"
+ # Make sure only one of these exclusive machine patches is selected
+ [[ "${arch_is_selected}" = "no" ]] \
+ && arch_is_selected="yes" \
+ || err_only_one_mach_allowed
- # Show relevant information about the machine
- show_${m_ip}_info
- fi
+ # Is the machine support disabled or marked as needing testing?
+ case "${m_enable}" in
+ "test") err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}" "test" ;;
+ "no") err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}" ;;
+ esac
+
+ # Show relevant information about the machine
+ show_${m_ip}_info
done
# All other systems that don't have a USE flag go here
# These systems have base-line support included in linux-mips git, so
# instead of failing, if disabled, we simply warn the user
- if [ "${arch_is_selected}" = "no" ]; then
- [ "${DO_IP22}" = "no" ] \
+ if [[ "${arch_is_selected}" = "no" ]]; then
+ [[ "${DO_IP22}" = "no" ]] \
&& err_disabled_mach "SGI Indy/Indigo2 R4x00" "IP22" "skip" \
|| show_ip22_info
- [ "${DO_IP32}" = "no" ] \
+ [[ "${DO_IP32}" = "no" ]] \
&& err_disabled_mach "SGI O2" "IP32" "skip" \
|| show_ip32_info
@@ -189,10 +209,8 @@ show_ip22_info() {
show_ip27_info() {
echo -e ""
- ewarn "Heavy disk I/O on recent kernels may randomly trigger a VM_BUG_ON_PAGE()"
- ewarn "in move_freepages() in mm/page_alloc.c. The exact trigger cause is"
- ewarn "unknown at this time. Please report any oops messages from this"
- ewarn "bug to bugs.gentoo.org (assign to mips@gentoo.org)"
+ ewarn "IP27 Origin 2k/Onyx2 systems may be prone to sudden hard lockups."
+ ewarn "The exact trigger is unknown at this time."
echo -e ""
}
@@ -283,9 +301,8 @@ src_unpack() {
# Create a new folder called 'patch-symlinks' and create symlinks to
# all mips-patches in there. If we want to exclude a patch, we'll
# just delete the symlink instead of the actual patch.
- local psym="patch-symlinks"
- mkdir "${psym}"
- cd "${psym}"
+ mkdir patch-symlinks
+ cd patch-symlinks
for x in ../mips-patches-${BASE_KV}/*.patch; do
ln -s "${x}" "${x##../mips-patches-*/}"
done
@@ -314,15 +331,13 @@ src_unpack() {
do rm -f "./${x}"
done
- # Rename the source tree to match the linux-mips git checkout date and
- # machine type.
- local fkv="${F_KV%-*}"
- local v="${fkv}-${GITDATE}"
- for x in {ip27,ip28,ip30}; do
- use ${x} && v="${v}.${x}" && break
- done
- mv "${WORKDIR}/linux-${fkv/_/-}" "${WORKDIR}/linux-${v}" || die
- S="${WORKDIR}/linux-${v}"
+ # Rename the source tree, if needed.
+ local old="${WORKDIR}/linux-${F_KV%-*/_/-}"
+ local new="${WORKDIR}/linux-$(fkv_to_machtype)"
+ if [[ "${old}" != "${new}" ]]; then
+ mv "${old}" "${new}" || die
+ fi
+ S="${new}"
# Set the EXTRAVERSION to linux-VERSION-mipsgit-GITDATE
EXTRAVERSION="${EXTRAVERSION}-mipsgit-${GITDATE}"
@@ -330,13 +345,8 @@ src_unpack() {
}
src_prepare() {
- local psym="patch-symlinks"
-
- # Now go into the kernel source and patch it.
- cd "${S}"
- eapply "${WORKDIR}/${psym}"/
+ # Apply patches to the kernel tree.
+ eapply "${WORKDIR}/patch-symlinks"/
eapply_user
}
-
-#//------------------------------------------------------------------------------
diff --git a/sys-kernel/mips-sources/mips-sources-4.19.200.ebuild b/sys-kernel/mips-sources/mips-sources-4.19.203.ebuild
index 52f4f25547f4..47378db0cbd1 100644
--- a/sys-kernel/mips-sources/mips-sources-4.19.200.ebuild
+++ b/sys-kernel/mips-sources/mips-sources-4.19.203.ebuild
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
# EAPI Version
-EAPI="6"
+EAPI="8"
#//------------------------------------------------------------------------------
@@ -23,7 +23,7 @@ K_FROM_GIT="yes"
ETYPE="sources"
# Inherit Eclasses
-inherit kernel-2 eapi7-ver
+inherit kernel-2
detect_version
# Version Data
@@ -73,15 +73,17 @@ err_disabled_mach() {
# See if this machine needs a USE passed or skip dying
local has_use
- [ ! -z "${m_use}" -a "${m_use}" != "skip" ] && has_use="USE=\"${m_use}\" "
+ [[ "${m_use}" != "skip" ]] \
+ && has_use="USE=\"${m_use}\" "
# Print error && (maybe) die
echo -e ""
- if [ "${is_test}" != "test" ]; then
+ if [[ "${is_test}" != "test" ]]; then
eerror "${m_name} Support has been disabled in this ebuild"
eerror "revision. If you wish to merge ${m_name} sources, then"
eerror "run ${has_use}emerge =mips-sources-${stable_ver}"
- [ "${m_use}" != "skip" ] && die "${m_name} Support disabled."
+ [[ "${m_use}" != "skip" ]] \
+ && die "${m_name} Support disabled."
else
ewarn "${m_name} Support has been marked as needing testing in this"
ewarn "ebuild revision. This usually means that any patches to support"
@@ -105,17 +107,33 @@ err_only_one_mach_allowed() {
die "Only one machine-type patchset allowed"
}
-pkg_postinst() {
- # Symlink /usr/src/linux as appropriate
- local my_ksrc="${S##*/}"
+fkv_to_machtype() {
+ # For any machines that use external patches, we rename the source
+ # tree to match the machine type.
+ local fkv="${F_KV%-*}"
+ local v="${fkv}"
for x in {ip27,ip28,ip30}; do
- use ${x} && my_ksrc="${my_ksrc}.${x}"
+ use ${x} && v="${v}.${x}" && break
done
- if [ ! -e "${ROOT}usr/src/linux" ]; then
- rm -f "${ROOT}usr/src/linux"
- ln -sf "${my_ksrc}" "${ROOT}/usr/src/linux"
+ echo "${v}"
+}
+
+pkg_postinst() {
+ if ! use symlink; then
+ return 0
+ fi
+
+ local kern_sym="/usr/src/linux"
+
+ # Check that /usr/src/linux is safe to overwrite
+ if [[ -e "${kern_sym}" && ! -L "${kern_sym}" ]]; then
+ die "${kern_sym} already exists, but is not a symbolic link"
fi
+
+ # Symlink /usr/src/linux as appropriate
+ local kern_ver=$(fkv_to_machtype)
+ ln -snf "linux-${kern_ver}" "${kern_sym}"
}
pkg_setup() {
@@ -135,35 +153,37 @@ pkg_setup() {
shift # Shift the positions
m_name="${*}" # Get the rest (Name)
- if use ${m_ip}; then
- # Fetch the value indiciating if the machine is enabled or not
- m_enable="DO_${m_ip/ip/IP}"
- m_enable="${!m_enable}"
+ if ! use ${m_ip}; then
+ continue
+ fi
- # Make sure only one of these exclusive machine patches is selected
- [ "${arch_is_selected}" = "no" ] \
- && arch_is_selected="yes" \
- || err_only_one_mach_allowed
+ # Fetch the value indiciating if the machine is enabled or not
+ m_enable="DO_${m_ip/ip/IP}"
+ m_enable="${!m_enable}"
- # Is the machine support disabled or marked as needing testing?
- [ "${m_enable}" = "test" ] \
- && err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}" "test"
- [ "${m_enable}" = "no" ] \
- && err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}"
+ # Make sure only one of these exclusive machine patches is selected
+ [[ "${arch_is_selected}" = "no" ]] \
+ && arch_is_selected="yes" \
+ || err_only_one_mach_allowed
- # Show relevant information about the machine
- show_${m_ip}_info
- fi
+ # Is the machine support disabled or marked as needing testing?
+ case "${m_enable}" in
+ "test") err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}" "test" ;;
+ "no") err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}" ;;
+ esac
+
+ # Show relevant information about the machine
+ show_${m_ip}_info
done
# All other systems that don't have a USE flag go here
# These systems have base-line support included in linux-mips git, so
# instead of failing, if disabled, we simply warn the user
- if [ "${arch_is_selected}" = "no" ]; then
- [ "${DO_IP22}" = "no" ] \
+ if [[ "${arch_is_selected}" = "no" ]]; then
+ [[ "${DO_IP22}" = "no" ]] \
&& err_disabled_mach "SGI Indy/Indigo2 R4x00" "IP22" "skip" \
|| show_ip22_info
- [ "${DO_IP32}" = "no" ] \
+ [[ "${DO_IP32}" = "no" ]] \
&& err_disabled_mach "SGI O2" "IP32" "skip" \
|| show_ip32_info
@@ -276,9 +296,8 @@ src_unpack() {
# Create a new folder called 'patch-symlinks' and create symlinks to
# all mips-patches in there. If we want to exclude a patch, we'll
# just delete the symlink instead of the actual patch.
- local psym="patch-symlinks"
- mkdir "${psym}"
- cd "${psym}"
+ mkdir patch-symlinks
+ cd patch-symlinks
for x in ../mips-patches-${BASE_KV}/*.patch; do
ln -s "${x}" "${x##../mips-patches-*/}"
done
@@ -307,17 +326,10 @@ src_unpack() {
do rm -f "./${x}"
done
- # Rename the source tree to match the linux-mips git checkout date and
- # machine type.
- local fkv="${F_KV%-*}"
- local v="${fkv}"
- for x in {ip27,ip28,ip30}; do
- use ${x} && v="${v}.${x}" && break
- done
-
- local old="${WORKDIR}/linux-${fkv/_/-}"
- local new="${WORKDIR}/linux-${v}"
- if [ "${old}" != "${new}" ]; then
+ # Rename the source tree, if needed.
+ local old="${WORKDIR}/linux-${F_KV%-*/_/-}"
+ local new="${WORKDIR}/linux-$(fkv_to_machtype)"
+ if [[ "${old}" != "${new}" ]]; then
mv "${old}" "${new}" || die
fi
S="${new}"
@@ -328,13 +340,8 @@ src_unpack() {
}
src_prepare() {
- local psym="patch-symlinks"
-
- # Now go into the kernel source and patch it.
- cd "${S}"
- eapply "${WORKDIR}/${psym}"/
+ # Apply patches to the kernel tree.
+ eapply "${WORKDIR}/patch-symlinks"/
eapply_user
}
-
-#//------------------------------------------------------------------------------
diff --git a/sys-kernel/mips-sources/mips-sources-5.4.137.ebuild b/sys-kernel/mips-sources/mips-sources-5.4.140.ebuild
index c0810db4f528..7bf71ea9c61d 100644
--- a/sys-kernel/mips-sources/mips-sources-5.4.137.ebuild
+++ b/sys-kernel/mips-sources/mips-sources-5.4.140.ebuild
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
# EAPI Version
-EAPI="6"
+EAPI="8"
#//------------------------------------------------------------------------------
@@ -23,7 +23,7 @@ K_FROM_GIT="yes"
ETYPE="sources"
# Inherit Eclasses
-inherit kernel-2 eapi7-ver
+inherit kernel-2
detect_version
# Version Data
@@ -73,15 +73,17 @@ err_disabled_mach() {
# See if this machine needs a USE passed or skip dying
local has_use
- [ ! -z "${m_use}" -a "${m_use}" != "skip" ] && has_use="USE=\"${m_use}\" "
+ [[ "${m_use}" != "skip" ]] \
+ && has_use="USE=\"${m_use}\" "
# Print error && (maybe) die
echo -e ""
- if [ "${is_test}" != "test" ]; then
+ if [[ "${is_test}" != "test" ]]; then
eerror "${m_name} Support has been disabled in this ebuild"
eerror "revision. If you wish to merge ${m_name} sources, then"
eerror "run ${has_use}emerge =mips-sources-${stable_ver}"
- [ "${m_use}" != "skip" ] && die "${m_name} Support disabled."
+ [[ "${m_use}" != "skip" ]] \
+ && die "${m_name} Support disabled."
else
ewarn "${m_name} Support has been marked as needing testing in this"
ewarn "ebuild revision. This usually means that any patches to support"
@@ -105,17 +107,33 @@ err_only_one_mach_allowed() {
die "Only one machine-type patchset allowed"
}
-pkg_postinst() {
- # Symlink /usr/src/linux as appropriate
- local my_ksrc="${S##*/}"
+fkv_to_machtype() {
+ # For any machines that use external patches, we rename the source
+ # tree to match the machine type.
+ local fkv="${F_KV%-*}"
+ local v="${fkv}"
for x in {ip27,ip28,ip30}; do
- use ${x} && my_ksrc="${my_ksrc}.${x}"
+ use ${x} && v="${v}.${x}" && break
done
- if [ ! -e "${ROOT}usr/src/linux" ]; then
- rm -f "${ROOT}usr/src/linux"
- ln -sf "${my_ksrc}" "${ROOT}/usr/src/linux"
+ echo "${v}"
+}
+
+pkg_postinst() {
+ if ! use symlink; then
+ return 0
+ fi
+
+ local kern_sym="/usr/src/linux"
+
+ # Check that /usr/src/linux is safe to overwrite
+ if [[ -e "${kern_sym}" && ! -L "${kern_sym}" ]]; then
+ die "${kern_sym} already exists, but is not a symbolic link"
fi
+
+ # Symlink /usr/src/linux as appropriate
+ local kern_ver=$(fkv_to_machtype)
+ ln -snf "linux-${kern_ver}" "${kern_sym}"
}
pkg_setup() {
@@ -135,35 +153,37 @@ pkg_setup() {
shift # Shift the positions
m_name="${*}" # Get the rest (Name)
- if use ${m_ip}; then
- # Fetch the value indiciating if the machine is enabled or not
- m_enable="DO_${m_ip/ip/IP}"
- m_enable="${!m_enable}"
+ if ! use ${m_ip}; then
+ continue
+ fi
- # Make sure only one of these exclusive machine patches is selected
- [ "${arch_is_selected}" = "no" ] \
- && arch_is_selected="yes" \
- || err_only_one_mach_allowed
+ # Fetch the value indiciating if the machine is enabled or not
+ m_enable="DO_${m_ip/ip/IP}"
+ m_enable="${!m_enable}"
- # Is the machine support disabled or marked as needing testing?
- [ "${m_enable}" = "test" ] \
- && err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}" "test"
- [ "${m_enable}" = "no" ] \
- && err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}"
+ # Make sure only one of these exclusive machine patches is selected
+ [[ "${arch_is_selected}" = "no" ]] \
+ && arch_is_selected="yes" \
+ || err_only_one_mach_allowed
- # Show relevant information about the machine
- show_${m_ip}_info
- fi
+ # Is the machine support disabled or marked as needing testing?
+ case "${m_enable}" in
+ "test") err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}" "test" ;;
+ "no") err_disabled_mach "${m_name}" "${m_ip/ip/IP}" "${m_ip}" ;;
+ esac
+
+ # Show relevant information about the machine
+ show_${m_ip}_info
done
# All other systems that don't have a USE flag go here
# These systems have base-line support included in linux-mips git, so
# instead of failing, if disabled, we simply warn the user
- if [ "${arch_is_selected}" = "no" ]; then
- [ "${DO_IP22}" = "no" ] \
+ if [[ "${arch_is_selected}" = "no" ]]; then
+ [[ "${DO_IP22}" = "no" ]] \
&& err_disabled_mach "SGI Indy/Indigo2 R4x00" "IP22" "skip" \
|| show_ip22_info
- [ "${DO_IP32}" = "no" ] \
+ [[ "${DO_IP32}" = "no" ]] \
&& err_disabled_mach "SGI O2" "IP32" "skip" \
|| show_ip32_info
@@ -276,9 +296,8 @@ src_unpack() {
# Create a new folder called 'patch-symlinks' and create symlinks to
# all mips-patches in there. If we want to exclude a patch, we'll
# just delete the symlink instead of the actual patch.
- local psym="patch-symlinks"
- mkdir "${psym}"
- cd "${psym}"
+ mkdir patch-symlinks
+ cd patch-symlinks
for x in ../mips-patches-${BASE_KV}/*.patch; do
ln -s "${x}" "${x##../mips-patches-*/}"
done
@@ -307,17 +326,10 @@ src_unpack() {
do rm -f "./${x}"
done
- # Rename the source tree to match the linux-mips git checkout date and
- # machine type.
- local fkv="${F_KV%-*}"
- local v="${fkv}"
- for x in {ip27,ip28,ip30}; do
- use ${x} && v="${v}.${x}" && break
- done
-
- local old="${WORKDIR}/linux-${fkv/_/-}"
- local new="${WORKDIR}/linux-${v}"
- if [ "${old}" != "${new}" ]; then
+ # Rename the source tree, if needed.
+ local old="${WORKDIR}/linux-${F_KV%-*/_/-}"
+ local new="${WORKDIR}/linux-$(fkv_to_machtype)"
+ if [[ "${old}" != "${new}" ]]; then
mv "${old}" "${new}" || die
fi
S="${new}"
@@ -328,13 +340,8 @@ src_unpack() {
}
src_prepare() {
- local psym="patch-symlinks"
-
- # Now go into the kernel source and patch it.
- cd "${S}"
- eapply "${WORKDIR}/${psym}"/
+ # Apply patches to the kernel tree.
+ eapply "${WORKDIR}/patch-symlinks"/
eapply_user
}
-
-#//------------------------------------------------------------------------------