[Fresco-devel] Re: Cross-platformability

"M. Evans" <[email protected]>
Newsgroups gmane.comp.video.fresco.devel
Message-ID <[email protected]>
>> I'm a newbie and curious about the cross-platform possibilities of
>> Fresco.  (1) What technical hurdles, if any, would have to be
>> overcome to make Fresco run on Mac OS X, Win32, as well as Linux?

fdrfo> there are basically two big pieces that need to be ported / provided:
fdrfo> one is a system / platform abstraction. Our 'Prague' sub-project
fdrfo> provides an interface to (mostly) POSIX (file system access, inter-
fdrfo> process communication, threading, etc.). Second, we need an interface
fdrfo> to the i/o of the machine, i.e. input events, and graphical output.
fdrfo> We call this a 'console', and rely on third party libraries to
fdrfo> provide us this functionality.  Right now we have support for two
fdrfo> such tools: GGI, and SDL (more about them on our homepage).

Well OK, fair enough.  Conceptually then Prague deals with "kernel level"
issues while third-party libraries handle what you call "console"
issues.

By the way -- "console" connotes command-line programs.  It's a bad
term.  Many compiler manuals talk about "console programs."  Maybe
"graphics device context" or some similar term would serve better.

I know about GGI and SDL.  GGI is a bit lower-level than SDL, and I
think SDL can run with GGI as a "back end."

fdrfo> All the rest is pretty high level and very portable.

OK, but it sounds like no one has actually tested on anything but
Linux.  Is that true?

Anyway I am encouraged by the possibilities.

>> Also -- (2) does Fresco deal at all with DisplayPDF?  (This is the
>> graphics system used in Mac OS X.)

fdrfo> I guess this is a high level language to talk to the graphics
fdrfo> engine. To run on that system we'd either need to provide a console
fdrfo> that outputs 'DisplayPDF', or we'd need to interface directly with
fdrfo> a lower level of the graphics system, which sounds more likely.

My question was not really "can Fresco run on DisplayPDF" but rather
"does Fresco bear any relation to DisplayPDF."  DisplayPDF is simply a
resolution-independent graphics API.  Apple adopted it for their Mac
OS X.  The Scientific Python Chaco project uses it too.  My question
arose from a curiosity about the design of Fresco.  It shares with
DisplayPDF the resolution independence aspect.

I assume from your answer that Fresco is an ab initio design bearing
no relation to DisplayPDF.

fdrfo> This project is run by volunteers who do it in their (often scarse)
fdrfo> spare time.
fdrfo> Who cares may consider contributing and thus make us progress faster.

I am involved with open-source projects and that is how my
interest in Fresco came about; there may be some overlap.  I am always
interested in saving everybody's development time, yours and mine.

>> All I would add is that the LGPL license will drive away commercial
>> developers.  Most of the ones I know completely avoid xGPL

fdrfo> There is nothing 'unfriendly' in the LGPL. All it does is to ensure
fdrfo> that our work remains free. It is liberal enough to permit our libraries
fdrfo> to be linked with proprietary pieces of code. All it does not allow is
fdrfo> people to grab our code and repackage it into their own non-free code.
fdrfo> What you may be thinking of is the GPL, which is 'viral' in the sense
fdrfo> that it requires all code it is linked with to be free (according to
fdrfo> some appropriate definition of 'free').

OK, let me clarify.  I know quite a lot about GPL, LGPL, and other
licensing.  Briefly:  LGPL is a reasonable license for a project
like Fresco.  It's just not the ideal thing for any project hoping
to attract commercial developers.  This is why the wxWindows project
came up with a slightly modified LGPL; wxWindows permits commercial
sale of binaries without source requirements on library modifications.

The reality of business code is that it almost always involves some
library modification.  So raw linkage as defined by LGPL doesn't cut it.
Think about using a widget library like wxWindows.  There is an extremely
strong likelihood that *any* application will subclass some widgets.

Even the idealized world postulated by LGPL doesn't work out.
Assume an ideal businessman really wants to help the LGPL project.
So he submits all his modifications back to the project.  There is
still a potential headache.  What if the project *rejects* his
changes?  Now, the businessman is under obligation to create his *own*
mechanism for source code distribution!  He must offer end users
a means to re-link the application using his particular variant of
the LGPL code.  He must offer source code to his version of the LGPL
library.  It all gets very sticky.

Businessmen appreciate some other things that open source folks fail
to ponder.  Many of these legal software definitions are not settled
in case law.  This fact creates further ambiguity from a businessman's
standpoint.  What is "linkage"?  What is "executable"?  Is a
"subclass" considered a "modification"?  Courts can be arbitrary,
and a competitor with a smart lawyer can do real damage.  So from a
business standpoint there is a built-in legal risk with LGPL.

The point is that yes, LGPL is more friendly than GPL, but not
friendly enough.  It permits linkage with proprietary code.  However
it can also cause massive problems as outlined above.

When you think about it, it's much more polite to ask business to
contribute what it is willing/able to contribute, than to demand,
up-front, surrender of all library changes.

If you read some of the xGPL philosophy papers, they espouse the
notion of driving commercial software out of business in no
uncertain terms.  This is not a goal that I share.  My attitude
is that commercial and open-source efforts can complement each
other.  Open source should be willing to accept what business
can/will contribute, without making stringent legal demands.
Business should understand (and generally does) that it can
leverage the volunteer labor pool by contributing pieces of its
work back into the pool.  I don't think of LGPL as the win-win
ideal.

Open source is hurt more than helped by LGPL; commercial folks
are scared away from it, and that hurts open source because it
diminishes the labor pool.  It's better to take what you can get than
to scare people away completely (so that you get nothing at all).

For that reason I prefer to volunteer my labor on projects licensed
under X or BSD.  This is just my personal position and philosophy;
I am not interested in lobbying Fresco or holding a long debate.
Different people have different feelings and I respect all
points of view.  I just wanted to clarify my earlier remark and
perhaps disrupt some common misconceptions about the friendliness
of LGPL.

Mark
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.