KSP-CKAN / CKAN

The Comprehensive Kerbal Archive Network
https://forum.kerbalspaceprogram.com/index.php?/topic/197082-*
Other
1.99k stars 348 forks source link

Ignore manually installed duplicates of installed modules #4257

Closed HebaruSan closed 2 weeks ago

HebaruSan commented 2 weeks ago

Problem

According to #4256, installing Parallax with CKAN and then Parallax Continued manually causes CKAN to enforce version-specific relationships against the manually installed DLL:

image

This is arguably correct behavior, since you do have a manually installed DLL, for which which CKAN cannot programmatically determine a version for comparison with version-specific relationships. But it's opaque and frustrating for users, who just want some way to get these paid mods integrated into the ecosystem.

Cause

This is speculation because the affected mod is not publicly available and the issue description isn't detailed enough to confirm, but it sounds to me like the manually installed mod is being put in a different path than the CKAN-installed mod.

I say this because if you simply replaced the CKAN-installed files with manually installed ones in the same locations, then CKAN would not even know anything had changed and relationships would match or not exactly the same as if you had just installed with CKAN. Something is giving away the manual changes, and the most likely explanation is that they're in a different path, allowing the DLL to be detected as manually installed.

Changes

Now if you install a mod with CKAN and then install an extra copy of it manually somewhere else, the manually installed copy will be ignored by CKAN (but not by the game, of course!). This will ensure that version-specific relationships will match based on the CKAN-installed module only, so users of this one paid mod can have a workaround to bypass the non-paid mod's version-specific relationships.

Fixes #4256 (probably).