vllm-xpu

MEDIUM
maintainer cantosun99 0 votes scanned 2026-10-18 11:24:11.986802
View on AUR
Why flagged

The package pipes bootstrap.pypa.io/get-pip.py directly to a Python interpreter at build time (unverified remote code execution), then installs packages from https://wheels.vllm.ai/xpu/ — a non-official, non-whitelisted wheel index that could serve arbitrary prebuilt binaries; while wheels.vllm.ai appears to be the vLLM project's own distribution host and bootstrap.pypa.io is the canonical pip bootstrap, the combination of piping a remote script to a shell and pulling prebuilt wheels from an extra index with no checksum verification represents a meaningful supply-chain risk.

Triggered rules

Medium External download from an untrusted host, not in source=() external_download_not_in_source

curl/wget fetches a URL on a non-allowlisted host that is not part of source=(), so it is not checksum-verified by makepkg.

  • PKGBUILD:56 curl -sS https://bootstrap.pypa.io/get-pip.py | "$pkgdir/opt/vllm-xpu/bin/python"
Medium Package install from an untrusted index/registry host install_untrusted_index

An install command is pointed at a custom package index / registry on a non-allowlisted host (--index-url / --registry / --extra-index-url), a classic dependency-confusion vector.

  • PKGBUILD:74 $_pip install -v --extra-index-url https://wheels.vllm.ai/xpu/ -r "$_req_file"
  • PKGBUILD:78 $_pip install -v --extra-index-url https://wheels.vllm.ai/xpu/ .
Low Few votes, recently uploaded zero_votes_recent

Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.

Medium AI review llm_review

An AI model (anthropic/claude-sonnet-4.6) reviewed this and agrees it is MEDIUM (confidence 72%): The package pipes bootstrap.pypa.io/get-pip.py directly to a Python interpreter at build time (unverified remote code execution), then installs packages from https://wheels.vllm.ai/xpu/ — a non-official, non-whitelisted wheel index that could serve arbitrary prebuilt binaries; while wheels.vllm.ai appears to be the vLLM project's own distribution host and bootstrap.pypa.io is the canonical pip bootstrap, the combination of piping a remote script to a shell and pulling prebuilt wheels from an extra index with no checksum verification represents a meaningful supply-chain risk.

PKGBUILD

3 offending line(s) highlighted
1# Maintainer: cantosun99 <privat at cantosun dot de>
2pkgname=vllm-xpu
3pkgver=0.32.0
4pkgrel=1
5pkgdesc="vLLM optimized for Intel Arc GPUs"
6arch=('x86_64')
7url="https://github.com/vllm-project/vllm"
8license=('MIT')
9# python311 is required because vLLM and Triton XPU explicitly reject Python 3.14
10depends=('python311' 'intel-compute-runtime' 'level-zero-loader' 'intel-gmmlib' 'intel-deep-learning-essentials')
11makedepends=('python311' 'cmake' 'ninja' 'gcc' 'curl')
12provides=('vllm')
13conflicts=('vllm')
14source=("vllm-${pkgver}.tar.gz::https://github.com/vllm-project/vllm/archive/refs/tags/v${pkgver}.tar.gz")
15sha256sums=('bf592c132f27bbb5f65cff0bbd2ee873eae722b79c8286934fd5b5cf88b43d61')
16install=$pkgname.install
17
18build() {
19 cd "vllm-${pkgver}"
20
21 # Source Intel OneAPI environment for the SYCL compiler
22 if [ -f /opt/intel/oneapi/setvars.sh ]; then
23 source /opt/intel/oneapi/setvars.sh > /dev/null 2>&1 || true
24 else
25 echo "ERROR: /opt/intel/oneapi/setvars.sh not found."
26 echo "Please ensure intel-deep-learning-essentials is fully installed."
27 exit 1
28 fi
29
30 # Set XPU target and limit RAM usage (MAX_JOBS)
31 export VLLM_TARGET_DEVICE=xpu
32 export MAX_JOBS=${MAX_JOBS:-$(nproc)}
33
34 # Fix for setuptools-scm failing on GitHub release tarballs (missing .git folder)
35 export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
36}
37
38package() {
39 cd "vllm-${pkgver}"
40
41 # Re-source OneAPI for the package step
42 if [ -f /opt/intel/oneapi/setvars.sh ]; then
43 source /opt/intel/oneapi/setvars.sh > /dev/null 2>&1 || true
44 fi
45
46 export VLLM_TARGET_DEVICE=xpu
47 export MAX_JOBS=${MAX_JOBS:-$(nproc)}
48 export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
49
50 # Create an isolated virtual environment directly in the install prefix.
51 # We use --without-pip just in case Arch's python311 split package removed ensurepip.
52 # This perfectly bypasses PEP 668 (EXTERNALLY-MANAGED) restrictions!
53 /usr/bin/python3.11 -m venv --without-pip "$pkgdir/opt/vllm-xpu"
54
55 # Download and install pip directly into the isolated venv
56 curl -sS https://bootstrap.pypa.io/get-pip.py | "$pkgdir/opt/vllm-xpu/bin/python"
57
58 local _pip="$pkgdir/opt/vllm-xpu/bin/python -m pip"
59
60 # Upgrade pip and wheel
61 $_pip install --upgrade pip wheel setuptools
62
63 # Find the correct XPU requirements file (vLLM changed its folder structure recently)
64 local _req_file=""
65 if [ -f requirements-xpu.txt ]; then
66 _req_file="requirements-xpu.txt"
67 elif [ -f requirements/xpu.txt ]; then
68 _req_file="requirements/xpu.txt"
69 fi
70
71 # Install XPU specific requirements.
72 # We force the extra index URL to guarantee pip finds triton==3.7.2+xpu!
73 if [ -n "$_req_file" ]; then
74 $_pip install -v --extra-index-url https://wheels.vllm.ai/xpu/ -r "$_req_file"
75 fi
76
77 # Build and install vLLM
78 $_pip install -v --extra-index-url https://wheels.vllm.ai/xpu/ .
79
80 # Fix shebang paths that were hardcoded to the build directory.
81 # During package creation, pip writes shebangs pointing to the build tree
82 # (e.g., /home/user/.../pkg/vllm-xpu/opt/vllm-xpu/bin/python), which no longer
83 # exists after installation. Rewrite them to point to the final install location.
84 local _build_python="$pkgdir/opt/vllm-xpu/bin/python"
85 local _final_python="/opt/vllm-xpu/bin/python"
86 find "$pkgdir/opt/vllm-xpu/bin" -type f -print0 | \
87 xargs -0 sed -i "s|#!${_build_python}|#!${_final_python}|g"
88
89 # Create wrapper scripts in /usr/bin
90 install -d "$pkgdir/usr/bin"
91
92 # Wrapper for OpenAI API server (legacy entry point alias)
93 cat <<'EOF' > "$pkgdir/usr/bin/vllm-xpu"
94#!/bin/bash
95[ -f /opt/intel/oneapi/setvars.sh ] && source /opt/intel/oneapi/setvars.sh > /dev/null 2>&1 || true
96exec /opt/vllm-xpu/bin/vllm serve "$@"
97EOF
98 chmod +x "$pkgdir/usr/bin/vllm-xpu"
99
100 # Wrapper for vllm CLI (e.g. vllm serve, vllm bench)
101 cat <<'EOF' > "$pkgdir/usr/bin/vllm-serve-xpu"
102#!/bin/bash
103[ -f /opt/intel/oneapi/setvars.sh ] && source /opt/intel/oneapi/setvars.sh > /dev/null 2>&1 || true
104exec /opt/vllm-xpu/bin/vllm "$@"
105EOF
106 chmod +x "$pkgdir/usr/bin/vllm-serve-xpu"
107}
108

Scan history

Scanned at (UTC)SeverityRules
2026-10-18 11:24:11 Medium 4
2026-10-18 11:22:05 Medium 4

Report a package

Reports go to the AURWatch maintainer (one person) and are read by hand. No login required.

0 / 4000
Your suggestion