PKGBUILDs/community/linux-tools/PKGBUILD
2017-12-10 14:07:27 +00:00

268 lines
6.6 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# $Id$
# Maintainer: Sébastien Luttringer
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - removed x86_energy_perf_policy and turbostat build/package, uses x86 asm
# - removed numactl dep
# - use tarball source
# - add GPIO and IIO utilities packages
pkgbase=linux-tools
pkgname=(
'cgroup_event_listener'
'cpupower'
'hyperv'
'libtraceevent'
'linux-tools-meta'
'perf'
'tmon'
'usbip'
'gpio-utils'
'iio-utils'
)
pkgver=4.14
pkgrel=1
license=('GPL2')
arch=('x86_64')
url='https://www.kernel.org'
options=('!strip' '!distcc')
makedepends=('git')
# split packages need all package dependencies set manually in makedepends
# kernel source deps
makedepends+=('asciidoc' 'xmlto')
# perf deps
makedepends+=('perl' 'python2' 'slang' 'elfutils' 'libunwind' 'audit' 'gtk2')
# cpupower deps
makedepends+=('pciutils')
# usbip deps
makedepends+=('glib2' 'sysfsutils' 'udev')
# tmon deps
makedepends+=('ncurses')
groups=("$pkgbase")
source=("https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-${pkgver}.tar.xz"
# 'https://cdn.kernel.org/pub/linux/kernel/v4.x/patch-4.12.2.xz'
'cpupower.default'
'cpupower.systemd'
'cpupower.service'
'usbipd.service')
md5sums=('bacdb9ffdcd922aa069a5e1520160e24'
'56883c159381ba89e50ab8ea65efec77'
'34f5ecc19770a1abbcd0fd65bfd1f065'
'86c4e419e4ba80835c330d49ba3f56ad'
'bb35634f480325a78b943f7e10165e86')
prepare() {
cd linux-$pkgver
# Fix "unwind-libunwind.c:109:11: error: EINVAL undeclared" on i686
# Not sure why this wasn't an issue until now...
sed -i '1i #include <errno.h>' tools/perf/arch/x86/util/unwind-libunwind.c
# apply patch from the source array (should be a pacman feature)
local filename
for filename in "${source[@]}"; do
filename="${filename##*/}"
if [[ "$filename" =~ \.patch$ ]]; then
msg2 "Applying patch $filename"
patch -p1 -N -i "$srcdir/$filename"
elif [[ "$filename" =~ ^patch- ]]; then
msg2 "Applying linux $filename"
patch -p1 -N -i "$srcdir/${filename%.*}"
fi
done
}
build() {
msg2 'libtraceevent'
pushd linux-$pkgver/tools/lib/traceevent
make
popd
msg2 'perf'
pushd linux-$pkgver/tools/perf
make -f Makefile.perf \
prefix=/usr \
lib=lib/perf \
perfexecdir=lib/perf \
NO_SDT=1 \
PYTHON=python2 \
PYTHON_CONFIG=python2-config \
PERF_VERSION=$pkgver-$pkgrel \
DESTDIR="$pkgdir" \
all man
popd
msg2 'cpupower'
pushd linux-$pkgver/tools/power/cpupower
# we cannot use --as-needed
#LDFLAGS=${LDFLAGS:+"$LDFLAGS,--no-as-needed"}
make VERSION=$pkgver-$pkgrel
popd
msg2 'usbip'
pushd linux-$pkgver/tools/usb/usbip
./autogen.sh
./configure --prefix=/usr --sbindir=/usr/bin
make
popd
msg2 'tmon'
pushd linux-$pkgver/tools/thermal/tmon
make
popd
msg2 'cgroup_event_listener'
pushd linux-$pkgver/tools/cgroup
make
popd
msg2 'hv'
pushd linux-$pkgver/tools/hv
CFLAGS+=' -DKVP_SCRIPTS_PATH=/usr/lib/hyperv/kvp_scripts/' make
popd
msg2 'gpio'
pushd linux-$pkgver/tools/gpio
make -j1
popd
msg2 'iio'
pushd linux-$pkgver/tools/iio
make
popd
}
package_linux-tools-meta() {
pkgdesc='Linux kernel tools meta package'
groups=()
depends=(
'cgroup_event_listener'
'cpupower'
'hyperv'
'libtraceevent'
'perf'
'tmon'
'usbip'
)
conflicts=(
'acpidump'
)
}
package_libtraceevent() {
pkgdesc='Linux kernel trace event library'
depends=('glibc')
cd linux-$pkgver/tools/lib/traceevent
install -dm 755 "$pkgdir/usr/lib"
install -m 644 libtraceevent.so "$pkgdir/usr/lib"
}
package_perf() {
pkgdesc='Linux kernel performance auditing tool'
depends=('perl' 'python2' 'slang' 'elfutils' 'libunwind' 'binutils'
'audit')
optdepends=('gtk2: support GTK2 browser for perf report')
cd linux-$pkgver/tools/perf
make -f Makefile.perf \
prefix=/usr \
lib=lib/perf \
perfexecdir=lib/perf \
NO_SDT=1 \
PYTHON=python2 \
PYTHON_CONFIG=python2-config \
PERF_VERSION=$pkgver-$pkgrel \
DESTDIR="$pkgdir" \
install install-man
cd "$pkgdir"
# add linker search path
mkdir "$pkgdir/etc/ld.so.conf.d"
echo '/usr/lib/perf' > "$pkgdir/etc/ld.so.conf.d/$pkgname.conf"
# move completion in new directory
install -Dm644 etc/bash_completion.d/perf usr/share/bash-completion/completions/perf
rm -r etc/bash_completion.d
# no exec on usr/share
find usr/share -type f -exec chmod a-x {} \;
}
package_cpupower() {
pkgdesc='Linux kernel tool to examine and tune power saving related features of your processor'
backup=('etc/default/cpupower')
depends=('bash' 'pciutils')
conflicts=('cpufrequtils')
replaces=('cpufrequtils')
install=cpupower.install
pushd linux-$pkgver/tools/power/cpupower
make \
DESTDIR="$pkgdir" \
sbindir='/usr/bin' \
mandir='/usr/share/man' \
docdir='/usr/share/doc/cpupower' \
install install-man
popd
# install startup scripts
install -Dm 644 $pkgname.default "$pkgdir/etc/default/$pkgname"
install -Dm 644 $pkgname.service "$pkgdir/usr/lib/systemd/system/$pkgname.service"
install -Dm 755 $pkgname.systemd "$pkgdir/usr/lib/systemd/scripts/$pkgname"
}
package_usbip() {
pkgdesc='An USB device sharing system over IP network'
depends=('glib2' 'sysfsutils' 'libsystemd')
pushd linux-$pkgver/tools/usb/usbip
make install DESTDIR="$pkgdir"
popd
# module loading
install -Dm 644 /dev/null "$pkgdir/usr/lib/modules-load.d/$pkgname.conf"
printf 'usbip-core\nusbip-host\n' > "$pkgdir/usr/lib/modules-load.d/$pkgname.conf"
# systemd
install -Dm 644 usbipd.service "$pkgdir/usr/lib/systemd/system/usbipd.service"
}
package_tmon() {
pkgdesc='Monitoring and Testing Tool for Linux kernel thermal subsystem'
depends=('glibc' 'ncurses')
cd linux-$pkgver/tools/thermal/tmon
make install INSTALL_ROOT="$pkgdir"
}
package_cgroup_event_listener() {
pkgdesc='Simple listener of cgroup events'
depends=('glibc')
cd linux-$pkgver/tools/cgroup
install -Dm755 cgroup_event_listener "$pkgdir/usr/bin/cgroup_event_listener"
}
package_hyperv() {
pkgdesc='Hyper-V tools'
depends=('glibc')
cd linux-$pkgver/tools/hv
for _p in hv_fcopy_daemon hv_kvp_daemon hv_vss_daemon; do
install -Dm755 "$_p" "$pkgdir/usr/bin/$_p"
done
install -dm755 "$pkgdir/usr/lib/hyperv/kvp_scripts"
}
package_gpio-utils() {
pkgdesc='GPIO character device utilities'
depends=('glibc')
cd linux-$pkgver/tools/gpio
make install DESTDIR="$pkgdir"
}
package_iio-utils() {
pkgdesc='Industrial IO utilities'
depends=('glibc')
cd linux-$pkgver/tools/iio
make install INSTALL_ROOT="$pkgdir"
}
# vim:set ts=2 sw=2 et: