Overview of additional packages: AdditionalPackages

giFT

A good description of giFT can be found on the SourceForge website http://gift.sourceforge.net/:

What is giFT, you ask? giFT is a modular daemon capable of abstracting the communication between the end user and specific filesharing protocols (peer-to-peer or otherwise). The giFT project differs from many other similar projects in that it is a distribution of a standalone platform-independent daemon, a library for client/frontend development, and our own homegrown network, OpenFT.

The goal of this project is to ensure that user interface developers never waste time with the low-level details of a protocol and that network programmers never waste time with the user interface details. Along those same lines it allows end users to control which protocols they use no matter which giFT interface they have selected as their favorite. Any new filesharing network can be supported without any change to the user interface.

A list of giFT clients can be found here: http://gift.sourceforge.net/software/guis.mhtml

Features

Supported networks:

Download

A pre-compiled package can be downloaded here: http://home.wanadoo.nl/imhoff/WL500g/giftd_0.11.7-1_wl500g.tar.gz
It has all supported networks enabled. Credits go to DeF.

Source

The source code can be downloaded here: http://sourceforge.net/project/showfiles.php?group_id=34618

Additional program's/library's used are unmodified and are available on the following site's:
http://gift.sourceforge.net/download.php
http://gift-fasttrack.berlios.de/
http://gift-soulseek.sourceforge.net/
http://www.gzip.org/zlib/
http://www.gnu.org/software/libtool/libtool.html

The rest of the library's are copied from the Asus cross-compile toolkit:
http://www.asus.com.tw/support/download/selectftp.aspx?l1_id=11&l2_id=2&l3_id=0&m_id=4&f_name=GPL_1756.zipzaqwedc

Compiling

To compile you need to have a Linux box with the Asus cross-compile toolkit properly installed and in your PATH. To make life a little bit easier I used a removable HD mounted on /mnt/usbfs and set all prefixes to a path in /mnt/usbfs, so the compiled in path's are correct.

GiFT and the plugins depend on the libtool library and zlib. You'll have to compile these library's first.(sorry lost my compile commands... but it is pretty straight forward...)

Next you can compile the giFT daemon it self. This can be done by the following commands:

  # ./configure --host=mipsel-linux --prefix=/mnt/usbfs/giftd --with-ltdl=/mnt/usbfs/libtool --disable-libvorbis --disable-imagemagick
  # make
  # make install

Check the output from the 'make' command to make sure that mipsel-linux-gcc is used instead of gcc! and that gcc isn't linking to the /usr of a other directory from the host system. You should also do this when you compile the plugins.

Once you compiled the giFT daemon and installed is you can compile the plugins. The compile command's for the different plugin's are given below and are all pretty much the same.

OpenFT

  # sed -i 's/-O2/-O0/' configure
  # export LDFLAGS=-L/mnt/usbfs/giftd/lib/
  # export CPPFLAGS=-I/mnt/usbfs/giftd/include/
  # ./configure --host=mipsel-linux --prefix=/mnt/usbfs/giftd --with-zlib=/opt/brcm/hndtools-mipsel-linux/mipsel-linux/lib --disable-libdb
  # make
  # make install

The first line disables/minimizes compiler optimalisation, else it doesn't compile. second en third line make sure that the above compiled version of giftd is used to link.

GnuTella

  # sed -i 's/-O2/-O0/' configure
  # export LDFLAGS=-L/mnt/usbfs/giftd/lib/
  # export CPPFLAGS=-I/mnt/usbfs/giftd/include/
  # ./configure --host=mipsel-linux --prefix=/mnt/usbfs/giftd  --with-zlib=/opt/brcm/hndtools-mipsel-linux/mipsel-linux/lib
  # make
  # make install

The --with-zlib configuration option must be used else configure will use the zlib from your host system.

FastTrack

  # export LDFLAGS=-L/mnt/usbfs/giftd/lib/
  # export CPPFLAGS=-I/mnt/usbfs/giftd/include/
  # ./configure --host=mipsel-linux --prefix=/mnt/usbfs/giftd
  # make
  # make install

SoulSeek
First you have to remove the line with "libSoulSeek_la_LIBADD = $(SL_LIBS)" from src/Makefile.am

  # export LDFLAGS=-L/mnt/usbfs/giftd/lib/
  # export CPPFLAGS=-I/mnt/usbfs/giftd/include/
  # ./configure --host=mipsel-linux --prefix=/mnt/usbfs/giftd  --with-zlib=/opt/brcm/hndtools-mipsel-linux/mipsel-linux/lib
  # make
  # make install

Now you have everything compiled for giFTd, but to run giFT you'll have to use some library's from the build environment. Because the standard library's in the WL500g don't provide all needed functions. To make giFT use other library's just copy the following library's to your external disk and use the LD_LIBRARY_PATH variable or "/lib/ld.so.1 --library-path <path> <executable>"(see the giftd.sh script in my distribution).

Required library's:

Installation

An online generic installation manual can be found here: http://gift.sourceforge.net/docs.php?document=install-unix.html

To install the package on the WL-500g just follow the next steps:

  1. Just extract the zip file to the highest directory of an external usb media(eg. zip disk, usbpen, usb-hd(not tested with multiple partitions))
  2. Configure the daemon using the files in the .giFT direcorty, but this is not necesary.
  3. Connect the external usb media to your router (If you use ext2 fs you have to mount the partition manualy).
  4. Now issue the /mnt/usbfs/giftd.sh command.
  5. You should now be able to connect to the server using a giftd client.

Files currently being downloaded are stored in: /mnt/usbfs/ftp_pub/unfinished. Completed files are stored in: /mnt/usbfs/ftp_pub/. To change these paths you can simply change them by editing the file: /mnt/usbfs/.gift/giftd.conf.

NOTE: when you run giFT for the first time and share a lot of file's giFT will try to calculate a hash for these file's. This can take VERY long on the WL-500g and will make giFT a little slow. It is suggested to wait till giFT is finished calculating the hashes before using it.

Related Links

Topics on the Chupa.nl forum:

Elsewhere:

Known problems

Todo