summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: 0825e15ac5f3e4f0ccce263bfc0ab41837c28d26 (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
# Maintainer: Merlin Glander <merlin@merlin-glander.de>

pkgname=pidscope-git
_pkgname=pidscope
pkgver=26.06.0.rc1.r0.g992a12c
pkgrel=2
pkgdesc='GNU Octave graphical blackbox flight log analyzer for FPV drone PID tuning'
arch=('x86_64' 'aarch64')
url='https://github.com/dzikus/PIDscope'
license=('GPL-3.0-or-later')
depends=(
  'gnu-free-fonts'
  'octave'
  'octave-control'
  'octave-image'
  'octave-signal'
  'octave-statistics'
)
makedepends=('git')
optdepends=(
  'xdg-utils: open support/project links from the UI'
)
provides=('pidscope')
conflicts=('pidscope'
           'pidscope-bin')
source=(
  'pidscope::git+https://github.com/dzikus/PIDscope.git#branch=pidscope'
  'betaflight-blackbox-tools::git+https://github.com/betaflight/blackbox-tools.git'
  'inav-blackbox-tools::git+https://github.com/iNavFlight/blackbox-tools.git'
)
sha256sums=('SKIP' 'SKIP' 'SKIP')

pkgver() {
  cd "${srcdir}/pidscope"

  git describe --tags --long --abbrev=7 2>/dev/null \
    | sed -E 's/^v//;s/-([0-9]+)-g/.r\1.g/;s/-/./g'
}

build() {
  make -C "${srcdir}/betaflight-blackbox-tools" obj/blackbox_decode
  make -C "${srcdir}/inav-blackbox-tools" obj/blackbox_decode
}

package() {
  cd "${srcdir}/pidscope"

  install -dm755 "${pkgdir}/usr/share/pidscope"
  install -dm755 "${pkgdir}/usr/bin"

  # Provide FreeSans font paths expected by PIDscope/Octave.
  # The actual font files are provided by the gnu-free-fonts dependency.
  install -dm755 "${pkgdir}/usr/share/fonts/opentype/freefont"

  local font
  for font in \
    FreeSans.otf \
    FreeSansBold.otf \
    FreeSansOblique.otf \
    FreeSansBoldOblique.otf
  do
    ln -s "/usr/share/fonts/gnu-free/${font}" \
      "${pkgdir}/usr/share/fonts/opentype/freefont/${font}"
  done

  install -m644 PIDscope.m VERSION "${pkgdir}/usr/share/pidscope/"
  cp -a src "${pkgdir}/usr/share/pidscope/"

  find "${pkgdir}/usr/share/pidscope/src" -type d -exec chmod 755 {} +
  find "${pkgdir}/usr/share/pidscope/src" -type f -exec chmod 644 {} +

  install -m755 \
    "${srcdir}/betaflight-blackbox-tools/obj/blackbox_decode" \
    "${pkgdir}/usr/share/pidscope/blackbox_decode"

  install -m755 \
    "${srcdir}/inav-blackbox-tools/obj/blackbox_decode" \
    "${pkgdir}/usr/share/pidscope/blackbox_decode_INAV"

  cat > "${pkgdir}/usr/bin/pidscope" <<'EOF'
#!/bin/sh
exec octave --gui --persist --eval "cd('/usr/share/pidscope'); PIDscope"
EOF
  chmod 755 "${pkgdir}/usr/bin/pidscope"

  install -Dm644 LICENSE \
    "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"

  install -Dm644 README.md \
    "${pkgdir}/usr/share/doc/${pkgname}/README.md"

  install -Dm644 packaging/pidscope.desktop \
    "${pkgdir}/usr/share/applications/com.pidscope.PIDscope.desktop"

  install -Dm644 packaging/com.pidscope.PIDscope.appdata.xml \
    "${pkgdir}/usr/share/metainfo/com.pidscope.PIDscope.appdata.xml"

  install -Dm644 packaging/com.pidscope.PIDscope.mime.xml \
    "${pkgdir}/usr/share/mime/packages/com.pidscope.PIDscope.mime.xml"

  install -Dm644 packaging/com.pidscope.PIDscope-64.png \
    "${pkgdir}/usr/share/icons/hicolor/64x64/apps/com.pidscope.PIDscope.png"

  install -Dm644 packaging/com.pidscope.PIDscope-128.png \
    "${pkgdir}/usr/share/icons/hicolor/128x128/apps/com.pidscope.PIDscope.png"
}