# 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.8-gnu _pkgver=${_pkgbasever} _srcname=linux-${_pkgbasever%-*} _archpkgver=${_pkgver%-*} pkgver=${_pkgver//-/_} pkgrel=1 license=('GPL2') arch=('i686' 'x86_64') url='https://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=("https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/linux-libre-${_pkgbasever}.tar.xz" "https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgbasever}/linux-libre-${_pkgbasever}.tar.xz.sign" #"https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.xz" #"https://linux-libre.fsfla.org/pub/linux-libre/releases/${_pkgver}/patch-${_pkgbasever}-${_pkgver}.xz.sign" 'cpupower.default' 'cpupower.systemd' 'cpupower.service' 'usbipd.service' '01-cpupower-governor-fix.patch') sha256sums=('d54e0f8a27e24f3666c19b395c19dba194635db26929c89e78ffa4b2b0e8ca3a' 'SKIP' '4fa509949d6863d001075fa3e8671eff2599c046d20c98bb4a70778595cd1c3f' 'd2e8e5e8b22c6089a91f573aa1c59e442a1f3b67a2c9f047abe3b57d3d6558cc' 'fa2560630576464739ede14c9292249f4007f36a684bc378add174fc88394550' '2e187734d8aec58a3046d79883510d779aa93fb3ab20bd3132c1a607ebe5498f' '0952a7519d9ccd0254d5f384b9420eb8f7f64da3d13607b57b305ad79d6c2007') 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/01-cpupower-governor-fix.patch" } build() { msg2 'libtraceevent' pushd $_srcname/tools/lib/traceevent make popd msg2 'perf' pushd $_srcname/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 $_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 -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" # move completion in new directory install -Dm644 etc/bash_completion.d/perf usr/share/bash-completion/completions/perf rm -r etc # no exec on usr/share find usr/share -type f -exec chmod a-x {} \; } _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: