Skip to content

[Bug]: Track upstream fix for vulnerable glib dependency in the Tauri Linux stack #26

@yandy-r

Description

@yandy-r

Migrated from issue yandy-r/crosshook#26
Originally opened by @yandy-r on 2026-03-25T01:42:00Z
Original state: open


Duplicate Check

  • I have searched existing issues and this bug has not been reported.

Component

Build / Packaging

Platform

Linux (other distro)

Proton / WINE Version

N/A

CrossHook Version

5926d6a

Bug Description

GitHub Dependabot alert #1 is open for glib in src/crosshook-native/Cargo.lock.

Current analysis shows this repository cannot patch glib directly without an upstream dependency-chain change.

Observed dependency path:

  • tauri v2.10.3
  • gtk v0.18.2
  • glib ^0.18 (currently locked to glib v0.18.5)

A direct update attempt fails because gtk v0.18.2 requires glib = "^0.18", so glib 0.20.0 cannot be selected while the current Linux Tauri/GTK stack remains in place.

Steps to Reproduce

  1. Check the Dependabot alert for this repository.
  2. Inspect the transitive dependency path with:
    cargo tree --manifest-path src/crosshook-native/Cargo.toml -i glib
  3. Attempt to move to the patched version with:
    cargo update --manifest-path src/crosshook-native/Cargo.toml -p glib --precise 0.20.0 --dry-run
  4. Observe that Cargo rejects the update because gtk v0.18.2 requires glib = "^0.18".

Expected Behavior

CrossHook should be able to consume a non-vulnerable glib version, or we should have a clear upgrade path to a Tauri/Linux stack that does.

Actual Behavior

The repository is currently blocked on an upstream Linux desktop dependency chain:

  • tauri 2.10.3 is already current in this environment.
  • The Linux GTK stack still resolves to gtk 0.18.2 / glib 0.18.x.
  • The Dependabot alert remains open because the patched glib 0.20.0 line is incompatible with the current transitive constraints.

Game & Trainer Details

N/A

Logs / Screenshots

$ cargo tree --manifest-path src/crosshook-native/Cargo.toml -i glib
glib v0.18.5
└── gtk v0.18.2
    └── tauri v2.10.3
        └── crosshook-native src-tauri

$ cargo update --manifest-path src/crosshook-native/Cargo.toml -p glib --precise 0.20.0 --dry-run
error: failed to select a version for the requirement `glib = "^0.18"`
candidate versions found which didn't match: 0.20.0
required by package `gtk v0.18.2`
... which satisfies dependency `gtk = "^0.18"` of package `tauri v2.10.3`

Suggested Follow-up

  • Track upstream Tauri/Linux GTK dependency updates that move off gtk 0.18 / glib 0.18.
  • Re-evaluate when a newer Tauri/Wry/Linux stack can resolve to glib >= 0.20.0.
  • If upstream remains blocked, assess whether a temporary fork/patch strategy is acceptable for this project.

Storage strategy

  • No new persisted app data is expected for this tracking bug. Any eventual mitigation should avoid introducing new settings or metadata unless an upstream workaround genuinely requires it.
  • Runtime-only analysis such as dependency inspection, build verification, or alert triage should remain ephemeral rather than becoming app-managed state.

Persistence & usability

  • No migration or backward-compatibility work should be required while this remains an upstream dependency-chain tracking issue.
  • If a temporary mitigation is ever needed, it should not rewrite user profiles, settings, or metadata DB contents.

Code maintainability

  • Keep any eventual workaround isolated to build/dependency-management surfaces rather than scattering version checks throughout runtime code.
  • Prefer one clearly owned dependency policy path over per-platform or per-feature exceptions.
  • If supporting code is needed, keep modules focused and split early rather than growing a mixed-responsibility file past the 400-500 line range.

Dependencies / Blockers

  • Blocked by upstream movement in the Tauri/GTK/Linux dependency chain so glib >= 0.20.0 becomes selectable.
  • Track the Dependabot alert and upstream release notes rather than creating CrossHook-only forks by default.

Scope boundaries / Non-goals

  • This issue is not a mandate to add runtime fallbacks, Linux-only behavior forks, or unrelated packaging changes.
  • Do not treat a temporary fork as the default plan unless upstream is demonstrably stalled and the maintenance cost is accepted explicitly.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions