viewport-webkitgtk-bin
maintainer codebam
· 0 votes
· scanned 2026-08-18 03:38:23.746777
LOW
View on AUR ↗
Why flagged
Uploaded within the last 14 days with 2 or fewer community votes — little peer review so far.
Triggered rules
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.
PKGBUILD
1
# Maintainer: Sean Behan <codebam@riseup.net>
2
#
3
# The same compositor as `viewport-webkitgtk`, already built. The
4
# source package compiles the whole tree — Smithay, wgpu and a WebKitGTK shell
5
# process — which is an hour on a laptop; this one unpacks the binaries the
6
# release was cut with instead.
7
#
8
# The upstream artifact is itself an Arch package, built from the recipe in
9
# packaging/aur/viewport-webkitgtk of the tagged tree, so what lands in $pkgdir here is
10
# byte for byte what the source package would have produced.
11
12
pkgname=viewport-webkitgtk-bin
13
pkgver=0.1.8
14
pkgrel=1
15
pkgdesc='Wayland compositor whose shell is a web page — WebKitGTK, out of process (binary release)'
16
arch=('x86_64')
17
url='https://github.com/codebam/viewport'
18
license=('GPL-3.0-or-later')
19
20
# The pkgrel of the upstream artifact, which moves independently of this
21
# package's own: a fix to this recipe bumps pkgrel without a new release to
22
# download.
23
_pkgrel=1
24
25
depends=(
26
'wayland'
27
'libxkbcommon'
28
'pixman'
29
'libdrm'
30
'libinput'
31
'seatd'
32
'systemd-libs'
33
'mesa'
34
'libglvnd'
35
'vulkan-icd-loader'
36
'pipewire'
37
'libxcb'
38
'xcb-util-wm'
39
'webkitgtk-6.0'
40
'gtk4'
41
# WebKit guesses the type of a file:// page from the shared MIME database.
42
# Without it the bundled shell loads "successfully" and draws nothing.
43
'shared-mime-info'
44
)
45
46
optdepends=(
47
'xorg-xwayland: X11 clients'
48
'xdg-desktop-portal-gtk: the portal interfaces the compositor does not answer itself'
49
# Vulkan is the renderer wherever a Vulkan device owns the display; without
50
# one the compositor draws with OpenGL instead, so these are what decide
51
# which of the two a machine gets rather than whether it starts at all.
52
'vulkan-radeon: AMD hardware'
53
'vulkan-intel: Intel hardware'
54
'nvidia-utils: NVIDIA hardware, and hardware video decode with it'
55
# In a virtual machine: Venus passes Vulkan through to the host's GPU, and
56
# needs the host to offer it — QEMU wants
57
# `-device virtio-gpu-gl-pci,venus=on,blob=on,hostmem=2G`. Without it the
58
# only device that loads is lavapipe, which owns no DRM node, cannot drive
59
# a display, and turns every shell-frame copy into a copy on the CPU.
60
'vulkan-virtio: a virtual machine with 3D acceleration'
61
'vulkan-swrast: software Vulkan, for tests rather than a session'
62
'libva-mesa-driver: hardware video decode, for zero-copy video'
63
# The bar's icons are Material Design glyphs from a Nerd Font patch, and the
64
# family names in the shell's CSS are the ones fontconfig reports:
65
# "FiraCode Nerd Font" first, "Symbols Nerd Font" as the fallback that
66
# carries the glyphs without the monospace face. With neither installed the
67
# bar still lays out and every icon in it is a replacement box.
68
'ttf-firacode-nerd: the icons in the bar, and the font the shell names first'
69
'ttf-nerd-fonts-symbols: the icons in the bar, without the patched monospace family'
70
)
71
72
provides=("viewport=$pkgver" "viewport-webkitgtk=$pkgver")
73
# Every engine's package installs a binary called `viewport` and provides that
74
# name, so a system takes one of them — this one, the source recipe it was
75
# built from, or another engine's.
76
conflicts=('viewport'
77
'viewport-webkitgtk'
78
'viewport-wpe'
79
'viewport-chromium')
80
81
# Nothing to strip and nothing to index: these binaries were stripped where
82
# they were built, and a -debug package cut from them would hold no symbols.
83
options=('!strip' '!debug')
84
85
# Downloaded under a name that is not *.pkg.tar.*, so the artifact sitting in
86
# the build directory is not mistaken for the package this recipe produced.
87
source_x86_64=("$pkgname-$pkgver.tar.zst::$url/releases/download/v$pkgver/viewport-webkitgtk-$pkgver-$_pkgrel-$CARCH.pkg.tar.zst")
88
sha256sums_x86_64=('a3a95f61de03c13e8ce98168d5d59182bf3a0fa4194cf2870ae5b8735ca84e4e')
89
90
package() {
91
# The source is an Arch package, so makepkg has already unpacked a $pkgdir
92
# tree into $srcdir; everything beside usr/ is package metadata that pacman
93
# generates again for this package.
94
cp -a "$srcdir/usr" "$pkgdir/usr"
95
96
# The man page comes with the artifact rather than being installed here:
97
# this recipe unpacks a built package, so `$srcdir` holds `usr/` and the
98
# metadata pacman regenerates, and there is no source tree to copy a page
99
# out of. The source recipe installs it, so the `cp -a` above carries it.
100
101
# The licence directory is named for the package that installed it, and that
102
# is a different name here.
103
mv "$pkgdir/usr/share/licenses/viewport-webkitgtk" \
104
"$pkgdir/usr/share/licenses/$pkgname"
105
}
106
Changes since previous scan
--- PKGBUILD @ 2026-08-17 00:18+++ PKGBUILD @ 2026-08-18 03:38@@ -10,7 +10,7 @@ # byte for byte what the source package would have produced. pkgname=viewport-webkitgtk-bin-pkgver=0.1.7+pkgver=0.1.8 pkgrel=1 pkgdesc='Wayland compositor whose shell is a web page — WebKitGTK, out of process (binary release)' arch=('x86_64')@@ -85,7 +85,7 @@ # Downloaded under a name that is not *.pkg.tar.*, so the artifact sitting in # the build directory is not mistaken for the package this recipe produced. source_x86_64=("$pkgname-$pkgver.tar.zst::$url/releases/download/v$pkgver/viewport-webkitgtk-$pkgver-$_pkgrel-$CARCH.pkg.tar.zst")-sha256sums_x86_64=('8c69164ea0a51a9b1f788874482a30853796f486a778bda74e644f73cc150874')+sha256sums_x86_64=('a3a95f61de03c13e8ce98168d5d59182bf3a0fa4194cf2870ae5b8735ca84e4e') package() { # The source is an Arch package, so makepkg has already unpacked a $pkgdirScan history
| Scanned at (UTC) | Severity | Rules |
|---|---|---|
| 2026-08-18 03:38:23 | LOW | 1 |
| 2026-08-17 00:18:29 | CLEAN | 2 |
| 2026-08-16 01:31:50 | LOW | 1 |