PKGBUILD 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. # Maintainer (Arch): Sébastien Luttringer
  2. # Maintainer: David P. <megver83@parabola.nu>
  3. # Contributor: Omar Vega Ramos <ovruni@gnu.org.pe>
  4. # Contributor: André Silva <emulatorman@hyperbola.info>
  5. # Contributor: Márcio Silva <coadde@hyperbola.info>
  6. # parabola changes and rationale (adapted from core/linux-tools):
  7. # - changed upstream source url to linux-libre
  8. # - removed hyperV and bpf support
  9. pkgbase=linux-libre-tools
  10. pkgname=(
  11. 'cgroup_event_listener'
  12. 'cpupower'
  13. 'libtraceevent'
  14. 'linux-libre-tools-meta'
  15. 'perf'
  16. # 'python-perf'
  17. 'tmon'
  18. 'usbip'
  19. )
  20. case "$CARCH" in
  21. x86_64|i686) pkgname+=('turbostat' 'x86_energy_perf_policy') ;;
  22. armv7h) pkgname+=('gpio-utils' 'iio-utils') ;;
  23. esac
  24. pkgver=5.6.1
  25. pkgver+=_gnu
  26. pkgrel=1
  27. license=('GPL2')
  28. arch=('x86_64')
  29. arch+=('i686' 'armv7h')
  30. url='https://linux-libre.fsfla.org/'
  31. options=('!strip')
  32. makedepends=('git')
  33. # split packages need all package dependencies set manually in makedepends
  34. # kernel source deps
  35. makedepends+=('asciidoc' 'xmlto')
  36. # perf deps
  37. makedepends+=('perl' 'python' 'slang' 'elfutils' 'libunwind' 'audit' 'gtk2')
  38. makedepends_x86_64=('numactl')
  39. makedepends_i686=('numactl')
  40. # cpupower deps
  41. makedepends+=('pciutils')
  42. # usbip deps
  43. makedepends+=('glib2' 'sysfsutils' 'udev')
  44. # tmon deps
  45. makedepends+=('ncurses')
  46. groups=("$pkgbase")
  47. source=("https://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver//_/-}/linux-libre-${pkgver//_/-}.tar.xz"{,.sign}
  48. # "https://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver%.*}-gnu/patch-${pkgver%.*}-gnu-${pkgver//_/-}.xz"{,.sign}
  49. 'cpupower.default'
  50. 'cpupower.systemd'
  51. 'cpupower.service'
  52. 'usbipd.service'
  53. 'perf-fix-types.patch')
  54. sha256sums=('c5f208af2d199e650ce609eb7ac4ece2a6909af679cc0a1de4dd8438f2ee05d8'
  55. 'SKIP'
  56. '4fa509949d6863d001075fa3e8671eff2599c046d20c98bb4a70778595cd1c3f'
  57. 'd2e8e5e8b22c6089a91f573aa1c59e442a1f3b67a2c9f047abe3b57d3d6558cc'
  58. 'fa2560630576464739ede14c9292249f4007f36a684bc378add174fc88394550'
  59. '2e187734d8aec58a3046d79883510d779aa93fb3ab20bd3132c1a607ebe5498f'
  60. 'ca6b56540e2f8d6931c86978910d47e01bc28516c8b9ce616ecf6de2ba3daf4e')
  61. validpgpkeys=('474402C8C582DAFBE389C427BCB7CF877E7D47A7') # Alexandre Oliva
  62. prepare() {
  63. cd linux-${pkgver%_*}
  64. # apply patch from the source array (should be a pacman feature)
  65. local src
  66. for src in "${source[@]}"; do
  67. src="${src%%::*}"
  68. src="${src##*/}"
  69. src="${src%.xz}"
  70. [[ $src = *.patch || $src = patch-* ]] || continue
  71. echo ":: Applying patch $src"
  72. patch -p1 -N -i "$srcdir/$src"
  73. done
  74. }
  75. build() {
  76. echo ':: libtraceevent'
  77. pushd linux-${pkgver%_*}/tools/lib/traceevent
  78. make
  79. popd
  80. echo ':: perf'
  81. pushd linux-${pkgver%_*}/tools/perf
  82. make -f Makefile.perf \
  83. prefix=/usr \
  84. lib=lib/perf \
  85. perfexecdir=lib/perf \
  86. NO_SDT=1 \
  87. PYTHON=python \
  88. PYTHON_CONFIG=python-config \
  89. PERF_VERSION=$pkgver-$pkgrel \
  90. DESTDIR="$pkgdir"
  91. popd
  92. echo ':: cpupower'
  93. pushd linux-${pkgver%_*}/tools/power/cpupower
  94. make VERSION=$pkgver-$pkgrel
  95. popd
  96. if [[ "$CARCH" == x86_64 ]] || [[ "$CARCH" == i686 ]]; then
  97. echo ':: x86_energy_perf_policy'
  98. pushd linux-${pkgver%_*}/tools/power/x86/x86_energy_perf_policy
  99. make
  100. popd
  101. fi
  102. echo ':: usbip'
  103. pushd linux-${pkgver%_*}/tools/usb/usbip
  104. # Fix gcc compilation
  105. sed -i 's,-Wall -Werror -Wextra,,' configure.ac
  106. ./autogen.sh
  107. ./configure --prefix=/usr --sbindir=/usr/bin
  108. make
  109. popd
  110. echo ':: tmon'
  111. pushd linux-${pkgver%_*}/tools/thermal/tmon
  112. make
  113. popd
  114. echo ':: cgroup_event_listener'
  115. pushd linux-${pkgver%_*}/tools/cgroup
  116. make
  117. popd
  118. if [[ "$CARCH" == x86_64 ]] || [[ "$CARCH" == i686 ]]; then
  119. echo ':: turbostat'
  120. pushd linux-${pkgver%_*}/tools/power/x86/turbostat
  121. make
  122. popd
  123. fi
  124. if [[ "$CARCH" == armv7h ]]; then
  125. echo ':: gpio'
  126. pushd linux-${pkgver%_*}/tools/gpio
  127. make -j1
  128. popd
  129. echo ':: iio'
  130. pushd linux-${pkgver%_*}/tools/iio
  131. make -j1
  132. popd
  133. fi
  134. }
  135. package_linux-libre-tools-meta() {
  136. pkgdesc='GNU/Linux-libre kernel tools meta package'
  137. groups=()
  138. depends=(
  139. 'cgroup_event_listener'
  140. 'cpupower'
  141. 'libtraceevent'
  142. 'perf'
  143. # 'python-perf'
  144. 'tmon'
  145. 'usbip'
  146. )
  147. conflicts=(
  148. 'acpidump'
  149. )
  150. depends_x86_64=('turbostat' 'x86_energy_perf_policy')
  151. depends_i686=('turbostat' 'x86_energy_perf_policy')
  152. depends_armv7h=('gpio-utils' 'iio-utils')
  153. replaces=(linux-tools-meta)
  154. conflicts+=(linux-tools-meta)
  155. provides=(linux-tools-meta)
  156. }
  157. package_libtraceevent() {
  158. pkgdesc='GNU/Linux-libre kernel trace event library'
  159. depends=('glibc')
  160. cd linux-${pkgver%_*}/tools/lib/traceevent
  161. install -dm 755 "$pkgdir/usr/lib"
  162. install -m 644 libtraceevent.so "$pkgdir/usr/lib"
  163. }
  164. package_perf() {
  165. pkgdesc='GNU/Linux-libre kernel performance auditing tool'
  166. depends=('glibc' 'perl' 'python' 'slang' 'elfutils' 'libunwind' 'binutils'
  167. 'audit' 'coreutils' 'glib2' 'xz' 'zlib' 'libelf' 'bash')
  168. depends_x86_64=('numactl')
  169. depends_i686=('numactl')
  170. optdepends=('gtk2: support GTK2 browser for perf report')
  171. cd linux-${pkgver%_*}/tools/perf
  172. make -f Makefile.perf \
  173. prefix=/usr \
  174. lib=lib/perf \
  175. perfexecdir=lib/perf \
  176. NO_SDT=1 \
  177. PYTHON=python \
  178. PYTHON_CONFIG=python-config \
  179. PERF_VERSION=$pkgver-$pkgrel \
  180. DESTDIR="$pkgdir" \
  181. install
  182. cd "$pkgdir"
  183. # add linker search path
  184. mkdir "$pkgdir/etc/ld.so.conf.d"
  185. echo '/usr/lib/perf' > "$pkgdir/etc/ld.so.conf.d/$pkgname.conf"
  186. # move completion in new directory
  187. install -Dm644 etc/bash_completion.d/perf usr/share/bash-completion/completions/perf
  188. rm -r etc/bash_completion.d
  189. # no exec on usr/share
  190. find usr/share -type f -exec chmod a-x {} \;
  191. }
  192. #package_python-perf(){
  193. # pkgdesc='GNU/Linux-libre kernel performance auditing tool (python bindings)'
  194. # depends=('python')
  195. #
  196. # cd linux-${pkgver%_*}/tools/perf
  197. #
  198. # make install-python_ext PYTHON=python DESTDIR="$pkgdir"
  199. #}
  200. package_cpupower() {
  201. pkgdesc='GNU/Linux-libre kernel tool to examine and tune power saving related features of your processor'
  202. backup=('etc/default/cpupower')
  203. depends=('glibc' 'bash' 'pciutils')
  204. conflicts=('cpufrequtils')
  205. replaces=('cpufrequtils')
  206. install=cpupower.install
  207. pushd linux-${pkgver%_*}/tools/power/cpupower
  208. make \
  209. DESTDIR="$pkgdir" \
  210. sbindir='/usr/bin' \
  211. libdir='/usr/lib' \
  212. mandir='/usr/share/man' \
  213. docdir='/usr/share/doc/cpupower' \
  214. install install-man
  215. popd
  216. # install startup scripts
  217. install -Dm 644 $pkgname.default "$pkgdir/etc/default/$pkgname"
  218. install -Dm 644 $pkgname.service "$pkgdir/usr/lib/systemd/system/$pkgname.service"
  219. install -Dm 755 $pkgname.systemd "$pkgdir/usr/lib/systemd/scripts/$pkgname"
  220. }
  221. package_x86_energy_perf_policy() {
  222. pkgdesc='Read or write MSR_IA32_ENERGY_PERF_BIAS'
  223. depends=('glibc')
  224. cd linux-${pkgver%_*}/tools/power/x86/x86_energy_perf_policy
  225. install -Dm 755 x86_energy_perf_policy "$pkgdir/usr/bin/x86_energy_perf_policy"
  226. install -Dm 644 x86_energy_perf_policy.8 "$pkgdir/usr/share/man/man8/x86_energy_perf_policy.8"
  227. }
  228. package_usbip() {
  229. pkgdesc='An USB device sharing system over IP network'
  230. depends=('glibc' 'glib2' 'sysfsutils' 'systemd-libs')
  231. pushd linux-${pkgver%_*}/tools/usb/usbip
  232. make install DESTDIR="$pkgdir"
  233. popd
  234. # module loading
  235. install -Dm 644 /dev/null "$pkgdir/usr/lib/modules-load.d/$pkgname.conf"
  236. printf 'usbip-core\nusbip-host\n' > "$pkgdir/usr/lib/modules-load.d/$pkgname.conf"
  237. # systemd
  238. install -Dm 644 usbipd.service "$pkgdir/usr/lib/systemd/system/usbipd.service"
  239. }
  240. package_tmon() {
  241. pkgdesc='Monitoring and Testing Tool for GNU/Linux-libre kernel thermal subsystem'
  242. depends=('glibc' 'ncurses')
  243. cd linux-${pkgver%_*}/tools/thermal/tmon
  244. make install INSTALL_ROOT="$pkgdir"
  245. }
  246. package_cgroup_event_listener() {
  247. pkgdesc='Simple listener of cgroup events'
  248. depends=('glibc')
  249. cd linux-${pkgver%_*}/tools/cgroup
  250. install -Dm755 cgroup_event_listener "$pkgdir/usr/bin/cgroup_event_listener"
  251. }
  252. package_turbostat() {
  253. pkgdesc='Report processor frequency and idle statistics'
  254. depends=('glibc')
  255. cd linux-${pkgver%_*}/tools/power/x86/turbostat
  256. make install DESTDIR="$pkgdir"
  257. }
  258. package_gpio-utils() {
  259. pkgdesc='GPIO character device utilities'
  260. depends=('glibc')
  261. cd linux-${pkgver%_*}/tools/gpio
  262. make install DESTDIR="$pkgdir"
  263. }
  264. package_iio-utils() {
  265. pkgdesc='Industrial IO utilities'
  266. depends=('glibc')
  267. cd linux-${pkgver%_*}/tools/iio
  268. make install DESTDIR="$pkgdir"
  269. }
  270. # vim:set ts=2 sw=2 et: