[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: building a self-contained deployable gnustep
From: |
David Chisnall |
Subject: |
Re: building a self-contained deployable gnustep |
Date: |
Thu, 13 Oct 2011 11:32:22 +0100 |
I have some out-of-tree patches that make this quite easy - I wrote them for
deploying on WebOS, where I wanted to do the same thing. I hope to have time
to tidy them up (and make sure that they don't break other configurations)
soon...
Basically, you can link the GNUstep libraries just as you would others, but
they need to be able to find the their resources. There is some optimisation
in NSBundle that, unfortunately, has the side effect of breaking everything
when the GNUstep libraries are not where they expect to be. This primarily
means that the time zone data is not in the right place.
I'm not 100% certain why the time zone data needs to be bundled with GNUstep,
since it's present on most systems anyway, so I also want to look at factoring
this out a bit.
David
On 13 Oct 2011, at 11:25, Julian Mayer wrote:
> hello all
>
> i recently started porting a Mac OS X game to linux via gnustep, you may have
> seen the flood of bugreports. thanks for the fixes so far!
>
> while i am waiting for some showstopper bugs which are too complicated for me
> to fix myself (mainly #34492 and #34481) i thought i would move forward in
> other direction.
>
> the problem i am facing is that i want to create a binary-only deployable
> package (more of a .tgz'ed folder - akin to sauerbraten) that linux users
> regardless of distribution can download and run without having to install
> dependencies, namely GNUstep.
> (since my app requires svn gnustep, recent clang, recent libobjc2, and some
> unmerged gnustep fixes, i.e. #34490 it won't run on what distributions ship
> for a few years anyway)
>
> for the non-gnustep libraries i figured this would not be too hard to do.
> just build dependencies on a distribution with an old glibc, and either link
> statically (if license permits) or shared and adjust the LD load path to be
> inside my folder (ADDITIONAL_LDFLAGS = -Wl,--rpath='$$ORIGIN/').
>
> the remaining problem is, i do not know how to build and package gnustep in a
> way so it is loaded from my app-folder wherever it resides. it seems to
> expect being in a global location.
>
> the only resources i could find on this topic are
> http://wiki.gnustep.org/index.php/Deployment_on_Windows
> which applies to windows only - i'd need the same thing for linux.
>
> there is also the "GNUstep Deployment Environment" on the "GNUstep wish list"
> in the wiki - which sounds what i need, but it being a wishlist-item is
> discouraging.
>
> so, does anyone know how to:
> • build gnustep in a way so it can operate from a location relative to my
> binary so i can deploy it?
> • how to handle the dependencies of gnustep itself - so that the whole thing
> runs on an as-large-as-possible pool of distributions:
> • i guess libtiff and libpng and possibly libxml2 can be statically linked
> but what about libffi, libxt, libXft, freetype2 and libart?
>
>
> for additional complication i absolutely need the embedded gnustep to use
> either the gnome-theme (which probably is a deploy-dependency nightmare) or a
> (good looking theme && get rid of the weird separate-window-horizontal-menu)
> so that my future users don't turn away laughing or even crying.
>
> thanks for any help, julian
>
>
> _______________________________________________
> Discuss-gnustep mailing list
> Discuss-gnustep@gnu.org
> https://lists.gnu.org/mailman/listinfo/discuss-gnustep
-- Send from my Jacquard Loom