lightway-core
The package builds from official sources (GitHub, ruby-lang.org) and installs a Ruby gem (ceedling) locally for build purposes only; the gem is a known testing framework and not executed at runtime, posing minimal risk.
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 official sources (GitHub, ruby-lang.org) and installs a Ruby gem (ceedling) locally for build purposes only; the gem is a known testing framework and not executed at runtime, posing minimal risk.
-
PKGBUILD:45
gem install --no-user-install --install-dir "$_ruby_root" ceedling -v "$_ceedling_ver"
1 higher static finding superseded - not the current verdict (shown for transparency)
alt_pkg_manager_install
A non-pip/npm package manager (pipx, uv, poetry, cargo install, go install, gem, conda…) fetches and builds an external package at build time, outside source=() and makepkg's checksums.
-
PKGBUILD:45
gem install --no-user-install --install-dir "$_ruby_root" ceedling -v "$_ceedling_ver"
PKGBUILD
1 offending line(s) highlighted# Maintainer: Daniel Bermond <dbermond@archlinux.org>
pkgbase=lightway-core
pkgname=('lightway-core' 'lightway-core-doc')
pkgver=1.17.17
pkgrel=1
_ruby_ver=3.1.7
_ceedling_ver=0.31.1
pkgdesc='A VPN protocol by ExpressVPN'
arch=('x86_64')
url='https://www.expressvpn.com/lightway/'
license=('GPL-2.0-or-later')
makedepends=('cmake' 'doxygen' 'gcc14' 'git' 'graphviz')
source=("https://github.com/expressvpn/lightway-core/archive/v${pkgver}/${pkgbase}-${pkgver}.tar.gz"
'git+https://github.com/wolfSSL/wolfssl.git'
"https://cache.ruby-lang.org/pub/ruby/${_ruby_ver%.*}/ruby-${_ruby_ver}.tar.xz"
'010-lightway-core-disable-werror-on-wolfssl.patch')
sha256sums=('56c2643f74a4a0d2e0b6859af1209f6a7d2a6b27659a067ad8160d11ecc26596'
'SKIP'
'658acc455b6bda87ac6cc1380e86552b9c1af87055e7a127589c5bf7ed80b035'
'fd82affc9e605a7963e5b4908d8decc877980ac007f9ba5aabeccf9019cf5727')
prepare() {
local _wolfssl_tag
_wolfssl_tag="$(awk '/HE_WOLFSSL_TAG/ { print $3 }' "${pkgbase}-${pkgver}/3rd_party_deps.yml")"
git -C wolfssl config --local advice.detachedHead false
git -C wolfssl checkout --quiet "$_wolfssl_tag"
patch -d wolfssl -Np1 -i "${srcdir}/010-lightway-core-disable-werror-on-wolfssl.patch"
mkdir -p "${pkgbase}-${pkgver}/third_party"
cp -af wolfssl "${pkgbase}-${pkgver}/third_party"
}
build() {
local _ruby_root="${srcdir}/ruby/${_ruby_ver}"
export GEM_HOME="$_ruby_root"
export GEM_PATH="$_ruby_root"
export PATH="${_ruby_root}/bin${PATH:+":${PATH}"}"
cd "ruby-${_ruby_ver}"
# 'gem install' core dumps when built with gcc 15
CC='gcc-14' \
./configure --prefix="$_ruby_root" --enable-shared
make install
gem install --no-user-install --install-dir "$_ruby_root" ceedling -v "$_ceedling_ver"
export CFLAGS+=' -ffat-lto-objects'
[ -z "$LC_ALL" ] && export LC_ALL='C'
cd "../${pkgbase}-${pkgver}"
ceedling release project:linux
doxygen
}
check() {
local _ruby_root="${srcdir}/ruby/${_ruby_ver}"
export GEM_HOME="$_ruby_root"
export GEM_PATH="$_ruby_root"
export PATH="${_ruby_root}/bin${PATH:+":${PATH}"}"
cd "${pkgbase}-${pkgver}"
ceedling test project:linux
}
package_lightway-core() {
install -D -m644 "${pkgbase}-${pkgver}/build/release"/*.a -t "${pkgdir}/usr/lib"
install -d -m755 "${pkgdir}/usr/include"
cp -dr --no-preserve='ownership' "${pkgbase}-${pkgver}/public" "${pkgdir}/usr/include/libhelium"
}
package_lightway-core-doc() {
pkgdesc+=' (documentation)'
arch=('any')
install -d -m755 "${pkgdir}/usr/share/doc"
cp -dr --no-preserve='ownership' "${pkgbase}-${pkgver}/html" "${pkgdir}/usr/share/doc/${pkgbase}"
}
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 |