We've been working on reducing the complexity of the code for Miro 2.6.
We've done this in a few different ways and I want to summarize them
here.
moved binary kit stuff to separate repositories
This dropped the size of the git repository for miro a lot. Cloning the
repository is much faster now. Plus it's easier to build Miro on Windows
and OSX from the source tarball.
moving libtorrent out of portable
On Linux, this allows us to rely upon Linux distributions to have
packages for libtorrent (the Rasterbar version) and the Python bindings.
We don't need to compile libtorrent as part of the Miro build process
anymore. That dropped the build time like a rock, reduced the tarball
size, and removed a bunch of issues from configuring and compiling Miro
on Linux.
removing sorts.pyx and fasttypes.pyx
Removing these allowed us to remove the build dependency on Boost. That
removes a bunch of assy code we had in the setup.py file. This also
reduced the time it takes to build Miro on Linux.
adjustments to setup.py to be more whiny when things are missing
I added some code to the gtk-x11 setup.py to make it clearer when it's
missing build dependencies. I then tested this on Kubuntu Karmic, Fedora
12, and OpenSUSE 11.2. Miro will still try to run if it's missing
things--I'll look into this soon.
updated gtkx11 build docs
I went through and updated the build recipes in the gtk-x11 build docs
page.
I updated the recipes for Ubuntu Karmic, added recipes for Fedora 12 and
OpenSUSE 11.2 (though it won't work because I couldn't find a libtorrent
rasterbar package), and removed a bunch of old recipes that would never
work. I'm planning to do Gentoo and some other distributions next.
I updated the build and runtime requirements lists, too.
removing xine
This hasn't been done yet, but it'll happen soon. This will remove some
build requirements and it'll make our lives easier since we'll only have
to support one renderer on Linux. Supporting two takes a time and effort
and we're only doing a so-so job of it. Better to cut xine loose and
focus on gstreamer. I'm sorry that this will affect some people. I'm
hoping to rework the code so that additional renderers can be released
as separate packages like I did with frontends.
conclusion
We're focusing on reducing the complexity of the codebase and build
requirements to make it easier for new people to pick it up, build and
contribute. If there's anything else we can do on this front--or better
if there's anything YOU can help us do--let us know.