[OpenIndiana-discuss] Problem building xcreensaver 6.15
russell
stream at willows7.myzen.co.uk
Sat Jul 11 10:32:31 UTC 2026
Good Morning Peter
Thank you changing xscreensaver-6.15/hacks/glx/platonicfolding.c from
static inline void get_sun_direction(double jd, float sun[4])
{
double n, utc;
double l, g, gr, lambda, lambdar, epsilon, epsilonr;
double alpha, delta, eot, lat, lon;
float latr, lonr;
n = jd-2451545.0;
utc = 24.0*modulo(jd-0.5,1.0);
l = modulo(280.460+0.9856474*n,360.0);
g = modulo(357.528+0.9856003*n,360.0);
gr = rad(g);
lambda = modulo(l+1.915*sin(gr)+0.020*sin(2.0*gr),360.0);
epsilon = 23.439-0.0000004*n;
lambdar = rad(lambda);
epsilonr = rad(epsilon);
alpha =
modulo(deg(atan2(cos(epsilonr)*sin(lambdar),cos(lambdar))),360.0);
delta = deg(asin(sin(epsilonr)*sin(lambdar)));
eot = modulo(l-alpha+180.0,360.0)-180.0;
lat = delta;
lon = -15.0*(utc-12.0+eot*(4.0/60.0));
latr = (float)rad(lat);
lonr = (float)rad(lon);
sun[0] = cosf(latr)*cosf(lonr);
sun[1] = cosf(latr)*sinf(lonr);
sun[2] = sinf(latr);
sun[3] = 0.0f;
}
to
static inline void get_sun_direction(double jd, float thesun[4])
{
double n, utc;
double l, g, gr, lambda, lambdar, epsilon, epsilonr;
double alpha, delta, eot, lat, lon;
float latr, lonr;
n = jd-2451545.0;
utc = 24.0*modulo(jd-0.5,1.0);
l = modulo(280.460+0.9856474*n,360.0);
g = modulo(357.528+0.9856003*n,360.0);
gr = rad(g);
lambda = modulo(l+1.915*sin(gr)+0.020*sin(2.0*gr),360.0);
epsilon = 23.439-0.0000004*n;
lambdar = rad(lambda);
epsilonr = rad(epsilon);
alpha =
modulo(deg(atan2(cos(epsilonr)*sin(lambdar),cos(lambdar))),360.0);
delta = deg(asin(sin(epsilonr)*sin(lambdar)));
eot = modulo(l-alpha+180.0,360.0)-180.0;
lat = delta;
lon = -15.0*(utc-12.0+eot*(4.0/60.0));
latr = (float)rad(lat);
lonr = (float)rad(lon);
thesun[0] = cosf(latr)*cosf(lonr);
thesun[1] = cosf(latr)*sinf(lonr);
thesun[2] = sinf(latr);
thesun[3] = 0.0f;
}
Allowed the GL screensavers to be built, however they crashed on
execution changing the xscreensaver ./configure options to use
--with-glx fixed the GL screensavers, apparently this was something also
experienced by a BSD build which was corrected with the --with-glx so I
decided to give it a try.
./configure --prefix=/opt/xscreensaver --with-glx
Kind Regards
Russell
On 2026-07-11 10:46, Peter Tribble wrote:
> On Sat, Jul 11, 2026 at 10:37 AM russell via openindiana-discuss
> <openindiana-discuss at openindiana.org> wrote:
>> Hi
>>
>> Attempting to build xscreensaver using using gcc 10.4
>>
>> $ CFLAGS="-Wimplicit-function-declaration -Wnested-externs" ./configure
>> --prefix=/opt/xscreensaver
>>
>> Everything is fine until
>>
> ...
>> platonicfolding.c:937:55: error: expected ';', ',' or ')' before numeric
>> constant
>> 937 | static inline void get_sun_direction(double jd, float sun[4])
>> | ^~~
> The word "sun" is a predefined constant on Solaris and illumos, so
> using it as a variable
> name ends in disaster. Simply replace the "sun" there with any other
> word (say, "xsun")
> and the same replacement where the variable is used in the function,
> and all will be well.
>
More information about the openindiana-discuss
mailing list