summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: b5ba3ebb1f447df2581f3f9bdfbf3e5112aad7cb (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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# Maintainer: Alexander Epaneshnikov <alex19ep@archlinux.org>
# Maintainer: schan <mail@schan.cc>
# Contributor: Adrian Sampson <adrian@radbox.org>
# Contributor: Johannes Löthberg <demizide@gmail.com>

pkgname=beets-git
pkgver=2.8.0.r111.g4aaf58bac
pkgrel=1
pkgdesc="Flexible music library manager and tagger - git version"
arch=('any')
url="https://beets.io/"
license=('MIT')
depends=(
  python
  python-confuse
  python-jellyfish
  python-lap
  python-mediafile
  python-numpy
  python-packaging
  python-platformdirs
  python-requests
  python-requests-ratelimiter
  python-typing_extensions
  python-unidecode
  python-yaml
)
makedepends=(
  git
  python-build
  python-docutils
  python-installer
  python-poetry-core
  python-poetry-dynamic-versioning
  python-pydata-sphinx-theme
  python-sphinx
  python-wheel
)
checkdepends=(
  bash-completion
  chromaprint
  ffmpeg
  gst-libav
  gst-plugins-bad
  gst-plugins-base
  gst-plugins-good
  gst-plugins-ugly
  gst-python
  imagemagick
  python-beautifulsoup4
  python-dbus
  python-discogs-client
  python-flask
  python-flask-cors
  python-gobject
  python-langdetect
  python-librosa
  python-mpd2
  python-mutagen
  python-numba
  python-pillow
  python-py7zr
  python-pyacoustid
  python-pylast
  python-pytest
  python-pytest-flask
  python-rarfile
  python-reflink
  python-requests-mock
  python-requests-oauthlib
  python-resampy
  python-responses
  python-scipy
  python-soco
  python-titlecase
  python-xdg
)
optdepends=(
  'bash-completion: Bash completion'
  'chromaprint: Chromaprint/Acoustid plugin'
  'ffmpeg: Convert, ReplayGain plugins'
  'gst-plugins-bad: Chromaprint/Acoustid, BPD, ReplayGain plugins'
  'gst-plugins-base: Chromaprint/Acoustid, BPD, ReplayGain plugins'
  'gst-plugins-good: Chromaprint/Acoustid, BPD, ReplayGain plugins'
  'gst-plugins-ugly: Chromaprint/Acoustid, BPD, ReplayGain plugins'
  'gst-libav: Chromaprint/Acoustid, BPD, ReplayGain plugins'
  'gst-python: Chromaprint/Acoustid, BPD, ReplayGain plugins'
  'imagemagick: Thumbnails plugin'
  'python-beautifulsoup4: Lyrics plugin'
  'python-dbus: Metasync plugin'
  'python-discogs-client: Discogs plugin'
  'python-flask: Web plugin'
  'python-flask-cors: Web, AURA plugins'
  'python-gobject: BPD, ReplayGain plugins'
  'python-langdetect: Lyrics plugin'
  'python-librosa: AutoBPM plugin'
  'python-mpd2: MPDStats plugin'
  'python-mutagen: Scrub plugin'
  'python-pillow: AURA, EmbedArt, FetchArt, Thumbnails plugins'
  'python-pyacoustid: Chromaprint/Acoustid plugin'
  'python-pylast: LastGenre, LastImport plugins'
  'python-rarfile: Import plugin (RAR archive support)'
  'python-resampy: AutoBPM plugin'
  'python-requests-oauthlib: Beatport plugin'
  'python-reflink: Reflink options for import plugin'
  'python-scipy: AutoBPM plugin'
  'python-soco: Sonosupdate plugin'
  'python-titlecase: Titlecase plugin'
  'python-xdg: Thumbnails plugin'
)
provides=("beets=$pkgver")
conflicts=('beets')
source=('git+https://github.com/beetbox/beets.git')
md5sums=('SKIP')

pkgver() {
  cd beets
  git describe --long --tags | sed -r 's/^v//;s/([^-]*-g)/r\1/;s/-/./g'
}

build() {
  cd beets
  python -m build --wheel --no-isolation

  # docs building process requires (imports) beets
  # install beets into a temporary directory; virtualenv by hand
  # (easier this way because we need to override $PYTHONPATH directly)
  local site_packages=$(python -c "import site; print(site.getsitepackages()[0])")
  python -m installer --destdir=test-env dist/*.whl

  # Remove sphinx extensions not needed for man pages
  sed -i '/sphinx_toolbox\|sphinx_design\|sphinx_copybutton\|viewcode/d' docs/conf.py

  PYTHONPATH="$PWD/test-env/$site_packages" \
  make -C docs man
}

check() {
  cd beets
  pytest \
    --override-ini="addopts=" \
    --deselect test/plugins/test_bpd.py::BPDReflectionTest::test_cmd_decoders
}

package() {
  cd beets
  python -m installer --destdir="$pkgdir" dist/*.whl
  install -Dm 644 extra/_beet -t "${pkgdir}"/usr/share/zsh/site-functions/
  install -Dm 644 docs/_build/man/beet.1 -t "${pkgdir}"/usr/share/man/man1/
  install -Dm 644 docs/_build/man/beetsconfig.5 -t "${pkgdir}"/usr/share/man/man5/
  install -Dm 644 LICENSE -t "${pkgdir}"/usr/share/licenses/beets/
  rm -rfv "${pkgdir}"/usr/lib/python*/site-packages/test/
}