174 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			174 lines
		
	
	
		
			7.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|                        README for the Indy 10 FPC Version
 | |
| 
 | |
| This is an effort to make Indy 10 work in FreePascal so that it is available on 
 | |
| a wide variety of platforms. At the same time, we want to follow the Indy 
 | |
| Coding Conventions and Standards" 
 | |
| (http://www.indyproject.org/sockets/Teams/Core/Docs/Standards/) as much as we 
 | |
| can so that NET is supported at the same time. The goal is to support as many 
 | |
| systems as we can.
 | |
| 
 | |
| Some success has been reported with:
 | |
| 
 | |
| Win32
 | |
| Win64
 | |
| Linux
 | |
| FreeBSD
 | |
| 
 | |
| Currently, we would like to support the following systems.
 | |
| 
 | |
| WinCE
 | |
| Mac OS/X (Darwin))
 | |
| 
 | |
| Remember that the success of this effort depends upon you and what you 
 | |
| contribute. Most of this is being done by people who choose to volunteer their 
 | |
| limited time.
 | |
| 
 | |
|                                   Requirements
 | |
| 
 | |
| This distribution requires FreePascal 2.2.0. We are unable to support earlier 
 | |
| 2.0 releases because there are some bugs in those versions and the package 
 | |
| structure changed.
 | |
| 
 | |
|                                     License
 | |
| 
 | |
| Read the COPYING file located in this distribution.
 | |
| 
 | |
|                            Installation Instructions
 | |
| 
 | |
| If you have a RPM-based distribution (such as Fedora or Mandravia) and you 
 | |
| install FreePascal as root, we recommend using the Indy RPM. As a user, setup 
 | |
| your user account to build RPM's with the advice from 
 | |
| http://www.rpm.org/hintskinks/buildtree/ and then use the makeindyrpm.sh script 
 | |
| to build the Indy RPM's. Then install the indy-fpc and indy-fpc-src RPM's that 
 | |
| you created. We do NOT distribute precompiled Indy RPM binaries. We do permit 
 | |
| others to build RPM's for distribution.
 | |
| 
 | |
| If you have a Debian-based Linux distribution and you have installed Free 
 | |
| Pascal as a Debian package, you can make .deb packages with "chmod 755 
 | |
| fpc/debian/rules", "dpkg-buildpackag -rfakeroot" and than install them with 
 | |
| "dpkg -install indy*.deb".
 | |
| 
 | |
| Otherwise, do the following:
 | |
| 
 | |
| Change directory to "fpc" and run "make all". If you are using 
 | |
| Windows, you must use the GNU BinUtils Make program that is included in most 
 | |
| FreePascal distributions.
 | |
|  
 | |
| Run "make all" followed by "make install" from the fpc directory. You may 
 | |
| be able to specify an install prefix by adding "INSTALL_PREFIX=fpcbasedir".
 | |
| 
 | |
| If you are running Lazarus, you may install the design-time package into 
 | |
| Lazarus. Just open, compile, and install the indylaz.lpk file located in the 
 | |
| lazarus directory.  Those design-time packages have not been tested yet.
 | |
| 
 | |
| You probably should read the Development Tutorial (aka Build FAQ) at 
 | |
| http://www.stack.nl/~marcov/buildfaq.pdf for more information about the 
 | |
| FreePascal build process.
 | |
| 
 | |
| In your programs, you should have the following in your main program file:
 | |
|  
 | |
|   {$IFDEF UNIX}{$IFDEF UseCThreads}
 | |
|   cthreads, 
 | |
|   {$ENDIF}{$ENDIF}
 | |
| 
 | |
| defined as the first entry in your uses clause. Then when compiling, use the 
 | |
| "-dUseCThreads" parameter. This is important on Unix systems because Indy uses 
 | |
| multithreading in most servers and in some client components.
 | |
| 
 | |
|                                   Known Issues
 | |
| 
 | |
| The Lazarus design-time packages have not been tested yet.
 | |
| 
 | |
| In IdStackLinux and IdStackUnix, we need a working TIdStackLinux.ReceiveMsg and 
 | |
| TIdStackUnix.ReceiveMsg method that the standard Posix recvmsg system call. 
 | |
| This the definition of several macros (CMSG_FIRSTHDR, CMSG_NXTHDR, CMSG_DATA, 
 | |
| CMSG_SPACE, and CMSG_LEN) plus recvmsg may need to be defined. This has been 
 | |
| reported as bug 0009430.
 | |
| 
 | |
|                                 For Linux Users
 | |
| 
 | |
| In Linux for i386, you can choose between using IdStackUnix or IdStackLinux. 
 | |
| The IdStackLinux backend uses the libc Kylix compatibility units instead of the 
 | |
| unit sockets and netdb. To use the Kyclix compatability units, pass the 
 | |
| -dKYLIX_COMPAT parameter to the Makefile OPTS= parameter. If you are using 
 | |
| another architecture, IdStackUnix will be used.
 | |
| 
 | |
|                                   ZLib Support
 | |
| 
 | |
| Indy is capable of using ZLib for compression capabilities using the ZLib 
 | |
| library (http://www.zlib.net/). If you are using TIdCompressorZLib or 
 | |
| TIdCompressionIntercept, your program will require ZLib. On most Unix-systems, 
 | |
| ZLib is usually installed because a lot of things depend on it. The ZLib 
 | |
| version available for an operating system may older than 1.2.3 so we can not 
 | |
| guarantee how well those will work.
 | |
| 
 | |
| On Win32 Operating Systems (Win9x and WinNT), there is no standard ZLib 
 | |
| installed by default. For Windows, you should install the official ZLIB1.DLL 
 | |
| from the http://www.zlib.net website in the same directory as your program 
 | |
| because there's several .DLL's with the same name and various versions may be 
 | |
| floating around. The ZLIB1.DLL you use must use the cdecl conventions. We 
 | |
| eventually hope to get ZLib statically linked into the Indy libraries like we 
 | |
| do with Borland Delphi versions.
 | |
| 
 | |
| On Win64 Operating SYstems, there is an unofficial Windows version at available 
 | |
| at http://www.winimage.com/zLibDll/ . You will need to use the ZLib version in 
 | |
| the "zlib123dllx64.zip" available on that website.
 | |
| 
 | |
| We do not yet support for ZLib in Windows CE because I have not yet located a 
 | |
| Windows CE .DLL for the current ZLib version 1.2.3.
 | |
| 
 | |
| We strongly urge you to use ZLib 1.2.3. Indy might work with some older 
 | |
| versions of ZLIB but do not rely on that. Indy uses the relatively new 
 | |
| functions; inflateBackInit_, inflateBackEnd, and inflateBack and we may use 
 | |
| other new functions as time goes on. The newest ZLib version also fixes bugs 
 | |
| including some security issues.
 | |
| 
 | |
| The Indy library itself has no direct dependencies on ZLib and you could use it 
 | |
| with ZLib because the ZLib shared library is dynamically loaded.
 | |
| 
 | |
|                                 OpenSSL Support
 | |
| 
 | |
| Indy is capable of using OpenSSL for some encryption functions such as NTLM and 
 | |
| SSL. If you are using the IdAuthenticationNTLM unit, 
 | |
| TIdSSLIOHandlerSocketOpenSSL or TIdServerIOHandlerSSLOpenSSL, your program will 
 | |
| require the OpenSSL libraries.
 | |
| 
 | |
| On many Unix systems, OpenSSL is installed by default but on a few, you may 
 | |
| have to install it yourself. In FreeBSD 6.2, Some checksum functionality is not 
 | |
| available. FreeBSD uses a 9.7.x version of OpenSSL that doesn't have that 
 | |
| functionality. FreeBSD 5.x is not tested or supported so your milage may vary.
 | |
| 
 | |
| On Win32, you can use the standard .DLL's from 
 | |
| http://www.openssl.org/related/binaries.html.
 | |
| 
 | |
| For a Win64 bit version of OpenSSL, We have a distribution at 
 | |
| http://www.indyproject.org/Sockets/fpc/OpenSSLforWin64.aspx or you can compile 
 | |
| the .DLL's yourself. Install the "Microsoft Platform SDK for Windows Server 
 | |
| 2003 R2" and ActivePerl located at 
 | |
| http://www.activestate.com/Products/activeperl/). More recent Microsoft SDK's 
 | |
| do not include the ml64 assembler and OpenSSL requires it. To compile it, go to 
 | |
| "Microsoft Platform SDK for Windows Server 2003 R2|Open Build Environment 
 | |
| Window|Windows XP 64-bit Build Environment|Set Windows XP x64 Build Environment 
 | |
| (Retail)" on the Start Menu. Then do the following:
 | |
| 
 | |
| > perl Configure VC-WIN64A
 | |
| > ms\do_win64a
 | |
| > nmake -f ms\ntdll.mak
 | |
| > cd out32dll
 | |
| > ..\ms\test
 | |
| 
 | |
| Note that some jurisdictions regulate the use and export of strong cryptography 
 | |
| while others may prohibit the use of strong cryptography but other nations may 
 | |
| have no restriction at all. If you have any questions about using or exporting 
 | |
| SSL, ask your lawyer.  We can NOT give you legal advise.
 | |
| 
 | |
|                                  Contacting Us
 | |
| 
 | |
| For peer support, you may use the 
 | |
| news://news.atozed.com/atozedsoftware.indy.fpc newsgroup. Do not E-Mail us if 
 | |
| you need help with your program or using Indy. Only E-Mail us if you have 
 | |
| specific improvements, code contributions, or wish to report success with some 
 | |
| particular target operating systems. Remember that all Indy developers 
 | |
| are volunteers who give their time without any compensation.
 | |
| 
 |