×

INDI Library v2.0.7 is Released (01 Apr 2024)

Bi-monthly release with minor bug fixes and improvements

What happened to kstars?

  • Posts: 270
  • Thank you received: 74
Hi Alfred

Finally there are good news! I succeded compiling newest KStars 3.6.3 with INIDLib 2.0.0.
The whole process is very, very nitpicking with remnants of an older build and install of INDILib. Especially if there was an install in'/usr/local'.
I foolishly did not pay enough attention a couple of months ago and did such a silly install. I had a hard time until I spoted my mishap. I thought I had erased all relicts, but this afternoon I found out, that I did not correct the include path and a small archive 'libhtmesh.a' resided still in '/usr/local/lib/x86_64-linux-gnu'.
(This all was throwing totally unclear and awful errors in the cmake process.)

Furthermore I found out, that the cmake process wants exactly at least the INDILib version, which is specified in 'CMakeLists.txt'. If this is not the case a whole bunch of modules are not compiled without any warning. Among others, the modules 'align', 'capture' and 'ekos'. This is the reason the respective toolbars were empty. With the command in section 4 below I was able to determine, that cmake did indeed not find INDILib 2.0.0 and I was still working with 1.9.9!

This was my proceeding:

1. Check in depth, if there are any remnants of an old INDILib install in '/usr/local'. Apart from the libraries check '/usr/local/indi', '/usr/local/pkconfig' and '/usr/local/x86_64-linux-gnu'. Check also if '/usr/local/include/libindi' is empty.

2. Check, if the system inlude path for INDILib is indeed '/usr/include/libindi' with this command (without quotation marks):
"pkg-config --cflags libindi".
(I had to erase the whole build directory and run a new cmake process beforehand.)

3. Run INDILib build and install process. Control if the files in '/usr/local/indi' '/usr/include/libindi' are newest (e.g 24./25. january, corresponding to the newest commits).

4. Run a KStars cmake process in an empty build directory with the following command (without quotation marks):
"cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RelWithDebInfo [path]"
There should be a line in the output saying that INDI 2.0.0 was found!

After erasing the whole build directory and a "cmake" process without verbose flag, it was almost possible to build KStars! There was one drop of bitterness though: The header file '/usr/include/libindi/basedevice.h' seems to be buggy. I had to remove the "protected:" tag for "BaseDevice *operator&()". I hope the developers read this message and can correct this hiccup.

All in all I'm happy to proceed finally with my work. It was an bad and upsetting experience, but I've learned a lot, That is what counts!
Last edit: 1 year 2 months ago by Toni Schriber.
1 year 2 months ago #89899

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

  • Posts: 989
  • Thank you received: 161

Replied by Alfred on topic What happened to kstars?

Hy and Toni,

thanks an awful lot for your help, Gentlemen! I think I got a few steps closer to solving the problem. I'm not quite there yet though.

Since I do have a computer available where everything compiles flawlessly, I had a close look at the differences between the two, where files are located, etc. The error message

---
CMake Error at cmake/modules/FindINDI.cmake:22 (file):
file failed to open for reading (No such file or directory):
/usr/local/include/libindi/indiapi.h
---

made me have a look at the file kstars/cmake/modules/FindINDI.cmake

Line 22 reads:
file(READ "${INDI_INCLUDE_DIR}/indiapi.h" _INDI_version_header)

On both systems the file indiapi.h resides in /usr/include/libindi/ but on the "faulty" computer for some reason cmake expects the file to reside in /usr/local/include/libindi which does not exist. I believe INDI_INCLUDE_DIR is set wrongly. Obviously, my question is: Where is this variable set and how can I change it?

The real issue IMO is the fact that the script continues with the message:
-- Found INDI: /usr/local/lib/libindiclient.a, /usr/local/include/libindi
despite the fact that no such files exist. I believe FindINDI.cmake doesn't work properly in my case.
1 year 2 months ago #89901

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

  • Posts: 989
  • Thank you received: 161

Replied by Alfred on topic What happened to kstars?

Toni, thanks a lot for your detailed description! I followed all the steps you mentioned but no success. All the files you mention do not exist here, in fact even the respective directories don't exist. Checking the include dir gives the correct path (despite the problem I just explained).

trifid@XPC-SH87R:~/Astro/kstars/build$ pkg-config --cflags libindi
-I/usr/include/ -I/usr/include//libindi

I suspect you didn't mean .../local.... when you wrote "3. Run INDILib build and install process. Control if the files in '/usr/local/indi' are newest (e.g 24./25. january, corresponding to the newest commits)."

Running "cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RelWithDebInfo [path]" still gives me this:

[...]
-- Found CFITSIO: /usr/lib/x86_64-linux-gnu/libcfitsio.so
CMake Error at cmake/modules/FindINDI.cmake:22 (file):
file failed to open for reading (No such file or directory):

/usr/local/include/libindi/indiapi.h
Call Stack (most recent call first):
cmake/modules/FindINDI.cmake:62 (_INDI_check_version)
CMakeLists.txt:194 (find_package)


CMake Error at cmake/modules/FindINDI.cmake:22 (file):
file failed to open for reading (No such file or directory):

/usr/local/include/libindi/indiapi.h
Call Stack (most recent call first):
cmake/modules/FindINDI.cmake:153 (_INDI_check_version)
CMakeLists.txt:194 (find_package)


-- Found INDI: /usr/local/lib/libindiclient.a, /usr/local/include/libindi
[...]
Last edit: 1 year 2 months ago by Alfred.
1 year 2 months ago #89902

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

  • Posts: 270
  • Thank you received: 74
I suspect you didn't mean .../local.... when you wrote "3. Run INDILib build and install process. Control if the files in '/usr/local/indi' are newest (e.g 24./25. january, corresponding to the newest commits)."
Oh my, such a silly mistyping: You're right, I meant '/usr/include/libindi'.

-- Found CFITSIO: /usr/lib/x86_64-linux-gnu/libcfitsio.so
CMake Error at cmake/modules/FindINDI.cmake:22 (file):
file failed to open for reading (No such file or directory):

So this library is really missing?
Last edit: 1 year 2 months ago by Toni Schriber.
1 year 2 months ago #89906

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

  • Posts: 270
  • Thank you received: 74
Line 22 reads:
file(READ "${INDI_INCLUDE_DIR}/indiapi.h" _INDI_version_header)
On both systems the file indiapi.h resides in /usr/include/libindi/ but on the "faulty" computer for some reason cmake expects the file to reside in /usr/local/include/libindi which does not exist. I believe INDI_INCLUDE_DIR is set wrongly. Obviously, my question is: Where is this variable set and how can I change it?


Alfred, can You initiate a cmake process of INIDLib with verbose flag like the KStars one? There is another cmake routine ' indi/cmake_modules/FindINDI.cmake' in the INDILib sources, The header says it will define INDI _INCLUDE_DIR. Perhaps this can lighten the situation.
Last edit: 1 year 2 months ago by Toni Schriber.
1 year 2 months ago #89908

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

  • Posts: 989
  • Thank you received: 161

Replied by Alfred on topic What happened to kstars?

<em>Toni: "So this library is really missing?"</em>

No, it's not! Indiapi.h sits in /usr/include/libindi/

<em>
"Alfred, can You initiate a cmake process of INIDLib with verbose flag like the KStars one? There is another cmake routine ' indi/cmake_modules/FindINDI.cmake' in the INDILib sources, The header says it will define INDI _INCLUDE_DIR. Perhaps this can lighten the situation."</em>

I'm not quite sure if I understand correctly what you mean. I initiated cmake with verbose on and this is the output:
trifid@XPC-SH87R:~/Astro/indi/build$ cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RelWithDebInfo ../.
-- Found libnova: /usr/lib/x86_64-linux-gnu/libnova.so
-- Building INDI Client
-- Found CFITSIO: /usr/lib/x86_64-linux-gnu/libcfitsio.so
-- Found libnova: /usr/lib/x86_64-linux-gnu/libnova.so
-- Found FFTW3: /usr/lib/x86_64-linux-gnu/libfftw3.so
-- Found RTLSDR: /usr/lib/x86_64-linux-gnu/librtlsdr.so
-- Not building unit tests
-- Not building integration tests
-- The following OPTIONAL packages have been found:

* OggTheora
* RTLSDR
* GTest
* GMock

-- The following REQUIRED packages have been found:

* Libev
* ZLIB
* CFITSIO, A library for reading and writing data files in FITS (Flexible Image Transport System) data format, <heasarc.gsfc.nasa.gov/fitsio/fitsio.html>
Provides INDI with FITS I/O support.
* Nova, A general purpose, double precision, Celestial Mechanics, Astrometry and Astrodynamics library, <libnova.sourceforge.net>
Provides INDI with astrodynamics library.
* USB1
* CURL
* GSL
* JPEG
* FFTW3
* Threads

-- The following components are going to be built:
-- ## INDI Server
-- ## INDI Drivers, Tools, and Examples
-- ## INDI Client
-- Configuring done
-- Generating done
-- Build files have been written to: /home/trifid/Astro/indi/build
trifid@XPC-SH87R:~/Astro/indi/build$

I don't see any difference. When I compile though, there is a flood of additional text output.
I had a look at FindINDI.cmake, copied it to the project root directory and modified my CMakeLists.txt file by adding a few lines but in doing so I was completely out of my depth and the exercise ended in additional errors once I ran cmake.
Last edit: 1 year 2 months ago by Alfred.
1 year 2 months ago #89914

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

  • Posts: 989
  • Thank you received: 161

Replied by Alfred on topic What happened to kstars?

For the time being, i copied all *indi* files from /usr/lib/x86_64-linxu-gnu to /usr/local/lib/x86_64-linux-gnu and it works now. This is not the way it should be but anyway better than a broken kstars.
1 year 2 months ago #89915

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

  • Posts: 270
  • Thank you received: 74
"Alfred, can You initiate a cmake process of INIDLib with verbose flag like the KStars one? There is another cmake routine ' indi/cmake_modules/FindINDI.cmake' in the INDILib sources, The header says it will define INDI _INCLUDE_DIR. Perhaps this can lighten the situation."

I'm not quite sure if I understand correctly what you mean. I initiated cmake with verbose on and this is the output:
trifid@XPC-SH87R:~/Astro/indi/build$ cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RelWithDebInfo ../.


Alfred, You were asking where INDI _INCLUDE_DIR is defined. Now ' indi/cmake_modules/FindINDI.cmake' claims to do this:
This module can find INDI Library
#
# Requirements:
# - CMake >= 2.8.3 (for new version of find_package_handle_standard_args)
#
# The following variables will be defined for your use:
#   - INDI_FOUND             : were all of your specified components found (include dependencies)?
#   - INDI_WEBSOCKET         : was INDI compiled with websocket support?
#   - INDI_INCLUDE_DIR       : INDI include directory
#   - INDI_DATA_DIR          : INDI include directory
#  .....
Last edit: 1 year 2 months ago by Toni Schriber.
1 year 2 months ago #89934

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

  • Posts: 157
  • Thank you received: 19

Replied by fmozza on topic What happened to kstars?

Just read through all the bits here, and I think we're getting onto the same page. I too have had success in rebuilding it and the core of the problem is where ld is getting it's libs from. Rather than try to change the order/priority of the link paths, I removed the /usr/local/lib indi libraries, and rebuilt everything and it all works.

jmh
1 year 2 months ago #89939

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

Time to create page: 0.305 seconds