archrelease: copy trunk to community-any
[ArchLinux/community.git] / linux-tools / repos / community-x86_64 / PKGBUILD
blobe441a337280585b587813432c64f29c5156a3864
1 # Maintainer: Sébastien Luttringer
3 pkgbase=linux-tools
4 pkgname=(
5   'bootconfig'
6   'bpf'
7   'cgroup_event_listener'
8   'cpupower'
9   'hyperv'
10   'linux-tools-meta'
11   'perf'
12 #  'python-perf'
13   'tmon'
14   'turbostat'
15   'usbip'
16   'x86_energy_perf_policy'
18 pkgver=6.2
19 pkgrel=1
20 license=('GPL2')
21 arch=('x86_64')
22 url='https://www.kernel.org'
23 options=('!strip')
24 makedepends=('git')
25 # split packages need all package dependencies set manually in makedepends
26 # kernel source deps
27 makedepends+=('asciidoc' 'xmlto')
28 # perf deps
29 makedepends+=('perl' 'python' 'python-setuptools' 'slang' 'elfutils' 'libunwind' 'numactl' 'audit' 'zstd' 'libcap')
30 # cpupower deps
31 makedepends+=('pciutils')
32 # usbip deps
33 makedepends+=('glib2' 'sysfsutils' 'udev')
34 # tmon deps
35 makedepends+=('ncurses')
36 # bpf deps
37 makedepends+=('readline' 'zlib' 'libelf' 'libcap' 'python-docutils')
38 # turbostat deps
39 makedepends+=('libcap')
40 # bpftool
41 makedepends+=('llvm' 'clang')
42 groups=("$pkgbase")
43 source=("git+https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git#tag=v${pkgver//_/-}?signed"
44 #        "https://cdn.kernel.org/pub/linux/kernel/v5.x/patch-$pkgver.1.xz"
45         'cpupower.default'
46         'cpupower.systemd'
47         'cpupower.service'
48         'usbipd.service'
49         'hv_fcopy_daemon.service'
50         'hv_kvp_daemon.service'
51         'hv_vss_daemon.service')
52 validpgpkeys=(
53   'ABAF11C65A2970B130ABE3C479BE3E4300411886'  # Linus Torvalds
54   '647F28654894E3BD457199BE38DBBDC86092693E'  # Greg Kroah-Hartman
56 sha256sums=('SKIP'
57             '4fa509949d6863d001075fa3e8671eff2599c046d20c98bb4a70778595cd1c3f'
58             'b692f4859ed3fd9831a058a450a84d8c409bf7e3e45aac1c2896a14bb83f3d7a'
59             '42d2ec9f1d9cc255ee7945a27301478364ef482f5a6ddfc960189f03725ccec2'
60             '2e187734d8aec58a3046d79883510d779aa93fb3ab20bd3132c1a607ebe5498f'
61             '16855c197d2334f820cb190312a5a7fffe9165189db01344a957e582e39e17d8'
62             'b1315cb77a35454e1af9172f821a52e2a0cb18561be05a340d21cf337b01ae61'
63             '2d5e2f8d40b6f19bf2e1dead57ca105d72098fb0b418c09ff2e0cb91089710af')
65 prepare() {
66   cd linux
68   # apply patch from the source array (should be a pacman feature)
69   local src
70   for src in "${source[@]}"; do
71     src="${src%%::*}"
72     src="${src##*/}"
73     src="${src%.xz}"
74     [[ $src = *.patch || $src = patch-* ]] || continue
75     echo ":: Applying patch $src"
76     patch -p1 -N -i "$srcdir/$src"
77   done
80 build() {
81   echo ':: perf'
82   pushd linux/tools/perf
83   make -f Makefile.perf \
84     prefix=/usr \
85     lib=lib/perf \
86     perfexecdir=lib/perf \
87     EXTRA_CFLAGS=' -Wno-error=bad-function-cast -Wno-error=declaration-after-statement -Wno-error=switch-enum' \
88     NO_SDT=1 \
89     PYTHON=python \
90     PYTHON_CONFIG=python-config \
91     PERF_VERSION=$pkgver-$pkgrel \
92     DESTDIR="$pkgdir"
93   popd
95   echo ':: cpupower'
96   pushd linux/tools/power/cpupower
97   make VERSION=$pkgver-$pkgrel
98   popd
100   echo ':: x86_energy_perf_policy'
101   pushd linux/tools/power/x86/x86_energy_perf_policy
102   make
103   popd
105   echo ':: usbip'
106   pushd linux/tools/usb/usbip
107   # Fix gcc compilation
108   sed -i 's,-Wall -Werror -Wextra,-fcommon,' configure.ac
109   ./autogen.sh
110   ./configure --prefix=/usr --sbindir=/usr/bin
111   make
112   popd
114   echo ':: tmon'
115   pushd linux/tools/thermal/tmon
116   make
117   popd
119   echo ':: cgroup_event_listener'
120   pushd linux/tools/cgroup
121   make
122   popd
124   echo ':: turbostat'
125   pushd linux/tools/power/x86/turbostat
126   make
127   popd
129   echo ':: hv'
130   pushd linux/tools/hv
131   CFLAGS+=' -DKVP_SCRIPTS_PATH=\"/usr/lib/hyperv/kvp_scripts/\"' make
132   popd
134   echo ':: bpf'
135   pushd linux/tools/bpf
136   # doesn't compile when we don't first compile bpftool in its own directory and
137   # man pages require to be also launch from the subdirectory
138   make -C bpftool all doc
139   # runqslower, require kernel binary path to build, skip it
140   make -W runqslower
141   popd
143   echo ':: bootconfig'
144   pushd linux/tools/bootconfig
145   make
146   popd
149 package_linux-tools-meta() {
150   pkgdesc='Linux kernel tools meta package'
151   groups=()
152   depends=(
153     'bootconfig'
154     'bpf'
155     'cgroup_event_listener'
156     'cpupower'
157     'hyperv'
158     'perf'
159 #    'python-perf'
160     'tmon'
161     'turbostat'
162     'usbip'
163     'x86_energy_perf_policy'
164   )
165   conflicts=(
166     'acpidump'
167   )
170 package_perf() {
171   pkgdesc='Linux kernel performance auditing tool'
172   depends=('glibc' 'perl' 'python' 'slang' 'elfutils' 'libunwind' 'binutils'
173            'numactl' 'audit' 'coreutils' 'glib2' 'xz' 'zlib' 'libelf' 'bash'
174            'zstd' 'libcap')
176   cd linux/tools/perf
177   make -f Makefile.perf \
178     prefix=/usr \
179     lib=lib/perf \
180     perfexecdir=lib/perf \
181     EXTRA_CFLAGS=' -Wno-error=bad-function-cast -Wno-error=declaration-after-statement -Wno-error=switch-enum' \
182     NO_SDT=1 \
183     PYTHON=python \
184     PYTHON_CONFIG=python-config \
185     PERF_VERSION=$pkgver-$pkgrel \
186     DESTDIR="$pkgdir" \
187     install
188   cd "$pkgdir"
189   # add linker search path
190   mkdir "$pkgdir/etc/ld.so.conf.d"
191   echo '/usr/lib/perf' > "$pkgdir/etc/ld.so.conf.d/$pkgname.conf"
192   # move completion in new directory
193   install -Dm644 etc/bash_completion.d/perf usr/share/bash-completion/completions/perf
194   rm -r etc/bash_completion.d
195   # no exec on usr/share
196   find usr/share -type f -exec chmod a-x {} \;
199 #package_python-perf(){
200 #  pkgdesc='Linux kernel performance auditing tool (python bindings)'
201 #  depends=('python')
203 #  cd linux/tools/perf
205 #  make install-python_ext PYTHON=python DESTDIR="$pkgdir"
209 package_cpupower() {
210   pkgdesc='Linux kernel tool to examine and tune power saving related features of your processor'
211   backup=('etc/default/cpupower')
212   depends=('glibc' 'bash' 'pciutils')
213   conflicts=('cpufrequtils')
214   replaces=('cpufrequtils')
215   install=cpupower.install
217   pushd linux/tools/power/cpupower
218   make \
219     DESTDIR="$pkgdir" \
220     sbindir='/usr/bin' \
221     libdir='/usr/lib' \
222     mandir='/usr/share/man' \
223     docdir='/usr/share/doc/cpupower' \
224     install install-man
225   popd
226   # install startup scripts
227   install -Dm 644 $pkgname.default "$pkgdir/etc/default/$pkgname"
228   install -Dm 644 $pkgname.service "$pkgdir/usr/lib/systemd/system/$pkgname.service"
229   install -Dm 755 $pkgname.systemd "$pkgdir/usr/lib/systemd/scripts/$pkgname"
232 package_x86_energy_perf_policy() {
233   pkgdesc='Read or write MSR_IA32_ENERGY_PERF_BIAS'
234   depends=('glibc')
236   cd linux/tools/power/x86/x86_energy_perf_policy
237   install -Dm 755 x86_energy_perf_policy "$pkgdir/usr/bin/x86_energy_perf_policy"
238   install -Dm 644 x86_energy_perf_policy.8 "$pkgdir/usr/share/man/man8/x86_energy_perf_policy.8"
241 package_usbip() {
242   pkgdesc='An USB device sharing system over IP network'
243   depends=('glibc' 'glib2' 'sysfsutils' 'systemd-libs')
245   pushd linux/tools/usb/usbip
246   make install DESTDIR="$pkgdir"
247   popd
248   # module loading
249   install -Dm 644 /dev/null "$pkgdir/usr/lib/modules-load.d/$pkgname.conf"
250   printf 'usbip-core\nusbip-host\n' > "$pkgdir/usr/lib/modules-load.d/$pkgname.conf"
251   # systemd
252   install -Dm 644 usbipd.service "$pkgdir/usr/lib/systemd/system/usbipd.service"
255 package_tmon() {
256   pkgdesc='Monitoring and Testing Tool for Linux kernel thermal subsystem'
257   depends=('glibc' 'ncurses')
259   cd linux/tools/thermal/tmon
260   make install INSTALL_ROOT="$pkgdir"
263 package_cgroup_event_listener() {
264   pkgdesc='Simple listener of cgroup events'
265   depends=('glibc')
267   cd linux/tools/cgroup
268   install -Dm755 cgroup_event_listener "$pkgdir/usr/bin/cgroup_event_listener"
271 package_turbostat() {
272   pkgdesc='Report processor frequency and idle statistics'
273   depends=('glibc' 'libcap')
275   cd linux/tools/power/x86/turbostat
276   make install DESTDIR="$pkgdir"
279 package_hyperv() {
280   pkgdesc='Hyper-V tools'
281   depends=('glibc')
283   cd linux/tools/hv
284   for _p in hv_fcopy_daemon hv_kvp_daemon hv_vss_daemon; do
285     install -Dm755 "$_p" "$pkgdir/usr/bin/$_p"
286     install -Dm644 "$srcdir/$_p.service" "$pkgdir/usr/lib/systemd/system/$_p.service"
287   done
288   install -dm755 "$pkgdir/usr/lib/hyperv/kvp_scripts"
291 package_bpf() {
292   pkgdesc='BPF tools'
293   depends=('glibc' 'readline' 'zlib' 'libelf' 'libcap')
295   cd linux/tools/bpf
296   # skip runsqlower until disabled in build
297   make -W runqslower_install install prefix=/usr DESTDIR="$pkgdir"
298   # fix bpftool hard written path
299   mv "$pkgdir"/usr/sbin/bpftool "$pkgdir"/usr/bin/bpftool
300   rmdir "$pkgdir"/usr/sbin
301   # install man pages
302   make -C bpftool doc-install prefix=/usr/share DESTDIR="$pkgdir"
305 package_bootconfig() {
306   pkgdesc='Apply, delete or show boot config to initrd'
307   depends=('glibc')
309   cd linux/tools/bootconfig
310   install -dm755 "$pkgdir/usr/bin"
311   make install DESTDIR="$pkgdir"
314 # vim:set ts=2 sw=2 et: