It's not just wine problem, shader is not compiling in c++ either.
This:
color.rgb = vec3( 1.0-pow(l,pow((1.0-sin(length(pos)))*colorSeed.r,2)*2),
1.0-pow(l,pow((1.0-sin(length(pos)))*colorSeed.g,2)*1.4),
1.0-pow(l,pow((sin(length(pos)))*colorSeed.b,2)*1.2) );
changed to this:
color.rgb = vec3( 1.0-pow(l,pow((1.0-sin(length(pos)))*colorSeed.r,2)*2.0),
1.0-pow(l,pow((1.0-sin(length(pos)))*colorSeed.g,2)*1.4),
1.0-pow(l,pow((sin(length(pos)))*colorSeed.b,2)*1.2) );
works, because C(++) Linux and GL aren't C#, Windows and D3D so we get inconsistencies like that and more.
I always make floats end in .0 because things like that tend to happen...