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