<?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=Traumflug</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=Traumflug"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php/Special:Contributions/Traumflug"/>
	<updated>2026-08-27T15:45:17Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.7</generator>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=GNUstep_under_Ubuntu_Linux&amp;diff=6645</id>
		<title>GNUstep under Ubuntu Linux</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=GNUstep_under_Ubuntu_Linux&amp;diff=6645"/>
		<updated>2014-01-09T14:32:06Z</updated>

		<summary type="html">&lt;p&gt;Traumflug: Mention the GNUstep weekly PPA. Right now this PPA is empty, but will be populated the next few days.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The most simple way to get an up-to-date installation of GNUstep on Debian or Ubuntu is to add the [https://launchpad.net/~gnustep-dev/+archive/weekly GNUstep weekly PPA] to your distribution sources, provided by the GNUstep Developers team on Launchpad. On how to do this in detail, see the PPA page.&lt;br /&gt;
&lt;br /&gt;
== Compiling manually ==&lt;br /&gt;
&lt;br /&gt;
* Uses clang and libobjc2 for all the new features like ARC, Blocks, etc.&lt;br /&gt;
* Works with a fresh install and likely with a more completed installation.&lt;br /&gt;
* Works on Ubuntu 12.10 Server.&lt;br /&gt;
* Works on Ubuntu 13.10 Desktop.&lt;br /&gt;
* If you're trying Ubuntu 12.04 Desktop, see bottom of the page for help.&lt;br /&gt;
&lt;br /&gt;
After this, you can try to install EtoileOS: see [[EtoileOS under Ubuntu Linux]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install aptitude&lt;br /&gt;
# Dependencies&lt;br /&gt;
sudo aptitude -y install build-essential git subversion ninja cmake&lt;br /&gt;
# Dependencies for GNUStep Base&lt;br /&gt;
sudo aptitude -y install libffi-dev libxml2-dev libgnutls-dev libicu-dev &lt;br /&gt;
# Dependencies for libdispatch&lt;br /&gt;
sudo aptitude -y install libblocksruntime-dev libkqueue-dev libpthread-workqueue-dev autoconf libtool&lt;br /&gt;
&lt;br /&gt;
cd ~&lt;br /&gt;
git clone git://github.com/nickhutchinson/libdispatch.git&lt;br /&gt;
svn co http://svn.gna.org/svn/gnustep/modules/core&lt;br /&gt;
svn co http://svn.gna.org/svn/gnustep/libs/libobjc2/trunk libobjc2&lt;br /&gt;
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm&lt;br /&gt;
cd llvm/tools&lt;br /&gt;
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang&lt;br /&gt;
&lt;br /&gt;
cd ~/llvm&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make -j8   # 8=your number of build CPUs&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;export PATH=\$PATH:~/llvm/build/bin&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;export CC=clang&amp;quot;  &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
echo &amp;quot;export CXX=clang++&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
clang -v&lt;br /&gt;
clang++ -v&lt;br /&gt;
&lt;br /&gt;
cd ~/libobjc2&lt;br /&gt;
mkdir build&lt;br /&gt;
cd build&lt;br /&gt;
cmake ..&lt;br /&gt;
make -j8&lt;br /&gt;
sudo -E make install&lt;br /&gt;
&lt;br /&gt;
cd ~/core/make&lt;br /&gt;
./configure --enable-debug-by-default --with-layout=gnustep --enable-objc-nonfragile-abi&lt;br /&gt;
make &amp;amp;&amp;amp; sudo -E make install&lt;br /&gt;
echo &amp;quot;. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh&amp;quot; &amp;gt;&amp;gt; ~/.bashrc&lt;br /&gt;
source ~/.bashrc&lt;br /&gt;
&lt;br /&gt;
sudo /sbin/ldconfig&lt;br /&gt;
&lt;br /&gt;
cd ~/core/base/&lt;br /&gt;
./configure&lt;br /&gt;
make -j8&lt;br /&gt;
sudo -E make install&lt;br /&gt;
&lt;br /&gt;
cd ~/libdispatch&lt;br /&gt;
sh autogen.sh&lt;br /&gt;
./configure CFLAGS=&amp;quot;-I/usr/include/kqueue&amp;quot; LDFLAGS=&amp;quot;-lkqueue -lpthread_workqueue -pthread -lm&amp;quot;&lt;br /&gt;
make -j8&lt;br /&gt;
sudo -E make install&lt;br /&gt;
sudo ldconfig&lt;br /&gt;
&lt;br /&gt;
# ----------------------------------------------------------------------------------------&lt;br /&gt;
# TEST COMPILING SOME CODE FROM THE INTERNET&lt;br /&gt;
# ----------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
You can compile the following code with:&lt;br /&gt;
&lt;br /&gt;
clang `gnustep-config --objc-flags` `gnustep-config --objc-libs` -fobjc-runtime=gnustep -fblocks -fobjc-arc -lobjc  blocktest.m &lt;br /&gt;
&lt;br /&gt;
clang `gnustep-config --objc-flags` `gnustep-config --objc-libs` -fobjc-runtime=gnustep -fblocks -lobjc -ldispatch -lgnustep-base  Fraction.m helloGCD_objc.m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt; blocktest.m &amp;lt;&amp;lt; EOF&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    void (^hello)(void) = ^(void) {&lt;br /&gt;
        printf(&amp;quot;Hello, block!\n&amp;quot;);&lt;br /&gt;
    };&lt;br /&gt;
    hello();&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt; helloGCD_objc.m &amp;lt;&amp;lt; EOF&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;dispatch/dispatch.h&amp;gt;&lt;br /&gt;
#import &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#import &amp;quot;Fraction.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main( int argc, const char *argv[] ) {&lt;br /&gt;
   dispatch_queue_t queue = dispatch_queue_create(NULL, NULL); &lt;br /&gt;
   Fraction *frac = [[Fraction alloc] init];&lt;br /&gt;
&lt;br /&gt;
   [frac setNumerator: 1];&lt;br /&gt;
   [frac setDenominator: 3];&lt;br /&gt;
&lt;br /&gt;
   // print it&lt;br /&gt;
   dispatch_sync(queue, ^{&lt;br /&gt;
     printf( &amp;quot;The fraction is: &amp;quot; );&lt;br /&gt;
     [frac print];&lt;br /&gt;
     printf( &amp;quot;\n&amp;quot; );&lt;br /&gt;
   });&lt;br /&gt;
   dispatch_release(queue);&lt;br /&gt;
&lt;br /&gt;
   return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt; Fraction.h &amp;lt;&amp;lt; EOF&lt;br /&gt;
&lt;br /&gt;
#import &amp;lt;Foundation/NSObject.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
@interface Fraction: NSObject {&lt;br /&gt;
   int numerator;&lt;br /&gt;
   int denominator;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-(void) print;&lt;br /&gt;
-(void) setNumerator: (int) n;&lt;br /&gt;
-(void) setDenominator: (int) d;&lt;br /&gt;
-(int) numerator;&lt;br /&gt;
-(int) denominator;&lt;br /&gt;
@end&lt;br /&gt;
&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt; Fraction.m &amp;lt;&amp;lt; EOF&lt;br /&gt;
#import &amp;quot;Fraction.h&amp;quot;&lt;br /&gt;
#import &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
@implementation Fraction&lt;br /&gt;
-(void) print {&lt;br /&gt;
   printf( &amp;quot;%i/%i&amp;quot;, numerator, denominator );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-(void) setNumerator: (int) n {&lt;br /&gt;
   numerator = n;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-(void) setDenominator: (int) d {&lt;br /&gt;
   denominator = d;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-(int) denominator {&lt;br /&gt;
   return denominator;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-(int) numerator {&lt;br /&gt;
   return numerator;&lt;br /&gt;
}&lt;br /&gt;
@end&lt;br /&gt;
&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# ------------------------------------------------------&lt;br /&gt;
# ADDITIONAL OPTIONAL STEPS FOR INSTALLING GUI AND BACK&lt;br /&gt;
# (i.e., if you're running Ubuntu Desktop)&lt;br /&gt;
# ------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
sudo aptitude install -y libjpeg-dev libtiff-dev&lt;br /&gt;
sudo aptitude install -y libcairo-dev libx11-dev:i386 libxt-dev&lt;br /&gt;
&lt;br /&gt;
cd ~/core/gui&lt;br /&gt;
./configure&lt;br /&gt;
make -j8&lt;br /&gt;
sudo -E make install&lt;br /&gt;
&lt;br /&gt;
cd ~/core/back&lt;br /&gt;
./configure&lt;br /&gt;
make -j8&lt;br /&gt;
sudo -E make install&lt;br /&gt;
&lt;br /&gt;
You can compile the following code with:&lt;br /&gt;
&lt;br /&gt;
clang `gnustep-config --objc-flags` `gnustep-config --objc-libs`  -fobjc-runtime=gnustep -fblocks -lobjc -fobjc-arc -ldispatch -lgnustep-base -lgnustep-gui  guitest.m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt; guitest.m &amp;lt;&amp;lt; EOF&lt;br /&gt;
#import &amp;lt;AppKit/AppKit.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
NSApplication *app;  // Without these 2 lines, seg fault may occur&lt;br /&gt;
app = [NSApplication sharedApplication];&lt;br /&gt;
&lt;br /&gt;
NSAlert * alert = [[NSAlert alloc] init];&lt;br /&gt;
[alert setMessageText:@&amp;quot;Hello alert&amp;quot;];&lt;br /&gt;
[alert addButtonWithTitle:@&amp;quot;All done&amp;quot;];&lt;br /&gt;
[alert runModal];&lt;br /&gt;
}&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* General Note: When compiling, it is generally good to tell clang both the family and version of the runtime: -fobjc-runtime=gnustep-1.7&lt;br /&gt;
(The current version number can be had by looking at the latest ANNOUNCE filename in http://svn.gna.org/svn/gnustep/libs/libobjc2/trunk/ (e.g., ANNOUNCE.1.7))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Ubuntu 12.04 Help&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Ubuntu 12.04 Desktop, I found that running make -j8 in llvm failed with a &amp;quot;syntax error in VERSION script&amp;quot; error.  &lt;br /&gt;
&lt;br /&gt;
I was able to overcome it by doing the following steps &amp;lt;b&amp;gt;after getting the error&amp;lt;/b&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# After make -j8 returned a syntax error in VERSION script error&lt;br /&gt;
cd ~/llvm/build&lt;br /&gt;
make clean&lt;br /&gt;
cd ~/llvm/build/tools/lto&lt;br /&gt;
make -j8&lt;br /&gt;
cd ~/llvm/build&lt;br /&gt;
make -j8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Traumflug</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=AddressManager.app&amp;diff=6644</id>
		<title>AddressManager.app</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=AddressManager.app&amp;diff=6644"/>
		<updated>2014-01-04T17:24:27Z</updated>

		<summary type="html">&lt;p&gt;Traumflug: Added SCM info.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
{{Application|&lt;br /&gt;
shortdescription = AddressManager is a versatile address book application for managing contact information. |&lt;br /&gt;
&lt;br /&gt;
currentversion = [http://savannah.nongnu.org/download/gap/Addresses-0.4.8.tar.gz 0.4.8] |&lt;br /&gt;
&lt;br /&gt;
releasedate = July 24, 2012 |&lt;br /&gt;
&lt;br /&gt;
license = LGPL |&lt;br /&gt;
&lt;br /&gt;
overview = It stores addresses, phone numbers, pictures, instant messaging information, email, homepages and whatever.&lt;br /&gt;
&lt;br /&gt;
[[Image:Addresses_show.png]]&lt;br /&gt;
 |&lt;br /&gt;
&lt;br /&gt;
features =  |&lt;br /&gt;
&lt;br /&gt;
maintainer = * [mailto:bjoern@PLEASE.DELETE.ME.giesler.de Bjoern Giesler] |&lt;br /&gt;
&lt;br /&gt;
relatedlinks =&lt;br /&gt;
* [http://gap.nongnu.org/addresses/index.html Official Page]&lt;br /&gt;
* [http://giesler.biz/bjoern/en/sw_addr.html Original Page]&lt;br /&gt;
* [[Addresses]] |&lt;br /&gt;
&lt;br /&gt;
category = [[Category:Mail Applications]] [[Category:PIM Applications] [[Category:GAP]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
SCM repository: http://cvs.savannah.gnu.org/viewvc/gap/system-apps/Addresses/?root=gap&lt;br /&gt;
&lt;br /&gt;
Git clone command:&lt;br /&gt;
 git cvsimport -v -d :pserver:anonymous@cvs.sv.gnu.org:/sources/gap \&lt;br /&gt;
   -C addresses -r cvs -k gap/system-apps/Addresses&lt;/div&gt;</summary>
		<author><name>Traumflug</name></author>
	</entry>
</feed>