hyprpm does not update headers if it's just an ABI change #15655
Replies: 3 comments 4 replies
|
is there anything workarounds? |
1 reply
3 replies
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Hyprland version
v0.56.1
Is this a regression?
yes, regressed by #15391
What's the bug?
hyprpm doesn't update headers if it the ABI hash changes but not the actual hl commit. This means the plugin gets built against the old headers, which make the ABI string of the plugin be the old version, which doesn't match what hyprland is running.
This is an issue because e.g. arch pumped out
0.56.1-1and0.56.1-2between which aq was bumped from 13 to 14, but the hash didn't change. If users now update, hyprpm doesn't update the headers as the hyprland hash stayed the same, and rebuilds the plugins against the old version with the old ABI signature. Loading them will obviously fail.Honestly I would've taken some time to fix it but the hyprpm sources are the biggest spaghett and I don't really have time right now (got a thesis and exams to worry about). If I were to fix it I'd change the implementation entirely and treat the ABI hash exactly the same as
GIT_COMMIT_HASHand not build it in__hyprland_api_get_client_hash()(but at build time). In hyprpm we'd then just use that hash instead. I really don't know why it's done like it is currently done (the ABI only being tracked in global state) maybe I didn't think this through enough.Reproduction steps
You can try to simulate an ABI break by changing the headers and global state:
hyprpm updatewith at least one plugin installed to have the newest headers.hyprpm update. See how it doesn't update the headers, but rebuilds the plugin. The__hyprland_api_get_client_hash()now returns the signature of the outdated headers and the plugin doesn't load.Related
hyprpm updateVirtCode/hypr-dynamic-cursors#159I acknowledge that:
All reactions