XDATA and Linux

Hi,

Is it possible run/write xdata web services on Linux?

Sure, if you use RAD Studio/Delphi Enterprise, which provides the Linux compiler.

For Linux side you can use Apache-based server or Indy-based server:

http://www.tmssoftware.biz/business/sparkle/doc/web/indy-based-server.html
http://www.tmssoftware.biz/business/sparkle/doc/web/apache-based-server.html
Thank you for the info ... but I have next question:
When I create module for apache when target is win32 all is ok but when I change target to Linux64 the program can't find Sparkle units.
[DCC Fatal Error] WebModuleVMachine.pas(24): F2613 Unit 'Sparkle.WebBroker.Server' not found.

Should I set something to solve this?

Have you installed TMS Sparkle for Linux64 platform? It should work ok. Check Delphi library path for Linux64 platform and see if you have Sparkle-related directories there.

The problem is that for the moment I don't see XDATA instalation on subscription manager and in my products via tms web.
Could you check what is wrong ?
I have ALL-ACCESS product subscribed to 31.07.2020 ... yesterday all was ok with subscription.

TMS Business Core does not exist either in my products

Can you please retry? It should be fixed now. Sorry for the inconvenience.

Thank you ... now is better :)

I recompile:
TMS Business Core Linux64 is ok
TMS XDATA Linux 64 is ok

but when I compile TMS Sparkle to Linux64 (Delphi Enterprise 10.3.3) I got an error (marked in red color):


C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\dcclinux64.exe -$O- --no-config -B -Q -Z -TX.so -AGenerics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults -DDEBUG -E.\Linux64\Debug -I"C:\Program Files (x86)\Embarcadero\Studio\20.0\lib\Linux64\debug";"C:\Program Files (x86)\Embarcadero\Studio\20.0\lib\Linux64\release";"C:\Users\deweloper_1\Documents\tmssoftware\TMS Busines Core Library\packages\drio\.\Linux64\Debug";"C:\Users\deweloper_1\Documents\tmssoftware\TMS Busines Core Library\packages\drio\..\bpl\Linux64";"C:\Users\deweloper_1\Documents\tmssoftware\TMS

Sparkle\packages\drio.\Linux64\Debug";"C:\Users\deweloper_1\Documents\tmssoftware\TMS
Sparkle\packages\drio..\bpl\Linux64" -LE..\bpl\Linux64
-LN.\Linux64\Debug -NU.\Linux64\Debug
-NSSystem;Xml;Data;Datasnap;Web;Soap; -O"c:\program files
(x86)\embarcadero\studio\20.0\lib\Linux64\release";C:\Users\deweloper_1\Documents\Embarcadero\Studio\20.0\Imports;"C:\Program
Files
(x86)\Embarcadero\Studio\20.0\Imports";C:\Users\Public\Documents\Embarcadero\Studio\20.0\Dcp\Linux64;"C:\Program
Files (x86)\Embarcadero\Studio\20.0\include";"C:\Program Files
(x86)\Embarcadero\Studio\20.0\redist\Linux64";C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl\Linux64
-R"c:\program files
(x86)\embarcadero\studio\20.0\lib\Linux64\release\EN";"c:\program files
(x86)\embarcadero\studio\20.0\lib\Linux64\release";C:\Users\deweloper_1\Documents\Embarcadero\Studio\20.0\Imports;"C:\Program
Files
(x86)\Embarcadero\Studio\20.0\Imports";C:\Users\Public\Documents\Embarcadero\Studio\20.0\Dcp\Linux64;"C:\Program
Files (x86)\Embarcadero\Studio\20.0\include";"C:\Program Files
(x86)\Embarcadero\Studio\20.0\redist\Linux64";C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl\Linux64
-U"C:\Program Files
(x86)\Embarcadero\Studio\20.0\lib\Linux64\debug";"C:\Program Files
(x86)\Embarcadero\Studio\20.0\lib\Linux64\release";"C:\Users\deweloper_1\Documents\tmssoftware\TMS
Busines Core
Library\packages\drio.\Linux64\Debug";"C:\Users\deweloper_1\Documents\tmssoftware\TMS
Busines Core
Library\packages\drio..\bpl\Linux64";"C:\Users\deweloper_1\Documents\tmssoftware\TMS

Sparkle\packages\drio.\Linux64\Debug";"C:\Users\deweloper_1\Documents\tmssoftware\TMS
Sparkle\packages\drio..\bpl\Linux64"
--syslibroot:C:\Users\deweloper_1\Documents\Embarcadero\Studio\SDKs\ubuntu18.04.sdk

--libpath:C:\Users\deweloper_1\Documents\Embarcadero\Studio\SDKs\ubuntu18.04.sdk\usr\lib\gcc\x86_64-linux-gnu\7;C:\Users\deweloper_1\Documents\Embarcadero\Studio\SDKs\ubuntu18.04.sdk\usr\lib\x86_64-linux-gnu;C:\Users\deweloper_1\Documents\Embarcadero\Studio\SDKs\ubuntu18.04.sdk\lib\x86_64-linux-gnu
-V -VN --description:"TMS Sparkle - Core Package" -NH.\Linux64\Debug
-NO.\Linux64\Debug  sparkle.dpk  
                  Embarcadero Delphi for Linux 64 bit compiler version 33.0
                  Copyright (c) 1983,2018 Embarcadero Technologies, Inc.
                 
Linker command line: "C:\Program Files
(x86)\Embarcadero\Studio\20.0\bin\ld-linux.exe" -o
..\bpl\Linux64\bplsparkle260.so -e _ZN7Sparkle14initializationEv
--gc-sections --version-script ..\bpl\Linux64\sparkle.vsr -shared
--no-undefined --export-dynamic -z noexecstack -z relro --build-id
--eh-frame-hdr -m elf_x86_64 --dynamic-linker
/lib64/ld-linux-x86-64.so.2 --sysroot
C:\Users\deweloper_1\Documents\Embarcadero\Studio\SDKs\ubuntu18.04.sdk
-L "C:\Users\deweloper_1\Documents\tmssoftware\TMS Busines Core
Library\packages\drio\..\bpl\Linux64" -L "c:\program files
(x86)\embarcadero\studio\20.0\lib\Linux64\release" -L
C:\Users\deweloper_1\Documents\Embarcadero\Studio\20.0\Imports -L
"C:\Program Files (x86)\Embarcadero\Studio\20.0\Imports" -L
C:\Users\Public\Documents\Embarcadero\Studio\20.0\Dcp\Linux64 -L
"C:\Program Files (x86)\Embarcadero\Studio\20.0\include" -L
"C:\Program Files (x86)\Embarcadero\Studio\20.0\redist\Linux64" -L
C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl\Linux64
-L
C:\Users\deweloper_1\Documents\Embarcadero\Studio\SDKs\ubuntu18.04.sdk\usr\lib\gcc\x86_64-linux-gnu\7
-L
C:\Users\deweloper_1\Documents\Embarcadero\Studio\SDKs\ubuntu18.04.sdk\usr\lib\x86_64-linux-gnu
-L
C:\Users\deweloper_1\Documents\Embarcadero\Studio\SDKs\ubuntu18.04.sdk\lib\x86_64-linux-gnu
@..\bpl\Linux64\sparkle.lnk -lgcc_s -lrtlhelper_PIC -lc -ldl
-lpthread -lz -lcurl -l:bplrtl260.so -l:bpltmsbcl260.so
-l:bpldbrtl260.so -l:bplIndyCore260.so -l:bplIndyProtocols260.so
-l:bplIndySystem260.so -rpath $ORIGIN
                C:\Program
Files (x86)\Embarcadero\Studio\20.0\Bin\CodeGear.Delphi.Targets(402,5):
error E2597: C:\Program Files
(x86)\Embarcadero\Studio\20.0\bin\ld-linux.exe: error: cannot find -lz [C:\Users\deweloper_1\Documents\tmssoftware\TMS Sparkle\packages\drio\sparkle.dproj]
                   C:\Program Files (x86)\Embarcadero\Studio\20.0\bin\ld-linux.exe: error: cannot find -lcurl
                  
C:\Program Files
(x86)\Embarcadero\Studio\20.0\lib\Linux64\release\rtl.imp.o:.rtl:function
System::Zlib::deflate(System::Zlib::z_stream&, int): error:
undefined reference to 'deflate'
                   C:\Program Files
(x86)\Embarcadero\Studio\20.0\lib\Linux64\release\rtl.imp.o:.rtl:function
System::Zlib::deflateEnd(System::Zlib::z_stream&): error: undefined
reference to 'deflateEnd'
                   C:\Program Files
(x86)\Embarcadero\Studio\20.0\lib\Linux64\release\rtl.imp.o:.rtl:function
System::Zlib::inflate(System::Zlib::z_stream&, int): error:
undefined reference to 'inflate'
                   C:\Program Files
(x86)\Embarcadero\Studio\20.0\lib\Linux64\release\rtl.imp.o:.rtl:function
System::Zlib::inflateEnd(System::Zlib::z_stream&): error: undefined
reference to 'inflateEnd'
                C:\Program Files
(x86)\Embarcadero\Studio\20.0\Bin\CodeGear.Delphi.Targets(402,5): error
F2588: Linker error code: 1 ($00000001)
[C:\Users\deweloper_1\Documents\tmssoftware\TMS
Sparkle\packages\drio\sparkle.dproj]
                Done Building
Project "C:\Users\deweloper_1\Documents\tmssoftware\TMS
Sparkle\packages\drio\sparkle.dproj" (Build target(s)) -- FAILED.


You could try to install libcurl in Linux machine:

sudo apt-get install libcurl-dev
sudo apt-get install zlib1g-dev

or 

sudo apt-get install libcurl4-gnutls-dev
sudo apt-get install zlib1g-dev

Be aware that after installing missing packages like above, you need to reload the Linux SDK in the IDE. To be sure, you can simply delete the linux SDK from IDE, the folder, and then add it again so Delphi will reimport the most updated files.
Alternatively, if you don’t use Linux platform, you can simply uncheck it from the installer.
I already have curl on my linux.
root@devappmaster:~# type curl
curl is /usr/bin/curl

I don't understand, this error I get when I install TMS Sparkle on my delphi on windows machine via subscription manager.
I have to mark linux64 during TMS Sparkle because at the moment I'm writing XDATA/apache module in Delphi on windows via PAServer to Ubuntu/Linux64.
The problem Is that at the moment I can't install TMS Sparkle due to error from previous post.

Have you tried the procedure I provided to you?


Ok I installed these two packages: 

sudo apt-get install libcurl4-gnutls-dev
sudo apt-get install zlib1g-dev

and add extra package
sudo apt install g++


Delete SDK and add SDK again ... and ... all is working ... thank you for your help :)

Regards,

Great, thank you. libcurl4-gnutls-dev is different from simply curl. The latter is the command-line itself, the former are extra files for developers (which are then included in SDK which allows property Sparkle compilation).

Is it possible to deploy XDATA on Linux with ARM processor?
PAS Server works only on x86 processors.

XData currently depends on Delphi. Whatever platform Delphi supports, XData can support. I don't think Linux ARM is supported in Delphi for now.

Hi,
How can I install TMS Logging on Linux 64 platform?
When I run
TMS Logging installation I can't possibility mark linux64 paltform ... I
can't mark any platform because installation run immediately.

TMS Logging doesn't support Linux platform yet. We're working on that.

When do you plan release logging on Linux platform?

Is it possible at present, to use some mechanizm from the standard TMS solutions to logging from inside xdata web service on linux64 which is thread safe of course?

Currently from Linux you would have to use a Sparkle middleware to grab information about the requests and log them yourself to some place, like a file. 

We don't have an exact timeframe but it's high in our priority list.