blob: 259a3425255a8f89b2ece56a41a67595b6d029fa (
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
|
# Maintainer:
# Contributor: mcol <mcol@posteo.net>
# Contributor: roger <roger@rogerpc.com.ar>
## links
# http://www.qtile.org
# https://github.com/qtile/qtile
## options
: ${_wlrver=0.17}
_pkgname="qtile"
pkgname="$_pkgname-git"
pkgver=0.28.1.r8.g391a046
pkgrel=1
pkgdesc="A full-featured, pure-Python tiling window manager"
url="https://github.com/qtile/qtile"
license=('MIT')
arch=('x86_64')
depends=(
"wlroots${_wlrver:?}"
gdk-pixbuf2
libnotify
librsvg
pango
python
python-cairocffi
python-cffi
python-gobject
python-xcffib
)
makedepends=(
git
libpulse
python-build
python-installer
python-pywlroots
python-setuptools-scm
python-wheel
)
checkdepends=(
graphviz
gtk3
imagemagick
lm_sensors
procps-ng
python-bowler
python-dbus-next
python-gobject
python-isort
python-libcst
python-pytest
python-xdg
xorg-server-xephyr
xorg-server-xvfb
xorg-xrandr
xorg-xwayland
)
optdepends=(
'alsa-utils: for volume widget'
'canto-daemon: for canto widget'
'cmus: for cmus widget'
'jupyter_console: for interaction with qtile via Jupyter'
'khal: for khal_calendar widget'
'libinput: for Wayland backend'
'libpulse: for pulse_volume and pulseaudio_ffi widget'
'lm_sensors: for sensors widget'
'moc: for moc widget'
'python-bowler: for migrating configuration files'
'python-dbus-next: for utils, notifications and several widgets'
'python-iwlib: for wlan widget'
'python-keyring: for imapwidget widget'
'python-libcst: for migrations'
'python-mpd2: mpd2widget widget'
'python-psutil: graph, net and memory widget'
'python-pywayland: for Wayland backend'
'python-pywlroots: for Wayland backend'
'python-setproctitle: change process name to qtile'
'python-xdg: launchbar widget'
'python-xkbcommon: for Wayland backend'
'xorg-xwayland: for XWayland support'
)
provides=("$_pkgname=$pkgver")
conflicts=("$_pkgname")
install="$_pkgname.install"
_pkgsrc="$_pkgname"
source=("$_pkgsrc"::"git+$url.git")
sha256sums=('SKIP')
pkgver() {
cd "$_pkgsrc"
git describe --tags --long --abbrev=7 | sed 's/\([^-]*-g\)/r\1/;s/-/./g;s/^v//'
}
build() {
export PKG_CONFIG_PATH="/usr/lib/wlroots${_wlrver:?}/pkgconfig:$PKG_CONFIG_PATH"
export CFLAGS+=" $(pkg-config --cflags wlroots)"
export LDFLAGS+=" $(pkg-config --libs wlroots)"
cd "$_pkgsrc"
python -m build --no-isolation --wheel
local _site_packages=$(python -c "import site; print(site.getsitepackages()[0])")
export LC_TYPE=en_US.UTF-8
export PYTHONPATH="test_dir/$_site_packages:$PYTHONPATH"
python -m installer --destdir=test_dir dist/*.whl
./scripts/ffibuild -v
}
check() {
local pytest_options=(
-vv
--backend x11
--backend wayland
# disable failing tests: https://github.com/qtile/qtile/issues/4762
--deselect "test/backend/x11/test_window.py::test_urgent_hook_fire[wayland-2]"
--deselect "test/widgets/test_clock.py::test_clock_datetime_timezone"
--deselect "test/widgets/test_clock.py::test_clock_pytz_timezone"
--deselect "test/widgets/test_clock.py::test_clock_dateutil_timezone"
--deselect "test/widgets/test_clock.py::test_clock_change_timezones"
)
cd "$_pkgsrc"
local _site_packages=$(python -c "import site; print(site.getsitepackages()[0])")
export LC_TYPE=en_US.UTF-8
export PYTHONPATH="test_dir/$_site_packages:$PYTHONPATH"
pytest "${pytest_options[@]}" || true
}
package() {
cd "$_pkgsrc"
cp -a --reflink=auto test_dir/* "$pkgdir/"
install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname/"
install -Dm644 CHANGELOG README.rst libqtile/resources/default_config.py \
-t "${pkgdir}/usr/share/doc/$pkgname/"
install -Dm644 resources/qtile.desktop -t "$pkgdir/usr/share/xsessions/"
install -Dm644 resources/qtile-wayland.desktop -t "$pkgdir/usr/share/wayland-sessions/"
}
|