Packages for Developing Gnome-RDP

Here are the packages that I found I needed to install for developing on experimental branch of Gnome-RDP:

  • libglib2.0-cil-dev
  • libgtk2.0-cil-dev
  • libconf2.0-cil-dev
  • libcairo2-dev (probably not required)
  • libndesk-dbus1.0-cil-dev
  • libndesk-dbus-glib1.0-cil-dev
  • libglade2.0-cil-dev
  • libgnome-keyring1.0-cil-dev
  • gtk-sharp2
  • libgnome-keyring-dev
  • nunit
  • monodevelop-nunit

Updated MonoDevelop Repository

I have been trying to work with MonoDevelop and GnomeRDP.  I couldn’t get it to open the project because I needed the newer version of Monodevelop as described here.  I figured out how to install MonoDevelop manually.  The problem with all of this is that you have to get all of the dependencies yourself.

So, instead I finally found a repository with Monodevelop 2.2 in it:

How to install MonoDevelop 2.2 on Ubuntu 9.10?

Errors Opening Gnome-RDP Project

I ran into an error opening the Experimental branch of Gnome-RDP, and I wanted to post it in case anyone else ran into the same problem.  Here is what the error looked like:

screenshot_143

Here is the text:

Could not load solution: <solution path>.  Could not set property ‘Policies’ in type ‘Solution’.

Load operation failed. Could not set property ‘Polieis’ in type ‘Solution’

Error while trying to load the project ‘<project path>': Could not set property ‘Policies’ in type ‘DotNetProject’

Error while trying to load the project ‘<project path>': Could not set property ‘Policies’ in type ‘DotNetProject’

The solution apparently, as found in this bug post, is to install a new version of Mono-Develop.  I see now that the post has a repository that you can use.  I ran across these instructions, and I detailed my execution of those instructions on my previous posts.

Installing an Alternate MonoDevelop

I needed a newer version of Monodevelop, and I couldn’t find  a repository that would allow me to just update it with apt-get.  Rather than change all the libraries that other programs might be using, I thought these instructions might provide a safe solution anyway.  So, I embarked on installed a standalone version self-contained in this directory:

/home/skp/app/blog

The first step settings up your environment variables to separate your environment out.  Like the instructions, I created a mono-dev-env file: gedit mono-dev-env.  Here is my file:

#!/bin/bash
MONO_PREFIX=/home/skp/app/blog
GNOME_PREFIX=/home/skp/app/blog
export DYLD_LIBRARY_PATH=$MONO_PREFIX/lib:$DYLD_LIBRARY_PATH
export LD_LIBRARY_PATH=$MONO_PREFIX/lib:$LD_LIBRARY_PATH
export C_INCLUDE_PATH=$MONO_PREFIX/include:$GNOME_PREFIX/include
export ACLOCAL_PATH=$MONO_PREFIX/share/aclocal
export PKG_CONFIG_PATH=$MONO_PREFIX/lib/pkgconfig:$GNOME_PREFIX/lib/pkgconfig
PATH=$MONO_PREFIX/bin:$PATH
PS1="[mono] \w @ "

Then make sure that you source it in:

. ./mono-dev-env

I downloaded the various packages mostly from this page.  I setup a special directory called “downloads” for those file that I downloaded.

[mono] ~/app/blog @ mkdir downloads
[mono] ~/app/blog @ cd downloads

Next, I downloaded libgdiplus from the releases page.  I uncompressed it and installed it with these commands:

wget http://ftp.novell.com/pub/mono/sources/libgdiplus/libgdiplus-2.6.4.tar.bz2
tar -xjvf libgdiplus-2.6.4.tar.bz2
cd libgdiplus-2.6.4
./configure --prefix=$MONO_PREFIX
make
make install

Next, I installed mono from the releases page with these commands:

wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.6.4.tar.bz2
tar -xjvf mono-2.6.4.tar.bz2
cd mono-2.6.4
./configure --prefix=$MONO_PREFIX
make
make install

Next, I installed gtk-sharp from the same releases page:

wget http://ftp.novell.com/pub/mono/sources/gtk-sharp212/gtk-sharp-2.12.10.tar.bz2
tar -xjvf gtk-sharp-2.12.10.tar.bz2
cd gtk-sharp-2.12.10
./configure --prefix=$MONO_PREFIX
make
make install

Next, I installed mono-tools from the same releases page:

wget http://ftp.novell.com/pub/mono/sources/mono-tools/mono-tools-2.6.2.tar.bz2
tar -xjvf mono-tools-2.6.2.tar.bz2
cd mono-tools-2.6.2
./configure --prefix=$MONO_PREFIX
make
make install

Next, I installed mono-addins from the same releases page:

wget http://ftp.novell.com/pub/mono/sources/mono-addins/mono-addins-0.4.zip
unzip mono-addins-0.4.zip
cd mono-addins-0.4
./configure --prefix=$MONO_PREFIX
make
make install

Next, I installed monodevelop from the same releases page:

wget http://ftp.novell.com/pub/mono/sources/monodevelop/monodevelop-2.2.2.tar.bz2
tar -xjvf monodevelop-2.2.2.tar.bz2
cd monodevelop-2.2.2
./configure --prefix=$MONO_PREFIX
make
make install

Next, I installed gnome-sharp from the same releases page:

wget http://ftp.novell.com/pub/mono/sources/gnome-sharp2/gnome-sharp-2.24.1.tar.bz2
tar -xjvf gnome-sharp-2.24.1.tar.bz2
cd gnome-sharp-2.24.1
./configure --prefix=$MONO_PREFIX
make
make install

Next, I installed gnome-desktop-sharp from the same releases page:

wget http://ftp.novell.com/pub/mono/sources/gnome-desktop-sharp2/gnome-desktop-sharp-2.24.0.tar.bz2
tar -xjvf  gnome-desktop-sharp-2.24.0.tar.bz2
cd gnome-desktop-sharp-2.24.0
./configure --prefix=$MONO_PREFIX
make
make install

Next, I installed gnome-keyring-sharp.  With the help of a link or two, I found I could download it here:

wget http://ftp.novell.com/pub/mono/sources/gnome-keyring-sharp/gnome-keyring-sharp-1.0.0.tar.bz2
tar -xjvf  gnome-keyring-sharp-1.0.0.tar.bz2
cd gnome-keyring-sharp-1.0.0
./configure --prefix=$MONO_PREFIX
make
make install

Next, I installed Mono.Cairo.  With the help of this page, I found I could download it here:

wget http://cairographics.org/releases/cairo-1.8.10.tar.gz
tar -xzvf cairo-1.8.10.tar.gz
cd cairo-1.8.10
./configure --prefix=$MONO_PREFIX
make
make install

Next, I installed DBusSharp.  I found I could download it here:

wget http://www.ndesk.org/archive/dbus-sharp/ndesk-dbus-0.6.0.tar.gz
tar -xzvf ndesk-dbus-0.6.0.tar.gz
cd ndesk-dbus-0.6.0
./configure --prefix=$MONO_PREFIX
make
make install

Now, for the time of reconing — start monodevelop:

monodevelop

So, here is the About dialog:

screenshot_142

Installing Mono Dependencies

I pulled the latest version of Gnome-RDP, and ran into a few errors when compiling.

screenshot_134

Here is how I solved the problems:

For the “Reference ‘Mono.Cairo’ not found on system”, I found a tutorial page with links to the download.  I downloaded the latest version from the releases page.

I uncompressed the download into “cairo-1.8.8″, and opened a command-line into that directory.  I ran the configure with my custom path because I have a specially compiled version of MonoDevelop that I am using:

./configure --prefix=$MONO_PREFIX

Then, I compiled and installed:

make
make install

Finally, my project was requiring a specific version, and I downloaded a newer version.  So, I just unchecked the require version flag:

screenshot_141

For the “Assembly ‘NDesk.DBus'” error, I downloaded the library from the DBusSharp page.  Then, I uncompressed it into the folder “ndesk-dbus-0.6.0″.  Again, I added the prefix option because I had a special path for MonoDevelop:

./configure --prefix=$MONO_PREFIX

Then, I compiled and installed:

make
make install

Finally, the /tmp/tmp22c1daf8.tmp problem was caused by this message:

** (/home/skp/app/gnome-rdp/monodevelop/lib/mono/2.0/gmcs.exe:4434): WARNING **: The following assembly referenced from /home/skp/app/gnome-rdp/gnome-rdp-temp/gnome-rdp/gnome-rdp-dockyplugin/References/Docky.Items.dll could not be loaded:
Assembly:   notify-sharp    (assemblyref_index=17)
Version:    0.4.0.0
Public Key: 2df29c54e245917a
The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/home/skp/app/gnome-rdp/gnome-rdp-temp/gnome-rdp/gnome-rdp-dockyplugin/References/).
** (/home/skp/app/gnome-rdp/monodevelop/lib/mono/2.0/gmcs.exe:4434): WARNING **: The following assembly referenced from /home/skp/app/gnome-rdp/gnome-rdp-temp/gnome-rdp/gnome-rdp-dockyplugin/References/Docky.Items.dll could not be loaded:     Assembly:   notify-sharp    (assemblyref_index=17)     Version:    0.4.0.0     Public Key: 2df29c54e245917aThe assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/home/skp/app/gnome-rdp/gnome-rdp-temp/gnome-rdp/gnome-rdp-dockyplugin/References/).

I found the library’s home page, but I didn’t see a release yet.  So, I had to download from the repository.  First, I had to have the hg command installed:

sudo apt-get install mercurial

Then, I used the command from the homepage to download the code:

hg clone http://hg.circular-chaos.org/notify-sharp

But, that is a broken link.  Well, I am running out of time for this one on my lunch break, so I will have to come back to it.  I found a post suggesting to pull it from Gnome-Do.  I probably already have it installed somewhere.


RapidSVN: GUI Tool for Subversion

I just tried out RapidSVN to update a Gnome-RDP branch, and it worked pretty well.  I just installed it from Synaptic.

Here is the URL that I used to get just the branch:

https://gnome-rdp.svn.sourceforge.net/svnroot/gnome-rdp/branches/experimental.diskaccess

I just used the checkout option from the Repository Menu to get the copy of the branch.

screenshot_037

Then, I used Meld to copy my changes from my working directory into this branch.  Then, I used the Commit option in the Modify Directory.

screenshot_038

Then, I found my commit online, and it looked like it did what I needed it to do.

Hacking Gnome-RDP

The Gnome-RDP application has been very helpful to me in connecting to various remote machines.  So, I have been trying to contribute a few changes here and there.  Here is how I have been making my patches to contribute:

Step 1: Check out the Source Code

svn co https://gnome-rdp.svn.sourceforge.net/svnroot/gnome-rdp gnome-rdp

Step 2: Create a copy for comparing

cp -r gnome-rdp gnome-rdp-compare

Step 3: Compare and Copy my changes into what I checked out

meld previous/gnome-rdp-svn/branches/experimental gnome-rdp/branches/experimental/

Step 4: Create the patch

diff -Naur gnome-rdp-compare/branches/experimental/ gnome-rdp/branches/experimental/ > change.patch

Step 5: Publish the Patch

I created a new bug in the launchpad bug tracker, and I attached the patch there.

Here are the patches I have done so far:

I am most definitely welcome to suggestions for anything that I am doing wrong or could do easier.

Follow

Get every new post delivered to your Inbox.