Jump to content

CKAN (The Comprehensive Kerbal Archive Network) - v1.30.4 Hubble


DasSkelett
 Share

Recommended Posts

I tried CKAN.  The program leaves a lot to be desired.  Now I know nothing about programing, but if CKAN is supposed to safely install compatible mods in the version of KSP  you have, you would think that it wouldn't install mods that cause errors and crashes.  I have done better through trial and error.  9 errors on startup after using CKAN.  LOL I think anyone thinking of using it should try just self installing.  It took me 7 hours to install mods and updates to mods.  CKAN just kept failing.  "CKAN found xxxx.dll in the wrong directory.  Installation failed."   Yet the xxxx.dll was downloaded and installed by CKAN, LOL.  Apparently CKAN is either throwing files in willy nilly and unable to do what it promises, or doesn't know how to read a "read me" file that tells the person installing where to install and what dependencies it needs work.  And my personal favorite listed compatible mods that were not compatible with each otheror the version of KSP that was being run.  The developers need to go back to the drawing board.  Just my opinion, take it or leave it.

Link to comment
Share on other sites

@wulfee03, CKAN is not responsible for the contents of the mods, it just puts them where they need to go.   If a file is corrupted or missing, that is usually the mod makers fault, you should check in the mod release threads for each mod to see if they have addressed some of the issues.

CKAN is produced by a number of our community members, and has done pretty well for hundreds of thousands ( @HebaruSan, do you have a user count?) of users over the last 8 to 10 years.  Of course there might some issues with it from time to time, and the guys do a helluva job fixing bugs when pointed out.   They have a whole github page just for this.   Any bugs I've reported over the years usually get tackled fairly quickly.   The fact that it has worked well for all these users, and you are having a slew of issues should be an indication of where some of the issues lie. 

Welcome to the Forums!

Link to comment
Share on other sites

12 minutes ago, Gargamel said:

@HebaruSan, do you have a user count?

The current release's download counts stand at:

1524   ckan-1.30.4-1.noarch.rpm
3553   CKAN.dmg
91431   ckan.exe
1849   ckan_1.30.4_all.deb

There may be some instances of repeat downloads by the same users in there, and any Debian-based Linux distribution users downloading from the APT repo aren't counted, but around 70K to 100K is consistent with our previous attempts to estimate it.

Edited by HebaruSan
Link to comment
Share on other sites

9 minutes ago, HebaruSan said:

The current release's download counts stand at:

And that's just the current release.   Out of curiosity, I wonder what the total number of downloads would be. 

Link to comment
Share on other sites

11 minutes ago, Gargamel said:

And that's just the current release.   Out of curiosity, I wonder what the total number of downloads would be. 

It's about 2.6 million.

$ wget -q -O - 'https://api.github.com/repos/KSP-CKAN/CKAN/releases?per_page=100' | jq -rM '[.[].assets[] | select(.name != "AutoUpdater.exe") | .download_count] | add'
2579981
Link to comment
Share on other sites

  • 2 weeks later...
36 minutes ago, Brigadier said:

Perhaps something wrong in the netkan file???

Hmm, it looks fine to me. My guess would be that this is a bug in KSP-AVC's install checker (kind of has to be, since KSP-AVC itself is saying that its own correct install path is incorrect). That code is pretty convoluted and non-transparent for a simple task (as well as subtly inefficient with lazily-evaluated Linq statements that execute multiple times), so it's not surprising that it could behave unexpectedly.

Link to comment
Share on other sites

  • 2 weeks later...
On 10/10/2021 at 12:46 PM, wulfee03 said:

I tried CKAN.  The program leaves a lot to be desired.  Now I know nothing about programing, but if CKAN is supposed to safely install compatible mods in the version of KSP  you have, you would think that it wouldn't install mods that cause errors and crashes.  I have done better through trial and error.  9 errors on startup after using CKAN.  LOL I think anyone thinking of using it should try just self installing.  It took me 7 hours to install mods and updates to mods.  CKAN just kept failing.  "CKAN found xxxx.dll in the wrong directory.  Installation failed."   Yet the xxxx.dll was downloaded and installed by CKAN, LOL.  Apparently CKAN is either throwing files in willy nilly and unable to do what it promises, or doesn't know how to read a "read me" file that tells the person installing where to install and what dependencies it needs work.  And my personal favorite listed compatible mods that were not compatible with each otheror the version of KSP that was being run.  The developers need to go back to the drawing board.  Just my opinion, take it or leave it.

What you would like the program to have? I get the compatibilities have issues and the auto install for mod dependencies is interesting but that isn't so much on the CKAn devs themselves.

Link to comment
Share on other sites

FYI, SpaceDock's certificate has expired, so you may start seeing this again for mods on SpaceDock with restrictive licenses:

pDSd7XV.png

There's nothing wrong with your computer or with CKAN (your browser will complain about the same thing), we just have to wait for @VITAS to update the certificate.

...

EDIT: ALL CLEAR: The certificate is updated, this should now be fixed.

Edited by HebaruSan
Link to comment
Share on other sites

Not sure if anyone else is having this issue, but when ever I try to add a new mod (recently, within the last few days) it shows the below error code

 

https://imgur.com/Db784gA

I assume this is because of the new Scatterer update, but I can assure you I only have one instance of Scatterer installed. The game runs as expected, but CKAN will not allow additional downloads; installing mods manually work,s as well. I apologize if this has been brought to your attention already, I did not have time to go through the comments to confirm whether or not this has been discussed already. Thanks for all you do!

Edited by SkW3rL
Link to comment
Share on other sites

13 hours ago, SkW3rL said:

Not sure if anyone else is having this issue, but when ever I try to add a new mod (recently, within the last few days) it shows the below error code

https://imgur.com/Db784gA

Thanks for letting us know about this. If you have a chance, would you mind sharing a screenshot of your GameData folder and uploading your <KSP dir>/CKAN/registry.json file somewhere and posting a link so we can look at it? We have some guesses about what might be going on, and this would help us to investigate.

Edited by HebaruSan
Link to comment
Share on other sites

22 minutes ago, HebaruSan said:

Thanks for letting us know about this. If you have a chance, would you mind sharing a screenshot of your GameData folder and uploading your <KSP dir>/CKAN/registry.json file somewhere and posting a link so we can look at it? We have some guesses about what might be going on, and this would help us to investigate.

Sure can!

Mod List

registry.json

Hopefully this will help you out. Again, I appreciate all that you guys do!

Link to comment
Share on other sites

2 hours ago, SkW3rL said:

Sure can!

Thanks! That confirms some of our guesses; you have a lowercase "scatterer" directory on disk because that's what the previous version had, but your registry.json thinks it is a capital "Scatterer" directory in a few places because that's what the newest version has (EDIT: or because that's what the config and sunflare modules still had up until a few seconds ago). In addition, CKAN thinks that you installed "GameData/scatterer/Scatterer.dll" manually because the lowercase path doesn't match what was in the ZIP.

For now, you might try renaming "scatterer" to "Scatterer" to see if that helps. We'll keep investigating for a real fix.

Edited by HebaruSan
Link to comment
Share on other sites

A few updates...

@DasSkelett has pushed some metadata changes that should help with this in https://github.com/KSP-CKAN/NetKAN/pull/8862, but we don't know for sure whether that will address everything for everyone (fingers crossed).

We also have some code fixes in the works to hopefully address the root cause, in https://github.com/KSP-CKAN/CKAN/pull/3479. If you have been having problems with the latest Scatterer and want to help with testing the fix, you can try this build:

Link to comment
Share on other sites

On 11/17/2021 at 12:45 PM, HebaruSan said:

We also have some code fixes in the works to hopefully address the root cause, in https://github.com/KSP-CKAN/CKAN/pull/3479. If you have been having problems with the latest Scatterer and want to help with testing the fix, you can try this build:

Downloaded from the link and run.  Selected an existing game instance and received the following unhandled exception:

Spoiler

Unhandled exception:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> CKAN.BadMetadataKraken: The license MPL-2.0 is invalid
   at CKAN.License..ctor(String license)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at System.Activator.CreateInstance(Type type, Object[] args)
   at CKAN.JsonSimpleStringConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.Linq.JToken.ToObject(Type objectType, JsonSerializer jsonSerializer)
   at Newtonsoft.Json.Linq.JToken.ToObject(Type objectType)
   at Newtonsoft.Json.Linq.JToken.ToObject[T]()
   at CKAN.JsonSingleOrArrayConverter`1.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
   at CKAN.RegistryManager.Load()
   at CKAN.RegistryManager.LoadOrCreate()
   at CKAN.RegistryManager..ctor(String path, KSP ksp)
   at CKAN.RegistryManager.Instance(KSP ksp)
   at CKAN.Main..ctor(String[] cmdlineArgs, KSPManager mgr, Boolean showConsole)
   at CKAN.GUI.Main_(String[] args, KSPManager manager, Boolean showConsole)
   at CKAN.CmdLine.MainClass.RunSimpleAction(Options cmdline, CommonOptions options, String[] args, IUser user, KSPManager manager)
   at CKAN.CmdLine.MainClass.Execute(KSPManager manager, CommonOptions opts, String[] args)
   at CKAN.CmdLine.MainClass.Main(String[] args)

 

Link to comment
Share on other sites

30 minutes ago, Brigadier said:

Downloaded from the link and run.  Selected an existing game instance and received the following unhandled exception:

  Hide contents

CKAN.BadMetadataKraken: The license MPL-2.0 is invalid

That message means you ran an old copy of CKAN, not the one from that link. It can only happen on a copy from before we added MPL-2.0, which happened in v1.30.0 (Glenn).

Link to comment
Share on other sites

1 hour ago, HebaruSan said:

That message means you ran an old copy of CKAN, not the one from that link. It can only happen on a copy from before we added MPL-2.0, which happened in v1.30.0 (Glenn).

My apologies, you're quite correct.  Deleted that version from 2020.

Opened the .zip, extracted the file and ran it and received "Error in auto-update...(403) Forbidden".  Dismissed it and everything seemed to work correctly although I'd already rolled back Scatterer to the penultimate version.  To test, I updated to the b version again and received an inconsistency:

Spoiler

About to upgrade:

 * Upgrade: scatterer 3:v0.0825 to 3:v0.0825b (cached)
 * Upgrade: Scatterer Default Config 3:v0.0825 to 3:v0.0825b (cached)
 * Upgrade: Scatterer Sunflare 3:v0.0825 to 3:v0.0825b (cached)
The following inconsistencies were found:
* F:/Steam/KSP 1.12.2 - Stock/GameData/Scatterer/Scatterer.dll is registered to Scatterer but has not been removed!
Error during installation!

In fact, an attempted update to Kopernicus causes the same installation error.  Running the non-experimental version of CKAN 1.30.4 causes the same problem now.  It must be something I'm not doing properly.

Edited by Brigadier
Added Kopernicus error
Link to comment
Share on other sites

4 hours ago, Brigadier said:

To test, I updated to the b version again and received an inconsistency:

  Hide contents

About to upgrade:

 * Upgrade: scatterer 3:v0.0825 to 3:v0.0825b (cached)
 * Upgrade: Scatterer Default Config 3:v0.0825 to 3:v0.0825b (cached)
 * Upgrade: Scatterer Sunflare 3:v0.0825 to 3:v0.0825b (cached)
The following inconsistencies were found:
* F:/Steam/KSP 1.12.2 - Stock/GameData/Scatterer/Scatterer.dll is registered to Scatterer but has not been removed!
Error during installation!

In fact, an attempted update to Kopernicus causes the same installation error.  Running the non-experimental version of CKAN 1.30.4 causes the same problem now.  It must be something I'm not doing properly.

Is it possible that you had KSP still running this time? This error is common when the game is still running and locking the DLLs, which prevents CKAN from deleting them.

Link to comment
Share on other sites

6 hours ago, DasSkelett said:

Is it possible that you had KSP still running this time? This error is common when the game is still running and locking the DLLs, which prevents CKAN from deleting them.

Not only was it possible, it just was.  Let's just say it was late, I was tired and I tried to multi-task (despite the fact that it wasn't, I wasn't and I didn't). <sigh>  At least this week's let's-be-an-idiot day:confused: is now officially over for me. 

CKAN 1.30.4 updates to the latest version of Scatterer 0.0825b without a problem.

Thank you, gentlemen.

Edited by Brigadier
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...