Recipe to install Tango 9 from source on MacOS X high Sierra

Dear All,
I am trying to implement a Tango Control System on a an experiment behind a High Power Laser Chain. The main purpose is to centralize all the diagnostic elements in one terminal and to pilot them with only a Tango Based API, able to grab all the data in a file, possibly in RT mode. I am new as developer, beforehand I have been acquainted with Tango use on FERMI FEL. Up to now I do not mean to implement it on all the laser chain and at the interface laser chain - beamline experiment, just the experiment.

Someone of you maybe remember that I previously posted on troubles upon installation from binaries on Windows 10, giving the same preamble. Sorry for bothering.

Here I could like to install Tango on my MacOS X machine, which is faster and handy to use for me. I need, when it comes, a recipe for installing Tango step by step from source, through the UNIX shell of course. I am not an expert of UNIX and Linux, but I have been already using them for a while. I already installed all the prerequisites (omniORB, zmq, doxygen, MariaDB) and checked the gcc and the Java RSE versions on the machine.
My major concerns are :

1) Do i have to put all the ./configure option (say –prefix=PREFIX, –enable-mariadb, and so on……) in the cmd line, or can I write a text file and call for it ?

2) Which environment variables do I have to put ? how and where ?

3) are "make" and "install" safe as is, or should I have change something in other files ?

Sorry for asking such a banal things, but I am starting almost from scratch.

Thank you very much in advance.

Yours Sincerely,

David
Hi David,

your questions are valid. Let me try to answer them as best I can (I do not have a Mac):

1) Do i have to put all the ./configure option (say –prefix=PREFIX, –enable-mariadb, and so on……) in the cmd line, or can I write a text file and call for it ?

1.Answer)If I understand your question you want to put the options in a file? You need to put the whole command in a file and run it as a script. I don't think you can pass a file to the configure command. You could however use the shell to do this as follows:

./configure `cat myfileoptions`


2) Which environment variables do I have to put ? how and where ?

2.Answer) None a priori but you have to ensure the compilers and other commands needed are in your PATH. In the past I have set some environment variables like CFLAGS but this was to get around some tricky cases. I suggest you try without environment variables and let us know if you manage.

3) are "make" and "install" safe as is, or should I have change something in other files ?

3.Answer) I think you need the autotools commands installed. You will need libtools.

Question to you: which version of the source code distribution of Tango are you installing?

If you are trying one of the recent (V9.3 and later) source code releases you will need cmake.

Maybe some MacOS users who have installed Tango can share their experience with you. I think FRMII uses BSD but I not sure this is on Mac hardware.

Cheers

Andy
Andy
Question to you: which version of the source code distribution of Tango are you installing?

If you are trying one of the recent (V9.3 and later) source code releases you will need cmake.

If you take the tar.gz file from the TangoSourceDistribution, you do not need CMake for the moment (even for latest 9.3.x-rc versions you can find as asset (tar.gz file) of the releases on the TangoSourceDistribution github repository). You only need CMake if you want to prepare the tar file.

Garzik
are "make" and "install" safe as is, or should I have change something in other files ?

What is your definition of safe in this context?

If you want to install to a predefined location, please use configure with the –prefix option.
By default, if –prefix is not specified, make install will try to install files in some standard Linux system locations where only root or sudoers will have permissions.

So you will need to run (or to be root)
sudo make install

if this is where you want to install the files.
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new.
Dear Andy, Dear Reynald, Dear All,

Thank you very much for your answers. I somewhat progressed in my understanding of the Configure process. Beforehand there were some troubles with the user definition of the MariaDB server and with Java. Still when I process "./configure –enable-mariadb –with-mysql-admin=david –with-mysql-admin-passwd=xxxxxxx –with-java=/usr/bin/java"i get a configuration like the one in the attached file (screenshot.png) and a long config.log , which is also attached. In view of the two reports, I understand that something is missing, but I do not understand what. At the moment I am stuck !!!

Someone of you have some more hints ?

Thank you very much in advance.
@Andy, @Reynald: Just a comment from the side lines. Do we have anyone using MacOSX as tango platform already? If not I would guess this will be a not-so-easy ride for getting it working.

I also have a mac running here with MacOSX Sierra so I can give that a shot as well.
t-b
@Andy, @Reynald: Just a comment from the side lines. Do we have anyone using MacOSX as tango platform already?

I don't know.
There is a MacOS section on the forum but it's not very active.

I had a quick look at the log file.
There is at least an issue with the detection of the version of java you're using (11).
I think it would work if you would be using java 8.
This is something which has been fixed in the recent TangoSourceDistribution 9.3 release candidate versions.
9.2.5 release is starting to get old.

We have fixed as well the libmariadb version detection I think.

Could you please try with 9.3.4-rc3 release? Here is a direct link to the tar file:
https://github.com/tango-controls/TangoSourceDistribution/releases/download/9.3.4-rc3/tango-9.3.4-rc3.tar.gz

Please report the issues you encounter in this TangoSourceDistribution repository:
https://github.com/tango-controls/TangoSourceDistribution/issues/new

If we can make it work on Mac OS, this TangoSourceDistribution repository is the right location to report the encountered problems.
Maybe there is not much missing.

I hope this helps,
Reynald
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new.
Dear Reynald, Dear all,

I followed your last hints :
1) Downloaded the 9.3.4-rc3 release
2) Downloaded and builded (it was mandatory) the cppzmq library, as it was needed the zmq.hpp include file
3) Downgraded to the Java 8 SE
4) run ./configure –enable-mariadb –with-mysql-admin=david –with-mysql-admin-passwd=xxxxxx –with-java=/usr/bin/java –disable-jpegmmx

The result is the Screenshot1_Tango_Configuration file, which is good and promising.
Then I run make all and still obtained some errors that I do not understand , which yo will find in Screenshot_Make_Issues. In particular I do not understand whether the compilation process looks for a "tango.h" and then lists a series of errors, but I do not know if they are fatal. In any case the make install command sort out no effect!!!

Thank you very much!!

David
Thanks David,

Nice to see some progress.
I think the problem you're encountering is due to the differences between your MacOS X sed and the one provided with other linux distributions.

It looks like the same issue as the one reported here:
https://mkyong.com/mac/sed-command-hits-undefined-label-error-on-mac-os-x/
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new.
You can get a proper sed with `brew install gnu-sed` in case you are using homebrew. And then change in cppapi/server/idl/CMakeLists.txt in line 39 from sed to gsed.
The package generated by the TangoSourceDistribution repository does not use any CMakeLists.txt file.
It is still using the autoconf tools.
So I think, it's more a Makefile.am file which should be modified.
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new.
 
Register or login to create to post a reply.