Make a GNUstep app!

Out of current occasion

I've stopped contributing to the GNUstep project and call all developers to do the same. See on why.

Instead I've started contributing to development of a gui framework of ObjFW and suggest you to look into it as well.

GWorkspace showing a directory with several GNUstep apps

About this project

Developers coming from macOS and Cocoa programming – or liking Objective C as a programming language – might want to create great cross-platform apps. Or might want to create Objective C(++) apps, which run on a free (as in free speech) environment using Free Software.

They want to use modern language features of Objective C and are used to a development environment which is up and usables in minutes.

This is perfectly possible using GNUstep and its libobjc2 runtime which provide modern language features leveraging clang, such as Automatic Reference Counting (ARC), blocks (closures) and synthesis of declared properties known from OS X 10.7 (Lion) and later.

It's just it took me more than a year to find out how this can be put together and delivered to users. Therefore I created this page. It will help you to get up and running within minutes.

Have fun and of course you're welcome to leave your feedback to improve information documented here!

Install and getting started

For using the packages I compiled together for this setup you currently need an Arch based Linux distribution like Manjaro.

Install packages from repository via pacman

Add the following lines to your /etc/pacman.conf with sudo nano /etc/pacman.conf:

SigLevel = Optional TrustAll
Server =$arch

Import the repo key:

wget -O - | sudo pacman-key --add -
sudo pacman-key --lsign-key 29F300A0D5CF9F32

Install the basic package groups:

sudo pacman -Syy gnustep-ngr gnustep-ngr-dev gnustep-ngr-desktop

If you use Manjaro it is possible you need to switch to the testing or unstable branch as that repo is built against Arch packages/dependencies. Currently you are ok with stable.

Direct download (manual installation)

Getting started

The commands above will install all the GNUstep packages you need. Proceed further with:

  1. Integrate GNUstep into your desktop environment (DEI).
  2. Run an integrated development environment (IDE)

Strategy and help needed

Currently I target at users of Arch based Linux distributions like Manjaro. Desktop app developers often like using such distributions, because they are very up to date. I ship packages which are built from the latest (GNUstep) sources to enable developers to use the newest features and fixes available.

Once there are updates and releases of apps we created, I have plans to create a new dev fork of the whole repo and make it stable. I'd also consider migrating to Debian packaging due to the more extensive use by great projects and better support (of architectures) at openSUSE's build service. Calling for help on this.

Continous Delivery

If you've got a working state of your application, just point me to your git/svn repository. I'll happily provide you and your users a package and an API key which enables automatic builds on commit/push from your repository.