<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.gnustep.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Julian</id>
	<title>GNUstepWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.gnustep.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Julian"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php/Special:Contributions/Julian"/>
	<updated>2026-05-05T03:15:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.7</generator>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Deployment_on_Linux&amp;diff=6217</id>
		<title>Deployment on Linux</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Deployment_on_Linux&amp;diff=6217"/>
		<updated>2011-11-11T19:02:08Z</updated>

		<summary type="html">&lt;p&gt;Julian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Deploying a GNUstep-using application is easy if it is intended for inclusion in linux distributions or if you are deploying in an controlled environment, e.g. in the enterprise. However, there are a number of reasons why you would need to create end-user deployable packages that already include GNUstep:&lt;br /&gt;
 • your application depends on features that are not included yet in linux distributions (libobjc2, llvm, /recent/ GNUstep versions)&lt;br /&gt;
    or on a patched GNUstep version or you want to be sure your application is only used with a specific GNUstep theme...&lt;br /&gt;
 • you want to offer your self-contained binary version of your application for download without having your users need to install GNUstep (e.g. commercial apps)&lt;br /&gt;
&lt;br /&gt;
In this case its best to bundle GNUstep with your application binary. First off you need to decide on the oldest linux distribution you want to support, since compiled binaries often do not run on older linux versions than they were built on. I am using Ubuntu 10.04 LTS for this purpose.&lt;br /&gt;
&lt;br /&gt;
When you have installed this distribution you first need to take care of the dependencies of GNUstep itself, that you do not want your resulting installation to depend on. For example most distributions ship without libffi, so if you want to use a libffi-enabled GNUstep you need to statically link it or ship it in your download. &lt;br /&gt;
'''This guide assumes you've built static versions of libffi, libpng, liftiff and libxml2 and installed them into: ~/build/''' (on AMD64 you *must* build all libraries --with-pic else they won't work)&lt;br /&gt;
&lt;br /&gt;
Now you need to compile standalone versions of GNUstep. These instructions depend on at least revision 34026 of GNUstep to work - as of October 2011 there have been no releases of GNUstep with the necessary features and fixes therefore you need the SVN version. It is also a good idea to configure GNUstep to use only the bare minimum of the features that you need - e.g getting problems because GNUstep depends on libjpeg although you aren't using it can be avoided.&lt;br /&gt;
&lt;br /&gt;
Optional: Install LLVM &amp;gt;= 2.9 as compiler&lt;br /&gt;
&lt;br /&gt;
Checkout GNUstep SVN:&lt;br /&gt;
  svn co http://svn.gna.org/svn/gnustep/modules/core&lt;br /&gt;
&lt;br /&gt;
Install GNUstep make:&lt;br /&gt;
  cd core/make&lt;br /&gt;
  ./configure --with-layout=standalone&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
Source GNUstep envionment:&lt;br /&gt;
  . ~/standalone/Makefiles/GNUstep.sh &lt;br /&gt;
&lt;br /&gt;
Optional: Install libobjc2 if you need a modern runtime e.g. for blocks support. You need to configure and install GNUstep make a second time after installing libobjc2 if you decide on using it, in order for it to get picked up. Note that libobjc2 &amp;gt; 1.5.1 doesn't install itself into the GNUstep environment by default anymore, so you need to take care it gets installed into ~/standalone/: PREFIX=~/standalone/ make install&lt;br /&gt;
&lt;br /&gt;
Build GNUstep base:&lt;br /&gt;
  PATH=$PATH:~/build/bin ./configure --with-config-file=./ --with-default-config=standalone.conf --with-include-dir=${HOME}/build/include/ --with-library-dir=${HOME}/build/lib/ --with-ffi-include=${HOME}/build/include/ --with-ffi-library=${HOME}/build/lib/&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build GNUstep gui:&lt;br /&gt;
  ./configure --with-tiff-include=${HOME}/build/include/ --with-tiff-library=${HOME}/build/lib/ --disable-jpeg&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
Build GNUstep back (you need to install development packages for X11 and libart):&lt;br /&gt;
  ./configure&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Success, now you have a standalone GNUstep environment in ~/standalone/&lt;br /&gt;
&lt;br /&gt;
Next step is installing the [[Themes]] you want your application to use into ~/standalone/Themes/ since the default look will probably anger your users. The best choice for deployment on linux is probably the gnome-theme for nice system integration but this may create problems with library dependencies across distributions so i've settled on the Silver theme for now.&lt;br /&gt;
&lt;br /&gt;
Place a file named GlobalDefaults.plist into ~/standalone/ to change the Theme, make GNUstep use horizontal menus like everyone else and change other options:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//GNUstep//DTD plist 0.9//EN&amp;quot; &amp;quot;http://www.gnustep.org/plist-0_9.xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;0.9&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;dict&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;GSTheme&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;Silver&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;NSMenuInterfaceStyle&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;NSWindows95InterfaceStyle&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;NSUseRunningCopy&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;YES&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;GSSuppressAppIcon&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;YES&amp;lt;/string&amp;gt;&lt;br /&gt;
  &amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now just build your application (cd AppSource; make), move the standalone folder into your application bundle, place a launcher script next to your application bundle, compress the application bundle and the launcher script and place it somewhere for download. Don't forget to test the result on a variety of distributions.&lt;br /&gt;
&lt;br /&gt;
Sample application launcher script:&lt;br /&gt;
&lt;br /&gt;
  export LD_LIBRARY_PATH=`pwd`/YourApplicationName.app/standalone:$LD_LIBRARY_PATH&lt;br /&gt;
  exec YourApplicationName.app/YourApplicationName&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is one more issue with deployment on linux: 64 / 32 bit compatibility. On Mac OS X and Windows you can just deploy a 32-bit package and it will run fine on 64-bit too. On 64-bit linux you can run 32-bin binaries too, but the 32-bit libraries are not installed by default and its only easily possible to install 32-bit libraries on Fedora but not on Debian/Ubuntu. Therefore your only options are either to:&lt;br /&gt;
 • build a 32-bit package and link *everything* statically so it runs fine on 64-bit too where the libraries are missing.&lt;br /&gt;
 • build gnustep and your app in a 32-bit and a 64-bit version and select the proper version in your launcher script (or host 2 different packages for download).&lt;br /&gt;
&lt;br /&gt;
[[Category:Deployment]]&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Julian</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Deployment_on_Linux&amp;diff=6216</id>
		<title>Deployment on Linux</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Deployment_on_Linux&amp;diff=6216"/>
		<updated>2011-11-11T16:42:30Z</updated>

		<summary type="html">&lt;p&gt;Julian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Deploying a GNUstep-using application is easy if it is intended for inclusion in linux distributions or if you are deploying in an controlled environment, e.g. in the enterprise. However there are a number of reasons why you would need to create end-user deployable packages that already include GNUstep:&lt;br /&gt;
 • your application depends on features that are not included yet in linux distributions (libobjc2, llvm, /recent/ GNUstep versions)&lt;br /&gt;
    or on a patched GNUstep version or you want to be sure your application is only used with a specific GNUstep theme...&lt;br /&gt;
 • you want to offer your self-contained binary version of your application for download without having your users need to install GNUstep (e.g. commercial apps)&lt;br /&gt;
&lt;br /&gt;
In this case its best to bundle GNUstep with your application binary. First off you need to decide on the oldest linux distribution you want to support, since compiled binaries often do not run on older linux versions than they were built on. I am using Ubuntu 10.04 LTS for this purpose.&lt;br /&gt;
&lt;br /&gt;
When you have installed this distribution you first need to take care of the dependencies of GNUstep itself, that you do not want your resulting installation to depend on. For example most distributions ship without libffi, so if you want to use a libffi-enabled GNUstep you need to statically link it or ship it in your download. &lt;br /&gt;
'''This guide assumes you've built static versions of libffi, libpng, liftiff and libxml2 and installed them into: ~/build/''' (on AMD64 you *must* build all libraries --with-pic else they won't work)&lt;br /&gt;
&lt;br /&gt;
Now you need to compile standalone versions of GNUstep. These instructions depend on at least revision 34026 of GNUstep to work - as of October 2011 there have been no releases of GNUstep with the necessary features and fixes therefore you need the SVN version. It is also a good idea to configure GNUstep to use only the bare minimum of the features that you need - e.g getting problems because GNUstep depends on libjpeg although you aren't using it can be avoided.&lt;br /&gt;
&lt;br /&gt;
Optional: Install LLVM &amp;gt;= 2.9 as compiler&lt;br /&gt;
&lt;br /&gt;
Checkout GNUstep SVN:&lt;br /&gt;
  svn co http://svn.gna.org/svn/gnustep/modules/core&lt;br /&gt;
&lt;br /&gt;
Install GNUstep make:&lt;br /&gt;
  cd core/make&lt;br /&gt;
  ./configure --with-layout=standalone&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
Source GNUstep envionment:&lt;br /&gt;
  . ~/standalone/Makefiles/GNUstep.sh &lt;br /&gt;
&lt;br /&gt;
Optional: Install libobjc2 if you need a modern runtime e.g. for blocks support. You need to configure and install GNUstep make a second time after installing libobjc2 if you decide on using it, in order for it to get picked up. Note that libobjc2 &amp;gt; 1.5.1 doesn't install itself into the GNUstep environment by default anymore, so you need to take care it gets installed into ~/standalone/: PREFIX=~/standalone/ make install&lt;br /&gt;
&lt;br /&gt;
Build GNUstep base:&lt;br /&gt;
  PATH=$PATH:~/build/bin ./configure --with-config-file=./ --with-default-config=standalone.conf --with-include-dir=${HOME}/build/include/ --with-library-dir=${HOME}/build/lib/ --with-ffi-include=${HOME}/build/include/ --with-ffi-library=${HOME}/build/lib/&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build GNUstep gui:&lt;br /&gt;
  ./configure --with-tiff-include=${HOME}/build/include/ --with-tiff-library=${HOME}/build/lib/ --disable-jpeg&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
Build GNUstep back (you need to install development packages for X11 and libart):&lt;br /&gt;
  ./configure&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Success, now you have a standalone GNUstep environment in ~/standalone/&lt;br /&gt;
&lt;br /&gt;
Next step is installing the [[Themes]] you want your application to use into ~/standalone/Themes/ since the default look will probably anger your users. The best choice for deployment on linux is probably the gnome-theme for nice system integration but this may create problems with library dependencies across distributions so i've settled on the Silver theme for now.&lt;br /&gt;
&lt;br /&gt;
Place a file named GlobalDefaults.plist into ~/standalone/ to change the Theme, make GNUstep use horizontal menus like everyone else and change other options:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//GNUstep//DTD plist 0.9//EN&amp;quot; &amp;quot;http://www.gnustep.org/plist-0_9.xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;0.9&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;dict&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;GSTheme&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;Silver&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;NSMenuInterfaceStyle&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;NSWindows95InterfaceStyle&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;NSUseRunningCopy&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;YES&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;GSSuppressAppIcon&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;YES&amp;lt;/string&amp;gt;&lt;br /&gt;
  &amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now just build your application (cd AppSource; make), move the standalone folder into your application bundle, place a launcher script next to your application bundle, compress the application bundle and the launcher script and place it somewhere for download. Don't forget to test the result on a variety of distributions.&lt;br /&gt;
&lt;br /&gt;
Sample application launcher script:&lt;br /&gt;
&lt;br /&gt;
  export LD_LIBRARY_PATH=`pwd`/YourApplicationName.app/standalone:$LD_LIBRARY_PATH&lt;br /&gt;
  exec YourApplicationName.app/YourApplicationName&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is one more issue with deployment on linux: 64 / 32 bit compatibility. On Mac OS X and Windows you can just deploy a 32-bit package and it will run fine on 64-bit too. On 64-bit linux you can run 32-bin binaries too, but the 32-bit libraries are not installed by default and its only easily possible to install 32-bit libraries on Fedora but not on Debian/Ubuntu. Therefore your only options are either to:&lt;br /&gt;
 • build a 32-bit package and link *everything* statically so it runs fine on 64-bit too where the libraries are missing.&lt;br /&gt;
 • build gnustep and your app in a 32-bit and a 64-bit version and select the proper version in your launcher script (or host 2 different packages for download).&lt;br /&gt;
&lt;br /&gt;
[[Category:Deployment]]&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Julian</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Deployment_on_Linux&amp;diff=6215</id>
		<title>Deployment on Linux</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Deployment_on_Linux&amp;diff=6215"/>
		<updated>2011-11-11T15:50:02Z</updated>

		<summary type="html">&lt;p&gt;Julian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Deploying a GNUstep-using application is easy if it is intended for inclusion in linux distributions or if you are deploying in an controlled environment, e.g. in the enterprise. However there are a number of reasons why you would need to create end-user deployable packages that already include GNUstep:&lt;br /&gt;
 • your application depends on features that are not included yet in linux distributions (libobjc2, llvm, /recent/ GNUstep versions)&lt;br /&gt;
    or on a patched GNUstep version or you want to be sure your application is only used with a specific GNUstep theme...&lt;br /&gt;
 • you want to offer your self-contained binary version of your application for download without having your users need to install GNUstep (e.g. commercial apps)&lt;br /&gt;
&lt;br /&gt;
In this case its best to bundle GNUstep with your application binary. First off you need to decide on the oldest linux distribution you want to support, since compiled binaries often do not run on older linux versions than they were built on. I am using Ubuntu 10.04 LTS for this purpose.&lt;br /&gt;
&lt;br /&gt;
When you have installed this distribution you first need to take care of the dependencies of GNUstep itself, that you do not want your resulting installation to depend on. For example most distributions ship without libffi, so if you want to use a libffi-enabled GNUstep you need to statically link it or ship it in your download. &lt;br /&gt;
'''This guide assumes you've built static versions of libffi, libpng, liftiff and libxml2 and installed them into: ~/build/''' (on AMD64 you *must* build all libraries --with-pic else they won't work)&lt;br /&gt;
&lt;br /&gt;
Now you need to compile standalone versions of GNUstep. These instructions depend on at least revision 34026 of GNUstep to work - as of October 2011 there have been no releases of GNUstep with the necessary features and fixes therefore you need the SVN version. It is also a good idea to configure GNUstep to use only the bare minimum of the features that you need - e.g getting problems because GNUstep depends on libjpeg although you aren't using it can be avoided.&lt;br /&gt;
&lt;br /&gt;
Optional: Install LLVM &amp;gt;= 2.9 as compiler&lt;br /&gt;
&lt;br /&gt;
Checkout GNUstep SVN:&lt;br /&gt;
  svn co http://svn.gna.org/svn/gnustep/modules/core&lt;br /&gt;
&lt;br /&gt;
Install GNUstep make:&lt;br /&gt;
  cd core/make&lt;br /&gt;
  ./configure --with-layout=standalone&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
Source GNUstep envionment:&lt;br /&gt;
  . ~/standalone/Makefiles/GNUstep.sh &lt;br /&gt;
&lt;br /&gt;
Optional: Install libobjc2 if you need a modern runtime e.g. for blocks support. You need to configure and install GNUstep make a second time after installing libobjc2 if you decide on using it, in order for it to get picked up. Note that libobjc2 &amp;gt; 1.5.1 doesn't install itself into the GNUstep environment by default anymore, so you need to take care it gets installed into ~/standalone/: PREFIX=~/standalone/ make install&lt;br /&gt;
&lt;br /&gt;
Build GNUstep base:&lt;br /&gt;
  PATH=$PATH:~/build/bin ./configure --with-config-file=./ --with-default-config=standalone.conf --with-include-dir=${HOME}/build/include/ --with-library-dir=${HOME}/build/lib/ --with-ffi-include=${HOME}/build/include/ --with-ffi-library=${HOME}/build/lib/&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build GNUstep gui:&lt;br /&gt;
  ./configure --with-tiff-include=${HOME}/build/include/ --with-tiff-library=${HOME}/build/lib/ --disable-jpeg&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
Build GNUstep back (you need to install development packages for X11 and libart - depending on cairo is probably a bad idea):&lt;br /&gt;
  ./configure&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Success, now you have a standalone GNUstep environment in ~/standalone/&lt;br /&gt;
&lt;br /&gt;
Next step is installing the [[Themes]] you want your application to use into ~/standalone/Themes/ since the default look will probably anger your users. The best choice for deployment on linux is probably the gnome-theme for nice system integration but this may create problems with library dependencies across distributions so i've settled on the Silver theme for now.&lt;br /&gt;
&lt;br /&gt;
Place a file named GlobalDefaults.plist into ~/standalone/ to change the Theme, make GNUstep use horizontal menus like everyone else and change other options:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//GNUstep//DTD plist 0.9//EN&amp;quot; &amp;quot;http://www.gnustep.org/plist-0_9.xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;0.9&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;dict&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;GSTheme&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;Silver&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;NSMenuInterfaceStyle&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;NSWindows95InterfaceStyle&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;NSUseRunningCopy&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;YES&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;GSSuppressAppIcon&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;YES&amp;lt;/string&amp;gt;&lt;br /&gt;
  &amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now just build your application (cd AppSource; make), move the standalone folder into your application bundle, place a launcher script next to your application bundle, compress the application bundle and the launcher script and place it somewhere for download. Don't forget to test the result on a variety of distributions.&lt;br /&gt;
&lt;br /&gt;
Sample application launcher script:&lt;br /&gt;
&lt;br /&gt;
  export LD_LIBRARY_PATH=`pwd`/YourApplicationName.app/standalone:$LD_LIBRARY_PATH&lt;br /&gt;
  exec YourApplicationName.app/YourApplicationName&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is one more issue with deployment on linux: 64 / 32 bit compatibility. On Mac OS X and Windows you can just deploy a 32-bit package and it will run fine on 64-bit too. On 64-bit linux you can run 32-bin binaries too, but the 32-bit libraries are not installed by default and its only easily possible to install 32-bit libraries on Fedora but not on Debian/Ubuntu. Therefore your only options are either to:&lt;br /&gt;
 • build a 32-bit package and link *everything* statically so it runs fine on 64-bit too where the libraries are missing.&lt;br /&gt;
 • build gnustep and your app in a 32-bit and a 64-bit version and select the proper version in your launcher script (or host 2 different packages for download).&lt;br /&gt;
&lt;br /&gt;
[[Category:Deployment]]&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Julian</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Deployment_on_Linux&amp;diff=6214</id>
		<title>Deployment on Linux</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Deployment_on_Linux&amp;diff=6214"/>
		<updated>2011-11-11T15:47:49Z</updated>

		<summary type="html">&lt;p&gt;Julian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Deploying a GNUstep-using application is easy if it is intended for inclusion in linux distributions or if you are deploying in an controlled environment, e.g. in the enterprise. However there are a number of reasons why you would need to create end-user deployable packages that already include GNUstep:&lt;br /&gt;
 • your application depends on features that are not included yet in linux distributions (libobjc2, llvm, /recent/ GNUstep versions)&lt;br /&gt;
    or on a patched GNUstep version or you want to be sure your application is only used with a specific GNUstep theme...&lt;br /&gt;
 • you want to offer your self-contained binary version of your application for download without having your users need to install GNUstep (e.g. commercial apps)&lt;br /&gt;
&lt;br /&gt;
In this case its best to bundle GNUstep with your application binary. First off you need to decide on the oldest linux distribution you want to support, since compiled binaries often do not run on older linux versions than they were built on. I am using Ubuntu 10.04 LTS for this purpose.&lt;br /&gt;
&lt;br /&gt;
When you have installed this distribution you first need to take care of the dependencies of GNUstep itself, that you do not want your resulting installation to depend on. For example most distributions ship without libffi, so if you want to use a libffi-enabled GNUstep you need to statically link it or ship it in your download. &lt;br /&gt;
'''This guide assumes you've built static versions of libffi, libpng, liftiff and libxml2 and installed them into: ~/build/''' (on AMD64 you *must* build all libraries --with-pic else they won't work)&lt;br /&gt;
&lt;br /&gt;
Now you need to compile standalone versions of GNUstep. These instructions depend on at least revision 34026 of GNUstep to work - as of October 2011 there have been no releases of GNUstep with the necessary features and fixes therefore you need the SVN version. It is also a good idea to configure GNUstep to use only the bare minimum of the features that you need - e.g getting problems because GNUstep depends on libjpeg although you aren't using it can be avoided.&lt;br /&gt;
&lt;br /&gt;
Optional: Install LLVM &amp;gt;= 2.9 as compiler&lt;br /&gt;
&lt;br /&gt;
Checkout GNUstep SVN:&lt;br /&gt;
  svn co http://svn.gna.org/svn/gnustep/modules/core&lt;br /&gt;
&lt;br /&gt;
Install GNUstep make:&lt;br /&gt;
  cd core/make&lt;br /&gt;
  ./configure --with-layout=standalone&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
Source GNUstep envionment:&lt;br /&gt;
  . ~/standalone/Makefiles/GNUstep.sh &lt;br /&gt;
&lt;br /&gt;
Optional: Install libobjc2 if you need a modern runtime e.g. for blocks support. You need to configure and install GNUstep make a second time after installing libobjc2 if you decide on using it, in order for it to get picked up. Note that libobjc2 &amp;gt; 1.5.1 doesn't install itself into the GNUstep environment by default anymore, so you need to take care it gets installed into ~/standalone/: PREFIX=~/standalone/ make install&lt;br /&gt;
&lt;br /&gt;
Build GNUstep base:&lt;br /&gt;
  PATH=$PATH:~/build/bin ./configure --with-config-file=./ --with-default-config=standalone.conf --with-include-dir=~/build/include/ --with-library-dir=~/build/lib/ --with-ffi-include=~/build/include/ --with-ffi-library=~/build/lib/&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build GNUstep gui:&lt;br /&gt;
  ./configure --with-tiff-include=~/build/include/ --with-tiff-library=~/build/lib/ --disable-jpeg&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
Build GNUstep back (you need to install development packages for X11 and libart - depending on cairo is probably a bad idea):&lt;br /&gt;
  ./configure&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Success, now you have a standalone GNUstep environment in ~/standalone/&lt;br /&gt;
&lt;br /&gt;
Next step is installing the [[Themes]] you want your application to use into ~/standalone/Themes/ since the default look will probably anger your users. The best choice for deployment on linux is probably the gnome-theme for nice system integration but this may create problems with library dependencies across distributions so i've settled on the Silver theme for now.&lt;br /&gt;
&lt;br /&gt;
Place a file named GlobalDefaults.plist into ~/standalone/ to change the Theme, make GNUstep use horizontal menus like everyone else and change other options:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//GNUstep//DTD plist 0.9//EN&amp;quot; &amp;quot;http://www.gnustep.org/plist-0_9.xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;0.9&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;dict&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;GSTheme&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;Silver&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;NSMenuInterfaceStyle&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;NSWindows95InterfaceStyle&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;NSUseRunningCopy&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;YES&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;GSSuppressAppIcon&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;YES&amp;lt;/string&amp;gt;&lt;br /&gt;
  &amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now just build your application (cd AppSource; make), move the standalone folder into your application bundle, place a launcher script next to your application bundle, compress the application bundle and the launcher script and place it somewhere for download. Don't forget to test the result on a variety of distributions.&lt;br /&gt;
&lt;br /&gt;
Sample application launcher script:&lt;br /&gt;
&lt;br /&gt;
  export LD_LIBRARY_PATH=`pwd`/YourApplicationName.app/standalone:$LD_LIBRARY_PATH&lt;br /&gt;
  exec YourApplicationName.app/YourApplicationName&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is one more issue with deployment on linux: 64 / 32 bit compatibility. On Mac OS X and Windows you can just deploy a 32-bit package and it will run fine on 64-bit too. On 64-bit linux you can run 32-bin binaries too, but the 32-bit libraries are not installed by default and its only easily possible to install 32-bit libraries on Fedora but not on Debian/Ubuntu. Therefore your only options are either to:&lt;br /&gt;
 • build a 32-bit package and link *everything* statically so it runs fine on 64-bit too where the libraries are missing.&lt;br /&gt;
 • build gnustep and your app in a 32-bit and a 64-bit version and select the proper version in your launcher script (or host 2 different packages for download).&lt;br /&gt;
&lt;br /&gt;
[[Category:Deployment]]&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Julian</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Deployment_on_Linux&amp;diff=6213</id>
		<title>Deployment on Linux</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Deployment_on_Linux&amp;diff=6213"/>
		<updated>2011-11-09T12:14:36Z</updated>

		<summary type="html">&lt;p&gt;Julian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Deploying a GNUstep-using application is easy if it is intended for inclusion in linux distributions or if you are deploying in an controlled environment, e.g. in the enterprise. However there are a number of reasons why you would need to create end-user deployable packages that already include GNUstep:&lt;br /&gt;
 • your application depends on features that are not included yet in linux distributions (libobjc2, llvm, /recent/ GNUstep versions)&lt;br /&gt;
    or on a patched GNUstep version or you want to be sure your application is only used with a specific GNUstep theme...&lt;br /&gt;
 • you want to offer your self-contained binary version of your application for download without having your users need to install GNUstep (e.g. commercial apps)&lt;br /&gt;
&lt;br /&gt;
In this case its best to bundle GNUstep with your application binary. First off you need to decide on the oldest linux distribution you want to support, since compiled binaries often do not run on older linux versions than they were built on. I am using Ubuntu 10.04 LTS for this purpose.&lt;br /&gt;
&lt;br /&gt;
When you have installed this distribution you first need to take care of the dependencies of GNUstep itself, that you do not want your resulting installation to depend on. For example most distributions ship without libffi, so if you want to use a libffi-enabled GNUstep you need to statically link it or ship it in your download. &lt;br /&gt;
'''This guide assumes you've built static versions of libffi, libpng, liftiff and libxml2 and installed them into: ~/build/'''&lt;br /&gt;
&lt;br /&gt;
Now you need to compile standalone versions of GNUstep. These instructions depend on at least revision 34026 of GNUstep to work - as of October 2011 there have been no releases of GNUstep with the necessary features and fixes therefore you need the SVN version. It is also a good idea to configure GNUstep to use only the bare minimum of the features that you need - e.g getting problems because GNUstep depends on libjpeg although you aren't using it can be avoided.&lt;br /&gt;
&lt;br /&gt;
Optional: Install LLVM &amp;gt;= 2.9 as compiler&lt;br /&gt;
&lt;br /&gt;
Checkout GNUstep SVN:&lt;br /&gt;
  svn co http://svn.gna.org/svn/gnustep/modules/core&lt;br /&gt;
&lt;br /&gt;
Install GNUstep make:&lt;br /&gt;
  cd core/make&lt;br /&gt;
  ./configure --with-layout=standalone&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
Source GNUstep envionment:&lt;br /&gt;
  . ~/standalone/Makefiles/GNUstep.sh &lt;br /&gt;
&lt;br /&gt;
Optional: Install libobjc2 if you need a modern runtime e.g. for blocks support. You need to configure and install GNUstep make a second time after installing libobjc2 if you decide on using it, in order for it to get picked up. Note that libobjc2 &amp;gt; 1.5.1 doesn't install itself into the GNUstep environment by default anymore, so you need to take care it gets installed into ~/standalone/: PREFIX=~/standalone/ make install&lt;br /&gt;
&lt;br /&gt;
Build GNUstep base:&lt;br /&gt;
  PATH=$PATH:~/build/bin ./configure --with-config-file=./ --with-default-config=standalone.conf --with-include-dir=~/build/include/ --with-library-dir=~/build/lib/ --with-ffi-include=~/build/include/ --with-ffi-library=~/build/lib/&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build GNUstep gui:&lt;br /&gt;
  ./configure --with-tiff-include=~/build/include/ --with-tiff-library=~/build/lib/ --disable-jpeg&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
Build GNUstep back (you need to install development packages for X11 and libart - depending on cairo is probably a bad idea):&lt;br /&gt;
  ./configure&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Success, now you have a standalone GNUstep environment in ~/standalone/&lt;br /&gt;
&lt;br /&gt;
Next step is installing the [[Themes]] you want your application to use into ~/standalone/Themes/ since the default look will probably anger your users. The best choice for deployment on linux is probably the gnome-theme for nice system integration but this may create problems with library dependencies across distributions so i've settled on the Silver theme for now.&lt;br /&gt;
&lt;br /&gt;
Place a file named GlobalDefaults.plist into ~/standalone/ to change the Theme, make GNUstep use horizontal menus like everyone else and change other options:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//GNUstep//DTD plist 0.9//EN&amp;quot; &amp;quot;http://www.gnustep.org/plist-0_9.xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;0.9&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;dict&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;GSTheme&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;Silver&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;NSMenuInterfaceStyle&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;NSWindows95InterfaceStyle&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;NSUseRunningCopy&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;YES&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;GSSuppressAppIcon&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;YES&amp;lt;/string&amp;gt;&lt;br /&gt;
  &amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now just build your application (cd AppSource; make), move the standalone folder into your application bundle, place a launcher script next to your application bundle, compress the application bundle and the launcher script and place it somewhere for download. Don't forget to test the result on a variety of distributions.&lt;br /&gt;
&lt;br /&gt;
Sample application launcher script:&lt;br /&gt;
&lt;br /&gt;
  export LD_LIBRARY_PATH=`pwd`/YourApplicationName.app/standalone:$LD_LIBRARY_PATH&lt;br /&gt;
  exec YourApplicationName.app/YourApplicationName&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is one more issue with deployment on linux: 64 / 32 bit compatibility. On Mac OS X and Windows you can just deploy a 32-bit package and it will run fine on 64-bit too. On 64-bit linux you can run 32-bin binaries too, but the 32-bit libraries are not installed by default and its only easily possible to install 32-bit libraries on Fedora but not on Debian/Ubuntu. Therefore your only options are either to:&lt;br /&gt;
 • build a 32-bit package and link *everything* statically so it runs fine on 64-bit too where the libraries are missing.&lt;br /&gt;
 • build gnustep and your app in a 32-bit and a 64-bit version and select the proper version in your launcher script (or host 2 different packages for download).&lt;br /&gt;
&lt;br /&gt;
[[Category:Deployment]]&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Julian</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Deployment_on_Linux&amp;diff=6207</id>
		<title>Deployment on Linux</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Deployment_on_Linux&amp;diff=6207"/>
		<updated>2011-10-29T11:16:15Z</updated>

		<summary type="html">&lt;p&gt;Julian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Deploying a GNUstep-using application is easy if it is intended for inclusion in linux distributions or if you are deploying in an controlled environment, e.g. in the enterprise. However there are a number of reasons why you would need to create end-user deployable packages that already include GNUstep:&lt;br /&gt;
 • your application depends on features that are not included yet in linux distributions (libobjc2, llvm, /recent/ GNUstep versions)&lt;br /&gt;
    or on a patched GNUstep version or you want to be sure your application is only used with a specific GNUstep theme...&lt;br /&gt;
 • you want to offer your self-contained binary version of your application for download without having your users need to install GNUstep (e.g. commercial apps)&lt;br /&gt;
&lt;br /&gt;
In this case its best to bundle GNUstep with your application binary. First off you need to decide on the oldest linux distribution you want to support, since compiled binaries often do not run on older linux versions than they were built on. I am using Ubuntu 10.04 LTS for this purpose.&lt;br /&gt;
&lt;br /&gt;
When you have installed this distribution you first need to take care of the dependencies of GNUstep itself, that you do not want your resulting installation to depend on. For example most distributions ship without libffi, so if you want to use a libffi-enabled GNUstep you need to statically link it or ship it in your download. &lt;br /&gt;
'''This guide assumes you've built static versions of libffi, libpng, liftiff and libxml2 and installed them into: ~/build/'''&lt;br /&gt;
&lt;br /&gt;
Now you need to compile standalone versions of GNUstep. These instructions depend on at least revision 34026 of GNUstep to work - as of October 2011 there have been no releases of GNUstep with the necessary features and fixes therefore you need the SVN version. It is also a good idea to configure GNUstep to use only the bare minimum of the features that you need - e.g getting problems because GNUstep depends on libjpeg although you aren't using it can be avoided.&lt;br /&gt;
&lt;br /&gt;
Optional: Install LLVM &amp;gt;= 2.9 as compiler&lt;br /&gt;
&lt;br /&gt;
Checkout GNUstep SVN:&lt;br /&gt;
  svn co http://svn.gna.org/svn/gnustep/modules/core&lt;br /&gt;
&lt;br /&gt;
Install GNUstep make:&lt;br /&gt;
  cd core/make&lt;br /&gt;
  ./configure --with-layout=standalone&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
Source GNUstep envionment:&lt;br /&gt;
  . ~/standalone/Makefiles/GNUstep.sh &lt;br /&gt;
&lt;br /&gt;
Optional: Install libobjc2 if you need a modern runtime e.g. for blocks support. You need to configure and install GNUstep make a second time after installing libobjc2 if you decide on using it, in order for it to get picked up. Note that libobjc2 &amp;gt; 1.5.1 doesn't install itself into the GNUstep environment by default anymore, so you need to take care it gets installed into ~/standalone/: PREFIX=~/standalone/ make install&lt;br /&gt;
&lt;br /&gt;
Build GNUstep base:&lt;br /&gt;
  PATH=$PATH:~/build/bin ./configure --with-config-file=./ --with-default-config=standalone.conf --with-include-dir=~/build/include/ --with-library-dir=~/build/lib/ --with-ffi-include=~/build/include/ --with-ffi-library=~/build/lib/&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build GNUstep gui:&lt;br /&gt;
  ./configure --with-tiff-include=~/build/include/ --with-tiff-library=~/build/lib/ --disable-jpeg&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
Build GNUstep back (you need to install development packages for X11 and libart - depending on cairo is probably a bad idea):&lt;br /&gt;
  ./configure&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Success, now you have a standalone GNUstep environment in ~/standalone/&lt;br /&gt;
&lt;br /&gt;
Next step is installing the [[Themes]] you want your application to use into ~/standalone/Themes/ since the default look will probably anger your users. The best choice for deployment on linux is probably the gnome-theme for nice system integration but this may create problems with library dependencies across distributions so i've settled on the Silver theme for now.&lt;br /&gt;
&lt;br /&gt;
Place a file named GlobalDefaults.plist into ~/standalone/ to change the Theme, make GNUstep use horizontal menus like everyone else and change other options:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//GNUstep//DTD plist 0.9//EN&amp;quot; &amp;quot;http://www.gnustep.org/plist-0_9.xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;0.9&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;dict&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;GSTheme&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;Silver&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;NSMenuInterfaceStyle&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;NSMacintoshInterfaceStyle&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;NSUseRunningCopy&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;YES&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;GSSuppressAppIcon&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;YES&amp;lt;/string&amp;gt;&lt;br /&gt;
  &amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now just build your application (cd AppSource; make), move the standalone folder into your application bundle, place a launcher script next to your application bundle, compress the application bundle and the launcher script and place it somewhere for download. Don't forget to test the result on a variety of distributions.&lt;br /&gt;
&lt;br /&gt;
Sample application launcher script:&lt;br /&gt;
&lt;br /&gt;
  export LD_LIBRARY_PATH=`pwd`/YourApplicationName.app/standalone:$LD_LIBRARY_PATH&lt;br /&gt;
  exec YourApplicationName.app/YourApplicationName&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is one more issue with deployment on linux: 64 / 32 bit compatibility. On Mac OS X and Windows you can just deploy a 32-bit package and it will run fine on 64-bit too. On 64-bit linux you can run 32-bin binaries too, but the 32-bit libraries are not installed by default and its only easily possible to install 32-bit libraries on Fedora but not on Debian/Ubuntu. Therefore your only options are either to:&lt;br /&gt;
 • build a 32-bit package and link *everything* statically so it runs fine on 64-bit too where the libraries are missing.&lt;br /&gt;
 • build gnustep and your app in a 32-bit and a 64-bit version and select the proper version in your launcher script (or host 2 different packages for download).&lt;br /&gt;
&lt;br /&gt;
[[Category:Deployment]]&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Julian</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Deployment_on_Windows&amp;diff=6206</id>
		<title>Deployment on Windows</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Deployment_on_Windows&amp;diff=6206"/>
		<updated>2011-10-29T11:15:01Z</updated>

		<summary type="html">&lt;p&gt;Julian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These instructions are based on a mail from Lloyd Dupont. You find more recent instructions from Nicola Pero in the file &amp;lt;tt&amp;gt;core/make/Documentation/README.MinGW&amp;lt;/tt&amp;gt;. Keep in mind that either ones are experimental. You may have to try out yourself which files you need to ship. The medium-term goal is to provide a separate runtime package that puts libs to a standard place so that it will suffice to zip&amp;amp;deploy the .app directory.&lt;br /&gt;
&lt;br /&gt;
These directions seem to work but have been tested only on Lloyd Dupont's development machine so far &amp;amp;ndash; this has yet to be tested on a test machine without anything installed. (Please update this once someone's tested this!)&lt;br /&gt;
&lt;br /&gt;
==Preparation of your MinGW GNUstep environment==&lt;br /&gt;
&lt;br /&gt;
First-off, it is recommended you build GNUstep from SVN yourself using [http://www.gnustep.org/resources/documentation/User/GNUstep/README.MinGW the MinGW README] or following the instructions for [[Installation on Windows]].&lt;br /&gt;
&lt;br /&gt;
It's a relatively long but painless process.&lt;br /&gt;
&lt;br /&gt;
==Making sure that DLLs are available to your application==&lt;br /&gt;
&lt;br /&gt;
Once GNUstep is built, you'll need to do three things to deploy your application:&lt;br /&gt;
&lt;br /&gt;
1. Make sure that all the dependency DLLs that are installed in the MinGW GNUstep environment are in your application's directory or in the PATH (see [[Installation on Windows]] step 11 and 14: libintl, libiconv, etc) &lt;br /&gt;
&lt;br /&gt;
2. Make sure that all the DLLs in &amp;lt;GNUstep&amp;gt;/System/Tools are in your application's directory or in the PATH&lt;br /&gt;
&lt;br /&gt;
3. The content of &amp;lt;GNUstep&amp;gt;/System directory (with the exception of &amp;lt;GNUstep&amp;gt;/System/Tools) should be pointed to by one of the following environment variables:&lt;br /&gt;
&lt;br /&gt;
  GNUSTEP_SYSTEM_ROOT&lt;br /&gt;
  GNUSTEP_NETWORK_ROOT&lt;br /&gt;
  GNUSTEP_LOCAL_ROOT&lt;br /&gt;
&lt;br /&gt;
Hint: make all three variables point to the same directory to avoid all suprises. You don't need System/Tools in these as you have already copied the DLLs.&lt;br /&gt;
&lt;br /&gt;
The three variables are intended to support a more complex GNUstep environment than you may need for a single application deployement.&lt;br /&gt;
&lt;br /&gt;
If you don't want to mess with system environment variables or want to have multiple (side by side) installations, you could set these variables at application startup time with:&lt;br /&gt;
&lt;br /&gt;
  [NSProcessInfo initializeWithArguments: __argv&lt;br /&gt;
                                   count: __ argc&lt;br /&gt;
                             environment: (char**){&lt;br /&gt;
    &amp;quot;GNUSTEP_SYSTEM_ROOT=C:\AppLocalGSPath&amp;quot;,&lt;br /&gt;
    &amp;quot;GNUSTEP_NETWORK_ROOT=C:\AppLocalGSPath&amp;quot;,&lt;br /&gt;
    &amp;quot;GNUSTEP_LOCAL_ROOT=C:\AppLocalGSPath&amp;quot;,&lt;br /&gt;
    NULL} ];&lt;br /&gt;
&lt;br /&gt;
It is important to call this method early before any other part of the application triggers caching of incorrect GNUstep environment variables.&lt;br /&gt;
&lt;br /&gt;
Warning: simply using putenv might fail if, for some reason, the class NSProcessInfo has already been initialized - it will have cached the environment variables.&lt;br /&gt;
&lt;br /&gt;
Voila! Your GNUstep-based application can now be shipped without the user having to know about or install GNUstep - and you don't have the risk of an untested version of GNUstep being loaded by your application either.&lt;br /&gt;
&lt;br /&gt;
Happy GSCoding ;-)&lt;br /&gt;
&lt;br /&gt;
[[Category:Deployment]]&lt;br /&gt;
[[Category:Microsoft Windows]]&lt;/div&gt;</summary>
		<author><name>Julian</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Deployment_on_Linux&amp;diff=6205</id>
		<title>Deployment on Linux</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Deployment_on_Linux&amp;diff=6205"/>
		<updated>2011-10-29T11:12:20Z</updated>

		<summary type="html">&lt;p&gt;Julian: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Deploying a GNUstep-using application is easy if it is intended for inclusion in linux distributions or if you are deploying in an controlled environment, e.g. in the enterprise. However there are a number of reasons why you would need to create end-user deployable packages that already include GNUstep:&lt;br /&gt;
 • your application depends on features that are not included yet in linux distributions (libobjc2, llvm, /recent/ GNUstep versions)&lt;br /&gt;
    or on a patched GNUstep version or you want to be sure your application is only used with a specific GNUstep theme...&lt;br /&gt;
 • you want to offer your self-contained binary version of your application for download without having your users need to install GNUstep&lt;br /&gt;
&lt;br /&gt;
In this case its best to bundle GNUstep with your application binary. First off you need to decide on the oldest linux distribution you want to support, since compiled binaries often do not run on older linux versions than they were built on. I am using Ubuntu 10.04 LTS for this purpose.&lt;br /&gt;
&lt;br /&gt;
When you have installed this distribution you first need to take care of the dependencies of GNUstep itself, that you do not want your resulting installation to depend on. For example most distributions ship without libffi, so if you want to use a libffi-enabled GNUstep you need to statically link it or ship it in your download. &lt;br /&gt;
'''This guide assumes you've built static versions of libffi, libpng, liftiff and libxml2 and installed them into: ~/build/'''&lt;br /&gt;
&lt;br /&gt;
Now you need to compile standalone versions of GNUstep. These instructions depend on at least revision 34026 of GNUstep to work - as of October 2011 there have been no releases of GNUstep with the necessary features and fixes therefore you need the SVN version. It is also a good idea to configure GNUstep to use only the bare minimum of the features that you need - e.g getting problems because GNUstep depends on libjpeg although you aren't using it can be avoided.&lt;br /&gt;
&lt;br /&gt;
Optional: Install LLVM &amp;gt;= 2.9 as compiler&lt;br /&gt;
&lt;br /&gt;
Checkout GNUstep SVN:&lt;br /&gt;
  svn co http://svn.gna.org/svn/gnustep/modules/core&lt;br /&gt;
&lt;br /&gt;
Install GNUstep make:&lt;br /&gt;
  cd core/make&lt;br /&gt;
  ./configure --with-layout=standalone&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
Source GNUstep envionment:&lt;br /&gt;
  . ~/standalone/Makefiles/GNUstep.sh &lt;br /&gt;
&lt;br /&gt;
Optional: Install libobjc2 if you need a modern runtime e.g. for blocks support. You need to configure and install GNUstep make a second time after installing libobjc2 if you decide on using it, in order for it to get picked up. Note that libobjc2 &amp;gt; 1.5.1 doesn't install itself into the GNUstep environment by default anymore, so you need to take care it gets installed into ~/standalone/: PREFIX=~/standalone/ make install&lt;br /&gt;
&lt;br /&gt;
Build GNUstep base:&lt;br /&gt;
  PATH=$PATH:~/build/bin ./configure --with-config-file=./ --with-default-config=standalone.conf --with-include-dir=~/build/include/ --with-library-dir=~/build/lib/ --with-ffi-include=~/build/include/ --with-ffi-library=~/build/lib/&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build GNUstep gui:&lt;br /&gt;
  ./configure --with-tiff-include=~/build/include/ --with-tiff-library=~/build/lib/ --disable-jpeg&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
Build GNUstep back (you need to install development packages for X11 and libart - depending on cairo is probably a bad idea):&lt;br /&gt;
  ./configure&lt;br /&gt;
  make &amp;amp;&amp;amp; make install&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Success, now you have a standalone GNUstep environment in ~/standalone/&lt;br /&gt;
&lt;br /&gt;
Next step is installing the [[Themes]] you want your application to use into ~/standalone/Themes/ since the default look will probably anger your users. The best choice for deployment on linux is probably the gnome-theme for nice system integration but this may create problems with library dependencies across distributions so i've settled on the Silver theme for now.&lt;br /&gt;
&lt;br /&gt;
Place a file named GlobalDefaults.plist into ~/standalone/ to change the Theme, make GNUstep use horizontal menus like everyone else and change other options:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE plist PUBLIC &amp;quot;-//GNUstep//DTD plist 0.9//EN&amp;quot; &amp;quot;http://www.gnustep.org/plist-0_9.xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;plist version=&amp;quot;0.9&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;dict&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;GSTheme&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;Silver&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;NSMenuInterfaceStyle&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;NSMacintoshInterfaceStyle&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;NSUseRunningCopy&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;YES&amp;lt;/string&amp;gt;&lt;br /&gt;
	&amp;lt;key&amp;gt;GSSuppressAppIcon&amp;lt;/key&amp;gt;&lt;br /&gt;
	&amp;lt;string&amp;gt;YES&amp;lt;/string&amp;gt;&lt;br /&gt;
  &amp;lt;/dict&amp;gt;&lt;br /&gt;
&amp;lt;/plist&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now just build your application (cd AppSource; make), move the standalone folder into your application bundle, place a launcher script next to your application bundle, compress the application bundle and the launcher script and place it somewhere for download. Don't forget to test the result on a variety of distributions.&lt;br /&gt;
&lt;br /&gt;
Sample application launcher script:&lt;br /&gt;
&lt;br /&gt;
  export LD_LIBRARY_PATH=`pwd`/YourApplicationName.app/standalone:$LD_LIBRARY_PATH&lt;br /&gt;
  exec YourApplicationName.app/YourApplicationName&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is one more issue with deployment on linux: 64 / 32 bit compatibility. On Mac OS X and Windows you can just deploy a 32-bit package and it will run fine on 64-bit too. On 64-bit linux you can run 32-bin binaries too, but the 32-bit libraries are not installed by default and its only easily possible to install 32-bit libraries on Fedora but not on Debian/Ubuntu. Therefore your only options are either to:&lt;br /&gt;
 • build a 32-bit package and link *everything* statically so it runs fine on 64-bit too where the libraries are missing.&lt;br /&gt;
 • build gnustep and your app in a 32-bit and a 64-bit version and select the proper version in your launcher script (or host 2 different packages for download).&lt;br /&gt;
&lt;br /&gt;
[[Category:Deployment]]&lt;br /&gt;
[[Category:Linux]]&lt;/div&gt;</summary>
		<author><name>Julian</name></author>
	</entry>
</feed>