**Related issue:** N/A — adds Vivaldi to the Fleet-maintained apps catalog. ## Summary Adds **Vivaldi** as a Fleet-maintained app for **macOS** and **Windows**. - **macOS (`vivaldi/darwin`)** — Homebrew cask input plus a `VivaldiDMGInstaller` enricher that redirects Homebrew's unsupported `tar.xz` download to Vivaldi's direct universal DMG (`https://downloads.vivaldi.com/stable/Vivaldi.{version}.universal.dmg`), keeping `installer_format: dmg` so the standard `hdiutil`-based install/uninstall scripts are generated. `unique_identifier` is the verified bundle id `com.vivaldi.Vivaldi`. - **Windows (`vivaldi/windows`)** — winget input (`Vivaldi.Vivaldi`) with custom install/uninstall scripts. Installs **machine-wide** with `--vivaldi-silent --do-not-launch-chrome --system-level`. Because Fleet runs installers as `SYSTEM`, the `--system-level` flag is required — without it the Chromium-based installer lands in the `SYSTEM` profile and is invisible to the real user. The exists query matches the registry `DisplayName` `Vivaldi` and verified `Publisher` `Vivaldi Technologies AS.`; the uninstall script looks up the entry under HKLM (with an HKCU fallback) and runs the Chromium uninstaller with `--force-uninstall`. Outputs were regenerated via the ingester (`go run cmd/maintained-apps/main.go --slug=...`) at Vivaldi **8.0.4033.46**; script refs are content-addressed, not hand-edited. ## Changes - `ee/maintained-apps/inputs/homebrew/vivaldi.json`, `ingesters/homebrew/external_refs/vivaldi.go` (+ registration in `main.go`) — macOS input and DMG-URL enricher - `ee/maintained-apps/inputs/winget/vivaldi.json` + `scripts/vivaldi_install.ps1` / `vivaldi_uninstall.ps1` — Windows input and custom machine-wide install/uninstall - `ee/maintained-apps/outputs/vivaldi/darwin.json`, `vivaldi/windows.json`, `outputs/apps.json` — generated catalog entries (with descriptions) - `frontend/pages/SoftwarePage/components/icons/Vivaldi.tsx` + `index.ts`, `website/assets/images/app-icon-vivaldi-60x60@2x.png` — UI/website icon # Checklist for submitter - [x] Input data is properly validated; untrusted data interpolated into shell scripts/commands is validated against shell metacharacters. (Silent-install flags are documented Vivaldi switches; the uninstall script parses the registry UninstallString defensively.) ## Testing - [x] Regenerated both outputs via the ingester; verified `installer_url`, SHA, and non-empty install/uninstall script refs. - [x] Verified macOS `unique_identifier` (`com.vivaldi.Vivaldi`) and Windows identity (DisplayName `Vivaldi`, Publisher `Vivaldi Technologies AS.`) against the cask/winget manifests. - [x] `apps.json` validates as JSON; `go build ./cmd/maintained-apps/...` and `GOOS=windows go build ./cmd/maintained-apps/validate/` pass. - [ ] QA'd all new/changed functionality manually (via the FMA validator on macOS + Windows hosts). <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added support for Vivaldi browser across macOS (Homebrew) and Windows (Winget) platforms with version management capabilities. * Included automated installation and uninstallation scripts for both operating systems. * Added Vivaldi icon to the application interface. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Allen Houchins <32207388+allenhouchins@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
9 lines
481 B
PowerShell
9 lines
481 B
PowerShell
# Install Vivaldi silently, machine-wide (Chromium-based browser).
|
|
# Fleet runs installs as SYSTEM, so --system-level is required to install for
|
|
# all users under %ProgramFiles% (and register under HKLM). Without it the
|
|
# installer lands in the SYSTEM profile and is invisible to the real user.
|
|
$process = Start-Process -FilePath $env:INSTALLER_PATH `
|
|
-ArgumentList "--vivaldi-silent --do-not-launch-chrome --system-level" `
|
|
-NoNewWindow -PassThru -Wait
|
|
Exit $process.ExitCode
|