Installation instructions for gFTP
----------------------------------

[Requirements]

* gtk+ 1.2.3 or higher. You can download gtk+ and glib from my website. You 
  will need gtk+-1.2.6.tar.gz and glib-1.2.6.tar.gz. You can also download 
  these directly from the gtk+ ftp site at ftp://ftp.gtk.org/pub/gtk/v1.2. 
* X11R6 or later.
* pthread libraries. If you have a libc6 based machine (Debian 2.x, Red Hat 
  >= 5.x), you should already have the pthread libraries installed. If you 
  have a libc5 based machine (Slackware), you will need to install 
  LinuxThreads. You can download it from my website here. Also, if you don't 
  have LinuxThreads installed, you most likely don't have thread safe X 
  libraries. You must have thread safe X libraries or gFTP will constantly
  crash. You can download some thread safe X libraries off my website (see
  URL at bottom of file). If you are on a platform other than Linux, you may 
  want to take a look at the FSU Pthreads library
  (http://www.informatik.hu-berlin.de/~mueller/pthreads).
* I would recommend running X in at least 800x600 mode.

[Installation Instructions]

* If you do not want to compile this program yourself, you can check my
  webpage (see URL at bottom). I have some static binaries available and have
  DEBs for Debian and RPMs for RedHat.
* If you are compiling gFTP yourself, extract the files from the distribution 
  with tar -zxvf gftp-<version>.tar.gz
* Go to the gftp-<version> directory and type 
	
	configure
	make

  The command configure will generate a Makefile for your machine, and make
  will compile a binary for your machine. By default, when you run
  configure, it will install gftp in /usr/local/bin/gftp. If you want to
  change this to say, /usr, add the --prefix=/usr to the configure line. It
  will then install the binary in /usr/bin/gftp, and the public files in
  /usr/share/gftp
* If the compile suceeds without any errors, you can type make install to 
  install the binary in /usr/local/bin. This will also copy some necessary
  files to /usr/local/share/gftp. If you do not have root on your machine to
  install these files, copy the contents of the sample.gftp directory to
  ~/.gftp.
* [OPTIONAL] If you compiled gFTP on a platform other than Linux, could you
  please send me your OS name/version and I will post on my website
  (http://gftp.seul.org/faq.html) the machines gFTP has been successfully 
  compiled on.
* You may want to glance at the USERS-GUIDE file that comes with this
  distribution. It contains a little bit of information about how to use
  gftp.

[Frequently Asked Questions]

Here is a list of frequently asked questions about gFTP. You can always find
the latest version of this FAQ off my website (see URL at bottom)

*******************************************************************************

Q: What systems is gFTP known to run on?

A: I develop gFTP on a Debian GNU/Linux 2.1 machine. Here is a list of other 
   platforms I have gotten successful compile reports on: 

     * Solaris 2.5.1 Sparc, X11R5 
     * Solaris 2.7, UltraSPARC 10 
     * SGI IRIX 6.5 
     * FreeBSD 

   I have gotten reports about successful compiles more platforms, but I lost
   those emails. If you got gFTP to compile on a platform not listed here, 
   please email me about it and I'll add it to this list. If you are having
   problems compiling gtk+ or gftp on another platform, try using GNU make 
   instead of your vendor supplied make. Most of the vendor supplied makes 
   are brain-dead. 

*******************************************************************************

Q: When I try to compile gFTP, I get some errors. One of them is undefined
   symbol LC_ALL

A: Try typing make distclean ; configure --with-included-gettext and it
   should compile fine then. 

*******************************************************************************

Q: How do I report bugs in gFTP?

A: If you find ANY bugs in gFTP, please email them to me at
   masneyb@seul.org. If there is a newer version of gFTP available,
   please try it first before you send me a bug report. If the problem
   exists in that version, feel free to email me about it. When sending in 
   bug reports, please try to be as descriptive as possible. Send me what 
   OS/version you are running, what compiler you are compiling with, and any 
   other important information. If you get gFTP to crash, it would be very 
   helpful if you could send me a backtrace. If you do not know how to do a 
   backtrace, download the source code from my website. Edit the Makefile,
   and make sure that -g appear in the CFLAGS variable. Then recompile gFTP,
   but do NOT do a make install because it will install a stripped binary in 
   $PREFIX/bin. Then type gdb ./gftp. Once you have a (gdb) prompt, type r.
   Once you get gFTP to crash, go back to that terminal window, and type bt,
   and send me that output in an email message along with a short description
   of how it happened.

*******************************************************************************

Q: How do I suggest a new feature for gFTP?

A: You can email me any suggestions you think would make gFTP better. Before
   you do this, make sure to look at the TODO file just to make sure it
   isn't already listed there. But right now, bug fixes have the highest
   priority of all.

*******************************************************************************

Q: What happens when I double click a file in the remote window?

A: It will download it to a temporary file under ~/.gftp/temp. After the
   file is downloaded, the file viewer will open this file. It will delete
   this file after you close the file viewer, so if need to save this file,
   pull up an xterm and copy the temp filename to another one. The file that 
   the viewer has open is displayed in it's titlebar.

*******************************************************************************

Q: I downloaded a binary off the internet and everytime I run gFTP I get an
   error saying: undefined symbol :__register_frame_info

A: ObiTuarY <obituary@freshmeat.net> says:

   "This happens when you compile a library with egcs. The library then has 
   the __register_frame_info symbol. If you link a program to it, it will 
   require this symbol. Now if you have the exact same library compiled with
   gcc 2.7.2.3 it won't have this symbol. The thing about glibc 2.1 under Red 
   Hat 6 is it was compiled with egcs and glibc 2.0.x under Red Hat 5.x was 
   compiled with gcc 2.7.2.3, therefore it's not an incompatibility between 
   glibc 2.0.x and 2.1.x. What some people do for that is they get the .o file 
   of egcs with __register_frame_info in it and link into the program so it's 
   always there, that way it works with libs compiled with egcs or gcc 2.7.2.3.
   (in /usr/lib/gcc-lib/i386-*-linux/egcs-*/ )"

   Another alternative, is to recompile gftp on your machine, or you can
   download some RPMs off my website that were compiled against Red Hat 5.2.

*******************************************************************************

Q: I upgraded to a newer version of gFTP and now I am getting some warnings
   about some config file lines not having enough arguments, and it cannot find
   html.xpm. 

A: I removed some icons from the distribution. Edit your ~/.gftp/gftprc
   file. At the bottom of the file, there are some ext= lines. Some of them
   have html.xpm, rpm.xpm and pdf.xpm. Remove these lines and gFTP will
   startup fine. Don't worry about fixing he warnings...they will go away 
   themselves.

*******************************************************************************

Q: Where does gFTP store it's options?

A: gFTP will automatically create a ~/.gftp directory when it is first run.
   Your config file is ~/.gftp/gftprc, and this is where all of gFTP's
   settings are stored. The config file is well commented, so take a glance
   at it and see if there is anything you want to change.

*******************************************************************************

Q: I am trying to connect to a site that only allows me to log in once.
   Well, I connect to it fine, and then when I go to download a file, it logs
   in again, and the ftp server kills my connection. What can I do about this?

A: Go under FTP->Options and turn on Use Same Connection

*******************************************************************************

Q: I am trying to compile your program and I get some parse errors before
   GdkDragContext. What's wrong?

A: You have an older version of gtk installed on your system. If you are
   using Red Hat or Debian Linux, simply remove the gtk and glib devel
   packages. You can still leave the gtk 1.0 libraries installed.

*******************************************************************************

Q: I am having a hard time using the drag and drop in gFTP. How do I use it?

A: To drag from the file listboxes in gFTP, you have to drag with button #3.
   On a two button mouse, you have to hold down both buttons. For this to work
   tho, you have to edit your XF86Config file, and go to the Pointer section.
   You have to make sure Emulate3Buttons is in there. Here's the section out of
   my config file:

   Section "Pointer"
      Protocol        "PS/2"             # This will depend on your mouse
      Device          "/dev/mouse"       # This will also depend on your mouse
      Emulate3Buttons                    # You need this for a 2 button mouse
   EndSection

*******************************************************************************

Q: I have a libc 5 based machine and everytime I run gFTP it instantly crashes. 
   I get an error something like: Gdk-ERROR **: an x io error occurred 
   What's wrong?

A: Your X libraries are not thread safe. They must be compiled with 
   -D_REENTRANT. You can either recompile your X libraries, or you can
   download some from my webpage at
   http://gftp.seul.org/XFree86-libs-3.3-2_threading.i386.tgz


Brian Masney <masneyb@seul.org> 
