Difference between revisions of "Indy with Lazarus/de"

From Free Pascal wiki
Jump to navigationJump to search
m
m
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{Indy with Lazarus}}
 
{{Indy with Lazarus}}
  
(Diese Seite wird zur Zeit übersetzt...)
 
 
== Indy für Lazarus ==
 
== Indy für Lazarus ==
  
A new attempt at converting Indy is being undertaken by the Indy core team. FPC developer Marco van de Voort is working with Indy core to get Indy fully working with FPC/Lazarus. Specially Indy's JP Mugaas did a lot of good work in getting Indy10 to work with FPC. The native unixrtl backend is mostly his work too.
+
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.
  
Currently Indy10 is nearly fully working, and end-user usability has been improved a lot. Only special topics like OpenSSL and compression might need additional knowledge. 64-bit support hasn't entirely been validated either.
+
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.
 
Hint: I'm not very interested in support the Kylix side of Indy. (anything that uses unit libc). I ported it only as step up to native Unix RTL using Indy apps.
 
 
 
=== Requirements ===
 
  
Currently, FPC 2.0.4 is very close to being able to use indy in all its facets, except for the server bug on FreeBSD/Mac OS X (which requires 2.1.1)
+
=== Versionshinweise ===
  
Since Indy10 now works for all major targets, we focus on this version. While conversion to Indy9 might be simpler for people, keep in mind that it only works on win32. (and theoretically could be ported to Linux/x86).
+
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).  
  
Therefore we recommend people to work with 10 as much as possible.
+
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)
  
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
+
Die Lazarus-Portierung von Indy läuft ziemlich stabil. JP Mugaas leistete einen großen Beitrag zur Qualität der Portierung, inklusive zugehöriger Makefiles.
  
 
=== Downloads / Links ===
 
=== Downloads / Links ===
  
Current snapshots (for die hards only) are at
+
Aktuelle Snapshots (for die hards only) gibt es hier:
 
*  Indy9:  
 
*  Indy9:  
** [http://www.stack.nl/~marcov/indy/indy9.zip Indy9, includes demoes] and
+
** [http://www.stack.nl/~marcov/indy/indy9.zip Indy9, inklusive Demos] und
 
* Indy10:
 
* Indy10:
** converted Indy10 demoes : [http://www.stack.nl/~marcov/demo10.zip converted Indy10 demoes]  
+
** angepasste Indy10-Demos : [http://www.stack.nl/~marcov/demo10.zip angepasste Indy10-Demos]  
** www.indyproject.org: [http://www.indyproject.org/Sockets/fpc/index.en.html Indy 10 Lazarus/FreePascal Port] Recently, this archive started to include demoes too.
+
** www.indyproject.org: [http://www.indyproject.org/Sockets/fpc/index.de.aspx Indy 10 Lazarus/FreePascal Portierung] Seit kurzem beinhaltet dieses Archiv ebenfalls Indy-Demos.
  
=== What works, what not ===
+
=== Was läuft und was (noch) nicht läuft ===
  
 
'''Indy9''':
 
'''Indy9''':
* Windows should largely work. Lots of demoes ported.
+
* Unter Windows sollte das Meiste funktionieren. Viele Demos sind portiert.
* Linux not or barely. No hope at non Linux/x86 (non-Kylix) targets.
+
* Unter Linux läuft kaum was. Hinsichtlich Non-Linux/x86-Targets läuft nichts.
  
'''Indy10''': (Indy10ForFPC branch)
+
'''Indy10''': (Indy10ForFPC-Zweig)
* Windows and Unix: clients work, servers sometimes have problems. Haven't found a pattern in that yet. (should've been fixed)
+
* Windows und Unix: Klienten laufen, mit Servern gibt es an manchen Stellen noch Probleme. 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
+
* Die Hauptarbeit für die native Unix-RTL ist getan. Servers Clients scheinen unter FreeBSD und MacOSX zu laufen.
  
 
All: secure versions not tested yet.
 
All: secure versions not tested yet.
  
=== Short term plans ===
+
=== Nahziele ===
  
* Convert demoes to demonstrate/test workings.
+
* Weitere Anpassungen von Demos für Demonstrationen/Tests
* Fix bugs and enter them back into FPC or Indy RCS.
+
* Beheben von Fehlern (Bugs)
  
=== Problems ===
+
=== Probleme ===
  
* Indy9 and Indy10 are mutually exclusive, which causes problems for deployment, even the default is a problem:
+
* Indy9 und Indy10 können nicht gemeinsam benutzt werden, woraus einige Probleme für Anwender, die Indy benutzen, entstehen können:
** Indy9 is more used and proven in the industry.
+
** Indy9 ist stärker verbreitet und ein in der Industrie bewährter Standard.
** Indy10 is more portable, and better long term. However uptake seems to be low, and there is not much movement at Indy anymore.
+
** Indy10 ist stärer plattformunabhängig und daher auf lange Sicht die bessere Alternative. 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.
+
* Wie anwenden? Teile gehören zu Lazarus, andere zum FPC.
 
* Lot of pkgs and demoes have paths in them. How to centrally fix them so that unexperienced users can build them?
 
* Lot of pkgs and demoes have paths in them. How to centrally fix them so that unexperienced users can build them?
* Lazarus problems
+
* Probleme in Verbindung mit Lazarus
** Transparancy problems of icons
+
** Probleme mit der Transparenz von 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.
+
** Tabs besitzen keine Scrollfunktionen. Wenn zu viele Komponenten in einem Tab benutzt werden, sind einige möglicherweise nicht auswählbar. Hierzu wurde ein '''Workaround implementiert''': JP Mugaas teilte jedes Tab in zwei Komponenten-Reihen auf, A-M und N-Z.
* 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.
+
* Die Indy-Demos (insbesondere die von Indy10) sind nicht sonderlich für die Benutzung auf verschiedenen Plattformen geeignet. Insbesondere die Setup-Routinen sind stark windowsspezifisch, mit Leerzeichen in Dateipfaden, stark verschachtelte Verzeichnisse und unsinniger Verwendung von C#-Code. Eine Reihe nützlicher Demos müssen erst noch erstellt werden.
  
=== Bugs ===
+
=== Fehler (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.
+
* Bei Indy10-Servern kommt es in Verbindung von Version 2.0.4 des FPC während des Hochfahrens (bzw. des Startups) zu einem Fehler, der alles zum Absturz bringt. Um dies zu Verhindern, müssen Sie Version 2.1.1 (oder später) des FPC verwenden, in welchem der genannte Fehler (pthread_kill Problem) behoben ist. 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). Dies betrifft wahrscheinlich auf MacOSX.
 
* 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.
 
* 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 ===
+
=== Installationsanleitung ===
[[user:Matthijs|Matthijs]]: So it is not perfect yet, but you want to try it. Here is how you install it in Lazarus.
+
von [[user:Matthijs|Matthijs]]  
* Open and compile indysystemlaz.lpk
+
Die Unterstützung von Indy ist zwar noch nicht perfekt, aber wenn Sie es dennoch probieren wollen: Hier die Anleitung zur Installation in Lazarus.
* Open and compile indycorelaz.lpk
+
* indysystemlaz.lpk öffnen uns kompilieren
* Open and compile indyprotocolslaz.lpk
+
* indycorelaz.lpk öffnen und kompilieren
* Open, compile and install dclindycorelaz.lpk
+
* indyprotocolslaz.lpk öffnen und kompilieren
* Open, compile and install dclindyprotocolslaz.lpk
+
* dclindycorelaz.lpk öffnen, kompilieren und installieren
Then rebuild Lazarus and you will see a 15 tab's with Indy components.
+
* dclindyprotocolslaz.lpk öffnen, kompilieren und installieren
 +
Danach: Lazarus neu erstellen.
 +
Anschließend werden 15 Tabs mit Indy-Komponenten (in Lazarus) angezeigt.
  
=== How to install on debian/ubuntu ===
+
=== Installationsanleitung für debian/ubuntu ===
 +
In der Konsole die folgenden Operationen ausführen:
 
* # cd indy-10.2.0.1/fpc
 
* # cd indy-10.2.0.1/fpc
 
* # chmod +x debian/rules
 
* # chmod +x debian/rules
Line 81: Line 80:
 
* # cd ..
 
* # cd ..
 
* # sudo dpkg -i *.deb
 
* # sudo dpkg -i *.deb
* install package indylaz.lpk in lazarus
+
* Anschließend das Paket indylaz.lpk in lazarus installieren
  
=== How to install [2] ===
+
=== Alternative Installationsanleitung ===
  
If you couldn't install Indy for Lazarus with tips above, you can try this...
+
Wenn Sie Indy mithilfe der obigen Anleitungen nicht installieren konnten, können Sie noch folgendes probieren:
  
From [http://br.groups.yahoo.com/group/lazarus-brasil/ Yahoo! Brazil, Lazarus Group] (User Everaldo)
+
Anleitung von [http://br.groups.yahoo.com/group/lazarus-brasil/ Yahoo! Brazil, Lazarus Group] (User Everaldo)
  
 
Version installed on Lazarus 0.9.24 using component indy-10.2.0.1.
 
Version installed on Lazarus 0.9.24 using component indy-10.2.0.1.
 +
Folgende Anleitung erfolgt beispielhaft auf einem System, das Lazarus 0.9.24 und Indy-10.2.0.1 verwendet. Bei anderen Versionen muss die Anleitung entsprechend angepasst werden.
 +
 +
* Entpacken Sie die Komponente aus der *.taz.gz-Datei in das Verzeichnis $(LazarusDir)\components hinein. (Hinweis: Es muss die *.tar.gz-Datei verwendet werden, da die *.zip-Datei nicht funktioniert);
 +
* Wechseln Sie in das Verzeichnis $(LazarusDir)\components\indy-10.2.0.1\ und erstellen dort ein Verzeichnis mit der Bezeichnung "saved";
 +
* Kopieren Sie den Inhalt des Verzeichnisses $(LazarusDir)\components\indy-10.2.0.1\lazarus\ in das eben erstellte Verzeichnis "saved";
 +
* Kopieren Sie den Inhalt des Verzeichnisses $(LazarusDir)\components\indy-10.2.0.1\fpc\ nach directory $(LazarusDir)\components\indy-10.2.0.1\lazarus, und überschreiben Sie bereits vorhandene Dateien;
 +
* Kopieren Sie nun den Inhalt von "saved" nach $(LazarusDir)\components\indy-10.2.0.1\lazarus; Sie können das Verzeichnis "saved" nun wieder löschen.
 +
* Installieren Sie das Paket laz.lpk (aus dem Verzeichnis $(LazarusDir)\components\indy-10.2.0.1\lazarus\indy) auf gewohnte Art und Weise.
 +
 +
Und LINUX ist der Indy-Pfad durch /usr/lib/lazarus/components/indy-10.2.0.1/ gegeben.
  
* Unzip the component from file tar.gz (must be this file, the "zip file" does not work) in directory $(LazarusDir)\components;
+
Wir hoffen, dass diese Installationsanleitung hilfreich für Sie gewesen ist. Viel Erfolg!
* 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!!!
+
[[Category:Lazarus/de]]{{AutoCategory}}

Latest revision as of 11:52, 9 July 2013

Deutsch (de) English (en) español (es) français (fr) 日本語 (ja) 한국어 (ko)

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.

Versionshinweise

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)

Die Lazarus-Portierung von Indy läuft ziemlich stabil. JP Mugaas leistete einen großen Beitrag zur Qualität der Portierung, inklusive zugehöriger Makefiles.

Downloads / Links

Aktuelle Snapshots (for die hards only) gibt es hier:

Was läuft und was (noch) nicht läuft

Indy9:

  • Unter Windows sollte das Meiste funktionieren. Viele Demos sind portiert.
  • Unter Linux läuft kaum was. Hinsichtlich Non-Linux/x86-Targets läuft nichts.

Indy10: (Indy10ForFPC-Zweig)

  • Windows und Unix: Klienten laufen, mit Servern gibt es an manchen Stellen noch Probleme. Haven't found a pattern in that yet. (should've been fixed)
  • Die Hauptarbeit für die native Unix-RTL ist getan. Servers Clients scheinen unter FreeBSD und MacOSX zu laufen.

All: secure versions not tested yet.

Nahziele

  • Weitere Anpassungen von Demos für Demonstrationen/Tests
  • Beheben von Fehlern (Bugs)

Probleme

  • Indy9 und Indy10 können nicht gemeinsam benutzt werden, woraus einige Probleme für Anwender, die Indy benutzen, entstehen können:
    • Indy9 ist stärker verbreitet und ein in der Industrie bewährter Standard.
    • Indy10 ist stärer plattformunabhängig und daher auf lange Sicht die bessere Alternative. However uptake seems to be low, and there is not much movement at Indy anymore.
  • Wie anwenden? Teile gehören zu Lazarus, andere zum FPC.
  • Lot of pkgs and demoes have paths in them. How to centrally fix them so that unexperienced users can build them?
  • Probleme in Verbindung mit Lazarus
    • Probleme mit der Transparenz von Icons.
    • Tabs besitzen keine Scrollfunktionen. Wenn zu viele Komponenten in einem Tab benutzt werden, sind einige möglicherweise nicht auswählbar. Hierzu wurde ein Workaround implementiert: JP Mugaas teilte jedes Tab in zwei Komponenten-Reihen auf, A-M und N-Z.
  • Die Indy-Demos (insbesondere die von Indy10) sind nicht sonderlich für die Benutzung auf verschiedenen Plattformen geeignet. Insbesondere die Setup-Routinen sind stark windowsspezifisch, mit Leerzeichen in Dateipfaden, stark verschachtelte Verzeichnisse und unsinniger Verwendung von C#-Code. Eine Reihe nützlicher Demos müssen erst noch erstellt werden.

Fehler (Bugs)

  • Bei Indy10-Servern kommt es in Verbindung von Version 2.0.4 des FPC während des Hochfahrens (bzw. des Startups) zu einem Fehler, der alles zum Absturz bringt. Um dies zu Verhindern, müssen Sie Version 2.1.1 (oder später) des FPC verwenden, in welchem der genannte Fehler (pthread_kill Problem) behoben ist. 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). Dies betrifft wahrscheinlich auf MacOSX.
  • 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.

Installationsanleitung

von Matthijs Die Unterstützung von Indy ist zwar noch nicht perfekt, aber wenn Sie es dennoch probieren wollen: Hier die Anleitung zur Installation in Lazarus.

  • indysystemlaz.lpk öffnen uns kompilieren
  • indycorelaz.lpk öffnen und kompilieren
  • indyprotocolslaz.lpk öffnen und kompilieren
  • dclindycorelaz.lpk öffnen, kompilieren und installieren
  • dclindyprotocolslaz.lpk öffnen, kompilieren und installieren

Danach: Lazarus neu erstellen. Anschließend werden 15 Tabs mit Indy-Komponenten (in Lazarus) angezeigt.

Installationsanleitung für debian/ubuntu

In der Konsole die folgenden Operationen ausführen:

  • # 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
  • Anschließend das Paket indylaz.lpk in lazarus installieren

Alternative Installationsanleitung

Wenn Sie Indy mithilfe der obigen Anleitungen nicht installieren konnten, können Sie noch folgendes probieren:

Anleitung von Yahoo! Brazil, Lazarus Group (User Everaldo)

Version installed on Lazarus 0.9.24 using component indy-10.2.0.1. Folgende Anleitung erfolgt beispielhaft auf einem System, das Lazarus 0.9.24 und Indy-10.2.0.1 verwendet. Bei anderen Versionen muss die Anleitung entsprechend angepasst werden.

  • Entpacken Sie die Komponente aus der *.taz.gz-Datei in das Verzeichnis $(LazarusDir)\components hinein. (Hinweis: Es muss die *.tar.gz-Datei verwendet werden, da die *.zip-Datei nicht funktioniert);
  • Wechseln Sie in das Verzeichnis $(LazarusDir)\components\indy-10.2.0.1\ und erstellen dort ein Verzeichnis mit der Bezeichnung "saved";
  • Kopieren Sie den Inhalt des Verzeichnisses $(LazarusDir)\components\indy-10.2.0.1\lazarus\ in das eben erstellte Verzeichnis "saved";
  • Kopieren Sie den Inhalt des Verzeichnisses $(LazarusDir)\components\indy-10.2.0.1\fpc\ nach directory $(LazarusDir)\components\indy-10.2.0.1\lazarus, und überschreiben Sie bereits vorhandene Dateien;
  • Kopieren Sie nun den Inhalt von "saved" nach $(LazarusDir)\components\indy-10.2.0.1\lazarus; Sie können das Verzeichnis "saved" nun wieder löschen.
  • Installieren Sie das Paket laz.lpk (aus dem Verzeichnis $(LazarusDir)\components\indy-10.2.0.1\lazarus\indy) auf gewohnte Art und Weise.

Und LINUX ist der Indy-Pfad durch /usr/lib/lazarus/components/indy-10.2.0.1/ gegeben.

Wir hoffen, dass diese Installationsanleitung hilfreich für Sie gewesen ist. Viel Erfolg!