calculix-ccx

maintainer mauritiusdadd · 29 votes · scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged The source URLs are hosted on the project maintainer's personal domain (dhondt.de), which is not a standard forge but is the official source for CalculiX; the tarballs are the project's own source code, built locally, and the checksums are verified, so the risk is low despite the non-whitelisted host.

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 URLs are hosted on the project maintainer's personal domain (dhondt.de), which is not a standard forge but is the official source for CalculiX; the tarballs are the project's own source code, built locally, and the checksums are verified, so the risk is low despite the non-whitelisted host.

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:26 "http://www.dhondt.de/ccx_${pkgver}.src.tar.bz2"

PKGBUILD

1 offending line(s) highlighted
1# Maintainer: Maurizio D'Addona <mauritiusdadd@gmail.com>
2# Contributor: Sven Niese <Fd3querm@yahoo.de>
3# Contributor: Daniel Murphy <mosquitogang201@gmail.com>
4
5# NOTE: If build fails try to add the option "!makeflags" to options array
6# !buildflags is needed in order to compile the code
7
8pkgname=calculix-ccx
9pkgver=2.23
10pkgrel=1
11provides=('calculix')
12replaces=('calculix')
13conflicts=('calculix')
14pkgdesc="CalculiX: 3D Structural Finite Element Program - Solver"
15arch=('i686' 'x86_64')
16options=(!buildflags)
17url="http://www.calculix.de/"
18license=('GPL2')
19depends=('arpack' 'spooles' 'blas')
20optdepends=('calculix-doc: documentation and examples'
21 'tetgen: for tet meshing')
22makedepends=('gcc-fortran' 'perl')
23checkdepends=('perl')
24
25source=(
26 "http://www.dhondt.de/ccx_${pkgver}.src.tar.bz2"
27 "http://www.dhondt.de/ccx_${pkgver}.test.tar.bz2"
28 "http://www.dhondt.de/ccx_${pkgver}.fluidtest.tar.bz2"
29 "http://www.dhondt.de/ccx_${pkgver}.structest.tar.bz2"
30)
31
32sha256sums=('9c88385c10fb04f5dc6c4e98027a51bebdd8aee3920e05190d6c1dd08357d6e7'
33 'be2259fd9a7b990d0453b30708e1b05f2cd4b6df4a90fa96f0e4abd1ae7beaa0'
34 'db8b1361b89e357266d1dcebc071b3fd9fd37b83b4b7bb6f4a0f99b1759fbe80'
35 '3407b2ce1366df62b1ab43a21ea76ff54386b8842e6cd8660fd9047526be5dec')
36#
37# NOTE: remove -Wno-implicit when code is fixed by upstream
38# idem for -Wno-return-mismatch
39#
40build()
41{
42 cd "${srcdir}/CalculiX/ccx_${pkgver}/src"
43 make CFLAGS="${CFLAGS} -Wno-return-mismatch -Wno-implicit -O2 -fopenmp \
44 -I /usr/include/spooles \
45 -DARCH=\"Linux\" -DSPOOLES -DARPACK -DMATRIXSTORAGE \
46 -DNETWORKOUT -DUSE_MT=1" \
47 FFLAGS='-Wall -O2 -cpp -fopenmp -fpic -fallow-argument-mismatch' \
48 LIBS='-lpthread -lm -lc -lspooles -larpack -lblas -llapack -lgomp'
49}
50
51check()
52{
53 tests=('beamp' 'ball' 'pipe' 'pipe2' 'planestress'
54 'gap' 'gap2' 'capacitor' 'carbonseal' 'beamptied1'
55 'beamp1rotate' 'beamp2' 'beamp2rotate' 'beamf' 'beamhf'
56 'furnace' 'gaspipe1' 'gaspipe1-oil' 'gaspipe2'
57 'gaspipe3' 'gaspipe4' 'gaspipe5' 'gaspipe6' 'gaspipe7'
58 'gaspipe8' 'gaspipe-cfd-pressure' 'gaspipe8-cfd-pressure'
59 'gaspipe8-cfd-massflow' 'gaspipe8-cfd-pressure'
60 'gaspipe8-cfd-pressure-split' 'green1' 'green2' 'green3'
61 'green4' 'hinge' 'hueeber1' 'hueeber2' 'induction' 'induction2'
62 'inistrain' 'largerot1' 'linearnet' 'mass1' 'mass2' 'mass3'
63 'massflow_percent_ccx' 'membrane1' 'metalforming' 'modelchel'
64 'networkmpc' 'oneel' 'pendel' 'resstress1'
65 'restrictor' 'segment' 'sensitivity_I' 'shell1'
66 'shellbeam' 'shellf' 'simplebeam' 'spring1' 'spring2'
67 'small_pressure_gradient' 'square' 'substructure' 'swing'
68 'thermomech' 'transition' 'truss' 'vortex1' 'wire')
69
70 msg "Testing solver..."
71 cd ${srcdir}/CalculiX/ccx_${pkgver}/test
72
73 error_status=0
74 start_time="$(date -u +%s)"
75 for test_name in "${tests[@]}" ; do
76 ref_file=${test_name}.dat.ref
77 dat_file=${test_name}.dat
78 frd_file=${test_name}.frd
79 log_file=${test_name}.log
80
81 msg2 "testing ${test_name}"
82 rm -f ${dat_file}
83 rm -f ${frd_file}
84
85 # Testing on maximum 4 cores
86 OMP_NUM_THREADS=4 ../src/ccx_${pkgver} ${test_name} &> ${log_file} ||\
87 warning "check $(pwd)/${log_file}"
88
89 if [ ! -f ${dat_file} ]; then
90 warning "${dat_file} does not exist"
91 error_status=1
92 fi
93
94 sum1="$(wc -l ${dat_file})"
95 sum2="$(wc -l ${ref_file})"
96 if [ ${sum1%* *} != ${sum2%* *} ]; then
97 warning "The data file generated by ccx is not valid"
98 error_status=1
99 fi
100
101 if grep "NaN" ${dat_file} ; then
102 warning "${dat_file} contains NaNs!"
103 error_status=1
104 fi
105
106 if ! ./datcheck.pl ${test_name} ; then
107 warning "Result is inconsistent with reference data!"
108 error_status=1
109 fi
110 done
111
112 cd ${srcdir}/CalculiX/ccx_${pkgver}/fluidtest
113 for test_name in ./*.inp ; do
114 msg2 "testing ${test_name}"
115 OMP_NUM_THREADS=4 ../src/ccx_${pkgver} ${test_name} &> ${log_file} ||\
116 error_status=1 warning "check $(pwd)/${log_file}"
117 done
118
119 cd ${srcdir}/CalculiX/ccx_${pkgver}/structest
120 for test_name in ./*.inp ; do
121 msg2 "testing ${test_name}"
122 OMP_NUM_THREADS=4 ../src/ccx_${pkgver} ${test_name} &> ${log_file} ||\
123 error_status=1 warning "check $(pwd)/${log_file}"
124 done
125 end_time="$(date -u +%s)"
126 elapsed="$(($end_time-$start_time))"
127
128 msg "Total of $elapsed seconds elapsed for tesing"
129
130 return $error_status
131}
132
133package()
134{
135 install -d ${pkgdir}/usr/bin
136 install -Dm755 ${srcdir}/CalculiX/ccx_${pkgver}/src/ccx_${pkgver} ${pkgdir}/usr/bin/ccx
137}
138

Scan history

Scanned at (UTC)SeverityRules
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

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion