pjf

The Comprehensive Kerbal Archive Network (CKAN) Package Manager; v1.18.0 [19 June 2016]

Recommended Posts

I'm getting autodetected dll when trying to list my mods. Is there an extra step somewhere I'm missing? Thanks!

Share this post


Link to post
Share on other sites
I'm getting autodetected dll when trying to list my mods. Is there an extra step somewhere I'm missing? Thanks!

I'm guessing those are Pre-existing Mods. CKAN won't attempt to modify/change those. You can remove them by hand and install them via CKAN to become CKAN manageable.

CKAN will use them to satisfy a dependency if something else depends on one of the autodetected dlls.

Share this post


Link to post
Share on other sites

Hooray! Time for another round of Q&A:

I just tried installing a fresh Realism Overhaul game (with a fresh install of KSP) using the "--with-suggests" command but I noticed that none of the procedural mods and I think a couple other suggested mods weren't included in the list of mods to be installed.

This looks a problem with the metadata, as right now RealismOverhaul doesn't suggest anything. It almost certainly should! I'd suggest chiming in on this thread with suggestsions, although if you're comfortable with git and send us a pull-request, we *love* those.

What is the minimum set of files and directories for CKAN to assume a valid installation?

It just needs GameData and a README with a KSP-looking version number in it. Here's the directory we use for testing.

mono ckan.exe ksp ~/Desktop/KSP 0.25 MAC/KSP 0.25 MAC doesn't work. Help!

CKAN is almost certainly getting confused with the spaces. You can quote the directory string, but then your shell won't do tilde expansion for you. $HOME instead of ~, or just cheating and moving ckan.exe into your KSP directory itself. (It always checks where it's installed first.) To adjust Ippo's suggestion:

ckan ksp add ChooseAName "$HOME/Desktop/KSP 0.25 MAC/KSP 0.25 MAC"

I'm getting autodetected dll when trying to list my mods. Is there an extra step somewhere I'm missing? Thanks!

techman83 is dead on here. Those will be pre-existing mods. Sometimes if a mod has multiple libraries it ships with, then you'll see some funny names, but they're otherwise harmless. We search for these to try and not install mods you've already installed. If you ever remove them by hand, then running a `ckan scan` will help the client realise that, although future versions should be better at figuring this out on their own.

All the best!

~ Paul

Share this post


Link to post
Share on other sites

Our latest unstable (testing) release is out! This has a GUI which is much more stable, especially under OSX and Linux, and handles relationship resolution much better! Hats off to nlight for doing an amazing job with this!

CV0eEoj.png

Download v1.1.1 - Lorenz Attractor

Share this post


Link to post
Share on other sites

Hey @pjf: do you have an actual bot running for migrating from the NetKAN repo to CKAN-meta? If not, I will happily write one (have experience with GitHub API.)

Share this post


Link to post
Share on other sites

Ok, so Ive gotten ckan working (thanks to your help!) and assigned my game as the default but when I try to use the available command, it gives me this:

[FONT=Menlo]Johns-iMac:Desktop Family$ mono ckan.exe available[/FONT]
[FONT=Menlo]120 [1] ERROR CKAN.KSP (null) - Could not open KSP readme.txt[/FONT]
[FONT=Menlo]Mods available for KSP 0.25.0[/FONT]
[FONT=Menlo]
[/FONT]
[FONT=Menlo]Johns-iMac:Desktop Family$ [/FONT]

Again probably over-looking some blatantly obvious step.

Also I loaded the game and theres no parts anywhere in the game. Like, none at all. Anywhere. Almost certainly a mod issue not ckan but I thought I should mention it.

Is there anyway I could do this via the gui? I tried just running the exe but it says its a windows application?

Thanks for the help.

Edited by pmang6
Added info.

Share this post


Link to post
Share on other sites

So I`m using he experimental release with GUI and I noticed that if you select some mods to install, start the process then remember one you wanted in there and press cancel it forgets the mods you just selected. Then you have to remember which you selected and click them all again.

Could ckan remember the selected mods if cancel is pressed while downloading please?

Apart from that, it looks awesome. I just made a clean install and told it to be RSS (and others) it asked me about some optional mods and it`s chugging away and I`ll boot it up in a minute

Very nice.

Share this post


Link to post
Share on other sites

E: both issues have now been solved:

ckan gui fails with an inability to load libgdiplus.so

- make sure libgdiplus is actually installed

- make sure libgdiplus.so (and not just libgdiplus.so.0*) exists, and create the appropriate symlink if it doesn't

ckan update fails with a certificate validation error

- the default mono install hates all certificates and doesn't use the system root certificate store; run 'yes yes | mozroots --import' to get a base set of root certificates

Now that I've gotten this working, it is very slick. I like it a lot. However, the small selection of supported mods really hurts it; it means that I'm going to have to use it in parallel with TinkerTime anyways, at which point I might as well just use TinkerTime for everything and deal with the constant crashes.

Curse support would help a lot, I think. The OP mentions that Curse doesn't have an API you can use, but is there some reason you can't just scrape the Curseforge page the way TT does? Extracting the actual version number may be impossible, but extracting the timestamp of the latest release is trivial (it's given to you in unix epoch time, even), and that's a lot better than nothing and sufficient to version it.

Edited by ToxicFrog

Share this post


Link to post
Share on other sites

Apologies, I seem to have fallen ill today, so I'm not going to be able to respond to everything, however...

Curse support would help a lot, I think. The OP mentions that Curse doesn't have an API you can use, but is there some reason you can't just scrape the Curseforge page

Yes. The terms of service expressly forbid harvesting content to create derivative works (emphasis mine):

Curse permits you to view and use a single copy of the Websites for your personal, non-commercial use, provided you comply with the terms and conditions of these Terms of Service. You agree not to license, create derivative works from, transfer, sell or re-sell any information, content, or services obtained from the Websites.
Edited by pjf
added link to curse ToS

Share this post


Link to post
Share on other sites
Apologies, I seem to have fallen ill today, so I'm not going to be able to respond to everything, however...

High five, plague buddy :(

Yes. The terms of service expressly forbid harvesting content to create derivative works (emphasis mine):

Hmm. Arguably, a "derivative work" would be a knockoff website or similar, not a program that simply uses the data available on their website; and the "restrictions on use" section includes this:

You will not [...] (ii) use or launch any automated system, including without limitation, "robots," "spiders," "offline readers," etc., that accesses the Websites in a manner that sends more request messages to the Curse servers in a given period of time than a human can reasonably produce in the same period by using a convention on-line web browser;

...which implies that bots and spiders that don't unduly hammer the website may be permissible. But it's unclear enough what they mean by "derivative work" that I'd at least email and ask them, yeah.

That said, looking at the CKAN spec, it looks like I could write appropriate specfiles for the mods I want that are only on Curse, give them appropriate download lines, host the resulting specrepo locally, and while it wouldn't automatically update the versions with netkan or anything, ckan would still be able to handle the downloading and (un)installing part for me, which is still a huge win.

Share this post


Link to post
Share on other sites

Using the newest guy can I installed Realism overhaul and it worked fine. I then found it was missing something or the other and the mod was not available on the repo, so I added it manualy.I was a bit distracted when I stalled it so I did not see exactly what folders were added/modified. I get in the game and I find that the mod I manually installed does not do what I thought it did and go to remove it. I could not be sure that the mod did not modify anything so I remembered how easily ckan worked to install RO and all of it's dependencies so I decide to delete the game data folder and replace it with a backup of the stock one that I made and use ckan to make RO again.

I open ckan and update. I see that realism overhaul and its dependencies are checked as installed so I hit update thinking that maybe it would scan the folder and see it was stock so I could reinstall. Checkmarks did not change. Thinking that I messed something up I deleted the ckan directory and reopened/updated ckan. The checkmarks were gone as expected so I checked RO and selected the same recommends and options as before and then proceeded to install.

It continued to move along in the installation process. It downloaded everything just fine. After It said it was finished installing everything I opened the game data folder just to make sure (since it didn't work a thought it would before I had to check before the long startup of RO) and it was stock. I went back and tried it again and still the same. I even tried downloading another ckan and deleting the can folder again. Yet it still does the same.Any ideas?

Share this post


Link to post
Share on other sites

Going to post this here first. I have the latest experimental, and the GUI does not run for me. Command line seems to work fine so far. I'm on OS X Yoesmite. I run the command and a window pops up, but is just plain white and hangs.

Here's the stack trace:


$ mono ckan.exe
4261 [1] ERROR CKAN.KSP (null) - Could not open KSP readme.txt
System.EntryPointNotFoundException: GdipCreateFromContext_macosx
at (wrapper managed-to-native) System.Drawing.GDIPlus:GdipCreateFromContext_macosx (intptr,int,int,intptr&)
at System.Drawing.Graphics.FromHwnd (IntPtr hwnd) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.CreateGraphics () [0x00000] in <filename unknown>:0
at System.Windows.Forms.TextBoxBase.CreateGraphicsInternal () [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.TextBoxBase:CreateGraphicsInternal ()
at System.Windows.Forms.Document.owner_HandleCreated (System.Object sender, System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.OnHandleCreated (System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.TextBoxBase.OnHandleCreated (System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.TextBox.OnHandleCreated (System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.WmCreate (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.TextBoxBase.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.TextBox.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] in <filename unknown>:0
System.EntryPointNotFoundException: GdipCreateFromContext_macosx
at (wrapper managed-to-native) System.Drawing.GDIPlus:GdipCreateFromContext_macosx (intptr,int,int,intptr&)
at System.Drawing.Graphics.FromHwnd (IntPtr hwnd) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.CreateGraphics () [0x00000] in <filename unknown>:0
at System.Windows.Forms.TextBoxBase.CreateGraphicsInternal () [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.TextBoxBase:CreateGraphicsInternal ()
at System.Windows.Forms.Document.owner_HandleCreated (System.Object sender, System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.OnHandleCreated (System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.TextBoxBase.OnHandleCreated (System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.TextBox.OnHandleCreated (System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.WmCreate (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.TextBoxBase.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.TextBox.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] in <filename unknown>:0
System.EntryPointNotFoundException: GdipCreateFromContext_macosx
at (wrapper managed-to-native) System.Drawing.GDIPlus:GdipCreateFromContext_macosx (intptr,int,int,intptr&)
at System.Drawing.Graphics.FromHwnd (IntPtr hwnd) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.CreateGraphics () [0x00000] in <filename unknown>:0
at System.Windows.Forms.TextBoxBase.CreateGraphicsInternal () [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.TextBoxBase:CreateGraphicsInternal ()
at System.Windows.Forms.Document.owner_VisibleChanged (System.Object sender, System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.OnParentVisibleChanged (System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.OnParentVisibleChanged (System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.SetVisibleCore (Boolean value) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.set_Visible (Boolean value) [0x00000] in <filename unknown>:0
at System.Windows.Forms.TabPage.SetVisible (Boolean value) [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.TabPage:SetVisible (bool)
at System.Windows.Forms.TabControl.CreateHandle () [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.CreateControl () [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:CreateControl ()
at System.Windows.Forms.Control.CreateControl () [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.WmShowWindow (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.ScrollableControl.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] in <filename unknown>:0
System.EntryPointNotFoundException: GdipCreateFromContext_macosx
at (wrapper managed-to-native) System.Drawing.GDIPlus:GdipCreateFromContext_macosx (intptr,int,int,intptr&)
at System.Drawing.Graphics.FromHwnd (IntPtr hwnd) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.CreateGraphics () [0x00000] in <filename unknown>:0
at System.Windows.Forms.TextBoxBase.CreateGraphicsInternal () [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.TextBoxBase:CreateGraphicsInternal ()
at System.Windows.Forms.Document.owner_VisibleChanged (System.Object sender, System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.OnParentVisibleChanged (System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.OnVisibleChanged (System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.ScrollableControl.OnVisibleChanged (System.EventArgs e) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.SetVisibleCore (Boolean value) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.set_Visible (Boolean value) [0x00000] in <filename unknown>:0
at System.Windows.Forms.TabPage.SetVisible (Boolean value) [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.TabPage:SetVisible (bool)
at System.Windows.Forms.TabControl.CreateHandle () [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.CreateControl () [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) System.Windows.Forms.Control:CreateControl ()
at System.Windows.Forms.Control.CreateControl () [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.WmShowWindow (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.ScrollableControl.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.ContainerControl.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Form.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] in <filename unknown>:0
System.EntryPointNotFoundException: GdipCreateFromContext_macosx
at (wrapper managed-to-native) System.Drawing.GDIPlus:GdipCreateFromContext_macosx (intptr,int,int,intptr&)
at System.Drawing.Graphics.FromHwnd (IntPtr hwnd) [0x00000] in <filename unknown>:0
at System.Windows.Forms.XplatUICarbon.PaintEventStart (System.Windows.Forms.Message& msg, IntPtr handle, Boolean client) [0x00000] in <filename unknown>:0
at System.Windows.Forms.XplatUI.PaintEventStart (System.Windows.Forms.Message& msg, IntPtr handle, Boolean client) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.WmPaint (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Label.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0
at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] in <filename unknown>:0
Terminated: 15

Not nearly smart enough to decipher that one. If this needs to be on GitHub, let me know and I'll post an issue over there. Or, if I'm just doing something silly, scold me here! :wink:

Share this post


Link to post
Share on other sites

I tried again today and now with the latest lorenz attractor release it crashes with ckan.Not.ksp.dir.kraken or something I'm not sure on the exact syntax because it was on a different computer. I then try several earlier releases and it just flashes a terminal screen and then does nothing. What did I do?

Share this post


Link to post
Share on other sites

Apologies for this being a short post. Those of you on OSX having GUI problems may wish to check our FAQ here. Apparently it's a known bug with mono for OSX, and a fix/workaround is available.

Share this post


Link to post
Share on other sites

Hi,

First thank you for this amazing work. I would really try this on my laptop running on OSX. But it seems that I can't manage to make it work.

I've downloaded the ckan.exe, and the latest version of Mono (3.10) for OSX. Then I tried to open the .exe with the terminal, using the different commands :

"mono ckan.exe help"

"ckan.exe help"

"mono ckan.exe"

"ckan.exe"

Each without the quote. It's the first time I try to use a .exe with mono. And I know I must miss something. Please consider that english is not my main language, and that I'm willing to learn to make things work but I lack the basic computer knowledge to do so.

Thank you in advance.

Share this post


Link to post
Share on other sites

I noticed something odd, It seems when I try and use the manager.. It puts all the mods i am trying to stand in the cache, and even says it installs but when I check to see whats installed I dont find any thing actually installed, I chace the gamedata file and dont find any thing there. Is it a know issue with the GUI (which is much easier for me to use, I have issues with spelling) or is it an issue with the nut behind my key board?

Share this post


Link to post
Share on other sites
I noticed something odd, It seems when I try and use the manager.. It puts all the mods i am trying to stand in the cache, and even says it installs but when I check to see whats installed I dont find any thing actually installed, I chace the gamedata file and dont find any thing there. Is it a know issue with the GUI (which is much easier for me to use, I have issues with spelling) or is it an issue with the nut behind my key board?

I had the same problem with the gui version. tty version worked fine, though, so try that and see if it works. If spelling is an issue, try "ckan available" to list mods, and then copy-paste the names of the ones you want rather than typing them out by hand.

Share this post


Link to post
Share on other sites
Apologies for this being a short post. Those of you on OSX having GUI problems may wish to check our FAQ here. Apparently it's a known bug with mono for OSX, and a fix/workaround is available.

Fix worked for me. Thanks pjf!

Share this post


Link to post
Share on other sites

Hello there,

I have a small issue with CKAN and I'm not sure whether I'm missing something obvious or it is rather CKAN missing a very important feature. The issue is: how do I upgrade my already installed mods to their latest versions? Or, at least, how can CKAN tell me which of my installed mods have been updated since I installed them? I know that there is ckan.exe upgrade but that requires me to know which mod to upgrade, doesn't it?

Apart from that, I just want to say this is a fantastic project. Keep up the good work!

Share this post


Link to post
Share on other sites

I had a issue with the command line as well, but I did find a solution or work around the the Gui one that is good enough for me, What I found was that I need to install mods a few at a time

Share this post


Link to post
Share on other sites

I have an issue with this. When I start it, it opens up the command screen and the program closes immediately. Like 1second after I run it.

Share this post


Link to post
Share on other sites

I thought I would never see the day when mods could be auto-installed from the internet. Good Job!

Share this post


Link to post
Share on other sites

I have a small issue with CKAN and I'm not sure whether I'm missing something obvious or it is rather CKAN missing a very important feature. The issue is: how do I upgrade my already installed mods to their latest versions? Or, at least, how can CKAN tell me which of my installed mods have been updated since I installed them? I know that there is ckan.exe upgrade but that requires me to know which mod to upgrade, doesn't it?

I'm actually working on a better upgrade system right now. If you're feeling adventurous, then this branch supports a better upgrade system (you'll need to compile it yourself), this post has a preview, and this ticket is where we'll collect most of the dev work on this (although that probably won't show up until I make a pull request).

So in a nutshell, you'll see upgrades a a stable feature in v1.2.0, and as an unstable feature potentially as early as 1.1.2. (Watch our releases page or this thread for updates.)

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.