discuss-gnustep
[Top][All Lists]
Advanced

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

Re: building a self-contained deployable gnustep [cont]


From: Julian Mayer
Subject: Re: building a self-contained deployable gnustep [cont]
Date: Mon, 17 Oct 2011 14:09:51 +0200

>> 
>> Anyway, I've just spent some time trying to make things simpler by providing 
>> templates for standalone deployment (will probably need further tweaking, 
>> and I haven't documented it yet though) ...
>> 
>> I 
> I tried further testing with a gui app, and encountered an error in the 
> standalone.conf template, which  fixed in svn.
> 
> cd make
> ./configure --with-layout=standalone
> make install
> . ~/standalone/Makefile/GNUstep.sh
> cd ../base
> ./configure --with-config-file=./ --with-default-config=standalone.conf
> make install
> cd ../gui
> make install
> cd ../back
> make install
> 
> that puts the gnustep core packages into ~/standalone ... then you just need 
> to copy that wherever you want it inside your app wrapper, and set 
> LD_LIBRARY_PATH

hello richard

thanks for your help - i definitely didn't know to use the standalone layout 
... the "Relocateable Packages" section in the documentation also didn't 
mention it. thanks too for reminding me about GNUSTEP_CONFIG_FILE, i am 
ignoring this for now since you said the only thing the binary really should 
need is the proper LD_LIBRARY_PATH.

i've updated and rebuilt gnustep in the way you specified and verified that it 
works when used from its installed location. one thing i am curious about, you 
previously mentioned to use "--with-config-file=./GNUstep.conf" and now 
"--with-config-file=./" ...are they equivalent?


nevertheless, launching the rebuilt helloworld app with the standalone folder 
contents embedded still doesn't work. i've moved the standalone folder to 
another location to be sure it doesn't get picked up, copied its contents to 
the rebuilt helloworld app, switched to another terminal to be sure the 
environment variables are clean and:

address@hidden:~/Desktop/GNUstepTest/HelloWorld.app$ 
LD_LIBRARY_PATH=/home/notroot/Desktop/GNUstepTest/HelloWorld.app ./HelloWorld 
2011-10-16 21:32:26.305 HelloWorld[6593] Did not find correct version of 
backend (libgnustep-back-021.bundle), falling back to std 
(libgnustep-back.bundle).
2011-10-16 21:32:26.305 HelloWorld[6593] NSApplication.m:304  Assertion failed 
in BOOL initialize_gnustep_backend().  Unable to find backend back
./HelloWorld: Uncaught exception NSInternalInconsistencyException, reason: 
NSApplication.m:304  Assertion failed in BOOL initialize_gnustep_backend().  
Unable to find backend back

of course the backend is there:
address@hidden:~/Desktop/GNUstepTest/HelloWorld.app$ ls Bundles/
GSPrinting  libgmodel.bundle  libgnustep-back-021.bundle  TextConverters

i've tried stuffing a GNUstep.conf file in the helloworld.app bundle as well - 
didn't change a thing:

GNUSTEP_SYSTEM_ROOT=.
GNUSTEP_LOCAL_ROOT=.
GNUSTEP_NETWORK_ROOT=.
[etc]

do you have an idea here, or should i modify initialize_gnustep_backend() to 
print out the path where it is searching for the backend to get more 
information?


btw when rebuilding gnustep i've encountered this problems:

i wanted to try out the nonfragile option to make/libobjc2 but building 
libobjc2 1.5.1 with the non-fragile option yielded this:

address@hidden:~/Desktop/libobjc2-1.5.1$ clang arc.m -c       -MMD -MP 
-DTYPE_DEPENDENT_DISPATCH -D__OBJC_RUNTIME_INTERNAL__=1 -D_XOPEN_SOURCE=500 
-DGNU_RUNTIME=1 -DGNUSTEP_BASE_LIBRARY=1 -fno-strict-aliasing 
-fobjc-nonfragile-abi -D_NONFRAGILE_ABI -pthread -fPIC -Wall -DGSWARN 
-DGSDIAGNOSE -Wno-import -g -O2 -fgnu-runtime -std=gnu99 -g -fexceptions 
-Wno-unused-function -O3 -std=gnu99 -g -fexceptions -Wno-unused-function -O3 
-I. -I/home/notroot/GNUstep/Library/Headers -I/home/notroot/standalone/include  
      -o obj/libobjc.obj/arc.m.o
In file included from arc.m:400:
In file included from ./hash_table.h:21:
/usr/include/unistd.h:1128:35: error: __block attribute not allowed, only 
allowed on local variables
extern void encrypt (char *__block, int __edflag) __THROW __nonnull ((1));
                                  ^

i wanted to switch to the SVN trunk version of libobjc2 to see if the problem 
is gone there, but it doesn't use GNUmakefiles anymore - and unconditionally 
installs into /usr/local. thats not fine for me since i need the libobj2 
shipped in the standalone folder since my users won't have it. i think libobjc2 
trunk should still have an option to be deployable - i don't care if its with 
an option to just build statically or by still installing into the gnustep path.

thanks, julian

Attachment: smime.p7s
Description: S/MIME cryptographic signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]