pandoc-static-git
maintainer gesh
· 2 votes
· scanned 2026-08-03 00:08:14.047287
LOW
View on AUR ↗
Why flagged
The package builds from the official GitHub source using cabal, a standard Haskell build tool; the flagged 'external install' refers to normal dependency resolution during build, not execution of untrusted remote code.
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-2507) reviewed the full PKGBUILD and judged it LOW (confidence 95%): The package builds from the official GitHub source using cabal, a standard Haskell build tool; the flagged 'external install' refers to normal dependency resolution during build, not execution of untrusted remote code.
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:68
cabal install pandoc-cli --install-method=copy --installdir "$pkgdir/usr/bin"
PKGBUILD
1 offending line(s) highlighted
1
# Maintainer: Gesh <gesh@gesh.uni.cx>
2
# based on pandoc-sile-git, by
3
# Contributor: Caleb Maclennan <caleb@alerque.com>
4
# Contributor: Felix Yan <felixonmars@archlinux.org>
5
# Contributor: Arch Haskell Team <arch-haskell@haskell.org>
6
7
shopt -s extglob
8
9
pkgname=pandoc-static-git
10
_pkgname_old=(pandoc-cli pandoc)
11
pkgver=3.6.4.r8.g68bb4ae58
12
pkgrel=2
13
pkgdesc='Conversion between markup formats (static build, dynamic Lua support)'
14
arch=('i686' 'x86_64')
15
url='https://pandoc.org'
16
license=('GPL-2.0-or-later')
17
provides=("${_pkgname_old[@]/%/=${pkgver%%*([a-z]).r*}}")
18
conflicts=("${_pkgname_old[@]}")
19
depends=('gmp' 'zlib')
20
makedepends=('git' 'cabal-install' 'ghc' 'curl')
21
optdepends=('texlive-core: for pdf output')
22
_url=https://github.com/jgm/pandoc
23
source=("$pkgname::git+$_url.git")
24
sha256sums=('SKIP')
25
26
pkgver() {
27
cd "$pkgname"
28
git describe --tags --long --match 'pandoc-cli-*' \
29
| sed 's/^pandoc-cli-//;s/^v//' \
30
| awk -F- \
31
'BEGIN { OFS="" }
32
{
33
revcount=$(NF-1)
34
sha=$NF
35
NF=(NF-2)
36
printf "%s.r%s.%s\n", $0, revcount, sha
37
}'
38
}
39
40
prepare() {
41
cd "$pkgname"
42
43
rts=$(date +%s --date="$(curl -I http://hackage.haskell.org/01-index.tar |
44
awk -F': ' '$1 == "Last-modified" { print $2 }')")
45
lts=$(TZ=UTC date +@%s --date='today 00:00')
46
ts=$(printf '%s\n' "$rts" "$lts" | sort -n | head -n1)
47
cabal update hackage.haskell.org,$ts
48
cabal configure --prefix=/usr --docdir=/usr/share/doc/"$pkgname" \
49
--enable-tests --flag embed_data_files
50
cabal build --only-dependencies
51
}
52
53
build() {
54
cd "$pkgname"
55
56
cabal build --offline
57
cabal run -v0 pandoc-cli -- --bash-completion > pandoc.bash
58
}
59
60
check() {
61
cd "$pkgname"
62
cabal test
63
}
64
65
package() {
66
cd "$pkgname"
67
mkdir -p "$pkgdir/usr/bin"
68
cabal install pandoc-cli --install-method=copy --installdir "$pkgdir/usr/bin"
69
env -C "$pkgdir/usr/bin" ln -s pandoc pandoc-lua
70
env -C "$pkgdir/usr/bin" ln -s pandoc pandoc-server
71
install -Dm644 COPYRIGHT "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
72
install -Dm644 pandoc-cli/man/pandoc*.1 -t "$pkgdir"/usr/share/man/man1/
73
install -Dm644 pandoc.bash \
74
"$pkgdir"/usr/share/bash-completion/completions/pandoc
75
}
76
77
# vim:set ts=2 sw=2 et
78
Changes since previous scan
--- PKGBUILD @ 2026-06-20 00:18+++ PKGBUILD @ 2026-08-03 00:08@@ -17,7 +17,7 @@ provides=("${_pkgname_old[@]/%/=${pkgver%%*([a-z]).r*}}") conflicts=("${_pkgname_old[@]}") depends=('gmp' 'zlib')-makedepends=('git' 'cabal-install' 'ghc')+makedepends=('git' 'cabal-install' 'ghc' 'curl') optdepends=('texlive-core: for pdf output') _url=https://github.com/jgm/pandoc source=("$pkgname::git+$_url.git")@@ -39,7 +39,12 @@ prepare() { cd "$pkgname"- cabal update hackage.haskell.org,$(TZ=UTC date +@%s --date='today 00:00')++ rts=$(date +%s --date="$(curl -I http://hackage.haskell.org/01-index.tar |+ awk -F': ' '$1 == "Last-modified" { print $2 }')")+ lts=$(TZ=UTC date +@%s --date='today 00:00')+ ts=$(printf '%s\n' "$rts" "$lts" | sort -n | head -n1)+ cabal update hackage.haskell.org,$ts cabal configure --prefix=/usr --docdir=/usr/share/doc/"$pkgname" \ --enable-tests --flag embed_data_files cabal build --only-dependenciesScan 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 19:39:35 | MEDIUM | 1 |
| 2026-06-20 00:18:46 | CLEAN | 2 |
| 2026-06-19 23:51:18 | CLEAN | 2 |
| 2026-06-19 19:07:35 | LOW | 2 |
| 2026-06-18 16:11:54 | MEDIUM | 1 |