[openbeos] ScreenSaver incompatability

  • From: Michael Phipps <mphipps1@xxxxxxxxxxxxxxxx>
  • To: openbeos@xxxxxxxxxxxxx
  • Date: Sun, 04 Apr 2004 23:24:27 -0400

Y'all remember how back in August/Sept of 2001 I said that we should shoot 
for binary compatibility and see what happens? Well, I have a minor issue. :-)

This is sort of a continuation/explanation of what Francois was talking about 
a few weeks ago. It seems that when Be built the ScreenSaver preferences app, 
they linked against a header that had "ReservedScreenSaverX" members, where X 
varied from 1 to 8. libscreensaver.so was built against the header that ships 
with R5 that has "_ReservedScreenSaverX" members. Note the underscore.

After a little testing, it seems that Be built their screensavers by linking 
to libscreensaver.so. All of theirs work with my code. Some developers did 
the same thing. Axel's very cool (according to my 8 year old) Nebula 
screensaver, for example, works just fine. But some (Matrix, for one) 
screensavers that did what the BeBook recommends and link against the 
ScreenSaver preferences app instead of libscreensaver.so will not work. They 
fail to load because there are missing symbols. 

So. I can go about this a couple of ways. 
1) I can have one header. That would break certain screensavers, but would 
make a lot of build and use sense. It would correct the weirdness on a going 
forward basis. The downside is that some screensavers would break.

2) I can make a duplicate header that has no underscores and build my 
ScreenSaver prefs with it. That complicates our source tree but keeps 
everything working.

So I have a request for all of you. 
Will you please look to see what screensaver you are running? If it is not a 
stock Be one (BuyNow, Flip, Icons, Lens, Lissart, Message, Spiral, Spots, 
StringTheme, SuperString, Blackness), will you find out where you got it from 
and see if source is available? If not (and you absolutely love it), let me 
know. 

If I don't get a flood of "save my Matrix" type emails, I will go with option 
1. :-)

Michael

Other related posts: