udfclientfs-fuse3
maintainer Ataraxy
· 1 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package downloads source code from the project's official site and a FreeBSD mirror; both are legitimate sources for building the software, and no untrusted executables or obfuscated payloads are involved.
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 package downloads source code from the project's official site and a FreeBSD mirror; both are legitimate sources for building the software, and no untrusted executables or obfuscated payloads are involved.
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:17
"http://distcache.FreeBSD.org/local-distfiles/avg/udfclientfs-0.6.tgz"
PKGBUILD
1 offending line(s) highlighted
1
# PKGBUILD for udfclientfs-fuse3
2
# Maintainer: Tom Hale <tom at hale dot ee>
3
# shellcheck shell=bash disable=SC2034,SC2154,SC2164
4
5
pkgname=udfclientfs-fuse3
6
pkgver=0.8.21
7
pkgrel=1
8
pkgdesc='UDF filesystem tools with FUSE 3 support. Provides udfclientfs (fuse), udfclient, newfs_udf, cd_disect, cd_sessions, mmc_format, udfdump'
9
arch=('x86_64')
10
url='https://www.13thmonkey.org/udfclient/'
11
license=('LicenseRef-Clarified Artistic')
12
depends=('fuse3')
13
makedepends=('bmake' 'patch')
14
provides=('udfclient' 'udfclientfs')
15
conflicts=('udfclient' 'udfclientfs')
16
source=("${url}releases/UDFclient.${pkgver}.tgz"
17
"http://distcache.FreeBSD.org/local-distfiles/avg/udfclientfs-0.6.tgz"
18
"fix-fgets-unused-result.patch"
19
"fix-packed-member-address.patch"
20
"udfclientfs-freebsd.patch"
21
"fix-sector-size-detection.patch"
22
"fix-fuse3-linux.patch")
23
sha256sums=('83deab4d97d8e5f67baa47aa779c41d35b5f5ef348bcea36bebb1549534c6f5e'
24
'a115ef941ee56df3a14a3919e7225f046bef9577afbed7e873b1a868b3c0b301'
25
'af7be2743ffd3aa5dac21c57a1bc52e00a3619032f96962f99a4e7f44e0fa3cb'
26
'831ccde1381f9be7b1e76832222d92bdd674cccdbf7b28cf499ed6a44f27ab8c'
27
'952082f234f496a2804e50e639332f97962bab2518dfb63c294ea297a18a1e3f'
28
'9d181a4168b5dde788c7223a3a8a1f7b45020876e3dda09086865cc4707948c0'
29
'ea7dc0d0582e6896616ab982e76034cd180f44032ccfe845bb646efab4b2fc07')
30
31
prepare() {
32
cd "${srcdir}/UDFclient.${pkgver}"
33
patch -p1 < "${srcdir}/fix-fgets-unused-result.patch"
34
patch -p1 < "${srcdir}/fix-packed-member-address.patch"
35
# FreeBSD udfclientfs patch: adds FUSE hooks, udfclientfs target to Makefile (re-based)
36
patch -p1 < "${srcdir}/udfclientfs-freebsd.patch"
37
# FUSE shim source (from FreeBSD distfile)
38
cp "${srcdir}/udfclientfs/udfclientfs.c" .
39
# Auto-detect sector size for regular files and add -b option
40
patch -p1 < "${srcdir}/fix-sector-size-detection.patch"
41
# Convert to FUSE 3 API + Linux compatibility
42
patch -p1 < "${srcdir}/fix-fuse3-linux.patch"
43
}
44
45
build() {
46
cd "${srcdir}/UDFclient.${pkgver}"
47
./configure --prefix=/usr
48
bmake -s
49
}
50
51
check() {
52
cd "${srcdir}/UDFclient.${pkgver}"
53
# Verify all expected binaries build
54
for app in udfclient newfs_udf udfdump cd_sessions cd_disect mmc_format udfclientfs; do
55
if [[ ! -x "${app}" ]]; then
56
printf 'ERROR: missing built binary: %s\n' "${app}" >&2
57
exit 1
58
fi
59
done
60
}
61
62
package() {
63
cd "${srcdir}/UDFclient.${pkgver}"
64
65
# Binaries
66
install -d "${pkgdir}/usr/bin"
67
bmake DESTDIR="${pkgdir}" install >/dev/null
68
69
# Man pages (not installed by the Makefile)
70
install -Dm 644 newfs_udf.8 "${pkgdir}/usr/share/man/man8/newfs_udf.8"
71
install -Dm 644 mmc_format.8 "${pkgdir}/usr/share/man/man8/mmc_format.8"
72
73
# License
74
install -Dm 644 LICENCE.clearified.artistic "${pkgdir}/usr/share/licenses/${pkgname}/LICENCE"
75
}
76
# vim:set ts=2 sw=2 et ft=PKGBUILD:
77
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 |