summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: b4de0060527d097e705053f1305dc4faf6f678a1 (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
# Maintainer: Aaron Coach <aur@awc.id.au>

pkgname=yamtrack
pkgver=0.26.3
pkgrel=1
pkgdesc="Self-hosted media tracker"
arch=('any')
url="https://github.com/FuzzyGrim/Yamtrack"
license=('AGPL3')
depends=('python' 'valkey')
makedepends=('python-pip' 'uv')
backup=('etc/yamtrack/yamtrack.env')
install="${pkgname}.install"
provides=("yamtrack=${pkgver}")
conflicts=("yamtrack-git")
optdepends=("nginx: reverse proxy" "caddy: reverse proxy" "traefik: reverse proxy")

source=(
  "${pkgname}-${pkgver}.tar.gz::https://github.com/FuzzyGrim/Yamtrack/archive/refs/tags/v${pkgver}.tar.gz"
  "0001-arch-state-dir-and-whitenoise.patch"
  "yamtrack.sysusers"
  "yamtrack.env"
  "yamtrack.version.env"
  "yamtrack.target"
  "yamtrack-init.service"
  "yamtrack-web.service"
  "yamtrack-celery.service"
  "yamtrack-celery-beat.service"
  "yamtrack-manage"
)

sha256sums=('ad567e3c61adcb00cc29e131dfe1c28cb7abe29a2d9b359a21e595e0a38f51d9'
            '46c31cdc79e0623f2e94b251a96e0d8c6b3a9cec6e8a29a685a553d57a5bbb15'
            'b802edf0f341b2ec008eedb79b1f4b4c7cec4b89428765a20fa6dd5db30e3a48'
            '1caecf3ac52fd3c0a9c2ada54d4130aba03ff454185c6b10f04f4cf514c4a3b7'
            'cf0f5da164ef6effe5f68db54ac6a2511dd48856106d34d5235ab04a13081ae3'
            '7ad310f36c7d57f76ca3a372221965542c6d42e8746c4aba49716485d5c35f64'
            '1125e574124897c9c6bf982a5b27202d061efd9b3cac3629dded6c94c57234c3'
            '04492abfefd01255f04a69283c0b7fc0aeb74acf9da6800fa03911b40993a279'
            'a2f327de85fb056a32a7127e55433ca3c2a589c4692d288b73250bf3ea940845'
            '35b59935a9d64f221a4f09691b31edb4a1167d2ea6c2e1b419730ef64c48f57e'
            '5d7a844bee1a56c367d115c905b2668283c513029a3894ac761e39de7ba2b24d')

prepare() {
  cd "Yamtrack-${pkgver}"

  # Patch to support YAMTRACK_DATA_DIR for writable state and whitenoise for static files.
  patch -p1 -i ../0001-arch-state-dir-and-whitenoise.patch
}

build() {
  cd "Yamtrack-${pkgver}"

  python -m venv venv
  venv/bin/python -m pip install --upgrade pip setuptools wheel

  # Generate requirements.txt from uv.lock to keep dependencies pinned perfectly
  uv export --frozen --no-dev --format requirements-txt -o requirements.txt

  # Install pinned runtime deps into the venv.
  venv/bin/pip install --no-cache-dir -r requirements.txt

  # Add whitenoise for serving static files.
  venv/bin/pip install --no-cache-dir "whitenoise==6.11.0"
}

package() {
  cd "Yamtrack-${pkgver}"

  install -d "${pkgdir}/usr/share/yamtrack"
  cp -a src "${pkgdir}/usr/share/yamtrack/src"

  install -d "${pkgdir}/usr/lib/yamtrack"
  cp -a venv "${pkgdir}/usr/lib/yamtrack/venv"

  # Remove the Unicode "Pi-thon" alias which causes a bsdtar error
  rm -f "${pkgdir}/usr/lib/yamtrack/venv/bin/𝜋thon"

  install -d "${pkgdir}/usr/lib/sysusers.d"
  install -m 0644 "${srcdir}/yamtrack.sysusers" "${pkgdir}/usr/lib/sysusers.d/yamtrack.conf"

  install -d "${pkgdir}/etc/yamtrack"
  install -m 0644 "${srcdir}/yamtrack.env" "${pkgdir}/etc/yamtrack/yamtrack.env"

  sed "s|@PKGVER@|${pkgver}-${pkgrel}|" \
    "${srcdir}/yamtrack.version.env" >"${srcdir}/yamtrack.version.env.built"

  install -Dm0644 "${srcdir}/yamtrack.version.env.built" \
    "${pkgdir}/usr/lib/yamtrack/version.env"

  install -d "${pkgdir}/usr/lib/systemd/system"
  install -m 0644 "${srcdir}/yamtrack.target" "${pkgdir}/usr/lib/systemd/system/yamtrack.target"
  install -m 0644 "${srcdir}/yamtrack-init.service" "${pkgdir}/usr/lib/systemd/system/yamtrack-init.service"
  install -m 0644 "${srcdir}/yamtrack-web.service" "${pkgdir}/usr/lib/systemd/system/yamtrack-web.service"
  install -m 0644 "${srcdir}/yamtrack-celery.service" "${pkgdir}/usr/lib/systemd/system/yamtrack-celery.service"
  install -m 0644 "${srcdir}/yamtrack-celery-beat.service" "${pkgdir}/usr/lib/systemd/system/yamtrack-celery-beat.service"

  install -Dm0755 "${srcdir}/yamtrack-manage" "${pkgdir}/usr/bin/yamtrack-manage"

  install -Dm 0644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}