Hi all,

I'm trying to install 3rd party drivers on Debian 12, including the ZWO Asi ones.
IndiServer is already installed (after compilation, without problem).

To install ASI drivers, I first built the ASI Library using this (in a folder named ~/Projects/indi-3rdparty-libs/libasi) :

cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug -DBUIL_LIBS=1 ~/Projects/indi-3rdparty/libasi
make -j4
make install
(under the root account for the last line)

There is no problem and files are copied.

When I then tried to build the ASI drivers, all seems to work with CMake :
vincent@telescope:~/Projects/build/indi-asi$ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug ~/Projects/indi-3rdparty/indi-asi
-- The CXX compiler identification is GNU 12.2.0
-- The C compiler identification is GNU 12.2.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found ASI: /usr/lib/x86_64-linux-gnu/libASICamera2.so;/usr/lib/x86_64-linux-gnu/libEFWFilter.so;/usr/lib/x86_64-linux-gnu/libUSB2ST4Conv.so;/usr/lib/x86_64-linux-gnu/libEAFFocuser.so
-- Found CFITSIO 4.2.0: /usr/lib/x86_64-linux-gnu/libcfitsio.so
-- Found INDI: /usr/lib/x86_64-linux-gnu/libindidriver.so;/usr/lib/x86_64-linux-gnu/libindiAlignmentDriver.so (found version "1.9.9") 
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.13") 
-- Found PkgConfig: /usr/bin/pkg-config (found version "1.8.1") 
-- Found USB1: /usr/lib/x86_64-linux-gnu/libusb-1.0.so (found version "1.0.26") 
-- Performing Test USB1_HAS_LIBUSB_ERROR_NAME
-- Performing Test USB1_HAS_LIBUSB_ERROR_NAME - Success
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Performing Test COMPATIBLE_FORTIFY_SOURCE
-- Performing Test COMPATIBLE_FORTIFY_SOURCE - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /home/vincent/Projects/build/indi-asi

But errors appear with the command "make -j4"
vincent@telescope:~/Projects/build/indi-asi$ make -j4
[  7%] Building CXX object CMakeFiles/indi_asi_ccd.dir/asi_base.cpp.o
[ 14%] Building CXX object CMakeFiles/indi_asi_single_ccd.dir/asi_base.cpp.o
[ 21%] Building CXX object CMakeFiles/indi_asi_st4.dir/asi_st4.cpp.o
[ 28%] Building CXX object CMakeFiles/indi_asi_wheel.dir/asi_wheel.cpp.o
In file included from /home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:23:
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:83: error: ‘FITSRecord’ is not a member of ‘INDI’
   76 |         virtual void addFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                                                                                   ^~~~~~~~~~
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:83: error: ‘FITSRecord’ is not a member of ‘INDI’
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:93: error: template argument 1 is invalid
   76 |         virtual void addFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                                                                                             ^
In file included from /home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:23:
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:83: error: ‘FITSRecord’ is not a member of ‘INDI’
   76 | ddFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                                                             ^~~~~~~~~~

/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:93: error: template argument 2 is invalid
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:83: error: ‘FITSRecord’ is not a member of ‘INDI’
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:93: error: template argument 1 is invalid
   76 | ords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                                                             ^

/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:93: error: template argument 2 is invalid
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:22: error: ‘virtual void ASIBase::addFITSKeywords(INDI::CCDChip*, int&)’ marked ‘override’, but does not override
   76 |         virtual void addFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                      ^~~~~~~~~~~~~~~
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:22: error: ‘virtual void ASIBase::addFITSKeywords(INDI::CCDChip*, int&)’ marked ‘override’, but does not override
   76 |         virtual void addFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                      ^~~~~~~~~~~~~~~
[ 35%] Linking CXX executable indi_asi_st4
[ 42%] Linking CXX executable indi_asi_wheel
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1520:76: error: ‘FITSRecord’ is not a member of ‘INDI’
 1520 | void ASIBase::addFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords)
      |                                                                            ^~~~~~~~~~
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1520:76: error: ‘FITSRecord’ is not a member of ‘INDI’
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1520:86: error: template argument 1 is invalid
 1520 | void ASIBase::addFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords)
      |                                                                                      ^
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1520:86: error: template argument 2 is invalid
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp: In member function ‘virtual void ASIBase::addFITSKeywords(INDI::CCDChip*, int&)’:
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1522:31: error: no matching function for call to ‘ASIBase::addFITSKeywords(INDI::CCDChip*&, int&)’
 1522 |     INDI::CCD::addFITSKeywords(targetChip, fitsKeywords);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:34:
/usr/include/libindi/indiccd.h:508:22: note: candidate: ‘virtual void INDI::CCD::addFITSKeywords(INDI::CCDChip*)’
  508 |         virtual void addFITSKeywords(CCDChip * targetChip);
      |                      ^~~~~~~~~~~~~~~
/usr/include/libindi/indiccd.h:508:22: note:   candidate expects 1 argument, 2 provided
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1528:22: error: request for member ‘push_back’ in ‘fitsKeywords’, which is of non-class type ‘int’
 1528 |         fitsKeywords.push_back({"GAIN", np->value, 3, "Gain"});
      |                      ^~~~~~~~~
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1534:22: error: request for member ‘push_back’ in ‘fitsKeywords’, which is of non-class type ‘int’
 1534 |         fitsKeywords.push_back({"OFFSET", np->value, 3, "Offset"});
      |                      ^~~~~~~~~
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1520:76: error: ‘FITSRecord’ is not a member of ‘INDI’
 1520 | ddFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords)
      |                                                             ^~~~~~~~~~

/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1520:76: error: ‘FITSRecord’ is not a member of ‘INDI’
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1520:86: error: template argument 1 is invalid
 1520 | ords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords)
      |                                                             ^

/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1520:86: error: template argument 2 is invalid
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp: In member function ‘virtual void ASIBase::addFITSKeywords(INDI::CCDChip*, int&)’:
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1522:31: error: no matching function for call to ‘ASIBase::addFITSKeywords(INDI::CCDChip*&, int&)’
 1522 |     INDI::CCD::addFITSKeywords(targetChip, fitsKeywords);
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:34:
/usr/include/libindi/indiccd.h:508:22: note: candidate: ‘virtual void INDI::CCD::addFITSKeywords(INDI::CCDChip*)’
  508 |         virtual void addFITSKeywords(CCDChip * targetChip);
      |                      ^~~~~~~~~~~~~~~
/usr/include/libindi/indiccd.h:508:22: note:   candidate expects 1 argument, 2 provided
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1528:22: error: request for member ‘push_back’ in ‘fitsKeywords’, which is of non-class type ‘int’
 1528 |         fitsKeywords.push_back({"GAIN", np->value, 3, "Gain"});
      |                      ^~~~~~~~~
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.cpp:1534:22: error: request for member ‘push_back’ in ‘fitsKeywords’, which is of non-class type ‘int’
 1534 |         fitsKeywords.push_back({"OFFSET", np->value, 3, "Offset"});
      |                      ^~~~~~~~~
[ 42%] Built target indi_asi_st4
[ 42%] Built target indi_asi_wheel
[ 50%] Building CXX object CMakeFiles/indi_asi_focuser.dir/asi_focuser.cpp.o
[ 57%] Building CXX object CMakeFiles/asi_camera_test.dir/asi_camera_test.cpp.o
make[2]: *** [CMakeFiles/indi_asi_single_ccd.dir/build.make:76 : CMakeFiles/indi_asi_single_ccd.dir/asi_base.cpp.o] Erreur 1
make[1]: *** [CMakeFiles/Makefile2:119 : CMakeFiles/indi_asi_single_ccd.dir/all] Erreur 2
make[1]: *** Attente des tâches non terminées....
[ 64%] Building CXX object CMakeFiles/indi_asi_ccd.dir/asi_ccd.cpp.o
make[2]: *** [CMakeFiles/indi_asi_ccd.dir/build.make:76 : CMakeFiles/indi_asi_ccd.dir/asi_base.cpp.o] Erreur 1
make[2]: *** Attente des tâches non terminées....
[ 71%] Linking CXX executable asi_camera_test
[ 71%] Built target asi_camera_test
In file included from /home/vincent/Projects/indi-3rdparty/indi-asi/asi_ccd.h:25,
                 from /home/vincent/Projects/indi-3rdparty/indi-asi/asi_ccd.cpp:23:
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:83: error: ‘FITSRecord’ is not a member of ‘INDI’
   76 | ddFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                                                             ^~~~~~~~~~

/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:83: error: ‘FITSRecord’ is not a member of ‘INDI’
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:93: error: template argument 1 is invalid
   76 | ords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                                                             ^

/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:93: error: template argument 2 is invalid
/home/vincent/Projects/indi-3rdparty/indi-asi/asi_base.h:76:22: error: ‘virtual void ASIBase::addFITSKeywords(INDI::CCDChip*, int&)’ marked ‘override’, but does not override
   76 |         virtual void addFITSKeywords(INDI::CCDChip *targetChip, std::vector<INDI::FITSRecord> &fitsKeywords) override;
      |                      ^~~~~~~~~~~~~~~
[ 78%] Linking CXX executable indi_asi_focuser
make[2]: *** [CMakeFiles/indi_asi_ccd.dir/build.make:90 : CMakeFiles/indi_asi_ccd.dir/asi_ccd.cpp.o] Erreur 1
make[1]: *** [CMakeFiles/Makefile2:93 : CMakeFiles/indi_asi_ccd.dir/all] Erreur 2
[ 78%] Built target indi_asi_focuser
make: *** [Makefile:136 : all] Erreur 2

And the installation fails.
I think I made a mistake somwhere but I don't find.

Is there any other solution to install 3rd party drivers on Debian ?

Thank you for your help
Vincent

Read More...