Difference between revisions of "Indy with Lazarus/de"
m |
|||
Line 4: | Line 4: | ||
== Indy für Lazarus == | == Indy für Lazarus == | ||
− | Derzeit werden unter anderem von den Kernentwicklern der Indy-Bibliothek Anstrengungen unternommen, Indy auf Lazarus zu portieren. Damit alle Funktionen von Indy mit dem FPC und Lazarus benutzt werden können, arbeitet der FPC-Entwickler Marco van de Voort mit den Indy-Kernentwicklern zusammen. Besonders erwähnenswert ist auch die gute Arbeit des Indy-Entwicklers JP Mugaas, der Indy10 in Verbindung mit dem FPC zum Laufen brachte und an großen Teilen des nativen unixrtl-Backends mitwirkte. | + | Derzeit werden unter anderem von den Kernentwicklern der Indy-Bibliothek Anstrengungen unternommen, Indy auf FPC/Lazarus zu portieren. Damit alle Funktionen von Indy mit dem FPC und Lazarus benutzt werden können, arbeitet der FPC-Entwickler Marco van de Voort mit den Indy-Kernentwicklern zusammen. Besonders erwähnenswert ist auch die gute Arbeit des Indy-Entwicklers JP Mugaas, der Indy10 in Verbindung mit dem FPC zum Laufen brachte und an großen Teilen des nativen unixrtl-Backends mitwirkte. |
− | + | Inzwischen läuft Indy nahezu vollständig mit dem FPC/Lazarus - insbesondere die Endnutzerfreundlichkeit wurde stark verbessert. Nur vereinzelte Dinge wie OpenSSL und comression benötigen zusätzliche Kenntnisse. Auch wird 64bit noch nicht vollständig unterstützt. | |
− | |||
− | |||
=== Requirements === | === Requirements === | ||
− | + | Derzeit unterstützt der FPC 2.0.4 fast alle Facetten von Indy, ausgenommen des Serverbugs hinsichtlich FreeBSD/MacOSX-Systemen (welcher erst mit dem FPC 2.1.1 behoben worden ist). | |
− | + | Wegen der großen Plattformunabhängigkeit von Indy10, konzentriert sich die Entwicklungsarbeit auf diese Version. Während die Portierung von Indy9 möglicherweise einfacher wäre, muss bedacht werden, dass Indy9 ausschließlich unter win32 läuft (und nur theoretisch auf Linux/x86 portiert werden könnte). | |
− | + | Aus diesem Grund empfehlen wir für Projekte, die Indy benutzen, so viel wie möglich mit Version 10 zu arbeiten. | |
− | |||
(For indy9, you might need to remove the overriding of tmemorystream.setsize method (Marcov: ???) to get telnet components working, but Indy9 hasn't been tested in a while) | (For indy9, you might need to remove the overriding of tmemorystream.setsize method (Marcov: ???) to get telnet components working, but Indy9 hasn't been tested in a while) |
Revision as of 22:27, 14 February 2008
│
Deutsch (de) │
English (en) │
español (es) │
français (fr) │
日本語 (ja) │
한국어 (ko) │
(Diese Seite wird zur Zeit übersetzt...)
Indy für Lazarus
Derzeit werden unter anderem von den Kernentwicklern der Indy-Bibliothek Anstrengungen unternommen, Indy auf FPC/Lazarus zu portieren. Damit alle Funktionen von Indy mit dem FPC und Lazarus benutzt werden können, arbeitet der FPC-Entwickler Marco van de Voort mit den Indy-Kernentwicklern zusammen. Besonders erwähnenswert ist auch die gute Arbeit des Indy-Entwicklers JP Mugaas, der Indy10 in Verbindung mit dem FPC zum Laufen brachte und an großen Teilen des nativen unixrtl-Backends mitwirkte.
Inzwischen läuft Indy nahezu vollständig mit dem FPC/Lazarus - insbesondere die Endnutzerfreundlichkeit wurde stark verbessert. Nur vereinzelte Dinge wie OpenSSL und comression benötigen zusätzliche Kenntnisse. Auch wird 64bit noch nicht vollständig unterstützt.
Requirements
Derzeit unterstützt der FPC 2.0.4 fast alle Facetten von Indy, ausgenommen des Serverbugs hinsichtlich FreeBSD/MacOSX-Systemen (welcher erst mit dem FPC 2.1.1 behoben worden ist).
Wegen der großen Plattformunabhängigkeit von Indy10, konzentriert sich die Entwicklungsarbeit auf diese Version. Während die Portierung von Indy9 möglicherweise einfacher wäre, muss bedacht werden, dass Indy9 ausschließlich unter win32 läuft (und nur theoretisch auf Linux/x86 portiert werden könnte). Aus diesem Grund empfehlen wir für Projekte, die Indy benutzen, so viel wie möglich mit Version 10 zu arbeiten.
(For indy9, you might need to remove the overriding of tmemorystream.setsize method (Marcov: ???) to get telnet components working, but Indy9 hasn't been tested in a while)
The port is fairly stable, and JP Mugaas has done a great deal to improve the quality of the release, a set of makefiles inclusive
Downloads / Links
Current snapshots (for die hards only) are at
- Indy9:
- Indy10:
- converted Indy10 demoes : converted Indy10 demoes
- www.indyproject.org: Indy 10 Lazarus/FreePascal Port Recently, this archive started to include demoes too.
What works, what not
Indy9:
- Windows should largely work. Lots of demoes ported.
- Linux not or barely. No hope at non Linux/x86 (non-Kylix) targets.
Indy10: (Indy10ForFPC branch)
- Windows and Unix: clients work, servers sometimes have problems. Haven't found a pattern in that yet. (should've been fixed)
- The main work for native Unix RTL done. Servers Clients seem to work with FreeBSD and OS X
All: secure versions not tested yet.
Short term plans
- Convert demoes to demonstrate/test workings.
- Fix bugs and enter them back into FPC or Indy RCS.
Problems
- Indy9 and Indy10 are mutually exclusive, which causes problems for deployment, even the default is a problem:
- Indy9 is more used and proven in the industry.
- Indy10 is more portable, and better long term. However uptake seems to be low, and there is not much movement at Indy anymore.
- How to deploy? Parts belong to Lazarus, parts to FPC.
- Lot of pkgs and demoes have paths in them. How to centrally fix them so that unexperienced users can build them?
- Lazarus problems
- Transparancy problems of icons
- component tabs don't scroll, if you put a lot of components in one tab, they are not selectable. workaround implemented: JP Mugaas separated them into Indy clients A-M and N-Z etc. Also, meanwhile Lazarus changed to two rows of components per tab.
- Indy demoes (specially Indy10's) are not very suitable for multiplatform usage. Their setup is awfully windows specific, with spaces in paths, deep nested dirs, and useless baggage (C# code). A short working set of demoes will have to be created.
Bugs
- Indy10 servers didn't work before due to an exception occuring during startup, which shut everything down. You need a 2.1.1 snapshot to fix this (pthread_kill problem). This probably also affects Mac OS X.
- During demo conversion, the bindings property is often wrongly converted. This can result in strange errors, specially because Indy seems to bind to the same port using both IPV4 and IPV6 from time to time. Not fully debugged yet.
How to install
Matthijs: So it is not perfect yet, but you want to try it. Here is how you install it in Lazarus.
- Open and compile indysystemlaz.lpk
- Open and compile indycorelaz.lpk
- Open and compile indyprotocolslaz.lpk
- Open, compile and install dclindycorelaz.lpk
- Open, compile and install dclindyprotocolslaz.lpk
Then rebuild Lazarus and you will see a 15 tab's with Indy components.
How to install on debian/ubuntu
- # cd indy-10.2.0.1/fpc
- # chmod +x debian/rules
- # touch README
- # sudo apt-get install fakeroot
- # dpkg-buildpackage -rfakeroot -uc
- # cd ..
- # sudo dpkg -i *.deb
- install package indylaz.lpk in lazarus
How to install [2]
If you couldn't install Indy for Lazarus with tips above, you can try this...
From Yahoo! Brazil, Lazarus Group (User Everaldo)
Version installed on Lazarus 0.9.24 using component indy-10.2.0.1.
- Unzip the component from file tar.gz (must be this file, the "zip file" does not work) in directory $(LazarusDir)\components;
- Go to directory $(LazarusDir)\components\indy-10.2.0.1\ and to create inside them a directory named "saved";
- Copy the content of the directory $(LazarusDir)\components\indy-10.2.0.1\lazarus\ to directory "saved" created above;
- Copy the content of directory $(LazarusDir)\components\indy-10.2.0.1\fpc\ to directory $(LazarusDir)\components\indy-10.2.0.1\lazarus, and rewrite all files, ok;
- Get the content of directory "saved" and copy inside of $(LazarusDir)\components\indy-10.2.0.1\lazarus and you can delete "saved" directory now;
- Install the package laz.lpk (available in $(LazarusDir)\components\indy-10.2.0.1\lazarus\indy) of conventional way.
On LINUX the path is: /usr/lib/lazarus/components/indy-10.2.0.1/, right!!!
I hope this was helpful for you, good luck!!!