INDI Library v2.0.0 Released (01 Feb 2023)

Bi-monthly release with major changes to INDI properties and client API in addition to new drivers and improvements.

INDI distribution for macOS

  • Posts: 208
  • Thank you received: 103
Hi Rob,
Thank you for all this information, this help me a lot.

It take up to this week until I find some free time to continue to work on this. But now this is almost complete and I have some binaries build with Craft that can be tested.
The scripts build and install INDI in any .app, independently of the application itself.

I put the build scripts in a github repo to make this more easy to share and correct any error.

For testing I update my IndiStarter application that can now use the embedded INDI server.
The point 1. in your last message was very useful, I find the environment variable to set in Kstars source. After I do that in my application there is no more problem with the skeleton files.
I can do only very limited test with the simulators because my only "Mac" is a virtual machine running on Linux KVM.
So I am very interested by any real test that can be done by installing the application from: sourceforge.net/projects/indistarter/files/testing/
The application documentation is here: github.com/pchev/indistarter/wiki
Be sure to set a log file in the Setup options to get any error from the INDI server or driver.

This IndiStarter application can be a temporary solution for the point 2. , provide a GUI to start INDI on Mac. This give some time to discuss what solution we prefer on the long term. As I already say I not see IndiStarter as a permanent solution because I write it using FreePascal and this is not a language know by other INDI developers.

Tell me if you change the script for the repo split or inclusion in standard KDE craft so I can update my script.

The following user(s) said Thank You: Jasem Mutlaq, Gonzothegreat
3 years 8 months ago #39317

Please Log in or Create an account to join the conversation.

  • Posts: 2833
  • Thank you received: 795
Thanks Patrick for your work on this,

I too have been very busy recently and have not had much time to devote to this, but now that we are getting close to summer, I should have some more time to do some development work. I will check out what you have done, probably within the next week or so.


The following user(s) said Thank You: Jasem Mutlaq
3 years 8 months ago #39350

Please Log in or Create an account to join the conversation.

  • Posts: 2833
  • Thank you received: 795
Hi Patrick,

I tested both your scripts in GitHub and the application on source force. Both work very well! I was able to build INDI and install it into a dummy app folder by running your scripts and following your directions. I was also able to use your INDIStarter app downloaded and installed from source forge to start up an INDI server and connect to it from KStars. This is a very good starting point. The only hiccup I found was that I had to create a root folder before running the script and I didn't know that till I ran it. That might be good to put in your directions. My script automatically makes the folder if it doesn't exist. Your plan might be better in case the user has the wrong folder in the build-env file. But other than that, there were no problems running it. Note, that I did not test INDIStarter with any real equipment yet, just the simulators.

One think that I really like about what you did is that you separated the INDI build from the installation into the app. That is great for folks like you who might want the stable version and don't want to build INDI every time from source. Once INDI is built, it only takes a moment to install INDI into your app. The way I currently have it set up, it builds the latest version of INDI every time, which is fine for what I am doing since we are working on both INDI and KStars at the same time, so I'm trying to get all the latest stuff that I add/change in INDI into the latest version of KStars each time. But of course it takes longer and the latest version of INDI could potentially have bugs in it. On that same note, I did note that in your code, you are using the latest version of INDI, for your application, maybe it should be the newest stable one?

So now it is very likely that you could use these scripts as a platform to embed INDI into some of your other projects like ccd ciel, phd2, or skychart just like we did for KStars. Then users could start and control the INDIServer inside them. That would be nice. Do you plan to do that?

Your indistarter program is very nice and works very similarly to the now defunct INDIServer app by cloud makers. I think that users will like that a lot. I do like the simplicity that the clouldmakers INDIServer app has, and yours is just as nice. As you mention, this is a temporary move of course, because it would probably be best to code this in a more familiar language/platform. Maybe a cross platform QT app would be nice, or maybe something like the INDI Web Manager for Macs. For now, though, this seems to work well.

One other note is related to the CCD simulator. In order to include stars in the simulator images, it needs GSC. In KStars, I added an option that allows the installation of GSC if the user desires. I don't think it should be included in any app by default because it is so large (300 MB). When the INDI server is run, an environment variable can be set to point to the GSC folder. That is what I do in KStars. The CCD Simulator's stars in INDI are VERY nice because you can do all kinds of tests for your programs with it since they can test focus algorithms, plate solving algorithms, guiding algorithms, and imaging algorithms. They also are very nice for beginners to the software because the beginner can do a full observing run and test EVERYTHING about the program by just sitting on the couch and using the fake stars from the simulators.

This is a VERY good start. I should have a decent amount of time this summer to help you with some of this. I do have some plans for some things I would like to do to my scripts, the craft recipes, INDI, and KStars. I should also be able to work on this as well. I think this is a great project because it will really help to improve and expand INDI and its use.


3 years 8 months ago #39435

Please Log in or Create an account to join the conversation.

  • Posts: 208
  • Thank you received: 103
Hi Rob,

Thank you for testing and for your comments.

I have updated the readme to specify you must create the src directory in home, mkdir ~/src , cd ~/src, before to git clone. With this steps it must work without editing the environment file.

My intent is to use the stable version but I try this change because "default" still point to 1.7.6. Is it possible to change the craft file to use 1.7.8 ?
I see now I make an error about the INDI version selection, I want to try "Latest" but I write "latest" in the script, so in fact it still use 1.7.6.

At the moment I include the installation of INDI in my application in a very simple way. After I run the scripts that install in the empty test.app I make a tar file of the Contents directory, then I extract this tar in my real application part of it's "make install". This is possible for me because I am sure there is no file overlap. This way I only have to make a new build of INDI when the version change.

I not plan to include INDI in ccdciel, phd2 or skychart because the INDI server is a unique resource on the computer and I not like the idea you can get a different version of the server if you first start one application or the other. So it is probably better to use an independent way to start the server, like IndiStarter or it's future replacement.
You not have this problem with Kstars because it is a complete application, most users run only Kstars and it make sens to include the server.

I use a lot the simulator with the GSC for the application development. I not include the binary in my script because "craft gsc" is commented in your script build-kstars.sh so I not try it. Do it build the binary or also install the catalog?
A good solution will be to include the gsc binary in MacOS/indi/ but let the users that want to use it to install the catalog data out of the application directory.

I do some more testing by trying to start every driver, specifically those in 3rdparty, to look for dependency issue and I found some you can probably help me to solve.

qhy_ccd is not build at all and I not see any message about it in the build log from "craft indiserver3rdPartyLibraries" or "craft indiserver3rdParty". Is some other files, like SDK from QHY, that need to be installed first?

the SBIG driver do not load because of missing libsbig.dylib.
It is build in ~/src/indi-mac/craft/lib/ but from the script install/fix the library there is the messages:
HAVE TO COPY [libsbig.dylib] from [/usr/local/lib/libsbig.dylib] to Frameworks
cp: /usr/local/lib/libsbig.dylib: No such file or directory

Is this error because this location is set in the library?
otool -L craft/lib/libsbig.dylib
/usr/local/lib/libsbig.dylib (compatibility version 1.0.0, current version 1.0.0)

indi_eqmod_telescope fail to load the svd math plugin. It look like EnumeratePlugins search at the right location and found it but dlopen try to load it from the build location.
the message is :
Driver indi_eqmod_telescope: EnumeratePlugins - cannot load plugin /Users/pch/src/indi-mac/craft/lib/indi/MathPlugins/libindi_SVD_MathPlugin.dylib error dlopen(/Users/pch/src/indi-mac/craft/lib/indi/MathPlugins/libindi_SVD_MathPlugin.dylib, 2): image not found

The library itself look right:
otool -L testapp/test.app/Contents/Resources/MathPlugins/libindi_SVD_MathPlugin.dylib
@rpath/libindi_SVD_MathPlugin.dylib (compatibility version 0.0.0, current version 0.0.0)

I appreciate any help to solve this issues.
3 years 8 months ago #39451

Please Log in or Create an account to join the conversation.

  • Posts: 2833
  • Thank you received: 795
Hi Patrick,

Yes i can update the recipe to include 1.7.8, thats not a problem.

I commented out gsc because we decided to not include gsc in the dmg with kstars due to its size, but instead to make it a separate download from a server by selecting the option inside kstars. I left in the recipe and the commented out in the script, however, because that leaves a way for people like developers to build gsc so they can install it, build it, include it, or whatever. The gsc build, builds everything gsc needs including the files and the executable and puts them in a subfolder of the craft root folder. Then you can put it wherever you like. Then when you run the indiserver, just pass the location in an environment variable called gscdat.

I will look at those 3 drivers today. All sdks and dependencies should be handled by the script. There are no installation or build envrionment requirements before running it. I know qhy has needed to be turned off a few times due to bugs in their code. It looks like the path for sbig might be off. But i will check all of them.


3 years 8 months ago #39459

Please Log in or Create an account to join the conversation.

  • Posts: 2833
  • Thank you received: 795
Hi Patrick.

I just updated the stable build to 1.7.8. One note about that though. The other things you were asking about, QHY, LIBSBIG, and EQMOD, any issues with their installation could possibly be changes in INDI, instead of in my script or recipe. So that does mean that if you use the stable build, any changes that I make to INDI now won't be in 1.7.8.

I just checked QHY. It is currently turned on. I built the latest version of KStars last night and it built QHY too.

Here is what I have in my 3rd Party Libraries build folder and in my INDI build folder (except I cut off a little from the top and bottom on the INDI build since there is so much). Is this the same as yours?

3 years 8 months ago #39461

Please Log in or Create an account to join the conversation.

  • Posts: 2833
  • Thank you received: 795
For SBIG, you are right, the SBIG dylib is in the craft lib folder, but for some reason at the end it isn't copying it to the right place. I'm pretty sure it is an rpath issue and that should be easy to solve. I will do that now.
3 years 8 months ago #39462

Please Log in or Create an account to join the conversation.

  • Posts: 2833
  • Thank you received: 795
Ok I fixed SBIG in the recipe. It was an issue with the rpath of the library. I just set it in the recipe. That is the solution I used several times in the recipes for binary files that just get copied. The sbig library is one of those files because that is how SBIG wants us to handle their library files, as a binary blob.
3 years 8 months ago #39465

Please Log in or Create an account to join the conversation.

  • Posts: 2833
  • Thank you received: 795
I think I just found the bug for the math plugin for EQMod. it is a bug in the libindi code. I wrote it so its my mistake. I can fix that one so it uses the right path.
3 years 8 months ago #39467

Please Log in or Create an account to join the conversation.

  • Posts: 2833
  • Thank you received: 795
Ok I just sent a pull request to Jasem to fix my mistake in the path to the math plugins. I also revised the recipe for gsl because when I was looking into this problem, I found that there was an issue with gsl that was related to this. Once Jasem accepts the pull request, it should work just fine.
3 years 8 months ago #39484

Please Log in or Create an account to join the conversation.

  • Posts: 208
  • Thank you received: 103
Thank you Rob for the quick fix!

I try that later today and look more in detail for the QHY driver on my system.
3 years 8 months ago #39485

Please Log in or Create an account to join the conversation.

  • Posts: 208
  • Thank you received: 103
Unfortunately it no more work because it fail to get the cfitsio source.
This is probably unrelated to your change but because of change in HEASARC ftp described here:

I get the following error when running craft -i --target "${TARGET_VER}" indiserver
Craft               : /Users/pch/src/indi-mac/craft
Version             : master
ABI                 : macos-64-clang
Download directory  : /Users/pch/src/indi-mac/craft/download
Found an dead branch in /Users/pch/src/indi-mac/craft/etc/blueprints/locations/craft-blueprints-kde/kde/applications/kstars-mac/KStarsMacFiles
You might wan't to run "git clean -xdf" in that directry.
*** Handling package: libs/cfitsio, action: all ***
*** Action: fetch-binary for libs/cfitsio ***
*** libs/cfitsio not found in cache ***
*** Action: fetch for libs/cfitsio ***
curl ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/cfitsio3450.tar.gz
curl: (60) SSL certificate problem: certificate has expired
More details here: https://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
 of Certificate Authority (CA) public keys (CA certs). If the default
 bundle file isn't adequate, you can specify an alternate file
 using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
 the bundle, the certificate verification probably failed due to a
 problem with the certificate (it might be expired, or the name might
 not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
 the -k (or --insecure) option.
HTTPS-proxy has similar options --proxy-cacert and --proxy-insecure.
Action: fetch for libs/cfitsio:3.45 FAILED
*** Craft all failed: libs/cfitsio after 0 seconds ***
fatal error: package libs/cfitsio all failed
3 years 8 months ago #39506

Please Log in or Create an account to join the conversation.

Time to create page: 0.594 seconds