Setup of Development Environment for OpenSuSE

From OpenPetra Wiki
Jump to navigation Jump to search

Required software

Git

  • yast -i git

Mono 2.x

  • use the one click installer for SuSE from http://monodevelop.com/Download; (when using yast, make sure you are using an uptodate repository with MonoDevelop 2.0 or newer; MonoDevelop 1.0 is too old and gives problems with SharpZipLib etc)
  • 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:
ln -s /usr/lib/mono/2.0/Microsoft.CSharp.targets /usr/lib/mono/2.0/Microsoft.CSharp.Targets

SQLite or PostgreSQL or MySQL

  • yast -i sqlite
  • or yast -i postgresql postgresql-server
  • or yast -i mysql

xgettext and msgfmt

  • yast -i gettext gettext-tools

dos2unix

  • this is needed for building releases (nant buildRelease)
  • yast -i dos2unix

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:

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

For development, I recommend you create a local branch, and switch to it. Then you pull updates from the server ("master") into your local branch, and push your updates up to the server in the master branch. Otherwise you get all sorts of problems with pushing and pulling, so don't commit to master at all. see also Notes about Git

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