Installation of Indy 10.5.8 in Lazarus 1.2 (OS: Debian testing) lazarus / 38-Networking and Web Programming ---------------------------------------------------------------------- lepa · 2014-03-06 13:50 After reading this post i understood that following the "How to install [3] Windows, Indy 10.5.8.0 and above" from the wiki i'll be able to install indy. And i did managed to do so but i had to add a couple of lines first to IdGlobal.pas, something that i don't really like. In particullary i added the bold lines: Quote{$IFDEF UNIX}   {$UNDEF LIBEXT_IS_DYLIB}   {$UNDEF LIBEXT_IS_SO}   {$IFDEF DARWIN}     {$DEFINE LIBEXT_IS_DYLIB}   {$ELSE}     {$IFDEF DCC_NEXTGEN}       {$IFDEF ANDROID}         {$DEFINE LIBEXT_IS_SO}       {$ELSE}         {$DEFINE LIBEXT_IS_DYLIB}       {$ENDIF}     {$ELSE}       {$DEFINE LIBEXT_IS_SO}     {$ENDIF}   {$ENDIF} const   {$IFDEF LIBEXT_IS_DYLIB}   LIBEXT = '.dylib'; {do not localize}   {$ENDIF}   {$IFDEF LIBEXT_IS_SO}   LIBEXT = '.so'; {do not localize}   {$ENDIF} {$ENDIF} I chose LIBEXT_IS_SO because of my operating system but i don't know if it is correct. Anyone had the same problem? My specs: Indy 10.5.8.5101* Lazarus 1.2 Free Pascal 2.6.2 Debian testing *although i downloaded the zip from fulgan today and the IdVers.inc says gsIdVersion='10.6.0.5101'. any idea why it is not 10.6? Thank you in advance for your time ---------------------------------------------------------------------- JD · 2014-03-06 14:07 I updated my Indy installation on Windows yesterday and the contents of the IdVers.inc file is as shown below: Code: [Select]gsIdVersionMajor = 10; {$NODEFINE gsIdVersionMajor} gsIdVersionMinor = 6; {$NODEFINE gsIdVersionMinor} gsIdVersionRelease = 0; {$NODEFINE gsIdVersionRelease} gsIdVersionBuild = 5100; {$NODEFINE gsIdVersionBuild} (*$HPPEMIT '#define gsIdVersionMajor 10'*) (*$HPPEMIT '#define gsIdVersionMinor 6'*) (*$HPPEMIT '#define gsIdVersionRelease 0'*) (*$HPPEMIT '#define gsIdVersionBuild 5100'*) (*$HPPEMIT ''*) gsIdVersion = '10.6.0.5100'; {do not localize} gsIdProductName = 'Indy';  {do not localize} As you can see (gsIdVersionMajor & gsIdVersionMinor) , Indy is now in the 10.6 series. The '5100' (or '5101') in your case is the release build version. I have an older installation in Linux Mint (Indy 10.6.5074) but I did not have to modify IdGlobals.pas at all in order to make it work. I'll update it in a day or two & let you know if it is still the case. JD ---------------------------------------------------------------------- lepa · 2014-03-06 14:15 Thank you, looking forward for your results ---------------------------------------------------------------------- Remy Lebeau · 2014-05-01 16:56 This issue has also been mentioned in the Embarcadero forums: IdGlobal.pas error on Linux Mint 16 I am thinking of changing IdGlobal.pas to use this code instead: Code: [Select]{$IFDEF UNIX} const   {$IFDEF DARWIN}   LIBEXT = '.dylib'; {do not localize}   {$ELSE}   LIBEXT = '.so'; {do not localize}   {$ENDIF} {$ENDIF} What do you think? ---------------------------------------------------------------------- marcov · 2014-05-01 19:21 Quote from: rlebeau on May 01, 2014, 06:56:51 pmThis issue has also been mentioned in the Embarcadero forums: IdGlobal.pas error on Linux Mint 16 I am thinking of changing IdGlobal.pas to use this code instead: Use dynlibs.sharedsuffix, under ifdef FPC, if Delphi is incompatible. ---------------------------------------------------------------------- JD · 2014-05-01 20:42 Quote from: rlebeau on May 01, 2014, 06:56:51 pmThis issue has also been mentioned in the Embarcadero forums: IdGlobal.pas error on Linux Mint 16 That was me, Remy! Like I said there, I haven't tried your suggestions because I'm in an update cycle - new Lazarus 1.2.2 & Linux Mint 17 LTS. I did not want to do it before the release of Linux Mint 17 later this month. Welcome to the Lazarus forums. Hope to see more of you here to help out the Lazarus users of Indy. JD P.S. I'll try & see if it works this weekend (using Lazarus 1.2 & Linux Mint 16) if time permits. ---------------------------------------------------------------------- Remy Lebeau · 2014-05-02 03:18 Quote from: marcov on May 01, 2014, 09:21:52 pmUse dynlibs.sharedsuffix, under ifdef FPC, if Delphi is incompatible. Thanks.  How about this: IdCompilerDefines.inc: Code: [Select]{$IFDEF FPC}   ...   {$IFDEF FPC_2_2_2_OR_ABOVE}     {$DEFINE HAS_DynLibs_SharedPrefix}   {$ENDIF}   ... {$ENDIF} IdGlobal.pas (already uses Dynlibs unit): Code: [Select]{$IFDEF UNIX} const   {$IFDEF HAS_DynLibs_SharedPrefix}   LIBEXT = '.' + SharedSuffix; {do not localize}   {$ELSE}     {$IFDEF DARWIN}   LIBEXT = '.dylib'; {do not localize}     {$ELSE}   LIBEXT = '.so'; {do not localize}     {$ENDIF}   {$ENDIF} {$ENDIF} ---------------------------------------------------------------------- Remy Lebeau · 2014-05-02 03:19 Quote from: JD on May 01, 2014, 10:42:23 pmWelcome to the Lazarus forums. Hope to see more of you here to help out the Lazarus users of Indy. We'll see.  I happened across this topic while searching for something else, thought I would chime in on it.  I don't use FreePascal/Lazarus myself. ---------------------------------------------------------------------- marcov · 2014-05-02 08:26 Quote from: rlebeau on May 02, 2014, 05:18:11 amQuote from: marcov on May 01, 2014, 09:21:52 pmUse dynlibs.sharedsuffix, under ifdef FPC, if Delphi is incompatible. Thanks.  How about this: Looks fine. Setting it up like this is mostly for the benefit of minor posix/*nix targets, and rebadges of the linux kernel that don't use the "linux" define. (like android but then more obscure ones) ---------------------------------------------------------------------- Remy Lebeau · 2014-05-02 16:15 Quote from: marcov on May 02, 2014, 10:26:14 amLooks fine. Setting it up like this is mostly for the benefit of minor posix/*nix targets, and rebadges of the linux kernel that don't use the "linux" define. (like android but then more obscure ones) I have checked in the change to Indy's SVN. ---------------------------------------------------------------------- JD · 2014-05-04 15:13 Quote from: rlebeau on May 02, 2014, 06:15:12 pmQuote from: marcov on May 02, 2014, 10:26:14 amLooks fine. Setting it up like this is mostly for the benefit of minor posix/*nix targets, and rebadges of the linux kernel that don't use the "linux" define. (like android but then more obscure ones) I have checked in the change to Indy's SVN. Tried to install Indy10_5136 of 04/05/2014 but compilation fails with error Code: [Select]indylaz.pas(10,48) Fatal: Can not find unit IdCoreSelectionEditors used by indylaz. Check if package indylaz is in the dependencies. IdCoreSelectionEditors.pas does not seem to be in the package. JD ---------------------------------------------------------------------- taazz · 2014-05-04 16:55 classic error http://wiki.lazarus.freepascal.org/Indy_with_Lazarus#How _to_install_.5B3.5D_Windows.2C_Indy_10.5.8.0_and_above I use this procedure on windows. ---------------------------------------------------------------------- JD · 2014-05-04 18:35 Quote from: taazz on May 04, 2014, 06:55:08 pmclassic error http://wik i.lazarus.freepascal.org/Indy_with_Lazarus#How_to_install_.5B3.5D_Wind ows.2C_Indy_10.5.8.0_and_above I use this procedure on windows. This is a Linux installation. My Windows installation is OK. ---------------------------------------------------------------------- taazz · 2014-05-04 18:36 the error indicates that you haven't followed the step to copy all the source files in to a single directory to avoid the message you are seeing. ---------------------------------------------------------------------- JD · 2014-05-04 18:38 Quote from: taazz on May 04, 2014, 08:36:28 pmthe error indicates that you haven't followed the step to copy all the source files in to a single directory to avoid the message you are seeing. I'm the source of the installation steps you directed me to. I can assure you that I did so. ---------------------------------------------------------------------- JD · 2014-05-04 18:44 @taazz You know what I discovered? I found the missing IdCoreSelectionEditors.pas in an old Indy 10 (version 5074) but it is not in the most recent version 5136. I ran directory searches to confirm this. ---------------------------------------------------------------------- taazz · 2014-05-04 18:55 I have 10.6.5124 installed on windows  IdCoreSelectionEditors.pas is not in my path either. An old package? ---------------------------------------------------------------------- JD · 2014-05-04 19:07 Quote from: taazz on May 04, 2014, 08:55:17 pmI have 10.6.5124 installed on windows  IdCoreSelectionEditors.pas is not in my path either. An old package? After copying IdCoreSelectionEditors.pas from version 5074 into my directory for version 5136 & recompiling & installing, I can now confirm that Indy 10's Linux installation (which was broken in version 5100) is working once again. Thanks taazz for the clue you gave me.  And thanks to Remy for his good work as always. JD ---------------------------------------------------------------------- taazz · 2014-05-04 19:28 I'm hopping that copying it instead of removing the reference is the correct move for linux. Glad it works, well done. ---------------------------------------------------------------------- Remy Lebeau · 2014-05-04 20:05 The IdCoreSelectionEditors.pas unit is no longer used and has been removed from Indy.  Its original functionality was recently rewritten into a new TIdComponentSelectionEditor class that is implemented directly in IdRegisterCore.pas.  The indylaz project has simply not been updated yet to remove the reference to IdCoreSelectionEditors.pas.  I will do that tomorrow. In general, indylaz tends to fall behind in updates compared to Delphi.  Not because of a lack of interest, but a lack of time/manpower.  I don't use Lazarus myself, and Indy's internal Package Generator tool has not been updated with the latest package changes for the past few Delphi releases (especially for mobile), so the FreePascal/Lazarus packages have not been re-generated in awhile.  It has been on my TODO list for a long time. ---------------------------------------------------------------------- JD · 2014-05-05 09:13 Quote from: rlebeau on May 04, 2014, 10:05:37 pmThe IdCoreSelectionEditors.pas unit is no longer used and has been removed from Indy.  Its original functionality was recently rewritten into a new TIdComponentSelectionEditor class that is implemented directly in IdRegisterCore.pas.  The indylaz project has simply not been updated yet to remove the reference to IdCoreSelectionEditors.pas.  I will do that tomorrow. In general, indylaz tends to fall behind in updates compared to Delphi.  Not because of a lack of interest, but a lack of time/manpower.  I don't use Lazarus myself, and Indy's internal Package Generator tool has not been updated with the latest package changes for the past few Delphi releases (especially for mobile), so the FreePascal/Lazarus packages have not been re-generated in awhile.  It has been on my TODO list for a long time. I understand what you mean. I know you are very active on the Embarcadero, Atozed & StackOverflow forums. You've always answered user questions quickly (including mine) on all three forums so that in addition to Indy development must take a lot of time. Thanks again, JD