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

Re: [pygame] pygame source compiling



Marcus,
 Who is talking about precompiled dependencies? I'm talking about
depenendency sources. I agree that there would be issues with
precomplied dependencies (although I would still argue checking those
in would be btter than nothing) but I think checking in dependency
sources solves those issues.

Also, I think a lot of the things you bring up as "problems" of having
the dependencies checked in, is in fact a problem that exists whether
or not you have the dependencies checked in. It's simply that having
the dependencies checked in makes these existing problems much more
obvious (which is a big sign to me that it is a very good idea)


On 7/11/07, mva@xxxxxxxxxxxx <mva@xxxxxxxxxxxx> wrote:
Putting in precompiled dependencies would only make sense, if
a) someone takes care of their maintenance (updates, bug fixes, integration
    testing)

It seems like this is always a problem if you want to use a different
version of the dependencies than you used before, regardless of
whether you check dependencies in to svn. i.e. If svn pygame was last
built and tested against sdl 1.2, and sdl 2.0 comes out, you have to
find the updated sdl, integrate and test with the sdl changes.

Heck, if anything, checking in the last blessed sdl source makes these
kinds of problems much easier. For instance, when the bug comes up you
can use svn diff to see exactly how sdl 2.0 changed since 1.2. Also if
a bug comes up in pygame testing after making a build with a new
version of a dependency, and you trying to figure out why, you can
pull the last tested dependency and test with that.


b) they are restricted to some platforms (to be precise: windows (and maybe
    MacOS))

The sources are all either cross platform already, or the depend is
particular to certain platforms and not needed for others (in which
case the problem is already solved by pygame build process)


c) multiple distributions are supplied (one with the deps, one without, one
    source dist with the deps, one without, etc.)

First, why would you need to have a distro without the dependencies?
the one with them is a super-set of the one without. And even if you
did need one without, what the heck is so hard about making your gzip
or svn command not get the dependency directory contents?


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).

Again, you are blaming a preexisting problem here on having
dependencies checked in. In particular, if you are having pygame build
and link against your own installed shared library versions, then it
means you may be having pygame link and run against a version of the
lib which it was neither designed nor tested for. Also, the problem of
having the library manager resolve to a different version of the lib
at runtime than the compiler resolved to at compile time happens to
people with our current set up (you can find instances of this
happening in the mailing list archive with sdl_image). I can easily
take any system in the world and install a prebuilt shared version x
of some lib, and then install version y's sources - what does that
have to do with checking in dependencies or not?

...But lets say you do want to build against your own shared library
versions, and svn includes the "blessed" source versions of the
dependencies - what's the big deal? I can change a build option, I can
delete the depend sources from svn in my local copy, or I can copy
whatever version I want.

Also, when I install pygame, it comes with the sdl it was built with,
making this whole thing a non-issues. Why wouldn't it be a good thing
to make it easier for me to build the pygame I got myself?


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.

I think you are being somewhat blind to the issue that that system is
not working well for a number of people. It's not working for me, it's
not working for DR0ID and on the archives of this list you can find a
lot of other people who have said they weren't able to find the
dependencies to build.

A system that requires the users to go find their own dependencies and
run the build script may make more sense to you, but it seems to not
be effective to me.

---
If you see something I am not understanding, or something I don't know
about the linux way to do things that makes checked in dependencies a
problem, please correct me.