microsoft / microsoft/winget-cli
Add a "CertificateUrl" optional manifest value for MSIX/AppX apps, for when app devs store the certs separately from the apps.
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 26.4k
- Forks
- 1.8k
- Avg merge
- 1d 11h
- Merged PRs (30d)
- 15
Description
Relevant area(s)
WinGet CLI
Description of the new feature / enhancement
Though it's relatively common that .appx/.msix files released by various devs lack signatures or have signature errors (which make them uninstallable through Winget, and possibly at all), I've come across a handful of cases where the devs do have signatures, but inexplicably forgot to include them in the app files for reasons that are unknown to me.
Adding a "CertificateUrl" optional value to the "Installer" YAML would presumably make it possible to install those apps in Winget.
Instances of affected apps:
- PeaZip's MSIX version:
-
- (Documentation of its officiality) https://peazip.github.io/peazip-64bit.html (near the bottom of that page)
- VLC's UWP app:
- LibreWolf's MSIX version:
Proposed technical implementation details
In the Installer template YAML for Manifest 1.12 or 1.13, add a CertificateUrl: or CertUrl:, optional value.
Logically, validations would need to check for if it's indeed a valid .cer and/or .sig filetype file, and that the value only applies for .msix/.msixbundle/.appx/.appxbundle installer types.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the Installer template YAML for Manifest 1.12 or 1.13, then trace validation and installation handling for .msix, .msixbundle, .appx, and .appxbundle installers. Determine how an optional CertificateUrl value should be validated and consumed, including whether .cer and .sig files are supported; the work is done when manifests can use the external certificate safely and other installer types reject it.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- yaml
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100