Name: indigo Version: 2.0.340 Release: 4%{?dist} Summary: INDIGO astronomy framework, tools, and drivers License: LicenseRef-INDIGO-2.0 URL: https://github.com/indigo-astronomy/indigo %global tag 2.0-340 %global indigo_plugindir %{_libdir}/indigo/drivers %global indigo_sharedir %{_datadir}/indigo Source0: %{url}/archive/refs/tags/%{tag}.tar.gz#/indigo-%{tag}.tar.gz BuildRequires: automake BuildRequires: autoconf BuildRequires: cmake BuildRequires: libtool BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: make BuildRequires: git BuildRequires: pkgconfig BuildRequires: curl BuildRequires: libcurl-devel BuildRequires: zlib-devel BuildRequires: libusb-compat-0.1-devel BuildRequires: avahi-compat-libdns_sd-devel BuildRequires: libudev-devel BuildRequires: systemd-devel BuildRequires: patchelf BuildRequires: LibRaw-devel # Optional, keeps linkers targeting system libs where possible BuildRequires: libjpeg-turbo-devel BuildRequires: libtiff-devel BuildConflicts: libraw1394-devel Requires: %{name}-libs = %{version}-%{release} Requires: %{name}-drivers = %{version}-%{release} Requires: libusb-compat-0.1 Requires: avahi-compat-libdns_sd Requires: libcurl %description INDIGO framework with server, CLI tools, shared libraries, and a large set of loadable drivers for astronomical devices. # ---- subpackages %package libs Summary: INDIGO shared libraries and bundled vendor SDKs %description libs Shared libraries used by INDIGO tools and drivers. %package drivers Summary: INDIGO loadable and executable drivers plus driver lists Requires: %{name}-libs = %{version}-%{release} %description drivers All loadable (*.so) and executable drivers and the driver list files. %package devel Summary: Headers, pkg-config, and static libs for INDIGO Requires: %{name}-libs = %{version}-%{release} %description devel Headers under /usr/include/indigo and indigo.pc for building against INDIGO. %prep %autosetup -n %{name}-%{tag} %build # build LibRaw first to avoid header race # make -j1 -C indigo_libs/externals/libraw || : export CFLAGS="%{build_cflags} -I$PWD/indigo_libs/externals/libraw/libraw" export CXXFLAGS="%{build_cxxflags} -I$PWD/indigo_libs/externals/libraw/libraw" %make_build all -j1 all %install # ---- binaries (skip jpeg/tiff utils) install -d %{buildroot}%{_bindir} for b in indigo_server indigo_prop_tool indigo_driver_metadata \ indigo_list_usbserial indigo_raw_crop indigo_raw_to_fits \ indigo_scan_drivers indigo_drivers; do [ -x build/bin/$b ] && install -m0755 build/bin/$b %{buildroot}%{_bindir}/$b done # ---- shared libs install -d %{buildroot}%{_libdir} cp -a build/lib/*.so* %{buildroot}%{_libdir}/ 2>/dev/null || : # ---- drivers in a subdir install -d %{buildroot}%{indigo_plugindir} cp -a build/drivers/*.so %{buildroot}%{indigo_plugindir}/ 2>/dev/null || : # executable shims without .so find build/drivers -maxdepth 1 -type f -perm /111 ! -name "*.so" ! -name "*.a" \ -exec install -m0755 {} %{buildroot}%{indigo_plugindir}/ \; # ---- driver lists (use basenames so name-only loads work) install -d %{buildroot}%{_datadir}/indigo ( cd %{buildroot}%{indigo_plugindir} && ls -1 indigo_*.so 2>/dev/null \ | sed 's/\.so$//' | sort -u ) > %{buildroot}%{_datadir}/indigo/indigo_linux_drivers cp -a %{buildroot}%{_datadir}/indigo/indigo_linux_drivers \ %{buildroot}%{_datadir}/indigo/indigo_drivers # ---- make the loader see the subdir (for dlopen by basename) install -d %{buildroot}%{_sysconfdir}/ld.so.conf.d cat > %{buildroot}%{_sysconfdir}/ld.so.conf.d/indigo.conf <<'EOF' %{_libdir}/indigo %{_libdir}/indigo/drivers EOF # ---- devel install -d %{buildroot}%{_includedir}/indigo cp -a build/include/* %{buildroot}%{_includedir}/indigo/ 2>/dev/null || : cp -a build/lib/libindigo.a %{buildroot}%{_libdir}/ 2>/dev/null || : cp -a build/lib/libindigocat.a %{buildroot}%{_libdir}/ 2>/dev/null || : install -d %{buildroot}%{_libdir}/pkgconfig sed -e 's|^prefix=.*|prefix=%{_prefix}|' \ -e 's|^exec_prefix=.*|exec_prefix=%{_prefix}|' \ -e 's|^libdir=.*|libdir=%{_libdir}|' \ -e 's|^includedir=.*|includedir=%{_includedir}/indigo|' \ indigo.pc > %{buildroot}%{_libdir}/pkgconfig/indigo.pc # ---- scrub RPATH/RUNPATH while IFS= read -r -d '' f; do patchelf --remove-rpath "$f" 2>/dev/null || : done < <(find %{buildroot} -type f \( -perm /111 -o -name "*.so*" \) -print0) find %{buildroot}%{_libdir} -name "*.la" -delete 2>/dev/null || : %post drivers -p /sbin/ldconfig %postun drivers -p /sbin/ldconfig %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig %check # no upstream tests %files %license LICENSE.md %doc README.md CHANGELOG.md %{_bindir}/indigo_* %files libs %{_libdir}/*.so* %files drivers %dir %{_libdir}/indigo %dir %{indigo_plugindir} %{indigo_plugindir}/* %config(noreplace) %{_datadir}/indigo/indigo_drivers %config(noreplace) %{_datadir}/indigo/indigo_linux_drivers %config(noreplace) %{_sysconfdir}/ld.so.conf.d/indigo.conf %files devel %{_includedir}/indigo/ %{_libdir}/libindigo.a %{_libdir}/libindigocat.a %{_libdir}/pkgconfig/indigo.pc %changelog * Fri Sep 12 2025 Valentin Nyzam - 2.0.340-4 - Install drivers under %{_libdir}/indigo/drivers. - Generate driver lists with basenames; ship both indigo_drivers and indigo_linux_drivers. - Add /etc/ld.so.conf.d/indigo.conf so basename dlopen() works. * Fri Sep 12 2025 Valentin Nyzam - 2.0.340-3 - Install plugins to %{_libdir}/indigo/drivers. - Ship generated driver lists under /usr/share/indigo. * Fri Sep 12 2025 Valentin Nyzam - 2.0.340-2 - Use system LibRaw headers. - Exclude JPEG/TIFF utilities to avoid file conflicts. - Add RPATH scrub. Package tools, libs, drivers, driver lists, headers, pc. * Fri Sep 12 2025 Valentin Nyzam - 2.0.340-1 - Initial Fedora packaging with binaries, drivers, libs, headers, mans, docs.