gFTP README
-----------

[Requirements]

* GTK+ 1.2.3 or higher. GTK+/Glib is included with most systems now. If you 
  don't have it installed, you may want to check to see if your vendor has a 
  package available. If not, you can download the latest version of GTK+ and 
  Glib from ftp://ftp.gtk.org/pub/gtk. gFTP will work with version 1.2 or 2.0 
  of GTK+, I would suggest using GTK+ 2.0, but installing GTK+ 2.0 does 
  require installing more packages onto your system.
* 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 < 7.0), you will need to install 
  LinuxThreads from my website. 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. If you are on a platform other than Linux, 
  you may want to take a look at the FSU Pthreads library at 
  http://www.informatik.hu-berlin.de/~mueller/pthreads.
* I would recommend running X in at least 800x600 mode.
* pkgconfig 0.9.0 or newer.  pkgconfig is available at
  http://www.freedesktop.org/software/pkgconfig.

[Installation Instructions]

* If you do not want to compile this program yourself, you can check my
  webpage. I have DEBs for Debian and RPMs for RedHat available. If you're 
  looking for Solaris binaries, check out http://www.sunfreeware.com
* 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 configure script 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 with the prefix /usr/local, so the gFTP
  binary will be /usr/local/bin/gftp. You can change this by typing 
  configure --prefix=/usr, and it will then install the gFTP binary in 
  /usr/bin/gftp.
* If the compile suceeds without any errors, you can type make install to 
  install the binary. This will also copy some necessary
  files to <install prefix>/share/gftp. If you do not have root on your 
  machine to install these files, copy the contents of the docs/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
  the operating systems 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 it.

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

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

Q: I'm having problems with installing the RPMs off of your website. 

A: If the RPM installs fine, but when you run gFTP, if you get an error about the symbol GCC_3.0 not found, then you need to recompile the RPM. Or if you try to install the RPM and you get an error about unresolved dependency libreadline.so.1 and you have the readline RPM installed, you'll also have to get a different gFTP RPM. The RPMs on my website I built on a Debian GNU/Linux i386 box with gcc 3.0.3.

I would first suggest checking your distributions development tree (RedHat Rawhide or Mandrake Cooker for example), they probably have a RPM of the latest gFTP there. If not, download the SRC RPM and type rpm -i gftp-version-1.src.rpm. It will build a RPM and put it in /usr/src/redhat/RPMS/arch or /usr/src/rpm/RPMS/arch (arch is i386, sparc, axp, etc...)


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

Q: What systems is gFTP known to run on?

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

     * FreeBSD/NetBSD/OpenBSD/BSDI
     * Solaris 
     * IRIX
     * Digital UNIX
     * HP/UX 11

   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: I'm having problems getting SSH2 transfers to work. I keep getting the error:
   Error: Message size XXXXXXXX too big from server

A: What probably is the problem, sftp-server isn't in your path on the remote
   server. When you try to connect to the remote server, you'll see the command
   gFTP is trying to run, and it'll look something like:

   ssh -e none -l username hostname "echo -n xsftp ;  sftp-server"

   Try running this command. If you get a prompt asking:

   The authenticity of host 'hostname (###.###.###.###)' can't be established.
   RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
   Are you sure you want to continue connecting (yes/no)?

   Tell it yes. gFTP won't even try to answer this question for you at the
   moment. Then, if you get the following output:

   Enter passphrase for key '/home/brian/.ssh/id_dsa':
   xsftp
   bash: sftp-server: command not found

   You'll have to set the path to the sftp-server program. Alternatively you 
   could go under FTP->Options->SSH and enable Use sftp subsys. If you enable
   this, then you don't have to know the remote path to your sftp executable.
   But if you enable this, gFTP won't be able to send your password over to
   the ssh client. So if you're not using ssh-agent, then ssh will spawn the
   ssh-askpass program to grab your password.

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

Q: What is the difference between the SSH and SSH2 protocols?

A: The SSH protocol uses sftp >= 0.7 from http://www.xbill.org/sftp. SSH2 uses
   the native file transfers found in the commercial SSH2 and in later versions
   of OpenSSH. The SSH2 protocol uses the sftp-server executable on the remote 
   host and the SSH protocol uses the sftpserv executable.

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

Q: How do I force running the text or gtk+ version of gFTP?

A: To run the text port, you can type gftp-text or to run the gtk+ port, you
   can run the gftp-gtk. The gftp command is just a shell script that sees
   if your DISPLAY variable is set, and if so it'll run the appropriate version

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

Q: Is there a way for gFTP to download a bunch of files/directories and then
   exit when it's completed?

A: Yes, the text port of gFTP supports this well. You can type:

   gftp-text -d ftp://ftp.somesite.com/someplace

   If someplace is a directory, it'll automatically download all its subdirs
   as well. If you want to transfer a file through ssh instead of ftp, just
   change the ftp:// to ssh://

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

Q: In the GTK+ version of gFTP, do I have to enter a port, username and password
   to connect to a ftp server?

A: No you don't. If you leave the port blank, it'll default to the default port
   for the protocol you selected (port 21 for FTP). If you leave the username
   blank, it will default to logging in as anonymous

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

Q: How do I set up my HTTP Proxy server?

A: Go under FTP->Options and hit the FTP tab. Enter HTTP as the proxy type
   and fill in your proxy server info on that screen. Then hit the HTTP tab
   and enter your same proxy server info there.

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

Q: When gFTP tries to get the remote directory listing, it sends LIST -L, but
   the remote server sends an error back

A: Go to FTP->Options and turn off resolve remote symlinks. gFTP will then send
   LIST instead of LIST -L. You should only have to do this if you are
   connecting to Novell servers.

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

Q: When gFTP tries to get the remote directory listing, I get an error that
   says: Cannot create a data connection: Connection refused

A: Go under FTP->Options and turn off passive file transfers. Instead of 
   sending the PASV command to open up the data connection on the server side,
   the data connection will be opened up on the client side, and the PORT
   command will be sent to the server instead.

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

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@gftp.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: 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: This is from upgrading from a very old version of gFTP to a newer version. 
   I removed some icons from the distribution (0.20 to 0.21). 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. Your bookmarks are
   stored in the file ~/.gftp/bookmarks

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

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://www.gftp.org/XFree86-libs-3.3-2_threading.i386.tgz


Brian Masney <masneyb@gftp.org> 
gFTP Official Webpage - http://www.gftp.org/

