Setup of Development Environment for OpenSuSE: Difference between revisions

From OpenPetra Wiki
Jump to navigation Jump to search
No edit summary
Line 19: Line 19:
** Also you need to make a symbolic link:
** 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
  ln -s /usr/lib/mono/2.0/Microsoft.CSharp.targets /usr/lib/mono/2.0/Microsoft.CSharp.Targets
In order to use mono 4.0 you need to make some changes on your /usr/bin/nant and comment the line before it. Make it look like this (with the corresponding path on your system).
#!/bin/sh
#exec /usr/bin/cli /usr/lib/NAnt/NAnt.exe "$@"
mono --runtime=v4.0 /usr/local/nant-0.91/bin/NAnt.exe "$@"
In order to run both (2.0 and 4.0) please have a look [http://sourceforge.net/apps/mediawiki/openpetraorg/index.php?title=Jenkins_CI_Server#NAnt here]


== SQLite or PostgreSQL or MySQL ==
== SQLite or PostgreSQL or MySQL ==

Revision as of 13:50, 14 November 2011

Required software

Bazaar

  • TODO: how to install bazaar. does yast -i bazaar install a version that is compatible with bzr 2.2 on the server?

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

In order to use mono 4.0 you need to make some changes on your /usr/bin/nant and comment the line before it. Make it look like this (with the corresponding path on your system).

#!/bin/sh
#exec /usr/bin/cli /usr/lib/NAnt/NAnt.exe "$@"
mono --runtime=v4.0 /usr/local/nant-0.91/bin/NAnt.exe "$@"

In order to run both (2.0 and 4.0) please have a look here

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 bazaar.

Follow the instructions at How to work with bazaar on the command line to get the source code.

Please have a look at the following page: Submitting patches and features!

Configuration of Development Environment

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.

This OpenPetra.build.config file is also the file where you set the database you want to use. If you want to switch the database system later, see Setup_of_Development_environment#Use_another_database_system.

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

If you want to switch from SQLite to PostgreSQL which we recommend for serious development, please follow the instructions at Setup_of_Development_environment#Use_another_database_system.