lightway-core
maintainer dbermond
· 2 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
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
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 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)
MEDIUM
External install via pipx/uv/poetry/cargo/go/gem
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
1
# Maintainer: Daniel Bermond <dbermond@archlinux.org>
2
3
pkgbase=lightway-core
4
pkgname=('lightway-core' 'lightway-core-doc')
5
pkgver=1.17.17
6
pkgrel=1
7
_ruby_ver=3.1.7
8
_ceedling_ver=0.31.1
9
pkgdesc='A VPN protocol by ExpressVPN'
10
arch=('x86_64')
11
url='https://www.expressvpn.com/lightway/'
12
license=('GPL-2.0-or-later')
13
makedepends=('cmake' 'doxygen' 'gcc14' 'git' 'graphviz')
14
source=("https://github.com/expressvpn/lightway-core/archive/v${pkgver}/${pkgbase}-${pkgver}.tar.gz"
15
'git+https://github.com/wolfSSL/wolfssl.git'
16
"https://cache.ruby-lang.org/pub/ruby/${_ruby_ver%.*}/ruby-${_ruby_ver}.tar.xz"
17
'010-lightway-core-disable-werror-on-wolfssl.patch')
18
sha256sums=('56c2643f74a4a0d2e0b6859af1209f6a7d2a6b27659a067ad8160d11ecc26596'
19
'SKIP'
20
'658acc455b6bda87ac6cc1380e86552b9c1af87055e7a127589c5bf7ed80b035'
21
'fd82affc9e605a7963e5b4908d8decc877980ac007f9ba5aabeccf9019cf5727')
22
23
prepare() {
24
local _wolfssl_tag
25
_wolfssl_tag="$(awk '/HE_WOLFSSL_TAG/ { print $3 }' "${pkgbase}-${pkgver}/3rd_party_deps.yml")"
26
git -C wolfssl config --local advice.detachedHead false
27
git -C wolfssl checkout --quiet "$_wolfssl_tag"
28
29
patch -d wolfssl -Np1 -i "${srcdir}/010-lightway-core-disable-werror-on-wolfssl.patch"
30
31
mkdir -p "${pkgbase}-${pkgver}/third_party"
32
cp -af wolfssl "${pkgbase}-${pkgver}/third_party"
33
}
34
35
build() {
36
local _ruby_root="${srcdir}/ruby/${_ruby_ver}"
37
export GEM_HOME="$_ruby_root"
38
export GEM_PATH="$_ruby_root"
39
export PATH="${_ruby_root}/bin${PATH:+":${PATH}"}"
40
cd "ruby-${_ruby_ver}"
41
# 'gem install' core dumps when built with gcc 15
42
CC='gcc-14' \
43
./configure --prefix="$_ruby_root" --enable-shared
44
make install
45
gem install --no-user-install --install-dir "$_ruby_root" ceedling -v "$_ceedling_ver"
46
47
export CFLAGS+=' -ffat-lto-objects'
48
[ -z "$LC_ALL" ] && export LC_ALL='C'
49
cd "../${pkgbase}-${pkgver}"
50
ceedling release project:linux
51
doxygen
52
}
53
54
check() {
55
local _ruby_root="${srcdir}/ruby/${_ruby_ver}"
56
export GEM_HOME="$_ruby_root"
57
export GEM_PATH="$_ruby_root"
58
export PATH="${_ruby_root}/bin${PATH:+":${PATH}"}"
59
60
cd "${pkgbase}-${pkgver}"
61
ceedling test project:linux
62
}
63
64
package_lightway-core() {
65
install -D -m644 "${pkgbase}-${pkgver}/build/release"/*.a -t "${pkgdir}/usr/lib"
66
install -d -m755 "${pkgdir}/usr/include"
67
cp -dr --no-preserve='ownership' "${pkgbase}-${pkgver}/public" "${pkgdir}/usr/include/libhelium"
68
}
69
70
package_lightway-core-doc() {
71
pkgdesc+=' (documentation)'
72
arch=('any')
73
74
install -d -m755 "${pkgdir}/usr/share/doc"
75
cp -dr --no-preserve='ownership' "${pkgbase}-${pkgver}/html" "${pkgdir}/usr/share/doc/${pkgbase}"
76
}
77
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 |