epics-base
The source is a tarball from the project's official domain (epics-controls.org), which is plausibly the project's own release infrastructure; building from official project sources is normal AUR packaging practice, even if the host isn't on a whitelist.
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (qwen/qwen3-235b-a22b-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The source is a tarball from the project's official domain (epics-controls.org), which is plausibly the project's own release infrastructure; building from official project sources is normal AUR packaging practice, even if the host isn't on a whitelist.
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:14
source=("https://epics-controls.org/download/base/base-${pkgver}.tar.gz"{,.asc}
PKGBUILD
1 offending line(s) highlighted# Maintainer: Julian Houba <info at craftingdragon dot ch>
# Contributor: Grey Christoforo <first name at last name dot net>
# Contributor: Rafael Silva <perigoso at riseup dot net>
pkgname='epics-base'
pkgver=7.0.10
pkgrel=2
pkgdesc="Experimental Physics and Industrial Control System"
arch=('x86_64')
url="https://epics-controls.org"
license=('LicenseRef-EPICS-Open-License')
groups=('epics')
depends=('readline' 'ncurses' 'perl')
source=("https://epics-controls.org/download/base/base-${pkgver}.tar.gz"{,.asc}
'01_install_permissions.patch'
'02_no_rpath.patch'
)
sha512sums=('94b238ff014feb5c8550659b13891699b181454bbf784bb365e366aebd2c840e59a31d97a854f2e32027fbd7bfc10377935225440198dc0930535721b73244ed'
'SKIP'
'8d8ea744e1bd011c0a01c645a37cd29c420830389ce340820975ea798c6138ce28d7d5e066fe503025fb353a2e19c1a33169a3d5777414e60b42eb5b3874091a'
'394b023fe3003e61701c8c31d44c17281297a3b67f3bbe604e9191f38267986c34b06fe24eae5e778a29b466b022bdce5d4d0f4061da9c91a44467f1e0d266a3')
validpgpkeys=('4B688BF5CAF9452CBD5BE86FD306120EEACB4576') # Andrew Johnson (Argonne)
prepare() {
cd "base-${pkgver}"
# apply patches
patch --forward --strip=1 --input="${srcdir}/01_install_permissions.patch"
patch --forward --strip=1 --input="${srcdir}/02_no_rpath.patch"
# install files to staging area
echo "INSTALL_LOCATION=${srcdir}/staging/usr/lib/epics" >'configure/CONFIG_SITE.local'
# final install location
echo 'FINAL_LOCATION=/usr/lib/epics' >>'configure/CONFIG_SITE.local'
# get the EPICS_HOST_ARCH and write it to a file
echo $(perl -CSD src/tools/EpicsHostArch.pl) >"${srcdir}/EPICS_HOST_ARCH"
}
build() {
cd "base-${pkgver}"
# get the EPICS_HOST_ARCH and set it as an environment variable
export EPICS_HOST_ARCH=$(cat "${srcdir}/EPICS_HOST_ARCH")
# export the library path for the linker at build time
export LD_LIBRARY_PATH="${srcdir}/staging/usr/lib/epics/lib/${EPICS_HOST_ARCH}"
# export perl library path for build time resolution
# export PERL5LIB="${srcdir}/staging/usr/lib/epics/lib/perl"
# build and install to staging area, "-s" for silent build
make -s
}
package() {
cd "staging/usr/lib/epics"
# everything is installed relative to EPICS_BASE and linked to the system paths
# because a lot of the EPICS tools and epics modules expect the files to be in these locations
# get the EPICS_HOST_ARCH and set it as an local variable
local EPICS_HOST_ARCH=$(cat "${srcdir}/EPICS_HOST_ARCH")
local EPICS_BASE="${pkgdir}/usr/lib/epics"
# install library files and link them to the system library path
install -dm755 "${EPICS_BASE}/lib/${EPICS_HOST_ARCH}"
cp -P "lib/${EPICS_HOST_ARCH}"/*.so* "${EPICS_BASE}/lib/${EPICS_HOST_ARCH}"
for lib in "${EPICS_BASE}/lib/${EPICS_HOST_ARCH}"/*.so*; do
ln -sr "${lib}" "${pkgdir}/usr/lib/"
done
# install perl modules and link them to the system perl path
cp -r lib/perl "${EPICS_BASE}/lib"
local PERL_VERSION=$(perl -V:version | perl -pe '($_)=/([0-9]+([.][0-9]+)?)/')
install -dm755 "${pkgdir}/usr/lib/perl5/${PERL_VERSION}/vendor_perl" "${pkgdir}/usr/share/perl5/vendor_perl"
for module in DBD EPICS CA.pm DBD.pm; do
ln -sr "${EPICS_BASE}/lib/perl/${module}" "${pkgdir}/usr/share/perl5/vendor_perl"
done
for lib in $(find "${EPICS_BASE}/lib/perl" -name '*.so'); do
ln -sr "${lib}" "${pkgdir}/usr/lib/perl5/${PERL_VERSION}/vendor_perl"
done
# Install bin files and link the public EPICS commands to the system path.
install -dm755 "${EPICS_BASE}/bin/${EPICS_HOST_ARCH}" "${pkgdir}/usr/bin"
cp -P "bin/${EPICS_HOST_ARCH}"/* "${EPICS_BASE}/bin/${EPICS_HOST_ARCH}"
for bin in \
caConnTest caEventRate caRepeater caget cainfo camonitor caput casw catime \
pvcall pvget pvinfo pvlist pvmonitor pvput \
iocLogServer makeBpt msi softIoc softIocPVA; do
ln -sr "${EPICS_BASE}/bin/${EPICS_HOST_ARCH}/${bin}" "${pkgdir}/usr/bin"
done
# install include files and link them to the system include path
install -dm755 "${pkgdir}/usr/include/epics"
cp -r include "${EPICS_BASE}"
ln -sr -t "${pkgdir}/usr/include/epics" "${EPICS_BASE}/include"
# cfg, configure, db, dbd are installe to EPICS_BASE and don't have appropriate system locations
install -dm755 "${pkgdir}/usr/share/epics"
cp -rt "${EPICS_BASE}" cfg configure db dbd templates
for dir in db dbd templates; do
ln -sr "${EPICS_BASE}/${dir}" "${pkgdir}/usr/share/epics"
done
# install pkgconfig files to the system path
install -Dm644 -t "${pkgdir}/usr/lib/pkgconfig" lib/pkgconfig/epics-base{,"-${EPICS_HOST_ARCH}"}.pc
# install docs
install -dm755 "${pkgdir}/usr/share/doc/epics"
cp -r html "${pkgdir}/usr/share/doc/epics"
# install LICENSE file
install -Dm644 "${srcdir}/base-${pkgver}/LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
# install a env file to set the EPICS_HOST_ARCH and EPICS_BASE
printf '# Entries in this file set the host environment for EPICS\nEPICS_HOST_ARCH="%s"\nEPICS_BASE="/usr/lib/epics"\n' \
"${EPICS_HOST_ARCH}" |
install -Dm644 /dev/stdin "${pkgdir}/usr/lib/environment.d/10-epics-base.conf"
# Patch epics config_site local install location to current folder (.)
sed -i "s|${srcdir}/staging/usr/lib/epics|./usr/lib/epics|g" "${pkgdir}/usr/lib/epics/configure/CONFIG_SITE.local"
# TODO: makepkg complains the package contains references to $srcdir
}
Scan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-11-06 00:21:40 | Low | 2 |
| 2026-11-05 00:01:40 | Low | 2 |
| 2026-11-04 00:25:23 | Low | 2 |
| 2026-11-03 00:01:00 | Low | 2 |
| 2026-11-02 00:26:00 | Low | 2 |
| 2026-11-01 00:21:48 | Low | 2 |
| 2026-10-31 00:07:41 | Low | 2 |
| 2026-10-30 00:29:30 | Low | 2 |
| 2026-10-29 00:13:55 | Low | 2 |
| 2026-10-28 00:06:54 | Low | 2 |
| 2026-10-27 15:48:05 | Medium | 1 |
| 2026-10-27 00:23:28 | Low | 2 |
| 2026-10-26 00:12:40 | Low | 2 |
| 2026-10-25 00:20:48 | Low | 2 |
| 2026-10-24 00:14:55 | Low | 2 |
| 2026-10-23 00:02:19 | Low | 2 |
| 2026-10-22 00:13:10 | Low | 2 |
| 2026-10-21 00:12:50 | Low | 2 |
| 2026-10-20 00:10:31 | Low | 2 |
| 2026-10-19 00:03:55 | Low | 2 |