×

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

Bi-monthly release with minor bug fixes and improvements

AstroSoftBuild scripts to easy build INDI and KStars

  • Posts: 359
  • Thank you received: 114
I created scripts that will build INDI and KStars/Ekos on any Linux system and install build dependencies on any Debian based distro like Ubuntu, Mate, Raspberry OS etc.

Link to repository gitea.nouspiro.space/nou/astro-soft-build

Before running this script uninstall INDI and KStars from repository.

Steps:
  1. Clone git repository git clone gitea.nouspiro.space/nou/astro-soft-build.git
  2. Enter cloned directory cd astro-soft-build
  3. Install dependencies by running ./install-dependencies.sh This need to be done only first time.
  4. If you are using QHY camera then run ./build-fxload.sh
  5. Run one of build-soft-stable.sh or build-soft-latest.sh

For general use run stable version. Use latest version if you want to test new bleeding edge feature in development.
Latest build sometimes fail because some breaking change in base indi and not every driver was updated. In this case try to wait day and try again.
If stable build fail try remove all build-* directories in $HOME/astro-soft or $HOME/astro-soft-stable

I update stable script when new stable version of INDI is released so to get latest version run
  1. Enter astro-soft-build directory
  2. Run git pull origin
  3. Run one of build-soft-stable.sh or build-soft-latest.sh
The following user(s) said Thank You: Alan Archer, Avocette, Euripides, Osvaldo Paez, Massimo
Last edit: 2 months 3 weeks ago by nou.
2 months 3 weeks ago #98748

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

  • Posts: 54
  • Thank you received: 5
I've been using Nou's script to keep my scope PC running for at least three years. They are simple to use, rock robust, and frequently updated, ensuring that you have the best possible soft environment.

It's worth noting that the build-soft-stable.sh script allows you to alter the version of all installed components by just changing the first lines of code.

Thank you so much, Nou, for your efforts.
2 months 3 weeks ago #98750

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

  • Posts: 33
  • Thank you received: 3
Very useful and simple to install/update INDI and Kstars, it was my alternative when Astroberry stopped updating, I use it on my Rasperry PI4 with Raspberry Pi OS
Thanks Nou!!
2 months 3 weeks ago #98751

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

  • Posts: 9
  • Thank you received: 1
Hi!

The scripts are really awesome! They keep building on every new Kstars version! Thank you very much.

I found that it would be great to set the ROOTDIR in a custom location, so I introduced a small improvement on the scripts. Unfortunately, I didn't find the way to submit a Pull Request, so I am including the patch code here for other users:
astro@raspberrypi:/media/astro/rootfs/home/astro/Downloads/astro-soft-build $ git diff
diff --git a/build-soft-stable.sh b/build-soft-stable.sh
index e37f9b7..b105827 100755
--- a/build-soft-stable.sh
+++ b/build-soft-stable.sh
@@ -9,7 +9,8 @@ INDI_3RD_COMMIT="v2.0.6"
 STELLAR_COMMIT="e415e51d99224f239c24634519c030ef60969723"
 KSTARS_COMMIT="origin/stable-3.6.9"
 
-ROOTDIR="$HOME/astro-soft-stable"
+HOME_DIR=${HOME_DIR:-$HOME}
+ROOTDIR="$HOME_DIR/astro-soft-stable"
 
 JOBS=$(grep -c ^processor /proc/cpuinfo)
 

To use a custom location for the ROOTDIR, just set variable HOME_DIR before calling the script:
export HOME_DIR=/YOUR/CUSTOM_FOLDER
./build-soft-stable.sh

Then all the build folders will show on /YOUR/CUSTOM_FOLDER
2 months 3 weeks ago #98766

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

  • Posts: 9
  • Thank you received: 1
Hi again!

I am building in a Raspberry Pi OS 64-bits (debian 11.8 ), here it is the result of `uname -a`:
Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr  3 17:24:16 BST 2023 aarch64 GNU/Linux
I found an error while building stable:
CMake Error at indi-weewx-json/CMakeLists.txt:22 (find_package):
  By not providing "Findnlohmann_json.cmake" in CMAKE_MODULE_PATH this
  project has asked CMake to find a package configuration file provided by
  "nlohmann_json", but CMake did not find one.
 
  Could not find a package configuration file provided by "nlohmann_json"
  with any of the following names:
 
    nlohmann_jsonConfig.cmake
    nlohmann_json-config.cmake
 
  Add the installation prefix of "nlohmann_json" to CMAKE_PREFIX_PATH or set
  "nlohmann_json_DIR" to a directory containing one of the above files.  If
  "nlohmann_json" provides a separate development package or SDK, be sure it
  has been installed.
I run `./install-dependencies.sh` before compiling, so I had to figure out that there was a missing dependency: `nlohmann-json3-dev`.

Once I installed it, the build continued.
Last edit: 2 months 3 weeks ago by Orestes Sanchez.
2 months 3 weeks ago #98767

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

  • Posts: 359
  • Thank you received: 114
Good idea with custom dir. I added it as BUILD_DIR.

INDI by default use their own bundled JSON lib that is controlled by cmake INDI_SYSTEM_JSONLIB option. No idea why it flipped to ON for you.
2 months 3 weeks ago #98779

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

  • Posts: 9
  • Thank you received: 1
Unfortunately, I am stuck again, since I get an error building one of the 3rd-parties module, the one on astroasis.
I think the root cause is that I first created the build for version 3.6.4 and then I updated the scripts and the git repositories, and to some extent the cmake configuration is not properly updated on my build folder. I am not an expert on cmake, so I don't know how to solve it.
Any advice on how to re-run the initial configuration?
I think that if I delete all the build folders and start from scratch it will work, but I would like to avoid it, since it takes a long time to build everything.
2 months 3 weeks ago #98811

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

  • Posts: 359
  • Thank you received: 114
Just delete build folders. Trying to fix issues like this takes more time than just rebuilding everything from scratch. Especially because you can just start it and came back when it is done. Also from my experience update build is not that shorter than full one because most of files must be recompiled because of some header gets updated.
2 months 3 weeks ago #98814

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

  • Posts: 9
  • Thank you received: 1
I deleted all build folders and it successfully built... it took 2.5 hours in a RaspberryPi 4 with 8Gb, using an SSD.

Thank you!
2 months 2 weeks ago #98856

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

  • Posts: 33
  • Thank you received: 3
Hi
When I use `./build-soft-latest.sh` I get the following error and the installation stops, any information is welcome
RPi4 4Gb
Linux raspberrypi 6.1.74-v8+ #1725 SMP PREEMPT Mon Jan 22 13:35:32 GMT 2024 aarch64 GNU/Linux
Best regards
Osvaldo

osvpaez@raspberrypi:~/astro-soft-build $ ./build-soft-latest.sh
Low memory limiting to JOBS=2
Cloning into 'libXISF'...
remote: Enumerating objects: 609, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 609 (delta 1), reused 0 (delta 0), pack-reused 603
Receiving objects: 100% (609/609), 1.71 MiB | 1.11 MiB/s, done.
Resolving deltas: 100% (271/271), done.
hint: Pulling without specifying how to reconcile divergent branches is
hint: discouraged. You can squelch this message by running one of the following
hint: commands sometime before your next pull:
hint:
hint: git config pull.rebase false # merge (the default strategy)
hint: git config pull.rebase true # rebase
hint: git config pull.ff only # fast-forward only
hint:
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
Already up to date.
-- The CXX compiler identification is GNU 10.2.1
-- The C compiler identification is GNU 10.2.1
-- 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 PkgConfig: /usr/bin/pkg-config (found version "0.29.2")
-- Checking for module 'libzstd'
-- Found libzstd, version 1.4.8
-- Configuring done
-- Generating done
-- Build files have been written to: /home/osvpaez/astro-soft/build-libXISF
Scanning dependencies of target XISF
[ 7%] Building CXX object CMakeFiles/XISF.dir/bytearray.cpp.o
[ 7%] Building CXX object CMakeFiles/XISF.dir/libxisf.cpp.o
[ 11%] Building CXX object CMakeFiles/XISF.dir/streambuffer.cpp.o
[ 14%] Building CXX object CMakeFiles/XISF.dir/utils.cpp.o
[ 18%] Building CXX object CMakeFiles/XISF.dir/variant.cpp.o
/home/osvpaez/astro-soft/libXISF/variant.cpp: In instantiation of ‘LibXISF::Variant::toString() const::<lambda(auto:23)> [with auto:23 = LibXISF::Matrix<float>]’:
/home/osvpaez/astro-soft/libXISF/variant.cpp:483:85: required from here
/home/osvpaez/astro-soft/libXISF/variant.cpp:447:30: error: call of overloaded ‘to_chars(char [128], char*&, float&)’ is ambiguous
447 | std::to_chars(str, end, matrix(i, o));
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/osvpaez/astro-soft/libXISF/variant.cpp:19:
/usr/include/c++/10/charconv:366:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, char, int)’
366 | _GLIBCXX_TO_CHARS(char)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:367:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, signed char, int)’
367 | _GLIBCXX_TO_CHARS(signed char)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:368:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, unsigned char, int)’
368 | _GLIBCXX_TO_CHARS(unsigned char)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:369:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, short int, int)’
369 | _GLIBCXX_TO_CHARS(signed short)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:370:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, short unsigned int, int)’
370 | _GLIBCXX_TO_CHARS(unsigned short)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:371:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, int, int)’
371 | _GLIBCXX_TO_CHARS(signed int)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:372:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, unsigned int, int)’
372 | _GLIBCXX_TO_CHARS(unsigned int)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:373:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, long int, int)’
373 | _GLIBCXX_TO_CHARS(signed long)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:374:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, long unsigned int, int)’
374 | _GLIBCXX_TO_CHARS(unsigned long)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:375:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, long long int, int)’
375 | _GLIBCXX_TO_CHARS(signed long long)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:376:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, long long unsigned int, int)’
376 | _GLIBCXX_TO_CHARS(unsigned long long)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:378:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, __int128, int)’
378 | _GLIBCXX_TO_CHARS(signed __GLIBCXX_TYPE_INT_N_0)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:379:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, __int128 unsigned, int)’
379 | _GLIBCXX_TO_CHARS(unsigned __GLIBCXX_TYPE_INT_N_0)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:397:19: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, bool, int)’ (deleted)
397 | to_chars_result to_chars(char*, char*, bool, int = 10) = delete;
| ^~~~~~~~
/home/osvpaez/astro-soft/libXISF/variant.cpp: In instantiation of ‘LibXISF::Variant::toString() const::<lambda(auto:23)> [with auto:23 = LibXISF::Matrix<double>]’:
/home/osvpaez/astro-soft/libXISF/variant.cpp:484:85: required from here
/home/osvpaez/astro-soft/libXISF/variant.cpp:447:30: error: call of overloaded ‘to_chars(char [128], char*&, double&)’ is ambiguous
447 | std::to_chars(str, end, matrix(i, o));
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/osvpaez/astro-soft/libXISF/variant.cpp:19:
/usr/include/c++/10/charconv:366:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, char, int)’
366 | _GLIBCXX_TO_CHARS(char)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:367:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, signed char, int)’
367 | _GLIBCXX_TO_CHARS(signed char)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:368:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, unsigned char, int)’
368 | _GLIBCXX_TO_CHARS(unsigned char)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:369:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, short int, int)’
369 | _GLIBCXX_TO_CHARS(signed short)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:370:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, short unsigned int, int)’
370 | _GLIBCXX_TO_CHARS(unsigned short)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:371:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, int, int)’
371 | _GLIBCXX_TO_CHARS(signed int)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:372:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, unsigned int, int)’
372 | _GLIBCXX_TO_CHARS(unsigned int)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:373:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, long int, int)’
373 | _GLIBCXX_TO_CHARS(signed long)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:374:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, long unsigned int, int)’
374 | _GLIBCXX_TO_CHARS(unsigned long)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:375:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, long long int, int)’
375 | _GLIBCXX_TO_CHARS(signed long long)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:376:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, long long unsigned int, int)’
376 | _GLIBCXX_TO_CHARS(unsigned long long)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:378:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, __int128, int)’
378 | _GLIBCXX_TO_CHARS(signed __GLIBCXX_TYPE_INT_N_0)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:379:1: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, __int128 unsigned, int)’
379 | _GLIBCXX_TO_CHARS(unsigned __GLIBCXX_TYPE_INT_N_0)
| ^~~~~~~~~~~~~~~~~
/usr/include/c++/10/charconv:397:19: note: candidate: ‘std::to_chars_result std::to_chars(char*, char*, bool, int)’ (deleted)
397 | to_chars_result to_chars(char*, char*, bool, int = 10) = delete;
| ^~~~~~~~
make[2]: *** [CMakeFiles/XISF.dir/build.make:134: CMakeFiles/XISF.dir/variant.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:124: CMakeFiles/XISF.dir/all] Error 2
make: *** [Makefile:160: all] Error 2
LibXISF compilation failed
osvpaez@raspberrypi:~/astro-soft-build $
2 months 2 weeks ago #98907

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

  • Posts: 359
  • Thank you received: 114
Why do you have GCC 10? Ok I added workaround for that try again.
2 months 2 weeks ago #98908

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

  • Posts: 33
  • Thank you received: 3
Hi Nou
Do not install this version, must have updated with some apt upgrade/dist-upgrade
Thanks for your concern, I'm installing the stable version now, as soon as I can I'll try again

Best regards
2 months 2 weeks ago #98909

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

Time to create page: 1.233 seconds