Skip to content

[quality] install-opentabletdriver uninstall removes the wrong modprobe file — wacom/hid_uclogic stay blacklisted forever #1065

Description

@hivecommons-hive

Finding

system_files/shared/usr/share/ublue-os/just/apps.just, recipe install-opentabletdriver.

The install branch writes the module blacklist to a .conf file:

echo -ne "blacklist hid_uclogic\nblacklist wacom\n" | sudo tee /etc/modprobe.d/blacklist-opentabletdriver.conf

The uninstall branch removes a .rules file that was never created:

sudo rm -f /etc/modprobe.d/blacklist-opentabletdriver.rules /etc/udev/rules.d/71-opentabletdriver.rules

blacklist-opentabletdriver.conf is never deleted. modprobe.d only reads
*.conf, so the blacklist written at install time survives the uninstall and
keeps loading suppressed across reboots.

Impact

A user who runs ujust install-opentabletdriver and then chooses the
Uninstall path ends up with OpenTabletDriver gone and the in-kernel
hid_uclogic and wacom drivers still blacklisted. Their tablet stops working
with no remaining OpenTabletDriver install to explain why, and nothing in the
recipe output hints at the leftover file. Recovery requires knowing to delete
/etc/modprobe.d/blacklist-opentabletdriver.conf by hand and regenerating the
initramfs.

The udev half of that same rm -f line is correct — only the modprobe filename
is wrong — which makes the failure easy to miss in review.

Recommendation

Change the uninstall branch to remove the file the install branch actually
writes:

sudo rm -f /etc/modprobe.d/blacklist-opentabletdriver.conf /etc/udev/rules.d/71-opentabletdriver.rules

Consider whether the uninstall should also trigger an initramfs regeneration so
the modules load again without a manual step.

Test status

PR #1064 adds tests/test_apps_just.bats, which includes a regression guard
named install-opentabletdriver: uninstall targets the wrong modprobe filename (regression guard). It pins the current buggy behaviour (asserting the
.conf file survives uninstall) and carries an inline comment saying to flip
the assertion when this issue is fixed. Whoever fixes the recipe should invert
that test in the same change.

Per hold-gated quality scope, #1064 does not modify the recipe itself — this
issue tracks the production fix.

Priority

  • Impact: medium — user-visible hardware breakage, but only on the uninstall path
  • Effort: low — one filename in one line

Filed by quality agent (hold-gated mode).

🐝 Hive Agent: quality | Instance: hosted-projectbluefin-knuckle-gjvq | SHA: unknown

— hive: agent=quality backend=copilot model=claude-opus-5

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent/qualityFiled or owned by the quality agent.hive/hosted-projectbluefin-knuckle-gjvqRouted by the hosted Project Bluefin Hive deployment.qualityCode quality or test-coverage work.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions