bforartists
maintainer naetherm
· 1 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The non-standard host is NVIDIA's official developer domain for OptiX headers, a legitimate dependency; the package builds from source and installs only project files and official SDK headers.
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 non-standard host is NVIDIA's official developer domain for OptiX headers, a legitimate dependency; the package builds from source and installs only project files and official SDK headers.
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:110
https://developer.download.nvidia.com/redist/optix/v8.0/OptiX-8.0-Include.zip
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: Markus Näther <naether.markus@gmail.com>
2
3
pkgname=bforartists
4
pkgver=4.3.2
5
pkgrel=1
6
pkgdesc="A fully integrated 3D graphics creation suite (development)"
7
arch=('i686' 'x86_64')
8
url="https://bforartists.de/"
9
depends=(
10
'alembic'
11
'bash'
12
'boost-libs'
13
'draco' # seems to use static lib and should probably only be makedepends
14
'embree'
15
'expat'
16
'ffmpeg'
17
'fftw'
18
'freetype2'
19
'gcc-libs'
20
'glew'
21
'glibc'
22
'gmp'
23
'hicolor-icon-theme'
24
'imath'
25
'intel-oneapi-compiler-dpcpp-cpp-runtime-libs'
26
'intel-oneapi-compiler-shared-runtime-libs'
27
'jack' # dlopen'ed
28
'jemalloc'
29
'level-zero-loader' # dlopen'ed
30
'libepoxy'
31
'libharu'
32
'libjpeg-turbo'
33
'libpng'
34
'libsndfile'
35
'libspnav'
36
'libtiff'
37
'libwebp'
38
'libx11'
39
'libxfixes'
40
'libxi'
41
'libxkbcommon'
42
'libxml2'
43
'libxrender'
44
'libxxf86vm'
45
'llvm-libs'
46
'materialx'
47
'onetbb'
48
'openal'
49
'opencolorio'
50
'openexr'
51
'openimagedenoise'
52
'openimageio'
53
'openjpeg2'
54
'openpgl'
55
'openshadinglanguage'
56
'opensubdiv'
57
'openvdb'
58
'openxr'
59
'potrace'
60
'pugixml'
61
'pystring'
62
'python'
63
'python-numpy'
64
'python-requests'
65
'sdl2' # dlopen'ed
66
'shared-mime-info'
67
'usd'
68
'xdg-utils'
69
'yaml-cpp'
70
'zlib'
71
'zstd'
72
)
73
makedepends=(
74
'boost'
75
'cmake'
76
'cuda'
77
'git'
78
'git-lfs'
79
'hip-runtime-amd'
80
'hiprt'
81
'intel-oneapi-compiler-shared-runtime'
82
'intel-oneapi-dpcpp-cpp'
83
'intel-compute-runtime'
84
'level-zero-headers'
85
'libdecor'
86
'mold'
87
'llvm'
88
'mesa'
89
'ninja'
90
'subversion'
91
'wayland-protocols'
92
)
93
optdepends=('cuda: Cycles renderer CUDA support'
94
'intel-compute-runtime: Cycles renderer Intel OneAPI support'
95
'hip-runtime-amd: Cycles renderer AMD ROCm support'
96
'hiprt: Ray tracing AMD ROCm support'
97
'libdecor: wayland support')
98
# We're using !lto here as otherwise we get stuff such as FS#77557
99
options=('!lto')
100
101
provides=('bforartists')
102
conflicts=('bforartists')
103
license=('GPL')
104
# NOTE: the source array has to be kept in sync with .gitmodules
105
# the submodules has to be stored in path ending with git to match
106
# the path in .gitmodules.
107
# More info:
108
# http://wiki.blender.org/index.php/Dev:Doc/Tools/Git
109
source=("https://github.com/Bforartists/Bforartists/archive/refs/tags/v$pkgver.tar.gz"
110
https://developer.download.nvidia.com/redist/optix/v8.0/OptiX-8.0-Include.zip
111
)
112
113
sha512sums=('8280481c9c8241aa716a37e6c3b47ace25cf21c4bde1e9eb6eda92c7ba6665fc6f49f260c63e938ae730e351c4bcf716de98d52dd529650c9dd1c6e5634a4b8b'
114
'5502d9df847de12badc702c0444bd4f1f7620460b2235026df2c3133da1e04c148af0f1fc7f345e9a0c009c32f905f66c8d427743445e8864d3a797cdce6a483'
115
)
116
117
prepare() {
118
cd "$srcdir/Bforartists-$pkgver"
119
# update the submodules
120
git submodule update --init --recursive --remote
121
}
122
123
_get_pyver() {
124
python -c 'import sys; print(str(sys.version_info[0]) + "." + str(sys.version_info[1]))'
125
}
126
127
128
build() {
129
export CXXFLAGS=${CXXFLAGS/-Wp,-D_GLIBCXX_ASSERTIONS/}
130
131
local cmake_options=(
132
-B build
133
-C "Bforartists-$pkgver/build_files/cmake/config/blender_release.cmake"
134
-C "$srcdir/precache"
135
-D CMAKE_BUILD_TYPE=Release
136
-D CMAKE_INSTALL_PREFIX=/usr
137
-D WITH_LINKER_MOLD=ON
138
-D CUDA_HOST_COMPILER="$NVCC_CCBIN"
139
-D HIP_ROOT_DIR=/opt/rocm
140
-D WITH_CYCLES_HIP_BIANRIES=ON
141
-D WITH_CYCLES_DEVICE_HIPRT=ON
142
-D HIPRT_INCLUDE_DIR=/opt/rocm/include
143
-D HIP_LINKER_EXECUTABLE=/opt/rocm/lib/llvm/bin/clang++
144
-D OCLOC_INSTALL_DIR=/usr
145
-D OPTIX_ROOT_DIR="$srcdir"
146
-D PYTHON_VERSION="$(_get_pyver)"
147
# -D SYCL_CPP_FLAGS=--verbose # for debugging
148
-D SYCL_ROOT_DIR=/opt/intel/oneapi/compiler/latest
149
-D SYCL_OFFLINE_COMPILER_PARALLEL_JOBS=8
150
-D USD_ROOT_DIR=/usr
151
-D WITH_CYCLES_OSL=ON
152
-D WITH_INSTALL_PORTABLE=OFF
153
-D WITH_PYTHON_INSTALL=OFF
154
-G Ninja
155
-S "Bforartists-$pkgver"
156
-W no-dev
157
)
158
159
# CUDA arch 90 is unsupported
160
echo 'set(CYCLES_CUDA_BINARIES_ARCH sm_52 sm_53 sm_60 sm_61 sm_62 sm_70 sm_72 sm_75 sm_80 sm_86 sm_87 sm_89 compute_89 CACHE STRING "CUDA architectures to build binaries for" FORCE)' > precache
161
echo 'mark_as_advanced(CYCLES_CUDA_BINARIES_ARCH)' >> precache
162
163
cmake "${cmake_options[@]}"
164
cmake --build build
165
}
166
167
package() {
168
DESTDIR="${pkgdir}" cmake --install build
169
170
# Move OneAPI AOT lib to proper place
171
mv "${pkgdir}"/usr/share/bforartists/lib/libcycles_kernel_oneapi_aot.so "${pkgdir}"/usr/lib/
172
}
173
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 |