Skip to content

fix(parallels-tools): handle libfuse2->libfuse2t64 time64 rename#7

Open
DAEMON-404 wants to merge 1 commit into
mainfrom
fix/parallels-libfuse2-time64
Open

fix(parallels-tools): handle libfuse2->libfuse2t64 time64 rename#7
DAEMON-404 wants to merge 1 commit into
mainfrom
fix/parallels-libfuse2-time64

Conversation

@DAEMON-404

Copy link
Copy Markdown
Owner

What

Fix Parallels Tools install failure on current Kali/Debian guests caused by the time64 libfuse2 -> libfuse2t64 package rename.

Why

Parallels' installer runs a hardcoded apt-get install libfuse2. On time64 Debian/Kali that name has no candidate (the FUSE 2 runtime now ships as libfuse2t64), so the installer dies at "failed to install mandatory packages". The previous helper relied on equivs (extra tooling) and a version-pinned .deb URL (libfuse2t64_2.9.9-9+b1) that rots as Kali moves.

Changes

parallels-tools.sh — three helpers + ordered, honest resolution:

  • have_real_libfuse2 — probes libfuse2t64 pkg / libfuse2 pkg / ldconfig libfuse.so.2
  • fetch_kali_pool_deb — scrapes the Kali pool index, sort -V picks the newest matching ${ARCH}/all, multi-mirror, no version pin
  • build_libfuse2_shimdpkg-deb package literally named libfuse2 (no equivs); Depends on the real runtime when present, else dependency-free
  • order: libfuse2 -> libfuse2t64 -> pool .deb -> real-runtime check (loud warning, never silent) -> name-shim -> die before the doomed installer if unsatisfiable

penv.py — prefer the bundled helper when it is newer than the deployed ~/.local/bin/pt-install, so a stale deployment can't re-run the old bugs.

UPSTREAM_README.md — document the rename handling.

Verification

  • bash -n parallels-tools.sh — pass
  • python3 -m py_compile penv.py — pass
  • Logic harness — pool-index regex + sort -V newest-pick, wrong-arch (arm64) exclusion, have_real_libfuse2 returns non-zero cleanly under set -eu (no abort), shim Depends present with runtime / omitted without — all pass
  • Not yet run in a live Kali Parallels guest (the apt/dpkg/mount paths). Manual gate:
    python3 voidwalker.py pt          # attach the Tools CD first; run WITHOUT sudo
    dpkg -s libfuse2; dpkg -s libfuse2t64; ldconfig -p | grep libfuse.so.2
    Success = installer clears "mandatory packages", DKMS modules build vs the running-kernel headers, clipboard/shared-folders work post-reboot.

🤖 Generated with Claude Code

…stly

Parallels Tools' installer hardcodes `apt-get install libfuse2`. On time64
Debian/Kali the FUSE 2 runtime was renamed libfuse2t64, so the literal name
has no candidate and the installer dies "failed to install mandatory
packages".

parallels-tools.sh: replace the equivs + version-pinned .deb approach with
three helpers - have_real_libfuse2 (real-runtime probe via libfuse2t64/libfuse2
package and ldconfig libfuse.so.2), fetch_kali_pool_deb (dynamic newest-version
discovery from the Kali pool, multi-mirror, no version pin), and
build_libfuse2_shim (dpkg-deb name-shim, no equivs dependency; Depends on the
real runtime when present, else dependency-free). Ordered resolution:
libfuse2 -> libfuse2t64 -> pool .deb -> honest runtime check (loud warning,
never silent) -> name-shim -> abort before the doomed build if unsatisfiable.

penv.py: prefer the bundled helper when it is newer than the deployed
~/.local/bin/pt-install, so a stale deployment can't re-run the old bugs.

UPSTREAM_README.md: note the libfuse2/libfuse2t64 handling.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 4, 2026 01:53

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants