-
Notifications
You must be signed in to change notification settings - Fork 0
/
package.yml
120 lines (104 loc) · 4.29 KB
/
package.yml
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
name : linux-current
version : 6.0.3
release : 3
source :
- https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.0.3.tar.xz : b0d522241805794d8af3a67d331ba063a16496c6fb6d365d48f7ed78ee1c3dcf
license : GPL-2.0-only
component :
- kernel.image
- headers : kernel.devel
summary :
- Linux kernel image and modules (current)
- headers : Linux kernel headers (current)
description:
- The Linux kernel and modules, the core of the operating system
- headers : Headers required for building out of tree kernel modules
builddeps :
- pkgconfig(devmapper)
- pkgconfig(libelf)
- bc
- btrfs-progs
- cpio
- dracut
- intel-microcode
- kbd
- linux-firmware
- lz4
- perl
patterns :
- headers : /usr/src
permanent :
- /lib/modules
- /usr/lib/kernel
- /usr/src
replaces :
- kernel
- kernel-modules
- headers : kernel-headers
setup : |
%apply_patches
# Set the version
extraVersion="-${release}.current"
sed -e "s/EXTRAVERSION =.*/EXTRAVERSION = $extraVersion/" -i Makefile
# Ensure config is valid
install $pkgfiles/config .config
%make ARCH=x86_64 oldconfig
build : |
%make ARCH=x86_64 CONFIG_DEBUG_SECTION_MISMATCH=y
%make -C tools/objtool
install : |
# Install kernel blob
kernID="com.solus-project.current"
kversion="${version}-${release}.current"
install -D -m 0755 arch/x86/boot/bzImage $installdir/usr/lib/kernel/$kernID.${version}-${release}
# Install additional files
install -m 00644 .config $installdir/usr/lib/kernel/config-$kversion
install -m 00644 System.map $installdir/usr/lib/kernel/System.map-$kversion
install -m 00644 $pkgfiles/cmdline $installdir/usr/lib/kernel/cmdline-$kversion
# Install kernel modules, disable depmod + firmware install
install -D -d -m 00755 $installdir/lib/modules/$kversion
%make ARCH=x86_64 INSTALL_MOD_PATH=$installdir/ modules_install KERNELRELEASE=$kversion mod-fw= DEPMOD=/bin/true
# Remove broken links
rm -v $installdir/lib/modules/${kversion}/{source,build}
# Mark this as the default "current" kernel
ln -sv $kernID.${version}-${release} $installdir/usr/lib/kernel/default-current
# Fix mods
depmod -b $installdir/ $kversion -a
# Store vendor initrd within the kernel package, prevent mangling from fakeroot
# 2021-01-20: Force early KMS for everything except Nouveau (this will not work with Nvidia propretary)
LD_PRELOAD='' dracut --strip --tmpdir /tmp -N -f \
--kmoddir $installdir/lib/modules/${kversion} \
--kver $kversion --add "bash systemd lvm dm rescue" \
--strip --hardlink \
--nomdadmconf --early-microcode \
--add-drivers "amdgpu i915 qxl radeon virtio-gpu" \
$installdir/usr/lib/kernel/initrd-$kernID.${version}-${release}
# Install the headers
tgtDir="/usr/src/linux-headers-$kversion"
dstDir="$installdir/$tgtDir"
install -D -d -m 00755 $dstDir
find . -path './include/*' -prune -o -path './scripts/*' -prune -o -path './Documentation/*' -prune -o -type f \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o -name '*.sh' -o -name '*.pl' -o -name '*.lds' \) -print | cpio -pVd --preserve-modification-time $dstDir/
# Necessary for out of tree modules
for h in "drivers/media/dvb-frontends" "drivers/media/tuners"; do
install -D -d -m 00755 $dstDir/$h
cp -a $h/*.h $dstDir/$h
done
# For a full headers pkg
for p in "include" "scripts" "Documentation"; do
cp -a $p $dstDir
done
# Nuke any unneeded bits.
rm -f $dstDir/scripts/*.o
rm -f $dstDir/scripts/*/*.o
rm -rf $dstDir/Documentation/DocBook
# Copy remaining include dirs
(find arch -name include -type d -print | xargs -n1 -i: find : -type f) | cpio -pd --preserve-modification-time "$dstDir"
# Shove last bits needed for out of tree kernel builds
install -m 00644 Module.symvers $dstDir/.
install -m 00644 System.map $dstDir/.
install -m 00644 .config $dstDir/.config
# Add objtool binary for CONFIG_STACK_VALIDATION (T5607)
install -m 00755 tools/objtool/objtool $dstDir/tools/objtool/objtool
# Fix up build/source links
ln -sv build $installdir/lib/modules/$kversion/source
ln -sv $tgtDir $installdir/lib/modules/$kversion/build