DelphiUdIT 177 Posted February 21, 2022 (edited) In the latest daily repository available (today 02/21/2022), compiling for Linux64 there are two "probable" bugs: 1) In the file OverbyetIcsSslX509certs.pas on line 1836 the definition of the TMsCertTools class is missing. Solved like this: {$ IFDEF MSWINDOWS} FNewSslCert: = TMsCertTools.Create (self); {V8.67 was TSslCertTools} {$ ELSE} FNewSslCert: = TSSlCertTools.Create (self); {$ ENDIF} 2) In the file OverbyteIcsMailQueue.pas on line 2182 the definition of SetEndofFile is missing (in Linux it does not exist), replaced as follows: {$ IFDEF MSWINDOWS} SetEndOfFile (FHandle); // truncate file size {$ ELSE} ftruncate (FHandle, Count); // truncate file size {$ ENDIF} Inserted in the uses the unit Posix.UniStd Changes not tested yet, but the build is done. PS: I will send you a postcard as soon as possible Bye Edited February 21, 2022 by DelphiUdIT 1 Share this post Link to post
Angus Robertson 574 Posted February 21, 2022 Thanks, both fixes done in my local copy, will be in SVN in a few days. Angus Share this post Link to post
DelphiUdIT 177 Posted February 21, 2022 (edited) 2 hours ago, DelphiUdIT said: 1 hour ago, Angus Robertson said: Thanks, both fixes done in my local copy, will be in SVN in a few days. Angus Ok, take care about the new line inserted "ftruncate (FHandle, Count)": It may be that the line is also "ftruncate (FHandle, FLen)", I don't know which of the two variables is correct to be used.. {$ IFDEF MSWINDOWS} SetEndOfFile (FHandle); // truncate file size {$ ELSE} ftruncate (FHandle, Count); // <- ftruncate (FHandle, FLen); ???? {$ ENDIF} Bye Edited February 21, 2022 by DelphiUdIT Share this post Link to post
Angus Robertson 574 Posted February 22, 2022 Your first suggestion was correct, that file only contains the data just written to it, a few bytes. Angus Share this post Link to post
Fr0sT.Brutal 900 Posted February 28, 2022 Did you manage to get ICS working for Linux? I gave up on the stage of missing message pump loop. Share this post Link to post
Angus Robertson 574 Posted February 28, 2022 Yes, ICS should build on Linux, but is awaiting a Linux expert to update the MacOS message handler code to proper Linux. Angus Share this post Link to post
Fr0sT.Brutal 900 Posted February 28, 2022 37 minutes ago, Angus Robertson said: Yes, ICS should build on Linux, but is awaiting a Linux expert to update the MacOS message handler code to proper Linux. Angus Yep, I did successful build myself and stuck on missing message engine. That's why I asked if he managed to get ICS working. Hmm, FMX should have its own message loop, probably it would be pretty easy to utilize compared to native KQueue or something similar? Share this post Link to post
DelphiUdIT 177 Posted February 28, 2022 Sorry, I didn't realize the question was for me ... No, I only compiled for Linux. I wanted to see if everything was standing with Linux because I should start with a project with which the ICS components would suit me. But I haven't done anything yet "run" ... I don't know when I'll start, and I'm not a master in Linux programming. Bye Share this post Link to post
Fr0sT.Brutal 900 Posted February 28, 2022 58 minutes ago, DelphiUdIT said: But I haven't done anything yet "run" ... Well, that's the most important stage. Currently ICS builds successfully for Linux but doesn't have its cornerstone feature - a message loop - implemented. So it won't suit you until it's done. I gave a look at it but it seemed too complicated - I even didn't realize where the message poll code should be placed. So I gave up for the time - the need was not so urgent and Wine seems to do pretty well. Share this post Link to post
FPiette 384 Posted February 28, 2022 Long time ago, back in 2005, I implemented ICS for Linux. This was at the time of Kylix. The latest version was named "ICS for Kylix 3". Of course this code won't work with current Delphi but AFAIK the system calls I made for the message loop are still compatible with current Linux. The source code is still available from "ICS" page at my website http://www.overbyte.be. The message pump stuff has to be implemented to TIcsWndControl class which did not exist at Kylix 3 time. For the story : I implemented ICS for Kylix in the hope of having business in the Linux world. That was a total failure because at that time, all Linux user wanted everything without paying anything. If anyone (probably a group) has funds to sponsor development for Linux I'll be pleased to do it. That's how ICS for SSL was developed. The person having paid at least 100€ had immediate access to the code. The code was made free one year after ICS for SSL was ready. 1 Share this post Link to post
Fr0sT.Brutal 900 Posted March 1, 2022 15 hours ago, FPiette said: If anyone (probably a group) has funds to sponsor development for Linux I'll be pleased to do it Hmm, sounds interesting. I think it would be very useful for ICS itself to provide the ability to build network servers and apps which are mostly being run on Linux. How the funding could be done? Probably it'll be wise to implement simple and clear plugging points for another event engines, f.ex., KQueue or epoll. Share this post Link to post
FPiette 384 Posted March 1, 2022 19 minutes ago, Fr0sT.Brutal said: How the funding could be done? This question is worth a specific publication. Please post it with a proper subject. Share this post Link to post
Fr0sT.Brutal 900 Posted March 1, 2022 2 hours ago, FPiette said: This question is worth a specific publication. Please post it with a proper subject. I guess it would be weird if posted by anyone but you. Or at least by someone who needs it more urgently - I'd like to participate but requirement is pretty low (and so the budget) to interest you. Share this post Link to post