aseprite
maintainer ImperatorStorm
· 143 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package builds from source hosted on GitHub and Chromium's official repositories, which are legitimate project sources; the non-standard host refers to a tagged release on GitHub, which is normal for AUR packages and poses no significant risk.
Triggered rules
LOW
AI review
llm_review
An AI model (qwen/qwen3-235b-a22b-2507) reviewed this and agrees it is LOW (confidence 95%): The package builds from source hosted on GitHub and Chromium's official repositories, which are legitimate project sources; the non-standard host refers to a tagged release on GitHub, which is normal for AUR packages and poses no significant risk.
1 higher static finding superseded - not the current verdict (shown for transparency)
MEDIUM
source=() URL on a non-standard host
source_untrusted_domain
One or more source=() URLs point to a host outside the trusted allowlist (github.com, gitlab.com, codeberg.org, pypi.org, …).
-
PKGBUILD:48
skia-$_skiaver-icu::git+https://chromium.googlesource.com/chromium/deps/icu.git#commit=a0718d4f121727e30b8d52c7a189ebf5ab52421f
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: Imperator Storm <ImperatorStorm11@protonmail.com>
2
# Maintainer: Eldred Habert <me@eldred.fr>
3
# Contributor: Fredrick Brennan <copypaste@kittens.ph>
4
# Contributor: Andrew Bueide <abueide@protonmail.com>
5
# Contributor: rouhannb <rouhannb@protonmail.com>
6
# Contributor: Wilson E. Alvarez <wilson.e.alvarez1@gmail.com>
7
# Contributor: Benoit Favre <benoit.favre@gmail.com>
8
# Contributor: Alexander Rødseth <rodseth@gmail.com>
9
# Contributor: Kamil Biduś <kamil.bidus@gmail.com>
10
# Contributor: Jomar Milan <jomarm@jomarm.com>
11
12
pkgname=aseprite
13
pkgver=1.3.18.1
14
_skiaver=m124
15
_skiahash=08a5439a6b
16
pkgrel=3
17
pkgdesc='Create animated sprites and pixel art'
18
arch=('x86_64')
19
url="https://www.aseprite.org/"
20
license=('LicenseRef-Aseprite-EULA')
21
depends=(# ~ Aseprite's direct dependencies ~
22
# pixman is not linked to because we use Skia instead
23
# harfbuzz is linked statically because Aseprite expects an older version
24
cmark curl giflib libjpeg-turbo zlib libpng 'tinyxml2>=11.0.0' freetype2
25
libwebp libarchive fmt libglvnd
26
# ~ Skia deps ~
27
# (Skia links dynamically to HarfBuzz, only Aseprite itself doesn't. >_<)
28
expat harfbuzz libgl
29
# Already required by Aseprite: libjpeg-turbo libpng zlib freetype2
30
hicolor-icon-theme # For installing Aseprite's icons
31
# These two are only reported by Namcap, but don't seem to be direct dependencies?
32
fontconfig libxcursor
33
# Required Dependency
34
libxrandr)
35
makedepends=(# "Meta" dependencies
36
cmake ninja git python
37
# Aseprite (including e.g. LAF)
38
libxi
39
# Skia
40
gn harfbuzz-icu
41
# Upstream recommends using clang
42
'clang>=22')
43
source=("https://github.com/aseprite/aseprite/releases/download/v$pkgver/Aseprite-v$pkgver-Source.zip"
44
# Which branch a given build of Aseprite requires is noted in its `INSTALL.md`
45
"skia-$_skiaver.tar.gz::https://github.com/aseprite/skia/archive/refs/tags/$_skiaver-$_skiahash.tar.gz"
46
# forgive me, I couldn't figure out linker errors.
47
# update commit with skia
48
skia-$_skiaver-icu::git+https://chromium.googlesource.com/chromium/deps/icu.git#commit=a0718d4f121727e30b8d52c7a189ebf5ab52421f
49
aseprite-strings::git+https://github.com/aseprite/strings.git#commit=417074f649f359f98511fc87a707c276d87f5739
50
desktop.patch
51
shared-fmt.patch
52
# Based on https://patch-diff.githubusercontent.com/raw/aseprite/aseprite/pull/2535.patch
53
shared-libarchive.patch
54
# Based on https://patch-diff.githubusercontent.com/raw/aseprite/aseprite/pull/2523.patch
55
shared-libwebp.patch
56
shared-skia-deps.patch
57
optional-pixman.patch
58
fix-shared-tinyxml2.patch
59
shared-libwebp-found.patch
60
include_cstdint.patch
61
shared_libjpeg-turbo.patch
62
change_use_of_removed_intrinsic.patch
63
fmt-12.2.0-include-format.patch)
64
noextract=("Aseprite-v$pkgver-Source.zip"
65
"skia-$_skiaver.tar.gz") # Don't extract Aseprite or skia sources at the root
66
sha256sums=('438e7a1571990383beca761eca829402f14f225e164730eb2edc71b2e9566e58'
67
'c2a567d6b8bb933a92615cbdee0de268d02c3a06863337ee8822eedab9ed66ba'
68
'b52f179a687ef2f91a52b696ab6581f4a37df5e88cb22040fa1ec6567cf0ebb1'
69
'883d1b25014deded64c3baa8e680dc3e2e486ca7b9c9116015c3cc557c2af781'
70
'8b14e36939e930de581e95abf0591645aa0fcfd47161cf88b062917dbaaef7f9'
71
'c3591d376180d99ff8001c3d549c0bd18ef5e4d95f1755ccaa8e2fd65dd5d2b3'
72
'96d75ecc951712e80734f476511658fcc3c91fc1655fe9a01453c3fc8c2a9274'
73
'0f8adb959d7000697af453d6cf5aaf9984b74868008382aad541d2c29871c751'
74
'eb9f544e68b41b5cb1a9ab7a6648db51587e67e94f1a452cb5a84f3d224bf5d0'
75
'c2d14f9738a96a9db3695c00ac3d14b1312b6a595b151bd56e19422c86517654'
76
'ba02fc060dc930cfd66a8903a5d8a59f981753bdf416e91cc77a48c56c86aea3'
77
'72605d6760c29eb98f2d8d8cf2cc9f9f7d7655bcf7cfc944f6a46b0957adbb14'
78
'3381038fc5209600428801fa0b2b05ddee031b0926eaa75c114172e503916cd5'
79
'0fa67d34f63cb4ed472b620ebad0656aeca646cb7f1069b7066ee91e6902fe6c'
80
'1276dd96f9ba63ce942b7321f5f753b02119c99b2eaf652ea5998b90d5d5a1d2'
81
'de5762bd0913eb4d27c91d79dca2b2c216c7b53b7ac20b6c653fa96e7823f154')
82
_debug="true"
83
prepare() {
84
# Extract Aseprite's sources
85
mkdir -p aseprite
86
bsdtar -xf "${noextract[0]}" -C aseprite
87
# Extract Skia's sources
88
mkdir -p skia
89
bsdtar xf skia-$_skiaver.tar.gz --strip-components=1 -C skia
90
# link to skia's icu
91
mkdir -p skia/third_party/externals/
92
ln -fs $srcdir/skia-$_skiaver-icu skia/third_party/externals/icu
93
# Fix up Aseprite's desktop integration
94
[[ -n $_debug ]] && echo desktop.patch
95
env -C aseprite patch -tp1 <desktop.patch
96
# Allow using more shared libs
97
[[ -n $_debug ]] && echo shared-fmt.patch
98
env -C aseprite patch -tp1 <shared-fmt.patch
99
[[ -n $_debug ]] && echo shared-libarchive.patch
100
env -C aseprite patch -tp1 <shared-libarchive.patch
101
[[ -n $_debug ]] && echo shared-libwebp.patch
102
env -C aseprite patch -tp1 <shared-libwebp.patch
103
[[ -n $_debug ]] && echo shared-pixman.patch
104
env -C aseprite patch -tp1 <optional-pixman.patch
105
# Their "FindSkia" module forcefully tries to use Skia's FreeType and HarfBuzz,
106
# but we don't clone those because we use the shared ones. Avoid overwriting the settings instead.
107
[[ -n $_debug ]] && echo shared-skia-deps.patch
108
env -C aseprite patch -tp1 <shared-skia-deps.patch
109
# TinyEXIF cannot find tinyxml2 otherwise
110
[[ -n $_debug ]] && echo fix-shared-tinyxml2.patch
111
env -C aseprite/third_party/TinyEXIF patch -tp1 <fix-shared-tinyxml2.patch
112
[[ -n $_debug ]] && echo shared-libwebp-found.patch
113
env -C aseprite patch -tp1 <shared-libwebp-found.patch
114
[[ -n $_debug ]] && echo shared_libjpeg-turbo.patch
115
env -C aseprite patch -tp1 <shared_libjpeg-turbo.patch
116
[[ -n $_debug ]] && echo include_cstdint.patch
117
patch -tp1 <include_cstdint.patch
118
[[ -n $_debug ]] && echo change_use_of_removed_intrinsic.patch
119
env -C skia/modules/skcms patch -tp1 <change_use_of_removed_intrinsic.patch
120
env -C aseprite patch -tp1 <fmt-12.2.0-include-format.patch
121
}
122
123
build() {
124
echo Building Skia...
125
local _skiadir="$PWD/skia/obj"
126
export CXX=clang++
127
export CC=clang
128
export CXXFLAGS+=" -std=c++11 -stdlib=libstdc++"
129
export AR=ar
130
export NM=nm
131
# Flags can be found by running `gn args --list "$_skiadir"` from skia's directory.
132
# (Pipe the output somewhere, there's a LOT of args.)
133
#
134
# The flags are chosen to provide the API required by Aseprite and nothing else (if possible),
135
# so as to reduce the compilation time and final binary size.
136
#
137
# Individual rationales:
138
# is_official_build: Suggested by the build instructions.
139
# skia_build_fuzzers: We don't care about them.
140
# skia_enable_pdf: Not used by Aseprite.
141
# skia_enable_skottie: Not used by Aseprite.
142
# skia_use_lib*_{encode,decode}: Aseprite only loads PNG assets, so only libpng is required.
143
# skia_use_expat: Only required for the Android font manager and SVGCanvas/SVGDevice.
144
# skia_use_piex: Not used by Aseprite. Only used for reading RAW files.
145
# skia_use_xps: Not used outside of Windows.
146
# skia_use_zlib: Only used for PDF and RAW files.
147
# skia_enable_skparagraph: Aseprite does not link against this library.
148
# skia_use_system_icu: Aseprite wants an `icudtl.dat`, which would require pulling a 1GiB git repo
149
# as a dependency
150
151
# gn is bad software
152
env -C skia gn gen "$_skiadir" --args='is_official_build=true skia_build_fuzzers=false skia_enable_pdf=false skia_enable_skottie=false skia_enable_svg=false skia_use_libjpeg_turbo_encode=false skia_use_libjpeg_turbo_decode=false skia_use_libwebp_encode=false skia_use_libwebp_decode=false skia_use_expat=false skia_use_piex=false skia_use_xps=false skia_use_zlib=false skia_enable_skparagraph=false skia_use_wuffs=false skia_use_system_icu=false cc="clang" cxx="clang++"'
153
ninja -C "$_skiadir" skia modules
154
echo Building Aseprite...
155
# Suppress install messages since we install to a temporary area; `install -v` will do the job
156
cmake -S aseprite -B build -G Ninja -Wno-dev -DCMAKE_INSTALL_MESSAGE=NEVER -DCMAKE_BUILD_TYPE=None \
157
-DENABLE_UPDATER=OFF -DENABLE_{SCRIPTING,WEBSOCKET}=ON \
158
-DLAF_WITH_{EXAMPLES,TESTS}=OFF -DLAF_BACKEND=skia \
159
-DSKIA_DIR="$PWD/skia" -DSKIA_LIBRARY_DIR="$_skiadir" \
160
-DCMAKE_AR=$(command -v ar) -DCMAKE_RANLIB=$(command -v ranlib) \
161
-DUSE_SHARED_{CMARK,CURL,FMT,GIFLIB,LIBJPEG_TURBO,ZLIB,LIBPNG,TINYXML,PIXMAN,FREETYPE,HARFBUZZ,LIBARCHIVE,WEBP}=ON \
162
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 # workaround
163
cmake --build build
164
}
165
166
check() {
167
export CXX=clang++
168
export CC=clang
169
export CXXFLAGS+=" -std=c++11 -stdlib=libstdc++"
170
export AR=ar
171
export NM=nm
172
env -C build ctest --output-on-failure
173
}
174
175
package() {
176
depends+=(libcurl.so libgif.so libjpeg.so libfreetype.so libarchive.so libfmt.so
177
libwebp.so libwebpmux.so libwebpdemux.so libjpeg.so libexpat.so=1-64 libharfbuzz.so=0-64
178
libfontconfig.so)
179
export CXX=clang++
180
export CC=clang
181
export CXXFLAGS+=" -std=c++11 -stdlib=libstdc++"
182
export AR=ar
183
export NM=nm
184
# Now the fun part: components of e.g. `libwebp` get installed as well,
185
# since we've had to compile it. But we don't want them.
186
# So, install normally, and then cherry-pick Aseprite's files out of that.
187
# Use a whitelist to prefer installing not enough (breakage goes noticed),
188
# instead of too much (cruft rarely goes noticed). Also hope that it doesn't break :)
189
cmake --install build --prefix=staging --strip
190
191
# Install the binary and its `.desktop` file
192
install -vDm 755 staging/bin/aseprite "$pkgdir/usr/bin/aseprite"
193
install -vDm 644 aseprite/src/desktop/linux/aseprite.desktop "$pkgdir/usr/share/applications/$pkgname.desktop"
194
install -vDm 644 aseprite/src/desktop/linux/mime/aseprite.xml "$pkgdir/usr/share/mime/packages/$pkgname.xml"
195
# Thumbnailer
196
install -vDm 755 aseprite/src/desktop/linux/aseprite-thumbnailer "$pkgdir/usr/bin/aseprite-thumbnailer"
197
install -vDm 644 aseprite/src/desktop/linux/gnome/aseprite.thumbnailer "$pkgdir/usr/share/thumbnailers/aseprite.thumbnailer"
198
# Install the icons in the correct directory (which is not the default)
199
local _size
200
for _size in 16 32 48 64 128 256; do
201
# The installed icon's name is taken from the `.desktop` file
202
install -vDm 644 staging/share/aseprite/data/icons/ase$_size.png "$pkgdir/usr/share/icons/hicolor/${_size}x$_size/apps/aseprite.png"
203
done
204
# Delete the icons to avoid copying them in two places (they aren't used by Aseprite itself)
205
rm -rf staging/share/aseprite/data/icons
206
# Install all of the program's data
207
cp -vrt "$pkgdir/usr/share" staging/share/aseprite
208
# Also install the licenses
209
install -vDm 644 -t "$pkgdir/usr/share/licenses/$pkgname" aseprite/{EULA.txt,docs/LICENSES.md}
210
# Copy the font's license, but leave it in the font directory as well (probably doesn't hurt)
211
install -vm 644 aseprite/data/fonts/LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/font.txt"
212
# Copy translations
213
mkdir -p "$pkgdir/usr/share/$pkgname/data/strings/"
214
cp -vt "$pkgdir/usr/share/$pkgname/data/strings/" aseprite-strings/*.ini
215
# Copy translations' license
216
install -vm 644 aseprite-strings/LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/translations.txt"
217
}
218
Changes since previous scan
--- PKGBUILD @ 2026-07-31 00:14+++ PKGBUILD @ 2026-08-03 00:08@@ -13,7 +13,7 @@ pkgver=1.3.18.1 _skiaver=m124 _skiahash=08a5439a6b-pkgrel=1+pkgrel=3 pkgdesc='Create animated sprites and pixel art' arch=('x86_64') url="https://www.aseprite.org/"@@ -157,6 +157,7 @@ -DENABLE_UPDATER=OFF -DENABLE_{SCRIPTING,WEBSOCKET}=ON \ -DLAF_WITH_{EXAMPLES,TESTS}=OFF -DLAF_BACKEND=skia \ -DSKIA_DIR="$PWD/skia" -DSKIA_LIBRARY_DIR="$_skiadir" \+-DCMAKE_AR=$(command -v ar) -DCMAKE_RANLIB=$(command -v ranlib) \ -DUSE_SHARED_{CMARK,CURL,FMT,GIFLIB,LIBJPEG_TURBO,ZLIB,LIBPNG,TINYXML,PIXMAN,FREETYPE,HARFBUZZ,LIBARCHIVE,WEBP}=ON \ -DCMAKE_POLICY_VERSION_MINIMUM=3.5 # workaround cmake --build buildScan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-03 00:08:14 | LOW | 2 |
| 2026-08-02 00:16:08 | LOW | 2 |
| 2026-08-01 00:11:18 | LOW | 2 |
| 2026-07-31 19:18:43 | LOW | 2 |
| 2026-07-31 00:14:10 | LOW | 2 |
| 2026-07-30 00:17:23 | LOW | 2 |
| 2026-07-29 00:25:53 | LOW | 2 |
| 2026-07-28 00:07:28 | LOW | 2 |
| 2026-07-27 00:24:32 | LOW | 2 |
| 2026-07-26 00:07:32 | LOW | 2 |
| 2026-07-25 00:13:44 | LOW | 2 |
| 2026-07-24 05:27:22 | LOW | 2 |
| 2026-06-27 20:30:17 | CLEAN | 2 |
| 2026-06-19 19:07:35 | CLEAN | 2 |
| 2026-06-18 16:11:54 | LOW | 1 |