wiki2pdf-git
Triggered rules
llm_review
The static rules flagged this MEDIUM, but an AI model (anthropic/claude-4.6-sonnet-20260217) reviewed the full PKGBUILD and judged it LOW (confidence 82%): The source is a named GitHub repository (madajaju/wiki2pdf) cloned via git+https, which is a standard AUR pattern for -git packages. The SKIP checksum is expected for VCS sources. The 'npm install' in prepare() fetches dependencies declared in the upstream package.json from the npm registry (standard practice), and the npm cache is redirected to a local srcdir path. The flagged line 69 ('npm install -g ... $(npm pack . | tail -n1)') installs the locally-packed tarball of the project itself — not an external untrusted package — so the variable substitution is not a supply-chain risk. The main concerns are: (1) npm dependencies are fetched at build time without lockfile pinning, which is sloppy but common in AUR npm packages; (2) the upstream repo could be compromised, but this applies to any VCS source. There is no executed binary from an unofficial host, no obfuscation, and no piracy. This is standard -git AUR packaging with the usual npm dependency fetching pattern — low risk, not medium.
-
PKGBUILD:69
npm install -g --cache "${srcdir}/npm-cache" --prefix="${pkgdir}/usr" "$(npm pack . | tail -n1)"
1 higher static finding superseded - not the current verdict (shown for transparency)
npm_install_external
Runs `npm/yarn/pnpm install <package>` for a package not in source=(), pulling unpinned, unreviewed code at build time. Severity downgraded: the package declares/looks like a Node.js consumer, where build-time installs are expected.
-
PKGBUILD:69
npm install -g --cache "${srcdir}/npm-cache" --prefix="${pkgdir}/usr" "$(npm pack . | tail -n1)"
PKGBUILD
1 offending line(s) highlighted# Maintainer: dreieck
_pkgname='wiki2pdf'
pkgname="${_pkgname}-git"
epoch=2
pkgver=1.0.5.r6.20171207.19e936a
pkgrel=3
pkgdesc='Github Wiki to pdf Converter allows you to generate HTML & PDF documentation from your Github wiki or any other markdown-based wiki.'
arch=('any')
url='https://github.com/madajaju/wiki2pdf'
license=('MIT')
depends=(
'gcc-libs'
'glibc'
'nodejs'
'libfontconfig.so'
'libfreetype.so'
'libz.so'
'wkhtmltopdf'
)
makedepends=(
'git'
'jshon' # To get package version
'npm'
)
provides=(
"${_pkgname}=${pkgver}"
)
conflicts=(
"${_pkgname}"
)
source=(
"${_pkgname}::git+https://github.com/madajaju/wiki2pdf.git"
)
sha256sums=(
'SKIP'
)
prepare() {
cd "${srcdir}/${_pkgname}"
msg2 "Installing npm modules ..."
npm install --cache "${srcdir}/npm-cache"
}
pkgver () {
cd "${srcdir}/${_pkgname}"
_ver="$(jshon -e version < package.json | tr -d '"')"
_rev="$(git rev-list --count HEAD)"
_date="$(git log -1 --date=format:"%Y%m%d" --format="%ad")"
_hash="$(git rev-parse --short HEAD)"
if [ -z "${_ver}" ]; then
error "Version could not be determined."
return 1
else
printf '%s' "${_ver}.r${_rev}.${_date}.${_hash}"
fi
}
build() {
cd "${srcdir}/${_pkgname}"
npm run build
}
package() {
cd "${srcdir}/${_pkgname}"
npm install -g --cache "${srcdir}/npm-cache" --prefix="${pkgdir}/usr" "$(npm pack . | tail -n1)"
chown -R root:root "${pkgdir}"/*
install -D -v -m644 README.md "${pkgdir}/usr/share/doc/${_pkgname}/README.md"
install -D -v -m644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.MIT.txt"
}
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 |