On the matter of compiling software with dependencies missing from package repos (and graphical installers).



Hello,

As I was looking into building systems and compilation process, I have come
to a conclusion that while a well-prepared SConstruct file may take care of
checking for the dependencies and configuring compilation, it does not
actually download them. There is also the question of compatibility between
build systems (do I really have to write a builder for scons in order to
execute a *shudder* autogen-make combo?). Now, while packaging takes care
of that, it may fail if a required package is not in the repository
(looking at you, Ubuntu: it's been a couple of years now, and still no
libcluttermm package). Therefore, configure-build-install combo has to
become
for-each-unpackaged-dependency-configure-build-install-then-configure-build-install(program).
This just freaks me out. I have no problem doing this myself, but I fear
that this may drive potential users (or customers, which is doubly bad). So
if I wanted to write a C++ Clutter application, I would have to either:
1) Maintain libcluttermm package myself (which I don't have the time for),
or
2) Skip package repos, ship libcluttermm with my program, and then install
all that in a non-standard place (/opt comes to mind), therefore rendering
the local copy of libcluttermm unusable by any other program (which I don't
have time for).

What the hell.

Now, I know I can use the C API directly, but that's not the point of
writing a C++ application, is it? If I was to write a trading-card game,
using an object-oriented language seems like a reasonable choice, since
trading cards are *actually a pretty good metaphor for OOP*. And besides, I
think now is the time we stop using a procedural language to do OOP with
(and using a jury-rig build system from the 70s to compile it). The reason
why I want to use Clutter is that it's a great general-purpose 2.5D library
which can be used either for boring GUI or games that don't really need to
use full 3D support. However, this situation makes me question its
usefulness.

One of the solutions would be to write a graphical installer script using
Python and GTK or Qt, which uses common packages in order to build all the
uncommon dependencies straight from their repositories. It would still
install that to /opt, though. This also breaks updating process, however it
would greatly improve the installation experience (something that Ubuntu is
going for now).

What do you think about this issue?


_____________________
Filip Lamparski - FB <https://www.facebook.com/filip.lamparski> -
G+<https://plus.google.com/105688569486178456264/posts>



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