How can I contribute?
A: In general, if you want to contribute, write email to
Please give us some time to respond in the setup stage (we are getting loads
of email) !
Update: We are currently collecting mails of people wishing to
contribute, so that we can coordinate the work.
Right now the best thing to contribute is to check whether the packages
we provide actually work and that the webserver has no bugs ! If you find
problems, please send a description to
How to support a different SQL Database?
We are going to post some ideas on possible contributions in the next weeks
(we have loads of them as well ;-).
Q: Just wondering if there's any possibility of getting the GNUstep Database layer ported to use the XXX database.
A: Yes ! The gnustep-db supports a pluggable database backend mechanism.
The sources are coming with example adaptors for
What about CAP?
The major requirements for an OGo database are that it supports proper
transactions and database constraints.
Q: What about supporting the Calendar Access Protocol (CAP)?
A: We do not currently support CAP because no one does, so in the
moment it gives little in adding interoperability. We focused on implementing
protocols which are actually used in practice.
GNUstep Base Library?
But we are already in contact with developers which are interested in
adding CAP support. So stay tuned !
Q: Does OGo directly depend on the libFoundation library or can the gnustep-base library used as a replacement?
A: OGo has little dependencies on libFoundation, instead it tries
to follow the Foundation API as described in the OpenStep standard.
Nevertheless it won't compile with gstep-base out of the box, some minor
tweaks are probably necessary.
More dev- packages, still won't compile ...
We are very interested in someone contributing a gnustep-base port of OGo,
since this will give us two things required: full Unicode support and a
better base for porting OGo to Windows.
So if you are interested in porting to GNUstep, please send mail to
Sidenote: the strategy for porting to MacOSX is to actually use the Cocoa
Foundation library and the Cocoa Objective-C runtime instead of
libFoundation. Everything up to SOPE already works on MacOSX.
Q: Even installing more dev- packets on SuSE (and other packet based systems) won't get libFoundation to compile.
A: Before re-running reconfigure, delete the config.cache file!
I did source GNUstep.sh and still get /Makefiles/xxx
Q: I did source the GNUstep.sh and still get error like:
GNUmakefile:26: /Makefiles/common.make: No such file or directory,
GNUmakefile:137: /Makefiles/library.make: No such file or directory
A: Source it the right way!
when you get /bin/sh or /bin/bash
when you get /bin/csh or /bin/tcsh
(happend often under BSD since csh is default there)
Why are the OGo servers not multithreaded?
Q: Why are the OGo servers not multithreaded?
A: Yes, OGo server are by intention not multithreaded. The Samba team even has
an own section in the developers guide on the issue:
Samba DevGuide on multithreading.
The best part is "We can immediately throw robustness out the window" and
actually having a cheap process model is why Unix like operating systems
are so robust.
If you are not convinced, some things to consider:
Threading is often used just to workaround blocking IO operations. This
is not so big a problem in OGo since OGo servers are always run behind an
Apache server. So actually the Apache does all the hard network IO work
and once a message is fully received it gets passed to OGo. Which means
that OGo only needs to wait for IO on localhost, not on high latency
In addition the libFoundation library used by OGo makes it easy to use
non blocking IO instead of threads for waiting on network connections and
Finally if you really need application server concurrency, you can run
multiple OGo servers and either use the snsd in front for dynamic assignment
of sessions to processes or you can use regular HTTP load-balancing tools,
eg for routing requests based on the IP address.
Q: What programming language is OGo written in?
A: OpenGroupware.org is mostly written in the Objective-C language.
Objective-C (or ObjC in short) is a simple, object oriented extension to
ANSI-C and the compiler is part of any gcc compiler.
To learn more about Objective-C take a look at our
or for a short introduction, consider reading that
Linux Journal article.