moarchy-fiveletters
LOW
maintainer simonschubert
0 votes
scanned 2026-09-13 19:15:06.142757
Why flagged
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
Triggered rules
Low
Few votes, recently uploaded
zero_votes_recent
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
PKGBUILD
1
# Maintainer: Simon Schubert <simon@librem.one>
2
pkgname=moarchy-fiveletters
3
pkgver=0.1.0
4
pkgrel=1
5
pkgdesc="A five-letter word a day for a Linux phone, with its own keyboard"
6
arch=('any')
7
url="https://github.com/SimonSchubert/moarchy-apps"
8
license=('MIT')
9
# Pure Python, so arch=any. The GUI stack is all runtime, nothing is compiled.
10
# python-cairo is not optional here the way it nearly is elsewhere: the board is
11
# one drawing area, and all thirty tiles -- the letters on them, the marks in
12
# their corners and the flip that turns them over -- are drawn from a Python
13
# draw function. The keyboard is real buttons and would survive; the board would
14
# not, and the board is the game.
15
depends=('python' 'python-gobject' 'gtk4' 'libadwaita' 'python-cairo')
16
source=("$url/releases/download/fiveletters-v$pkgver/$pkgname-$pkgver.tar.gz")
17
sha256sums=('8056449deb7d2b13eac6bf1291cfe486e70d3a8b02362e0a9c49d3fe8e793225')
18
19
# The source tarball is assembled by packaging/release.sh from two subtrees of
20
# one tag -- apps/solitaire and shared -- so it holds this app and the shared
21
# code it uses and nothing else. That is what lets a monorepo keep per-app
22
# versions: `git archive <tag>:<subdir>` means one repo does not mean one
23
# version number.
24
#
25
# Deliberately a versioned package rather than a -git one. mobileomarchy pins
26
# each package by a commit; for a VCS package that pin governs the packaging and
27
# says nothing about the code makepkg then clones at HEAD, so "pinned" would
28
# read as reproducible without being it. A tarball with a checksum makes the pin
29
# name the exact code, and gives pacman a version it can compare for upgrades.
30
#
31
# The source is a release asset built with `git archive`, not GitHub's
32
# auto-generated archive: those are produced on demand, and a change to the
33
# compression GitHub uses has broken every checksum pinned against them before.
34
35
check() {
36
cd "$srcdir/$pkgname-$pkgver"
37
# The rules, the word lists and the file. All three are deliberately GTK-free,
38
# so they run in a build chroot -- which is where the word lists are checked
39
# as word lists: every answer five letters, every answer a legal guess, and no
40
# blank lines. The widget tests skip themselves without a display, which a
41
# chroot does not have. scripts/check.sh runs those.
42
PYTHONPATH=. python3 -m unittest discover -s tests
43
}
44
45
package() {
46
cd "$srcdir/$pkgname-$pkgver"
47
48
# Deliberately NOT site-packages. That path is Python-version-specific
49
# (/usr/lib/python3.13/site-packages), and this is an arch=any package: the
50
# version that built it would be baked in, so a Python minor bump would break
51
# every installed copy until rebuilt. A private dir on sys.path is immune.
52
install -Dm644 moarchy_fiveletters/*.py -t "$pkgdir/usr/lib/$pkgname/moarchy_fiveletters/"
53
54
# The shared code is vendored into this package rather than being a package of
55
# its own. The store reports what an app costs in packages and megabytes onto
56
# a stock image, and a second package for two hundred lines of palette
57
# arithmetic is a cost with nothing behind it. One source copy in the repo,
58
# one self-contained package here, no runtime coupling between apps.
59
install -Dm644 moarchy_ui/*.py -t "$pkgdir/usr/lib/$pkgname/moarchy_ui/"
60
61
# The word lists go in /usr/share rather than next to the module, because they
62
# are data: they are the same bytes on every architecture and every Python,
63
# and `words.py` looks for them in a checkout first so that running from
64
# source uses the tree's own copy rather than whichever one is installed.
65
install -Dm644 data/answers.txt data/guesses.txt data/NOTICE.md \
66
-t "$pkgdir/usr/share/$pkgname/"
67
68
install -Dm755 launcher "$pkgdir/usr/bin/moarchy-fiveletters"
69
70
install -Dm644 data/org.moarchy.FiveLetters.desktop \
71
"$pkgdir/usr/share/applications/org.moarchy.FiveLetters.desktop"
72
install -Dm644 data/org.moarchy.FiveLetters.svg \
73
"$pkgdir/usr/share/icons/hicolor/scalable/apps/org.moarchy.FiveLetters.svg"
74
75
install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
76
install -Dm644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
77
}
78
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-13 19:15:06 | Low | 1 |