summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 54cd46dc54cbb85578e284d9675ccfb1b0e0236f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# Maintainer:  dreieck (https://aur.archlinux.org/account/dreieck)
# Contributor: Eric Engestrom (https://aur.archlinux.org/account/1ace)

_pkgname=igt-gpu-tools
pkgname="$_pkgname-git"
pkgver=1.29+289.r14342.20241114.618594fb0
pkgrel=1
pkgdesc="Collection of tools for development and testing of the DRM drivers."
url="https://gitlab.freedesktop.org/drm/igt-gpu-tools"
arch=(
  "x86_64"
  'i686'
  "aarch64"
)
license=("LicenseRef-several_in_onefile")
makedepends=(
  'bison'
  'flex'
  git
  meson
  ninja
  peg # For executable `leg`, needed to build with `-Doverlay=enabled`.
  'python>=3'
  'python-docutils'
  'python-sphinx'
  'rst2pdf'
  valgrind
)
depends=(
  alsa-lib
  bash
  cairo
  glib2
  glibc
  gsl
  gtk-doc
  json-c
  kmod
  libdrm
  libelf
  liboping
  libpciaccess
  libunwind
  libx11
  libxext
  libxmlrpc
  libxrandr
  libxv
  openblas
  perl
  pixman
  procps-ng
  python-docutils
  systemd-libs
  # valgrind
  zlib
)
optdepends=(
  "python>=3:              To use /usr/bin/code_cov_gather_on_test and /usr/bin/intel-gfx-fw-info"
  "python-dissect.cstruct: To use /usr/bin/intel-gfx-fw-info"
)
provides=(
  "${_pkgname}=${pkgver}"
  "gputop=${pkgver}"
  "lsgpu=${pkgver}"
  "dpcd_reg=${pkgver}"
)
conflicts=(
  "${_pkgname}"
  gputop
  lsgpu
  dpcd_reg
)

source=("${_pkgname}::git+${url}.git")
sha256sums=('SKIP')

prepare() {
  cd "${srcdir}/${_pkgname}"

  git log > git.log

  cd "${srcdir}"

  MESON_OPTS=(
    "-Doverlay=enabled"
    "-Doverlay_backends=['x','xv']"
    "-Dchamelium=enabled"
    "-Dvalgrind=enabled"
    "-Dman=enabled"
    "-Dtestplan=enabled"
    "-Dsphinx=enabled"
    "-Ddocs=disabled" # If enabled, `meson install` fails with `ERROR: Error in gtkdoc helper script:`.
    "-Dtests=enabled"
    "-Dxe_driver=enabled"
    "-Dlibdrm_drivers=['intel','nouveau','amdgpu']"
    "-Dlibunwind=enabled"
    "-Drunner=enabled"
    "-Doping=enabled"
  )
  meson setup --prefix /usr --libexecdir lib --sbindir bin --buildtype plain --auto-features enabled --wrap-mode nodownload "${_pkgname}" build "${MESON_OPTS[@]}"
}

pkgver () {
  cd "${srcdir}/${_pkgname}"
  _ver="$(git describe  --tags | sed 's|^v||' | sed 's|-[^-]*$||' | tr '-' '+')"
  _rev="$(git rev-list --count HEAD)"
  _date="$(git log -1 --date=format:"%Y%m%d" --format="%ad")"
  _hash="$(git rev-parse --short HEAD)"

  if [ -z "${_ver}" ]; then
    error "Version could not be determined."
    return 1
  else
    printf '%s' "${_ver}.r${_rev}.${_date}.${_hash}"
  fi
}

build() {
  cd "${srcdir}"
  ninja -C build
}

# Some tests time out after 30s and are killed by the test running system, making `check()` failing. So we disable them here.
#check() {
#  cd "${srcdir}"
#  ninja -C build test
#}

package() {
  cd "${srcdir}"
  DESTDIR="${pkgdir}" ninja -C build install
  install -Dvm644 -t "${pkgdir}/usr/share/doc/${_pkgname}/docs/testplan/pdf" "build/docs/testplan/pdf/tests.pdf"

  cd "${srcdir}/${_pkgname}"
  install -Dvm644 -t "${pkgdir}/usr/share/doc/${_pkgname}" git.log CONTRIBUTING.md MAINTAINERS NEWS README.md
  install -Dvm644 -t "${pkgdir}/usr/share/licenses/${pkgname}" "COPYING"
  ln -svr "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" "${pkgdir}/usr/share/doc/${_pkgname}/COPYING"
}