[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [pygame] pygame source compiling



Brian Fisher <brian@xxxxxxxxxxxxxxxxxxx>:

On 7/11/07, DR0ID <dr0id@xxxxxxxxxx> wrote:
Because I have tried to compile every dependency from scratch and got
not that far. I think it would be much easier if all dependencies would
be in the svn repository, because an serious software development has to
do it that way. Either it is to have the correct version of the
dependencies so no new errors can occur if you build it ( if you have to
hunt all dependencies on the internet, you never will be sure if you got
the right version). Or to be able to rebuild old versions (its more
unlikely, but you never know).

I really don't think I could agree with this more.

If the "blessed" sources to the dependencies (i.e. the dependency
version built against to make binary releases)  was checked into
pygame svn such that you could get pygame svn version and the build
it, I think you would have a whole lot more people building and
testing, fixing and developing. The fact that I have to search for
dependencies that may not work is the single thing stopping me from
compiling from source.

So could we get one of the people who builds for binary releases to
add their dependency sources to pygame svn?

I already tried to explain it on IRC yesterday to DR0ID and will it do once more
on this list.

Putting in precompiled dependencies would only make sense, if
a) someone takes care of their maintenance (updates, bug fixes, integration
   testing)
b) they are restricted to some platforms (to be precise: windows (and maybe
   MacOS))
c) multiple distributions are supplied (one with the deps, one without, one
   source dist with the deps, one without, etc.)

That is an incredibly huge task and as soon as you get into the trouble of
having own installed shared library versions, the whole thing might completely
fail (especially if you link against e.g. a newer distributed shared
library but the library manager resolves your other older one at runtime).

This is definitely something nobody wants, but nobody can foresee or prevent in
a secure way. Instead it increases:

a) filed bugs due to library version mismatches
b) issues caused by broken distributed dependencies
c) maintenance overhead
d) ...

Instead a build script, which takes care of building all the dependencies the
user downloaded and put into some predefined directory, would make more sense.

Regards
Marcus