fluent-gtk-theme-fixed-git
CLEAN
maintainer gaougalos
0 votes
scanned 2026-10-30 00:29:30.650963
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 official project sources with optional local fixes, poses no security risk as it only installs theme data and documentation.
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 tutanota dot com>
3
pkgname=fluent-gtk-theme-fixed-git
4
_name=fluent-gtk-theme
5
_fixes=fluent
6
pkgver=2025.04.17.r44.g7a49a46.f7.0c09bae
7
pkgrel=1
8
pkgdesc="Fluent design GTK theme, with GTK 3/4 geometry fixes (window buttons, headerbars, Nautilus, Electron/Chromium titlebars)"
9
arch=('any')
10
url='https://github.com/vinceliuice/Fluent-gtk-theme'
11
license=('GPL-3.0-or-later')
12
depends=('gnome-themes-extra' 'gtk3')
13
makedepends=('git' 'gnome-shell' 'sassc' 'setconf')
14
optdepends=('gtk-engine-murrine: GTK 2 support'
15
'fluent-icon-theme: Matching icon theme'
16
'fluent-cursor-theme: Matching cursor theme')
17
provides=("${_name}")
18
conflicts=("${_name}" "${_name}-git")
19
options=('!strip' '!debug')
20
install=fluent-gtk-theme-fixed.install
21
source=("${_name}::git+https://github.com/vinceliuice/Fluent-gtk-theme.git"
22
"wallpaper::git+https://github.com/vinceliuice/Fluent-gtk-theme.git#branch=Wallpaper")
23
sha256sums=('SKIP'
24
'SKIP')
25
# The fixes follow the main branch of github.com/gaou-piou/gtk-theme-fixes, so a change there needs
26
# no package update; pkgver() records which commit a build took. local_build=true: they come from a
27
# gtk-theme-fixes/ working tree in a parent directory of this PKGBUILD instead (uncommitted changes
28
# included).
29
if [[ ${local_build:-} != true ]]; then
30
source+=('gtk-theme-fixes::git+https://github.com/gaou-piou/gtk-theme-fixes.git')
31
sha256sums+=('SKIP')
32
fi
33
34
_local_fixes() {
35
local d=$startdir
36
until [[ -d $d/gtk-theme-fixes/generic || $d == / ]]; do d=$(dirname "$d"); done
37
if [[ ! -d $d/gtk-theme-fixes/generic ]]; then
38
error "local_build: no gtk-theme-fixes/ in a parent directory of $startdir"
39
return 1
40
fi
41
printf '%s\n' "$d/gtk-theme-fixes"
42
}
43
44
# <theme version>.f<count>.<commit>: the commits of gtk-theme-fixes that change the files this
45
# package uses (generic/ and its own directory), so other themes' fixes leave the version alone
46
pkgver() {
47
local theme="$srcdir/${_name}" fixes="$srcdir/gtk-theme-fixes" v
48
if [[ ${local_build:-} == true ]]; then
49
fixes=$(_local_fixes) || return 1
50
fi
51
if v=$(git -C "$theme" describe --long --tags --abbrev=7 2>/dev/null); then
52
v=$(sed 's/\([^-]*-g\)/r\1/;s/-/./g' <<< "$v")
53
else
54
v=r$(git -C "$theme" rev-list --count HEAD).g$(git -C "$theme" rev-parse --short=7 HEAD)
55
fi
56
printf '%s.f%s.%s' "$v" "$(git -C "$fixes" rev-list --count HEAD -- generic "${_fixes}")" \
57
"$(git -C "$fixes" log -1 --format=%h --abbrev=7 HEAD -- generic "${_fixes}")"
58
}
59
60
prepare() {
61
local fx="$srcdir/gtk-theme-fixes"
62
if [[ ${local_build:-} == true ]]; then
63
local d
64
d=$(_local_fixes) || return 1
65
warning "local_build: fixes from $d (uncommitted changes included)"
66
rm -rf "$fx" && mkdir "$fx"
67
cp -r "$d/generic" "$d/${_fixes}" "$fx/"
68
fi
69
cd "${_name}"
70
71
local sass=src/_sass
72
cp "$fx/generic/fixes-3.0.scss" "$sass/_fixes-3.0.scss"
73
cp "$fx/generic/fixes-4.0.scss" "$sass/_fixes-4.0.scss"
74
cp "$fx/${_fixes}/fixes-variables.scss" "$sass/_fixes-variables.scss"
75
cp "$fx/${_fixes}/local-fixes-4.0.scss" "$sass/_local-fixes-4.0.scss"
76
77
# the fixes are imported near the end of each GTK entry file, after the theme's own partials,
78
# so they see its variables
79
local f
80
for f in src/gtk/3.0/*.scss; do
81
sed -i "$(awk 'END { print NR - 5 }' "$f") a @import '../../_sass/fixes-variables';" "$f"
82
sed -i "$(awk 'END { print NR - 1 }' "$f") a @import '../../_sass/fixes-3.0';" "$f"
83
done
84
for f in src/gtk/4.0/*.scss; do
85
sed -i "$(awk 'END { print NR - 6 }' "$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
90
cd "$srcdir/wallpaper"
91
setconf install-gnome-backgrounds.sh BACKGROUND_DIR "$pkgdir/usr/share/backgrounds"
92
setconf install-gnome-backgrounds.sh PROPERTIES_DIR "$pkgdir/usr/share/gnome-background-properties"
93
setconf install-wallpapers.sh WALLPAPER_DIR "$pkgdir/usr/share/backgrounds"
94
}
95
96
package() {
97
cd "${_name}"
98
install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
99
install -d "${pkgdir}/usr/share/themes"
100
# every accent, standard size, solid, round, floating panel, no border
101
# TERM: install.sh draws a spinner with tput, which fails without one (clean chroots)
102
TERM=${TERM:-dumb} ./install.sh -t all -i default -s standard --tweaks solid round float noborder \
103
-d "${pkgdir}/usr/share/themes"
104
rm -rf "${pkgdir}"/usr/share/themes/{Fluent,Fluent-*}/gnome-shell/extensions
105
106
install -d "${pkgdir}/usr/share/doc/${_name}"
107
cp -r src/firefox "${pkgdir}/usr/share/doc/${_name}"
108
109
cd "$srcdir/wallpaper"
110
install -d "${pkgdir}"/usr/share/{backgrounds,gnome-background-properties}
111
./install-gnome-backgrounds.sh
112
./install-wallpapers.sh
113
}
114
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-10-30 00:29:30 | Clean | 2 |
| 2026-10-29 21:53:30 | Low | 1 |