Setup of Development Environment for Debian
Required software
Git
- on Ubuntu/Debian: apt-get install git-core
Mono 2.x
- need to use Lenny Backports, since Lenny only provides Mono 1.x
echo "deb http://www.backports.org/debian etch-backports main contrib non-free" >> /etc/apt/sources.list apt-get update apt-get install debian-backports-keyring apt-get -t lenny-backports install mono-2.0-runtime mono-xbuild libmono-microsoft-build2.0-cil monodevelop
- if you get this error: ICSharpCode.SharpZipLib.Tar.TarArchive does not contain a definition for Close
- solution: sudo gacutil -u ICSharpCode.SharpZipLib; sudo gacutil --install csharp/ThirdParty/ICSharpCode/ICSharpCode.SharpZipLib.dll
NAnt
- on Ubuntu/Debian: apt-get install nant
- Problem: NAnt 0.85 (Build 0.85.2478.0; release; 10/14/2006) does not seem to support the task "solution" on Linux?
Invalid element <solution>. Unknown task or datatype.
- Problem: exec spawn is not supported in 0.85
- Solution: copy binary zip from sourceforge (http://nant.sourceforge.net/nightly/latest/nant-bin.tar.gz), unzip, and change /usr/bin/nant to point at the latest NAnt.exe
- to avoid all the warnings "Could not load file or assembly" run: apt-get install libmono-microsoft-build2.0-cil
- to avoid problems finding log4net etc, make sure the property NAntBin.dir in your OpenPetra.build.config is set correctly
- Also you need to make a symbolic link:
- Problem: NAnt 0.85 (Build 0.85.2478.0; release; 10/14/2006) does not seem to support the task "solution" on Linux?
ln -s /usr/lib/mono/2.0/Microsoft.CSharp.targets /usr/lib/mono/2.0/Microsoft.CSharp.Targets
SQLite or PostgreSQL or MySQL
- apt-get install sqlite3 (requires 3.6.1 or higher; might need to use another repository, eg testing)
- or apt-get install postgresql
- or apt-get install mysql-server
xgettext and msgfmt
- apt-get install gettext
dos2unix
- this is needed for building releases (nant buildRelease)
- apt-get install tofrodos
Get the source code
The source code is managed with Git.
Please understand that we will provide write permissions only to the core members of the development team, just to keep the project on one track. We very much need your contributions though, and we will aim to quickly deal with submitted patches and code via the forum. This still has to be worked out how this works best to submit code that way.
You can get the source code in several ways:
- see the Git instructions at Sourceforge
- that page describes how you can download anonymously from Git
- you can also browse the Git repository online, and you can download a tar.gz snapshot of each version there
for anonymous access, you can use this URL to clone the repository with TortoiseGit:
git://openpetraorg.git.sourceforge.net/gitroot/openpetraorg/openpetraorg
for developer access (with write permissions), use this URL to clone the repository with TortoiseGit:
ssh://USERNAME@openpetraorg.git.sourceforge.net/gitroot/openpetraorg/openpetraorg
Configuration of Development Environment
for anonymous access:
cd ~ git clone git://openpetraorg.git.sourceforge.net/gitroot/openpetraorg/openpetraorg cd openpetraorg cp OpenPetra.build-sample-linux.config OpenPetra.build.config
for developer access (with write permissions):
cd ~ eval `/usr/bin/ssh-agent` ssh-add ~/.ssh/YOURPRIVATEKEYFILE git clone ssh://USERNAME@openpetraorg.git.sourceforge.net/gitroot/openpetraorg/openpetraorg git config user.name "YOUR NAME" git config user.email "USERNAME@users.sourceforge.net" cd openpetraorg cp OpenPetra.build-sample-linux.config OpenPetra.build.config
Please check your OpenPetra.build.config file and make sure the paths are all adjusted to your system and the version numbers in the paths are correct.
NAnt script
There is a central NAnt script that is able to generate a lot of code and is able to do all automated tasks in the OpenPetra project.
Please see OpenPetra NAnt script for details