claws-mail-protectedheaders-git
maintainer dreieck
· 1 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The flagged non-standard host (web.archive.org) is used to fetch a patch file, but the patch is from an archived official project bug tracker; the source is otherwise the official git repository, and the patch is verified with a checksum, posing minimal risk.
Triggered rules
LOW
AI review downgraded a static finding
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-07-25) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The flagged non-standard host (web.archive.org) is used to fetch a patch file, but the patch is from an archived official project bug tracker; the source is otherwise the official git repository, and the patch is verified with a checksum, posing minimal 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:156
"${_pkgname}::git://git.claws-mail.org/claws.git#branch=${_gitbranch}"
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: dreieck (https://aur.archlinux.org/account/dreieck)
2
# Contributor: Christian Hesse
3
4
_USE_CCACHE=false
5
if which ccache > /dev/null 2>&1; then
6
_USE_CCACHE=true
7
fi
8
_WITH_NETWORKMANAGER=false
9
# _WITH_NETWORKMANAGER=true
10
# _WITH_VALGRIND=false
11
_WITH_VALGRIND=true
12
# _TOOLKIT='gtk2'
13
_TOOLKIT='gtk3'
14
_PROTECTEDHEADERSPATCHVARIANT=nopicturesplease # Use the patch from https://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=4426#c39, or a newer one sent e.g. manually via email.
15
# _PROTECTEDHEADERSPATCHVARIANT=filippo # Use the patch from https://www.thewildbeast.co.uk/claws-mail/bugzilla/show_bug.cgi?id=4007#c4.
16
17
_pkgname='claws-mail'
18
case "${_TOOLKIT}" in
19
'gtk2')
20
_pkgvariant="${_TOOLKIT}"
21
_gitbranch="${_TOOLKIT}"
22
;;
23
'gtk3')
24
_pkgvariant="protectedheaders"
25
_gitbranch='master'
26
;;
27
*)
28
_pkgvariant="${_TOOLKIT}-protectedheaders"
29
_gitbranch="${_TOOLKIT}"
30
;;
31
esac
32
33
pkgname="${_pkgname}-${_pkgvariant}-git"
34
epoch=0
35
pkgver=4.3.1+206.r13691.20260203.450a0ac32
36
pkgrel=1
37
pkgdesc="A GTK based e-mail client. Latest git checkout, built against '${_TOOLKIT}'. Patched to use charset supersets to decode titles and to display protected headers."
38
arch=(
39
'i686'
40
'x86_64'
41
)
42
license=('GPL-3.0-or-later')
43
url='https://www.claws-mail.org/'
44
depends=(
45
'cairo'
46
'compface'
47
'dbus-glib'
48
'enchant'
49
'gdk-pixbuf2'
50
'glib2'
51
'glibc'
52
'gnutls'
53
'gpgme'
54
"${_TOOLKIT}"
55
'hicolor-icon-theme'
56
'libice'
57
'libetpan'
58
'libsm'
59
'libldap'
60
'librsvg'
61
'nettle'
62
'pango'
63
'startup-notification'
64
)
65
makedepends=(
66
'ayatana-ido'
67
'git'
68
'glib2-devel'
69
'python>=3'
70
'spamassassin'
71
# dependencies for plugins:
72
'bogofilter'
73
'dillo'
74
'gumbo-parser>=0.12'
75
'libayatana-appindicator'
76
'libcanberra'
77
'libdbusmenu-glib'
78
'libgdata'
79
'libgoa'
80
'libical'
81
'libnotify'
82
'libxml2'
83
'libytnef'
84
'poppler-glib'
85
# 'pygtk' # This requires python2 stuff to build. Most probably obsolete as (make) dependency.
86
# dependencies to build the docs:
87
'docbook-utils'
88
'lynx'
89
'texlive-bin'
90
'texlive-core'
91
'texlive-formatsextra'
92
)
93
optdepends=(
94
'claws-mail-theme-basicsvg: BasicSVG icon theme for Claws Mail.'
95
'claws-mail-tango-theme: Tango icon theme for Claws Mail.'
96
'papirus-claws-mail-theme: Papirus icon theme for Claws Mail.'
97
"claws-mail-plugin-reloader: Reload plugins from the 'tools' menu (for development)."
98
'bash: for some extra tools.'
99
'at-spi2-core: for many plugins.'
100
'bogofilter: for bogofilter plugin.'
101
'curl: for vcalendar, rssyl and spamreport plugins.'
102
'dbus: for notification plugin.'
103
'libx11: for notification plugin.'
104
'dillo: for dillo html viewer plugin.'
105
'expat: for rssyl plugin.'
106
'fontconfig: for litehtml_viewer plugin.'
107
'freetype2: for litehtml_viewer plugin.'
108
'gcc-libs: for litehtml_viewer plugin.'
109
'gumbo-parser>=0.12: for litehtml_viewer plugin.'
110
'ghostscript: for pdf viewer plugin.'
111
'harfbuzz: for many plugins'
112
'jpilot: for jpilot (palm pilot connection) plugin.'
113
'libarchive: for archive plugin and various other plugins.'
114
'ayatana-ido: for notification plugin.'
115
'libcanberra: for notification plugin.'
116
'libdbusmenu-glib: for notification plugin.'
117
'libayatana-appindicator: for notification plugon.'
118
'libgpg-error: for GPG and S-MIME plugins.'
119
'libical: for vcalendar plugin.'
120
'libnotify: for notification plugin.'
121
'libytnef: for tnef_parse plugin.'
122
'libxcrypt: for perl plugin.'
123
'perl: needed for some tools and perl plugin.'
124
'poppler-glib: for pdf viewer plugin.'
125
'python2: needed for some tools and python plugin.'
126
'python>=3: for some tools/ plugins.'
127
'spamassassin: for spamassassin plugin.'
128
'zlib: for many plugins.'
129
'json-glib: for gdata plugin.'
130
'libgdata: for gdata plugin.'
131
'libgoa: for gdata plugin.'
132
'libxml2: for gdata plugin.'
133
)
134
replaces=(
135
'claws-mail-extra-plugins'
136
'sylpheed-claws'
137
)
138
conflicts=(
139
'claws'
140
"${_pkgname}"
141
"${_pkgname}-${_pkgvariant}"
142
"${_pkgname}-bash-completion"
143
'claws-mail-extra-plugins'
144
'sylpheed-claws'
145
)
146
provides=(
147
"claws=${pkgver}"
148
"${_pkgname}=${pkgver}"
149
"${_pkgname}-${_TOOLKIT}=${pkgver}"
150
"${_pkgname}-title-superset=${pkgver}"
151
"${_pkgname}-protectedheaders=${pkgver}"
152
"${_pkgname}-bash-completion"
153
"claws-mail-extra-plugins=${pkgver}"
154
)
155
source=(
156
"${_pkgname}::git://git.claws-mail.org/claws.git#branch=${_gitbranch}"
157
"0000_encoding.diff::https://aur.archlinux.org/cgit/aur.git/plain/0001_encoding.diff?h=claws-mail-title-superset" ## NOTE!, if this gets removed, adapt the `provides` array and the `$pkgdesc`!
158
)
159
sha256sums=(
160
'SKIP' # Main upstream git source
161
'79e2b664d039f5cc0cf642359923e3d100ffc4ab070fc54c02d5792b624e26f6' # '0000_encoding.diff'
162
)
163
case "${_PROTECTEDHEADERSPATCHVARIANT}" in
164
'nopicturesplease')
165
#source+=("0002_protectedheaders.patch::http://web.archive.org/web/20240721164745/https://www.thewildbeast.co.uk/claws-mail/bugzilla/attachment.cgi?id=2331")
166
#sha256sums+=('383f4ea03102ed2c8f19365b9bf2b757969d1617fcfd0a8375126f388cc60301')
167
#source+=('protected-headers.nopicturesplease.2026-01-21.6500e351c6889502e15a0b7365dba516142c9d65.patch')
168
source+=('protected-headers.nopicturesplease.2026-02-06.450a0ac32ea2c7f621ee21a86d8d53d3766efc14.patch')
169
sha256sums+=('f802afc82887fc0601f819cb05196ed9cc2dae08e9d482d9a0456ed79a1230b4')
170
if [ "${_TOOLKIT}" == "gtk2" ]; then
171
source+=("protectedheaders.patch.for-gtk2.patch")
172
sha256sums+=('3b1e568398950eb93d879353cfd6d49d81f7e1790c24972f36846f22ef4106cb')
173
fi
174
;;
175
'filippo')
176
source+=("read_enc_subject.tar.gz::http://web.archive.org/web/20240721164805/https://www.thewildbeast.co.uk/claws-mail/bugzilla/attachment.cgi?id=2350")
177
sha256sums+=('70b2595830dce73d85600190258389216b4aa613f88ebbedc6088a806c7b01f1')
178
;;
179
*)
180
error "Please edit the 'PKGBUILD' to specify a valid provider of the protected headers patch (variable '_PROTECTEDHEADERSPATCHVARIANT' at the beginning of the 'PKGBUILD')."
181
exit 1
182
;;
183
esac
184
185
186
if "${_USE_CCACHE}"; then
187
makedepends+=('ccache')
188
options+=('ccache')
189
fi
190
if [ "${_TOOLKIT}" == "gtk2" ]; then
191
_fancy_config_opts=('--disable-fancy-plugin')
192
else
193
makedepends+=(
194
'libsoup3'
195
'webkit2gtk-4.1'
196
)
197
optdepends+=(
198
'libjavascriptcoregtk-4.1.so: for fancy webkit html viewer plugin.'
199
'libwebkit2gtk-4.1.so: for fancy webkit html viewer plugin.'
200
'libsoup3: for fancy webkit html viewer plugin.'
201
)
202
_fancy_config_opts=('--enable-fancy-plugin')
203
fi
204
if "${_WITH_NETWORKMANAGER}"; then
205
makedepends+=('networkmanager')
206
optdepends+=('networkmanager: for NetworkManager network connection query.')
207
_networkmanager_config_opts=('--enable-networkmanager')
208
else
209
_networkmanager_config_opts=('--disable-networkmanager')
210
fi
211
if "${_WITH_VALGRIND}"; then
212
makedepends+=('valgrind')
213
_valgrind_config_opts=('--enable-valgrind')
214
else
215
_valgrind_config_opts=('--disable-valgrind')
216
fi
217
218
219
prepare() {
220
cd "${srcdir}/${_pkgname}"
221
222
#for _patch in "${srcdir}/....patch"; do
223
# printf '%s\n' " > Applying patch '$(basename "${_patch}")' ..."
224
# patch -Np1 --follow-symlinks -i "${_patch}"
225
#done
226
rm -fv po/Makefile.in.in
227
228
for _patch in "${srcdir}/0000_encoding.diff"; do
229
printf '%s\n' " > Applying patch '${_patch}' ..."
230
patch -N -p1 --follow-symlinks -i "${_patch}"
231
done
232
233
case "${_PROTECTEDHEADERSPATCHVARIANT}" in
234
'nopicturesplease')
235
cp "${srcdir}/protected-headers.nopicturesplease.2026-02-06.450a0ac32ea2c7f621ee21a86d8d53d3766efc14.patch" "${srcdir}/0002_protectedheaders.patch"
236
if [ "${_TOOLKIT}" == "gtk2" ]; then
237
printf '%s\n' " > Patching '0002_protectedheaders.patch' for GTK2 ..."
238
patch -N --follow-symlinks -i "${srcdir}/protectedheaders.patch.for-gtk2.patch" -o "${srcdir}/0002_protectedheaders-${_TOOLKIT}.patch" "${srcdir}/0002_protectedheaders.patch"
239
else
240
cp "${srcdir}/0002_protectedheaders.patch" "${srcdir}/0002_protectedheaders-${_TOOLKIT}.patch"
241
fi
242
for _patch in "${srcdir}/0002_protectedheaders-${_TOOLKIT}.patch"; do
243
printf '%s\n' " > Applying patch '${_patch}' ..."
244
patch -N -p1 --follow-symlinks -i "${_patch}"
245
done
246
;;
247
'filippo')
248
for _patch in "${srcdir}"/{0001-PGP-MIME-fix-leak-of-MimeInfo-if-parsing-fails,0002-Substitute-Subject-header-when-decrypting,0003-TextView-move-header-extraction-to-textview_process_,0004-PGPMime-return-full-decrypted-message-instead-of-fir}.patch; do
249
printf '%s\n' " > Applying patch '${_patch}' ..."
250
patch -N -p1 --follow-symlinks -i "${_patch}"
251
done
252
;;
253
*)
254
error "Please edit the 'PKGBUILD' to specify a valid provider of the protected headers patch (variable '_PROTECTEDHEADERSPATCHVARIANT' at the beginning of the 'PKGBUILD')."
255
return 1
256
;;
257
esac
258
259
printf '%s\n' " > Generating git log ..."
260
git log > "${srcdir}/git.log"
261
262
# Generate ./configure
263
# if [ ! -e configure ]; then
264
printf '%s\n' " > Generating './configure' ..."
265
NOCONFIGURE=1 ./autogen.sh
266
# fi
267
}
268
269
pkgver() {
270
cd "${srcdir}/${_pkgname}"
271
272
_ver="$(git describe --tags | sed -E -e 's|^[vV]||' -e 's|\-g[0-9a-f]*$||' | tr '-' '+')"
273
_rev="$(git rev-list --count HEAD)"
274
_date="$(git log -1 --date=format:"%Y%m%d" --format="%ad")"
275
_hash="$(git rev-parse --short HEAD)"
276
277
if [ -z "${_ver}" ]; then
278
error "Could not determine version."
279
return 1
280
else
281
printf '%s' "${_ver}.r${_rev}.${_date}.${_hash}"
282
fi
283
}
284
285
build() {
286
cd "${srcdir}/${_pkgname}"
287
288
## Silence some compiler warnings (and, just to be sure, do not treat them as errors as well):
289
local _NOWARNINGS _NOWARNINGS_CConly _NOWARNINGS_CXXonly _warning _CFLAGSADDITIONS _CFLAGSADDITIONS_CConly _CFLAGSADDITIONS_CXXonly
290
_NOWARNINGS=('deprecated-declarations' 'unused-result' 'lto-type-mismatch' 'discarded-qualifiers' 'attribute-warning')
291
_NOWARNINGS_CConly=('implicit-function-declaration')
292
_NOWARNINGS_CXXonly=()
293
_CFLAGSADDITIONS=''
294
_CFLAGSADDITIONS_CConly=''
295
_CFLAGSADDITIONS_CXXonly=''
296
for _warning in "${_NOWARNINGS_CConly[@]}"; do
297
_CFLAGSADDITIONS_CConly+=" -Wno-${_warning} -Wno-error=${_warning}"
298
done
299
for _warning in "${_NOWARNINGS_CXXonly[@]}"; do
300
_CFLAGSADDITIONS_CXXonly+=" -Wno-${_warning} -Wno-error=${_warning}"
301
done
302
for _warning in "${_NOWARNINGS[@]}"; do
303
_CFLAGSADDITIONS+=" -Wno-${_warning} -Wno-error=${_warning}"
304
done
305
CFLAGS+="${_CFLAGSADDITIONS} ${_CFLAGSADDITIONS_CConly}"
306
CXXFLAGS+="${_CFLAGSADDITIONS} ${_CFLAGSADDITIONS_CXXonly}"
307
export CFLAGS
308
export CXXFLAGS
309
310
#MAKEFLAGS+=' -j1'
311
#export MAKEFLAGS
312
313
local _configure_opts
314
_configure_opts=(
315
--prefix=/usr
316
--disable-static
317
--enable-shared
318
--enable-nls
319
--enable-manual
320
--enable-libsm
321
--enable-ipv6
322
--enable-gnutls
323
--enable-enchant
324
--enable-crash-dialog
325
--disable-generic-umpc
326
--enable-compface
327
--enable-pthread
328
--enable-startup-notification
329
--enable-dbus
330
--enable-ldap
331
--enable-jpilot
332
"${_networkmanager_config_opts[@]}"
333
--enable-libetpan
334
"${_valgrind_config_opts[@]}"
335
--disable-alternate-addressbook # add --enable-alternate-addressbook to the options to use the new/alternate address book (which could break things!). Do not forget to add claws-contacts to the dependencies then
336
--enable-svg
337
--enable-deprecated
338
--enable-acpi_notifier-plugin
339
--enable-address_keeper-plugin
340
--enable-archive-plugin
341
--enable-att_remover-plugin
342
--enable-attachwarner-plugin
343
--enable-bogofilter-plugin
344
--enable-bsfilter-plugin
345
--enable-clamd-plugin
346
--enable-dillo-plugin
347
"${_fancy_config_opts[@]}"
348
--enable-fetchinfo-plugin
349
--enable-gdata-plugin
350
--enable-libravatar-plugin
351
--enable-litehtml_viewer-plugin
352
--enable-mailmbox-plugin
353
--enable-managesieve-plugin
354
--enable-newmail-plugin
355
--enable-notification-plugin
356
--enable-pdf_viewer-plugin
357
--enable-perl-plugin
358
--enable-python-plugin
359
--enable-pgpcore-plugin
360
--enable-pgpmime-plugin
361
--enable-pgpinline-plugin
362
--enable-rssyl-plugin
363
--enable-smime-plugin
364
--enable-spamassassin-plugin
365
--enable-spam_report-plugin
366
--enable-tnef_parse-plugin
367
--enable-vcalendar-plugin
368
--enable-demo-plugin
369
)
370
371
printf '%s\n' " > Running './configure <options>' ..."
372
./configure "${_configure_opts[@]}"
373
printf '%s\n' " > Running 'make' ..."
374
make
375
376
# build extra tools
377
pushd tools 2>/dev/null
378
printf '%s\n' " > Running 'make' in './tools/' ..."
379
make
380
popd 2>/dev/null
381
}
382
383
package() {
384
cd "${srcdir}/${_pkgname}"
385
386
printf '%s\n' " > Runnung 'make install' ..."
387
make DESTDIR="${pkgdir}" install
388
389
# install extra tools
390
printf '%s\n' " > Installing extra tools ..."
391
# all executables and .conf files; only top directory
392
pushd tools 2>/dev/null
393
for _file in *.pl *.sh *.py tb2claws-mail update-po uudec uuooffice; do
394
install -D -v -m755 "${_file}" "${pkgdir}/usr/lib/${_pkgname}/tools/${_file}"
395
done
396
for _file in *.txt *.conf README; do
397
install -D -v -m644 "${_file}" "${pkgdir}/usr/lib/${_pkgname}/tools/${_file}"
398
done
399
for _dir in kdeservicemenu; do
400
cp -arv "${_file}" "${pkgdir}/usr/lib/${_pkgname}"/tools/
401
done
402
popd 2>/dev/null
403
404
# Install more information
405
printf '%s\n' " > Installing extra documentation and license ..."
406
for _docfile in ABOUT-NLS AUTHORS ChangeLog* INSTALL NEWS README RELEASE_NOTES version; do
407
install -D -v -m644 "${_docfile}" "${pkgdir}/usr/share/doc/${_pkgname}/${_docfile}"
408
done
409
install -D -v -m644 "${srcdir}/git.log" "${pkgdir}/usr/share/doc/${_pkgname}/git.log"
410
ln -svr "${pkgdir}/usr/lib/${_pkgname}/tools/README" "${pkgdir}/usr/share/doc/${_pkgname}/README-tools"
411
ln -svr "${pkgdir}/usr/share/licenses/${pkgname}/COPYING" "${pkgdir}/usr/share/doc/${_pkgname}/COPYING"
412
install -D -v -m644 'COPYING' "${pkgdir}/usr/share/licenses/${pkgname}/COPYING"
413
414
# Install bash completion
415
printf '%s\n' " > Installing bash completion ..."
416
install -D -v -m644 "tools/bash_completion/claws-mail" "${pkgdir}/usr/share/bash-completion/completions/${_pkgname}"
417
}
418
Scan 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 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 00:02:28 | LOW | 2 |
| 2026-07-23 00:14:47 | LOW | 2 |
| 2026-07-22 00:29:32 | LOW | 2 |
| 2026-07-21 00:24:15 | LOW | 2 |
| 2026-07-20 00:19:49 | LOW | 2 |
| 2026-07-19 00:17:08 | LOW | 2 |
| 2026-07-18 00:14:48 | LOW | 2 |
| 2026-07-17 00:06:16 | LOW | 2 |
| 2026-07-16 00:05:41 | LOW | 2 |
| 2026-07-15 00:09:25 | LOW | 2 |