jasper-gtk-theme-fixed-git

CLEAN
maintainer gaougalos 0 votes scanned 2026-10-30 00:29:30.650963
View on AUR

Triggered rules

Clean AI review downgraded a static finding llm_review

The static rules flagged this LOW, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it CLEAN (confidence 95%): The package builds a GTK theme from source using git repositories, applies local fixes, and installs theme files; no remote code execution, malicious payloads, or untrusted prebuilt binaries are involved.

1 higher static finding superseded - not the current verdict (shown for transparency)
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: gaou-piou <i dot am dot piou at gmail dot com>
2# Contributor: Mark Wagie <mark dot wagie at proton dot me>
3pkgname=jasper-gtk-theme-fixed-git
4_name=jasper-gtk-theme
5_fixes=jasper
6pkgver=r121.gec9f301.f7.0c09bae
7pkgrel=1
8pkgdesc="Jasper GTK theme, Dracula colors, with GTK 3/4 geometry fixes (window buttons, headerbars, Nautilus, Electron/Chromium titlebars)"
9arch=('any')
10url='https://github.com/vinceliuice/Jasper-gtk-theme'
11license=('GPL-3.0-or-later')
12depends=('gnome-themes-extra')
13makedepends=('git' 'sassc')
14optdepends=('gtk-engine-murrine: GTK 2 support')
15provides=("${_name}")
16conflicts=("${_name}" "${_name}-git" 'nephrite-gtk-theme')
17options=('!strip' '!debug')
18install=jasper-gtk-theme-fixed.install
19source=("${_name}::git+https://github.com/vinceliuice/Jasper-gtk-theme.git")
20sha256sums=('SKIP')
21# The fixes follow the main branch of github.com/gaou-piou/gtk-theme-fixes, so a change there needs
22# no package update; pkgver() records which commit a build took. local_build=true: they come from a
23# gtk-theme-fixes/ working tree in a parent directory of this PKGBUILD instead (uncommitted changes
24# included).
25if [[ ${local_build:-} != true ]]; then
26 source+=('gtk-theme-fixes::git+https://github.com/gaou-piou/gtk-theme-fixes.git')
27 sha256sums+=('SKIP')
28fi
29
30_local_fixes() {
31 local d=$startdir
32 until [[ -d $d/gtk-theme-fixes/generic || $d == / ]]; do d=$(dirname "$d"); done
33 if [[ ! -d $d/gtk-theme-fixes/generic ]]; then
34 error "local_build: no gtk-theme-fixes/ in a parent directory of $startdir"
35 return 1
36 fi
37 printf '%s\n' "$d/gtk-theme-fixes"
38}
39
40# <theme version>.f<count>.<commit>: the commits of gtk-theme-fixes that change the files this
41# package uses (generic/ and its own directory), so other themes' fixes leave the version alone
42pkgver() {
43 local theme="$srcdir/${_name}" fixes="$srcdir/gtk-theme-fixes" v
44 if [[ ${local_build:-} == true ]]; then
45 fixes=$(_local_fixes) || return 1
46 fi
47 if v=$(git -C "$theme" describe --long --tags --abbrev=7 2>/dev/null); then
48 v=$(sed 's/\([^-]*-g\)/r\1/;s/-/./g' <<< "$v")
49 else
50 v=r$(git -C "$theme" rev-list --count HEAD).g$(git -C "$theme" rev-parse --short=7 HEAD)
51 fi
52 printf '%s.f%s.%s' "$v" "$(git -C "$fixes" rev-list --count HEAD -- generic "${_fixes}")" \
53 "$(git -C "$fixes" log -1 --format=%h --abbrev=7 HEAD -- generic "${_fixes}")"
54}
55
56prepare() {
57 local fx="$srcdir/gtk-theme-fixes"
58 if [[ ${local_build:-} == true ]]; then
59 local d
60 d=$(_local_fixes) || return 1
61 warning "local_build: fixes from $d (uncommitted changes included)"
62 rm -rf "$fx" && mkdir "$fx"
63 cp -r "$d/generic" "$d/${_fixes}" "$fx/"
64 fi
65 cd "${_name}"
66
67 local sass=src/sass
68 cp "$fx/generic/fixes-3.0.scss" "$sass/_fixes-3.0.scss"
69 cp "$fx/generic/fixes-4.0.scss" "$sass/_fixes-4.0.scss"
70 cp "$fx/${_fixes}/local-fixes-4.0.scss" "$sass/_local-fixes-4.0.scss"
71 cp "$fx/${_fixes}/local-fixes-3.0.scss" "$sass/_local-fixes-3.0.scss"
72 cp "$fx/${_fixes}/fixes-variables.scss" "$sass/_fixes-variables.scss"
73 cp "$fx/${_fixes}/fixes-cinnamon.scss" "$sass/_fixes-cinnamon.scss"
74 cp "$fx/${_fixes}/local-fixes-gnome-shell.scss" "$sass/_local-fixes-gnome-shell.scss"
75
76 # the fixes are imported near the end of each entry file, after the theme's own partials, so
77 # they see its variables
78 local f
79 for f in src/main/gtk-3.0/*.scss; do
80 sed -i "$(awk 'END { print NR - 5 }' "$f") a @import '../../sass/fixes-variables';" "$f"
81 sed -i "$(awk 'END { print NR - 1 }' "$f") a @import '../../sass/fixes-3.0';" "$f"
82 sed -i "$(awk 'END { print NR - 1 }' "$f") a @import '../../sass/local-fixes-3.0';" "$f"
83 done
84 for f in src/main/gtk-4.0/*.scss; do
85 sed -i "$(awk 'END { print NR - 5 }' "$f") a @import '../../sass/fixes-variables';" "$f"
86 sed -i "$(awk 'END { print NR - 1 }' "$f") a @import '../../sass/fixes-4.0';" "$f"
87 sed -i "$(awk 'END { print NR - 1 }' "$f") a @import '../../sass/local-fixes-4.0';" "$f"
88 done
89 for f in src/main/cinnamon/*.scss; do
90 sed -i "$(awk 'END { print NR - 1 }' "$f") a @import '../../sass/fixes-cinnamon';" "$f"
91 sed -i "$(awk 'END { print NR - 3 }' "$f") a @import '../../sass/fixes-variables';" "$f"
92 done
93 # GNOME Shell fixes (Dash to Panel hover jump etc.), at the end of each shell entry file
94 for f in src/main/gnome-shell/*.scss; do
95 printf '\n%s\n' "@import '../../sass/local-fixes-gnome-shell';" >> "$f"
96 done
97}
98
99package() {
100 cd "${_name}"
101 install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
102 install -d "${pkgdir}/usr/share/themes"
103 # every accent, light and dark, Dracula colors
104 # TERM: install.sh draws a spinner with tput, which fails without one (clean chroots)
105 TERM=${TERM:-dumb} ./install.sh -t all -c light dark --tweaks dracula -d "${pkgdir}/usr/share/themes"
106}
107

Scan history

Scanned at (UTC)SeverityRules
2026-10-30 00:29:30 Clean 2
2026-10-29 21:53:30 Low 1

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion