inversecsg
maintainer LuckyTurtleDev
· 0 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The source is a research artifact from an ACM Digital Library URL, which is legitimate but not on standard whitelists; it's a data archive for a peer-reviewed paper, and the extracted code is built from source with visible patches, posing no active execution risk or supply-chain red flags.
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 source is a research artifact from an ACM Digital Library URL, which is legitimate but not on standard whitelists; it's a data archive for a peer-reviewed paper, and the extracted code is built from source with visible patches, posing no active execution risk or supply-chain red flags.
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:11
source=("https://dl.acm.org/action/downloadSupplement?doi=10.1145%2F3272127.3275006&file=a213-du.zip"
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: LuckyturtleDev [aur at lukas1818 dot de]
2
3
pkgname=inversecsg
4
pkgver=r1
5
pkgrel=2
6
pkgdesc="Automatic Conversion of 3D Models to CSG Trees"
7
arch=('any')
8
url="http://inversecsg.csail.mit.edu/"
9
makedepends=('sd' 'ripgrep')
10
depends=('autoconf' 'bison' 'cmake' 'eigen' 'flex' 'ipython' 'libtool' 'mercurial' 'python' 'python-scikit-learn' 'python-numpy' 'python-scipy' 'python-matplotlib' 'sketch' 'zsh') #'python-sketch'
11
source=("https://dl.acm.org/action/downloadSupplement?doi=10.1145%2F3272127.3275006&file=a213-du.zip"
12
"remove_genetic_algorithm_pipeline.patch"
13
"set_ENVIRONMENT_file.patch"
14
"default_build_dir.patch"
15
"mesh_arg_is_not_optional.patch"
16
"ENVIRONMENT")
17
sha512sums=('5129a87f675ad4963c23d362862d5f16c8fb9f065d028f970d8b9a36db446f297603ca5f4d0cd3822b86d8ce5e088c6d7354dfa33b43e27fdf702fd8996da263'
18
'9c6ac477af4192056f329d189cd8e7c16f5e4de4b83b9e8d21fb05f0142aa77f526ffbe47bf30292a34210559d203cd9f8920f5345b46154d7a2b39960a8a325'
19
'15168403b011374c82b73f2b478c47c476df4db20e3feba5d18aa32afbe4cc644bf9ad8bae2268be4e8cb7900d38e7f27cc2efd3e1e1534c4ef01535f97dac39'
20
'4d56563cbee8b2c0abd31f63afc8266c1516af983479f51141a2899a28401ff93d7cadc9a3d05f861412fffa3bb6545f44946e9c52838c6a20257a1da79f638f'
21
'e6301e41fe2f2482c01e66cb123c3db457c1cfedb8637bb1de09442aa9fad4710f3109fdbd391c2575ec1b7455034916dedab186963fdf76b7490fee8a19ff4f'
22
'3462c27e4b9c53f0732b839016fb9fd03759850b83cf69b1709f5588e8b5f5c86462aa7accc9fc6f51559c2966b9bf419107b328ebcf45d687a09e6a685dbe25')
23
24
prepare() {
25
cd "$srcdir/inverse_csg/"
26
27
# I have no idea from with lib the remove_genetic_algorithm_pipeline came from, disable it to avoid import error
28
patch -Np1 -i "$srcdir/remove_genetic_algorithm_pipeline.patch"
29
30
# change patch of the `ENVIRONMENT` file to `/opt/inverscsg/ENVIRONMENT`, to be able to run this program with every working directory
31
patch -Np1 -i "$srcdir/set_ENVIRONMENT_file.patch"
32
33
# looks like build_dir does not do anything anymore; howerever the folder must still exist; change default to `/opt/inverscsg/` to avoid error
34
patch -Np1 -i "$srcdir/default_build_dir.patch"
35
36
# the mesh comand line argument is not optional
37
patch -Np1 -i "$srcdir/mesh_arg_is_not_optional.patch"
38
39
# interpreter is missing
40
sed -i '1 i\#!/usr/bin/python' main.py
41
42
mkdir -p build/cpp
43
cd "$srcdir/inverse_csg/cpp"
44
45
# eingen include paths are wrong everywehre
46
rg -w --files-with-matches '#include "Eigen/Dense"' | while read file
47
do
48
echo "fix eigen include in $file"
49
sd '#include "Eigen/Dense"' '#include <eigen3/Eigen/Dense>' "$file"
50
done
51
sd '#include "unsupported/Eigen/Polynomials"' '#include <eigen3/unsupported/Eigen/Polynomials>' src/common/polynomial.cpp src/test/test_polynomial_roots.cpp
52
53
# need differnt c++ verison as definded at the CMakeLists.txt
54
sd 'std=c\+\+11' 'std=c++14' CMakeLists.txt
55
}
56
57
build() {
58
cd "$srcdir/inverse_csg/build/cpp"
59
cmake ../../cpp
60
make
61
}
62
63
package() {
64
cd "$srcdir/inverse_csg/"
65
install -Dm755 "build/cpp/csg_cpp_command" "$pkgdir/usr/bin/csg_cpp_command"
66
# maybe not the best path, but it does work
67
mkdir -p "$pkgdir/opt/$pkgname/"
68
install -Dm755 "main.py" "$pkgdir/opt/$pkgname/"
69
_py_help_path="$pkgdir/opt/$pkgname/"
70
install -Dm755 "helper.py" "$_py_help_path"
71
install -Dm755 "install.py" "$_py_help_path"
72
install -Dm755 "point_cloud_seg.py" "$_py_help_path"
73
install -Dm755 "primitive_to_sketch.py" "$_py_help_path"
74
install -Dm755 "print_data_file.py" "$_py_help_path"
75
install -Dm755 "run_tests.py" "$_py_help_path"
76
install -Dm755 "sketch_pipeline.py" "$_py_help_path"
77
install -Dm755 "surface_primitive_to_sketch.py" "$_py_help_path"
78
install -Dm755 "transforms.py" "$_py_help_path"
79
install -Dm755 "visualize_point_cloud.py" "$_py_help_path"
80
# install required config file
81
cp "../ENVIRONMENT" "$pkgdir/opt/$pkgname/ENVIRONMENT"
82
83
ln -s "$pkgdir/opt/inversecsg/main.py" "$pkgdir/usr/bin/inversecsg"
84
}
85
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 |