[Date Prev][Date Next][Thread Prev][Thread Next][Thread Index]

Re: [XaraXtreme-dev] Re: Success



On 11/06/06, Phil Martin <phil@xxxxxxxx> wrote:
Hi Ben,

These are interesting, and possibly most important, points that you
have expressed very well.

I think that the outlook/direction depends primarily on whether you
are wanting to produce first:

1 A deliverable - something that John MacBull can download and
 play around with

2 A rock solid set of instructions that a Mac dev (one capable, or
 nearly capable, of building Firefox unaided) could use to produce
 a Mac Xara LX which matches an official one.

3 The means (or perhaps merely the methods and concepts) for an
 interested Mac person to produce a development
 version on their own platform ideally as a one-step operation

Arguably achieving certain of these would make the others easier or more viable.

This falls squarely into 'Project Management', and it would not
necessarily be helpful for me to try to set priorities. It is possible
that (if this is so), there being no current downloadable Mac version
reflects constraints or priorities for Xara LX at Gaddesden Place
which it would be foolish to examine here, but may be decisive.

The version of libxml in fink is not a Universal Binary whereas the
Apple one is. The same goes for libz, libiconv, (I've checked those)
and probably most (all?) other libraries.

I don't have a Mactel to check, but that is my understanding too. I am
not even certain that my fink development packages use the latest gcc
C++ ABI.

Does this mean that under (2) above, we need to deprecate the use of
fink development libraries (we can still use the fink tools, of
course)?

It would be nice to be able to link (weak link) with the Apple
frameworks for, say, png, jpeg, z, xml iconv; as Apple are then doing
the testing, patching and updating for us, but this would mean
restricting the use of libraries to the Apple versions. A similar
alternative would be to use whatever wrapper functions that wxWidgets
provides. This has come up before, and there are two known problems:
1) locating the matching headers for compilation and 2) the fact that
in some places, wrapper functions will not do.

Whilst I am not saying that these are insoluble, if there is a time
element, I would be tempted to bypass them, and licences permitting (I
think that these are all BSD-style licensed or similar and both permit
and encourage commerical use, and are GPL compatible), I would suggest
a tactic of compiling our own editions of this code and linking within
the .app bundle (the term is 'embedding'). We could ouselves create
working UB versions of the libraries. This means extra labour, taking
responsibilty for patching and updating, but gains control  of time
and will actually work.

This means it's possible to build a version for your particular platform
using the fink libraries but not to build a version that's generally
distributable.

Whilst fink predates UB, it stands for the same sort of portability
that enables UB, and I don't think that it is unfair at all to say
that the entire fink project is about "building versions for one's
particular platform', irrespective of Apple's omissions or actions. To
make a 'generally distributable' deliverable is perfectly possible,
and needs only a little work with otool: Inkscape and Abiword do this
most expediously, and I think that the GIMP does even better, but I
need to check. There is a project called 'Platypus' which does a
similar job fully automatically. The foregoing applies to a single
architecture - ppc - and the coming of UB invalidates essentially all
of these techniques. So far as I am aware, the GIMP project can make
universal binaries, but the others have may not yet have mastered the
art.

What I am saying is that if there is nothing wrong with producing a
binary for one's particular platform (my (3) above) then using the
fink development packages is fine, and probably very convenient.
Personally, I would not deprecate it, but I am sure that I do not have
the full picture!

Seems to me fink should be distributing universal binaries (at least
for us developers) but a Google search turns up no talk of this
whatsoever.

I believe that fink is working on and in fact produced some time ago a
MacTel edition of fink, but I guess from what you say that it is not
comprised of UBs. Is the darwinports any better for Xara?

Personally, I would be tempted to live with the situation of needing
to use Apple's methods to produce UBs: They seem simple and
well-documented. Perhaps there is a transitional period in which we
ought to encourage the production of platform specific versions, as I
am fairly sure that getting Mac Xara LX into the hands of potential
users, and bug finders really is a priority!

Ben