# $Id$ # Maintainer: Sébastien Luttringer # ALARM: Kevin Mihelich # - 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' 'libtraceevent' 'linux-tools-meta' 'perf' 'tmon' 'usbip' 'gpio-utils' 'iio-utils' ) pkgver=4.11 pkgrel=1 license=('GPL2') arch=('i686' '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.9.9.xz' '571299d099dcce0ff32c76e70e32e0ba01e55adc.diff::https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/tools/iio?id=571299d099dcce0ff32c76e70e32e0ba01e55adc' 'cpupower.default' 'cpupower.systemd' 'cpupower.service' 'usbipd.service') md5sums=('251a5deee0fa6daf3f356b1bbda9eab8' '6c0bdf6ebe33ca5b3ba4ea1a5668051b' '56883c159381ba89e50ab8ea65efec77' '34f5ecc19770a1abbcd0fd65bfd1f065' '86c4e419e4ba80835c330d49ba3f56ad' 'bb35634f480325a78b943f7e10165e86') prepare() { cd linux-$pkgver # apply stable kernel patch #patch -p1 -N -i "$srcdir"/patch-4.7.5 # apply patch from the source array (should be a pacman feature) local filename for filename in "${source[@]}"; do if [[ "$filename" =~ \.patch$ ]]; then msg2 "Applying patch ${filename##*/}" patch -p1 -N -i "$srcdir/${filename##*/}" fi done # revert breaking commit for IIO utils patch -p1 -Ri ../571299d099dcce0ff32c76e70e32e0ba01e55adc.diff } 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 \ 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 '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' '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_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: