occt-webgl-viewer
The package builds from source hosted on official project forges (Open CASCADE's gitweb and GNU Savannah), which are legitimate but not on the analyzer's whitelist; no untrusted executables or remote code execution.
Triggered rules
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 builds from source hosted on official project forges (Open CASCADE's gitweb and GNU Savannah), which are legitimate but not on the analyzer's whitelist; no untrusted executables or remote code execution.
1 higher static finding superseded - not the current verdict (shown for transparency)
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:22
"opencascade-${pkgver}.tgz::https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/${_pkgver};sf=tgz"
PKGBUILD
1 offending line(s) highlighted# Maintainer: Grey Christoforo <first name at last name dot net>
pkgname=occt-webgl-viewer
pkgver=7.5.0
_ftver=2.10.4 # freetype version to use here
_pkgver=V${pkgver//./_}
pkgrel=1
pkgdesc="Open CASCADE Technology WebGL 3D Viewer for rendering 3d models on a website"
arch=(x86_64)
url="https://www.opencascade.org"
license=(LGPL custom)
depends=()
makedepends=(
tk
gl2ps
emscripten
cmake
ninja
)
options=(!buildflags)
source=(
"opencascade-${pkgver}.tgz::https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=refs/tags/${_pkgver};sf=tgz"
"freetype-${_ftver}.tar.xz::https://download-mirror.savannah.gnu.org/releases/freetype/freetype-${_ftver}.tar.xz"
fix-install-dir-references.patch
)
sha256sums=('c8df7d23051b86064f61299a5f7af30004c115bdb479df471711bab0c7166654'
'86a854d8905b19698bbc8f23b860bc104246ce4854dcea8e3b0fb21284f75784'
'afb584aa453993ae8d9e2b983594558531ede735a5892754b812be30650c9fb5')
prepare() {
cd occt-${_pkgver}
patch -Np1 -i "${srcdir}/fix-install-dir-references.patch"
}
build() {
source /etc/profile.d/emscripten.sh
msg2 "building freetype for the web"
pushd freetype-${_ftver}
emconfigure ./configure
emcmake cmake -Wno-dev \
-G Ninja \
-B ft_build \
-S .
DESTDIR=install emmake cmake --build ft_build -- install
popd
msg2 "building occt for the web"
pushd occt-${_pkgver}
emcmake cmake -Wno-dev \
-D BUILD_MODULE_Draw=NO \
-D BUILD_LIBRARY_TYPE=Static \
-D BUILD_DOC_Overview=NO \
-D 3RDPARTY_FREETYPE_LIBRARY="${srcdir}/freetype-${_ftver}/ft_build/install/usr/local/lib/libfreetype.a" \
-D 3RDPARTY_FREETYPE_LIBRARY_DIR="${srcdir}/freetype-${_ftver}/ft_build/install/usr/local/lib" \
-D 3RDPARTY_FREETYPE_INCLUDE_DIR_ft2build="${srcdir}/freetype-${_ftver}/ft_build/install/usr/local/include/freetype2" \
-D 3RDPARTY_FREETYPE_INCLUDE_DIR_freetype2="${srcdir}/freetype-${_ftver}/ft_build/install/usr/local/include" \
-G Ninja \
-B occt_build \
-S .
DESTDIR=install emmake cmake --build occt_build -- install
#emmake cmake --build occt_build
#pushd occt_build
#emmake ninja install
#emmake make DESTDIR="${srcdir}/occt-${_pkgver}/install" install
#popd
popd
msg2 "building WebGL viewer example"
pushd occt-${_pkgver}/samples/webgl
emcmake cmake -Wno-dev \
-D freetype_DIR="${srcdir}/freetype-${_ftver}/ft_build/install/usr/local/lib/cmake/freetype" \
-D OpenCASCADE_DIR="${srcdir}/occt-${_pkgver}/occt_build/install/usr/local/lib/cmake/opencascade" \
-G Ninja \
-B web_build \
-S .
emmake cmake --build web_build
}
package() {
source /etc/profile.d/emscripten.sh
cd occt-${_pkgver}
pushd samples/webgl
DESTDIR="${pkgdir}/opt/${pkgname}" emmake cmake --build web_build -- install
popd
install -m644 -Dt "${pkgdir}/opt/${pkgname}/usr/local/samples" data/occ/Ball.brep
cp "${pkgdir}/opt/${pkgname}"/usr/local/*.html "${pkgdir}/opt/${pkgname}"/usr/local/index.html
install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" LICENSE_LGPL_21.txt
install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" OCCT_LGPL_EXCEPTION.txt
}
# vim:set ts=2 sw=2 et:
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-09-17 00:27:14 | Low | 2 |
| 2026-09-16 00:03:17 | Low | 2 |
| 2026-09-15 00:25:31 | Low | 2 |
| 2026-09-14 00:27:57 | Low | 2 |
| 2026-09-13 00:19:54 | Low | 2 |
| 2026-09-12 00:25:17 | Low | 2 |
| 2026-09-11 00:19:22 | Low | 2 |
| 2026-09-10 00:22:44 | Low | 2 |
| 2026-09-09 00:04:09 | Low | 2 |
| 2026-09-08 00:18:08 | Low | 2 |
| 2026-09-07 00:30:15 | Low | 2 |
| 2026-09-06 00:17:06 | Low | 2 |
| 2026-09-05 00:16:27 | Low | 2 |
| 2026-09-04 00:03:13 | Low | 2 |
| 2026-09-03 00:15:47 | Low | 2 |
| 2026-09-02 00:02:31 | Low | 2 |
| 2026-09-01 00:11:19 | Low | 2 |
| 2026-08-31 00:19:57 | Low | 2 |
| 2026-08-30 00:04:14 | Low | 2 |
| 2026-08-29 00:29:17 | Low | 2 |