blob: 140a732397374017fed117ad9398b8a08a1dd153 (
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
|
# Maintainer: SoftExpert <softexpert at gmail dot com>
# Contributor: Joan Figueras <ffigue at gmail dot com>
_arch=x64v2
_pkgbase=linux-xanmod-edge
_major=6.12
_minor=4
_branch=6.x
_xanmodrel=1
_xanmodrev=
pkgrel=1
pkgbase=${_pkgbase}-linux-bin-${_arch}
pkgver=${_major}.${_minor}
pkgname=("${pkgbase}" "${_pkgbase}-linux-headers-bin-${_arch}")
pkgdesc="The Linux kernel and modules with Xanmod patches - Rolling Release (EDGE) - Prebuilt version - ${_arch}"
url="http://www.xanmod.org/"
arch=(x86_64)
license=(GPL2)
options=('!strip')
makedepends=('libxml2' 'curl')
provides=("${_pkgbase}")
conflicts=("linux-xanmod-linux-bin-${_arch}")
replaces=("linux-xanmod-linux-bin-${_arch}" "${_pkgbase}")
# Resolve URL of sources from SourceForge provider and cache the response of the API to reduce the number of calls made
_xml_data=$(curl -L -s "https://sourceforge.net/projects/xanmod/rss?path=/releases/edge")
# retrieve the headers URL and remove the "/download" suffix
_t=$(echo "${_xml_data}" | xmllint --debug --xpath "string(//*[local-name()='content'][@type='application/x-debian-package; charset=binary' and contains(@url, '"${_arch}"') and contains(@url, 'linux-headers') and contains(@url, '"${pkgver}"')]/@url)" -)
_url_headers="${_t//'/download'}"
# retrieve the image URL and remove the "/download" suffix
_t=$(echo "${_xml_data}" | xmllint --debug --xpath "string(//*[local-name()='content'][@type='application/x-debian-package; charset=binary' and contains(@url, '"${_arch}"') and contains(@url, 'linux-image') and not(contains(@url, '-dbg_')) and contains(@url, '"${pkgver}"')]/@url)" -)
_url_image="${_t//'/download'}"
source=("${_url_image}" "${_url_headers}")
noextract=("${_url_image}" "${_url_headers}")
# Save files we will extract later manually
_file_image="${_url_image##*/}"
_file_headers="${_url_headers##*/}"
prepare() {
bsdtar -xf ${_file_image} data.tar.xz
bsdtar -xf data.tar.xz
rm -f data.tar.xz
bsdtar -xf ${_file_headers} data.tar.xz
bsdtar -xf data.tar.xz
rm -f data.tar.xz
}
validpgpkeys=(
'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linux Torvalds
'647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman
)
sha256sums=('9fd250112748fa7adb83c5b8bdc404dac8a386b85db0d104d68e3a912530b089'
'f4652cd38e076d9f5b381aac9b542c827f712573af84d3e59e79525e6f13de68')
_package() {
pkgdesc="The Linux kernel and modules with Xanmod patches - Rolling Release (EDGE) - Prebuilt version - ${_arch}"
depends=(coreutils kmod initramfs)
optdepends=('crda: to set the correct wireless channels of your country'
'linux-firmware: firmware images needed for some devices')
provides=(VIRTUALBOX-GUEST-MODULES
WIREGUARD-MODULE
KSMBD-MODULE
NTFS3-MODULE)
local kernver="${pkgver}-${_arch}-xanmod${_xanmodrel}"
local modulesdir="${pkgdir}/usr/lib/modules/${kernver}"
mkdir -p "${modulesdir}" "${pkgdir}/usr/share/doc"
mkdir -p "${pkgdir}"/{boot,usr/lib/modules}
msg2 "Installing modules..."
cp -r lib/modules/${kernver}/* "${modulesdir}/"
# Docs
cp -r usr/share/doc/linux-image-* "${pkgdir}/usr/share/doc/"
msg2 "Installing boot image..."
# systemd expects to find the kernel here to allow hibernation
# https://github.com/systemd/systemd/commit/edda44605f06a41fb86b7ab8128dcf99161d2344
install -Dm644 "boot/vmlinuz-${kernver}" "${modulesdir}/vmlinuz"
# Used by mkinitcpio to name the kernel
echo "${pkgbase}" | install -Dm644 /dev/stdin "${modulesdir}/pkgbase"
# echo "${kernver}" | install -Dm644 /dev/stdin "${modulesdir}/kernelbase"
echo "${pkgbase}" | install -Dm644 /dev/stdin "${modulesdir}/kernelbase"
# write kernel version for Grub
echo "${kernver}${_xanmodrev}" | install -Dm644 /dev/stdin "${pkgdir}/boot/${pkgbase}.kver"
local _extramodules="extramodules-${kernver}"
ln -s "../${_extramodules}" "${modulesdir}/extramodules"
# add real version for building modules and running depmod from hook
echo "${kernver}" | install -Dm644 /dev/stdin "${pkgdir}/usr/lib/modules/${_extramodules}/version"
# Remove builddir because is a symbolic link and it belongs to headers
rm -f "${modulesdir}/build"
}
_package-headers() {
pkgdesc="Headers and scripts for building modules for the Linux Xanmod - Rolling Release (EDGE) - Prebuilt version - ${_arch}"
depends=(pahole)
local kernver="${pkgver}-${_arch}-xanmod${_xanmodrel}"
local builddir="${pkgdir}/usr/lib/modules/${kernver}/build"
mkdir -p "${pkgdir}"/usr/share/doc "${pkgdir}"/usr/src "${pkgdir}/usr/lib/modules/${kernver}"
cp -r usr/share/doc/linux-headers-* "${pkgdir}/usr/share/doc/"
cp -r usr/src/linux-headers-${kernver} "${builddir}"
ln -sr "${builddir}" "${pkgdir}/usr/src/${pkgbase}"
}
eval "package_${pkgname[0]}() { _package \"\$@\"; }"
eval "package_${pkgname[1]}() { _package-headers \"\$@\"; }"
# vim:set ts=8 sts=2 sw=2 et:
|