<?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=Rfm</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=Rfm"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php/Special:Contributions/Rfm"/>
	<updated>2026-04-10T12:44:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.7</generator>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=GNUstep_release_procedure&amp;diff=7350</id>
		<title>GNUstep release procedure</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=GNUstep_release_procedure&amp;diff=7350"/>
		<updated>2024-05-30T08:06:10Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Steps for releasing the GNUstep core libraries (as well as others):&lt;br /&gt;
&lt;br /&gt;
1. Make sure news.texi and ReleaseNotes.gsdoc files are updated (or NEWS, ANNOUNCE, etc if it is a simple package). If the release is on a stable branch, also update these on the main branch so they are available to read in future releases.&lt;br /&gt;
&lt;br /&gt;
2. Update the 'Version' file with the new version or make sure the top-level GNUmakefile has VERSION set if there is not a separate Version file.&lt;br /&gt;
&lt;br /&gt;
3. core libraries: Update the documentation and release notes in the main directory:&lt;br /&gt;
&lt;br /&gt;
 cd Documentation&lt;br /&gt;
 make clean; make; make regenerate&lt;br /&gt;
&lt;br /&gt;
4. Add a line in the ChangeLog, like:&lt;br /&gt;
&lt;br /&gt;
 '* Version 1.10.0' as well.&lt;br /&gt;
&lt;br /&gt;
and commit the changed files.&lt;br /&gt;
&lt;br /&gt;
5. Tag the release&lt;br /&gt;
&lt;br /&gt;
 make git-tag&lt;br /&gt;
 git push --tags&lt;br /&gt;
&lt;br /&gt;
6. Make a source distribution&lt;br /&gt;
&lt;br /&gt;
 make git-dist&lt;br /&gt;
&lt;br /&gt;
7. Administrative stuff (Note: Admin-only scripts that I use to make this easier are in brackets):&lt;br /&gt;
&lt;br /&gt;
* Sign the packages. Use gpg --detach-sign package.tar.gz [gstep-sign]&lt;br /&gt;
* Upload packages to ftp.gnustep.org, into the incoming directory [gstep-update].&lt;br /&gt;
* Install the documentation and copy it to the web repository [update_documentation].&lt;br /&gt;
* Update the index.html and resources/downloads.php pages with the news.&lt;br /&gt;
* Commit the web repository.&lt;br /&gt;
* Make an announcement on info-gnustep@gnu.org, etc&lt;br /&gt;
&lt;br /&gt;
If the packages are used by the GNUstep umbrella package (runtime or development environment), then the umbrella package should be released too.&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
It is desired that the release is made from git checkout. The release should correspond to a tagged state in the git.&lt;br /&gt;
&lt;br /&gt;
Also it is required that all release test passed. If not, the release should not be created. For more information about the tests see [[Quality assurance]].&lt;br /&gt;
&lt;br /&gt;
Follow standard versioning guidelines.&lt;br /&gt;
&lt;br /&gt;
[[Category:Project procedures]]&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Installation_MSYS2&amp;diff=7204</id>
		<title>Installation MSYS2</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Installation_MSYS2&amp;diff=7204"/>
		<updated>2020-12-03T12:42:25Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* Base */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Packages needed =&lt;br /&gt;
&lt;br /&gt;
Be very sure to install the packages correct for your architecture. The Guide refers to intel-64bit. Using the same procedure with the respective packages for 32bit failed currently.&lt;br /&gt;
One package is msys, the other for mingw64&lt;br /&gt;
&lt;br /&gt;
Use 'pacman -S packagename' to install a package.&lt;br /&gt;
&lt;br /&gt;
Be sure to work in the correct ''shell'': for the 64bit example, launch and work inside &amp;lt;code&amp;gt;MSYS2 MinGW 64-bit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essential tools:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 msys/make&lt;br /&gt;
 mingw64/mingw-w64-x86_64-pkg-config &lt;br /&gt;
 msys/pkg-config&lt;br /&gt;
 msys/tar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== For GCC ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mingw64/mingw-w64-x86_64-gcc &lt;br /&gt;
 mingw64/mingw-w64-x86_64-gcc-objc&lt;br /&gt;
&lt;br /&gt;
 msys/gcc-libs 9.1.0-2&lt;br /&gt;
 mingw64/mingw-w64-x86_64-gcc-libs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== For Clang + libobjc2 ==&lt;br /&gt;
&lt;br /&gt;
This will install clang and the latest gcc, since clang gets it's headers from that installation...   This is the instance of clang usable from MSYS2, you will need to install another later for use under Windows to build libobjc2...&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
   ./tools-scripts/install-dependencies-msys2-64bit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to chocolatey software and follow the instructions there:&lt;br /&gt;
 https://chocolatey.org/docs/installation&lt;br /&gt;
&lt;br /&gt;
Here is the script used in Azure CI to build the library, you can follow this pretty easily:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 - job: Windows&lt;br /&gt;
    displayName: Windows-2016&lt;br /&gt;
    pool:&lt;br /&gt;
      vmImage: vs2017-win2016&lt;br /&gt;
    strategy:&lt;br /&gt;
      matrix:&lt;br /&gt;
        Debug-32:&lt;br /&gt;
          BuildType: Debug&lt;br /&gt;
          Arch: x64_x86&lt;br /&gt;
          Flags: -m32&lt;br /&gt;
        Release-32:&lt;br /&gt;
          BuildType: Release&lt;br /&gt;
          Arch: x64_x86&lt;br /&gt;
          Flags: -m32&lt;br /&gt;
        Debug-64:&lt;br /&gt;
          BuildType: Debug&lt;br /&gt;
          Arch: x64&lt;br /&gt;
          Flags: -m64&lt;br /&gt;
        Release-64:&lt;br /&gt;
          BuildType: Release&lt;br /&gt;
          Arch: x64&lt;br /&gt;
          Flags: -m64&lt;br /&gt;
    steps:&lt;br /&gt;
    - checkout: self&lt;br /&gt;
      submodules: true&lt;br /&gt;
    - script: |&lt;br /&gt;
        choco.exe install ninja&lt;br /&gt;
        choco.exe install llvm&lt;br /&gt;
    - script: |&lt;br /&gt;
        echo Creating build directory...&lt;br /&gt;
        mkdir build&lt;br /&gt;
        cd build&lt;br /&gt;
        echo Importing visual studio environment variables...&lt;br /&gt;
        call &amp;quot;C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat&amp;quot; $(Arch)&lt;br /&gt;
        echo Checking that we're calling the correct link.exe&lt;br /&gt;
        where link.exe&lt;br /&gt;
        set CFLAGS=$(Flags)&lt;br /&gt;
        set CXXFLAGS=$(Flags)&lt;br /&gt;
        echo Running cmake...&lt;br /&gt;
        cmake .. -G Ninja -DTESTS=ON -DCMAKE_C_COMPILER=&amp;quot;c:/Program Files/LLVM/bin/clang-cl.exe&amp;quot; -DCMAKE_CXX_COMPILER=&amp;quot;c:/Program Files/LLVM/bin/clang-cl.exe&amp;quot; -DCMAKE_BUILD_TYPE=$(BuildType)&lt;br /&gt;
        echo CMake completed.&lt;br /&gt;
      failOnStderr: false&lt;br /&gt;
      displayName: 'CMake'&lt;br /&gt;
    - script: |&lt;br /&gt;
        cd build&lt;br /&gt;
        echo Importing visual studio environment variables...&lt;br /&gt;
        call &amp;quot;C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat&amp;quot; $(Arch)&lt;br /&gt;
        set CCC_OVERRIDE_OPTIONS=x-TC x-TP x/TC x/TP&lt;br /&gt;
        echo Running ninja...&lt;br /&gt;
        ninja&lt;br /&gt;
        echo Ninja completed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once this is complete you should have a build of libobjc2 in the build dir.&lt;br /&gt;
&lt;br /&gt;
= Patches needed =&lt;br /&gt;
&lt;br /&gt;
'''git master needs no patches'''&lt;br /&gt;
&lt;br /&gt;
'''For release, please:'''&lt;br /&gt;
[https://sourceforge.net/p/mingw-w64/bugs/820/ shlwapi.h Fix]&lt;br /&gt;
&lt;br /&gt;
For a successful build, MSYS2 headers need to be patched.&lt;br /&gt;
Please apply following proposed fix:&lt;br /&gt;
&lt;br /&gt;
= Build instructions =&lt;br /&gt;
&lt;br /&gt;
== Make ==&lt;br /&gt;
&lt;br /&gt;
Configure and install as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-layout=gnustep &lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, remember, to source the script from the respective MinGW shell version, e.g. the 64 bit is in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;. /mingw64/System/Library/Makefiles/GNUstep.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Base ==&lt;br /&gt;
&lt;br /&gt;
Essential base libraries, headers included:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 msys/libxslt-devel 1.1.34-1 (development) [installed]&lt;br /&gt;
 msys/libxslt 1.1.34-1 (libraries) [installed]&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libxslt 1.1.34-2 [installed]&lt;br /&gt;
&lt;br /&gt;
 msys/libffi 3.2.1-3 (libraries) [installed]&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libffi 3.2.1-4 [installed]&lt;br /&gt;
 msys/libffi-devel 3.2.1-3 (development) [installed]&lt;br /&gt;
&lt;br /&gt;
 msys/libxml2-devel 2.9.10-2 (development) [installed]&lt;br /&gt;
 msys/libxml2 2.9.10-2 (libraries) [installed]&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libxml2 2.9.10-3 [installed]&lt;br /&gt;
&lt;br /&gt;
 msys/libgnutls-devel 3.6.11.1-1 (development) [installed]&lt;br /&gt;
 msys/libgnutls 3.6.11.1-1 (libraries) [installed]&lt;br /&gt;
 mingw64/mingw-w64-x86_64-gnutls 3.6.11.1-1 [installed]&lt;br /&gt;
&lt;br /&gt;
 mingw64/mingw-w64-x86_64-icu 67.1-1 [installed]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If all dependencies are installed, no difficulties then:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gui ==&lt;br /&gt;
&lt;br /&gt;
Essential gui libraries:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libjpeg-turbo&lt;br /&gt;
&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libtiff&lt;br /&gt;
&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libpng&lt;br /&gt;
&lt;br /&gt;
 mingw64/mingw-w64-x86_64-giflib&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then installation is as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Back / winlib ==&lt;br /&gt;
&lt;br /&gt;
Essential back libraries:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mingw64/mingw-w64-x86_64-freetype&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then installation for the 'native windows' backend is as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --enable-graphics=winlib&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may want to try cairo if you prefer, install also cairo libraries before...&lt;br /&gt;
&lt;br /&gt;
== Back / cairo ==&lt;br /&gt;
&lt;br /&gt;
Essential back libraries:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mingw64/mingw-w64-x86_64-freetype&lt;br /&gt;
 mingw64/mingw-w64-x86_64-cairo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then install like this...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --enable-graphics=cairo&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Installation_MSYS2&amp;diff=7203</id>
		<title>Installation MSYS2</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Installation_MSYS2&amp;diff=7203"/>
		<updated>2020-12-03T12:37:12Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* Packages needed */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Packages needed =&lt;br /&gt;
&lt;br /&gt;
Be very sure to install the packages correct for your architecture. The Guide refers to intel-64bit. Using the same procedure with the respective packages for 32bit failed currently.&lt;br /&gt;
One package is msys, the other for mingw64&lt;br /&gt;
&lt;br /&gt;
Use 'pacman -S packagename' to install a package.&lt;br /&gt;
&lt;br /&gt;
Be sure to work in the correct ''shell'': for the 64bit example, launch and work inside &amp;lt;code&amp;gt;MSYS2 MinGW 64-bit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essential tools:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 msys/make&lt;br /&gt;
 mingw64/mingw-w64-x86_64-pkg-config &lt;br /&gt;
 msys/pkg-config&lt;br /&gt;
 msys/tar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== For GCC ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mingw64/mingw-w64-x86_64-gcc &lt;br /&gt;
 mingw64/mingw-w64-x86_64-gcc-objc&lt;br /&gt;
&lt;br /&gt;
 msys/gcc-libs 9.1.0-2&lt;br /&gt;
 mingw64/mingw-w64-x86_64-gcc-libs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== For Clang + libobjc2 ==&lt;br /&gt;
&lt;br /&gt;
This will install clang and the latest gcc, since clang gets it's headers from that installation...   This is the instance of clang usable from MSYS2, you will need to install another later for use under Windows to build libobjc2...&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
   ./tools-scripts/install-dependencies-msys2-64bit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to chocolatey software and follow the instructions there:&lt;br /&gt;
 https://chocolatey.org/docs/installation&lt;br /&gt;
&lt;br /&gt;
Here is the script used in Azure CI to build the library, you can follow this pretty easily:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 - job: Windows&lt;br /&gt;
    displayName: Windows-2016&lt;br /&gt;
    pool:&lt;br /&gt;
      vmImage: vs2017-win2016&lt;br /&gt;
    strategy:&lt;br /&gt;
      matrix:&lt;br /&gt;
        Debug-32:&lt;br /&gt;
          BuildType: Debug&lt;br /&gt;
          Arch: x64_x86&lt;br /&gt;
          Flags: -m32&lt;br /&gt;
        Release-32:&lt;br /&gt;
          BuildType: Release&lt;br /&gt;
          Arch: x64_x86&lt;br /&gt;
          Flags: -m32&lt;br /&gt;
        Debug-64:&lt;br /&gt;
          BuildType: Debug&lt;br /&gt;
          Arch: x64&lt;br /&gt;
          Flags: -m64&lt;br /&gt;
        Release-64:&lt;br /&gt;
          BuildType: Release&lt;br /&gt;
          Arch: x64&lt;br /&gt;
          Flags: -m64&lt;br /&gt;
    steps:&lt;br /&gt;
    - checkout: self&lt;br /&gt;
      submodules: true&lt;br /&gt;
    - script: |&lt;br /&gt;
        choco.exe install ninja&lt;br /&gt;
        choco.exe install llvm&lt;br /&gt;
    - script: |&lt;br /&gt;
        echo Creating build directory...&lt;br /&gt;
        mkdir build&lt;br /&gt;
        cd build&lt;br /&gt;
        echo Importing visual studio environment variables...&lt;br /&gt;
        call &amp;quot;C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat&amp;quot; $(Arch)&lt;br /&gt;
        echo Checking that we're calling the correct link.exe&lt;br /&gt;
        where link.exe&lt;br /&gt;
        set CFLAGS=$(Flags)&lt;br /&gt;
        set CXXFLAGS=$(Flags)&lt;br /&gt;
        echo Running cmake...&lt;br /&gt;
        cmake .. -G Ninja -DTESTS=ON -DCMAKE_C_COMPILER=&amp;quot;c:/Program Files/LLVM/bin/clang-cl.exe&amp;quot; -DCMAKE_CXX_COMPILER=&amp;quot;c:/Program Files/LLVM/bin/clang-cl.exe&amp;quot; -DCMAKE_BUILD_TYPE=$(BuildType)&lt;br /&gt;
        echo CMake completed.&lt;br /&gt;
      failOnStderr: false&lt;br /&gt;
      displayName: 'CMake'&lt;br /&gt;
    - script: |&lt;br /&gt;
        cd build&lt;br /&gt;
        echo Importing visual studio environment variables...&lt;br /&gt;
        call &amp;quot;C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat&amp;quot; $(Arch)&lt;br /&gt;
        set CCC_OVERRIDE_OPTIONS=x-TC x-TP x/TC x/TP&lt;br /&gt;
        echo Running ninja...&lt;br /&gt;
        ninja&lt;br /&gt;
        echo Ninja completed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once this is complete you should have a build of libobjc2 in the build dir.&lt;br /&gt;
&lt;br /&gt;
= Patches needed =&lt;br /&gt;
&lt;br /&gt;
'''git master needs no patches'''&lt;br /&gt;
&lt;br /&gt;
'''For release, please:'''&lt;br /&gt;
[https://sourceforge.net/p/mingw-w64/bugs/820/ shlwapi.h Fix]&lt;br /&gt;
&lt;br /&gt;
For a successful build, MSYS2 headers need to be patched.&lt;br /&gt;
Please apply following proposed fix:&lt;br /&gt;
&lt;br /&gt;
= Build instructions =&lt;br /&gt;
&lt;br /&gt;
== Make ==&lt;br /&gt;
&lt;br /&gt;
Configure and install as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-layout=gnustep &lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, remember, to source the script from the respective MinGW shell version, e.g. the 64 bit is in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;. /mingw64/System/Library/Makefiles/GNUstep.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Base ==&lt;br /&gt;
&lt;br /&gt;
Essential base libraries, headers included:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 msys/libxslt-devel 1.1.34-1 (development) [installed]&lt;br /&gt;
 msys/libxslt 1.1.34-1 (libraries) [installed]&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libxslt 1.1.34-2 [installed]&lt;br /&gt;
&lt;br /&gt;
 msys/libffi 3.2.1-3 (libraries) [installed]&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libffi 3.2.1-4 [installed]&lt;br /&gt;
 msys/libffi-devel 3.2.1-3 (development) [installed]&lt;br /&gt;
&lt;br /&gt;
 msys/libxml2-devel 2.9.10-2 (development) [installed]&lt;br /&gt;
 msys/libxml2 2.9.10-2 (libraries) [installed]&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libxml2 2.9.10-3 [installed]&lt;br /&gt;
&lt;br /&gt;
 msys/libgnutls-devel 3.6.11.1-1 (development) [installed]&lt;br /&gt;
 msys/libgnutls 3.6.11.1-1 (libraries) [installed]&lt;br /&gt;
 mingw64/mingw-w64-x86_64-gnutls 3.6.11.1-1 [installed]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If all dependencies are installed, no difficulties then:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gui ==&lt;br /&gt;
&lt;br /&gt;
Essential gui libraries:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libjpeg-turbo&lt;br /&gt;
&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libtiff&lt;br /&gt;
&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libpng&lt;br /&gt;
&lt;br /&gt;
 mingw64/mingw-w64-x86_64-giflib&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then installation is as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Back / winlib ==&lt;br /&gt;
&lt;br /&gt;
Essential back libraries:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mingw64/mingw-w64-x86_64-freetype&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then installation for the 'native windows' backend is as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --enable-graphics=winlib&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may want to try cairo if you prefer, install also cairo libraries before...&lt;br /&gt;
&lt;br /&gt;
== Back / cairo ==&lt;br /&gt;
&lt;br /&gt;
Essential back libraries:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mingw64/mingw-w64-x86_64-freetype&lt;br /&gt;
 mingw64/mingw-w64-x86_64-cairo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then install like this...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --enable-graphics=cairo&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Installation_MSYS2&amp;diff=7202</id>
		<title>Installation MSYS2</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Installation_MSYS2&amp;diff=7202"/>
		<updated>2020-12-03T12:36:02Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* For GCC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Packages needed =&lt;br /&gt;
&lt;br /&gt;
Be very sure to install the packages correct for your architecture. The Guide refers to intel-64bit. Using the same procedure with the respective packages for 32bit failed currently.&lt;br /&gt;
One package is msys, the other for mingw64&lt;br /&gt;
&lt;br /&gt;
Be sure to work in the correct ''shell'': for the 64bit example, launch and work inside &amp;lt;code&amp;gt;MSYS2 MinGW 64-bit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essential tools:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 msys/make&lt;br /&gt;
 mingw64/mingw-w64-x86_64-pkg-config &lt;br /&gt;
 msys/pkg-config&lt;br /&gt;
 msys/tar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== For GCC ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mingw64/mingw-w64-x86_64-gcc &lt;br /&gt;
 mingw64/mingw-w64-x86_64-gcc-objc&lt;br /&gt;
&lt;br /&gt;
 msys/gcc-libs 9.1.0-2&lt;br /&gt;
 mingw64/mingw-w64-x86_64-gcc-libs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== For Clang + libobjc2 ==&lt;br /&gt;
&lt;br /&gt;
This will install clang and the latest gcc, since clang gets it's headers from that installation...   This is the instance of clang usable from MSYS2, you will need to install another later for use under Windows to build libobjc2...&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
   ./tools-scripts/install-dependencies-msys2-64bit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to chocolatey software and follow the instructions there:&lt;br /&gt;
 https://chocolatey.org/docs/installation&lt;br /&gt;
&lt;br /&gt;
Here is the script used in Azure CI to build the library, you can follow this pretty easily:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 - job: Windows&lt;br /&gt;
    displayName: Windows-2016&lt;br /&gt;
    pool:&lt;br /&gt;
      vmImage: vs2017-win2016&lt;br /&gt;
    strategy:&lt;br /&gt;
      matrix:&lt;br /&gt;
        Debug-32:&lt;br /&gt;
          BuildType: Debug&lt;br /&gt;
          Arch: x64_x86&lt;br /&gt;
          Flags: -m32&lt;br /&gt;
        Release-32:&lt;br /&gt;
          BuildType: Release&lt;br /&gt;
          Arch: x64_x86&lt;br /&gt;
          Flags: -m32&lt;br /&gt;
        Debug-64:&lt;br /&gt;
          BuildType: Debug&lt;br /&gt;
          Arch: x64&lt;br /&gt;
          Flags: -m64&lt;br /&gt;
        Release-64:&lt;br /&gt;
          BuildType: Release&lt;br /&gt;
          Arch: x64&lt;br /&gt;
          Flags: -m64&lt;br /&gt;
    steps:&lt;br /&gt;
    - checkout: self&lt;br /&gt;
      submodules: true&lt;br /&gt;
    - script: |&lt;br /&gt;
        choco.exe install ninja&lt;br /&gt;
        choco.exe install llvm&lt;br /&gt;
    - script: |&lt;br /&gt;
        echo Creating build directory...&lt;br /&gt;
        mkdir build&lt;br /&gt;
        cd build&lt;br /&gt;
        echo Importing visual studio environment variables...&lt;br /&gt;
        call &amp;quot;C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat&amp;quot; $(Arch)&lt;br /&gt;
        echo Checking that we're calling the correct link.exe&lt;br /&gt;
        where link.exe&lt;br /&gt;
        set CFLAGS=$(Flags)&lt;br /&gt;
        set CXXFLAGS=$(Flags)&lt;br /&gt;
        echo Running cmake...&lt;br /&gt;
        cmake .. -G Ninja -DTESTS=ON -DCMAKE_C_COMPILER=&amp;quot;c:/Program Files/LLVM/bin/clang-cl.exe&amp;quot; -DCMAKE_CXX_COMPILER=&amp;quot;c:/Program Files/LLVM/bin/clang-cl.exe&amp;quot; -DCMAKE_BUILD_TYPE=$(BuildType)&lt;br /&gt;
        echo CMake completed.&lt;br /&gt;
      failOnStderr: false&lt;br /&gt;
      displayName: 'CMake'&lt;br /&gt;
    - script: |&lt;br /&gt;
        cd build&lt;br /&gt;
        echo Importing visual studio environment variables...&lt;br /&gt;
        call &amp;quot;C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat&amp;quot; $(Arch)&lt;br /&gt;
        set CCC_OVERRIDE_OPTIONS=x-TC x-TP x/TC x/TP&lt;br /&gt;
        echo Running ninja...&lt;br /&gt;
        ninja&lt;br /&gt;
        echo Ninja completed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once this is complete you should have a build of libobjc2 in the build dir.&lt;br /&gt;
&lt;br /&gt;
= Patches needed =&lt;br /&gt;
&lt;br /&gt;
'''git master needs no patches'''&lt;br /&gt;
&lt;br /&gt;
'''For release, please:'''&lt;br /&gt;
[https://sourceforge.net/p/mingw-w64/bugs/820/ shlwapi.h Fix]&lt;br /&gt;
&lt;br /&gt;
For a successful build, MSYS2 headers need to be patched.&lt;br /&gt;
Please apply following proposed fix:&lt;br /&gt;
&lt;br /&gt;
= Build instructions =&lt;br /&gt;
&lt;br /&gt;
== Make ==&lt;br /&gt;
&lt;br /&gt;
Configure and install as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-layout=gnustep &lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, remember, to source the script from the respective MinGW shell version, e.g. the 64 bit is in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;. /mingw64/System/Library/Makefiles/GNUstep.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Base ==&lt;br /&gt;
&lt;br /&gt;
Essential base libraries, headers included:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 msys/libxslt-devel 1.1.34-1 (development) [installed]&lt;br /&gt;
 msys/libxslt 1.1.34-1 (libraries) [installed]&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libxslt 1.1.34-2 [installed]&lt;br /&gt;
&lt;br /&gt;
 msys/libffi 3.2.1-3 (libraries) [installed]&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libffi 3.2.1-4 [installed]&lt;br /&gt;
 msys/libffi-devel 3.2.1-3 (development) [installed]&lt;br /&gt;
&lt;br /&gt;
 msys/libxml2-devel 2.9.10-2 (development) [installed]&lt;br /&gt;
 msys/libxml2 2.9.10-2 (libraries) [installed]&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libxml2 2.9.10-3 [installed]&lt;br /&gt;
&lt;br /&gt;
 msys/libgnutls-devel 3.6.11.1-1 (development) [installed]&lt;br /&gt;
 msys/libgnutls 3.6.11.1-1 (libraries) [installed]&lt;br /&gt;
 mingw64/mingw-w64-x86_64-gnutls 3.6.11.1-1 [installed]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If all dependencies are installed, no difficulties then:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gui ==&lt;br /&gt;
&lt;br /&gt;
Essential gui libraries:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libjpeg-turbo&lt;br /&gt;
&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libtiff&lt;br /&gt;
&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libpng&lt;br /&gt;
&lt;br /&gt;
 mingw64/mingw-w64-x86_64-giflib&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then installation is as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Back / winlib ==&lt;br /&gt;
&lt;br /&gt;
Essential back libraries:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mingw64/mingw-w64-x86_64-freetype&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then installation for the 'native windows' backend is as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --enable-graphics=winlib&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may want to try cairo if you prefer, install also cairo libraries before...&lt;br /&gt;
&lt;br /&gt;
== Back / cairo ==&lt;br /&gt;
&lt;br /&gt;
Essential back libraries:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mingw64/mingw-w64-x86_64-freetype&lt;br /&gt;
 mingw64/mingw-w64-x86_64-cairo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then install like this...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --enable-graphics=cairo&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Installation_MSYS2&amp;diff=7201</id>
		<title>Installation MSYS2</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Installation_MSYS2&amp;diff=7201"/>
		<updated>2020-12-03T12:34:59Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* Make */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Packages needed =&lt;br /&gt;
&lt;br /&gt;
Be very sure to install the packages correct for your architecture. The Guide refers to intel-64bit. Using the same procedure with the respective packages for 32bit failed currently.&lt;br /&gt;
One package is msys, the other for mingw64&lt;br /&gt;
&lt;br /&gt;
Be sure to work in the correct ''shell'': for the 64bit example, launch and work inside &amp;lt;code&amp;gt;MSYS2 MinGW 64-bit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Essential tools:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 msys/make&lt;br /&gt;
 mingw64/mingw-w64-x86_64-pkg-config &lt;br /&gt;
 msys/pkg-config&lt;br /&gt;
 msys/tar&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== For GCC ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mingw64/mingw-w64-x86_64-gcc &lt;br /&gt;
 mingw64/mingw-w64-x86_64-gcc-objc&lt;br /&gt;
&lt;br /&gt;
 msys/gcc-libs 9.1.0-2&lt;br /&gt;
 mingw32/mingw-w64-i686-gcc-libs&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== For Clang + libobjc2 ==&lt;br /&gt;
&lt;br /&gt;
This will install clang and the latest gcc, since clang gets it's headers from that installation...   This is the instance of clang usable from MSYS2, you will need to install another later for use under Windows to build libobjc2...&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
   ./tools-scripts/install-dependencies-msys2-64bit&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go to chocolatey software and follow the instructions there:&lt;br /&gt;
 https://chocolatey.org/docs/installation&lt;br /&gt;
&lt;br /&gt;
Here is the script used in Azure CI to build the library, you can follow this pretty easily:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 - job: Windows&lt;br /&gt;
    displayName: Windows-2016&lt;br /&gt;
    pool:&lt;br /&gt;
      vmImage: vs2017-win2016&lt;br /&gt;
    strategy:&lt;br /&gt;
      matrix:&lt;br /&gt;
        Debug-32:&lt;br /&gt;
          BuildType: Debug&lt;br /&gt;
          Arch: x64_x86&lt;br /&gt;
          Flags: -m32&lt;br /&gt;
        Release-32:&lt;br /&gt;
          BuildType: Release&lt;br /&gt;
          Arch: x64_x86&lt;br /&gt;
          Flags: -m32&lt;br /&gt;
        Debug-64:&lt;br /&gt;
          BuildType: Debug&lt;br /&gt;
          Arch: x64&lt;br /&gt;
          Flags: -m64&lt;br /&gt;
        Release-64:&lt;br /&gt;
          BuildType: Release&lt;br /&gt;
          Arch: x64&lt;br /&gt;
          Flags: -m64&lt;br /&gt;
    steps:&lt;br /&gt;
    - checkout: self&lt;br /&gt;
      submodules: true&lt;br /&gt;
    - script: |&lt;br /&gt;
        choco.exe install ninja&lt;br /&gt;
        choco.exe install llvm&lt;br /&gt;
    - script: |&lt;br /&gt;
        echo Creating build directory...&lt;br /&gt;
        mkdir build&lt;br /&gt;
        cd build&lt;br /&gt;
        echo Importing visual studio environment variables...&lt;br /&gt;
        call &amp;quot;C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat&amp;quot; $(Arch)&lt;br /&gt;
        echo Checking that we're calling the correct link.exe&lt;br /&gt;
        where link.exe&lt;br /&gt;
        set CFLAGS=$(Flags)&lt;br /&gt;
        set CXXFLAGS=$(Flags)&lt;br /&gt;
        echo Running cmake...&lt;br /&gt;
        cmake .. -G Ninja -DTESTS=ON -DCMAKE_C_COMPILER=&amp;quot;c:/Program Files/LLVM/bin/clang-cl.exe&amp;quot; -DCMAKE_CXX_COMPILER=&amp;quot;c:/Program Files/LLVM/bin/clang-cl.exe&amp;quot; -DCMAKE_BUILD_TYPE=$(BuildType)&lt;br /&gt;
        echo CMake completed.&lt;br /&gt;
      failOnStderr: false&lt;br /&gt;
      displayName: 'CMake'&lt;br /&gt;
    - script: |&lt;br /&gt;
        cd build&lt;br /&gt;
        echo Importing visual studio environment variables...&lt;br /&gt;
        call &amp;quot;C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxiliary\Build\vcvars64.bat&amp;quot; $(Arch)&lt;br /&gt;
        set CCC_OVERRIDE_OPTIONS=x-TC x-TP x/TC x/TP&lt;br /&gt;
        echo Running ninja...&lt;br /&gt;
        ninja&lt;br /&gt;
        echo Ninja completed.&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once this is complete you should have a build of libobjc2 in the build dir.&lt;br /&gt;
&lt;br /&gt;
= Patches needed =&lt;br /&gt;
&lt;br /&gt;
'''git master needs no patches'''&lt;br /&gt;
&lt;br /&gt;
'''For release, please:'''&lt;br /&gt;
[https://sourceforge.net/p/mingw-w64/bugs/820/ shlwapi.h Fix]&lt;br /&gt;
&lt;br /&gt;
For a successful build, MSYS2 headers need to be patched.&lt;br /&gt;
Please apply following proposed fix:&lt;br /&gt;
&lt;br /&gt;
= Build instructions =&lt;br /&gt;
&lt;br /&gt;
== Make ==&lt;br /&gt;
&lt;br /&gt;
Configure and install as:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure --with-layout=gnustep &lt;br /&gt;
make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, remember, to source the script from the respective MinGW shell version, e.g. the 64 bit is in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;. /mingw64/System/Library/Makefiles/GNUstep.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Base ==&lt;br /&gt;
&lt;br /&gt;
Essential base libraries, headers included:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 msys/libxslt-devel 1.1.34-1 (development) [installed]&lt;br /&gt;
 msys/libxslt 1.1.34-1 (libraries) [installed]&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libxslt 1.1.34-2 [installed]&lt;br /&gt;
&lt;br /&gt;
 msys/libffi 3.2.1-3 (libraries) [installed]&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libffi 3.2.1-4 [installed]&lt;br /&gt;
 msys/libffi-devel 3.2.1-3 (development) [installed]&lt;br /&gt;
&lt;br /&gt;
 msys/libxml2-devel 2.9.10-2 (development) [installed]&lt;br /&gt;
 msys/libxml2 2.9.10-2 (libraries) [installed]&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libxml2 2.9.10-3 [installed]&lt;br /&gt;
&lt;br /&gt;
 msys/libgnutls-devel 3.6.11.1-1 (development) [installed]&lt;br /&gt;
 msys/libgnutls 3.6.11.1-1 (libraries) [installed]&lt;br /&gt;
 mingw64/mingw-w64-x86_64-gnutls 3.6.11.1-1 [installed]&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If all dependencies are installed, no difficulties then:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Gui ==&lt;br /&gt;
&lt;br /&gt;
Essential gui libraries:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libjpeg-turbo&lt;br /&gt;
&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libtiff&lt;br /&gt;
&lt;br /&gt;
 mingw64/mingw-w64-x86_64-libpng&lt;br /&gt;
&lt;br /&gt;
 mingw64/mingw-w64-x86_64-giflib&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then installation is as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Back / winlib ==&lt;br /&gt;
&lt;br /&gt;
Essential back libraries:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mingw64/mingw-w64-x86_64-freetype&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then installation for the 'native windows' backend is as simple as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --enable-graphics=winlib&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may want to try cairo if you prefer, install also cairo libraries before...&lt;br /&gt;
&lt;br /&gt;
== Back / cairo ==&lt;br /&gt;
&lt;br /&gt;
Essential back libraries:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 mingw64/mingw-w64-x86_64-freetype&lt;br /&gt;
 mingw64/mingw-w64-x86_64-cairo&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then install like this...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 ./configure --enable-graphics=cairo&lt;br /&gt;
 make install&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_with_Clang&amp;diff=7002</id>
		<title>Building GNUstep with Clang</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_with_Clang&amp;diff=7002"/>
		<updated>2018-10-23T11:24:45Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1) Build using the instructions here: http://clang.llvm.org/get_started.html&lt;br /&gt;
&lt;br /&gt;
2) Build a bootstrap version of gnustep-make (so libobjc2 will know where to install):&lt;br /&gt;
&lt;br /&gt;
        ./configure&lt;br /&gt;
        make install&lt;br /&gt;
&lt;br /&gt;
3) Build libobj2 and install it:&lt;br /&gt;
        mkdir Build&lt;br /&gt;
        cd Build&lt;br /&gt;
        cmake ..&lt;br /&gt;
        make install&lt;br /&gt;
              &lt;br /&gt;
4) Build gnustep-make like so (the ng runtime means new clang/libobnjc2 features) and install it:&lt;br /&gt;
&lt;br /&gt;
        ./configure --with-library-combo=ng-gnu-gnu&lt;br /&gt;
        make install&lt;br /&gt;
&lt;br /&gt;
5) Build base, gui and back and install them using:&lt;br /&gt;
 &lt;br /&gt;
        make install&lt;br /&gt;
&lt;br /&gt;
That should be all there is too it.  Not much, but a few little details which might serve to make it enough of a pain to discourage some people.&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_with_Clang&amp;diff=7001</id>
		<title>Building GNUstep with Clang</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_with_Clang&amp;diff=7001"/>
		<updated>2018-10-23T11:20:19Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1) Build using the instructions here: http://clang.llvm.org/get_started.html&lt;br /&gt;
&lt;br /&gt;
2) Build libobj2 and install it:&lt;br /&gt;
        make CC=clang CXX=clang++&lt;br /&gt;
        make install&lt;br /&gt;
              &lt;br /&gt;
3) Build gnustep-make like so and install it:&lt;br /&gt;
&lt;br /&gt;
        ./configure --with-library-combo=ng-gnu-gnu&lt;br /&gt;
        make install&lt;br /&gt;
&lt;br /&gt;
4) Build base, gui and back and install them using:&lt;br /&gt;
 &lt;br /&gt;
        make install&lt;br /&gt;
&lt;br /&gt;
That should be all there is too it.  Not much, but a few little details which might serve to make it enough of a pain to discourage some people.&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_with_Clang&amp;diff=7000</id>
		<title>Building GNUstep with Clang</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_with_Clang&amp;diff=7000"/>
		<updated>2018-10-23T11:19:59Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1) Build using the instructions here: http://clang.llvm.org/get_started.html&lt;br /&gt;
&lt;br /&gt;
2) Build libobj2 and install it:&lt;br /&gt;
        make CC=clang CXX=clang++&lt;br /&gt;
        make install&lt;br /&gt;
              &lt;br /&gt;
3) Build gnustep-make like so and install it:&lt;br /&gt;
&lt;br /&gt;
        ./configure --with-library-combo=ng-gnu-gnu&lt;br /&gt;
        make install&lt;br /&gt;
&lt;br /&gt;
5) Build base, gui and back and install them using:&lt;br /&gt;
 &lt;br /&gt;
        make install&lt;br /&gt;
&lt;br /&gt;
That should be all there is too it.  Not much, but a few little details which might serve to make it enough of a pain to discourage some people.&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Main_Page&amp;diff=6885</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Main_Page&amp;diff=6885"/>
		<updated>2016-05-15T14:51:06Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.gnustep.wordpress.com Spanish]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px solid black; background-color:lavender; padding:10pt; width:100%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| '''[http://www.gnustep.org GNUstep]''' is a [[Portability|cross-platform]], object-oriented set of [[Frameworks|frameworks]] for desktop application [[Development tools|development]].&amp;lt;br&amp;gt;This set of frameworks, based on [[Cocoa]] (previously [[OpenStep]]), enables developers to rapidly build sophisticated software by employing a large library of reusable software components. GNUstep is already used [[GNUstep in production|in production]] environments at several organizations.&lt;br /&gt;
&lt;br /&gt;
Sounds interesting? Have a look at the more in-depth [[Introduction to GNUstep|introduction]]!&lt;br /&gt;
&lt;br /&gt;
* '''Download Stable Core Packages :''' [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-make-2.6.8.tar.gz Make v2.6.8], [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-base-1.24.9.tar.gz Base v1.24.9], [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-gui-0.24.1.tar.gz GUI v0.24.1], [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-back-0.24.1.tar.gz Back v0.24.1]&lt;br /&gt;
&lt;br /&gt;
* '''Download Unstable Core packages : ''' (NOTE: Now only in the [https://gna.org/svn/?group=gnustep SVN software repository])&lt;br /&gt;
&lt;br /&gt;
* '''Developer applications:''' [[Gorm.app|Gorm 1.2.20]], [[ProjectCenter.app| ProjectCenter 0.6.2]]&lt;br /&gt;
&lt;br /&gt;
New [[ObjC2_FAQ|Objective-C 2.0 FAQ]]&lt;br /&gt;
&lt;br /&gt;
If you find bugs, please refer how to [[ Report_Bugs | report bugs]]. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px solid black; background-color:lavender; padding:10pt; width:100%&amp;quot;&lt;br /&gt;
| All packages are collected in the searchable [http://www.gnustep.org/softwareindex/ Software Index] which also has an [http://www.gnustep.org/softwareindex/rss.php RSS feed].&lt;br /&gt;
There are some [[Themes]] for the GNUstep apps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:right; vertical-align:top; font-size:10px;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[{{SERVER}}{{localurl:Template:GNUstep_News|action=edit}} '''Add Entry''']&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{GNUstep_News}}&lt;br /&gt;
&lt;br /&gt;
== Older News ==&lt;br /&gt;
&lt;br /&gt;
[[Application_News_2012|2012]],&lt;br /&gt;
[[Application_News_2011|2011]],&lt;br /&gt;
[[Application_News_2010|2010]],&lt;br /&gt;
[[Application_News_2009|2009]],&lt;br /&gt;
[[Application_News_2008|2008]],&lt;br /&gt;
[[Application_News_2007|2007]],&lt;br /&gt;
[[Application_News_2006|2006]],&lt;br /&gt;
[[Application_News_2005|2005]],&lt;br /&gt;
[[Application_News_2004|2004]],&lt;br /&gt;
[[Application_News_2003|2003]],&lt;br /&gt;
[[Application_News_2002|2002]]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background: #ff958e;&amp;quot;&lt;br /&gt;
| If you want to participate, you need to [[Special:Userlogin|create an account]] and send an e-mail with your user name to [mailto:gnustep-webmasters@gnu.org gnustep-webmasters@gnu.org] to request write-access. We are sorry for the inconvenience, but this procedure has become necessary to prevent spamming of this site.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__ __NOEDITSECTION__&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Library_combos&amp;diff=6882</id>
		<title>Library combos</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Library_combos&amp;diff=6882"/>
		<updated>2016-03-04T08:32:16Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Library combos''' are compile-time decisions about which libraries and runtimes to use. Since the only other major libraries are from Apple, this applies only to [[Darwin]] and [[Mac OS X]].&lt;br /&gt;
&lt;br /&gt;
There are three libraries that can be linked to. The [[Objective-C runtime]], the [[Foundation]] implementation, and the [[AppKit]] implementation.&lt;br /&gt;
&lt;br /&gt;
Specifying which libraries to use is done with &amp;lt;code&amp;gt;./configure --with-library-combo=&amp;lt;/code&amp;gt;objcruntime-foundation-applicationkit. Each of the three could have either the value &amp;lt;tt&amp;gt;gnu&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;apple&amp;lt;/tt&amp;gt;, but not all of these are implemented.&lt;br /&gt;
To use the GNUstep runtime for ObjectiveC-2 with all the latest cutting edge changes, you should specify the 'ng' (Next Generation) runtime library (which also implies use of a recent clang compiler) &lt;br /&gt;
&lt;br /&gt;
The following options are supported:&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Runtime !! Foundation !! AppKit &lt;br /&gt;
|-&lt;br /&gt;
| gnu || gnu || gnu&lt;br /&gt;
|-&lt;br /&gt;
| ng || gnu || gnu&lt;br /&gt;
|-&lt;br /&gt;
| apple || gnu || gnu&lt;br /&gt;
|-&lt;br /&gt;
| apple || apple || gnu&lt;br /&gt;
|-&lt;br /&gt;
| apple || apple || apple&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Of these, the first two, and the last option are recommended (all GNU or all Apple). The default when building on Darwin and OS X is &amp;lt;tt&amp;gt;apple-apple-apple&amp;lt;/tt&amp;gt;. Even when GNUstep apps use the all Apple option, GNUstep extensions are available to the app.&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Main_Page&amp;diff=6840</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Main_Page&amp;diff=6840"/>
		<updated>2015-05-16T08:30:56Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.gnustep.wordpress.com Spanish]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px solid black; background-color:lavender; padding:10pt; width:100%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| '''[http://www.gnustep.org GNUstep]''' is a [[Portability|cross-platform]], object-oriented set of [[Frameworks|frameworks]] for desktop application [[Development tools|development]].&amp;lt;br&amp;gt;This set of frameworks, based on [[Cocoa]] (previously [[OpenStep]]), enables developers to rapidly build sophisticated software by employing a large library of reusable software components. GNUstep is already used [[GNUstep in production|in production]] environments at several organizations.&lt;br /&gt;
&lt;br /&gt;
Sounds interesting? Have a look at the more in-depth [[Introduction to GNUstep|introduction]]!&lt;br /&gt;
&lt;br /&gt;
* '''Download Stable Core Packages :''' [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-make-2.6.7.tar.gz Make v2.6.7], [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-base-1.24.8.tar.gz Base v1.24.8], [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-gui-0.24.1.tar.gz GUI v0.24.1], [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-back-0.24.1.tar.gz Back v0.24.1]&lt;br /&gt;
&lt;br /&gt;
* '''Download Unstable Core packages : ''' (NOTE: Now only in the SVN software repository)&lt;br /&gt;
&lt;br /&gt;
* '''Developer applications:''' [[Gorm.app|Gorm 1.2.20]], [[ProjectCenter.app| ProjectCenter 0.6.1]]&lt;br /&gt;
&lt;br /&gt;
New Objective-C 2.0 [[ObjC2_FAQ|FAQ]]&lt;br /&gt;
&lt;br /&gt;
If you find bugs, please refer how to [[ Report_Bugs | report bugs]]. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px solid black; background-color:lavender; padding:10pt; width:100%&amp;quot;&lt;br /&gt;
| All packages are collected in the searchable [http://www.gnustep.org/softwareindex/ Software Index] which also has an [http://www.gnustep.org/softwareindex/rss.php RSS feed].&lt;br /&gt;
There are some [[Themes]] for the GNUstep apps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:right; vertical-align:top; font-size:10px;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[{{SERVER}}{{localurl:Template:GNUstep_News|action=edit}} '''Add Entry''']&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{GNUstep_News}}&lt;br /&gt;
&lt;br /&gt;
== Older News ==&lt;br /&gt;
&lt;br /&gt;
[[Application_News_2012|2012]],&lt;br /&gt;
[[Application_News_2011|2011]],&lt;br /&gt;
[[Application_News_2010|2010]],&lt;br /&gt;
[[Application_News_2009|2009]],&lt;br /&gt;
[[Application_News_2008|2008]],&lt;br /&gt;
[[Application_News_2007|2007]],&lt;br /&gt;
[[Application_News_2006|2006]],&lt;br /&gt;
[[Application_News_2005|2005]],&lt;br /&gt;
[[Application_News_2004|2004]],&lt;br /&gt;
[[Application_News_2003|2003]],&lt;br /&gt;
[[Application_News_2002|2002]]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background: #ff958e;&amp;quot;&lt;br /&gt;
| If you want to participate, you need to [[Special:Userlogin|create an account]] and send an e-mail with your user name to [mailto:gnustep-webmasters@gnu.org gnustep-webmasters@gnu.org] to request write-access. We are sorry for the inconvenience, but this procedure has become necessary to prevent spamming of this site.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__ __NOEDITSECTION__&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Main_Page&amp;diff=6839</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Main_Page&amp;diff=6839"/>
		<updated>2015-05-15T10:01:04Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.gnustep.wordpress.com Spanish]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px solid black; background-color:lavender; padding:10pt; width:100%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| '''[http://www.gnustep.org GNUstep]''' is a [[Portability|cross-platform]], object-oriented set of [[Frameworks|frameworks]] for desktop application [[Development tools|development]].&amp;lt;br&amp;gt;This set of frameworks, based on [[Cocoa]] (previously [[OpenStep]]), enables developers to rapidly build sophisticated software by employing a large library of reusable software components. GNUstep is already used [[GNUstep in production|in production]] environments at several organizations.&lt;br /&gt;
&lt;br /&gt;
Sounds interesting? Have a look at the more in-depth [[Introduction to GNUstep|introduction]]!&lt;br /&gt;
&lt;br /&gt;
* '''Download Stable Core Packages :''' [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-make-2.6.7.tar.gz Make v2.6.7], [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-base-1.24.8.tar.gz Base v1.24.8], [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-gui-0.24.0.tar.gz GUI v0.24.0], [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-back-0.24.0.tar.gz Back v0.24.0]&lt;br /&gt;
&lt;br /&gt;
* '''Download Unstable Core packages : ''' (NOTE: Now only in the SVN software repository)&lt;br /&gt;
&lt;br /&gt;
* '''Developer applications:''' [[Gorm.app|Gorm 1.2.20]], [[ProjectCenter.app| ProjectCenter 0.6.1]]&lt;br /&gt;
&lt;br /&gt;
New Objective-C 2.0 [[ObjC2_FAQ|FAQ]]&lt;br /&gt;
&lt;br /&gt;
If you find bugs, please refer how to [[ Report_Bugs | report bugs]]. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px solid black; background-color:lavender; padding:10pt; width:100%&amp;quot;&lt;br /&gt;
| All packages are collected in the searchable [http://www.gnustep.org/softwareindex/ Software Index] which also has an [http://www.gnustep.org/softwareindex/rss.php RSS feed].&lt;br /&gt;
There are some [[Themes]] for the GNUstep apps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:right; vertical-align:top; font-size:10px;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[{{SERVER}}{{localurl:Template:GNUstep_News|action=edit}} '''Add Entry''']&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{GNUstep_News}}&lt;br /&gt;
&lt;br /&gt;
== Older News ==&lt;br /&gt;
&lt;br /&gt;
[[Application_News_2012|2012]],&lt;br /&gt;
[[Application_News_2011|2011]],&lt;br /&gt;
[[Application_News_2010|2010]],&lt;br /&gt;
[[Application_News_2009|2009]],&lt;br /&gt;
[[Application_News_2008|2008]],&lt;br /&gt;
[[Application_News_2007|2007]],&lt;br /&gt;
[[Application_News_2006|2006]],&lt;br /&gt;
[[Application_News_2005|2005]],&lt;br /&gt;
[[Application_News_2004|2004]],&lt;br /&gt;
[[Application_News_2003|2003]],&lt;br /&gt;
[[Application_News_2002|2002]]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background: #ff958e;&amp;quot;&lt;br /&gt;
| If you want to participate, you need to [[Special:Userlogin|create an account]] and send an e-mail with your user name to [mailto:gnustep-webmasters@gnu.org gnustep-webmasters@gnu.org] to request write-access. We are sorry for the inconvenience, but this procedure has become necessary to prevent spamming of this site.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__ __NOEDITSECTION__&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Main_Page&amp;diff=6616</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Main_Page&amp;diff=6616"/>
		<updated>2013-12-24T07:29:57Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.gnustep.wordpress.com Spanish]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px solid black; background-color:lavender; padding:10pt; width:100%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| '''[http://www.gnustep.org GNUstep]''' is a [[Portability|cross-platform]], object-oriented set of [[Frameworks|frameworks]] for desktop application [[Development tools|development]].&amp;lt;br&amp;gt;This set of frameworks, based on [[Cocoa]] (previously [[OpenStep]]), enables developers to rapidly build sophisticated software by employing a large library of reusable software components. GNUstep is already used [[GNUstep in production|in production]] environments at several organizations.&lt;br /&gt;
&lt;br /&gt;
Sounds interesting? Have a look at the more in-depth [[Introduction to GNUstep|introduction]]!&lt;br /&gt;
&lt;br /&gt;
* '''Download Stable Core Packages :''' [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-make-2.6.6.tar.gz Make v2.6.6], [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-base-1.24.6.tar.gz Base v1.24.6], [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-gui-0.24.0.tar.gz GUI v0.24.0], [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-back-0.24.0.tar.gz Back v0.24.0]&lt;br /&gt;
&lt;br /&gt;
* '''Download Unstable Core packages : ''' (NOTE: Now only in the SVN software repository)&lt;br /&gt;
&lt;br /&gt;
* '''Developer applications:''' [[Gorm.app|Gorm 1.2.20]], [[ProjectCenter.app| ProjectCenter 0.6.1]]&lt;br /&gt;
&lt;br /&gt;
New Objective-C 2.0 [[ObjC2_FAQ|FAQ]]&lt;br /&gt;
&lt;br /&gt;
If you find bugs, please refer how to [[ Report_Bugs | report bugs]]. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px solid black; background-color:lavender; padding:10pt; width:100%&amp;quot;&lt;br /&gt;
| All packages are collected in the searchable [http://www.gnustep.org/softwareindex/ Software Index] which also has an [http://www.gnustep.org/softwareindex/rss.php RSS feed].&lt;br /&gt;
There are some [[Themes]] for the GNUstep apps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:right; vertical-align:top; font-size:10px;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[{{SERVER}}{{localurl:Template:GNUstep_News|action=edit}} '''Add Entry''']&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{GNUstep_News}}&lt;br /&gt;
&lt;br /&gt;
== Older News ==&lt;br /&gt;
&lt;br /&gt;
[[Application_News_2011|2011]],&lt;br /&gt;
[[Application_News_2010|2010]],&lt;br /&gt;
[[Application_News_2009|2009]],&lt;br /&gt;
[[Application_News_2008|2008]],&lt;br /&gt;
[[Application_News_2007|2007]],&lt;br /&gt;
[[Application_News_2006|2006]],&lt;br /&gt;
[[Application_News_2005|2005]],&lt;br /&gt;
[[Application_News_2004|2004]],&lt;br /&gt;
[[Application_News_2003|2003]],&lt;br /&gt;
[[Application_News_2002|2002]]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background: #ff958e;&amp;quot;&lt;br /&gt;
| If you want to participate, you need to [[Special:Userlogin|create an account]] and send a mail with your user name to ''&amp;lt;tt&amp;gt;gnustep-webmasters [AT] gnu.org&amp;lt;/tt&amp;gt;'' to request write-access. We are sorry for the inconvenience, but this procedure has become necessary to prevent SPAM'ing of this site.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__ __NOEDITSECTION__&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Template:GNUstep_News&amp;diff=6615</id>
		<title>Template:GNUstep News</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Template:GNUstep_News&amp;diff=6615"/>
		<updated>2013-12-24T07:28:19Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Dec 24 2013 ===&lt;br /&gt;
* '''GNUstep core release'''&lt;br /&gt;
: ([http://www.gnustep.org/resources/downloads.php Christmas2013 Release])&lt;br /&gt;
&lt;br /&gt;
=== Dec 06 2013 ===&lt;br /&gt;
* '''Windows Installer update'''&lt;br /&gt;
: ([http://www.gnustep.org/experience/Windows.html 0.33.0 Release])&lt;br /&gt;
&lt;br /&gt;
=== Oct 15 2013 ===&lt;br /&gt;
* '''[[Graphos.app]] version o.5'''&lt;br /&gt;
: New release, with improved editors and selection , important fixes for the Text objects&lt;br /&gt;
&lt;br /&gt;
=== Sep 16 2013 ===&lt;br /&gt;
&lt;br /&gt;
* '''[[PDFKit]] version 0.9.3'''&lt;br /&gt;
: This release solves portability issues (64bit-x86, PPC, Sparc...), problems with Clang, improved packaging, security patches&lt;br /&gt;
&lt;br /&gt;
=== Aug 22 2013 ===&lt;br /&gt;
* '''GNUstep Examples 1.4.0 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/usr-apps/gnustep-examples-1.4.0.tar.gz Download Examples]). Various updates.&lt;br /&gt;
&lt;br /&gt;
* '''[[MathArray]] Version 1.3'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/contrib/MathArray-1.3.0.tar.gz Download MathArray]). Fixes to work on modern compilers.&lt;br /&gt;
&lt;br /&gt;
=== Aug 10 2013 ===&lt;br /&gt;
* '''GNUstep [[Startup]]  0.30.0 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-startup-0.30.0.tar.gz Download Startup]). Includes latest core packages&lt;br /&gt;
&lt;br /&gt;
=== Apr 21 2013 ===&lt;br /&gt;
* '''[[Zipper.app]] 1.5'''&lt;br /&gt;
: ([http://gap.nongnu.org/zipper Zipper Homepage])&lt;br /&gt;
&lt;br /&gt;
=== Apr 02 2013 ===&lt;br /&gt;
* '''GNUstep [[Gui]]  0.23.1 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-gui-0.23.1.tar.gz Download Gui])&lt;br /&gt;
* '''GNUstep [[Make]]  2.6.4 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-2.6.4.tar.gz Download Make])&lt;br /&gt;
* '''GNUstep [[Base]]  1.24.4 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-base-1.24.4.tar.gz Download Base])&lt;br /&gt;
&lt;br /&gt;
=== Mar 02 2013 ===&lt;br /&gt;
* '''GNUstep [[Gui]]  0.23.0 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-gui-0.23.0.tar.gz Download Gui])&lt;br /&gt;
* '''GNUstep [[Back]]  0.23.0 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-back-0.23.0.tar.gz Download Back])&lt;br /&gt;
* '''GNUstep [[Make]]  2.6.3 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-2.6.3.tar.gz Download Make])&lt;br /&gt;
* '''GNUstep [[Base]]  1.24.3 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-base-1.24.3.tar.gz Download Base])&lt;br /&gt;
&lt;br /&gt;
=== Oct 21 2012 ===&lt;br /&gt;
* '''[[MPDCon.app]]  1.3'''&lt;br /&gt;
: ([http://gap.nongnu.org/mpdcon MPDCon Homepage])&lt;br /&gt;
&lt;br /&gt;
=== Oct 2 2012 ===&lt;br /&gt;
* '''[[FisicaLab.app]]  0.3.0'''&lt;br /&gt;
: ([http://www.nongnu.org/fisicalab/descargas_eng.html Download FisicaLab])&lt;br /&gt;
&lt;br /&gt;
=== Sep 4 2012 ===&lt;br /&gt;
* '''GNUstep CoreBase  0.1.1 release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/libs/gnustep-corebase-0.1.1.tar.gz Download CoreBase])&lt;br /&gt;
&lt;br /&gt;
=== Aug 21 2012 ===&lt;br /&gt;
* '''Windows Installer snapshot (unstable) update'''&lt;br /&gt;
: ([http://www.gnustep.org/experience/Windows.html 0.31.0 Release])&lt;br /&gt;
&lt;br /&gt;
=== Jul 27 2012 ===&lt;br /&gt;
* '''GNUstep CoreBase  0.1.0 initial release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/libs/gnustep-corebase-0.1.tar.gz Download CoreBase])&lt;br /&gt;
&lt;br /&gt;
=== Jul 27 2012 ===&lt;br /&gt;
* '''[[AddressManager.app]] 0.4.8''' &lt;br /&gt;
: New release&lt;br /&gt;
&lt;br /&gt;
=== Jul 14 2012 ===&lt;br /&gt;
* '''Windows Installer update'''&lt;br /&gt;
: ([http://www.gnustep.org/experience/Windows.html 0.30.0 Release])&lt;br /&gt;
&lt;br /&gt;
=== Jun 30 2012 ===&lt;br /&gt;
* '''[[Grr]] 1.0.0''' and RSSkit&lt;br /&gt;
: New releases&lt;br /&gt;
&lt;br /&gt;
=== Jun 20 2012 ===&lt;br /&gt;
* '''[[PDFKit]] 0.9.2'''&lt;br /&gt;
: New release&lt;br /&gt;
&lt;br /&gt;
=== Jun 13 2012 ===&lt;br /&gt;
* '''[[ProjectCenter.app]] 0.6.1'''&lt;br /&gt;
: Minor update release&lt;br /&gt;
&lt;br /&gt;
=== Jun 09 2012 ===&lt;br /&gt;
* '''[[MPDCon.app]] 1.2'''&lt;br /&gt;
: First release from GAP&lt;br /&gt;
&lt;br /&gt;
=== Jun 03 2012 ===&lt;br /&gt;
* '''[[GSPdf.app]] 0.5'''&lt;br /&gt;
: New maintenance release&lt;br /&gt;
&lt;br /&gt;
* '''[[Terminal.app]] 0.9.8'''&lt;br /&gt;
: Maintenance release&lt;br /&gt;
&lt;br /&gt;
=== May 31 2012 ===&lt;br /&gt;
* '''[[GWorkspace.app]] 0.9.1'''&lt;br /&gt;
: New release&lt;br /&gt;
&lt;br /&gt;
=== May 24 2012 ===&lt;br /&gt;
* '''[[DataBasin.app]] 0.5'''&lt;br /&gt;
: New release, improved functions and bug fixes.&lt;br /&gt;
&lt;br /&gt;
=== May 10 2012 ===&lt;br /&gt;
* '''[[Zipper.app]] 1.4'''&lt;br /&gt;
: First release from the GAP team.&lt;br /&gt;
&lt;br /&gt;
=== May 01 2012 ===&lt;br /&gt;
* '''[[Graphos.app]] 0.3'''&lt;br /&gt;
: New release (modeless inspector, new improved file format...)&lt;br /&gt;
&lt;br /&gt;
=== Apr 23 2012 ===&lt;br /&gt;
* '''[[PRICE.app]] 1.1.0'''&lt;br /&gt;
: New release (new filters, enhancements, bug and portability fixes)&lt;br /&gt;
&lt;br /&gt;
=== Apr 09 2012 ===&lt;br /&gt;
* '''[[FisicaLab.app]] 0.2.2'''&lt;br /&gt;
: New release (bugfix for latest GNUstep packages)&lt;br /&gt;
&lt;br /&gt;
=== Apr 06 2012 ===&lt;br /&gt;
* '''[[FTP.app]] 0.3'''&lt;br /&gt;
: New release&lt;br /&gt;
&lt;br /&gt;
=== Mar 29 2012 ===&lt;br /&gt;
* '''GNUstep participates in Google Summer of Code 2012'''&lt;br /&gt;
: ([[Summer of Code 2012]])&lt;br /&gt;
&lt;br /&gt;
=== Feb 17 2012 ===&lt;br /&gt;
* '''Windows Installer update'''&lt;br /&gt;
: ([http://www.gnustep.org/experience/Windows.html GNUstep-Core 0.29.1])&lt;br /&gt;
&lt;br /&gt;
=== Feb 14 2012 ===&lt;br /&gt;
* '''Silver theme  2.5'''&lt;br /&gt;
: ([http://wiki.gnustep.org/images/6/6d/Silver.theme.tar.bz2 Silver theme])&lt;br /&gt;
&lt;br /&gt;
=== Feb 14 2012 ===&lt;br /&gt;
* '''[[Gemas.app]]  0.3'''&lt;br /&gt;
: ([http://download.gna.org/gnustep-nonfsf/Gemas-0.3.tar.gz Download Gemas])&lt;br /&gt;
* '''[[HighlighterKit]]  0.1.2'''&lt;br /&gt;
: ([http://download.gna.org/gnustep-nonfsf/HighlighterKit-0.1.2.tar.gz Download HighlighterKit])&lt;br /&gt;
* '''HKThemes  1.0'''&lt;br /&gt;
: ([http://download.gna.org/gnustep-nonfsf/HKThemes-1.0.tar.gz Download HKThemes])&lt;br /&gt;
&lt;br /&gt;
=== Feb 03 2012 ===&lt;br /&gt;
* '''GNUstep [[Gui]]  0.22.0 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-gui-0.22.0.tar.gz Download Gui])&lt;br /&gt;
* '''GNUstep [[Back]]  0.22.0 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-back-0.22.0.tar.gz Download Back])&lt;br /&gt;
* '''GNUstep [[Make]]  2.6.2 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-2.6.2.tar.gz Download Make])&lt;br /&gt;
* '''GNUstep [[Base]]  1.24.0 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-base-1.24.0.tar.gz Download Base])&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Backend&amp;diff=6558</id>
		<title>Backend</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Backend&amp;diff=6558"/>
		<updated>2013-07-05T21:38:57Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
GNUstep's '''backend''' provides a small set of functions used by the [[AppKit|GUI]] library to interface to the actual window system (X11, etc). It also has a drawing engine which emulates common PostScript functions.&lt;br /&gt;
&lt;br /&gt;
The package [[back|gnustep-back]] provides the following backends&lt;br /&gt;
* cairo &amp;amp;ndash; default backend using the cairo 2D graphics library.&lt;br /&gt;
* winlib &amp;amp;ndash; default backend on windows systems. Cairo and Windows API variants. &lt;br /&gt;
* art &amp;amp;ndash; old (deprecated) backend on unixlike systems. Uses the vector-based PostScriptlike 2d graphics library libArt.&lt;br /&gt;
* xlib &amp;amp;ndash; old (deprecated) X11 backend.&lt;br /&gt;
&lt;br /&gt;
You can choose the backend to be used by e.g.&lt;br /&gt;
  defaults write NSGlobalDomain GSBackend libgnustep-cairo&lt;br /&gt;
&lt;br /&gt;
===  Related Links ===&lt;br /&gt;
*[http://www.gnome.org/~mathieu/libart/libart.html LibArt]&lt;br /&gt;
*[http://www.cairographics.org/ Cairo]&lt;br /&gt;
*[http://www.gnustep.org/resources/documentation/Developer/Back/General/DefaultsSummary.html Docs about the backend-specific defaults settings]&lt;br /&gt;
&lt;br /&gt;
[[Category:Bundles]]&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Main_Page&amp;diff=6532</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Main_Page&amp;diff=6532"/>
		<updated>2013-04-02T07:01:49Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.gnustep.wordpress.com Spanish]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px solid black; background-color:lavender; padding:10pt; width:100%&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
| '''[http://www.gnustep.org GNUstep]''' is a [[Portability|cross-platform]], object-oriented set of [[Frameworks|frameworks]] for desktop application [[Development tools|development]].&amp;lt;br&amp;gt;This set of frameworks, based on [[Cocoa]] (previously [[OpenStep]]), enables developers to rapidly build sophisticated software by employing a large library of reusable software components. GNUstep is already used [[GNUstep in production|in production]] environments at several organizations.&lt;br /&gt;
&lt;br /&gt;
Sounds interesting? Have a look at the more in-depth [[Introduction to GNUstep|introduction]]!&lt;br /&gt;
&lt;br /&gt;
* '''Download Stable Core Packages :''' [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-make-2.6.4.tar.gz Make v2.6.4], [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-base-1.24.4.tar.gz Base v1.24.4], [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-gui-0.23.1.tar.gz GUI v0.23.1], [http://ftpmain.gnustep.org/pub/gnustep/core/gnustep-back-0.23.0.tar.gz Back v0.23.0]&lt;br /&gt;
&lt;br /&gt;
* '''Download Unstable Core packages : ''' (NOTE: Now only in the SVN software repository)&lt;br /&gt;
&lt;br /&gt;
* '''Developer applications:''' [[Gorm.app|Gorm 1.2.12]], [[ProjectCenter.app| ProjectCenter 0.6.0]]&lt;br /&gt;
&lt;br /&gt;
New Objective-C 2.0 [[ObjC2_FAQ|FAQ]]&lt;br /&gt;
&lt;br /&gt;
If you find bugs, please refer how to [[ Report_Bugs | report bugs]]. &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border:1px solid black; background-color:lavender; padding:10pt; width:100%&amp;quot;&lt;br /&gt;
| All packages are collected in the searchable [http://www.gnustep.org/softwareindex/ Software Index] which also has an [http://www.gnustep.org/softwareindex/rss.php RSS feed].&lt;br /&gt;
There are some [[Themes]] for the GNUstep apps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== News ==&lt;br /&gt;
&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:right; vertical-align:top; font-size:10px;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[{{SERVER}}{{localurl:Template:GNUstep_News|action=edit}} '''Add Entry''']&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{GNUstep_News}}&lt;br /&gt;
&lt;br /&gt;
== Older News ==&lt;br /&gt;
&lt;br /&gt;
[[Application_News_2011|2011]],&lt;br /&gt;
[[Application_News_2010|2010]],&lt;br /&gt;
[[Application_News_2009|2009]],&lt;br /&gt;
[[Application_News_2008|2008]],&lt;br /&gt;
[[Application_News_2007|2007]],&lt;br /&gt;
[[Application_News_2006|2006]],&lt;br /&gt;
[[Application_News_2005|2005]],&lt;br /&gt;
[[Application_News_2004|2004]],&lt;br /&gt;
[[Application_News_2003|2003]],&lt;br /&gt;
[[Application_News_2002|2002]]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background: #ff958e;&amp;quot;&lt;br /&gt;
| If you want to participate, you need to [[Special:Userlogin|create an account]] and send a mail with your user name to ''&amp;lt;tt&amp;gt;gnustep-webmasters [AT] gnu.org&amp;lt;/tt&amp;gt;'' to request write-access. We are sorry for the inconvenience, but this procedure has become necessary to prevent SPAM'ing of this site.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__ __NOEDITSECTION__&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Template:GNUstep_News&amp;diff=6531</id>
		<title>Template:GNUstep News</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Template:GNUstep_News&amp;diff=6531"/>
		<updated>2013-04-02T07:00:43Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Apr 02 2013 ===&lt;br /&gt;
* '''GNUstep [[Gui]]  0.23.1 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-gui-0.23.1.tar.gz Download Gui])&lt;br /&gt;
* '''GNUstep [[Make]]  2.6.4 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-2.6.4.tar.gz Download Make])&lt;br /&gt;
* '''GNUstep [[Base]]  1.24.4 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-base-1.24.4.tar.gz Download Base])&lt;br /&gt;
&lt;br /&gt;
=== Mar 02 2013 ===&lt;br /&gt;
* '''GNUstep [[Gui]]  0.23.0 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-gui-0.23.0.tar.gz Download Gui])&lt;br /&gt;
* '''GNUstep [[Back]]  0.23.0 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-back-0.23.0.tar.gz Download Back])&lt;br /&gt;
* '''GNUstep [[Make]]  2.6.3 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-2.6.3.tar.gz Download Make])&lt;br /&gt;
* '''GNUstep [[Base]]  1.24.3 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-base-1.24.3.tar.gz Download Base])&lt;br /&gt;
&lt;br /&gt;
=== Oct 21 2012 ===&lt;br /&gt;
* '''[[MPDCon.app]]  1.3'''&lt;br /&gt;
: ([http://gap.nongnu.org/mpdcon MPDCon Homepage])&lt;br /&gt;
&lt;br /&gt;
=== Oct 2 2012 ===&lt;br /&gt;
* '''[[FisicaLab.app]]  0.3.0'''&lt;br /&gt;
: ([http://www.nongnu.org/fisicalab/descargas_eng.html Download FisicaLab])&lt;br /&gt;
&lt;br /&gt;
=== Sep 4 2012 ===&lt;br /&gt;
* '''GNUstep CoreBase  0.1.1 release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/libs/gnustep-corebase-0.1.1.tar.gz Download CoreBase])&lt;br /&gt;
&lt;br /&gt;
=== Aug 21 2012 ===&lt;br /&gt;
* '''Windows Installer snapshot (unstable) update'''&lt;br /&gt;
: ([http://www.gnustep.org/experience/Windows.html 0.31.0 Release])&lt;br /&gt;
&lt;br /&gt;
=== Jul 27 2012 ===&lt;br /&gt;
* '''GNUstep CoreBase  0.1.0 initial release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/libs/gnustep-corebase-0.1.tar.gz Download CoreBase])&lt;br /&gt;
&lt;br /&gt;
=== Jul 27 2012 ===&lt;br /&gt;
* '''[[AddressManager.app]] 0.4.8''' &lt;br /&gt;
: New release&lt;br /&gt;
&lt;br /&gt;
=== Jul 14 2012 ===&lt;br /&gt;
* '''Windows Installer update'''&lt;br /&gt;
: ([http://www.gnustep.org/experience/Windows.html 0.30.0 Release])&lt;br /&gt;
&lt;br /&gt;
=== Jun 30 2012 ===&lt;br /&gt;
* '''[[Grr]] 1.0.0''' and RSSkit&lt;br /&gt;
: New releases&lt;br /&gt;
&lt;br /&gt;
=== Jun 20 2012 ===&lt;br /&gt;
* '''[[PDFKit]] 0.9.2'''&lt;br /&gt;
: New release&lt;br /&gt;
&lt;br /&gt;
=== Jun 13 2012 ===&lt;br /&gt;
* '''[[ProjectCenter.app]] 0.6.1'''&lt;br /&gt;
: Minor update release&lt;br /&gt;
&lt;br /&gt;
=== Jun 09 2012 ===&lt;br /&gt;
* '''[[MPDCon.app]] 1.2'''&lt;br /&gt;
: First release from GAP&lt;br /&gt;
&lt;br /&gt;
=== Jun 03 2012 ===&lt;br /&gt;
* '''[[GSPdf.app]] 0.5'''&lt;br /&gt;
: New maintenance release&lt;br /&gt;
&lt;br /&gt;
* '''[[Terminal.app]] 0.9.8'''&lt;br /&gt;
: Maintenance release&lt;br /&gt;
&lt;br /&gt;
=== May 31 2012 ===&lt;br /&gt;
* '''[[GWorkspace.app]] 0.9.1'''&lt;br /&gt;
: New release&lt;br /&gt;
&lt;br /&gt;
=== May 24 2012 ===&lt;br /&gt;
* '''[[DataBasin.app]] 0.5'''&lt;br /&gt;
: New release, improved functions and bug fixes.&lt;br /&gt;
&lt;br /&gt;
=== May 10 2012 ===&lt;br /&gt;
* '''[[Zipper.app]] 1.4'''&lt;br /&gt;
: First release from the GAP team.&lt;br /&gt;
&lt;br /&gt;
=== May 01 2012 ===&lt;br /&gt;
* '''[[Graphos.app]] 0.3'''&lt;br /&gt;
: New release (modeless inspector, new improved file format...)&lt;br /&gt;
&lt;br /&gt;
=== Apr 23 2012 ===&lt;br /&gt;
* '''[[PRICE.app]] 1.1.0'''&lt;br /&gt;
: New release (new filters, enhancements, bug and portability fixes)&lt;br /&gt;
&lt;br /&gt;
=== Apr 09 2012 ===&lt;br /&gt;
* '''[[FisicaLab.app]] 0.2.2'''&lt;br /&gt;
: New release (bugfix for latest GNUstep packages)&lt;br /&gt;
&lt;br /&gt;
=== Apr 06 2012 ===&lt;br /&gt;
* '''[[FTP.app]] 0.3'''&lt;br /&gt;
: New release&lt;br /&gt;
&lt;br /&gt;
=== Mar 29 2012 ===&lt;br /&gt;
* '''GNUstep participates in Google Summer of Code 2012'''&lt;br /&gt;
: ([[Summer of Code 2012]])&lt;br /&gt;
&lt;br /&gt;
=== Feb 17 2012 ===&lt;br /&gt;
* '''Windows Installer update'''&lt;br /&gt;
: ([http://www.gnustep.org/experience/Windows.html GNUstep-Core 0.29.1])&lt;br /&gt;
&lt;br /&gt;
=== Feb 14 2012 ===&lt;br /&gt;
* '''Silver theme  2.5'''&lt;br /&gt;
: ([http://wiki.gnustep.org/images/6/6d/Silver.theme.tar.bz2 Silver theme])&lt;br /&gt;
&lt;br /&gt;
=== Feb 14 2012 ===&lt;br /&gt;
* '''[[Gemas.app]]  0.3'''&lt;br /&gt;
: ([http://download.gna.org/gnustep-nonfsf/Gemas-0.3.tar.gz Download Gemas])&lt;br /&gt;
* '''[[HighlighterKit]]  0.1.2'''&lt;br /&gt;
: ([http://download.gna.org/gnustep-nonfsf/HighlighterKit-0.1.2.tar.gz Download HighlighterKit])&lt;br /&gt;
* '''HKThemes  1.0'''&lt;br /&gt;
: ([http://download.gna.org/gnustep-nonfsf/HKThemes-1.0.tar.gz Download HKThemes])&lt;br /&gt;
&lt;br /&gt;
=== Feb 03 2012 ===&lt;br /&gt;
* '''GNUstep [[Gui]]  0.22.0 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-gui-0.22.0.tar.gz Download Gui])&lt;br /&gt;
* '''GNUstep [[Back]]  0.22.0 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-back-0.22.0.tar.gz Download Back])&lt;br /&gt;
* '''GNUstep [[Make]]  2.6.2 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-2.6.2.tar.gz Download Make])&lt;br /&gt;
* '''GNUstep [[Base]]  1.24.0 stable release'''&lt;br /&gt;
: ([ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-base-1.24.0.tar.gz Download Base])&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Report_Bugs&amp;diff=6523</id>
		<title>Report Bugs</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Report_Bugs&amp;diff=6523"/>
		<updated>2013-03-04T08:18:30Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please report bugs via the [https://savannah.gnu.org/bugs/?group=gnustep GNUstep Bug Tracking database]. You can then query the database any time to see the status of your bug report. Due to spam being sent through bug reports, you now have to be a registered user before submitting a bug. Alternatively, you may report bugs by sending a message to [http://mail.gnu.org/mailman/listinfo/bug-gnustep bug-gnustep@gnu.org].&lt;br /&gt;
&lt;br /&gt;
User testing is vital for improving GNUstep, so please report any bugs you find!&lt;br /&gt;
&lt;br /&gt;
== What to Report ==&lt;br /&gt;
&lt;br /&gt;
Please include as much of this information as possible when submitting your report:&lt;br /&gt;
* GNUstep version and snapshot date or date of last update from CVS (ideally, on finding a bug you should update your system to the latest version in the CVS repository, in order to avoid reporting problems that have already been fixed).&lt;br /&gt;
* Machine/Operating system on which you are running&lt;br /&gt;
* Compiler version you use&lt;br /&gt;
* A description of the problem, along with either a test program to demonstrate the problem, or a description of how to make the problem appear in one of the test programs that come as part of the GNUstep distribution. &lt;br /&gt;
** If you have a problem configuring the libraries, please send the config.log file&lt;br /&gt;
** If you have a problem compiling a library or application, please send the complete output of make or at least enough to show what went wrong. If you are using sh or bash, do this: &amp;lt;tt&amp;gt;make messages=yes &amp;gt; output.txt 2&amp;gt;&amp;amp;1&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The provision of a test/demonstration program is very important for getting the bug fixed quickly. Often, with no test program, we will not do anything with the report for a long time unless it is immediately obvious what the problem is.  If possible, the test program should be in the form of a testcase (to be built/run using the gnustep-tests script) for inclusion into the testsuites - such testcases can readily be run on MacOSX as a reference platform so that we can tell what the correct behavior is.&lt;br /&gt;
&lt;br /&gt;
If your problem is that some API from OSX 10.5 or later is unimplemented, please report it as a 'Change Request' rather than a 'Bug', and (ideally) contribute an implementation of the missing functionality.  In this case please provide documentation for the missing API and a test case to demonstrate what it does.&lt;br /&gt;
&lt;br /&gt;
== Sending Fixes ==&lt;br /&gt;
&lt;br /&gt;
Actually fixing problems is even more appreciated than sending in bug reports. To do this, first fix the bug and make sure it works. Then send in a diff file containing the differences between the old version of the file(s) you changed and the new version. Use the diff (&amp;lt;tt&amp;gt;diff -u oldfile newfile &amp;gt; file.patch&amp;lt;/tt&amp;gt;) program to do this.&lt;br /&gt;
For new APIs, provide header changes as well as source code changes, with macros bracketing the changes to specify which version of OSX they correspond to (see existing headers or examples) and comments in the headers documenting the behaviors of new methods etc.&lt;br /&gt;
For both bugfixes and new functionality, please, please, PLEASE provide testcases (see the existing testsuite for examples) which demonstrate the correct behavior of the code.  Without testcases it's much harder to review patches, so if you don't provide testcases, your patch may simply be ignored.  Testcases are executed using the gnustep-tests script from the gnustep-make package.&lt;br /&gt;
Add a ChangeLog entry in front of the diff file, and send the whole thing (patch plus testcases) to the bug database.&lt;br /&gt;
&lt;br /&gt;
If you use emacs, it is easy to add a ChangeLog entry. Just edit the file you changed, and move the cursor to the function or method you changed, then type &amp;lt;tt&amp;gt;M-x add-change-log-entry&amp;lt;/tt&amp;gt; and emacs automatically formats an entry in the ChangeLog file with the information on the file and function you changed. You just need to add a comment about what was fixed. Note: Don't send a diff of the ChangeLog file, just send a copy of your ChangeLog entry normally. Here is an example ChangeLog:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* src/NSAutoreleasePool.m ([NSAutoreleasePool -addObject:]):&lt;br /&gt;
Remove double_release checking. Increment released_count after&lt;br /&gt;
setting released array. &lt;br /&gt;
([NSAutoreleasePool -dealloc]): Catch release errors. &lt;br /&gt;
([NSAutoreleasePool -enableDoubleReleaseCheck:]): Removed method.&lt;br /&gt;
&lt;br /&gt;
* src/NSObject.h ([NSObject -autorelease], [NSObject -release]): &lt;br /&gt;
Add double_release checking. &lt;br /&gt;
([NSObject +enableDoubleReleaseCheck:]): New method.&lt;br /&gt;
&lt;br /&gt;
* src/Foundation/NSAutoreleasePool.h: Remove &lt;br /&gt;
+enableDoubleReleaseCheck:, add +autoreleaseCountForObject:.&lt;br /&gt;
&lt;br /&gt;
* src/Foundation/NSObject.h: Add +enableDoubleReleaseCheck:.&lt;br /&gt;
&lt;br /&gt;
* src/Foundation/objc-load.h: Include objc-api file.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== One thing at a time ==&lt;br /&gt;
&lt;br /&gt;
Please try to ensure that, you only address one issue at a time (ie try to ensure that different issues are kept clearly separate, not bundled together) and address complex issues in stages, completing one stage before going on to the next.&lt;br /&gt;
This keeps things managable, and allows other people to understand/address the issues efficiently and quickly.&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Report_Bugs&amp;diff=6522</id>
		<title>Report Bugs</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Report_Bugs&amp;diff=6522"/>
		<updated>2013-02-28T07:21:03Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* What to Report */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please report bugs via the [https://savannah.gnu.org/bugs/?group=gnustep GNUstep Bug Tracking database]. You can then query the database any time to see the status of your bug report. Due to spam being sent through bug reports, you now have to be a registered user before submitting a bug. Alternatively, you may report bugs by sending a message to [http://mail.gnu.org/mailman/listinfo/bug-gnustep bug-gnustep@gnu.org].&lt;br /&gt;
&lt;br /&gt;
User testing is vital for improving GNUstep, so please report any bugs you find!&lt;br /&gt;
&lt;br /&gt;
== What to Report ==&lt;br /&gt;
&lt;br /&gt;
Please include as much of this information as possible when submitting your report:&lt;br /&gt;
* GNUstep version and snapshot date or date of last update from CVS (ideally, on finding a bug you should update your system to the latest version in the CVS repository, in order to avoid reporting problems that have already been fixed).&lt;br /&gt;
* Machine/Operating system on which you are running&lt;br /&gt;
* Compiler version you use&lt;br /&gt;
* A description of the problem, along with either a test program to demonstrate the problem, or a description of how to make the problem appear in one of the test programs that come as part of the GNUstep distribution. &lt;br /&gt;
** If you have a problem configuring the libraries, please send the config.log file&lt;br /&gt;
** If you have a problem compiling a library or application, please send the complete output of make or at least enough to show what went wrong. If you are using sh or bash, do this: &amp;lt;tt&amp;gt;make messages=yes &amp;gt; output.txt 2&amp;gt;&amp;amp;1&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The provision of a test/demonstration program is very important for getting the bug fixed quickly. Often, with no test program, we will not do anything with the report for a long time unless it is immediately obvious what the problem is.  If possible, the test program should be in the form of a testcase (to be built/run using the gnustep-tests script) for inclusion into the testsuites - such testcases can readily be run on MacOSX as a reference platform so that we can tell what the correct behavior is.&lt;br /&gt;
&lt;br /&gt;
If your problem is that some API from OSX 10.5 or later is unimplemented, please report it as a 'Change Request' rather than a 'Bug', and (ideally) contribute an implementation of the missing functionality.  In this case please provide documentation for the missing API and a test case to demonstrate what it does.&lt;br /&gt;
&lt;br /&gt;
== Sending Fixes ==&lt;br /&gt;
&lt;br /&gt;
Actually fixing problems is even more appreciated than sending in bug reports. To do this, first fix the bug and make sure it works. Then send in a diff file containing the differences between the old version of the file(s) you changed and the new version. Use the diff (&amp;lt;tt&amp;gt;diff -u oldfile newfile &amp;gt; file.patch&amp;lt;/tt&amp;gt;) program to do this.&lt;br /&gt;
For new APIs, provide header changes as well as source code changes, with macros bracketing the changes to specify which version of OSX they correspond to (see existing headers or examples) and comments in the headers documenting the behaviors of new methods etc.&lt;br /&gt;
For both bugfixes and new functionality, please, please, PLEASE provide testcases (see the existing testsuite for examples) which demonstrate the correct behavior of the code.  Without testcases it's much harder to review patches, so if you don't provide testcases, your patch may simply be ignored.  Testcases are executed using the gnustep-tests script from the gnustep-make package.&lt;br /&gt;
Add a ChangeLog entry in front of the diff file, and send the whole thing (patch plus testcases) to the bug database.&lt;br /&gt;
&lt;br /&gt;
If you use emacs, it is easy to add a ChangeLog entry. Just edit the file you changed, and move the cursor to the function or method you changed, then type &amp;lt;tt&amp;gt;M-x add-change-log-entry&amp;lt;/tt&amp;gt; and emacs automatically formats an entry in the ChangeLog file with the information on the file and function you changed. You just need to add a comment about what was fixed. Note: Don't send a diff of the ChangeLog file, just send a copy of your ChangeLog entry normally. Here is an example ChangeLog:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* src/NSAutoreleasePool.m ([NSAutoreleasePool -addObject:]):&lt;br /&gt;
Remove double_release checking. Increment released_count after&lt;br /&gt;
setting released array. &lt;br /&gt;
([NSAutoreleasePool -dealloc]): Catch release errors. &lt;br /&gt;
([NSAutoreleasePool -enableDoubleReleaseCheck:]): Removed method.&lt;br /&gt;
&lt;br /&gt;
* src/NSObject.h ([NSObject -autorelease], [NSObject -release]): &lt;br /&gt;
Add double_release checking. &lt;br /&gt;
([NSObject +enableDoubleReleaseCheck:]): New method.&lt;br /&gt;
&lt;br /&gt;
* src/Foundation/NSAutoreleasePool.h: Remove &lt;br /&gt;
+enableDoubleReleaseCheck:, add +autoreleaseCountForObject:.&lt;br /&gt;
&lt;br /&gt;
* src/Foundation/NSObject.h: Add +enableDoubleReleaseCheck:.&lt;br /&gt;
&lt;br /&gt;
* src/Foundation/objc-load.h: Include objc-api file.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Report_Bugs&amp;diff=6521</id>
		<title>Report Bugs</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Report_Bugs&amp;diff=6521"/>
		<updated>2013-02-28T07:16:35Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please report bugs via the [https://savannah.gnu.org/bugs/?group=gnustep GNUstep Bug Tracking database]. You can then query the database any time to see the status of your bug report. Due to spam being sent through bug reports, you now have to be a registered user before submitting a bug. Alternatively, you may report bugs by sending a message to [http://mail.gnu.org/mailman/listinfo/bug-gnustep bug-gnustep@gnu.org].&lt;br /&gt;
&lt;br /&gt;
User testing is vital for improving GNUstep, so please report any bugs you find!&lt;br /&gt;
&lt;br /&gt;
== What to Report ==&lt;br /&gt;
&lt;br /&gt;
Please include as much of this information as possible when submitting your report:&lt;br /&gt;
* GNUstep version and snapshot date or date of last update from CVS (ideally, on finding a bug you should update your system to the latest version in the CVS repository, in order to avoid reporting problems that have already been fixed).&lt;br /&gt;
* Machine/Operating system on which you are running&lt;br /&gt;
* Compiler version you use&lt;br /&gt;
* A description of the problem, along with either a test program to demonstrate the problem, or a description of how to make the problem appear in one of the test programs that come as part of the GNUstep distribution. &lt;br /&gt;
** If you have a problem configuring the libraries, please send the config.log file&lt;br /&gt;
** If you have a problem compiling a library or application, please send the complete output of make or at least enough to show what went wrong. If you are using sh or bash, do this: &amp;lt;tt&amp;gt;make messages=yes &amp;gt; output.txt 2&amp;gt;&amp;amp;1&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The provision of a test/demonstration program is very important for getting the bug fixed quickly. Often, with no test program, we will not do anything with the report for a long time unless it is immediately obvious what the problem is.&lt;br /&gt;
&lt;br /&gt;
If your problem is that some API from OSX 10.5 or later is unimplemented, please report it as a 'Change Request' rather than a 'Bug', and (ideally) contribute an implementation of the missing functionality.  In this case please provide documentation for the missing API and a test case to demonstrate what it does.&lt;br /&gt;
&lt;br /&gt;
== Sending Fixes ==&lt;br /&gt;
&lt;br /&gt;
Actually fixing problems is even more appreciated than sending in bug reports. To do this, first fix the bug and make sure it works. Then send in a diff file containing the differences between the old version of the file(s) you changed and the new version. Use the diff (&amp;lt;tt&amp;gt;diff -u oldfile newfile &amp;gt; file.patch&amp;lt;/tt&amp;gt;) program to do this.&lt;br /&gt;
For new APIs, provide header changes as well as source code changes, with macros bracketing the changes to specify which version of OSX they correspond to (see existing headers or examples) and comments in the headers documenting the behaviors of new methods etc.&lt;br /&gt;
For both bugfixes and new functionality, please, please, PLEASE provide testcases (see the existing testsuite for examples) which demonstrate the correct behavior of the code.  Without testcases it's much harder to review patches, so if you don't provide testcases, your patch may simply be ignored.  Testcases are executed using the gnustep-tests script from the gnustep-make package.&lt;br /&gt;
Add a ChangeLog entry in front of the diff file, and send the whole thing (patch plus testcases) to the bug database.&lt;br /&gt;
&lt;br /&gt;
If you use emacs, it is easy to add a ChangeLog entry. Just edit the file you changed, and move the cursor to the function or method you changed, then type &amp;lt;tt&amp;gt;M-x add-change-log-entry&amp;lt;/tt&amp;gt; and emacs automatically formats an entry in the ChangeLog file with the information on the file and function you changed. You just need to add a comment about what was fixed. Note: Don't send a diff of the ChangeLog file, just send a copy of your ChangeLog entry normally. Here is an example ChangeLog:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* src/NSAutoreleasePool.m ([NSAutoreleasePool -addObject:]):&lt;br /&gt;
Remove double_release checking. Increment released_count after&lt;br /&gt;
setting released array. &lt;br /&gt;
([NSAutoreleasePool -dealloc]): Catch release errors. &lt;br /&gt;
([NSAutoreleasePool -enableDoubleReleaseCheck:]): Removed method.&lt;br /&gt;
&lt;br /&gt;
* src/NSObject.h ([NSObject -autorelease], [NSObject -release]): &lt;br /&gt;
Add double_release checking. &lt;br /&gt;
([NSObject +enableDoubleReleaseCheck:]): New method.&lt;br /&gt;
&lt;br /&gt;
* src/Foundation/NSAutoreleasePool.h: Remove &lt;br /&gt;
+enableDoubleReleaseCheck:, add +autoreleaseCountForObject:.&lt;br /&gt;
&lt;br /&gt;
* src/Foundation/NSObject.h: Add +enableDoubleReleaseCheck:.&lt;br /&gt;
&lt;br /&gt;
* src/Foundation/objc-load.h: Include objc-api file.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=File:EC-FOSDEM-2012.pdf&amp;diff=6315</id>
		<title>File:EC-FOSDEM-2012.pdf</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=File:EC-FOSDEM-2012.pdf&amp;diff=6315"/>
		<updated>2012-03-09T10:28:38Z</updated>

		<summary type="html">&lt;p&gt;Rfm: slideshow&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;slideshow&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=FOSDEM_2012&amp;diff=6314</id>
		<title>FOSDEM 2012</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=FOSDEM_2012&amp;diff=6314"/>
		<updated>2012-03-09T10:28:16Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* Schedule */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== FOSDEM 2012 Announcement ==&lt;br /&gt;
&lt;br /&gt;
[http://fosdem.org/2012/ FOSDEM 2012] will take place at at the '''Université Libre de Bruxelles''', in '''Brussels''' on '''Saturday 4 and Sunday 5 February 2012'''.&lt;br /&gt;
&lt;br /&gt;
This page is for organizing GNUstep's participation in the event. This includes the organization of a developer meeting&lt;br /&gt;
the Friday before FOSDEM.&lt;br /&gt;
&lt;br /&gt;
== Organizer(s) ==&lt;br /&gt;
&lt;br /&gt;
* Lars Sonchocky-Helldorf (lars dot sonchocky dash helldorf at hamburg dot de)&lt;br /&gt;
* is somebody else interested in lending me a hand?&lt;br /&gt;
&lt;br /&gt;
== Who will attend FOSDEM ==&lt;br /&gt;
&lt;br /&gt;
One of the main reasons people attend the event is that you can meet, and talk directly to, other developers, whom you would otherwise meet only virtually (on mailing lists, emails, newsgroups, IRC etc.). We expect many lead developers and contributors to be present, so if you have never met them, you shouldn't miss this occasion!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following is a list of people of GNUstep fame who have confirmed (or denied) that they will be able to join us at the GNUstep meeting at FOSDEM 2012:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Friday&lt;br /&gt;
3. Feb&lt;br /&gt;
! Saturday&lt;br /&gt;
4. Feb&lt;br /&gt;
! Sunday&lt;br /&gt;
5. Feb&lt;br /&gt;
! Monday&lt;br /&gt;
6. Feb&lt;br /&gt;
! Special comments / topics&lt;br /&gt;
! Hotel&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Lars S.-Helldorf ||| Yes || Yes || Yes || No || event organizer || Argus&lt;br /&gt;
|-&lt;br /&gt;
| Nikolaus Schaller || No || Yes || Yes || No  || QuantumSTEP + Openmoko / GTA04.org || Argus&lt;br /&gt;
|-&lt;br /&gt;
| Quentin Mathé  || Yes || Yes || Yes ||  No || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| Niels Grewe  || || || ||   || Étoilé, DBusKit || &lt;br /&gt;
|-&lt;br /&gt;
| David Chisnall  || || || ||   || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| Sebastian Reitenbach || Yes || Yes || Yes || No || OpenBSD packages, GAP, OpenGroupware || Hotel The Moon&lt;br /&gt;
|-&lt;br /&gt;
| Nicolas Roard  || || || || ?  || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| Fred Kiefer  || Yes || Yes || Yes || No  || GNUstep (GUI, Cairo) || Hotel Aqua&lt;br /&gt;
|-&lt;br /&gt;
| Riccardo Mottola  || || || || ?  || GNUstep, GAP || &lt;br /&gt;
|-&lt;br /&gt;
| Gerold Rupprecht || ? || Yes || Yes || ?  || GNUstep || &lt;br /&gt;
|-&lt;br /&gt;
| Richard Frith-Macdonald || Late  ||  Yes || Yes || No  || GNUstep || Argus&lt;br /&gt;
|-&lt;br /&gt;
| N.N. ||  t.b.d. || t.b.d. || t.b.d. || t.b.d. || t.b.d. ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dev-Room Presentations and Events ==&lt;br /&gt;
&lt;br /&gt;
The room at out disposal will be '''AW1.126''' (capacity is 72 seats (this is more than twice of what we had the years ago); in the building &amp;quot;AW&amp;quot;),&lt;br /&gt;
-- on '''Saturday 2011-02-04''' from (to be confirmed) '''11:00''' to '''19:00'''&lt;br /&gt;
&lt;br /&gt;
=== Call for participation ===&lt;br /&gt;
&lt;br /&gt;
We are looking for people who want to give a talk, moderate a discussion, hold a hand ons (practice) / hacking session or organize a code sprint. Please send your proposals to [mailto:discuss-gnustep@gnu.org GNUstep discussion list], the organizers mentioned [[FOSDEM_2011#Organizers|above]] or - if you've got a wiki account - enter them right [http://wiki.gnustep.org/index.php?title=FOSDEM_2011&amp;amp;action=edit&amp;amp;section=6 here]. At first a title, a short summary, proposed duration and a preffered time slot would do, so we can start scheduling as soon as possible.&lt;br /&gt;
&lt;br /&gt;
'''deadline for filing is t.b.d., deadline for the papers is t.b.d.'''&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The FOSDEM organizers strongly recommend a '''granularity of 15 minute blocks'''. So if a talk is just 15 (lightning talk), 30 or 45 minutes long - fine! But we should have 15 minutes breaks between the talks so that the visitors have enough time to find a seat and the presenters have enough time to get ready.&lt;br /&gt;
&lt;br /&gt;
=== List of submitted talk/discussion/session proposals ===&lt;br /&gt;
&lt;br /&gt;
Please submit through *[mailto:discuss-gnustep@gnu.org GNUstep discussion list]* until *2011-12-31*&lt;br /&gt;
&lt;br /&gt;
=== Wishlist for talks/discussions/sessions ===&lt;br /&gt;
&lt;br /&gt;
Enter talks/discussions/sessions here you would be interested in.&lt;br /&gt;
&lt;br /&gt;
* GNUstep Progresses and Roadmap&lt;br /&gt;
* CoreBase and CoreGraphics/Opal in GNUstep&lt;br /&gt;
&lt;br /&gt;
=== Schedule ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
!width=&amp;quot;65pt&amp;quot;| Time Slot !! width=&amp;quot;130pt&amp;quot;| Author !! width=&amp;quot;360pt&amp;quot;| Title / Abstract !! width=&amp;quot;130pt&amp;quot;| Kind !! width=&amp;quot;40pt&amp;quot; | Slides&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; style=&amp;quot;background:#ddd;&amp;quot; | '''Saturday, Feb 04, 2012'''&lt;br /&gt;
|-&lt;br /&gt;
| 11:00 - 11:15 || GNUstep Developers || '''GNUstep Developer's Meeting'''&lt;br /&gt;
&lt;br /&gt;
Meet the GNUstep developers face to face, discuss current afairs of GNUstep, share news about the latest development and plans on GNUstep, improve collaboration between the several GNUstep related projects&lt;br /&gt;
&lt;br /&gt;
|| meeting, discussion || -&lt;br /&gt;
|-&lt;br /&gt;
| 11:15 - 11:45 || Sebastian Reitenbach || '''OpenBSD GNUstep ports update'''&lt;br /&gt;
&lt;br /&gt;
Topics covered:&lt;br /&gt;
* Why the hell on OpenBSD&lt;br /&gt;
* How easy it is to create a new GNUstep port&lt;br /&gt;
* What's new compared to last year&lt;br /&gt;
* Problems I encountered over the last year&lt;br /&gt;
* Goals for the next year&lt;br /&gt;
&lt;br /&gt;
|| talk || [[Image:OpenBSD-ports-FOSDEM-2012.pdf]]&lt;br /&gt;
|-&lt;br /&gt;
| 12:00 - 12:30 || Sebastian Reitenbach || '''OpenGroupware - Phoenix from the ashes'''&lt;br /&gt;
&lt;br /&gt;
Topics covered:&lt;br /&gt;
* short history of OpenGroupware, overview of its features&lt;br /&gt;
* porting effort from gnustep-make 1 to gnustep-make 2, and from libFoundation to gnustep-base&lt;br /&gt;
* OpenGroupware is now based on SOPE fork from the SOGo team, lots of bugs in SOPE got fixed&lt;br /&gt;
* talk about some new features&lt;br /&gt;
* OpenGroupware-5.5rc1 (I hope to agree with Adam to release it even before the FOSDEM)&lt;br /&gt;
* short Demo&lt;br /&gt;
&lt;br /&gt;
|| talk || [[Image:OpenGroupware-FOSDEM-2012.pdf]]&lt;br /&gt;
|-&lt;br /&gt;
| 12:45 - 13:30 || Sebastian Reitenbach || '''A GNUstep Applications Overview'''&lt;br /&gt;
&lt;br /&gt;
* it will feature GAP (GNUstep Application Project)&lt;br /&gt;
** introduce the project, and its goals&lt;br /&gt;
** cover some of the applications found there&lt;br /&gt;
* it will also include the usual known suspects: GWorkspace, ProjectCenter, Gorm, ...&lt;br /&gt;
* it will also cover some other nice GNUstep applications found scattered all over the web, for example:&lt;br /&gt;
** CDPlayer, Burn, GNUMail, SimpleAgenda, Zipper and more&lt;br /&gt;
* show/demonstrate some of the applications live&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 13:45 - 14:15 || Fred Kiefer || '''GNUstep GUI: Recent Developments - Graphics and Text'''&lt;br /&gt;
&lt;br /&gt;
* New features in the text system this year&lt;br /&gt;
* Resolution Independence/scale factor support&lt;br /&gt;
* Other graphics improvements&lt;br /&gt;
* Demo&lt;br /&gt;
&lt;br /&gt;
|| talk || [[Image:Gnustep-gui-FOSDEM-2012.pdf]]&lt;br /&gt;
|-&lt;br /&gt;
| 14:30 - 15:00 || Quentin Mathé || '''Étoilé: What has been done over the past year and what's next?'''&lt;br /&gt;
&lt;br /&gt;
In this presentation, we will take a look at the Étoilé progresses over the past year. We will summarize our work on both our core frameworks and GNUstep. We will also discuss the project status in a broader way, and what can be expected in 2012.&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 15:15 - 16:00 || Richard Frith-Macdonald || '''Enterprise Control, Configuration and Logging/Alarming using GNUstep-base'''&lt;br /&gt;
&lt;br /&gt;
1. An overview of the problem of dealing with multiple server processes on multiple hosts and sites.  How to provide fault tolerance and how to scale up without losing control.&lt;br /&gt;
2. A discussion of the use of the basic technologies such as Distributed Objects and property lists etc to implement these systems.&lt;br /&gt;
3. Control ... how we start/stop server processes, prevent duplication of processes, support automated restart, and query the state of processes.&lt;br /&gt;
4. Configuration ... how we provide specific configuration to each process under central control, yet allow those servers to operate independently.&lt;br /&gt;
5. Logging/Alarming ... how we provide and manage simple and consistent audit/debug logging facilities for server processes, and how we integrate with SNMP.&lt;br /&gt;
&lt;br /&gt;
|| talk || [[Image:EC-FOSDEM-2012.pdf]]&lt;br /&gt;
|-&lt;br /&gt;
| 16:15 - 17:00 || Quentin Mathé || '''CoreObject : An Object Store built for Revision Control and Desktop Environment Needs'''&lt;br /&gt;
&lt;br /&gt;
This talk will introduce CoreObject, an Object Store built from the ground up to support features such as selective undo, live collaboration without locking, branching, etc. not found in Object-Oriented Databases until now. CoreObject is not based on Operational Transformations but a new Object Graph Diffing and Merging model, that makes possible to integrate these revision control features into a database and ensure they scale to large object histories.&lt;br /&gt;
From a desktop environment perspective, revision tracks are available to create interactive views on the history and support multiple undo/redo granularity levels. CoreObject also comes with a collection of reusable object models to solve recurrent use cases in document management, organization and edition.&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 17:15 - 18:00 || David Chisnall || '''New Features of Objective-C'''&lt;br /&gt;
&lt;br /&gt;
With iOS 5 and OS X 10.7, Apple introduced a number of new Objective-C features.  With the release of version 1.6 of the GNUstep Objective-C runtime and version 3.0 of clang these are now all available to GNUstep developers.  The new features include better data hiding, automatic reference counting, and a number of other features.  This talk will cover these features, as well as some of the extensions beyond Apple's version and the improvements in Objective-C performance since FOSDEM last year.&lt;br /&gt;
&lt;br /&gt;
|| talk || [http://www.fosdem.org/2012/schedule/event/new_objc_features link to slides]&lt;br /&gt;
|-&lt;br /&gt;
| 18:15 - 19:00 || Dr. H. Nikolaus Schaller || '''QuantumSTEP: new frameworks and future directions'''&lt;br /&gt;
&lt;br /&gt;
QuantumSTEP is a technology study framework and application&lt;br /&gt;
suite that is partially based on GNUstep. It aims at consequently&lt;br /&gt;
using Objective-C on embedded and portable devices. This talk&lt;br /&gt;
describes the latest additions to the frameworks: CoreLocation,&lt;br /&gt;
MKMapKit, CoreWLAN, CoreTelephony and demonstrates how&lt;br /&gt;
they work on the new GTA04 hardware.&lt;br /&gt;
&lt;br /&gt;
|| talk || http://download.goldelico.com/quantumstep/FOSDEM%202012.pdf&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Suggested Hotels ==&lt;br /&gt;
&lt;br /&gt;
last year Sebastian Reitenbach and Nikolaus Schaller have booked here. Ask them on the mailing list on their Experience:&lt;br /&gt;
&lt;br /&gt;
=== Louise Hotel ===&lt;br /&gt;
* 40, rue Veydt&lt;br /&gt;
* 1050 Bruxelles&lt;br /&gt;
* http://www.louisehotel.com/&lt;br /&gt;
* Sebastian Reitenbach says:&lt;br /&gt;
** book via: http://www.hotelreservierungen.de , which is cheaper than the offer on the hotel site. The reservation includes breakfast.&lt;br /&gt;
** free WiFi is available&lt;br /&gt;
** it costs only about half the price of the Argus hotel from last year. &lt;br /&gt;
** Its near avenue louise, only a foot walk away from the university campus.&lt;br /&gt;
&lt;br /&gt;
NOTE Dec 2011: appears to have changed owner and is no longer listed in online booking portals&lt;br /&gt;
&lt;br /&gt;
=== Argus Hotel Brussels (Belguim) (good experiences from past years) ===&lt;br /&gt;
*6, Rue Capitaine Crespel &lt;br /&gt;
*B-1050 Bruxelles, Belgique&lt;br /&gt;
*Tel +32 2 514 07 70&lt;br /&gt;
*Fax +32 2  514 12 22&lt;br /&gt;
*reception@hotel-argus.be&lt;br /&gt;
*Rate: 65/night - but you have to ask for the 'GNUstep/FOSDEM' discount&lt;br /&gt;
*has free Internet ;-)&lt;br /&gt;
&lt;br /&gt;
Normal prices are here:&lt;br /&gt;
&lt;br /&gt;
http://www.hotel-argus.be/ukrates.htm&lt;br /&gt;
&lt;br /&gt;
but there are discounts available:&lt;br /&gt;
&lt;br /&gt;
http://www.hotel-argus.be/ukpromotions.htm&lt;br /&gt;
&lt;br /&gt;
and we'll ask for even better discounts for a group booking (we need to know who's will be there for that!)&lt;br /&gt;
&lt;br /&gt;
Some people booked that hotel in the last years: Nicolas, Marcus, Helge ,Lars.&lt;br /&gt;
&lt;br /&gt;
=== Sun Hotel in Brussels (Belguim)  (not recommended) ===&lt;br /&gt;
*Rue du Berger, 38 &lt;br /&gt;
*1050 Brussels (near Porte de Namur)&lt;br /&gt;
*Tel : +32(0)2 511 21 19&lt;br /&gt;
*Fax : +32(0)2 512 32 71&lt;br /&gt;
*sunhotel@skynet.be&lt;br /&gt;
*www.hotels-belgium.com/brussel-al/sunhotel.htm&lt;br /&gt;
&lt;br /&gt;
*50 EUR/Single room with breakfast&lt;br /&gt;
*22 rooms total&lt;br /&gt;
*3km distance to University&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
has internet access, will make breakfast room available for developers after 11:00 am. Two electrical plugs for breakfast room, so need extension cord with  additional plugs. Ask for first or second floor rooms close to reception for good wifi connections.&lt;br /&gt;
&lt;br /&gt;
=== Hotel Sabina in Brussels (Belgium)===&lt;br /&gt;
*Rue du Nord 78&lt;br /&gt;
*B-1000 Brussels&lt;br /&gt;
*Tel: (32)2 218 26 37&lt;br /&gt;
*Fax: (32)2 219 32 39&lt;br /&gt;
(very good rating by visitors)&lt;br /&gt;
63 EUR/Single with breakfast&lt;br /&gt;
8 single only + 16 double rooms&lt;br /&gt;
4,2km distance&lt;br /&gt;
&lt;br /&gt;
=== Hotel Mozart in Bruxelles (Belgium)===&lt;br /&gt;
*Rue Marché aux Fromages 23&lt;br /&gt;
*B-1000 Brussels&lt;br /&gt;
*Tel +32 2 502 66 61&lt;br /&gt;
*Fax +32 2 502 77 58&lt;br /&gt;
*Email Hotel.mozart@skynet.be&lt;br /&gt;
http://www.hotels-belgium.com/brussel-center/mozart.htm&lt;br /&gt;
&lt;br /&gt;
70 EUR/Single room NO breakfast&lt;br /&gt;
WLAN&lt;br /&gt;
&lt;br /&gt;
51 rooms total&lt;br /&gt;
4,2km distance&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are open to other suggestions. Please take into account distance to the University and access to public transportation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
A quick introduction to Brussels:&lt;br /&gt;
http://wikitravel.org/en/Brussel&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:FOSDEM]]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background: #ff958e;&amp;quot;&lt;br /&gt;
| If you want to participate, you need to [[Special:Userlogin|create an account]] and send a mail with your user name to ''&amp;lt;tt&amp;gt;gnustep-webmasters [AT] gnu.org&amp;lt;/tt&amp;gt;'' to request write-access. We are sorry for the inconvenience, but this procedure has become necessary to prevent SPAM'ing of this site.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Writing_documentation&amp;diff=6297</id>
		<title>Writing documentation</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Writing_documentation&amp;diff=6297"/>
		<updated>2012-02-13T09:36:50Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GNUstep documentation is produced by a variety of methods, but the main class reference documentation (i.e. the stuff you are concerned with if you are implementing new library code) is generated automatically from the Objective-C header files.&lt;br /&gt;
&lt;br /&gt;
The gnustep-make system supports automatic generation of documentation, and the gnustep-base library includes the autogsdoc tool used to produce the documentation.  Autogsdoc is similar tools like Doxygen or Javadoc, but was written before these tools were generally available and was designed specifically for Objective-C documentation.  it has the advantages of (relative) simplicity and no external dependencies ... if you have gnustep-base installed then you have the ability to generate GNUstep documentation.&lt;br /&gt;
&lt;br /&gt;
Basically, to provide documentation for a class, you place a comment immediately before the class in the header file, and start the comment with an extra asterisk ('/**' rather than '/*') to tell autogsdoc that the comment is part of the documentation.&lt;br /&gt;
&lt;br /&gt;
To provide documentation for an individual method, you place a comment immediately before the declaration of that method in the header.&lt;br /&gt;
&lt;br /&gt;
The autogsdoc tool takes the content of the comments an produces an intermediate XML representation which is then converted to HTML.  You can thereof use familiar markup like &amp;lt;br /&amp;gt; to force a line break in the documentation, but you must also be careful to escape &amp;lt; and &amp;amp; characters using 'lt' and 'amp' in your comments if you do not want them to be treated as markup.&lt;br /&gt;
&lt;br /&gt;
Autogsdoc also handles automatic cross referencing and formatting to a large extent, but the full details are beyond the scope of a small wikipedia article ... you should look at the autogsdoc documentation and the gsdoc markup language documentation for full information.&lt;br /&gt;
&lt;br /&gt;
What do you need to document?  Well, for each class or protocol you should provide an overview of what that class or protocol is intended to be used for, and should ideally provide example use cases and simple example code.  For each method in the class you should provide a description of what the method does, what effect different arguments have, what possible return values are, and what exceptions might be raised (if any).&lt;br /&gt;
&lt;br /&gt;
What you ''don't'' need to do is provide information about API versioning in the comments ... there are macros you should use in the header to define visibility of methods in different versions of the API, and autogsdoc should detect those automatically and insert information into the documentation to tell the reader which versions of the API the method is present in.&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Coding_style&amp;diff=6296</id>
		<title>Coding style</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Coding_style&amp;diff=6296"/>
		<updated>2012-02-13T09:12:44Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Everyone has their own coding style preferences, and many people will be happy to tell you that other people's styles are insane/unreadable.  Since we use a standard style for GNUstep, the most common complaint you will hear is that the GNUstep style is unreadable... but if you look at the personal styles of the people complaining you will find a whole range, many of which you will find less usable than the GNUstep style.&lt;br /&gt;
&lt;br /&gt;
In fact, the GNUstep style is a reasonably chosen variation of the GNU standard coding style (a variation because the GNU standard style is for C and Objectice-C is slightly different).  Which means that it's mainstream enough that we can be sure there's no objective problem with it.&lt;br /&gt;
&lt;br /&gt;
So laying aside any religious convictions about coding style ... the main point is that we need to stick to a common standard so that everyone working on the project can become familiar with the one style (no matter how different from the style they are used to it is), and we can therefore all work together effectively.  New contributions ''must'' stick to the standard style.&lt;br /&gt;
&lt;br /&gt;
One objection to the style is that it is unfamiliar to Apple/iPhone developers ... but we really want our code to look different to Apple's code as part of a constant effort to avoid any accusation of copyright theft ...not only must we be careful never to copy any of Apple's code, but our code must clearly look different.&lt;br /&gt;
&lt;br /&gt;
Please read [http://www.gnustep.org/resources/documentation/Developer/CodingStandards/coding-standards_3.html#SEC_Top full details of coding standrds]&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Developer_Guides&amp;diff=6295</id>
		<title>Developer Guides</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Developer_Guides&amp;diff=6295"/>
		<updated>2012-02-13T08:49:07Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* Contributing to GNUstep core libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended as a collection of guides for developers.&lt;br /&gt;
&lt;br /&gt;
== Introductory Articles on GNUstep Development ==&lt;br /&gt;
&lt;br /&gt;
{{Stub}}&lt;br /&gt;
&lt;br /&gt;
=== [[GNUstep Suite|GNUstep Libraries and Tools]] ===&lt;br /&gt;
&lt;br /&gt;
A general overview of GNUstep.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnustep.org/resources/documentation/Developer/Base/ProgrammingManual/manual_toc.html GNUstep Base Programming Manual] ===&lt;br /&gt;
&lt;br /&gt;
The aim of this manual is to introduce you to the Objective-C language and the GNUstep development environment, in particular the Base library. The manual is organised to give you a tutorial introduction to the language and APIs, by using examples whenever possible, rather than providing a lengthy abstract description. &lt;br /&gt;
&lt;br /&gt;
While Objective-C is not a difficult language to learn or use, some of the terms may be unfamiliar, especially to those that have not programmed using an object-oriented programming language before. Whenever possible, concepts will be explained in simple terms rather than in more advanced programming terms, and comparisons to other languages will be used to aid in illustration.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.roard.com/docs/lmf2.article/en.html (GUI) Programming under GNUstep] ===&lt;br /&gt;
&lt;br /&gt;
This tutorial will introduce you to the [[AppKit]] classes and how to use [[Gorm]] to create graphical interfaces.&lt;br /&gt;
&lt;br /&gt;
=== [[Writing Makefiles]] ===&lt;br /&gt;
&lt;br /&gt;
The Makefile package is a system of make commands that is designed to encapsulate all the complex details of building and installing various types of projects from libraries to applications to documentation. This frees the developer to focus on the details of their particular project. Only a fairly simple main makefile need to be written which specifies the type of project and files involved in the project.&lt;br /&gt;
&lt;br /&gt;
=== [ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-examples-1.1.0.tar.gz Sample GNUstep Programs] ===&lt;br /&gt;
&lt;br /&gt;
This isn't really an article but rather a collection of small &amp;quot;codified guides&amp;quot; for the pragmatic programmer who wants to explore GNUstep by looking at and messing around with example code. This is best done while reading about basic concepts of OpenStep or Cocoa with the API documentation ([[Foundation]], [[AppKit]]) open in the background.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
=== [[Writing portable code|Coding for Portability]] ===&lt;br /&gt;
&lt;br /&gt;
Writing code that will compile and then run on different platforms can be surprisingly easy. This guide describes &lt;br /&gt;
some straight-forward steps to take to make your program easy to port to new platforms.&lt;br /&gt;
&lt;br /&gt;
=== [[Property Lists|Using Property Lists]] ===&lt;br /&gt;
&lt;br /&gt;
A regular issue that programmers face is storing structured configuration information, and reading it back. GNUstep has a standard mechanism that can be used for this task, amongst others: Property Lists.&lt;br /&gt;
&lt;br /&gt;
=== [[Deployment on Windows]] ===&lt;br /&gt;
&lt;br /&gt;
This article will tell you how to deploy GNUstep applications on Windows.&lt;br /&gt;
&lt;br /&gt;
=== [[Adding a new Natural Language to GNUstep|Translating GNUstep]] ===&lt;br /&gt;
&lt;br /&gt;
Translation of GNUstep applications involves a number of steps, including translation of GNUstep Base and GNUstep GUI.&lt;br /&gt;
&lt;br /&gt;
=== [[Contributing to GNUstep core libraries]] ===&lt;br /&gt;
&lt;br /&gt;
Contributing to the core libraries is what everyone loves you for the most ... but it's quite a step to go from simple bug fixes/patches to major new code contributions.  Follow the link above to see how.&lt;br /&gt;
&lt;br /&gt;
When you read the information on [[Contributing to GNUstep core libraries]], please keep in mind that while it was written primarily form the point of view of contributing  code to the gnustep-base library, the principles all apply to the gnustep-gui library (and other library code too).  Also, a lot of the information is also relevant to contributions to application/tool code, not just library code.&lt;br /&gt;
&lt;br /&gt;
== Graphical Applications ==&lt;br /&gt;
&lt;br /&gt;
=== Simple Graphical Application Design ===&lt;br /&gt;
GNUstep includes several sophisticated development tools. GNUstep GUI interfaces are designed using [[Gorm]] (Graphical Object Relationship Modeler), an elegant application developed by Gregory Casamento. (See his [http://heronsperch.blogspot.com/ blog] for the latest news on GORM.) There are two proto-IDEs, [[ProjectCenter]] and [[ProjectManager]].&lt;br /&gt;
&lt;br /&gt;
There are several introductory tutorials for using these development tools. The first [http://www.gnustep.it/pierre-yves/index.html tutorial] by Pierre-Yves Rivaille is a classic demonstrating the process used to create the ubiquitous currency converter application. A second [http://www.nongnu.org/gstutorial/ tutorial] by Yen-Ju Chen is somewhat more in-depth and extensive.&lt;br /&gt;
&lt;br /&gt;
Nicolas Roard created a [http://gnustep.org/experience/DevelopmentDemonstration.html video] demonstrating the process of developing a simple calculator, and another [http://home.gna.org/pmanager/videos.html video] here by Sašo Kiselkov if you feel the need to create another currency converter.&lt;br /&gt;
&lt;br /&gt;
=== [[Document based applications|Document-based Application Design]] ===&lt;br /&gt;
&lt;br /&gt;
One of the most common use-patterns of applications on modern platforms is that of document-based applications --- applications which can have several active user-controlled contexts. Some familar examples might be a word processor where the user may have multiple document windows concurrently, or a web browser which allows a user to have a number of different browser windows open at the same time. This guide provides information and tips on how to code this style of application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Web Applications ==&lt;br /&gt;
&lt;br /&gt;
Please have a look at [[Creating A Simple GSWeb Application]] to learn how to create a [[GNUstepWeb|GNUstep Web]] application.&lt;br /&gt;
&lt;br /&gt;
== Other Information ==&lt;br /&gt;
&lt;br /&gt;
=== Developer sites ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.roard.com/docs/ GNUstep HelpCenter]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Implementing_test_cases&amp;diff=6294</id>
		<title>Implementing test cases</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Implementing_test_cases&amp;diff=6294"/>
		<updated>2012-02-13T08:46:01Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GNUstep now has a test framework included as part of the gnustep-make package.  It has no external dependencies other than the tools needed to build GNUstep itself ... so if you can build code you are guaranteed to be able to produce tests for it.&lt;br /&gt;
&lt;br /&gt;
Similarly, if you install gnustep-make on an Apple OSX system, you can run test cases there against the Apple implementation  of the code ... this is great for ensuring that GNUstep implementation of common APIs not only behaves s documented, but also matches the details of Apple's implemented behaviours.&lt;br /&gt;
&lt;br /&gt;
You execute test cases using the gnustep-tests command.&lt;br /&gt;
&lt;br /&gt;
Try 'gnustep-tests --help' to list the available options.&lt;br /&gt;
&lt;br /&gt;
Try 'gnustep-tests --documentation' for full documentation on how to run tests.&lt;br /&gt;
&lt;br /&gt;
Look in  $GNUSTEP_MAKEFILES/TestFramework  for examples of how to use the framework.&lt;br /&gt;
&lt;br /&gt;
For gnustep-base test cases, look in the Tests/base subdirectory in the gnustep-base package&lt;br /&gt;
&lt;br /&gt;
For gnustep-gui test cases, look in the Tests/gui subdirectory in the gnustep-gui package&lt;br /&gt;
&lt;br /&gt;
When getting started, it makes particular sense to look at the functions in $GNUSTEP_MAKEFILES/TestFramework/ObjectTesting.h (and look at examples of their use in the base and gui test cases).  These functions allow you to test a lot of basic stuff without having to write any test cases of your own:&lt;br /&gt;
&lt;br /&gt;
For instance, test_alloc() can be used to test that your class supports instance allocation and deallocation properly and test_NSObject() can be used to check that your class correctly implements the methods of the NSObject protocol).&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Implementing_test_cases&amp;diff=6293</id>
		<title>Implementing test cases</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Implementing_test_cases&amp;diff=6293"/>
		<updated>2012-02-13T08:35:15Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GNUstep now has a test framework included as part of the gnustep-make package.  It has no external dependencies other than the tools needed to build GNUstep itself ... so if you can build code you are guaranteed to be able to produce tests for it.&lt;br /&gt;
&lt;br /&gt;
Similarly, if you install gnustep-make on an Apple OSX system, you can run test cases there against the Apple implementation  of the code ... this is great for ensuring that GNUstep implementation of common APIs not only behaves s documented, but also matches the details of Apple's implemented behaviours.&lt;br /&gt;
&lt;br /&gt;
You execute test cases using the gnustep-tests command.&lt;br /&gt;
&lt;br /&gt;
Try 'gnustep-tests --help' to list the available options.&lt;br /&gt;
&lt;br /&gt;
Try 'gnustep-tests --documentation' for full documentation on how to run tests.&lt;br /&gt;
&lt;br /&gt;
Look in  $GNUSTEP_MAKEFILES/TestFramework  for examples of how to use the framework.&lt;br /&gt;
&lt;br /&gt;
For gnustep-base test cases, look in the Tests/base subdirectory in the gnustep-base package&lt;br /&gt;
&lt;br /&gt;
For gnustep-gui test cases, look in the Tests/gui subdirectory in the gnustep-gui package&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Implementing_the_class&amp;diff=6292</id>
		<title>Implementing the class</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Implementing_the_class&amp;diff=6292"/>
		<updated>2012-02-13T08:22:35Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* Start small */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Start small ===&lt;br /&gt;
&lt;br /&gt;
The most important thing to keep in mind when implementing new functionality is to do it in small sections ... break the task up.  You should release little and often so that others can review changes and offer helpful advice early.&lt;br /&gt;
&lt;br /&gt;
=== Pick small groups of methods ===&lt;br /&gt;
&lt;br /&gt;
When implementing a class, you need to start by implementing an initial version of the designated initialiser and the -dealloc method so that you can create and destroy instances of the class.  You may want to revise those methods as you implement more of the class, but you can start by implementing very simple versions.&lt;br /&gt;
&lt;br /&gt;
Once you can create and destroy instances, it makes sense to implement core methods like -hash, -isEqual:, and -description.&lt;br /&gt;
&lt;br /&gt;
Next you can implement  things like -copyWithZone: and -mutableCopyWithZone: (if the class supports copying and perhaps mutable copying), and the -initWithCoder: and -encodeWithCoder: methods if the class supports coding.&lt;br /&gt;
&lt;br /&gt;
Then pick small groups of methods with related functionality to implement, so that you can document and test those methods together.&lt;br /&gt;
&lt;br /&gt;
=== Document and write test cases as you go ===&lt;br /&gt;
&lt;br /&gt;
Ideally, you should do this '''before''' implementing:&lt;br /&gt;
&lt;br /&gt;
You can write one or more test cases for each method, and if you have access to an OSX system, you can run those test cases there to check that the OSX behaviour of the method actually is what you expect.&lt;br /&gt;
If you don't have an OSX system, you can still ask other people to run your testcases for you, and email the results back to you.&lt;br /&gt;
It is extremely useful to run test cases before designing how your code will work ... since that can inform your design and avoid wasting time writing code which doesn't match the OSX implementation.&lt;br /&gt;
 &lt;br /&gt;
You can add a comment to the header file, before each method you are about to implement.  The comment would describe what you think the method should be doing.  If you've implemented test cases and tried them on OSX, you will by now '''know''' what the method is supposed to do.&lt;br /&gt;
&lt;br /&gt;
Then, when you actually implement the method for GNUstep, you can run the test case you wrote, and be sure that your code does just what it should.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Let other people know what you've done ===&lt;br /&gt;
&lt;br /&gt;
If you make each batch of changes available immediately, other people might try them out on other operating systems or different processor architectures.&lt;br /&gt;
If you have provided test cases in the test suite, people will be able to see if the code behaves the same way on their systems as on yours.&lt;br /&gt;
Portability issues can be addressed quickly, and problems can be spotted and fixed quickly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Avoid using new language features ===&lt;br /&gt;
&lt;br /&gt;
We use #if...#else...#endif to deal with Objective-C language variations ... most people don't use the more recent additions Apple have made to the Objective-C language, and you must assume that the source code will be built by a compiler which doesn't support those features, so you need to have alternatives which will work with other compiler versions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Avoid system specific code ===&lt;br /&gt;
&lt;br /&gt;
We always write for portability ... GNUstep has to run on many operating systems and different types of CPU.  In particular you need to ensure that any code which uses UNIX system/library functions also has a variant which works under ms-windows.&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Implementing_the_class&amp;diff=6280</id>
		<title>Implementing the class</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Implementing_the_class&amp;diff=6280"/>
		<updated>2012-02-08T14:02:15Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* Start small */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Start small ==&lt;br /&gt;
&lt;br /&gt;
The most important thing to keep in mind when implementing new functionality is to do it in small sections ... break the task up.  You should release little and often so that others can review changes and offer helpful advice early.&lt;br /&gt;
&lt;br /&gt;
=== Implement small groups of methods ===&lt;br /&gt;
&lt;br /&gt;
When implementing a class, you need to start by implementing an initial version of the designated initialiser and the -dealloc method so that you can create and destroy instances of the class.  You may want to revise those methods as you implement more of the class, but you can start by implementing very simple versions.&lt;br /&gt;
&lt;br /&gt;
Once you can create and destroy instances, it makes sense to implement core methods like -hash, -isEqual:, and -description.&lt;br /&gt;
&lt;br /&gt;
Next you can implement  things like -copyWithZone: and -mutableCopyWithZone: (if the class supports copying and perhaps mutable copying), and the -initWithCoder: and -encodeWithCoder: methods if the class supports coding.&lt;br /&gt;
&lt;br /&gt;
Then pick small groups of methods with related functionality to implement, so that you can document and test those methods together.&lt;br /&gt;
&lt;br /&gt;
=== Document and write test cases as you go ===&lt;br /&gt;
&lt;br /&gt;
Ideally, you should do this '''before''' implementing:&lt;br /&gt;
&lt;br /&gt;
You can write one or more test cases for each method, and if you have access to an OSX system, you can run those test cases there to check that the OSX behaviour if the method actually is what you expect.&lt;br /&gt;
If you don't have an OSX system, you can still ask other people to run your testcases for you, and email the results back to you.&lt;br /&gt;
 &lt;br /&gt;
You can add a comment to the header file, before each method you are about to implement.  The comment would describe what you think the method should be doing.  If you've implemented test cases and tried them on OSX, you will by now '''know''' what the method is supposed to do.&lt;br /&gt;
&lt;br /&gt;
Then, when you actually implement the method for GNUstep, you can run the test case you wrote, and be sure that your code does just what it should.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Let other people know what you've done ===&lt;br /&gt;
&lt;br /&gt;
If you make each batch of changes available immediately, other people might try them out on other operating systems or different processor architectures.&lt;br /&gt;
If you have provided test cases in the test suite, people will be able to see if the code behaves the same way on their systems as on yours.&lt;br /&gt;
Portability issues can be addressed quickly, and problems can be spotted and fixed quickly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Avoid using new language features ===&lt;br /&gt;
&lt;br /&gt;
We use #if...#else...#endif to deal with Objective-C language variations ... most people don't use the more recent additions Apple have made to the Objective-C language, and you must assume that the source code will be built by a compiler which doesn't support those features, so you need to have alternatives which will work with other compiler versions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Avoid system specific code ===&lt;br /&gt;
&lt;br /&gt;
We always write for portability ... GNUstep has to run on many operating systems and different types of CPU.  In particular you need to ensure that any code which uses UNIX system/library functions also has a variant which works under ms-windows.&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Implementing_the_class&amp;diff=6279</id>
		<title>Implementing the class</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Implementing_the_class&amp;diff=6279"/>
		<updated>2012-02-08T13:59:51Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* Start small */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Start small ==&lt;br /&gt;
&lt;br /&gt;
The most important thing to keep in mind when implementing new functionality is to do it in small sections ... break the task up.  You should release little and often so that others can review changes and offer helpful advice early.&lt;br /&gt;
&lt;br /&gt;
=== Implement small groups of methods ===&lt;br /&gt;
&lt;br /&gt;
When implementing a class, you need to start by implementing an initial version of the designated initialiser and the -dealloc method so that you can create and destroy instances of the class.  You may want to revise those methods as you implement more of the class, but you can start by implementing very simple versions.&lt;br /&gt;
&lt;br /&gt;
Once you can create and destroy instances, it makes sense to implement core methods like -hash, -isEqual:, and -description.&lt;br /&gt;
&lt;br /&gt;
Next you can implement  things like -copyWithZone: and -mutableCopyWithZone: (if the class supports copying and perhaps mutable copying), and the -initWithCoder: and -encodeWithCoder: methods if the class supports coding.&lt;br /&gt;
&lt;br /&gt;
Then pick small groups of methods with related functionality to implement, so that you can document and test those methods together.&lt;br /&gt;
&lt;br /&gt;
=== Document and write test cases as you go ===&lt;br /&gt;
&lt;br /&gt;
Ideally, you should do this '''before''' implementing:&lt;br /&gt;
&lt;br /&gt;
You can write one or more test cases for each method, and if you have access to an OSX system, you can run those test cases there to check that the OSX behaviour if the method actually is what you expect.&lt;br /&gt;
If you don't have an OSX system, you can still ask other people to run your testcases for you, and email the results back to you.&lt;br /&gt;
 &lt;br /&gt;
You can add a comment to the header file, before each method you are about to implement.  The comment would describe what you think the method should be doing.  If you've implemented test cases and tried them on OSX, you will by now '''know''' what the method is supposed to do.&lt;br /&gt;
&lt;br /&gt;
Then, when you actually implement the method for GNUstep, you can run the test case you wrote, and be sure that your code does just what it should.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Let other people know what you've done ===&lt;br /&gt;
&lt;br /&gt;
If you make each batch of changes available immediately, other people might try them out on other operating systems or different processor architectures.&lt;br /&gt;
If you have provided test cases in the test suite, people will be able to see if the code behaves the same way on their systems as on yours.&lt;br /&gt;
Portability issues can be addressed quickly, and problems can be spotted and fixed quickly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Avoid using new language features ===&lt;br /&gt;
&lt;br /&gt;
We use #if...#else...#endif to deal with Objective-C language variations ... most people don't use the more recent additions Apple have made to the Objective-C language, and you must assume that the source code will be built by a compiler which doesn't support those features, so you need to have alternatives which will work with other compiler versions.&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Creating_the_header&amp;diff=6278</id>
		<title>Creating the header</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Creating_the_header&amp;diff=6278"/>
		<updated>2012-02-08T13:58:28Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The core GNUstep libraries implement the OpenStep APIs and the newer Cocoa APIs introduced by Apple.  The fact that these APIs have been produced by a litigious company, and the GNUstep project is used all over the world, means that we have to be a careful as possible to avoid the possibility of legal action being taken against GNUstep for copyright infringement in any country.&lt;br /&gt;
&lt;br /&gt;
So ... we clearly can't simply copy Apple header files, but must produce our own header files which are functionally equivalent but as different as reasonably possible from the the Apple ones.&lt;br /&gt;
&lt;br /&gt;
The easiest way to see how to do things is simply to look at a gnustep-base or gnustep-gui header file, but this article aims to point out key facts:&lt;br /&gt;
&lt;br /&gt;
We use a standard header at the top of the file, which identifies the file, the copyright ownership (Free Software foundation), the author(s) etc.&lt;br /&gt;
&lt;br /&gt;
We bracket the entire header in preprocessor conditionals to prevent it being used twice if included using the #include mechanism rather than #import.&lt;br /&gt;
&lt;br /&gt;
We #import &amp;lt;GNUstepBase/GSVersionMacros.h&amp;gt; to get version management macros, and we use them to ensure that the header contents are only seen by applications which want to use the version of the API that Apple introduced the class in.&lt;br /&gt;
&lt;br /&gt;
We include a fragment of code at start and end to ensure that the header can be read properly by a C++ compiler.&lt;br /&gt;
&lt;br /&gt;
We list method names within the file as two groups (class methods, and then instance methods) with alphabetical order within each group ... this differs from Apples' usual practice of putting methods together in functional groups.&lt;br /&gt;
&lt;br /&gt;
We use different formal argument names to those that apple use, since changing these does does not effect function of the API.&lt;br /&gt;
&lt;br /&gt;
We use the GNUstep coding standards for line length, the use of white space and indentation.  This means individual method names formatted differently than in Apple headers.&lt;br /&gt;
&lt;br /&gt;
We put documentation in comments before each class and before each method (historically the documentation was often put in the source files, but in the header is better).&lt;br /&gt;
&lt;br /&gt;
We hide instance variables by using a private pointer to the actual instance variables (unless we are certain we will never need to add more instance variables in later releases).&lt;br /&gt;
&lt;br /&gt;
We use #if...#else...#endif to deal with Objective-C language variations ... most people don't use the more recent additions Apple have made to the Objective-C language, and you must assume that the header file will be read by a compiler which doesn't support those features, so you need to have alternatives which will work with other compiler versions.&lt;br /&gt;
&lt;br /&gt;
Have a look at gnustep-base/Headers/Foundation/NSOperation.h as an example.&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Copyright_Assignment&amp;diff=6277</id>
		<title>Copyright Assignment</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Copyright_Assignment&amp;diff=6277"/>
		<updated>2012-02-08T13:26:15Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As GNUstep is a Free Software Foundation project, contributed code needs to have its copyright assigned to the Free Software Foundation.&lt;br /&gt;
&lt;br /&gt;
This is so that, if someone tries to take that code, modify it, and use it in a proprietary product without allowing other people (such at the author of the code) to use the modifications, the FSF is able to use copyright law to force them to make the modifications public.&lt;br /&gt;
&lt;br /&gt;
A common paranoid misconception (i.e. FUD spread by anti-FSF people) is that assigning copyright to the FSF means that the FSF can then take the code you wrote away from you and stop you using it.  In fact their practice is to assign back rights for you to do whatever you like with the code you wrote (including using it in proprietary projects).&lt;br /&gt;
&lt;br /&gt;
Please contact the GNUstep maintainer for details about copyright assignment.&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Implementing_the_class&amp;diff=6276</id>
		<title>Implementing the class</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Implementing_the_class&amp;diff=6276"/>
		<updated>2012-02-08T09:47:34Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* Start small */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Start small ==&lt;br /&gt;
&lt;br /&gt;
The most important thing to keep in mind when implementing new functionality is to do it in small sections ... break the task up.  You should release little and often so that others can review changes and offer helpful advice early.&lt;br /&gt;
&lt;br /&gt;
=== Implement small groups of methods ===&lt;br /&gt;
&lt;br /&gt;
When implementing a class, you need to start by implementing an initial version of the designated initialiser and the -dealloc method so that you can create and destroy instances of the class.  You may want to revise those methods as you implement more of the class, but you can start by implementing very simple versions.&lt;br /&gt;
&lt;br /&gt;
Once you can create and destroy instances, it makes sense to implement core methods like -hash, -isEqual:, and -description.&lt;br /&gt;
&lt;br /&gt;
Next you can implement  things like -copyWithZone: and -mutableCopyWithZone: (if the class supports copying and perhaps mutable copying), and the -initWithCoder: and -encodeWithCoder: methods if the class supports coding.&lt;br /&gt;
&lt;br /&gt;
Then pick small groups of methods with related functionality to implement, so that you can document and test those methods together.&lt;br /&gt;
&lt;br /&gt;
=== Document and write test cases as you go ===&lt;br /&gt;
&lt;br /&gt;
Ideally, you should do this '''before''' implementing:&lt;br /&gt;
&lt;br /&gt;
You can write one or more test cases for each method, and if you have access to an OSX system, you can run those test cases there to check that the OSX behaviour if the method actually is what you expect.&lt;br /&gt;
If you don't have an OSX system, you can still ask other people to run your testcases for you, and email the results back to you.&lt;br /&gt;
 &lt;br /&gt;
You can add a comment to the header file, before each method you are about to implement.  The comment would describe what you think the method should be doing.  If you've implemented test cases and tried them on OSX, you will by now '''know''' what the method is supposed to do.&lt;br /&gt;
&lt;br /&gt;
Then, when you actually implement the method for GNUstep, you can run the test case you wrote, and be sure that your code does just what it should.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Let other people know what you've done ===&lt;br /&gt;
&lt;br /&gt;
If you make each batch of changes available immediately, other people might try them out on other operating systems or different processor architectures.&lt;br /&gt;
If you have provided test cases in the test suite, people will be able to see if the code behaves the same way on their systems as on yours.&lt;br /&gt;
Portability issues can be addressed quickly, and problems can be spotted and fixed quickly.&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Implementing_the_class&amp;diff=6275</id>
		<title>Implementing the class</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Implementing_the_class&amp;diff=6275"/>
		<updated>2012-02-08T09:45:09Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Start small ==&lt;br /&gt;
&lt;br /&gt;
The most important thing to keep in mind when implementing new functionality's to do it in small sections ... break the task up.  You should release little and often so that others can review changes and offer helpful advice early.&lt;br /&gt;
&lt;br /&gt;
=== Implement small groups of methods ===&lt;br /&gt;
&lt;br /&gt;
When implementing a class, you need to start by implementing an initial version of the designated initialiser and the -dealloc method so that you can create and destroy instances of the class.  You may want to revise those methods as you implement more of the class, but you can start by implementing very simple versions.&lt;br /&gt;
&lt;br /&gt;
Once you can create and destroy instances, it makes sense to implement core methods like -hash, -isEqual:, and -description.&lt;br /&gt;
&lt;br /&gt;
Next you can implement  things like -copyWithZone: and -mutableCopyWithZone: (if the class supports copying and perhaps mutable copying), and the -initWithCoder: and -encodeWithCoder: methods if the class supports coding.&lt;br /&gt;
&lt;br /&gt;
Then pick small groups of methods with related functionality to implement, so that you can document and test those methods together.&lt;br /&gt;
&lt;br /&gt;
=== Document and write test cases as you go ===&lt;br /&gt;
&lt;br /&gt;
Ideally, you should do this '''before''' implementing:&lt;br /&gt;
&lt;br /&gt;
You can write one or more test cases for each method, and if you have access to an OSX system, you can run those test cases there to check that the OSX behaviour if the method actually is what you expect.&lt;br /&gt;
 &lt;br /&gt;
You can add a comment to the header file, before each method you are about to implement.  The comment would describe what you think the method should be doing.  If you've implemented test cases and tried them on OSX, you will by now '''know''' what the method is supposed to do.&lt;br /&gt;
&lt;br /&gt;
Then, when you actually implement the method for GNUstep, you can run the test case you wrote, and be sure that your code does just what it should.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Let other people know what you've done ===&lt;br /&gt;
&lt;br /&gt;
If you make each batch of changes available immediately, other people might try them out on other operating systems or different processor architectures.&lt;br /&gt;
If you have provided test cases in the test suite, people will be able to see if the code behaves the same way on their systems as on yours.&lt;br /&gt;
Portability issues can be addressed quickly, and problems can be spotted and fixed quickly.&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Developer_Guides&amp;diff=6274</id>
		<title>Developer Guides</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Developer_Guides&amp;diff=6274"/>
		<updated>2012-02-08T09:29:17Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* Contributing to GNUstep core libraries */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended as a collection of guides for developers.&lt;br /&gt;
&lt;br /&gt;
== Introductory Articles on GNUstep Development ==&lt;br /&gt;
&lt;br /&gt;
{{Stub}}&lt;br /&gt;
&lt;br /&gt;
=== [[GNUstep Suite|GNUstep Libraries and Tools]] ===&lt;br /&gt;
&lt;br /&gt;
A general overview of GNUstep.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnustep.org/resources/documentation/Developer/Base/ProgrammingManual/manual_toc.html GNUstep Base Programming Manual] ===&lt;br /&gt;
&lt;br /&gt;
The aim of this manual is to introduce you to the Objective-C language and the GNUstep development environment, in particular the Base library. The manual is organised to give you a tutorial introduction to the language and APIs, by using examples whenever possible, rather than providing a lengthy abstract description. &lt;br /&gt;
&lt;br /&gt;
While Objective-C is not a difficult language to learn or use, some of the terms may be unfamiliar, especially to those that have not programmed using an object-oriented programming language before. Whenever possible, concepts will be explained in simple terms rather than in more advanced programming terms, and comparisons to other languages will be used to aid in illustration.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.roard.com/docs/lmf2.article/en.html (GUI) Programming under GNUstep] ===&lt;br /&gt;
&lt;br /&gt;
This tutorial will introduce you to the [[AppKit]] classes and how to use [[Gorm]] to create graphical interfaces.&lt;br /&gt;
&lt;br /&gt;
=== [[Writing Makefiles]] ===&lt;br /&gt;
&lt;br /&gt;
The Makefile package is a system of make commands that is designed to encapsulate all the complex details of building and installing various types of projects from libraries to applications to documentation. This frees the developer to focus on the details of their particular project. Only a fairly simple main makefile need to be written which specifies the type of project and files involved in the project.&lt;br /&gt;
&lt;br /&gt;
=== [ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-examples-1.1.0.tar.gz Sample GNUstep Programs] ===&lt;br /&gt;
&lt;br /&gt;
This isn't really an article but rather a collection of small &amp;quot;codified guides&amp;quot; for the pragmatic programmer who wants to explore GNUstep by looking at and messing around with example code. This is best done while reading about basic concepts of OpenStep or Cocoa with the API documentation ([[Foundation]], [[AppKit]]) open in the background.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
=== [[Writing portable code|Coding for Portability]] ===&lt;br /&gt;
&lt;br /&gt;
Writing code that will compile and then run on different platforms can be surprisingly easy. This guide describes &lt;br /&gt;
some straight-forward steps to take to make your program easy to port to new platforms.&lt;br /&gt;
&lt;br /&gt;
=== [[Property Lists|Using Property Lists]] ===&lt;br /&gt;
&lt;br /&gt;
A regular issue that programmers face is storing structured configuration information, and reading it back. GNUstep has a standard mechanism that can be used for this task, amongst others: Property Lists.&lt;br /&gt;
&lt;br /&gt;
=== [[Deployment on Windows]] ===&lt;br /&gt;
&lt;br /&gt;
This article will tell you how to deploy GNUstep applications on Windows.&lt;br /&gt;
&lt;br /&gt;
=== [[Adding a new Natural Language to GNUstep|Translating GNUstep]] ===&lt;br /&gt;
&lt;br /&gt;
Translation of GNUstep applications involves a number of steps, including translation of GNUstep Base and GNUstep GUI.&lt;br /&gt;
&lt;br /&gt;
=== [[Contributing to GNUstep core libraries]] ===&lt;br /&gt;
&lt;br /&gt;
Contributing to the core libraries is what everyone loves you for the most ... but it's quite a step to go from simple bug fixes/patches to major new code contributions.  Follow the link above to see how.&lt;br /&gt;
&lt;br /&gt;
== Graphical Applications ==&lt;br /&gt;
&lt;br /&gt;
=== Simple Graphical Application Design ===&lt;br /&gt;
GNUstep includes several sophisticated development tools. GNUstep GUI interfaces are designed using [[Gorm]] (Graphical Object Relationship Modeler), an elegant application developed by Gregory Casamento. (See his [http://heronsperch.blogspot.com/ blog] for the latest news on GORM.) There are two proto-IDEs, [[ProjectCenter]] and [[ProjectManager]].&lt;br /&gt;
&lt;br /&gt;
There are several introductory tutorials for using these development tools. The first [http://www.gnustep.it/pierre-yves/index.html tutorial] by Pierre-Yves Rivaille is a classic demonstrating the process used to create the ubiquitous currency converter application. A second [http://www.nongnu.org/gstutorial/ tutorial] by Yen-Ju Chen is somewhat more in-depth and extensive.&lt;br /&gt;
&lt;br /&gt;
Nicolas Roard created a [http://gnustep.org/experience/DevelopmentDemonstration.html video] demonstrating the process of developing a simple calculator, and another [http://home.gna.org/pmanager/videos.html video] here by Sašo Kiselkov if you feel the need to create another currency converter.&lt;br /&gt;
&lt;br /&gt;
=== [[Document based applications|Document-based Application Design]] ===&lt;br /&gt;
&lt;br /&gt;
One of the most common use-patterns of applications on modern platforms is that of document-based applications --- applications which can have several active user-controlled contexts. Some familar examples might be a word processor where the user may have multiple document windows concurrently, or a web browser which allows a user to have a number of different browser windows open at the same time. This guide provides information and tips on how to code this style of application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Web Applications ==&lt;br /&gt;
&lt;br /&gt;
Please have a look at [[Creating A Simple GSWeb Application]] to learn how to create a [[GNUstepWeb|GNUstep Web]] application.&lt;br /&gt;
&lt;br /&gt;
== Other Information ==&lt;br /&gt;
&lt;br /&gt;
=== Developer sites ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.roard.com/docs/ GNUstep HelpCenter]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Creating_the_header&amp;diff=6270</id>
		<title>Creating the header</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Creating_the_header&amp;diff=6270"/>
		<updated>2012-02-07T13:20:54Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The core GNUstep libraries implement the OpenStep APIs and the newer Cocoa APIs introduced by Apple.  The fact that these APIs have been produced by a litigious company, and the GNUstep project is used all over the world, means that we have to be a careful as possible to avoid the possibility of legal action being taken against GNUstep for copyright infringement in any country.&lt;br /&gt;
&lt;br /&gt;
So ... we clearly can't simply copy Apple header files, but must produce our own header files which are functionally equivalent but as different as reasonably possible from the the Apple ones.&lt;br /&gt;
&lt;br /&gt;
The easiest way to see how to do things is simply to look at a gnustep-base or gnustep-gui header file, but this article aims to point out key facts:&lt;br /&gt;
&lt;br /&gt;
We use a standard header at the top of the file, which identifies the file, the copyright ownership (Free Software foundation), the author(s) etc.&lt;br /&gt;
&lt;br /&gt;
We bracket the entire header in preprocessor conditionals to prevent it being used twice if included using the #include mechanism rather than #import.&lt;br /&gt;
&lt;br /&gt;
We #import &amp;lt;GNUstepBase/GSVersionMacros.h&amp;gt; to get version management macros, and we use them to ensure that the header contents are only seen by applications which want to use the version of the API that Apple introduced the class in.&lt;br /&gt;
&lt;br /&gt;
We include a fragment of code at start and end to ensure that the header can be read properly by a C++ compiler.&lt;br /&gt;
&lt;br /&gt;
We list method names within the file as two groups (class methods, and then instance methods) with alphabetical order within each group ... this differs from Apples' usual practice of putting methods together in functional groups.&lt;br /&gt;
&lt;br /&gt;
We use different formal argument names to those that apple use, since changing these does does not effect function of the API.&lt;br /&gt;
&lt;br /&gt;
We use the GNUstep coding standards for line length, the use of white space and indentation.  This means individual method names formatted differently than in Apple headers.&lt;br /&gt;
&lt;br /&gt;
We put documentation in comments before each class and before each method (historically the documentation was often put in the source files, but in the header is better).&lt;br /&gt;
&lt;br /&gt;
We hide instance variables by using a private pointer to the actual instance variables (unless we are certain we will never need to add more instance variables in later releases).&lt;br /&gt;
&lt;br /&gt;
Have a look at gnustep-base/Headers/Foundation/NSOperation.h as an example.&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Creating_the_header&amp;diff=6269</id>
		<title>Creating the header</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Creating_the_header&amp;diff=6269"/>
		<updated>2012-02-07T13:10:36Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The core GNUstep libraries implement the OpenStep APIs and the newer Cocoa APIs introduced by Apple.  The fact that these APIs have been produced by a litigious company, and the GNUstep project is used all over the world, means that we have to be a careful as possible to avoid the possibility of legal action being taken against GNUstep for copyright infringement in any country.&lt;br /&gt;
&lt;br /&gt;
So ... we clearly can't simply copy Apple header files, but must produce our own header files which are functionally equivalent but as different as reasonably possible from the the Apple ones.&lt;br /&gt;
&lt;br /&gt;
The easiest way to see how to do things is simply to look at a gnustep-base or gnustep-gui header file, but this article aims to point out key facts:&lt;br /&gt;
&lt;br /&gt;
We use a standard header at the top of the file, which identifies the file, the copyright ownership (Free Software foundation), the author(s) etc.&lt;br /&gt;
&lt;br /&gt;
We bracket the entire header in preprocessor conditionals to prevent it being used twice if included using the #include mechanism rather than #import.&lt;br /&gt;
&lt;br /&gt;
We #import &amp;lt;GNUstepBase/GSVersionMacros.h&amp;gt; to get version management macros, and we use them to ensure that the header contents are only seen by applications which want to use the version of the API that Apple introduced the class in.&lt;br /&gt;
&lt;br /&gt;
We include a fragment of code at start and end to ensure that the header can be read properly by a C++ compiler.&lt;br /&gt;
&lt;br /&gt;
We list method names within the file as two groups (class methods, and then instance methods) with alphabetical order within each group ... this differs from Apples' usual practice of putting methods together in functional groups.&lt;br /&gt;
&lt;br /&gt;
We use different formal argument names to those that apple use, since changing these does does not effect function of the API.&lt;br /&gt;
&lt;br /&gt;
We use the GNUstep coding standards for line length, the use of white space and indentation.  This means individual method names formatted differently than in Apple headers.&lt;br /&gt;
&lt;br /&gt;
We put documentation in comments before each class and before each method (historically the documentation was often put in the source files, but in the header is better).&lt;br /&gt;
&lt;br /&gt;
Have a look at gnustep-base/Headers/Foundation/NSXMLParser.h as an example.&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Contributing_to_GNUstep_core_libraries&amp;diff=6268</id>
		<title>Contributing to GNUstep core libraries</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Contributing_to_GNUstep_core_libraries&amp;diff=6268"/>
		<updated>2012-02-07T12:51:43Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* Contributing major work to the core */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Contributing major work to the core ==&lt;br /&gt;
&lt;br /&gt;
Generally, if you are contributing a major piece of code to the GNUstep code, it's an implementation on a new class from OSX.  As Apple keep adding new APIs with every release of OSX, there is always work to do here.&lt;br /&gt;
&lt;br /&gt;
=== [[Creating the header]] ===&lt;br /&gt;
&lt;br /&gt;
This is not as simple as copying Apple's header file ... though looking at their documentation and header are a good starting point.&lt;br /&gt;
&lt;br /&gt;
=== [[Implementing the class]] ===&lt;br /&gt;
&lt;br /&gt;
The design/coding is probably the most fun bit&lt;br /&gt;
&lt;br /&gt;
=== [[Implementing test cases]] ===&lt;br /&gt;
&lt;br /&gt;
All new code in the core libraries needs corresponding test cases in the testsuite ... that makes sure that when anyone else tries to change the code, they see if they have broken anything.&lt;br /&gt;
 &lt;br /&gt;
=== [[Coding style]] ===&lt;br /&gt;
&lt;br /&gt;
All headers, source files, and test cases should conform to the coding style standards of the GNUstep project.  A consistent style is very important in a collaborative project where other people will want to read your code (and where you may want to read theirs).&lt;br /&gt;
&lt;br /&gt;
=== [[Writing documentation]] ===&lt;br /&gt;
&lt;br /&gt;
We need documentation of the new classes and how they work ... you can write descriptions of how they work as you are implementing features/methods.&lt;br /&gt;
&lt;br /&gt;
=== [[Copyright Assignment]] ===&lt;br /&gt;
&lt;br /&gt;
Boring legal details, but we have to go through them&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Contributing_to_GNUstep_core_libraries&amp;diff=6267</id>
		<title>Contributing to GNUstep core libraries</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Contributing_to_GNUstep_core_libraries&amp;diff=6267"/>
		<updated>2012-02-07T12:48:10Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Contributing major work to the core ==&lt;br /&gt;
&lt;br /&gt;
Generally, if you are contributing a major piece of code to the GNUstep code, it's an implementation on a new class from OSX.  As Apple keep adding new APIs with every release of OSX, there is always work to do here.&lt;br /&gt;
&lt;br /&gt;
=== [[Creating the header]] ===&lt;br /&gt;
&lt;br /&gt;
This is not as simple as copying Apple's header file ... though looking at their documentation and header are a good starting point.&lt;br /&gt;
&lt;br /&gt;
=== [[Implementing the class]] ===&lt;br /&gt;
&lt;br /&gt;
The design/coding is probably the most fun bit&lt;br /&gt;
&lt;br /&gt;
=== [[Implementing test cases]] ===&lt;br /&gt;
&lt;br /&gt;
All new code in the core libraries needs corresponding test cases in the testsuite ... that makes sure that when anyone else tries to change the code, they see if they have broken anything.&lt;br /&gt;
 &lt;br /&gt;
=== [[Writing documentation]] ===&lt;br /&gt;
&lt;br /&gt;
We need documentation of the new classes and how they work ... you can write descriptions of how they work as you are implementing features/methods.&lt;br /&gt;
&lt;br /&gt;
=== [[Copyright Assignment]] ===&lt;br /&gt;
&lt;br /&gt;
Boring legal details, but we have to go through them&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Developer_Guides&amp;diff=6266</id>
		<title>Developer Guides</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Developer_Guides&amp;diff=6266"/>
		<updated>2012-02-07T12:37:38Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* General */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended as a collection of guides for developers.&lt;br /&gt;
&lt;br /&gt;
== Introductory Articles on GNUstep Development ==&lt;br /&gt;
&lt;br /&gt;
{{Stub}}&lt;br /&gt;
&lt;br /&gt;
=== [[GNUstep Suite|GNUstep Libraries and Tools]] ===&lt;br /&gt;
&lt;br /&gt;
A general overview of GNUstep.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnustep.org/resources/documentation/Developer/Base/ProgrammingManual/manual_toc.html GNUstep Base Programming Manual] ===&lt;br /&gt;
&lt;br /&gt;
The aim of this manual is to introduce you to the Objective-C language and the GNUstep development environment, in particular the Base library. The manual is organised to give you a tutorial introduction to the language and APIs, by using examples whenever possible, rather than providing a lengthy abstract description. &lt;br /&gt;
&lt;br /&gt;
While Objective-C is not a difficult language to learn or use, some of the terms may be unfamiliar, especially to those that have not programmed using an object-oriented programming language before. Whenever possible, concepts will be explained in simple terms rather than in more advanced programming terms, and comparisons to other languages will be used to aid in illustration.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.roard.com/docs/lmf2.article/en.html (GUI) Programming under GNUstep] ===&lt;br /&gt;
&lt;br /&gt;
This tutorial will introduce you to the [[AppKit]] classes and how to use [[Gorm]] to create graphical interfaces.&lt;br /&gt;
&lt;br /&gt;
=== [[Writing Makefiles]] ===&lt;br /&gt;
&lt;br /&gt;
The Makefile package is a system of make commands that is designed to encapsulate all the complex details of building and installing various types of projects from libraries to applications to documentation. This frees the developer to focus on the details of their particular project. Only a fairly simple main makefile need to be written which specifies the type of project and files involved in the project.&lt;br /&gt;
&lt;br /&gt;
=== [ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-examples-1.1.0.tar.gz Sample GNUstep Programs] ===&lt;br /&gt;
&lt;br /&gt;
This isn't really an article but rather a collection of small &amp;quot;codified guides&amp;quot; for the pragmatic programmer who wants to explore GNUstep by looking at and messing around with example code. This is best done while reading about basic concepts of OpenStep or Cocoa with the API documentation ([[Foundation]], [[AppKit]]) open in the background.&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
=== [[Writing portable code|Coding for Portability]] ===&lt;br /&gt;
&lt;br /&gt;
Writing code that will compile and then run on different platforms can be surprisingly easy. This guide describes &lt;br /&gt;
some straight-forward steps to take to make your program easy to port to new platforms.&lt;br /&gt;
&lt;br /&gt;
=== [[Property Lists|Using Property Lists]] ===&lt;br /&gt;
&lt;br /&gt;
A regular issue that programmers face is storing structured configuration information, and reading it back. GNUstep has a standard mechanism that can be used for this task, amongst others: Property Lists.&lt;br /&gt;
&lt;br /&gt;
=== [[Deployment on Windows]] ===&lt;br /&gt;
&lt;br /&gt;
This article will tell you how to deploy GNUstep applications on Windows.&lt;br /&gt;
&lt;br /&gt;
=== [[Adding a new Natural Language to GNUstep|Translating GNUstep]] ===&lt;br /&gt;
&lt;br /&gt;
Translation of GNUstep applications involves a number of steps, including translation of GNUstep Base and GNUstep GUI.&lt;br /&gt;
&lt;br /&gt;
=== [[Contributing to GNUstep core libraries]] ===&lt;br /&gt;
&lt;br /&gt;
Contributing to the core libraries is what everyone loves you for the most ... but it's quite a step to go from simple bug fixes/patches to major new code contributions.  Here's how.&lt;br /&gt;
&lt;br /&gt;
== Graphical Applications ==&lt;br /&gt;
&lt;br /&gt;
=== Simple Graphical Application Design ===&lt;br /&gt;
GNUstep includes several sophisticated development tools. GNUstep GUI interfaces are designed using [[Gorm]] (Graphical Object Relationship Modeler), an elegant application developed by Gregory Casamento. (See his [http://heronsperch.blogspot.com/ blog] for the latest news on GORM.) There are two proto-IDEs, [[ProjectCenter]] and [[ProjectManager]].&lt;br /&gt;
&lt;br /&gt;
There are several introductory tutorials for using these development tools. The first [http://www.gnustep.it/pierre-yves/index.html tutorial] by Pierre-Yves Rivaille is a classic demonstrating the process used to create the ubiquitous currency converter application. A second [http://www.nongnu.org/gstutorial/ tutorial] by Yen-Ju Chen is somewhat more in-depth and extensive.&lt;br /&gt;
&lt;br /&gt;
Nicolas Roard created a [http://gnustep.org/experience/DevelopmentDemonstration.html video] demonstrating the process of developing a simple calculator, and another [http://home.gna.org/pmanager/videos.html video] here by Sašo Kiselkov if you feel the need to create another currency converter.&lt;br /&gt;
&lt;br /&gt;
=== [[Document based applications|Document-based Application Design]] ===&lt;br /&gt;
&lt;br /&gt;
One of the most common use-patterns of applications on modern platforms is that of document-based applications --- applications which can have several active user-controlled contexts. Some familar examples might be a word processor where the user may have multiple document windows concurrently, or a web browser which allows a user to have a number of different browser windows open at the same time. This guide provides information and tips on how to code this style of application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Web Applications ==&lt;br /&gt;
&lt;br /&gt;
Please have a look at [[Creating A Simple GSWeb Application]] to learn how to create a [[GNUstepWeb|GNUstep Web]] application.&lt;br /&gt;
&lt;br /&gt;
== Other Information ==&lt;br /&gt;
&lt;br /&gt;
=== Developer sites ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.roard.com/docs/ GNUstep HelpCenter]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=FOSDEM_2012&amp;diff=6258</id>
		<title>FOSDEM 2012</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=FOSDEM_2012&amp;diff=6258"/>
		<updated>2012-02-02T20:15:58Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* Who will attend FOSDEM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== FOSDEM 2012 Announcement ==&lt;br /&gt;
&lt;br /&gt;
[http://fosdem.org/2012/ FOSDEM 2012] will take place at at the '''Université Libre de Bruxelles''', in '''Brussels''' on '''Saturday 4 and Sunday 5 February 2012'''.&lt;br /&gt;
&lt;br /&gt;
This page is for organizing GNUstep's participation in the event. This includes the organization of a developer meeting&lt;br /&gt;
the Friday before FOSDEM.&lt;br /&gt;
&lt;br /&gt;
== Organizer(s) ==&lt;br /&gt;
&lt;br /&gt;
* Lars Sonchocky-Helldorf (lars dot sonchocky dash helldorf at hamburg dot de)&lt;br /&gt;
* is somebody else interested in lending me a hand?&lt;br /&gt;
&lt;br /&gt;
== Who will attend FOSDEM ==&lt;br /&gt;
&lt;br /&gt;
One of the main reasons people attend the event is that you can meet, and talk directly to, other developers, whom you would otherwise meet only virtually (on mailing lists, emails, newsgroups, IRC etc.). We expect many lead developers and contributors to be present, so if you have never met them, you shouldn't miss this occasion!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following is a list of people of GNUstep fame who have confirmed (or denied) that they will be able to join us at the GNUstep meeting at FOSDEM 2012:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Friday&lt;br /&gt;
3. Feb&lt;br /&gt;
! Saturday&lt;br /&gt;
4. Feb&lt;br /&gt;
! Sunday&lt;br /&gt;
5. Feb&lt;br /&gt;
! Monday&lt;br /&gt;
6. Feb&lt;br /&gt;
! Special comments / topics&lt;br /&gt;
! Hotel&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Lars S.-Helldorf ||| Yes || Yes || Yes || No || event organizer || Argus&lt;br /&gt;
|-&lt;br /&gt;
| Nikolaus Schaller || No || Yes || Yes || No  || QuantumSTEP + Openmoko / GTA04.org || Argus&lt;br /&gt;
|-&lt;br /&gt;
| Quentin Mathé  || Yes || Yes || Yes ||  No || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| Niels Grewe  || || || ||   || Étoilé, DBusKit || &lt;br /&gt;
|-&lt;br /&gt;
| David Chisnall  || || || ||   || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| Sebastian Reitenbach || Yes || Yes || Yes || No || OpenBSD packages, GAP, OpenGroupware || Hotel The Moon&lt;br /&gt;
|-&lt;br /&gt;
| Nicolas Roard  || || || || ?  || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| Fred Kiefer  || Yes || Yes || Yes || No  || GNUstep (GUI, Cairo) || Hotel Aqua&lt;br /&gt;
|-&lt;br /&gt;
| Riccardo Mottola  || || || || ?  || GNUstep, GAP || &lt;br /&gt;
|-&lt;br /&gt;
| Gerold Rupprecht || ? || Yes || Yes || ?  || GNUstep || &lt;br /&gt;
|-&lt;br /&gt;
| Richard Frith-Macdonald || Late  ||  Yes || Yes || No  || GNUstep || Argus&lt;br /&gt;
|-&lt;br /&gt;
| N.N. ||  t.b.d. || t.b.d. || t.b.d. || t.b.d. || t.b.d. ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dev-Room Presentations and Events ==&lt;br /&gt;
&lt;br /&gt;
The room at out disposal will be '''AW1.126''' (capacity is 72 seats (this is more than twice of what we had the years ago); in the building &amp;quot;AW&amp;quot;),&lt;br /&gt;
-- on '''Saturday 2011-02-04''' from (to be confirmed) '''11:00''' to '''19:00'''&lt;br /&gt;
&lt;br /&gt;
=== Call for participation ===&lt;br /&gt;
&lt;br /&gt;
We are looking for people who want to give a talk, moderate a discussion, hold a hand ons (practice) / hacking session or organize a code sprint. Please send your proposals to [mailto:discuss-gnustep@gnu.org GNUstep discussion list], the organizers mentioned [[FOSDEM_2011#Organizers|above]] or - if you've got a wiki account - enter them right [http://wiki.gnustep.org/index.php?title=FOSDEM_2011&amp;amp;action=edit&amp;amp;section=6 here]. At first a title, a short summary, proposed duration and a preffered time slot would do, so we can start scheduling as soon as possible.&lt;br /&gt;
&lt;br /&gt;
'''deadline for filing is t.b.d., deadline for the papers is t.b.d.'''&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The FOSDEM organizers strongly recommend a '''granularity of 15 minute blocks'''. So if a talk is just 15 (lightning talk), 30 or 45 minutes long - fine! But we should have 15 minutes breaks between the talks so that the visitors have enough time to find a seat and the presenters have enough time to get ready.&lt;br /&gt;
&lt;br /&gt;
=== List of submitted talk/discussion/session proposals ===&lt;br /&gt;
&lt;br /&gt;
Please submit through *[mailto:discuss-gnustep@gnu.org GNUstep discussion list]* until *2011-12-31*&lt;br /&gt;
&lt;br /&gt;
=== Wishlist for talks/discussions/sessions ===&lt;br /&gt;
&lt;br /&gt;
Enter talks/discussions/sessions here you would be interested in.&lt;br /&gt;
&lt;br /&gt;
* GNUstep Progresses and Roadmap&lt;br /&gt;
* CoreBase and CoreGraphics/Opal in GNUstep&lt;br /&gt;
&lt;br /&gt;
=== Schedule ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
!width=&amp;quot;65pt&amp;quot;| Time Slot !! width=&amp;quot;130pt&amp;quot;| Author !! width=&amp;quot;360pt&amp;quot;| Title / Abstract !! width=&amp;quot;130pt&amp;quot;| Kind !! width=&amp;quot;40pt&amp;quot; | Slides&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; style=&amp;quot;background:#ddd;&amp;quot; | '''Saturday, Feb 04, 2012'''&lt;br /&gt;
|-&lt;br /&gt;
| 11:00 - 11:15 || GNUstep Developers || '''GNUstep Developer's Meeting'''&lt;br /&gt;
&lt;br /&gt;
Meet the GNUstep developers face to face, discuss current afairs of GNUstep, share news about the latest development and plans on GNUstep, improve collaboration between the several GNUstep related projects&lt;br /&gt;
&lt;br /&gt;
|| meeting, discussion || -&lt;br /&gt;
|-&lt;br /&gt;
| 11:15 - 11:45 || Sebastian Reitenbach || '''OpenBSD GNUstep ports update'''&lt;br /&gt;
&lt;br /&gt;
Topics covered:&lt;br /&gt;
* Why the hell on OpenBSD&lt;br /&gt;
* How easy it is to create a new GNUstep port&lt;br /&gt;
* What's new compared to last year&lt;br /&gt;
* Problems I encountered over the last year&lt;br /&gt;
* Goals for the next year&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 12:00 - 12:30 || Sebastian Reitenbach || '''OpenGroupware - Phoenix from the ashes'''&lt;br /&gt;
&lt;br /&gt;
Topics covered:&lt;br /&gt;
* short history of OpenGroupware, overview of its features&lt;br /&gt;
* porting effort from gnustep-make 1 to gnustep-make 2, and from libFoundation to gnustep-base&lt;br /&gt;
* OpenGroupware is now based on SOPE fork from the SOGo team, lots of bugs in SOPE got fixed&lt;br /&gt;
* talk about some new features&lt;br /&gt;
* OpenGroupware-5.5rc1 (I hope to agree with Adam to release it even before the FOSDEM)&lt;br /&gt;
* short Demo&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 12:45 - 13:30 || Sebastian Reitenbach || '''A GNUstep Applications Overview'''&lt;br /&gt;
&lt;br /&gt;
* it will feature GAP (GNUstep Application Project)&lt;br /&gt;
** introduce the project, and its goals&lt;br /&gt;
** cover some of the applications found there&lt;br /&gt;
* it will also include the usual known suspects: GWorkspace, ProjectCenter, Gorm, ...&lt;br /&gt;
* it will also cover some other nice GNUstep applications found scattered all over the web, for example:&lt;br /&gt;
** CDPlayer, Burn, GNUMail, SimpleAgenda, Zipper and more&lt;br /&gt;
* show/demonstrate some of the applications live&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 13:45 - 14:15 || Fred Kiefer || '''GNUstep GUI: Recent Developments - Graphics and Text'''&lt;br /&gt;
&lt;br /&gt;
* New features in the text system this year&lt;br /&gt;
* Resolution Independence/scale factor support&lt;br /&gt;
* Other graphics improvements&lt;br /&gt;
* Demo&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 14:30 - 15:00 || Quentin Mathé || '''Étoilé: What has been done over the past year and what's next?'''&lt;br /&gt;
&lt;br /&gt;
In this presentation, we will take a look at the Étoilé progresses over the past year. We will summarize our work on both our core frameworks and GNUstep. We will also discuss the project status in a broader way, and what can be expected in 2012.&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 15:15 - 16:00 || Richard Frith-Macdonald || '''Enterprise Control, Configuration and Logging/Alarming using GNUstep-base'''&lt;br /&gt;
&lt;br /&gt;
1. An overview of the problem of dealing with multiple server processes on multiple hosts and sites.  How to provide fault tolerance and how to scale up without losing control.&lt;br /&gt;
2. A discussion of the use of the basic technologies such as Distributed Objects and property lists etc to implement these systems.&lt;br /&gt;
3. Control ... how we start/stop server processes, prevent duplication of processes, support automated restart, and query the state of processes.&lt;br /&gt;
4. Configuration ... how we provide specific configuration to each process under central control, yet allow those servers to operate independently.&lt;br /&gt;
5. Logging/Alarming ... how we provide and manage simple and consistent audit/debug logging facilities for server processes, and how we integrate with SNMP.&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 16:15 - 17:00 || Quentin Mathé || '''CoreObject : An Object Store built for Revision Control and Desktop Environment Needs'''&lt;br /&gt;
&lt;br /&gt;
This talk will introduce CoreObject, an Object Store built from the ground up to support features such as selective undo, live collaboration without locking, branching, etc. not found in Object-Oriented Databases until now. CoreObject is not based on Operational Transformations but a new Object Graph Diffing and Merging model, that makes possible to integrate these revision control features into a database and ensure they scale to large object histories.&lt;br /&gt;
From a desktop environment perspective, revision tracks are available to create interactive views on the history and support multiple undo/redo granularity levels. CoreObject also comes with a collection of reusable object models to solve recurrent use cases in document management, organization and edition.&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 17:15 - 18:00 || David Chisnall || '''New Features of Objective-C'''&lt;br /&gt;
&lt;br /&gt;
With iOS 5 and OS X 10.7, Apple introduced a number of new Objective-C features.  With the release of version 1.6 of the GNUstep Objective-C runtime and version 3.0 of clang these are now all available to GNUstep developers.  The new features include better data hiding, automatic reference counting, and a number of other features.  This talk will cover these features, as well as some of the extensions beyond Apple's version and the improvements in Objective-C performance since FOSDEM last year.&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 18:15 - 19:00 || Dr. H. Nikolaus Schaller || '''QuantumSTEP: new frameworks and future directions'''&lt;br /&gt;
&lt;br /&gt;
QuantumSTEP is a technology study framework and application&lt;br /&gt;
suite that is partially based on GNUstep. It aims at consequently&lt;br /&gt;
using Objective-C on embedded and portable devices. This talk&lt;br /&gt;
describes the latest additions to the frameworks: CoreLocation,&lt;br /&gt;
MKMapKit, CoreWLAN, CoreTelephony and demonstrates how&lt;br /&gt;
they work on the new GTA04 hardware.&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Suggested Hotels ==&lt;br /&gt;
&lt;br /&gt;
last year Sebastian Reitenbach and Nikolaus Schaller have booked here. Ask them on the mailing list on their Experience:&lt;br /&gt;
&lt;br /&gt;
=== Louise Hotel ===&lt;br /&gt;
* 40, rue Veydt&lt;br /&gt;
* 1050 Bruxelles&lt;br /&gt;
* http://www.louisehotel.com/&lt;br /&gt;
* Sebastian Reitenbach says:&lt;br /&gt;
** book via: http://www.hotelreservierungen.de , which is cheaper than the offer on the hotel site. The reservation includes breakfast.&lt;br /&gt;
** free WiFi is available&lt;br /&gt;
** it costs only about half the price of the Argus hotel from last year. &lt;br /&gt;
** Its near avenue louise, only a foot walk away from the university campus.&lt;br /&gt;
&lt;br /&gt;
NOTE Dec 2011: appears to have changed owner and is no longer listed in online booking portals&lt;br /&gt;
&lt;br /&gt;
=== Argus Hotel Brussels (Belguim) (good experiences from past years) ===&lt;br /&gt;
*6, Rue Capitaine Crespel &lt;br /&gt;
*B-1050 Bruxelles, Belgique&lt;br /&gt;
*Tel +32 2 514 07 70&lt;br /&gt;
*Fax +32 2  514 12 22&lt;br /&gt;
*reception@hotel-argus.be&lt;br /&gt;
*Rate: 65/night - but you have to ask for the 'GNUstep/FOSDEM' discount&lt;br /&gt;
*has free Internet ;-)&lt;br /&gt;
&lt;br /&gt;
Normal prices are here:&lt;br /&gt;
&lt;br /&gt;
http://www.hotel-argus.be/ukrates.htm&lt;br /&gt;
&lt;br /&gt;
but there are discounts available:&lt;br /&gt;
&lt;br /&gt;
http://www.hotel-argus.be/ukpromotions.htm&lt;br /&gt;
&lt;br /&gt;
and we'll ask for even better discounts for a group booking (we need to know who's will be there for that!)&lt;br /&gt;
&lt;br /&gt;
Some people booked that hotel in the last years: Nicolas, Marcus, Helge ,Lars.&lt;br /&gt;
&lt;br /&gt;
=== Sun Hotel in Brussels (Belguim)  (not recommended) ===&lt;br /&gt;
*Rue du Berger, 38 &lt;br /&gt;
*1050 Brussels (near Porte de Namur)&lt;br /&gt;
*Tel : +32(0)2 511 21 19&lt;br /&gt;
*Fax : +32(0)2 512 32 71&lt;br /&gt;
*sunhotel@skynet.be&lt;br /&gt;
*www.hotels-belgium.com/brussel-al/sunhotel.htm&lt;br /&gt;
&lt;br /&gt;
*50 EUR/Single room with breakfast&lt;br /&gt;
*22 rooms total&lt;br /&gt;
*3km distance to University&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
has internet access, will make breakfast room available for developers after 11:00 am. Two electrical plugs for breakfast room, so need extension cord with  additional plugs. Ask for first or second floor rooms close to reception for good wifi connections.&lt;br /&gt;
&lt;br /&gt;
=== Hotel Sabina in Brussels (Belgium)===&lt;br /&gt;
*Rue du Nord 78&lt;br /&gt;
*B-1000 Brussels&lt;br /&gt;
*Tel: (32)2 218 26 37&lt;br /&gt;
*Fax: (32)2 219 32 39&lt;br /&gt;
(very good rating by visitors)&lt;br /&gt;
63 EUR/Single with breakfast&lt;br /&gt;
8 single only + 16 double rooms&lt;br /&gt;
4,2km distance&lt;br /&gt;
&lt;br /&gt;
=== Hotel Mozart in Bruxelles (Belgium)===&lt;br /&gt;
*Rue Marché aux Fromages 23&lt;br /&gt;
*B-1000 Brussels&lt;br /&gt;
*Tel +32 2 502 66 61&lt;br /&gt;
*Fax +32 2 502 77 58&lt;br /&gt;
*Email Hotel.mozart@skynet.be&lt;br /&gt;
http://www.hotels-belgium.com/brussel-center/mozart.htm&lt;br /&gt;
&lt;br /&gt;
70 EUR/Single room NO breakfast&lt;br /&gt;
WLAN&lt;br /&gt;
&lt;br /&gt;
51 rooms total&lt;br /&gt;
4,2km distance&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are open to other suggestions. Please take into account distance to the University and access to public transportation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
A quick introduction to Brussels:&lt;br /&gt;
http://wikitravel.org/en/Brussel&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:FOSDEM]]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background: #ff958e;&amp;quot;&lt;br /&gt;
| If you want to participate, you need to [[Special:Userlogin|create an account]] and send a mail with your user name to ''&amp;lt;tt&amp;gt;webmasters [AT] gnustep.org&amp;lt;/tt&amp;gt;'' to request write-access. We are sorry for the inconvenience, but this procedure has become necessary to prevent SPAM'ing of this site.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=GNUstep_release_policy&amp;diff=6257</id>
		<title>GNUstep release policy</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=GNUstep_release_policy&amp;diff=6257"/>
		<updated>2012-01-31T12:23:57Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Release Version Numbering scheme'''&lt;br /&gt;
&lt;br /&gt;
Releases are named by their major.minor.subminor version numbering scheme for releases and for naming tags in svn. eg. when making a release of version 1.2.3 of package foo the svn tag is foo-1_2_3.  The  library (SONAME) versions is changed when the major or minor version number of a release changes, but not the subminor number.  So release 1.2.3 of package foo implies library libfoo.so.1.2 as does release 1.2.4.&lt;br /&gt;
&lt;br /&gt;
'''Policy on changing version numbers''' &lt;br /&gt;
&lt;br /&gt;
The minor version number is changed (and therefore the library version) when we break backward compatibility .  This will mean that most releases we make will only change the subminor number rather than the minor number even where we have added substantial new features.  While we realise that this has a problem with public perception being that the project is dead because it never makes 'big' new releases, we think it's better to address the problem with improved publicity of what's in the new release rather than by hoping that a big version number change will do it for us.  On the rare occasion where we want a big public change, we would change the major version number (and of course SONAME).&lt;br /&gt;
&lt;br /&gt;
'''Release stability policy''' &lt;br /&gt;
&lt;br /&gt;
We advertise a 'stable' release ''every'' time we break backward compatibility.  We no longer advertise 'unstable/development' releases. Eg. if the last release was 1.3.24 then we release 1.4.0 as 'stable' and start working on 1.4.1 in subversion trunk.  All releases (if any) in the 1.4 family would then be considered either bugfix or development releases. &lt;br /&gt;
&lt;br /&gt;
'''Standard release procedure (NOT backward compatible with previous version - new stable release)''' &lt;br /&gt;
* bump the minor version number and SONAME and reset the subminor number to zero&lt;br /&gt;
* tag the version for release using the name-major_minor_subminor convention.&lt;br /&gt;
* copy the version for release to form a new 'stable' branch&lt;br /&gt;
* make tarballs and installation packages &lt;br /&gt;
* put release on ftp site and publicise&lt;br /&gt;
* set the subminor version in trunk to 1&lt;br /&gt;
&lt;br /&gt;
'''Standard release procedure (backward compatible with previous version''' &lt;br /&gt;
* tag the version for release using the name_major_minor_subminor convention.&lt;br /&gt;
* copy the version for release to form a new 'stable' branch&lt;br /&gt;
* make tarballs and installation packages &lt;br /&gt;
* bump the subminor version number in the trunk&lt;br /&gt;
* put release on ftp site and publicise&lt;br /&gt;
* increment the subminor version in trunk to 1&lt;br /&gt;
&lt;br /&gt;
'''Bugfix release procedure (on stable branch)''' &lt;br /&gt;
* apply bugfixes to the 'stable' branch &lt;br /&gt;
* set the subminor version number in the 'stable' branch to the current value in trunk&lt;br /&gt;
* increment the subminor version number in trunk&lt;br /&gt;
* tag the version for release using the name_major_minor_subminor convention.&lt;br /&gt;
* make tarballs and installation packages &lt;br /&gt;
* put on ftp site and publicise &lt;br /&gt;
&lt;br /&gt;
[[Category:Project procedures]]&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=FOSDEM_2012&amp;diff=6245</id>
		<title>FOSDEM 2012</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=FOSDEM_2012&amp;diff=6245"/>
		<updated>2012-01-16T14:54:44Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* Who will attend FOSDEM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== FOSDEM 2012 Announcement ==&lt;br /&gt;
&lt;br /&gt;
[http://fosdem.org/2012/ FOSDEM 2012] will take place at at the '''Université Libre de Bruxelles''', in '''Brussels''' on '''Saturday 4 and Sunday 5 February 2012'''.&lt;br /&gt;
&lt;br /&gt;
This page is for organizing GNUstep's participation in the event. This includes the organization of a developer meeting&lt;br /&gt;
the Friday before FOSDEM.&lt;br /&gt;
&lt;br /&gt;
== Organizer(s) ==&lt;br /&gt;
&lt;br /&gt;
* Lars Sonchocky-Helldorf (lars dot sonchocky dash helldorf at hamburg dot de)&lt;br /&gt;
* is somebody else interested in lending me a hand?&lt;br /&gt;
&lt;br /&gt;
== Who will attend FOSDEM ==&lt;br /&gt;
&lt;br /&gt;
One of the main reasons people attend the event is that you can meet, and talk directly to, other developers, whom you would otherwise meet only virtually (on mailing lists, emails, newsgroups, IRC etc.). We expect many lead developers and contributors to be present, so if you have never met them, you shouldn't miss this occasion!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following is a list of people of GNUstep fame who have confirmed (or denied) that they will be able to join us at the GNUstep meeting at FOSDEM 2012:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Friday&lt;br /&gt;
3. Feb&lt;br /&gt;
! Saturday&lt;br /&gt;
4. Feb&lt;br /&gt;
! Sunday&lt;br /&gt;
5. Feb&lt;br /&gt;
! Monday&lt;br /&gt;
6. Feb&lt;br /&gt;
! Special comments / topics&lt;br /&gt;
! Hotel&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Lars S.-Helldorf ||| Yes || Yes || Yes || No || event organizer || Argus&lt;br /&gt;
|-&lt;br /&gt;
| Nikolaus Schaller || No || Yes || Yes || No  || QuantumSTEP + Openmoko / GTA04.org || Argus&lt;br /&gt;
|-&lt;br /&gt;
| Quentin Mathé  || Yes || Yes || Yes ||  No || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| Niels Grewe  || || || ||   || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| David Chisnall  || || || ||   || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| Sebastian Reitenbach || Yes || Yes || Yes || No || OpenBSD packages || Hotel The Moon&lt;br /&gt;
|-&lt;br /&gt;
| Nicolas Roard  || || || || ?  || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| Fred Kiefer  || || || || ?  || GNUstep (GUI, Cairo) || &lt;br /&gt;
|-&lt;br /&gt;
| Riccardo Mottola  || || || || ?  || GNUstep, GAP || &lt;br /&gt;
|-&lt;br /&gt;
| Gerold Rupprecht || || || || ?  || GNUstep || &lt;br /&gt;
|-&lt;br /&gt;
| Richard Frith-Macdonald || Yes  ||  Yes || Yes || No  || GNUstep || Argus&lt;br /&gt;
|-&lt;br /&gt;
| N.N. ||  t.b.d. || t.b.d. || t.b.d. || t.b.d. || t.b.d. ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dev-Room Presentations and Events ==&lt;br /&gt;
&lt;br /&gt;
The room at out disposal will be '''AW1.126''' (capacity is 72 seats (this is more than twice of what we had the years ago); in the building &amp;quot;AW&amp;quot;),&lt;br /&gt;
-- on '''Saturday 2011-02-04''' from (to be confirmed) '''11:00''' to '''19:00'''&lt;br /&gt;
&lt;br /&gt;
=== Call for participation ===&lt;br /&gt;
&lt;br /&gt;
We are looking for people who want to give a talk, moderate a discussion, hold a hand ons (practice) / hacking session or organize a code sprint. Please send your proposals to [mailto:discuss-gnustep@gnu.org GNUstep discussion list], the organizers mentioned [[FOSDEM_2011#Organizers|above]] or - if you've got a wiki account - enter them right [http://wiki.gnustep.org/index.php?title=FOSDEM_2011&amp;amp;action=edit&amp;amp;section=6 here]. At first a title, a short summary, proposed duration and a preffered time slot would do, so we can start scheduling as soon as possible.&lt;br /&gt;
&lt;br /&gt;
'''deadline for filing is t.b.d., deadline for the papers is t.b.d.'''&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The FOSDEM organizers strongly recommend a '''granularity of 15 minute blocks'''. So if a talk is just 15 (lightning talk), 30 or 45 minutes long - fine! But we should have 15 minutes breaks between the talks so that the visitors have enough time to find a seat and the presenters have enough time to get ready.&lt;br /&gt;
&lt;br /&gt;
=== List of submitted talk/discussion/session proposals ===&lt;br /&gt;
&lt;br /&gt;
Please submit through *[mailto:discuss-gnustep@gnu.org GNUstep discussion list]* until *2011-12-31*&lt;br /&gt;
&lt;br /&gt;
=== Wishlist for talks/discussions/sessions ===&lt;br /&gt;
&lt;br /&gt;
Enter talks/discussions/sessions here you would be interested in.&lt;br /&gt;
&lt;br /&gt;
* GNUstep Progresses and Roadmap&lt;br /&gt;
* CoreBase and CoreGraphics/Opal in GNUstep&lt;br /&gt;
&lt;br /&gt;
=== Schedule ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
!width=&amp;quot;65pt&amp;quot;| Time Slot !! width=&amp;quot;130pt&amp;quot;| Author !! width=&amp;quot;360pt&amp;quot;| Title / Abstract !! width=&amp;quot;130pt&amp;quot;| Kind !! width=&amp;quot;40pt&amp;quot; | Slides&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; style=&amp;quot;background:#ddd;&amp;quot; | '''Saturday, Feb 04, 2012'''&lt;br /&gt;
|-&lt;br /&gt;
| 10:30 - 11:00 || GNUstep Developers || '''GNUstep Developer's Meeting'''&lt;br /&gt;
&lt;br /&gt;
Meet the GNUstep developers face to face, discuss current afairs of GNUstep, share news about the latest development and plans on GNUstep, improve collaboration between the several GNUstep related projects&lt;br /&gt;
&lt;br /&gt;
|| meeting, discussion || -&lt;br /&gt;
|-&lt;br /&gt;
| 11:00 - 11:30 || Sebastian Reitenbach || '''OpenBSD GNUstep ports update'''&lt;br /&gt;
&lt;br /&gt;
Topics covered:&lt;br /&gt;
* Why the hell on OpenBSD&lt;br /&gt;
* How easy it is to create a new GNUstep port&lt;br /&gt;
* What's new compared to last year&lt;br /&gt;
* Problems I encountered over the last year&lt;br /&gt;
* Goals for the next year&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 11:45 - 12:15 || Sebastian Reitenbach || '''OpenGroupware - Phoenix from the ashes'''&lt;br /&gt;
&lt;br /&gt;
Topics covered:&lt;br /&gt;
* short history of OpenGroupware, overview of its features&lt;br /&gt;
* porting effort from gnustep-make 1 to gnustep-make 2, and from libFoundation to gnustep-base&lt;br /&gt;
* OpenGroupware is now based on SOPE fork from the SOGo team, lots of bugs in SOPE got fixed&lt;br /&gt;
* talk about some new features&lt;br /&gt;
* OpenGroupware-5.5rc1 (I hope to agree with Adam to release it even before the FOSDEM)&lt;br /&gt;
* short Demo&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 12:30 - 13:15 || Sebastian Reitenbach || '''A GNUstep Applications Overview'''&lt;br /&gt;
&lt;br /&gt;
* it will feature GAP (GNUstep Application Project)&lt;br /&gt;
** introduce the project, and its goals&lt;br /&gt;
** cover some of the applications found there&lt;br /&gt;
* it will also include the usual known suspects: GWorkspace, ProjectCenter, Gorm, ...&lt;br /&gt;
* it will also cover some other nice GNUstep applications found scattered all over the web, for example:&lt;br /&gt;
** CDPlayer, Burn, GNUMail, SimpleAgenda, Zipper and more&lt;br /&gt;
* show/demonstrate some of the applications live&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 13:30 - 14:00 || Quentin Mathé || '''Étoilé: What has been done over the past year and what's next?'''&lt;br /&gt;
&lt;br /&gt;
In this presentation, we will take a look at the Étoilé progresses over the past year. We will summarize our work on both our core frameworks and GNUstep. We will also discuss the project status in a broader way, and what can be expected in 2012.&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 14:15 - 15:00 || Richard Frith-Macdonald || '''Enterprise Control, Configuration and Logging/Alarming using GNUstep-base'''&lt;br /&gt;
&lt;br /&gt;
1. An overview of the problem of dealing with multiple server processes on multiple hosts and sites.  How to provide fault tolerance and how to scale up without losing control.&lt;br /&gt;
2. A discussion of the use of the basic technologies such as Distributed Objects and property lists etc to implement these systems.&lt;br /&gt;
3. Control ... how we start/stop server processes, prevent duplication of processes, support automated restart, and query the state of processes.&lt;br /&gt;
4. Configuration ... how we provide specific configuration to each process under central control, yet allow those servers to operate independently.&lt;br /&gt;
5. Logging/Alarming ... how we provide and manage simple and consistent audit/debug logging facilities for server processes, and how we integrate with SNMP.&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 15:15 - 16:00 || Quentin Mathé || '''CoreObject : An Object Store built for Revision Control and Desktop Environment Needs'''&lt;br /&gt;
&lt;br /&gt;
''Short description to be written''&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 16:15 - 17:15 || David Chisnall || '''New Features of Objective-C'''&lt;br /&gt;
&lt;br /&gt;
With iOS 5 and OS X 10.7, Apple introduced a number of new Objective-C features.  With the release of version 1.6 of the GNUstep Objective-C runtime and version 3.0 of clang these are now all available to GNUstep developers.  The new features include better data hiding, automatic reference counting, and a number of other features.  This talk will cover these features, as well as some of the extensions beyond Apple's version and the improvements in Objective-C performance since FOSDEM last year.&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| xx:xx - xx:xx || t.b.d. who is holding the event || '''t.b.d. The Title of the Event'''&lt;br /&gt;
&lt;br /&gt;
t.b.d. some longer description here&lt;br /&gt;
&lt;br /&gt;
|| t.b.d. what is it (talk, discussion, lecture, demo ...) || t.b.d. link to slides&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Suggested Hotels ==&lt;br /&gt;
&lt;br /&gt;
last year Sebastian Reitenbach and Nikolaus Schaller have booked here. Ask them on the mailing list on their Experience:&lt;br /&gt;
&lt;br /&gt;
=== Louise Hotel ===&lt;br /&gt;
* 40, rue Veydt&lt;br /&gt;
* 1050 Bruxelles&lt;br /&gt;
* http://www.louisehotel.com/&lt;br /&gt;
* Sebastian Reitenbach says:&lt;br /&gt;
** book via: http://www.hotelreservierungen.de , which is cheaper than the offer on the hotel site. The reservation includes breakfast.&lt;br /&gt;
** free WiFi is available&lt;br /&gt;
** it costs only about half the price of the Argus hotel from last year. &lt;br /&gt;
** Its near avenue louise, only a foot walk away from the university campus.&lt;br /&gt;
&lt;br /&gt;
NOTE Dec 2011: appears to have changed owner and is no longer listed in online booking portals&lt;br /&gt;
&lt;br /&gt;
=== Argus Hotel Brussels (Belguim) (good experiences from past years) ===&lt;br /&gt;
*6, Rue Capitaine Crespel &lt;br /&gt;
*B-1050 Bruxelles, Belgique&lt;br /&gt;
*Tel +32 2 514 07 70&lt;br /&gt;
*Fax +32 2  514 12 22&lt;br /&gt;
*reception@hotel-argus.be&lt;br /&gt;
*Rate: 65/night - but you have to ask for the 'GNUstep/FOSDEM' discount&lt;br /&gt;
*has free Internet ;-)&lt;br /&gt;
&lt;br /&gt;
Normal prices are here:&lt;br /&gt;
&lt;br /&gt;
http://www.hotel-argus.be/ukrates.htm&lt;br /&gt;
&lt;br /&gt;
but there are discounts available:&lt;br /&gt;
&lt;br /&gt;
http://www.hotel-argus.be/ukpromotions.htm&lt;br /&gt;
&lt;br /&gt;
and we'll ask for even better discounts for a group booking (we need to know who's will be there for that!)&lt;br /&gt;
&lt;br /&gt;
Some people booked that hotel in the last years: Nicolas, Marcus, Helge ,Lars.&lt;br /&gt;
&lt;br /&gt;
=== Sun Hotel in Brussels (Belguim)  (not recommended) ===&lt;br /&gt;
*Rue du Berger, 38 &lt;br /&gt;
*1050 Brussels (near Porte de Namur)&lt;br /&gt;
*Tel : +32(0)2 511 21 19&lt;br /&gt;
*Fax : +32(0)2 512 32 71&lt;br /&gt;
*sunhotel@skynet.be&lt;br /&gt;
*www.hotels-belgium.com/brussel-al/sunhotel.htm&lt;br /&gt;
&lt;br /&gt;
*50 EUR/Single room with breakfast&lt;br /&gt;
*22 rooms total&lt;br /&gt;
*3km distance to University&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
has internet access, will make breakfast room available for developers after 11:00 am. Two electrical plugs for breakfast room, so need extension cord with  additional plugs. Ask for first or second floor rooms close to reception for good wifi connections.&lt;br /&gt;
&lt;br /&gt;
=== Hotel Sabina in Brussels (Belgium)===&lt;br /&gt;
*Rue du Nord 78&lt;br /&gt;
*B-1000 Brussels&lt;br /&gt;
*Tel: (32)2 218 26 37&lt;br /&gt;
*Fax: (32)2 219 32 39&lt;br /&gt;
(very good rating by visitors)&lt;br /&gt;
63 EUR/Single with breakfast&lt;br /&gt;
8 single only + 16 double rooms&lt;br /&gt;
4,2km distance&lt;br /&gt;
&lt;br /&gt;
=== Hotel Mozart in Bruxelles (Belgium)===&lt;br /&gt;
*Rue Marché aux Fromages 23&lt;br /&gt;
*B-1000 Brussels&lt;br /&gt;
*Tel +32 2 502 66 61&lt;br /&gt;
*Fax +32 2 502 77 58&lt;br /&gt;
*Email Hotel.mozart@skynet.be&lt;br /&gt;
http://www.hotels-belgium.com/brussel-center/mozart.htm&lt;br /&gt;
&lt;br /&gt;
70 EUR/Single room NO breakfast&lt;br /&gt;
WLAN&lt;br /&gt;
&lt;br /&gt;
51 rooms total&lt;br /&gt;
4,2km distance&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are open to other suggestions. Please take into account distance to the University and access to public transportation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
A quick introduction to Brussels:&lt;br /&gt;
http://wikitravel.org/en/Brussel&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:FOSDEM]]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background: #ff958e;&amp;quot;&lt;br /&gt;
| If you want to participate, you need to [[Special:Userlogin|create an account]] and send a mail with your user name to ''&amp;lt;tt&amp;gt;webmasters [AT] gnustep.org&amp;lt;/tt&amp;gt;'' to request write-access. We are sorry for the inconvenience, but this procedure has become necessary to prevent SPAM'ing of this site.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=FOSDEM_2012&amp;diff=6244</id>
		<title>FOSDEM 2012</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=FOSDEM_2012&amp;diff=6244"/>
		<updated>2012-01-16T14:53:28Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* Who will attend FOSDEM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== FOSDEM 2012 Announcement ==&lt;br /&gt;
&lt;br /&gt;
[http://fosdem.org/2012/ FOSDEM 2012] will take place at at the '''Université Libre de Bruxelles''', in '''Brussels''' on '''Saturday 4 and Sunday 5 February 2012'''.&lt;br /&gt;
&lt;br /&gt;
This page is for organizing GNUstep's participation in the event. This includes the organization of a developer meeting&lt;br /&gt;
the Friday before FOSDEM.&lt;br /&gt;
&lt;br /&gt;
== Organizer(s) ==&lt;br /&gt;
&lt;br /&gt;
* Lars Sonchocky-Helldorf (lars dot sonchocky dash helldorf at hamburg dot de)&lt;br /&gt;
* is somebody else interested in lending me a hand?&lt;br /&gt;
&lt;br /&gt;
== Who will attend FOSDEM ==&lt;br /&gt;
&lt;br /&gt;
One of the main reasons people attend the event is that you can meet, and talk directly to, other developers, whom you would otherwise meet only virtually (on mailing lists, emails, newsgroups, IRC etc.). We expect many lead developers and contributors to be present, so if you have never met them, you shouldn't miss this occasion!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following is a list of people of GNUstep fame who have confirmed (or denied) that they will be able to join us at the GNUstep meeting at FOSDEM 2012:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Friday&lt;br /&gt;
3. Feb&lt;br /&gt;
! Saturday&lt;br /&gt;
4. Feb&lt;br /&gt;
! Sunday&lt;br /&gt;
5. Feb&lt;br /&gt;
! Monday&lt;br /&gt;
6. Feb&lt;br /&gt;
! Special comments / topics&lt;br /&gt;
! Hotel&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Lars S.-Helldorf ||| Yes || Yes || Yes || No || event organizer || Argus&lt;br /&gt;
|-&lt;br /&gt;
| Nikolaus Schaller || No || Yes || Yes || No  || QuantumSTEP + Openmoko / GTA04.org || Argus&lt;br /&gt;
|-&lt;br /&gt;
| Quentin Mathé  || Yes || Yes || Yes ||  No || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| Niels Grewe  || || || ||   || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| David Chisnall  || || || ||   || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| Sebastian Reitenbach || Yes || Yes || Yes || No || OpenBSD packages || Hotel The Moon&lt;br /&gt;
|-&lt;br /&gt;
| Nicolas Roard  || || || || ?  || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| Fred Kiefer  || || || || ?  || GNUstep (GUI, Cairo) || &lt;br /&gt;
|-&lt;br /&gt;
| Riccardo Mottola  || || || || ?  || GNUstep, GAP || &lt;br /&gt;
|-&lt;br /&gt;
| Gerold Rupprecht || || || || ?  || GNUstep || &lt;br /&gt;
|-&lt;br /&gt;
| Richard Frith-Macdonald || || || || ?  || GNUstep || Argus&lt;br /&gt;
|-&lt;br /&gt;
| N.N. ||  t.b.d. || t.b.d. || t.b.d. || t.b.d. || t.b.d. ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dev-Room Presentations and Events ==&lt;br /&gt;
&lt;br /&gt;
The room at out disposal will be '''AW1.126''' (capacity is 72 seats (this is more than twice of what we had the years ago); in the building &amp;quot;AW&amp;quot;),&lt;br /&gt;
-- on '''Saturday 2011-02-04''' from (to be confirmed) '''11:00''' to '''19:00'''&lt;br /&gt;
&lt;br /&gt;
=== Call for participation ===&lt;br /&gt;
&lt;br /&gt;
We are looking for people who want to give a talk, moderate a discussion, hold a hand ons (practice) / hacking session or organize a code sprint. Please send your proposals to [mailto:discuss-gnustep@gnu.org GNUstep discussion list], the organizers mentioned [[FOSDEM_2011#Organizers|above]] or - if you've got a wiki account - enter them right [http://wiki.gnustep.org/index.php?title=FOSDEM_2011&amp;amp;action=edit&amp;amp;section=6 here]. At first a title, a short summary, proposed duration and a preffered time slot would do, so we can start scheduling as soon as possible.&lt;br /&gt;
&lt;br /&gt;
'''deadline for filing is t.b.d., deadline for the papers is t.b.d.'''&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The FOSDEM organizers strongly recommend a '''granularity of 15 minute blocks'''. So if a talk is just 15 (lightning talk), 30 or 45 minutes long - fine! But we should have 15 minutes breaks between the talks so that the visitors have enough time to find a seat and the presenters have enough time to get ready.&lt;br /&gt;
&lt;br /&gt;
=== List of submitted talk/discussion/session proposals ===&lt;br /&gt;
&lt;br /&gt;
Please submit through *[mailto:discuss-gnustep@gnu.org GNUstep discussion list]* until *2011-12-31*&lt;br /&gt;
&lt;br /&gt;
=== Wishlist for talks/discussions/sessions ===&lt;br /&gt;
&lt;br /&gt;
Enter talks/discussions/sessions here you would be interested in.&lt;br /&gt;
&lt;br /&gt;
* GNUstep Progresses and Roadmap&lt;br /&gt;
* CoreBase and CoreGraphics/Opal in GNUstep&lt;br /&gt;
&lt;br /&gt;
=== Schedule ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
!width=&amp;quot;65pt&amp;quot;| Time Slot !! width=&amp;quot;130pt&amp;quot;| Author !! width=&amp;quot;360pt&amp;quot;| Title / Abstract !! width=&amp;quot;130pt&amp;quot;| Kind !! width=&amp;quot;40pt&amp;quot; | Slides&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; style=&amp;quot;background:#ddd;&amp;quot; | '''Saturday, Feb 04, 2012'''&lt;br /&gt;
|-&lt;br /&gt;
| 10:30 - 11:00 || GNUstep Developers || '''GNUstep Developer's Meeting'''&lt;br /&gt;
&lt;br /&gt;
Meet the GNUstep developers face to face, discuss current afairs of GNUstep, share news about the latest development and plans on GNUstep, improve collaboration between the several GNUstep related projects&lt;br /&gt;
&lt;br /&gt;
|| meeting, discussion || -&lt;br /&gt;
|-&lt;br /&gt;
| 11:00 - 11:30 || Sebastian Reitenbach || '''OpenBSD GNUstep ports update'''&lt;br /&gt;
&lt;br /&gt;
Topics covered:&lt;br /&gt;
* Why the hell on OpenBSD&lt;br /&gt;
* How easy it is to create a new GNUstep port&lt;br /&gt;
* What's new compared to last year&lt;br /&gt;
* Problems I encountered over the last year&lt;br /&gt;
* Goals for the next year&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 11:45 - 12:15 || Sebastian Reitenbach || '''OpenGroupware - Phoenix from the ashes'''&lt;br /&gt;
&lt;br /&gt;
Topics covered:&lt;br /&gt;
* short history of OpenGroupware, overview of its features&lt;br /&gt;
* porting effort from gnustep-make 1 to gnustep-make 2, and from libFoundation to gnustep-base&lt;br /&gt;
* OpenGroupware is now based on SOPE fork from the SOGo team, lots of bugs in SOPE got fixed&lt;br /&gt;
* talk about some new features&lt;br /&gt;
* OpenGroupware-5.5rc1 (I hope to agree with Adam to release it even before the FOSDEM)&lt;br /&gt;
* short Demo&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 12:30 - 13:15 || Sebastian Reitenbach || '''A GNUstep Applications Overview'''&lt;br /&gt;
&lt;br /&gt;
* it will feature GAP (GNUstep Application Project)&lt;br /&gt;
** introduce the project, and its goals&lt;br /&gt;
** cover some of the applications found there&lt;br /&gt;
* it will also include the usual known suspects: GWorkspace, ProjectCenter, Gorm, ...&lt;br /&gt;
* it will also cover some other nice GNUstep applications found scattered all over the web, for example:&lt;br /&gt;
** CDPlayer, Burn, GNUMail, SimpleAgenda, Zipper and more&lt;br /&gt;
* show/demonstrate some of the applications live&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 13:30 - 14:00 || Quentin Mathé || '''Étoilé: What has been done over the past year and what's next?'''&lt;br /&gt;
&lt;br /&gt;
In this presentation, we will take a look at the Étoilé progresses over the past year. We will summarize our work on both our core frameworks and GNUstep. We will also discuss the project status in a broader way, and what can be expected in 2012.&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 14:15 - 15:00 || Richard Frith-Macdonald || '''Enterprise Control, Configuration and Logging/Alarming using GNUstep-base'''&lt;br /&gt;
&lt;br /&gt;
1. An overview of the problem of dealing with multiple server processes on multiple hosts and sites.  How to provide fault tolerance and how to scale up without losing control.&lt;br /&gt;
2. A discussion of the use of the basic technologies such as Distributed Objects and property lists etc to implement these systems.&lt;br /&gt;
3. Control ... how we start/stop server processes, prevent duplication of processes, support automated restart, and query the state of processes.&lt;br /&gt;
4. Configuration ... how we provide specific configuration to each process under central control, yet allow those servers to operate independently.&lt;br /&gt;
5. Logging/Alarming ... how we provide and manage simple and consistent audit/debug logging facilities for server processes, and how we integrate with SNMP.&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 15:15 - 16:00 || Quentin Mathé || '''CoreObject : An Object Store built for Revision Control and Desktop Environment Needs'''&lt;br /&gt;
&lt;br /&gt;
''Short description to be written''&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| 16:15 - 17:15 || David Chisnall || '''New Features of Objective-C'''&lt;br /&gt;
&lt;br /&gt;
With iOS 5 and OS X 10.7, Apple introduced a number of new Objective-C features.  With the release of version 1.6 of the GNUstep Objective-C runtime and version 3.0 of clang these are now all available to GNUstep developers.  The new features include better data hiding, automatic reference counting, and a number of other features.  This talk will cover these features, as well as some of the extensions beyond Apple's version and the improvements in Objective-C performance since FOSDEM last year.&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| xx:xx - xx:xx || t.b.d. who is holding the event || '''t.b.d. The Title of the Event'''&lt;br /&gt;
&lt;br /&gt;
t.b.d. some longer description here&lt;br /&gt;
&lt;br /&gt;
|| t.b.d. what is it (talk, discussion, lecture, demo ...) || t.b.d. link to slides&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Suggested Hotels ==&lt;br /&gt;
&lt;br /&gt;
last year Sebastian Reitenbach and Nikolaus Schaller have booked here. Ask them on the mailing list on their Experience:&lt;br /&gt;
&lt;br /&gt;
=== Louise Hotel ===&lt;br /&gt;
* 40, rue Veydt&lt;br /&gt;
* 1050 Bruxelles&lt;br /&gt;
* http://www.louisehotel.com/&lt;br /&gt;
* Sebastian Reitenbach says:&lt;br /&gt;
** book via: http://www.hotelreservierungen.de , which is cheaper than the offer on the hotel site. The reservation includes breakfast.&lt;br /&gt;
** free WiFi is available&lt;br /&gt;
** it costs only about half the price of the Argus hotel from last year. &lt;br /&gt;
** Its near avenue louise, only a foot walk away from the university campus.&lt;br /&gt;
&lt;br /&gt;
NOTE Dec 2011: appears to have changed owner and is no longer listed in online booking portals&lt;br /&gt;
&lt;br /&gt;
=== Argus Hotel Brussels (Belguim) (good experiences from past years) ===&lt;br /&gt;
*6, Rue Capitaine Crespel &lt;br /&gt;
*B-1050 Bruxelles, Belgique&lt;br /&gt;
*Tel +32 2 514 07 70&lt;br /&gt;
*Fax +32 2  514 12 22&lt;br /&gt;
*reception@hotel-argus.be&lt;br /&gt;
*Rate: 65/night - but you have to ask for the 'GNUstep/FOSDEM' discount&lt;br /&gt;
*has free Internet ;-)&lt;br /&gt;
&lt;br /&gt;
Normal prices are here:&lt;br /&gt;
&lt;br /&gt;
http://www.hotel-argus.be/ukrates.htm&lt;br /&gt;
&lt;br /&gt;
but there are discounts available:&lt;br /&gt;
&lt;br /&gt;
http://www.hotel-argus.be/ukpromotions.htm&lt;br /&gt;
&lt;br /&gt;
and we'll ask for even better discounts for a group booking (we need to know who's will be there for that!)&lt;br /&gt;
&lt;br /&gt;
Some people booked that hotel in the last years: Nicolas, Marcus, Helge ,Lars.&lt;br /&gt;
&lt;br /&gt;
=== Sun Hotel in Brussels (Belguim)  (not recommended) ===&lt;br /&gt;
*Rue du Berger, 38 &lt;br /&gt;
*1050 Brussels (near Porte de Namur)&lt;br /&gt;
*Tel : +32(0)2 511 21 19&lt;br /&gt;
*Fax : +32(0)2 512 32 71&lt;br /&gt;
*sunhotel@skynet.be&lt;br /&gt;
*www.hotels-belgium.com/brussel-al/sunhotel.htm&lt;br /&gt;
&lt;br /&gt;
*50 EUR/Single room with breakfast&lt;br /&gt;
*22 rooms total&lt;br /&gt;
*3km distance to University&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
has internet access, will make breakfast room available for developers after 11:00 am. Two electrical plugs for breakfast room, so need extension cord with  additional plugs. Ask for first or second floor rooms close to reception for good wifi connections.&lt;br /&gt;
&lt;br /&gt;
=== Hotel Sabina in Brussels (Belgium)===&lt;br /&gt;
*Rue du Nord 78&lt;br /&gt;
*B-1000 Brussels&lt;br /&gt;
*Tel: (32)2 218 26 37&lt;br /&gt;
*Fax: (32)2 219 32 39&lt;br /&gt;
(very good rating by visitors)&lt;br /&gt;
63 EUR/Single with breakfast&lt;br /&gt;
8 single only + 16 double rooms&lt;br /&gt;
4,2km distance&lt;br /&gt;
&lt;br /&gt;
=== Hotel Mozart in Bruxelles (Belgium)===&lt;br /&gt;
*Rue Marché aux Fromages 23&lt;br /&gt;
*B-1000 Brussels&lt;br /&gt;
*Tel +32 2 502 66 61&lt;br /&gt;
*Fax +32 2 502 77 58&lt;br /&gt;
*Email Hotel.mozart@skynet.be&lt;br /&gt;
http://www.hotels-belgium.com/brussel-center/mozart.htm&lt;br /&gt;
&lt;br /&gt;
70 EUR/Single room NO breakfast&lt;br /&gt;
WLAN&lt;br /&gt;
&lt;br /&gt;
51 rooms total&lt;br /&gt;
4,2km distance&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are open to other suggestions. Please take into account distance to the University and access to public transportation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
A quick introduction to Brussels:&lt;br /&gt;
http://wikitravel.org/en/Brussel&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:FOSDEM]]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background: #ff958e;&amp;quot;&lt;br /&gt;
| If you want to participate, you need to [[Special:Userlogin|create an account]] and send a mail with your user name to ''&amp;lt;tt&amp;gt;webmasters [AT] gnustep.org&amp;lt;/tt&amp;gt;'' to request write-access. We are sorry for the inconvenience, but this procedure has become necessary to prevent SPAM'ing of this site.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=FOSDEM_2012&amp;diff=6232</id>
		<title>FOSDEM 2012</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=FOSDEM_2012&amp;diff=6232"/>
		<updated>2012-01-08T05:57:11Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* Who will attend FOSDEM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== FOSDEM 2012 Announcement ==&lt;br /&gt;
&lt;br /&gt;
[http://fosdem.org/2012/ FOSDEM 2012] will take place at at the '''Université Libre de Bruxelles''', in '''Brussels''' on '''Saturday 4 and Sunday 5 February 2012'''.&lt;br /&gt;
&lt;br /&gt;
This page is for organizing GNUstep's participation in the event. This includes the organization of a developer meeting&lt;br /&gt;
the Friday before FOSDEM.&lt;br /&gt;
&lt;br /&gt;
== Organizer(s) ==&lt;br /&gt;
&lt;br /&gt;
* Lars Sonchocky-Helldorf (lars dot sonchocky dash helldorf at hamburg dot de)&lt;br /&gt;
* is somebody else interested in lending me a hand?&lt;br /&gt;
&lt;br /&gt;
== Who will attend FOSDEM ==&lt;br /&gt;
&lt;br /&gt;
One of the main reasons people attend the event is that you can meet, and talk directly to, other developers, whom you would otherwise meet only virtually (on mailing lists, emails, newsgroups, IRC etc.). We expect many lead developers and contributors to be present, so if you have never met them, you shouldn't miss this occasion!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following is a list of people of GNUstep fame who have confirmed (or denied) that they will be able to join us at the GNUstep meeting at FOSDEM 2012:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Friday&lt;br /&gt;
3. Feb&lt;br /&gt;
! Saturday&lt;br /&gt;
4. Feb&lt;br /&gt;
! Sunday&lt;br /&gt;
5. Feb&lt;br /&gt;
! Monday&lt;br /&gt;
6. Feb&lt;br /&gt;
! Special comments / topics&lt;br /&gt;
! Hotel&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| Lars S.-Helldorf ||| Yes || Yes || Yes || No || event organizer || Argus&lt;br /&gt;
|-&lt;br /&gt;
| Nikolaus Schaller || No || Yes || Yes || No  || QuantumSTEP + Openmoko / GTA04.org || Argus&lt;br /&gt;
|-&lt;br /&gt;
| Quentin Mathé  || || || ||   || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| Niels Grewe  || || || ||   || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| David Chisnall  || || || ||   || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| Sebastian Reitenbach || Yes || Yes || Yes || No || OpenBSD packages || Hotel The Moon&lt;br /&gt;
|-&lt;br /&gt;
| Nicolas Roard  || || || || ?  || Étoilé || &lt;br /&gt;
|-&lt;br /&gt;
| Nicola Pero  || || || || ?  || GNUstep || &lt;br /&gt;
|-&lt;br /&gt;
| Fred Kiefer  || || || || ?  || GNUstep (GUI, Cairo) || &lt;br /&gt;
|-&lt;br /&gt;
| Riccardo Mottola  || || || || ?  || GNUstep, GAP || &lt;br /&gt;
|-&lt;br /&gt;
| Gerold Rupprecht || || || || ?  || GNUstep || &lt;br /&gt;
|-&lt;br /&gt;
| Richard Frith-Macdonald || || || || ?  || GNUstep || &lt;br /&gt;
|-&lt;br /&gt;
| N.N. ||  t.b.d. || t.b.d. || t.b.d. || t.b.d. || t.b.d. ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Dev-Room Presentations and Events ==&lt;br /&gt;
&lt;br /&gt;
The room at out disposal will be '''AW1.126''' (capacity is 72 seats (this is more than twice of what we had the years ago); in the building &amp;quot;AW&amp;quot;),&lt;br /&gt;
-- on '''Saturday 2011-02-04''' from (to be confirmed) '''11:00''' to '''19:00'''&lt;br /&gt;
&lt;br /&gt;
=== Call for participation ===&lt;br /&gt;
&lt;br /&gt;
We are looking for people who want to give a talk, moderate a discussion, hold a hand ons (practice) / hacking session or organize a code sprint. Please send your proposals to [mailto:discuss-gnustep@gnu.org GNUstep discussion list], the organizers mentioned [[FOSDEM_2011#Organizers|above]] or - if you've got a wiki account - enter them right [http://wiki.gnustep.org/index.php?title=FOSDEM_2011&amp;amp;action=edit&amp;amp;section=6 here]. At first a title, a short summary, proposed duration and a preffered time slot would do, so we can start scheduling as soon as possible.&lt;br /&gt;
&lt;br /&gt;
'''deadline for filing is t.b.d., deadline for the papers is t.b.d.'''&lt;br /&gt;
&lt;br /&gt;
'''Note:''' The FOSDEM organizers strongly recommend a '''granularity of 15 minute blocks'''. So if a talk is just 15 (lightning talk), 30 or 45 minutes long - fine! But we should have 15 minutes breaks between the talks so that the visitors have enough time to find a seat and the presenters have enough time to get ready.&lt;br /&gt;
&lt;br /&gt;
=== List of submitted talk/discussion/session proposals ===&lt;br /&gt;
&lt;br /&gt;
Please submit through *[mailto:discuss-gnustep@gnu.org GNUstep discussion list]* until *2011-12-31*&lt;br /&gt;
&lt;br /&gt;
=== Wishlist for talks/discussions/sessions ===&lt;br /&gt;
&lt;br /&gt;
Enter talks/discussions/sessions here you would be interested in.&lt;br /&gt;
&lt;br /&gt;
* GNUstep Progresses and Roadmap&lt;br /&gt;
* CoreBase and CoreGraphics/Opal in GNUstep&lt;br /&gt;
&lt;br /&gt;
=== Schedule ===&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
!width=&amp;quot;65pt&amp;quot;| Time Slot !! width=&amp;quot;130pt&amp;quot;| Author !! width=&amp;quot;360pt&amp;quot;| Title / Abstract !! width=&amp;quot;130pt&amp;quot;| Kind !! width=&amp;quot;40pt&amp;quot; | Slides&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; style=&amp;quot;background:#ddd;&amp;quot; | '''Saturday, Feb 04, 2011'''&lt;br /&gt;
|-&lt;br /&gt;
| 11:00 - 11:30 || GNUstep Developers || '''GNUstep Developer's Meeting'''&lt;br /&gt;
&lt;br /&gt;
Meet the GNUstep developers face to face, discuss current afairs of GNUstep, share news about the latest development and plans on GNUstep, improve collaboration between the several GNUstep related projects&lt;br /&gt;
&lt;br /&gt;
|| meeting, discussion || -&lt;br /&gt;
|-&lt;br /&gt;
| xx:xx - xx:xx || t.b.d. who is holding the event || '''t.b.d. The Title of the Event'''&lt;br /&gt;
&lt;br /&gt;
t.b.d. some longer description here&lt;br /&gt;
&lt;br /&gt;
|| t.b.d. what is it (talk, discussion, lecture, demo ...) || t.b.d. link to slides&lt;br /&gt;
|-&lt;br /&gt;
| contingency plan || GNUstep Developers || '''Frameworks lightning talks'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|| talk || t.b.d.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Suggested Hotels ==&lt;br /&gt;
&lt;br /&gt;
last year Sebastian Reitenbach and Nikolaus Schaller have booked here. Ask them on the mailing list on their Experience:&lt;br /&gt;
&lt;br /&gt;
=== Louise Hotel ===&lt;br /&gt;
* 40, rue Veydt&lt;br /&gt;
* 1050 Bruxelles&lt;br /&gt;
* http://www.louisehotel.com/&lt;br /&gt;
* Sebastian Reitenbach says:&lt;br /&gt;
** book via: http://www.hotelreservierungen.de , which is cheaper than the offer on the hotel site. The reservation includes breakfast.&lt;br /&gt;
** free WiFi is available&lt;br /&gt;
** it costs only about half the price of the Argus hotel from last year. &lt;br /&gt;
** Its near avenue louise, only a foot walk away from the university campus.&lt;br /&gt;
&lt;br /&gt;
NOTE Dec 2011: appears to have changed owner and is no longer listed in online booking portals&lt;br /&gt;
&lt;br /&gt;
=== Argus Hotel Brussels (Belguim) (good experiences from past years) ===&lt;br /&gt;
*6, Rue Capitaine Crespel &lt;br /&gt;
*B-1050 Bruxelles, Belgique&lt;br /&gt;
*Tel +32 2 514 07 70&lt;br /&gt;
*Fax +32 2  514 12 22&lt;br /&gt;
*reception@hotel-argus.be&lt;br /&gt;
*Rate: 65/night - but you have to ask for the 'GNUstep/FOSDEM' discount&lt;br /&gt;
*has free Internet ;-)&lt;br /&gt;
&lt;br /&gt;
Normal prices are here:&lt;br /&gt;
&lt;br /&gt;
http://www.hotel-argus.be/ukrates.htm&lt;br /&gt;
&lt;br /&gt;
but there are discounts available:&lt;br /&gt;
&lt;br /&gt;
http://www.hotel-argus.be/ukpromotions.htm&lt;br /&gt;
&lt;br /&gt;
and we'll ask for even better discounts for a group booking (we need to know who's will be there for that!)&lt;br /&gt;
&lt;br /&gt;
Some people booked that hotel in the last years: Nicolas, Marcus, Helge ,Lars.&lt;br /&gt;
&lt;br /&gt;
=== Sun Hotel in Brussels (Belguim)  (not recommended) ===&lt;br /&gt;
*Rue du Berger, 38 &lt;br /&gt;
*1050 Brussels (near Porte de Namur)&lt;br /&gt;
*Tel : +32(0)2 511 21 19&lt;br /&gt;
*Fax : +32(0)2 512 32 71&lt;br /&gt;
*sunhotel@skynet.be&lt;br /&gt;
*www.hotels-belgium.com/brussel-al/sunhotel.htm&lt;br /&gt;
&lt;br /&gt;
*50 EUR/Single room with breakfast&lt;br /&gt;
*22 rooms total&lt;br /&gt;
*3km distance to University&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
has internet access, will make breakfast room available for developers after 11:00 am. Two electrical plugs for breakfast room, so need extension cord with  additional plugs. Ask for first or second floor rooms close to reception for good wifi connections.&lt;br /&gt;
&lt;br /&gt;
=== Hotel Sabina in Brussels (Belgium)===&lt;br /&gt;
*Rue du Nord 78&lt;br /&gt;
*B-1000 Brussels&lt;br /&gt;
*Tel: (32)2 218 26 37&lt;br /&gt;
*Fax: (32)2 219 32 39&lt;br /&gt;
(very good rating by visitors)&lt;br /&gt;
63 EUR/Single with breakfast&lt;br /&gt;
8 single only + 16 double rooms&lt;br /&gt;
4,2km distance&lt;br /&gt;
&lt;br /&gt;
=== Hotel Mozart in Bruxelles (Belgium)===&lt;br /&gt;
*Rue Marché aux Fromages 23&lt;br /&gt;
*B-1000 Brussels&lt;br /&gt;
*Tel +32 2 502 66 61&lt;br /&gt;
*Fax +32 2 502 77 58&lt;br /&gt;
*Email Hotel.mozart@skynet.be&lt;br /&gt;
http://www.hotels-belgium.com/brussel-center/mozart.htm&lt;br /&gt;
&lt;br /&gt;
70 EUR/Single room NO breakfast&lt;br /&gt;
WLAN&lt;br /&gt;
&lt;br /&gt;
51 rooms total&lt;br /&gt;
4,2km distance&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We are open to other suggestions. Please take into account distance to the University and access to public transportation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
A quick introduction to Brussels:&lt;br /&gt;
http://wikitravel.org/en/Brussel&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:FOSDEM]]&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;background: #ff958e;&amp;quot;&lt;br /&gt;
| If you want to participate, you need to [[Special:Userlogin|create an account]] and send a mail with your user name to ''&amp;lt;tt&amp;gt;webmasters [AT] gnustep.org&amp;lt;/tt&amp;gt;'' to request write-access. We are sorry for the inconvenience, but this procedure has become necessary to prevent SPAM'ing of this site.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Report_Bugs&amp;diff=6202</id>
		<title>Report Bugs</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Report_Bugs&amp;diff=6202"/>
		<updated>2011-10-02T13:33:21Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* Sending Fixes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please report bugs via the [https://savannah.gnu.org/bugs/?group=gnustep GNUstep Bug Tracking database]. You can then query the database any time to see the status of your bug report. Due to spam being sent through bug reports, you now have to be a registered user before submitting a bug. Alternatively, you may report bugs by sending a message to [http://mail.gnu.org/mailman/listinfo/bug-gnustep bug-gnustep@gnu.org].&lt;br /&gt;
&lt;br /&gt;
User testing is vital for improving GNUstep, so please report any bugs you find!&lt;br /&gt;
&lt;br /&gt;
== What to Report ==&lt;br /&gt;
&lt;br /&gt;
Please include as much of this information as possible when submitting your report:&lt;br /&gt;
* GNUstep version and snapshot date or date of last update from CVS (ideally, on finding a bug you should update your system to the latest version in the CVS repository, in order to avoid reporting problems that have already been fixed).&lt;br /&gt;
* Machine/Operating system on which you are running&lt;br /&gt;
* Compiler version you use&lt;br /&gt;
* A description of the problem, along with either a test program to demonstrate the problem, or a description of how to make the problem appear in one of the test programs that come as part of the GNUstep distribution. &lt;br /&gt;
** If you have a problem configuring the libraries, please send the config.log file&lt;br /&gt;
** If you have a problem compiling a library or application, please send the complete output of make or at least enough to show what went wrong. If you are using sh or bash, do this: &amp;lt;tt&amp;gt;make messages=yes &amp;gt; output.txt 2&amp;gt;&amp;amp;1&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The provision of a test/demonstration program is very important for getting the bug fixed quickly. Often, with no test program, we will not do anything with the report for a long time unless it is immediately obvious what the problem is.&lt;br /&gt;
&lt;br /&gt;
If your problem is that some API from OSX 10.5 or later is unimplemented, please report it as a 'Change Request' rather than a 'Bug', and (ideally) contribute an implementation of the missing functionality.  In this case please provide documentation for the missing API and a test case to demonstrate what it does.&lt;br /&gt;
&lt;br /&gt;
== Sending Fixes ==&lt;br /&gt;
&lt;br /&gt;
Actually fixing problems is even more appreciated than sending in bug reports. To do this, first fix the bug and make sure it works. Then send in a diff file containing the differences between the old version of the file(s) you changed and the new version. Use the diff (&amp;lt;tt&amp;gt;diff -u oldfile newfile &amp;gt; file.patch&amp;lt;/tt&amp;gt;) program to do this.&lt;br /&gt;
For new APIs, provide header changes as well as source code changes, with macros bracketing the changes to specify which version of OSX they correspond to (see existing headers or examples) and comments in the headers documenting the behaviors of new methods etc.&lt;br /&gt;
For both bugfixes and new functionality, please provide testcases (see the existing testsuite for examples) which demonstrate the correct behavior of the code.&lt;br /&gt;
Then add a ChangeLog entry in front of this and send the whole thing to the bug database.&lt;br /&gt;
&lt;br /&gt;
If you use emacs, it is easy to add a ChangeLog entry. Just edit the file you changed, and move the cursor to the function or method you changed, then type &amp;lt;tt&amp;gt;M-x add-change-log-entry&amp;lt;/tt&amp;gt; and emacs automatically formats an entry in the ChangeLog file with the information on the file and function you changed. You just need to add a comment about what was fixed. Note: Don't send a diff of the ChangeLog file, just send a copy of your ChangeLog entry normally. Here is an example ChangeLog:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* src/NSAutoreleasePool.m ([NSAutoreleasePool -addObject:]):&lt;br /&gt;
Remove double_release checking. Increment released_count after&lt;br /&gt;
setting released array. &lt;br /&gt;
([NSAutoreleasePool -dealloc]): Catch release errors. &lt;br /&gt;
([NSAutoreleasePool -enableDoubleReleaseCheck:]): Removed method.&lt;br /&gt;
&lt;br /&gt;
* src/NSObject.h ([NSObject -autorelease], [NSObject -release]): &lt;br /&gt;
Add double_release checking. &lt;br /&gt;
([NSObject +enableDoubleReleaseCheck:]): New method.&lt;br /&gt;
&lt;br /&gt;
* src/Foundation/NSAutoreleasePool.h: Remove &lt;br /&gt;
+enableDoubleReleaseCheck:, add +autoreleaseCountForObject:.&lt;br /&gt;
&lt;br /&gt;
* src/Foundation/NSObject.h: Add +enableDoubleReleaseCheck:.&lt;br /&gt;
&lt;br /&gt;
* src/Foundation/objc-load.h: Include objc-api file.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Report_Bugs&amp;diff=6201</id>
		<title>Report Bugs</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Report_Bugs&amp;diff=6201"/>
		<updated>2011-10-02T13:29:21Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* What to Report */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please report bugs via the [https://savannah.gnu.org/bugs/?group=gnustep GNUstep Bug Tracking database]. You can then query the database any time to see the status of your bug report. Due to spam being sent through bug reports, you now have to be a registered user before submitting a bug. Alternatively, you may report bugs by sending a message to [http://mail.gnu.org/mailman/listinfo/bug-gnustep bug-gnustep@gnu.org].&lt;br /&gt;
&lt;br /&gt;
User testing is vital for improving GNUstep, so please report any bugs you find!&lt;br /&gt;
&lt;br /&gt;
== What to Report ==&lt;br /&gt;
&lt;br /&gt;
Please include as much of this information as possible when submitting your report:&lt;br /&gt;
* GNUstep version and snapshot date or date of last update from CVS (ideally, on finding a bug you should update your system to the latest version in the CVS repository, in order to avoid reporting problems that have already been fixed).&lt;br /&gt;
* Machine/Operating system on which you are running&lt;br /&gt;
* Compiler version you use&lt;br /&gt;
* A description of the problem, along with either a test program to demonstrate the problem, or a description of how to make the problem appear in one of the test programs that come as part of the GNUstep distribution. &lt;br /&gt;
** If you have a problem configuring the libraries, please send the config.log file&lt;br /&gt;
** If you have a problem compiling a library or application, please send the complete output of make or at least enough to show what went wrong. If you are using sh or bash, do this: &amp;lt;tt&amp;gt;make messages=yes &amp;gt; output.txt 2&amp;gt;&amp;amp;1&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The provision of a test/demonstration program is very important for getting the bug fixed quickly. Often, with no test program, we will not do anything with the report for a long time unless it is immediately obvious what the problem is.&lt;br /&gt;
&lt;br /&gt;
If your problem is that some API from OSX 10.5 or later is unimplemented, please report it as a 'Change Request' rather than a 'Bug', and (ideally) contribute an implementation of the missing functionality.  In this case please provide documentation for the missing API and a test case to demonstrate what it does.&lt;br /&gt;
&lt;br /&gt;
== Sending Fixes ==&lt;br /&gt;
&lt;br /&gt;
Actually fixing problems is even more appreciated than sending in bug reports. To do this, first fix the bug and make sure it works. Then send in a diff file containing the differences between the old version of the file(s) you changed and the new version. Use the diff (&amp;lt;tt&amp;gt;diff -u oldfile newfile &amp;gt; file.patch&amp;lt;/tt&amp;gt;) program to do this. Then add a ChangeLog entry in front of this and send the whole thing to the bug database.&lt;br /&gt;
&lt;br /&gt;
If you use emacs, it is easy to add a ChangeLog entry. Just edit the file you changed, and move the cursor to the function or method you changed, then type &amp;lt;tt&amp;gt;M-x add-change-log-entry&amp;lt;/tt&amp;gt; and emacs automatically formats an entry in the ChangeLog file with the information on the file and function you changed. You just need to add a comment about what was fixed. Note: Don't send a diff of the ChangeLog file, just send a copy of your ChangeLog entry normally. Here is an example ChangeLog:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
* src/NSAutoreleasePool.m ([NSAutoreleasePool -addObject:]):&lt;br /&gt;
Remove double_release checking. Increment released_count after&lt;br /&gt;
setting released array. &lt;br /&gt;
([NSAutoreleasePool -dealloc]): Catch release errors. &lt;br /&gt;
([NSAutoreleasePool -enableDoubleReleaseCheck:]): Removed method.&lt;br /&gt;
&lt;br /&gt;
* src/NSObject.h ([NSObject -autorelease], [NSObject -release]): &lt;br /&gt;
Add double_release checking. &lt;br /&gt;
([NSObject +enableDoubleReleaseCheck:]): New method.&lt;br /&gt;
&lt;br /&gt;
* src/Foundation/NSAutoreleasePool.h: Remove &lt;br /&gt;
+enableDoubleReleaseCheck:, add +autoreleaseCountForObject:.&lt;br /&gt;
&lt;br /&gt;
* src/Foundation/NSObject.h: Add +enableDoubleReleaseCheck:.&lt;br /&gt;
&lt;br /&gt;
* src/Foundation/objc-load.h: Include objc-api file.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=User_FAQ&amp;diff=6200</id>
		<title>User FAQ</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=User_FAQ&amp;diff=6200"/>
		<updated>2011-10-02T13:25:20Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GNUstep General Information ==&lt;br /&gt;
&lt;br /&gt;
=== What is GNUstep? ===&lt;br /&gt;
&lt;br /&gt;
GNUstep is the Free Software Foundation's effort to implement Apple, Inc's (formerly NeXT Software, Inc.'s)  [[Cocoa]] APIs (formerly the [[OpenStep]] Standard). Also we are building developer and user applications based on this standard which may be used to form a complete desktop experience. For more details, take a look at the [[Introduction to GNUstep|introduction]].&lt;br /&gt;
&lt;br /&gt;
=== What is Cocoa? ===&lt;br /&gt;
&lt;br /&gt;
Cocoa is an Application Programming Interface (API) for creating applications using the Objective-C language. It was published by Apple, Inc.(Formerly NeXT Software, Inc.).&lt;br /&gt;
&lt;br /&gt;
Cocoa consists of three parts: the `Foundation Kit', a library of non-graphical objects; the `Application Kit', a library of objects useful in creating graphical applications; and the Quartz display system.&lt;br /&gt;
&lt;br /&gt;
=== What platforms does GNUstep run on? ===&lt;br /&gt;
&lt;br /&gt;
See the list of [[Platform compatibility|supported platforms]] for information on what machines GNUstep builds on and what the status of the ports is. Probably a few days porting to any other UNIX system where current gcc compilers and gdb debugger work. &lt;br /&gt;
&lt;br /&gt;
=== Does GNUstep run on Windows? ===&lt;br /&gt;
&lt;br /&gt;
The primary targets for GNUstep are free UNIX system-based platforms such as GNU/Linux and FreeBSD.&lt;br /&gt;
&lt;br /&gt;
That being said, the whole environment has been ported to [http://www.mingw.org MinGW environment]&lt;br /&gt;
and the non-gui libraries are reported to work well.&lt;br /&gt;
&lt;br /&gt;
The GUI library uses the win32 backend library to work under Windows. The backend library is a thin layer that converts the GNUstep methods to handle drawing of GUI elements to calls to the Windows API. This project is currently in beta.&lt;br /&gt;
&lt;br /&gt;
=== What is GNUstep's position towards KDE and the GNOME project? ===  &lt;br /&gt;
&lt;br /&gt;
You can use GNUstep with GNOME and/or KDE (See [[IconManager.app]]). GNUstep displays on top of X11. You can still do programming in C (since Objective-C is just a super-set of C), and if you're using gcc 4.1 or later, you can mix C++ and Objective-C code in the same file.&lt;br /&gt;
&lt;br /&gt;
GNUstep, is much more than a window manager or desktop environment. It frees you to develop cross-platform applications without the work of developing an OS independent framework from scratch. It gives you lots of basic functionality, from font panels to Unicode strings to distributed objects.&lt;br /&gt;
&lt;br /&gt;
=== How can I get GNUstep? ===&lt;br /&gt;
&lt;br /&gt;
Many distributions include packaged versions of GNUstep (Debian, etc.). To compile from scratch, download the GNUstep Startup package or take a look at the [[Platform compatibility]] list. Get the latest releases from [ftp://ftp.gnustep.org/pub/gnustep/core FTP].&lt;br /&gt;
&lt;br /&gt;
=== How do you run GNUstep? ===&lt;br /&gt;
&lt;br /&gt;
You are presumably under the misapprehension that GNUstep is some sort of program or window manager.  It isn't!  GNUstep is a whole load of things -- primarily a set of libraries for developing software.  At present, it's those libraries, plus various command-line based support tools and service providing daemons, plus various GUI development tools, a GUI desktop/workspace application, etc.  At no stage will you ever 'run' GNUstep -- you will run applications and tools and will use it's services. At some point you may well find packages distributed as 'GNUstep' systems in the way that you get 'GNU/Linux' systems packaged today. For instance, look at the [http://io.debian.net/~tar/gnustep/ GNUstep Live CD].&lt;br /&gt;
&lt;br /&gt;
If you want to see a sample GUI application running you need to build GNUstep and look at the example applications in the gnustep-examples package. Build 'Finger' or 'Ink' and start it with 'openapp Finger.app' or 'openapp Ink.app'&lt;br /&gt;
&lt;br /&gt;
For the best look, use WindowMaker (preferred GNUstep window manager) as your window manager. In others desktops (that have its how window manager) you can use [[IconManager.app]]&lt;br /&gt;
&lt;br /&gt;
=== Is there a web site? ===&lt;br /&gt;
&lt;br /&gt;
See [http://www.gnustep.org/ GNUstep Website] and [[Main_Page | GNUstep Wiki]].&lt;br /&gt;
&lt;br /&gt;
=== When is GNUstep intended to be available? ===&lt;br /&gt;
&lt;br /&gt;
It's usable now. Major releases are made about every six months. However, if you are a serious developer, it's probably best to use the latest snapshots.&lt;br /&gt;
&lt;br /&gt;
=== What is usable? ===   &lt;br /&gt;
&lt;br /&gt;
Most of GNUstep is quite usable and there are many complex applications that work well. However, GNUstep does not completely track the latest changes that Apple makes to their interface and there are still some parts that need some work).  This means many applications will run quite well. Applications that require very complex text handling and some unusual features and/or some of the latest additions to Cocoa may not work as well.  See the Compatibility and layout section for more information.&lt;br /&gt;
&lt;br /&gt;
== Compiling and Installing ==&lt;br /&gt;
&lt;br /&gt;
=== How do I compile GNUstep on my machine? ===&lt;br /&gt;
&lt;br /&gt;
Read the file 'GNUstep-HOWTO', which comes with the GNUstep distribution (gnustep-make), and also is available separately on the GNUstep web site. To check beforehand, take a look at the [[Platform compatibility]] list.&lt;br /&gt;
NB. gnustep-base-1.23.0 is the last release which supports pre gcc-4.0.0 compilers.  For later releases you will want to ensure you have a more recent Objective-C compiler.&lt;br /&gt;
&lt;br /&gt;
=== Are there any precompiled packages available? ===&lt;br /&gt;
&lt;br /&gt;
Check the [http://www.gnustep.org/resources/sources.html Download Section] for links to RPMs, Debian packages, and BSD ports. There are also Windows installers, Mac OS X binaries and others.&lt;br /&gt;
&lt;br /&gt;
=== How do I start the applications I just installed? ===&lt;br /&gt;
&lt;br /&gt;
First, read http://www.gnustep.org/resources/documentation/User/GNUstep/gnustep-howto_4.html#SEC7 to make sure you have set up your environment correctly. Then from a terminal enter:&lt;br /&gt;
&lt;br /&gt;
 openapp Application.app&lt;br /&gt;
&lt;br /&gt;
=== What are these type and size warnings? ===&lt;br /&gt;
&lt;br /&gt;
These warnings:&lt;br /&gt;
  /usr/bin/ld: warning: type and size of dynamic symbol&lt;br /&gt;
  `__objc_class_name_NSConstantString' are not defined&lt;br /&gt;
are a common occurence and are due to a mismatch between the gcc compiler and the ld linker. They don't do any harm so they can be safely ignored. They have been fixed in the 3.1 version of the GCC compiler.&lt;br /&gt;
&lt;br /&gt;
=== What are these import warnings? ===  &lt;br /&gt;
&lt;br /&gt;
Do you get this obnoxious warning whenever you compile an application, tool, or Objective-C program:&lt;br /&gt;
  warning: using `#import' is not recommended&lt;br /&gt;
  [...]&lt;br /&gt;
Up until version 3.4 of the GCC compiler, the #import directive was improperly implemented. As a result, the compiler automatically emitted a warning whenever the #import directive was used. As of gcc 3.4, this problem has been fixed, so presumably, this warning is no longer emitted when code is compiled. If you are using an earlier compiler, you can suppress these warnings by adding -Wno-import to your include (cpp) flags.&lt;br /&gt;
&lt;br /&gt;
== Compatibility and Layout ==&lt;br /&gt;
&lt;br /&gt;
=== Can I run NeXT OPENSTEP or Mac OS X programs on GNUstep? ===&lt;br /&gt;
&lt;br /&gt;
You can't run these programs on GNUstep, but if you have the source code for the programs, you should be able to port them to GNUstep and compile them. Whether or not you will be able to run them depends on how complete GNUstep is at the time.&lt;br /&gt;
&lt;br /&gt;
=== Is GNUstep following changes to OpenStep and Mac OS X? ===&lt;br /&gt;
&lt;br /&gt;
Yes, gnustep-base already contains the documented changes in the Foundation library. GNUstep aims to be compatible with both the OpenStep specification and with Mac OS X. It should be easy to write an application that compiles cleanly under both GNUstep and Cocoa.  GNUstep can be expected to support the OSX 10.4 version of the Cocoa APIs (we consider it a bug if it does not), but also actually supports many APIs from OSX 10.5 and later (contributions of methods from these later versions are very welcome).&lt;br /&gt;
&lt;br /&gt;
=== Do we have to have the NEXTSTEP look and feel? ===&lt;br /&gt;
&lt;br /&gt;
GNUstep is aiming for something like the NEXTSTEP 3.3 look and feel. Although we don't want to force anyone into this, a lot of the power and ease of use comes from this feel. The look of GNUstep is something different -- buttons and other widgets can look different but still act the same way. We hope to implement themes which will allow this.&lt;br /&gt;
&lt;br /&gt;
For a different desktop feel please see [[Themability]].&lt;br /&gt;
&lt;br /&gt;
=== What's up with the directory structure? ===&lt;br /&gt;
&lt;br /&gt;
First of all, GNUstep uses a slightly different directory structure than NEXTSTEP or Mac OS X. Part of this is historical, part is because we can't do things the same way (see the section [[User FAQ#Why not use framework bundles?]]). Although currently the structure is very similar to the one used in Mac OS X.&lt;br /&gt;
&lt;br /&gt;
It's also possible to configure GNUstep run using the standard FHS directory structured used under GNU/Linux&lt;br /&gt;
and other unices so that it blends better in the host environment.&lt;br /&gt;
&lt;br /&gt;
=== Why not use framework bundles? ===  &lt;br /&gt;
&lt;br /&gt;
Framework bundles are much more difficult to port and to use, and are very unnatural on a UNIX system; extremely unnatural on Windows. In a framework bundle, the shared dynamic library is inside a framework wrapper directory. Because of this, the dynamic linker can't find it.&lt;br /&gt;
&lt;br /&gt;
We have frameworks, so how do we work around that? Well, we build dynamic links from a directory inside the dynamic linker path into the framework, which work, but then you can't move the framework anywhere else on the system, otherwise you break the link, and nothing will find the framework any longer! On systems without dynamic links, like Windows, we can't even do this! We have to copy the library from the framework into the dynamic linker path, but that is simply a shared library then! Absolutely no difference. You put the dynamic library in a system directory in the dynamic linker path, and associate with that library a resource directory. OpenStep for Windows did that, and still called them frameworks. So we can do the same, and call our libraries frameworks.&lt;br /&gt;
&lt;br /&gt;
Shared libraries are all in a flat directory where the dynamic linker can easily find them. This is how it works on Unixoids, Windows and probably most other systems. The OpenStep API requires us to provide some stuff for frameworks, like creating and registering a framework object automatically each time a framework is used (linked at runtime, or linked into the app), and attaching to it the list of classes inside the framework, which are not particularly trivial to implement and might make trouble when porting, as they depend on playing with the linker and the object file format. However, shared libraries are handled by the operating system for us, so we never have to use these facilities.&lt;br /&gt;
&lt;br /&gt;
It's easier for Apple's Mac OS X. They can modify the system linker, compiler, the system dynamical linker as they please, because they have full control over the platform these run on. They can modify the system to support frameworks natively. GNUstep, however, is meant to run on many different platforms, platforms which we don't control (Windows, Sun Solaris, Darwin, GNU/Linux, UNIX system variants) and which have different linkers and do not support frameworks natively. On some systems it's difficult to just load a bundle or compile a shared library!&lt;br /&gt;
&lt;br /&gt;
So building the core libraries as 'libraries' means that it's much easier to port them, and it's much more difficult to break them. Sure, frameworks have a bundle of resources associated with it -- but we can very easily associate a bundle of resource with a shared library, no reason why not. We are doing it. So please note that GNUstep libraries are meant to be much similar to Mac OS X frameworks. They are composed of a shared library and associated with a bundle of resources. There is a difference in terminology, in where the resources are installed, and possibly a slight difference in the NSBundle API to get to the resource bundle (anyway, it's a one line difference between Mac OS X and GNUstep, so it looks like very easy to &amp;lt;tt&amp;gt;#ifdef&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
In other words, GNUstep libraries are meant to basically do the same as frameworks do on Mac OS X, but to be portable to very different platforms (such as Windows).&lt;br /&gt;
&lt;br /&gt;
=== Why not use native widgets? ===  &lt;br /&gt;
&lt;br /&gt;
The GNUstep GUI code is divided into two libraries ... the gui proper (gnustep-gui), which handles most of the work of implementing the AppKit API, and the backend (gnustep-back) which handles the interface to the native operating system.  The display server (GSDisplayServer) is one of the two classes which provide the main interface between the two parts. The other class is the graphics context (NSGraphicsContext). The later does the actual drawing whereas the former manages windows and events. This separation is just great to have multiple graphics backends like art, xlib and cairo share the same x11 display server.&lt;br /&gt;
So code in gnustep-gui calls methods of the display server, and code in gnustep-back translates those calls to native calls of the system you are running on.&lt;br /&gt;
&lt;br /&gt;
This means that application developers use the OpenStep/GNUstep/MacOS-X AppKit API to write their applications, and the gnustep-back library uses the native functionality to do the job where possible.&lt;br /&gt;
For instance, you do cut and paste or DnD using the OpenStep API for that, and on an ms-windows system, the actual calls to perform the operations are the native win32 ones.  ie we leave the job to the operating system, so cut and paste from gnustep applications can interact with cut and paste from native win32 applications.&lt;br /&gt;
Of course, where the two APIs (OpenStep and win32) operate in very different ways, the conversion between the two is hard, but often the layer between the two is quite thin.&lt;br /&gt;
&lt;br /&gt;
One area where there is not much scope for overlap is drawing within a window ... the way that the OpenStep API operates is so different from ms-widnows or X-windows that high level code for drawing things inside a windows using the native operating system generally cannot fit with OpenStep, so the gui library does all the drawing inside the window with quite low level code rather than trying to map OpenStep 'controls' to native 'widgets'.&lt;br /&gt;
&lt;br /&gt;
Since the basic design of the two (frontend and backend) libraries is, to draw OpenStep controls rather than try to map to native controls (because that's generally easier and makes the code very portable), we generally make no use of native widgets.&lt;br /&gt;
However, the gui frontend can dynamically load a theme engine to draw it's controls, and a theme engine is free to try to draw parts of a window using its own code ... so it can use the native controls where that's a practical solution.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Problems compiling (loading shared libs) ===&lt;br /&gt;
&lt;br /&gt;
If you get something like&lt;br /&gt;
&lt;br /&gt;
  plmerge: error while loading shared libraries:&lt;br /&gt;
  libgnustep-base.so.1: cannot open shared object file: No such file or directory&lt;br /&gt;
&lt;br /&gt;
or this:&lt;br /&gt;
&lt;br /&gt;
  Making all for service example...&lt;br /&gt;
  make[2]: *** [example.service/Resources/Info-gnustep.plist] Error 1&lt;br /&gt;
  make[1]: *** [example.all.service.variables] Error 2&lt;br /&gt;
  make[1]: Leaving directory `/home/multix/gnustep-gui-0.8.6/Tools'&lt;br /&gt;
  make: *** [internal-all] Error 2&lt;br /&gt;
&lt;br /&gt;
This means your GNU make is being overly protective. When you try to become root (e.g. to install something), certain environment variables like LD_LIBRARY_PATH are unset in order to reduce the possibility of a security breach. If you are becoming root to install something, you need to exec the GNUstep.sh file as root, just as you do when you login. Although for simplicity, you can also try this:&lt;br /&gt;
&lt;br /&gt;
  make LD_LIBRARY_PATH=$LD_LIBRARY_PATH&lt;br /&gt;
&lt;br /&gt;
You could also be having problems with gcc. gcc 2.96 does not work (Mandrake 8.1, perhaps others). Use a different compiler, like gcc 3.x.&lt;br /&gt;
&lt;br /&gt;
=== Problems compiling (GNUstep Internal Error) ===&lt;br /&gt;
&lt;br /&gt;
If you get&lt;br /&gt;
&lt;br /&gt;
  GNUSTEP Internal Error:&lt;br /&gt;
  The private GNUstep function to establish the argv and environment&lt;br /&gt;
  variables was not called.&lt;br /&gt;
  Please report the error to bug-gnustep@gnu.org.&lt;br /&gt;
&lt;br /&gt;
when compiling the gui library, there could be several things wrong. One is that you installed the gnustep-objc library, but the compiler found another Objecive-C library (like the one that came with gcc). If you are using gcc 3.x, DO NOT use the gnustep-objc library.&lt;br /&gt;
&lt;br /&gt;
There could also be a mismatch between the base and gui library versions. Make sure you have the latest release of each library installed.&lt;br /&gt;
&lt;br /&gt;
=== Problems with Alt key ===&lt;br /&gt;
&lt;br /&gt;
It's possible the Alt key is not where you think it is or is defined incorrectly. Try running the GSTest application, KeyboardInput test (located in the examples package at [ftp://ftp.gnustep.org/pub/gnustep/core FTP]) to test it. See [http://www.gnustep.org/resources/documentation/User/Gui/KeyboardSetup.html keyboard setup] for information on how to change the settings.&lt;br /&gt;
&lt;br /&gt;
If you are using WindowMaker, it's possible it is grabing this key and using it for itself. To check, open Window Maker's WPrefs and go to the Mouse Preferences. Then use another value for the &amp;quot;Mouse grab modifier&amp;quot; (bottom right). That will allow you to alt-drag things.&lt;br /&gt;
&lt;br /&gt;
=== Problems with gcc3 ===&lt;br /&gt;
&lt;br /&gt;
Don't forget you need to update binutils and libc also.&lt;br /&gt;
&lt;br /&gt;
=== Problems with fonts ===  &lt;br /&gt;
&lt;br /&gt;
Why do the characters get changed to asterisks ('*')?&lt;br /&gt;
&lt;br /&gt;
The problem you are getting come from the fact that the xlib backend (when not using Xft) will only use one fixed X font for a given font name. If the font &amp;quot;helvetica&amp;quot; is used inside of GNUstep the one selected X font, in your case &amp;quot;-*-helvetica-medium-r-normal--12-*-*-*-p-*-iso8859-1&amp;quot; is used. So only characters (or glyphs) that are available in that font can be displayed. The selection of which font name to use happens inside the font_cacher and is more or less at random (the order fonts are listed by the X system).&lt;br /&gt;
&lt;br /&gt;
You can influence the fonts that are available by setting:&lt;br /&gt;
&lt;br /&gt;
  defaults write NSGlobalDomain GSFontMask &amp;quot;*iso8859-13&amp;quot;&lt;br /&gt;
  font_cacher&lt;br /&gt;
&lt;br /&gt;
(or using a different character set, like iso8859-2). This is really a bug in GNUstep, but it hasn't been fixed yet.&lt;br /&gt;
&lt;br /&gt;
The other option is the use the art backend, which handles fonts much better. When compiling gnustep-back, start with&lt;br /&gt;
&lt;br /&gt;
  ./configure --enable-graphics=art&lt;br /&gt;
&lt;br /&gt;
=== No characters displayed ===&lt;br /&gt;
&lt;br /&gt;
When using the xlib backend, no characters are displayed in any GNUstep applications.&lt;br /&gt;
&lt;br /&gt;
The xlib backend has font anti-aliasing turned on by default. It's possible that GNUstep can't find any fonts on your system that can be properly anti- aliased. Try&lt;br /&gt;
&lt;br /&gt;
  defaults write NSGlobalDomain GSFontAntiAlias NO&lt;br /&gt;
&lt;br /&gt;
to turn off font anti-aliasing.&lt;br /&gt;
&lt;br /&gt;
=== No Makefile ===&lt;br /&gt;
&lt;br /&gt;
I tried to compile something and I get:&lt;br /&gt;
&lt;br /&gt;
  GNUmakefile:27: /Makefiles/common.make: No such file or directory &lt;br /&gt;
  GNUmakefile:39: /Makefiles/aggregate.make: No such file or directory &lt;br /&gt;
  gmake: *** No rule to make target `/Makefiles/aggregate.make'.  Stop. &lt;br /&gt;
&lt;br /&gt;
Make sure you have installed the gnustep-make package and also type something like&lt;br /&gt;
&lt;br /&gt;
  source /usr/GNUstep/System/Library/Makefiles/GNUstep.sh&lt;br /&gt;
&lt;br /&gt;
depending on your GNUstep's installation path.&lt;br /&gt;
&lt;br /&gt;
You can put this line in your `.profile' or `.bash_profile' file so that it is done automatically when you log in.&lt;br /&gt;
&lt;br /&gt;
== Misc ==&lt;br /&gt;
&lt;br /&gt;
=== Why don't you just have Gorm output Renaissance files? ===&lt;br /&gt;
&lt;br /&gt;
Philosophical and architectural incompatibilities.&lt;br /&gt;
&lt;br /&gt;
=== Is there a way to install GNUstep on Mac OS X? ===&lt;br /&gt;
&lt;br /&gt;
Yes! Please see [[Platform:BSD#Mac_OS_X | MacOS X installation notes]]. &lt;br /&gt;
&lt;br /&gt;
=== Is there any way to use gnustep-make and gnustep-base without using openapp/opentool? ===&lt;br /&gt;
&lt;br /&gt;
opentool is obsolete and you should be able to run command-line programs directly from your&lt;br /&gt;
shell prompt like any other command-line program.&lt;br /&gt;
&lt;br /&gt;
openapp is useful to run applications but in standard situations you can also run directly&lt;br /&gt;
the program from within the .app folder.&lt;br /&gt;
&lt;br /&gt;
=== Can GNUstep help with porting applications from MacOS-X? Is there any HOWTO on that? ===&lt;br /&gt;
&lt;br /&gt;
See for example Tamsys.&lt;br /&gt;
&lt;br /&gt;
=== How difficult it should be to port it to Linux and GNUstep? ===&lt;br /&gt;
&lt;br /&gt;
Somehow relevant may be discussion on How to port to GNUstep Answered. Unfortunately this link is broken now. Dredge around in the google discussion group, I guess. I couldn't find anything helpful. &lt;br /&gt;
&lt;br /&gt;
=== Can I deploy my GNUstep application without requiring people to install GNUstep? ===&lt;br /&gt;
&lt;br /&gt;
No. Compare it to running Java applications without people requiring to install Java runtime environment. &lt;br /&gt;
&lt;br /&gt;
=== How can I get more information on Objective-C ? ===&lt;br /&gt;
&lt;br /&gt;
Take a look at the [[Objective-C]] page.&lt;br /&gt;
&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=WebServices&amp;diff=5939</id>
		<title>WebServices</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=WebServices&amp;diff=5939"/>
		<updated>2010-06-15T08:34:16Z</updated>

		<summary type="html">&lt;p&gt;Rfm: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
{{Framework|&lt;br /&gt;
shortdescription = Framework for a GNUstep program to interact with web services |&lt;br /&gt;
&lt;br /&gt;
currentversion = [ftp://ftp.gnustep.org/pub/gnustep/libs/WebServices-0.4.0.tar.gz 0.4.0] |&lt;br /&gt;
&lt;br /&gt;
releasedate = Jun 14, 2010 |&lt;br /&gt;
&lt;br /&gt;
license = LGPL |&lt;br /&gt;
&lt;br /&gt;
overview = &lt;br /&gt;
&lt;br /&gt;
The WebServer library contains a collection of classes to be used for creating client and server 'web service' applications. it is also useful for general XML work as the API that that is particularly simple and efficient.&lt;br /&gt;
 &lt;br /&gt;
The GWSService class is used to make RPCs as a client. This class makes use of GWSCoder classes to serialize the request before sending it to the remote system, and to deserialize the response received.&lt;br /&gt;
&lt;br /&gt;
Different GWSCoder sublasses handle different encoding mechanisms, and this library provides one for XMLRPC (because it's a nice, simple mechanism good for most normal applicatiions), and one for SOAP (because, while it's a horrible, bloated, designed-by-comittee mechanism, it's also the most common one by far and the standard one for web services).&lt;br /&gt;
&lt;br /&gt;
The GWSCoder base class provides support for decoding an XML document to a tree of GWSElement objects, and encoding a tree of GWSElement objects to form an XML document.&lt;br /&gt;
&lt;br /&gt;
The GWSElement class represents an element in an XML document and provides a concise set of methods for locating and manipulating the elements within a tree representing the entire document.&lt;br /&gt;
&lt;br /&gt;
The remaining classes in the library provide support for WSDL, allowing a WSDL document to be parsed, and SOAP calls to be made to a service described in the WSDL, with binding information from the WSDL used to build the calls from a minimal set of parameters.&lt;br /&gt;
 |&lt;br /&gt;
&lt;br /&gt;
features = &lt;br /&gt;
* Easy/simple ObjectiveC API for parsing/generating XML documents, XMLRPC and SOAP remote procedure call support, WSDL support,  GNUstep and OSX|&lt;br /&gt;
&lt;br /&gt;
maintainer = Richard Frith-Macdonald |&lt;br /&gt;
&lt;br /&gt;
relatedlinks = |&lt;br /&gt;
&lt;br /&gt;
category = [[Category:Networking Frameworks]]&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Objective-C_Compiler_and_Runtime_FAQ&amp;diff=5935</id>
		<title>Objective-C Compiler and Runtime FAQ</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Objective-C_Compiler_and_Runtime_FAQ&amp;diff=5935"/>
		<updated>2010-06-11T09:46:34Z</updated>

		<summary type="html">&lt;p&gt;Rfm: /* Can I use Apple's Runtime APIs? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Objective-C Compiler and Runtime FAQ ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An Objective-C implementation comes in two components; a compiler and a runtime library.  The compiler is responsible for parsing the source code and produces a binary that contains calls to the functions in the runtime library.  This library is responsible for things like message sending and introspection.&lt;br /&gt;
&lt;br /&gt;
=== How Many Runtimes Are there? ===&lt;br /&gt;
----------------------------&lt;br /&gt;
&lt;br /&gt;
If you have used Objective-C on Mac OS X, then you will have used one or both of Apple's two Objective-C runtimes.  The Apple legacy runtime is based on the version implemented by NeXT back in the '80s, although it has seen some improvements since that time and is often referred to as the NeXT runtime.  Apple's modern runtime is a complete rewrite, introduced with OS X 10.5.  The modern runtime is required for Objective-C 2 and is the default on 64-bit platforms.&lt;br /&gt;
&lt;br /&gt;
The implementation of Objective-C produced by NeXT was based on GCC and as such NeXT was required to release the relevant compiler changes.  The NeXT Objective-C runtime was not open sourced (it was later, after Apple bought NeXT, but the code is not particularly portable and so is not used on platforms other than Darwin) and so the GNU project created a new one, generally referred to as the GNU runtime.&lt;br /&gt;
&lt;br /&gt;
In 2009, a fork of this was committed to GNUstep subversion repository as libobjc2.  This contains a lot of new features and removes a lot of legacy code, but is not yet considered production ready.  Unlike the original GNU runtime (which will be referred to as the GCC runtime, for differentiation), this can be built outside of the GCC tree and distributed independently.  The GNUstep runtime supports two ABIs.  One is compatible with the GCC runtime, the other is new and is designed to support Objective-C 2.&lt;br /&gt;
&lt;br /&gt;
=== Which Runtime Should I use? ===&lt;br /&gt;
---------------------------&lt;br /&gt;
&lt;br /&gt;
If you are using a recent version of GCC to compile your code then you should have a copy of the Objective-C runtime library that came with your compiler.&lt;br /&gt;
&lt;br /&gt;
If you are using a very old version of GCC then you may need to use a newer version of GNU runtime.  If you experience problems with the version of runtime that came with your compiler, then you should install libobjc from GNUstep subversion (libs/libobjc/trunk).  This is a copy of version 1.6 of the GCC runtime which is modified to build outside the GCC tree.&lt;br /&gt;
&lt;br /&gt;
For more advanced features, currently only supported if you compile with Clang, you will need the GNUstep runtime.  This is not currently considered production ready.  It should work as a drop-in replacement for the GCC runtime, but some of the advanced features are not well-tested.&lt;br /&gt;
&lt;br /&gt;
=== What is or was the Étoilé Runtime? ===&lt;br /&gt;
----------------------------------&lt;br /&gt;
&lt;br /&gt;
The Étoilé Runtime is a research prototype that was originally intended to succeed the GNU runtime.  After some time, it was determined that porting GNUstep to a completely new - and radically differently designed - runtime would be a massive undertaking, as would providing all of the related compiler support.  It was also decided that two incompatible ABIs would not benefit anyone.  The author of the Étoilé runtime is the maintainer of the GNUstep runtime and has back-ported most of the improvements from the Étoilé runtime to the GNUstep runtime.&lt;br /&gt;
&lt;br /&gt;
=== Which Compiler Should I Use? ===&lt;br /&gt;
----------------------------&lt;br /&gt;
&lt;br /&gt;
The history of Objective-C in GCC is somewhat complicated.  Originally, NeXT was forced to release the original Objective-C front end in order to comply with the GPL.  This code was not quite compatible with the GNU runtime and so it was modified.  NeXT did not adopt these modifications and so each release of GCC by NeXT, and then Apple, contained changes that needed back-porting to the main branch of GCC.&lt;br /&gt;
&lt;br /&gt;
For a long time, GCC was the only compiler that worked with GNUstep.  Unfortunately, the GCC team has not invested much effort in Objective-C in the last few years and it currently lags behind Apple's version by a significant amount.&lt;br /&gt;
&lt;br /&gt;
As of version 4.3, the Free Software Foundation changed the license of GCC to version 3 of the GNU General Public License.  This means that future versions will not be shipped by Apple.  OS X 10.6 ships with three compilers:&lt;br /&gt;
&lt;br /&gt;
* Apple's fork of GCC 4.2.1&lt;br /&gt;
* LLVM-GCC&lt;br /&gt;
* Clang&lt;br /&gt;
&lt;br /&gt;
The latter two use the Low-Level Virtual Machine (LLVM) for code generation.  This is a BSD-licensed compiler infrastructure used by several other projects.  LLVM-GCC is a hybrid, using Apple's version of GCC for parsing and LLVM for optimisation and native code generation.  Clang is a new front end for LLVM.&lt;br /&gt;
&lt;br /&gt;
Currently, LLVM-GCC is based on Apple's GCC and so does not support the GNU runtime.  There is an effort underway to rewrite LLVM-GCC as a plug in for GCC 4.5, at which point it should support as much Objective-C as GCC currently does.&lt;br /&gt;
&lt;br /&gt;
Unlike GCC, Clang features a clean abstraction layer between the runtime-specific and runtime-agnostic parts of the compiler.  This means that adding support for new features on the GNU runtime is simply a matter of implementing the relevant methods in the CGObjCGNU class.  This means that Clang is able to support almost everything on the GNUstep runtime that it does on either of the Apple runtimes.  Note, however, that Clang only recently reached version 1.0 status.  Current subversion builds are more stable, but things like generating debugging info are still somewhat unreliable.&lt;br /&gt;
&lt;br /&gt;
=== Which Bits of Objective-C 2 Work? ===&lt;br /&gt;
---------------------------------&lt;br /&gt;
&lt;br /&gt;
The answer to this question depends on the combination of compiler and runtime library that you are using.  Currently, no features of Objective-C 2 work with GCC.&lt;br /&gt;
&lt;br /&gt;
If you compile with Clang then you have access to declared properties, fast enumeration, and blocks.  Note that both of these require some support from the runtime.  This must be provided either by the GNUstep runtime or by the ObjectiveC2 framework, which you can acquire from Étoilé subversion.  For blocks to work, you must also compile with -fblocks.&lt;br /&gt;
&lt;br /&gt;
If you compile with the -fobjc-nonfragile-abi flag then you will use the new ABI.  This is only supported with the GNUstep runtime.  This adds:&lt;br /&gt;
&lt;br /&gt;
* Property introspection&lt;br /&gt;
* Introspection on optional protocol methods&lt;br /&gt;
* Non-fragile instance variables&lt;br /&gt;
* Forwarding proxy support&lt;br /&gt;
&lt;br /&gt;
Unlike Apple's non-fragile ABI, it is possible to mix code compiled for our fragile and non-fragile ABIs with some caveats.  Message sending from code compiled with the fragile ABI will not be able to take advantage of forwarding proxies.  If you subclass a non-fragile ABI class with a class compiled with the fragile ABI then you will not receive any benefits; the class compiled with the fragile ABI must be able to see all of the instance variables in the superclass at compile time or things will break.  Some benefits will be obtained the other way around, however.  A class compiled for the fragile ABI will always be able to access its own instance variables safely when the superclass changes, even if the superclass layout changes.  It will, however, only be able to safely access instance variables declared in superclasses safely if the superclass is also compiled with the non-fragile ABI or if the superclass instance variable layout does not change.&lt;br /&gt;
&lt;br /&gt;
=== Can I use Apple's Runtime APIs? ===&lt;br /&gt;
-------------------------------&lt;br /&gt;
&lt;br /&gt;
You not only can, but should!&lt;br /&gt;
&lt;br /&gt;
With OS X 10.5, Apple introduced a new set of APIs for interacting with the runtime.  These hid the implementation details - previously all public - behind a set of public functions, implemented on both the modern and legacy runtimes.&lt;br /&gt;
&lt;br /&gt;
These functions are supported by the GNUstep runtime and can also be used with the GCC runtime if you link against Étoilé's ObjectiveC2 framework.&lt;br /&gt;
&lt;br /&gt;
From release 1.20.0 of the base library onwards the new runtime APIs are built in to the GNUstep base library (the Étoilé ObjectiveC2 framework is incorporated into base and extended/improved) so that the new APIs can be used with both old and new runtimes.&lt;br /&gt;
&lt;br /&gt;
=== What About Garbage Collection? ===&lt;br /&gt;
------------------------------&lt;br /&gt;
&lt;br /&gt;
GNUstep has supported garbage collection via the Boehm GC for some years.  Efforts are underway to bring this to closer compatibility with Apple's new implementation.&lt;/div&gt;</summary>
		<author><name>Rfm</name></author>
	</entry>
</feed>