# Maintainer (Arch): Sébastien Luttringer # Maintainer: André Silva # Contributor: Luke Shumaker # Contributor: Márcio Silva _pkgdesc='Linux-libre kernel' pkgbase=linux-libre-tools _pkgname=( 'cgroup_event_listener' 'cpupower' 'libtraceevent' 'perf' 'tmon' 'turbostat' 'usbip' 'x86_energy_perf_policy' ) pkgname=("${pkgbase}-meta" "${_pkgname[@]/#/${pkgbase}-}") _pkgbasever=4.7-gnu _pkgver=${_pkgbasever} _srcname=linux-${_pkgbasever%-*} _archpkgver=${_pkgver%-*} pkgver=${_pkgver//-/_} pkgrel=1 license=('GPL2') arch=('i686' 'x86_64') url='http://linux-libre.fsfla.org/' options=('!strip') makedepends=('asciidoc' 'xmlto') # split packages need all package dependencies set manually in makedepends declare -A _depends _depends[perf]='perl python2 libnewt elfutils libunwind numactl audit' _depends[cpupower]='pciutils' _depends[usbip]='glib2 sysfsutils libsystemd' makedepends+=(systemd) # libsystemd for runtime, systemd for make. IDK, it's what Arch does _depends[tmon]='ncurses' makedepends+=(${_depends[@]}) groups=("$pkgbase") source=("http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/linux-libre-${_pkgbasever}.tar.xz" "http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/linux-libre-${_pkgbasever}.tar.xz.sign" #"http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.xz" #"http://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.xz.sign" 'cpupower.default' 'cpupower.systemd' 'cpupower.service' 'usbipd.service' '02-parabola-paths.patch' '04-fix-usip-h-path.patch') sha256sums=('f483e595e0ad9a9d1b3afd20e4ecb0b798cf16eb31e79a7b99311eb9c061032a' 'SKIP' '4fa509949d6863d001075fa3e8671eff2599c046d20c98bb4a70778595cd1c3f' 'fbf6e0ce6eb0ef15703fe212958de6ca46e62188900b5e9f9272ed3cc9cfd54e' 'a89284d0ecb556ca53a66d1c2087b5fd6d0a901ab2769cd3aebb93f4478905dc' '2e187734d8aec58a3046d79883510d779aa93fb3ab20bd3132c1a607ebe5498f' '91f7d91d4270f207102c469c575dd176c3be7897d78d26057d047db164eaf9ca' 'e5543d8d6d3fbc7f8d9d25c428a882737d2e0169455f70cbc3f73076ff33dd5d') validpgpkeys=( '474402C8C582DAFBE389C427BCB7CF877E7D47A7' # Alexandre Oliva ) prepare() { cd $_srcname # add upstream patch if [ "${_pkgbasever}" != "${_pkgver}" ]; then patch -p1 -i "${srcdir}/patch-${_pkgbasever}-${_pkgver}" fi patch -N -p1 -i "$srcdir/02-parabola-paths.patch" patch -N -p1 -i "$srcdir/04-fix-usip-h-path.patch" } build() { msg2 'libtraceevent' pushd $_srcname/tools/lib/traceevent make popd msg2 'perf' pushd $_srcname/tools/perf if [ "$CARCH" = "x86_64" ]; then extra='NO_PERF_READ_VDSO32=1' fi make \ WERROR=0 \ DESTDIR="$pkgdir/usr" \ perfexecdir='lib/perf' \ PYTHON=python2 \ PYTHON_CONFIG=python2-config \ PERF_VERSION=$pkgver-$pkgrel \ $extra \ all man popd msg2 'cpupower' pushd $_srcname/tools/power/cpupower # we cannot use --as-needed #LDFLAGS=${LDFLAGS:+"$LDFLAGS,--no-as-needed"} make VERSION=$pkgver-$pkgrel popd msg2 'x86_energy_perf_policy' pushd $_srcname/tools/power/x86/x86_energy_perf_policy make popd msg2 'usbip' pushd $_srcname/tools/usb/usbip ./autogen.sh ./configure --prefix=/usr --sbindir=/usr/bin make popd msg2 'tmon' pushd $_srcname/tools/thermal/tmon make popd msg2 'cgroup_event_listener' pushd $_srcname/tools/cgroup make popd msg2 'turbostat' pushd $_srcname/tools/power/x86/turbostat make popd } _package_meta() { pkgdesc="${_pkgdesc} tools meta package" groups=() depends=("${_pkgname[@]/#/${pkgbase}-}") replaces=(linux-tools-meta) conflicts=(linux-tools-meta acpidump) provides=(linux-tools-meta=$_archpkgver) } _package_libtraceevent() { pkgdesc="${_pkgdesc} trace event library" depends=('glibc') cd $_srcname/tools/lib/traceevent install -dm 755 "$pkgdir/usr/lib" install -m 644 libtraceevent.so "$pkgdir/usr/lib" } _package_perf() { pkgdesc="${_pkgdesc} performance auditing tool" depends=('binutils') optdepends=('gtk2: support GTK2 browser for perf report') cd $_srcname/tools/perf make \ WERROR=0 \ DESTDIR="$pkgdir/usr" \ perfexecdir='lib/perf' \ PYTHON=python2 \ PYTHON_CONFIG=python2-config \ PERF_VERSION=$pkgver-$pkgrel \ install install-man # move completion in new directory cd "$pkgdir" install -Dm644 usr/etc/bash_completion.d/perf usr/share/bash-completion/completions/perf rm -r usr/etc } _package_cpupower() { pkgdesc="${_pkgdesc} tool to examine and tune power saving related features of your processor" backup=('etc/default/cpupower') depends=('bash') replaces=('cpufrequtils') conflicts=('cpufrequtils') install=cpupower.install pushd $_srcname/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 cpupower.default "$pkgdir/etc/default/cpupower" install -Dm 644 cpupower.service "$pkgdir/usr/lib/systemd/system/cpupower.service" install -Dm 755 cpupower.systemd "$pkgdir/usr/lib/systemd/scripts/cpupower" } _package_x86_energy_perf_policy() { pkgdesc='Read or write MSR_IA32_ENERGY_PERF_BIAS' depends=('glibc') cd $_srcname/tools/power/x86/x86_energy_perf_policy install -Dm 755 x86_energy_perf_policy "$pkgdir/usr/bin/x86_energy_perf_policy" install -Dm 644 x86_energy_perf_policy.8 "$pkgdir/usr/share/man/man8/x86_energy_perf_policy.8" } _package_usbip() { pkgdesc='An USB device sharing system over IP network' pushd $_srcname/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 ${_pkgdesc} thermal subsystem" depends=('glibc') cd $_srcname/tools/thermal/tmon make install INSTALL_ROOT="$pkgdir" } _package_cgroup_event_listener() { pkgdesc='Simple listener of cgroup events' depends=('glibc') cd $_srcname/tools/cgroup install -Dm755 cgroup_event_listener "$pkgdir/usr/bin/cgroup_event_listener" } _package_turbostat() { pkgdesc='Report processor frequency and idle statistics' depends=('glibc') cd $_srcname/tools/power/x86/turbostat make install DESTDIR="$pkgdir" } eval "package_${pkgbase}-meta() { _package_meta; }" for _p in "${_pkgname[@]}"; do eval " package_${pkgbase}-${_p}() { _package_${_p} depends+=(${_depends[${_p}]}) replaces+=("${_p}" "${_p}-libre" "${_p}-parabola" ${pkgbase}_${_p}) conflicts+=("${_p}" "${_p}-libre" "${_p}-parabola" ${pkgbase}_${_p}) provides+=(${_p}=${_archpkgver}) }" done # vim:set ts=2 sw=2 et: