GNOME PKPASS Integration
Aim of this project is to make an Apple Wallet pass a first-class file on the
GNOME desktop.
A .pkpass is a ZIP built by an issuer: pass.json
describes the pass, manifest.json records a SHA-1 digest for every
member, and signature carries a detached PKCS#7 signature over the
manifest.
A stock Linux desktop has nothing registered for the format, so a downloaded
pass is an opaque file.
This project reads the pass, checks it, draws it, and registers itself as the application that opens it. Everything the desktop does is also available on the command line, and every change the tool makes to the desktop can be reversed.
What it does
pkpass-inspectreports the container, the pass, its fields, its barcodes, its locations, and its images, and checks the manifest digests and the signature.pkpass-renderdraws the pass as one standalone SVG card, carrying the pass's own colours and logo.pkpass-integrate handler installmakesapplication/vnd.apple.pkpassandapplication/vnd.apple.pkpassesopen with this project, installs the file-type icon, and records what opened them before.pkpass-integrate handler uninstallputs the previous handlers back and removes what the install wrote.
Status
Phases 1 through 3 are complete: the reader, the renderer, the MIME handler, and the command-line tools exist, and the test suite passes. Phase 4, publishing the pages and a release, has started.
The barcode is not yet drawn as a scannable symbol: this project has no QR or
PDF417 encoder, so the card shows the barcode's format, its alt text, and its
payload rather than a code that might not scan.
The GTK4 viewer is built only where the GTK4 development files are present.
Both limitations are recorded in TODO.md.
A note on examples
A real pass belongs to a person: it carries a name, an identifier, and a barcode payload. The example this project was built from is not published. The fixture the tests use is synthetic and structurally real, and every value in it is invented.