core-code / CoreBreach

CoreBreach is THE brand-new futuristic "anti-gravity" racing game with combat-based gameplay.
Other
33 stars 5 forks source link

Compile on Linux fails - error: redefinition of 'iOS' - etc. #3

Closed qubodup closed 9 years ago

qubodup commented 9 years ago

Hi, the windows compile instructions are delicious. :) Thanks for providing Linux instructions.

On Arch Linux 64bit, I installed, partially from user repositories:

clang 3.6.0-4
gnustep-base-clang-svn 38451-1
gnustep-corebase-clang-svn 38451-1
gnustep-gui-clang-svn 38451-1
gnustep-libobjc2-clang-svn 38451-1
gnustep-make-clang-svn 38451-1
libdispatch-clang-git 305.0db82d9-1
freetype2 2.5.5-1
lib32-freetype2 2.5.5-1
lib32-openal 1.16.0-1
lib32-sdl 1.2.15-6
openal 1.16.0-1
python2-opengl 3.1.0-1
sdl 1.2.15-7
sdl2 2.0.3-1
sdl2_gfx 1:1.0.1-1
sdl2_image 2.0.0-2
sdl2_mixer 2.0.0-3
sdl2_ttf 2.0.12-2
sdl_gfx 2.0.25-1
sdl_image 1.2.12-3
sdl_mixer 1.2.12-4
sdl_net 1.2.8-2
sdl_sound 1.0.3-5
sdl_ttf 2.0.11-3

Arch Linux packages don't differ between normal and dev package.

However it fails to compile:

$ GNUSTEP_MAKEFILES=/usr/share/GNUstep/Makefiles make

http://codepad.org/ujIw0EhT

core-code commented 9 years ago

hello ivan

Hi, the windows compile instructions are delicious. :)

;)

i guess it would be possible to compile natively on windows too (using gnustep and clang) but i'm sure it wouldn't be easy.

Thanks for providing Linux instructions.

On Arch Linux 64bit, I installed, partially from user repositories:

clang 3.6.0-4 gnustep-base-clang-svn 38451-1 gnustep-corebase-clang-svn 38451-1 gnustep-gui-clang-svn 38451-1 gnustep-libobjc2-clang-svn 38451-1 gnustep-make-clang-svn 38451-1 libdispatch-clang-git 305.0db82d9-1 freetype2 2.5.5-1 lib32-freetype2 2.5.5-1 lib32-openal 1.16.0-1 lib32-sdl 1.2.15-6 openal 1.16.0-1 python2-opengl 3.1.0-1 sdl 1.2.15-7 sdl2 2.0.3-1 sdl2_gfx 1:1.0.1-1 sdl2_image 2.0.0-2 sdl2_mixer 2.0.0-3 sdl2_ttf 2.0.12-2 sdl_gfx 2.0.25-1 sdl_image 1.2.12-3 sdl_mixer 1.2.12-4 sdl_net 1.2.8-2 sdl_sound 1.0.3-5 sdl_ttf 2.0.11-3

Arch Linux packages don't differ between normal and dev package.

However it fails to compile:

hm i didn't compile corebreach for 3 years and don't have any linux systems around so i'm not sure if i can provide much help at this point

$ GNUSTEP_MAKEFILES=/usr/share/GNUstep/Makefiles make http://codepad.org/ujIw0EhT

it looks like the precompiled header file for some reason is included twice. i have no clue why this happens but added a simple guard around the header to prevent problems from multiple inclusion. give it a go (updated code in github) ;)

bye, julian

qubodup commented 9 years ago

Thanks! There remain some errors though: http://codepad.org/mNZ5qG9I

core-code commented 9 years ago

Am 13.04.2015 um 04:22 schrieb Iwan Gabovitch notifications@github.com:

Thanks! There remain some errors though: http://codepad.org/mNZ5qG9I

hello iwan

it seems to compile which is good news.

there are some problems when linking though.

i see two different problems:

• libffplaylib.so: undefined reference to * : the prebuilt libffplaylib.so located in DEPENDENCIES/libs-linux64//libffplaylib.so doesn't seem to work in your distribution. i'd suggest rebuilding it from source (h ttps://github.com/core-code/ffplaylib )

• /usr/lib/libgnustep-base.so: undefined reference to *: there seems to be some problems with linking to the gnustep packages you've installed it seems it can't find libicu. i'd suggest adding "-licuuc" to the ADDITIONAL_OBJC_LIBS line in CoreBreach/GNUmakefile and try again. if this doesn't work maybe the gnustep developers can help with this problem

bye, julian

qubodup commented 9 years ago

Thanks!

The second part was my oversight again. I updated icu 5 days ago, and all I had to do was recompile gnustep-base-clang-svn and gnustep-gui-clang-svn

This is what remains, nice and clean: http://codepad.org/u2vJHqZF

Looks like compiling ffplaylib might be very hard https://github.com/core-code/ffplaylib/issues/1

core-code commented 9 years ago

Am 14.04.2015 um 04:35 schrieb Iwan Gabovitch notifications@github.com:

Thanks!

The second part was my oversight again. I updated icu 5 days ago, and all I had to do was recompile gnustep-base-clang-svn and gnustep-gui-clang-svn

This is what remains, nice and clean: http://codepad.org/u2vJHqZF

cool ;)

Looks like compiling ffplaylib might be very hard core-code/ffplaylib#1

i guess you can skip compiling ffplay if you just install the 0.8 release of ffmpeg and link against it

qubodup commented 9 years ago

Thank you for offering to help at https://github.com/core-code/ffplaylib/issues/1#issuecomment-92993200 too!

Arch Linux doesn't provide old binary packages and it looks like back in ffmpeg 0.8 days they used a different version number system. I tried building one older version which failed for finding the right ffmpeg release source package and I doubt it would compile, so I'd rather try removing ffplay functionality, since it seems that it might be realistic to do.

I seem to have been able to remove FFPlay (diff: http://codepad.org/XHySgH6V ) Compilation finishes now. CB doesn't start:

$ CoreBreach.app/CoreBreach
2015-04-14 20:05:57.101 CoreBreach[3929:3929] Info: properOpenGL 1 gpuVendor 3 gpuSuckynessClass 0 (GL_VERSION: 3.0 Mesa 10.5.2 GL_RENDERER: Gallium 0.4 on AMD CAPE VERDE GL_VENDOR: X.Org)
2015-04-14 20:05:57.112 CoreBreach[3929:3929] Did not find correct version of backend (libgnustep-back-024.bundle), falling back to std (libgnustep-back.bundle).
2015-04-14 20:05:57.113 CoreBreach[3929:3929] NSApplication.m:304  Assertion failed in BOOL initialize_gnustep_backend().  Unable to find backend back
CoreBreach.app/CoreBreach: Uncaught exception NSInternalInconsistencyException, reason: NSApplication.m:304  Assertion failed in BOOL initialize_gnustep_backend().  Unable to find backend back

So I recompile all the gnustep packages.

Then I noticed "gnustep-back" in the error message and installed the package.

Now the Start window appears! http://i.imgur.com/w3iYXiu.jpg

When I start the game, the loading screen appears. http://i.imgur.com/lKvy3lZ.jpg When I start it, after about 5 seconds I hear a voice. If I press enter, I hear something that might be an engine standby noise. Pressing ESC releases my mouse.

Probably the code changes made CB go into video mode and never return or the open source AMD graphics driver might be failing.

I changed the condition which causes goto done; to be always true (1) and now I get the win screen after a few seconds of the game loading. http://i.imgur.com/Pc7qH5W.jpg

Perhaps I was wrong assuming ffplay is used for video file playback only and instead it handles the 3D display as well.

core-code commented 9 years ago

Thank you for offering to help at core-code/ffplaylib#1 (comment) too!

Arch Linux doesn't provide old binary packages and it looks like back in ffmpeg 0.8 days they used a different version number system. I tried building one older version which failed for finding the right ffmpeg release source package and I doubt it would compile,

actually i found ffmpeg normally compiles without many problems at all... but YMMV

so I'd rather try removing ffplay functionality, since it seems that it might be realistic to do.

I seem to have been able to remove FFPlay (diff: http://codepad.org/XHySgH6V ) Compilation finishes now. CB doesn't start:

$ CoreBreach.app/CoreBreach 2015-04-14 20:05:57.101 CoreBreach[3929:3929] Info: properOpenGL 1 gpuVendor 3 gpuSuckynessClass 0 (GL_VERSION: 3.0 Mesa 10.5.2 GL_RENDERER: Gallium 0.4 on AMD CAPE VERDE GL_VENDOR: X.Org) 2015-04-14 20:05:57.112 CoreBreach[3929:3929] Did not find correct version of backend (libgnustep-back-024.bundle), falling back to std (libgnustep-back.bundle). 2015-04-14 20:05:57.113 CoreBreach[3929:3929] NSApplication.m:304 Assertion failed in BOOL initialize_gnustep_backend(). Unable to find backend back CoreBreach.app/CoreBreach: Uncaught exception NSInternalInconsistencyException, reason: NSApplication.m:304 Assertion failed in BOOL initialize_gnustep_backend(). Unable to find backend back

So I recompile all the gnustep packages.

Then I noticed "gnustep-back" in the error message and installed the package.

Now the Start window appears! http://i.imgur.com/w3iYXiu.jpg

great ;) note that the shipped binary version (you can download the demo) uses some skins to make it less ugly

When I start the game, the loading screen appears. http://i.imgur.com/lKvy3lZ.jpg When I start it, after about 5 seconds I hear a voice. If I press enter, I hear something that might be an engine standby noise. Pressing ESC releases my mouse.

Probably the code changes made CB go into video mode and never return or the open source AMD graphics driver might be failing.

i believe seeing nothing is because some change to SDLRenderViewController is wrong. changing if (!isPlayingVideo()) to if (0) turns rendering off completely

I changed the condition which causes goto done; to be always true (1) and now I get the win screen after a few seconds of the game loading. http://i.imgur.com/Pc7qH5W.jpg

Perhaps I was wrong assuming ffplay is used for video file playback only and instead it handles the 3D display as well.

no, it just plays the videos. its inter-winded quite ugly with the rendering code though because SDL and ffmpeg APIs aren't so nice

actually i've already coded support for running without ffplay into SDLRenderViewController because ffplay doesn't work on the mac. sorry i didn't remember it earlier

so, i suggest resetting SDLRenderViewController to the GIT version and just changing

ifdef APPLE

to

if 1

this activates the stub functions at the bottom of the file so you don't need to link against actual ffplay. this should work since it has been tested on the mac a few years back

core-code commented 9 years ago

Now the Start window appears! http://i.imgur.com/w3iYXiu.jpg

weird that the pictures are missing ...

qubodup commented 9 years ago

Thanks! I copied ffplaylib.h to OtherSources/ and made your suggested change.

It crashes though and I can't seem to be able to reproduce it consistently.

Usually it stars at what seems to be the end of the intro sequence: http://youtu.be/JyQKRxkdecM

But attempt in which I used gdb came as far as me driving for about 4 seconds: http://i.imgur.com/RK5iw3N.jpg

gdb bt:

Program received signal SIGSEGV, Segmentation fault.
0x00000000004d2fb6 in -[Racetrack lightAtPoint:] ()
(gdb) bt
#0  0x00000000004d2fb6 in -[Racetrack lightAtPoint:] ()
#1  0x00000000004c9f30 in -[Playership updateNode] ()
#2  0x00000000004702f5 in -[SceneNode update] ()
#3  0x00007ffff6ceacef in ?? () from /usr/lib/libgnustep-base.so.1.24
#4  0x00007ffff6ceacef in ?? () from /usr/lib/libgnustep-base.so.1.24
#5  0x00007ffff6ceacef in ?? () from /usr/lib/libgnustep-base.so.1.24
#6  0x000000000046f5a9 in -[Scene update:] ()
#7  0x000000000047d855 in -[RenderViewController mainLoop] ()
#8  0x00007ffff6e2b4be in ?? () from /usr/lib/libgnustep-base.so.1.24
#9  0x00007ffff6e58562 in ?? () from /usr/lib/libgnustep-base.so.1.24
#10 0x00007ffff6e2d8cc in ?? () from /usr/lib/libgnustep-base.so.1.24
#11 0x00007ffff6e2e696 in ?? () from /usr/lib/libgnustep-base.so.1.24
#12 0x00007ffff790f081 in ?? () from /usr/lib/libgnustep-gui.so.0.24
#13 0x00007fffe61274f8 in ?? () from /usr/lib/GNUstep/Bundles/libgnustep-back-024.bundle/./libgnustep-back-024
#14 0x00007ffff777fa57 in ?? () from /usr/lib/libgnustep-gui.so.0.24
#15 0x00007ffff777e4cf in ?? () from /usr/lib/libgnustep-gui.so.0.24
#16 0x00007ffff77612ef in NSApplicationMain () from /usr/lib/libgnustep-gui.so.0.24
#17 0x00007ffff4dbf800 in __libc_start_main () from /usr/lib/libc.so.6
#18 0x000000000045c399 in _start ()

I tested a few more times and it seems like without gdb it always crashes at the end of the sequence or if I press enter or LMB. With gdb, it lasts a few seconds after the countdown: http://youtu.be/sxyNuxiLkYY

core-code commented 9 years ago

Am 15.04.2015 um 09:35 schrieb Iwan Gabovitch notifications@github.com:

Thanks! I copied ffplaylib.h to OtherSources/ and made your suggested change.

It crashes though and I can't seem to be able to reproduce it consistently.

Usually it stars at what seems to be the end of the intro sequence: http://youtu.be/JyQKRxkdecM

But attempt in which I used gdb came as far as me driving for about 4 seconds: http://i.imgur.com/RK5iw3N.jpg

gdb bt:

Program received signal SIGSEGV, Segmentation fault. 0x00000000004d2fb6 in -[Racetrack lightAtPoint:]() (gdb) bt

0 0x00000000004d2fb6 in -[Racetrack lightAtPoint:]()

1 0x00000000004c9f30 in -[Playership updateNode]()

2 0x00000000004702f5 in -[SceneNode update]()

3 0x00007ffff6ceacef in ?? () from /usr/lib/libgnustep-base.so.1.24

4 0x00007ffff6ceacef in ?? () from /usr/lib/libgnustep-base.so.1.24

5 0x00007ffff6ceacef in ?? () from /usr/lib/libgnustep-base.so.1.24

6 0x000000000046f5a9 in -[Scene update:]()

7 0x000000000047d855 in -[RenderViewController mainLoop]()

8 0x00007ffff6e2b4be in ?? () from /usr/lib/libgnustep-base.so.1.24

9 0x00007ffff6e58562 in ?? () from /usr/lib/libgnustep-base.so.1.24

10 0x00007ffff6e2d8cc in ?? () from /usr/lib/libgnustep-base.so.1.24

11 0x00007ffff6e2e696 in ?? () from /usr/lib/libgnustep-base.so.1.24

12 0x00007ffff790f081 in ?? () from /usr/lib/libgnustep-gui.so.0.24

13 0x00007fffe61274f8 in ?? () from /usr/lib/GNUstep/Bundles/libgnustep-back-024.bundle/./libgnustep-back-024

14 0x00007ffff777fa57 in ?? () from /usr/lib/libgnustep-gui.so.0.24

15 0x00007ffff777e4cf in ?? () from /usr/lib/libgnustep-gui.so.0.24

16 0x00007ffff77612ef in NSApplicationMain () from /usr/lib/libgnustep-gui.so.0.24

17 0x00007ffff4dbf800 in __libc_start_main () from /usr/lib/libc.so.6

18 0x000000000045c399 in _start ()

I tested a few more times and it seems like without gdb it always crashes at the end of the sequence or if I press enter or LMB. With gdb, it lasts a few seconds after the countdown: http://youtu.be/sxyNuxiLkYY

— Reply to this email directly or view it on GitHub.

you can just change

ifdef TARGET_OS_IPHONE

inside Track.mm => lightAtPoint to prevent the crash

what worries me more is that you see just the track and the enemies...(its supposed to look like this: )

and also the pictures are missing in the launcher

it seems like its unable to find half of the necessary files...is there any debug warnings or output about this?

core-code commented 9 years ago

Am 15.04.2015 um 09:42 schrieb Julian Mayer julian@corecode.at:

Am 15.04.2015 um 09:35 schrieb Iwan Gabovitch notifications@github.com:

Thanks! I copied ffplaylib.h to OtherSources/ and made your suggested change.

It crashes though and I can't seem to be able to reproduce it consistently.

Usually it stars at what seems to be the end of the intro sequence: http://youtu.be/JyQKRxkdecM

But attempt in which I used gdb came as far as me driving for about 4 seconds: http://i.imgur.com/RK5iw3N.jpg

gdb bt:

Program received signal SIGSEGV, Segmentation fault. 0x00000000004d2fb6 in -[Racetrack lightAtPoint:]() (gdb) bt

0 0x00000000004d2fb6 in -[Racetrack lightAtPoint:]()

1 0x00000000004c9f30 in -[Playership updateNode]()

2 0x00000000004702f5 in -[SceneNode update]()

3 0x00007ffff6ceacef in ?? () from /usr/lib/libgnustep-base.so.1.24

4 0x00007ffff6ceacef in ?? () from /usr/lib/libgnustep-base.so.1.24

5 0x00007ffff6ceacef in ?? () from /usr/lib/libgnustep-base.so.1.24

6 0x000000000046f5a9 in -[Scene update:]()

7 0x000000000047d855 in -[RenderViewController mainLoop]()

8 0x00007ffff6e2b4be in ?? () from /usr/lib/libgnustep-base.so.1.24

9 0x00007ffff6e58562 in ?? () from /usr/lib/libgnustep-base.so.1.24

10 0x00007ffff6e2d8cc in ?? () from /usr/lib/libgnustep-base.so.1.24

11 0x00007ffff6e2e696 in ?? () from /usr/lib/libgnustep-base.so.1.24

12 0x00007ffff790f081 in ?? () from /usr/lib/libgnustep-gui.so.0.24

13 0x00007fffe61274f8 in ?? () from /usr/lib/GNUstep/Bundles/libgnustep-back-024.bundle/./libgnustep-back-024

14 0x00007ffff777fa57 in ?? () from /usr/lib/libgnustep-gui.so.0.24

15 0x00007ffff777e4cf in ?? () from /usr/lib/libgnustep-gui.so.0.24

16 0x00007ffff77612ef in NSApplicationMain () from /usr/lib/libgnustep-gui.so.0.24

17 0x00007ffff4dbf800 in __libc_start_main () from /usr/lib/libc.so.6

18 0x000000000045c399 in _start ()

I tested a few more times and it seems like without gdb it always crashes at the end of the sequence or if I press enter or LMB. With gdb, it lasts a few seconds after the countdown: http://youtu.be/sxyNuxiLkYY

— Reply to this email directly or view it on GitHub.

you can just change

ifdef TARGET_OS_IPHONE

inside Track.mm => lightAtPoint to prevent the crash

what worries me more is that you see just the track and the enemies...(its supposed to look like this<Bildschirmfoto 2015-04-15 um 09.41.38.png>: )

and also the pictures are missing in the launcher

it seems like its unable to find half of the necessary files...is there any debug warnings or output about this?

ok it seems this is because of:

// opensource build doesn't use the full datatset

define NODATA 1

license.txt explains it all...

qubodup commented 9 years ago

Nice, I was able to do a full race with this change:

--- a/OtherSources/SDLRenderViewController.mm
+++ b/OtherSources/SDLRenderViewController.mm
@@ -527,7 +527,7 @@ RenderViewController *rvc = nil;

-#ifdef __APPLE__
+#if 1
 int playing = 0;

 char startVideo(const char *filename, SDL_Surface *surface)

Run: http://youtu.be/APepO7HRrqU

I switched #define NODATA 1 to 0 and it still runs (not sure if there's a difference): https://youtu.be/JkX6ParcsY0

Thanks a lot!

Arch Linux 64bit build summary:

  1. Copy ffplaylib.h to OtherSources/ffplaylib.h.
  2. Make a few changes in CoreBreach (git diff)
  3. Install some clang-related packages from AUR.
  4. Compile with GNUSTEP_MAKEFILES=/usr/share/GNUstep/Makefiles make
core-code commented 9 years ago

Nice, I was able to do a full race with this change:

--- a/OtherSources/SDLRenderViewController.mm +++ b/OtherSources/SDLRenderViewController.mm @@ -527,7 +527,7 @@ RenderViewController *rvc = nil;

-#ifdef APPLE +#if 1 int playing = 0;

char startVideo(const char filename, SDL_Surface surface)

Run: http://youtu.be/APepO7HRrqU

cool seems you are too good for the game

one thing is still weird, after the race you should come to the "race finished" screen where you see your position in the online highscores etc. i didn't see this in the video

I switched #define NODATA 1 to 0 and it still runs (not sure if there's a difference): https://youtu.be/JkX6ParcsY0

define NODATA 0 still 'defines' NODATA so it won't make the change as the check is done using #ifdef and not #if

so, i'd recommend to erasing the #define NODATA line completely

Thanks a lot!

Arch Linux 64bit build summary:

  1. Copy ffplaylib.h to OtherSources/ffplaylib.h.
  2. Make a few changes in CoreBreach (git diff)
  3. Install some clang-related packages from AUR.
  4. Compile with GNUSTEP_MAKEFILES=/usr/share/GNUstep/Makefiles make

glad it works more or less ;)

qubodup commented 9 years ago

Thanks a lot for the help :) I'll write a blogpost with CoreBreach in it on freegamer.blogspot.com soon Looks like it won't run without NODATA. FYI: The end screen does appear: http://i.imgur.com/7ZTpcec.jpg (I usually record using GLC, which only captures OpenGL, so it doesn't record the GUI part)

core-code commented 9 years ago

Thanks a lot for the help :) I'll write a blogpost with CoreBreach in it on freegamer.blogspot.com soon

of course the blog post would look much cooler if we could get it to run in full mode, i.e. without NODATA

Looks like it won't run without NODATA.

what exactly happens if you delete the NODATA define?

FYI: The end screen does appear: http://i.imgur.com/7ZTpcec.jpg

ah cool ;)

does slackware have the gnustep-gnome theme? this would make it look much better

qubodup commented 9 years ago

I'm on Arch Linux, not Slackware. :) I installed windowmaker-0.95.6-1 windowmaker-extra-0.1-5 but couldn't figure out how to change the theme in the command line.

That particular blog is for open source games, so the assets included in git are actually more interesting.

Without NODATA, the menu appears but the game won't run: http://codepad.org/W5JmmS3L

core-code commented 9 years ago

I'm on Arch Linux, not Slackware. :)

ugh sorry. being a mac user i sometimes throw the more esoteric distributions in a pot ;->

I installed windowmaker-0.95.6-1 windowmaker-extra-0.1-5 but couldn't figure out how to change the theme in the command line.

i don't believe there is a connection between windowmaker (the gnustep window manager) and the theme that gnustep uses

https://gnutopics.wordpress.com/2014/06/06/theming-and-style-in-gnustep/

That particular blog is for open source games, so the assets included in git are actually more interesting.

ok great. i'd open source at least the demo assets but those were made externally and are not owned by us.

Without NODATA, the menu appears but the game won't run: http://codepad.org/W5JmmS3L

Error: there is no octree named: track4_Hive

ah ok its exiting because it isn't finding one of the meshes...since only "track1" is part of the demo dataset i'd try with track 1

qubodup commented 9 years ago

Thanks for clarifying. I'm not sure which map to try though, it seems like neither uses track1. The first map produces this:

Calling [NSBitmapImageRep -_convertToFormatBitsPerSample:samplesPerPixel:hasAlpha:isPlanar:colorSpaceName:bitmapFormat:bytesPerRow:bitsPerPixel:] with incorrect signature.  Method has @68@0:8q16q24C32C36@40i48q52q60, selector has @68@0:8q16q24C32C36@40I48q52q60
2015-04-16 23:34:48.216 CoreBreach[11377:11377] File NSData.m: 162. In BOOL readContentsOfFile(NSString *, void **, off_t *, NSZone *) Open ((null)) attempt failed - bad path
Error: there is no octree named: track1_1AL
core-code commented 9 years ago

Thanks for clarifying. I'm not sure which map to try though, it seems like neither uses track1. The first map produces this:

Error: there is no octree named: track1_1

yes this is the failure message that the first additional track object for track1 could not be found (track1 is the track itself which you are already seeing, track1_x are the additional objects).

actually it seems the demo dataset includes track3 and not track1

if you download the demo dataset and add the files to your installation you should be able to play track3 with full content

qubodup commented 9 years ago

I forgot to mention it earlier and forgot in the meantime: the downloads at http://corebreach.corecode.at/CoreBreach/Try.html are 404

core-code commented 9 years ago

Am 18.04.2015 um 14:01 schrieb Iwan Gabovitch notifications@github.com:

I forgot to mention it earlier and forgot in the meantime: the downloads at http://corebreach.corecode.at/CoreBreach/Try.html are 404

thanks, the linux / windows links should work now