Compile: Difference between revisions

From Lundman Wiki
No edit summary
mNo edit summary
 
Line 1: Line 1:
FXP.One is a whole new system to FTP and FXP. It is not just another
Welcome to the FXP.One project.
[[FXP.One:Clients|FTP client]]. It is in fact a very flexible FTP/FXP engine. This engine does
all the hard work with dealing with FTP sites. Built into that is
a very simple but powerful API protocol. The idea is then, if someone
wants to do an FTP, or FXP, client they can then make one without
the FTP hassles. Currently there already are multiple [[FXP.One:Clients|clients]]. They
all talk to the FXP.One engine, and you can interchange the [[FXP.One:Clients|clients]].


That is, use one client to create and queue up some items and start the
queue process. At a later time, a different client, from a different location
can connect and check on the progress of that queue, change it, add to it and
so on.
<paypal></paypal>


Before you start, this is not just another FTP/FXP client. It does not
work that way.


'''FXP.One V2 released! Now comes with HTML5 WebSocket FTP Client! IRC Auto-trader bot! '''


The FXP.One engine features:
FXP.One consists of an engine, and
* Full FTP and FXP capabilities.
you would need (at least) one GUI to control it.
* SSL/TLS support, auto-sensing and forced.
* SSL/TLS data support, auto-sensing and forced.
* SSCN secure data FXP support.
* CCSN secure data FXP support.
* XDUPE aware for faster queue processing.
* Auto resume, or overwrite options
* Resume last (re-queue all resume items last for faster queue processing)
* FXP direction control (if one site is firewalled)
* PRET Pre-transfer support for ring-sites.
* Skip lists for both files and directories
* Pass lists for both files and directories (opposite to skip list)
* Move-first for both files and directories
* Automatic skip of empty files and directories.
* Encodes all file and directory names as to handle any locale.




==FXP.One engine==


[[Image:ufxp.screen1.jpg|right|thumb|100px|UFxp]]
The idea was to put all the hard code into an engine that is really
easy to interface with. This has worked surprisingly well, in that you
can FTP/FXP entirely by using "telnet". This means writing a client,
which is essentially just a Display Shell, quite trivial. This
includes people who wants to just script clients, like by using perl,
python and so on.


This also means you do NOT have to run the engine on the same machine that you run the GUI client(s).


==Getting Sources==
For example, if you had a stable host, perhaps even with a static IP
making the credentials for authentication easier, you could run the
engine there. Then connect to it by the client of your choice.


Github
You can disconnect this client (the engine will keep working if you do
https://github.com/lundman/FXP.One
not tell it to stop) and start a new (and possibly different) client
elsewhere, and resume control of your previous work.


Windows binary, now with less bugs!
But you can run the engine and client at the same time, and quitting
[http://www.lundman.net/ftp/FXP.One-v2.1-win32.zip FXP.One-v2.1-win32.zip] FXP.One, clomps and clomps-irc for Win32
at the same time, making it appear like a normal FTP/FXP client.
2.1 has clomps and clomps-irc fixes, stop crash
2.02 has FXP.Oned local transfer fixes, in particular, uploads




                         
'''If you are looking for a Windows binary, please download the bundle from the latest [[UFxp]] client'''
Older versions:
[http://www.lundman.net/ftp/fxp-one-2.0.tar.gz FXP.One-2.0.tar.gz]
[http://www.lundman.net/ftp/fxp-one-1.9.tar.gz FXP.One-1.9.tar.gz]
[http://www.lundman.net/ftp/fxp-one-1.7.tar.gz FXP.One-1.7.tar.gz]
[http://www.lundman.net/ftp/fxp-one-1.6.tar.gz FXP.One-1.6.tar.gz]
[http://www.lundman.net/ftp/fxp-one-1.4.tar.gz FXP.One-1.4.tar.gz]
[http://www.lundman.net/ftp/fxp-one-1.3.tar.gz FXP.One-1.3.tar.gz]
[http://www.lundman.net/ftp/fxp-one-1.2.tar.gz FXP.One-1.2.tar.gz]
[http://www.lundman.net/ftp/FXP.One.v1.1.b737.tgz FXP.One.v1.1.b737.tgz]
[http://www.lundman.net/ftp/FXP.One.v1.1.b735.tgz FXP.One.v1.1.b735.tgz]  
[http://www.lundman.net/ftp/FXP.One-v1.0.b598.tgz FXP.One-v1.0.b598.tgz]  


==Compiling and Install the engine==
  % git clone https://github.com/lundman/FXP.One
  % cd FXP.One/
  % ./configure
  % make
  % make install


Now create your SSL keys


[[CVS]] Use CVS for cutting-edge version.
  % openssl req -new -x509 -nodes -out lion.pem -keyout lion.pem


[[Compile]] FXP.One


[[FXP.Oned_Changelog|Changelog]]
Create your .FXP.One folder and copy lion.pem into it


[http://www.lundman.net/unix/FXP.One_commitlog.txt Old CVS Changelog]
  % mkdir .FXP.One && cp lion.pem .FXP.One/ 


==Clients==
Start the FXP.One engine


[[FXP.One:Clients|Clients]]
  % FXP.One  


(Please use gnuMake; which might be called make, gmake, gnumake etc on your system)


This should always compile the '''FXP.One engine'''. If ''configure'' can find the correct '''CDK''' library and '''ncurses''' on your system it will also compile the '''ncurses''' client '''FXP.cOne'''. Otherwise it will skip compiling this client.


==General tech specs==
'''Openssl-devel'''If you see a error like this:
''checking whether we need extra options to link OpenSSL... configure: error: Found linkable OpenSSL in , but it doesn't run, even with -R.  Maybe specify another using --with-ssl-dir?''


[[Error Codes]] For Protocol error codes and definitions.
You will need to openssl-devel for your system. On most Red Hat Variants it can be done with yum.  


[[YNA Type]] Yes, No and Auto type
yum -y install openssl-devel


[[Encoding]] The directory and file encoding scheme used.


[[Site Definition]] Current SITE definition and its members.
If you want to run '''clomps-irc''' you will need libpcre and headers, so most likely the -dv version if there is one:


[[Extra Site]] members also understood by the engine.
apt-get install libpcre3-dev


[[Client Site]] recommendations.


[[Phases]] required to do a file transfer. (need to do directory listing some day)


==API COMMANDS==


[[Protocol]] definition and specifications.
'''''SSL Issues'''''


If your trying to connect from your client and get errors about ssl it probably means that they versions of ssl you have on your engine and your client are not compatible.


For example on the client end we have ssl version OpenSSL 0.9.8e-fips-rhel5 and on the server and OpenSSL 09.8k on another. There are many reasons why this will not work and many more why it should. In this case you will need to compile OpenSSL 0.9.8K on the server you wish to use FXP.Oned on and build FXP.Oned against that version of ssl. It the example below we will build openssl-0.9.8k in a local directory and compile FXP.Oned to use it.


== Local transfers ==
To do this go to the openssl.org downloads page and download the version you want to use.
http://openssl.org/source/
wget http://openssl.org/source/openssl-0.9.8k.tar.gz
tar -xvzf openssl-1.0.0g.tar.gz
cd openssl-1.0.0g
./config -shared
make


[[FXPOne:local|local]]
Now go back to your FXP.Oned directory,
make clean
./configure LIBS=-ldl --with-ssl-dir=/home/erin/srcs/openssl-1.0.0g
make
make install


==Running the engine==




== Help ==
'''You will most likely need to create an SSL certificate for the engine since the default is only to accept secure connections.'''


[[FXPOne|FAQ]]
 
Since the engine will be saving your remote FTP site information, as
well as any User/Passwords you chose on disk, you should consider
encrypting these files.
 
FXP.One engine will do this for you. When you start the engine, it
will as for a "Key". This is the Key that it will use to encrypt all
its data files. If you do not want encryption, just press return.
 
For the first time you run FXP.One, just make up whatever Key you
want.
 
When you start the engine in future, you have to specify the correct
Key or it will not be able to read your data files. (And you will not
be able to login).
 
To start again, you need to delete all .FXP.One files, and the engine
will create these again.
 
When the user file does not exist, the FXP.One engine will
automatically create a login as "admin" with password "admin".
 
 
NOTE: If you edit .FXP.One.settings file, you can change the option
"ssl=1". By default it will only allow SSL connections. If you change
it to "ssl=0" you make it optional. This allows you to telnet to the
engine should you wish to check it out. Please read the
"engine/API.txt" for more information on the FXP.One protocol.
 
NOTE: Please be aware that all skiplist, movefirstlist and passlists
are separated by the "/" character.
That is, "fmovefirst=*.sfv/*.nfo".

Latest revision as of 01:27, 1 May 2015

Welcome to the FXP.One project.


Before you start, this is not just another FTP/FXP client. It does not work that way.


FXP.One consists of an engine, and you would need (at least) one GUI to control it.


FXP.One engine

The idea was to put all the hard code into an engine that is really easy to interface with. This has worked surprisingly well, in that you can FTP/FXP entirely by using "telnet". This means writing a client, which is essentially just a Display Shell, quite trivial. This includes people who wants to just script clients, like by using perl, python and so on.

This also means you do NOT have to run the engine on the same machine that you run the GUI client(s).

For example, if you had a stable host, perhaps even with a static IP making the credentials for authentication easier, you could run the engine there. Then connect to it by the client of your choice.

You can disconnect this client (the engine will keep working if you do not tell it to stop) and start a new (and possibly different) client elsewhere, and resume control of your previous work.

But you can run the engine and client at the same time, and quitting at the same time, making it appear like a normal FTP/FXP client.


If you are looking for a Windows binary, please download the bundle from the latest UFxp client

Compiling and Install the engine

 % git clone https://github.com/lundman/FXP.One
 % cd FXP.One/
 % ./configure
 % make 
 % make install

Now create your SSL keys

 % openssl req -new -x509 -nodes -out lion.pem -keyout lion.pem


Create your .FXP.One folder and copy lion.pem into it

 % mkdir .FXP.One && cp lion.pem .FXP.One/   

Start the FXP.One engine

  % FXP.One 

(Please use gnuMake; which might be called make, gmake, gnumake etc on your system)

This should always compile the FXP.One engine. If configure can find the correct CDK library and ncurses on your system it will also compile the ncurses client FXP.cOne. Otherwise it will skip compiling this client.

Openssl-develIf you see a error like this:

checking whether we need extra options to link OpenSSL... configure: error: Found linkable OpenSSL in , but it doesn't run, even with -R.  Maybe specify another using --with-ssl-dir? 

You will need to openssl-devel for your system. On most Red Hat Variants it can be done with yum.

yum -y install openssl-devel


If you want to run clomps-irc you will need libpcre and headers, so most likely the -dv version if there is one:

apt-get install libpcre3-dev



SSL Issues

If your trying to connect from your client and get errors about ssl it probably means that they versions of ssl you have on your engine and your client are not compatible.

For example on the client end we have ssl version OpenSSL 0.9.8e-fips-rhel5 and on the server and OpenSSL 09.8k on another. There are many reasons why this will not work and many more why it should. In this case you will need to compile OpenSSL 0.9.8K on the server you wish to use FXP.Oned on and build FXP.Oned against that version of ssl. It the example below we will build openssl-0.9.8k in a local directory and compile FXP.Oned to use it.

To do this go to the openssl.org downloads page and download the version you want to use.

http://openssl.org/source/
wget http://openssl.org/source/openssl-0.9.8k.tar.gz
tar -xvzf openssl-1.0.0g.tar.gz 
cd openssl-1.0.0g 
./config -shared
make 

Now go back to your FXP.Oned directory,

make clean 
./configure LIBS=-ldl --with-ssl-dir=/home/erin/srcs/openssl-1.0.0g
make 
make install

Running the engine

You will most likely need to create an SSL certificate for the engine since the default is only to accept secure connections.


Since the engine will be saving your remote FTP site information, as well as any User/Passwords you chose on disk, you should consider encrypting these files.

FXP.One engine will do this for you. When you start the engine, it will as for a "Key". This is the Key that it will use to encrypt all its data files. If you do not want encryption, just press return.

For the first time you run FXP.One, just make up whatever Key you want.

When you start the engine in future, you have to specify the correct Key or it will not be able to read your data files. (And you will not be able to login).

To start again, you need to delete all .FXP.One files, and the engine will create these again.

When the user file does not exist, the FXP.One engine will automatically create a login as "admin" with password "admin".


NOTE: If you edit .FXP.One.settings file, you can change the option "ssl=1". By default it will only allow SSL connections. If you change it to "ssl=0" you make it optional. This allows you to telnet to the engine should you wish to check it out. Please read the "engine/API.txt" for more information on the FXP.One protocol.

NOTE: Please be aware that all skiplist, movefirstlist and passlists are separated by the "/" character. That is, "fmovefirst=*.sfv/*.nfo".