Devolutions / Devolutions/UniGetUI
[BUG] vcpkg dependency check uses git.exe and Winget installation command on macOS
- Dominant language
- C#
- Stars
- 26.1k
- Forks
- 924
- Avg merge
- 15h 52m
- Merged PRs (30d)
- 52
Description
### Please confirm these before moving forward
- [x] I searched for an existing issue and did not find a matching report.
- [x] I reproduced this with the latest installed release, UniGetUI 2026.2.7.
- [x] This report describes a bug.
### Environment
- UniGetUI: 2026.2.7, build 107
- macOS: 26.5.2 (25F84)
- Architecture: ARM64
- Hardware: MacBook Air M5 (Mac17,4)
- Git: `/usr/bin/git`, version `2.50.1 (Apple Git-155)`
- vcpkg executable: `/opt/homebrew/bin/vcpkg`
- `VCPKG_ROOT=/Users/tromm/vcpkg`
### Description
When vcpkg is enabled on macOS, UniGetUI reports that Git is missing even though Git is installed, on PATH, and works normally.
The missing-dependency dialog proposes this Windows-only command:
```text
winget install --id Git.Git --exact --source winget
```
Accepting the installation cannot provide a macOS `git.exe`. It also leads into the separate broken automatic-restart path that invokes `powershell.exe`.
### Steps to reproduce
1. Install vcpkg and Git on macOS.
2. Verify:
```sh
command -v git
git --version
command -v vcpkg
```
3. Configure a valid `VCPKG_ROOT`.
4. Start UniGetUI and enable vcpkg.
### Expected behavior
UniGetUI detects `git` on non-Windows platforms and considers the dependency satisfied.
### Actual behavior
UniGetUI reports Git as missing and proposes installing Windows Git through Winget.
### Probable cause
In tag `v2026.2.7`, the vcpkg dependency is defined without an operating-system check:
```csharp
new ManagerDependency(
"Git",
CoreData.PowerShell5,
"-ExecutionPolicy Bypass ... winget install --id Git.Git ...",
"winget install --id Git.Git --exact --source winget",
async () => (await CoreTools.WhichAsync("git.exe")).Item1
)
```
Source:
https://github.com/Devolutions/UniGetUI/blob/v2026.2.7/src/UniGetUI.PackageEngine.Managers.Vcpkg/Vcpkg.cs
On macOS the executable is `git`, not `git.exe`, regardless of whether Apple Git or Homebrew Git is installed.
### Workaround
Mark the Git dependency dialog as skipped. Git and vcpkg continue to work normally outside this incorrect dependency check.
Contributor guide
Research direction
Start in src/UniGetUI.PackageEngine.Managers.Vcpkg/Vcpkg.cs and inspect the vcpkg ManagerDependency definition and its CoreTools.WhichAsync check. Reproduce the dependency check on macOS with the listed git and vcpkg commands. Done means installed git is recognized on macOS and the dialog no longer proposes the Windows-only Winget command.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, git, macos
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 70/100