Sunday, July 06, 2008

Giver -- easy file sharing between computers

I had seen this little app in a video and it looked really good. To transfer a file from one computer (on your network) to another, you just have to drag the file to the name of the recipient you want to give it to. And Giver detects, almost immediately, all computers on your network that have Giver open without you having to do anything. The recipient then gets a message and can accept or reject the offered file.
So, I installed Giver on openSUSE 11.0 (available in Add/remove software).
Then, as I don't have openSUSE on any other computer, I tried to get Giver installed in Ubuntu Hardy on the Dell. Well, this wasn't easy but I eventually got it done.
First I tried a year-old howto in Ubuntu Forums which didn't work for me I think because a lot of the dependencies were outdated or not available as specified.
So then I tried this guide and this was a lot more successful but still needed some work (as this was also one year old when I tried it).
So, here's what I did, step-by-step

sudo apt-get install mercurial
hg clone http://hg.circular-chaos.org/notify-sharp
cd notify-sharp/
sudo apt-get install autoconf automake
autoscan
automake --add-missing
autoreconf
(This gave an error which recommended running automake --add-missing again which I did followed by autoreconf again and then everything was fine. Don't understand why I get this error)

Add this repo "deb http://directhex.mfgames.com/ hardy main" (w/o quotes) to System>>Administartion>>Software Sources>>Third Party Software and then add its authentication key from here. For this, click Saved Linked Content as ...to the desktop and import this key file under the Authentication tab of Software Sources)
sudo apt-get install mono-runtime mono-1.0-devel mono-2.0-devel libmono-system-runtime2.0-cil mono-mcs libmono-dev mono-gmcs monodoc
./configure
make
sudo make install

Now you need to download giver and compile and install it. However, this will fail because of absence of avahi-sharp. So you need to do the following first (which I copied from here).
sudo apt-get update
sudo apt-get install module-assistant build-essential
sudo apt-get install fakeroot dh-make debhelper debconf libstdc++5 linux-headers-$(uname -r)
sudo aptitude install libglib2.0-dev libdbus-1-dev libdbus-glib-1-dev libgtk2.0-dev libgnomevfs2-dev libmusicbrainz4-dev libnautilus-burn-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libmono-dev monodoc libsqlite3-dev libavahi-core-dev libavahi1.0-cil

Now download giver-0.1.8.tar.gz from here to your Desktop
cd ~/Desktop
tar -zxvf giver-0.1.8.tar.gz
cd giver-0.1.8
./configure
make
sudo make install

Assuming you got no errors, type this
export MONO_PATH=/usr/local/lib/mono/notify-sharp

Now you should have a workable Giver in Applications>>Internet

Now, however, although mine launched and a a recipient (Me, on the same OS with my IP and a port number). Then I launched Giver in openSUSE on the Mac and another recipient showed up with and openSUSE-Mac hostname. However, this disappeared after about 10 seconds before I had a chance to do any file sharing. So, this'll have to be investigated.
Nevertheless, I transferred a file from the Dell desktop to myself (as a recipient) and I got notified about this and I accepted and a second copy of that file showed up on my desktop. So this looks very good.
The big puzzle now is what happened to my openSUSE recipient. Also, in openSUSE, no Ubuntu-Dell recipient shows up so the problem seems to be on the openSUSE side.

Edit (7-07-08):
I had to shut off the firewall in openSUSE for giver to see giver on the Dell. Now I could tranfer files from the Dell to the Mac (in openSUSE) but not the other way (I comment on this later today).

Edit (7-07-08):
I used the above guide to install Giver in Ubuntu on my MacBook. The install went fine without errors, but Giver wouldn't launch even by typing "/usr/bin/giver".
Turns out that giver was installed in /usr/local/bin/giver.
However, even typing this didn't launch anything as it just gave me a command not found.
So, I had a look at the file /usr/local/bin/giver and it was somewha different to what was in Ubuntu on the desktop.
So what I had on the Mac was
#!/bin/sh

prefix="/usr/local/"
exec_prefix="/usr/local/bin"
libdir="/usr/local/lib/giver"

cd ${libdir}

exec -a "Giver" mono "Giver.exe" "$@"


However, I found that sash (which is referred to in the first line) isn't installed in my Ubuntu on the Mac. So, I modified this file to
#!/bin/bash

prefix="/usr/"
exec_prefix="/usr/bin"
libdir="/usr/local/lib/giver"

cd ${libdir}

exec -a "Giver" mono "Giver.exe" "$@"

as I had bash installed.
Then I typed /usr/bin/giver and Giver launched.
And, it immediately recognised giver on the dell.
Strangley, though, it didn't list itself as a recipient (on the Dell, I have two recipients -- the Mac Ubuntu and the Dell Ubuntu).
Indeed, on the Dell, I can "transfer" a file from the desktop to the same desktop. Of course, this is a totally useless benefit but it's strange that it's different on the two computers.

Edit within an Edit: Afetr I recompiled Giver on the Mac,and launched it again using /usr/bin/giver, now two recipients were shown on the Mac.

In any event, I can now transfer files from one computer to the other (in both directions) and the notifications show up on both computers and everything seems to work fine.
Also, while I could transfer files from Ubuntu-dell to openSUSE-mac, I could NOT transfer anything from openSUSE-mac to the Dell.
Indeed, something is very strange with the install of giver in openSUSE even though it it straight from the repos and already compliled. I don't know is this is because giver seems to be a Gnome app and I have KDE4.1 in openSUSE 11.0. (Note that I have Gnome 2.22 in Ubuntu on both the Mac and the Dell).
Another problem seems to be that Giver gets messed up when the computer is rebooted and has to be recompiled in order for it to work again. I have currently no explanation for this and I will have to investigate.
Nevertheless, this seems like a very nice, convenient and potentially very easy-to-use app. For this reason, I'm surprised that it doesn't seem to be very popular.

Edit (7-07-08):
Just tried a test where I transferred two files from Ubuntu-mac to Ubuntu-dell and everything went absolutely smoothly. This really is a potentially marvellous app. Once again, can't understand why it's not amazingly popular particularly in an office environment. Of course, there are many file-sharing techniques and maybe giver is not seen as having anything special. But, for me it's ideal if you're having an online meeting and want to immediately transfer a file, a photo or a song to whoever it at the meeting.

Edit (7-07-08):
Another test where I trasfered a 204 MB folder containing 1161 items in 13 minutes which is equivalent to 268 kB/s -- not bad.

Edit (7-07-08):
I should point out that Giver (in Ubuntu anyway on either computer, does not launch either from Applications>>Internet>>Giver or from Alt-F2 (fn-Alt-F2 on the Mac). The only way, up to now that it launches is by typing /usr/bin/giver in a terminal.

Edit (7-07-08):
Attempts to transfer Tasque tasks or Tomboy notes from one computer to the other, as shown in the video, failed. Have to look into this as this would be very useful.

1 comment: