blob: 173a8803ab060479363f7ae6babc7afb501c7173 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
# Copyright 2018 Redcore Linux Project
# Distributed under the terms of the GNU General Public License v2
SUMMARY="Redcore Linux Project LTS Kernel Image"
DESCRIPTION="Redcore Linux Project LTS Kernel Image"
HOMEPAGE="https://redcorelinux.org"
DOWNLOADS="https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-${PV}.tar.xz"
LICENCES="GPL-2"
SLOT="${PV}"
PLATFORMS="~amd64"
EXTRAVERSION="redcore-lts"
KV_FULL=""${PV}"-"${EXTRAVERSION}""
MYOPTIONS="
cryptsetup [[ description = [ Use sys-fs/cryptsetup to unlock LUKS encrypted partitions ] ]]
dkms [[ description = [ Use sys-kernel/dkms to build 3rd party dkms kernel modules ] ]]
dracut [[ description = [ Use sys-boot/dracut to create initramfs images ] ]]
mdadm [[ description = [ Use sys-fs/mdadm to create, manage, and monitor Linux MD (software RAID) devices ] ]]
"
DEPENDENCIES="
build:
app-arch/xz
sys-apps/bc
sys-devel/make
build+run:
cryptsetup? ( sys-fs/cryptsetup )
dkms? ( sys-kernel/dkms )
dracut? ( sys-boot/dracut )
mdadm? ( sys-fs/mdadm )
firmware/linux-firmware
"
DEFAULT_SRC_PREPARE_PATCHES=(
"${FILES}"/introduce-NUMA-identity-node-sched-domain.patch
"${FILES}"/k10temp-add-ZEN-support.patch
"${FILES}"/mute-pps_state_mismatch.patch
"${FILES}"/restore-SD_PREFER_SIBLING-on-MC-domains.patch
"${FILES}"/Revert-ath10k-activate-user-space-firmware-loading.patch
"${FILES}"/linux-hardened.patch
"${FILES}"/uksm-for-linux-hardened.patch
"${FILES}"/0015-Enable-BFQ-io-scheduler-by-default.patch
"${FILES}"/linux-pkg-config.patch
)
WORK="${WORKBASE}"/linux-"${PV}"
pkg_setup() {
export KBUILD_BUILD_USER="nexus"
export KBUILD_BUILD_HOST="nexus.redcorelinux.org"
export REAL_ARCH="$ARCH"
unset ARCH ; unset LDFLAGS #will interfere with Makefile if set
}
src_prepare() {
default
edo emake CC="${CC}" HOSTCC="${CC}" mrproper
edo sed -ri "s|^(EXTRAVERSION =).*|\1 -${EXTRAVERSION}|" Makefile
edo cp "${FILES}"/"${EXTRAVERSION}"-amd64.config .config
}
src_compile() {
params=(
AR="${AR}"
CC="${CC}"
HOSTCC="${CC}"
LD="${LD}"
HOSTLD="${LD}"
)
edo emake V=1 \
"${params[@]}" \
prepare modules_prepare bzImage modules
}
src_install() {
dodir /boot
insinto /boot
newins .config config-"${KV_FULL}"
newins System.map System.map-"${KV_FULL}"
newins arch/x86/boot/bzImage vmlinuz-"${KV_FULL}"
dodir /usr/src/linux-"${KV_FULL}"
insinto /usr/src/linux-"${KV_FULL}"
doins Module.symvers
doins System.map
exeinto /usr/src/linux-"${KV_FULL}"
doexe vmlinux
emake INSTALL_MOD_PATH="${IMAGE}" modules_install
edo rm -f "${IMAGE}"lib/modules/"${KV_FULL}"/build
edo rm -f "${IMAGE}"lib/modules/"${KV_FULL}"/source
export local KSYMS
for KSYMS in build source ; do
dosym ../../../usr/src/linux-"${KV_FULL}" lib/modules/"${KV_FULL}"/"${KSYMS}"
done
}
_grub2_update_grubcfg() {
if [ -x $(which grub-mkconfig) ]; then
grub-mkconfig -o "${ROOT}"boot/grub/grub.cfg
fi
}
_dracut_initrd_create() {
if [ -x $(which dracut) ]; then
dracut -N -f --kver="${KV_FULL}" "${ROOT}"boot/initrd-"${KV_FULL}"
fi
}
_dracut_initrd_delete() {
rm -rf "${ROOT}"boot/initrd-"${KV_FULL}"
}
_dkms_modules_delete() {
if [ -x $(which dkms) ] ; then
export local DKMSMOD
for DKMSMOD in $(dkms status | cut -d " " -f1,2 | sed -e 's/,//g' | sed -e 's/ /\//g' | sed -e 's/://g') ; do
dkms remove "${DKMSMOD}" -k "${KV_FULL}"
done
fi
}
_kernel_modules_delete() {
rm -rf "${ROOT}"lib/modules/"${KV_FULL}"
}
pkg_postinst() {
if [ $(stat -c %d:%i /) == $(stat -c %d:%i /proc/1/root/.) ]; then
if option dracut; then
_dracut_initrd_create
fi
_grub2_update_grubcfg
fi
}
pkg_postrm() {
if [ $(stat -c %d:%i /) == $(stat -c %d:%i /proc/1/root/.) ]; then
if option dracut; then
_dracut_initrd_delete
fi
if use dkms; then
_dkms_modules_delete
fi
_kernel_modules_delete
_grub2_update_grubcfg
fi
}
|