HowTo: Install OpenGroupware.org on Ubuntu 8.04 amd64 server with LDAP support (part 1 of 4)
First some notes.
The installation and compile notes on opengroupware.org are either
- not relevant (wrong distro, wrong architecture) or
- outdated (current release is 1.1.7, compile notes still talk about 1.0beta)
Also, there are a lot of pitfalls when compiling such a huge project.
I had to install OpenGroupware.org on a company machine, so why not document the process?
I’m not the perfect sysadmin and I’ve not written many guides, so I’m sorry if there’s something missing or if I don’t do stuff as they “should be done“. You can always leave comments and I might follow up on them.
This is the first part, where I will compile & install OpenGroupware.org.
The second part will be the database setup & creation.
The third part will cover LDAP connectivity.
Make sure you don’t forget any commands, because the source is so fragile it might not compile anymore after adding a prior dependency.
Install subversion, build-essential & gobjc. Necessary to retrieve & compile the latest OGo release.
sudo apt-get install subversion build-essential gobjc-4.2
Create a new “ogo” directory in your home directory. This is where we will put the code and compile stuff.
mkdir ogo
cd ogo
Check out the SOPE 4.7.1 & OGo 1.1.5 source code:
svn co http://svn.opengroupware.org/SOPE/releases/4.7.1-fwd/
svn co http://svn.opengroupware.org/OpenGroupware.org/releases/1.1.5-moveon/
Build gnustep-make. This is needed as a basis for both SOPE and OGo. Do not install gnustep-make or gnustep-make-ogo from the package archives, they won’t work with the new versions of SOPE and OGo.
cd ~/ogo/4.7.1-fwd/gnustep-make
./configure –with-library-combo=gnu-fd-nil
make
sudo make install
Your GNUstep environment is now in /usr/GNUstep.
Install the optional libraries for SOPE: xml2, ldap, ssl, pq, sqlite3, mysqlclient.
sudo apt-get install libxml2-dev libldap2-dev libssl-dev libpq-dev libsqlite3-dev libmysqlclient15-dev
Compile libFoundation. This is a basis library for objective C development. There is a package for this, but the package had some problems with OGo when it was compiled.
cd ~/ogo/4.7.1-fwd/libFoundation
source /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
./configure
make
sudo make install
libFoundation is now in /usr/GNUstep/System/Libraries/Resources.
Now compile & install SOPE.
cd ~/ogo/4.7.1-fwd
./configure
make
sudo mkdir /usr/local/lib64
sudo make install
It’ll all be installed under /usr/local.
Now build OpenGroupware.
cd ~/ogo/1.1.5-moveon
./configure
make
sudo make install
So far I have not found a way to compile in PDA support (libpisock), because the Ubuntu-supplied one does not work with OGo 1.1.5, and compiling it myself didn’t work out.
OGo uses non-default library paths (/usr/local/lib64), these need to be added to the library search path of the system.
sudo nano /etc/ld.so.conf.d/x86_64-linux-gnu.conf
Add /usr/local/lib64 at the end of the file, save and exit. Now run
sudo ldconfig
to reload the config.
The Apache connector is missing. Install the apache2 development headers and build ngobjweb with:
sudo apt-get install apache2-prefork-dev (depends on your version of apache… threaded or prefork)
cd ~/ogo/4.7.1-fwd/sope-appserver/mod_ngobjweb
sed -i s/ap_http_method/ap_http_scheme/ handler.c
make
sudo make install
Now we need the theme resource files of OpenGroupware:
cd /usr/local/share/opengroupware.org-1.1
sudo rm templates translations
sudo cp -r ~/ogo/1.1.5-moveon/Themes/WebServerResources/ ./www
sudo cp -r ~/ogo/1.1.5-moveon/WebUI/Templates ./templates
sudo cp -r ~/ogo/1.1.5-moveon/WebUI/Resources ./translations
HowTos on setting up an apache2 server can be found anywhere, so I won’t go into details. After it is installed:
cd /etc/apache2/conf.d
sudo nano ngobjweb
The file should look like this:
LoadModule ngobjweb_module /usr/GNUstep/System/Library/WOAdaptors/Apache/mod_ngobjweb.so
<LocationMatch “^/OpenGroupware*”>
SetHandler ngobjweb-adaptor
SetAppPort 20000
</LocationMatch>Alias /OpenGroupware11.woa/WebServerResources/ \
/usr/local/share/opengroupware.org-1.1/www/
Save & exit.
You should now create a user that will be used to run OpenGroupware.
sudo adduser –system –shell /bin/bash ogo
sudo su ogo
source /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
ogo-webui-1.1
And that’s it. By going to $YOUR_WEBSERVER/OpenGroupware, you should see the OpenGroupware page (with graphics hopefully) showing an error that the database is missing. But for that, see part 2, coming soon.
Update:
1.1.7 was throwing segfaults when accessing project files. This does not happen with 1.1.5, so the above has been changed. Generally, the instructions work for both versions.
Update 2:
Sorry, something else missing.
As your regular user, do:
sudo mkdir /var/lib/ogo
sudo chown ogo.nogroup /var/lib/ogo
sudo chmod 700 /var/lib/ogo
sudo su ogo
source /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
Defaults write NSGlobalDomain LSAttachmentPath /var/lib/ogo
The directory /var/lib/ogo will then serve as file database for OpenGroupware.


October 3rd, 2008 at 3:48
Thx for writing this up for us all. Just installed from source using these instructions on CentOS 64 bit. Some differences, but went without a hitch. Looking forward to parts 2 and 3. Any idea when you’ll post those?
October 3rd, 2008 at 8:54
I’m quite busy, so I can’t give any date on that. Thanks for replying though, if people are interested the priority definitely rises.
If you followed my example, don’t you have segfaults in the project file manager sometimes? I had to go back to OpenGroupware 1.1.5 and SOPE 4.7.1 to get it working without segfaults. I’ll update this at some time in the future to reflect the fact.
October 16th, 2008 at 20:45
Sebastian,
Many thanks for the writeup, very helpful. I am installing on a Ubuntu Hardy from svn trunk. For some reason I get a 404 and a log entry in Apache’s errorlog like this:
File does not exist: /var/www/OpenGroupware, as if the wasn’t read.
Anyways - many thanks
/Per
October 16th, 2008 at 21:01
Ok - me again
The Apache server now matches the Location with this
SetHandler ngobjweb-adaptor
SetAppPort 20000
note there are no ” around the argument, this on Ubuntu Hardy (non 64 bit)
October 24th, 2008 at 11:57
[...] First part: Build OpenGroupware.org [...]
October 26th, 2008 at 22:02
Many thanks for this gorgeous tutorial. I installed OpenGroupware.org on Ubuntu Hardy(i386) and it just worked
Also a lot of thanks to Per Jensen. I had the same problem and it took me half an hour until I read your comment.
Christian
October 27th, 2008 at 16:47
[...] First part: Build OpenGroupware.org [...]
October 28th, 2008 at 16:31
[...] First part: Build OpenGroupware.org [...]
October 28th, 2008 at 21:06
Thank u!
Thats the only tutorial that works on actual hardy.
!ATTENTION!
There are two hyphens (- -) before “with-library-combo”