## START: Set by rpmautospec
## (rpmautospec version 0.3.5)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
    release_number = 1;
    base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
    print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
## END: Set by rpmautospec

# Define boolean to quickly set option and dependencies for
# building QT5 client
%global build_qt5_client 1

# Define boolean to quickly set option and dependencies for
# building with websocket support
%global build_websocket 1

# Define boolean to quickly set option and dependencies for
# unit tests
%global build_tests 1

Name:       libindi
Version:    2.0.3
Release:    %autorelease
Summary:    Instrument Neutral Distributed Interface

License:    GPL-2.0-or-later AND LGPL-2.1-or-later AND LGPL-2.0-or-later and BSD-3-Clause
# See COPYRIGHT file for a description of the licenses and files covered

URL:        http://www.indilib.org
Source0:    https://github.com/indilib/indi/archive/v%{version}/indi-%{version}.tar.gz

BuildRequires: cmake
BuildRequires: libev-devel
BuildRequires: libogg-devel
BuildRequires: libnova-devel
BuildRequires: libtheora-devel
BuildRequires: libXISF-devel
BuildRequires: systemd-rpm-macros

BuildRequires: pkgconfig(cfitsio)
BuildRequires: pkgconfig(fftw3)
BuildRequires: pkgconfig(libcurl)
BuildRequires: pkgconfig(gsl)
BuildRequires: pkgconfig(libjpeg)
BuildRequires: pkgconfig(libusb-1.0)
BuildRequires: pkgconfig(zlib)

%if 0%{?build_qt5_client}
BuildRequires: pkgconfig(Qt5Network)
%global qt5_client ON
%else
%global qt5_client OFF
%endif

%if 0%{?build_websocket}
BuildRequires: boost-devel
BuildRequires: websocketpp-devel
%global websocket ON
%else
%global websocket OFF
%endif

%if 0%{?build_tests}
BuildRequires: pkgconfig(gtest)
BuildRequires: pkgconfig(gmock)
%global tests ON
%else
%global tests OFF
%endif

Requires: %{name}-libs%{?_isa} = %{version}-%{release}

%description
INDI is a distributed control protocol designed to operate
astronomical instrumentation. INDI is small, flexible, easy to parse,
and scalable. It supports common DCS functions such as remote control,
data acquisition, monitoring, and a lot more.


%package devel
Summary: Libraries, includes, etc. used to develop an application with %{name}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: %{name}-static%{?_isa} = %{version}-%{release}

%description devel
These are the header files needed to develop a %{name} application


%package libs
Summary: INDI shared libraries

%description libs
These are the shared libraries of INDI.


%if 0%{?build_qt5_client}
%package qt
Summary: INDI Qt5 client libraries
Requires: %{name}-libs%{?_isa} = %{version}-%{release}

%description qt
These are the Qt5 client libraries of INDI.
%endif


%package static
Summary: Static libraries, includes, etc. used to develop an application with %{name}
Requires: %{name}-libs%{?_isa} = %{version}-%{release}

%description static
Static library needed to develop a %{name} application

%prep
%autosetup -p1 -n indi-%{version}

# For Fedora we want to put udev rules in %%{_udevrulesdir}
sed -i 's|/lib/udev/rules.d|%{_udevrulesdir}|g' CMakeLists.txt
chmod -x drivers/telescope/pmc8driver.h
chmod -x drivers/telescope/pmc8driver.cpp

%build
%cmake \
    -DINDI_BUILD_QT5_CLIENT="%{qt5_client}" \
    -DINDI_BUILD_UNITTESTS="%{tests}" \
    -DINDI_BUILD_WEBSOCKET="%{websocket}"

%cmake_build

%install
%cmake_install


%check
%if 0%{?build_tests}
%ctest --test-dir %_vpath_builddir/test
%endif


%files
%license COPYING.BSD COPYING.GPL COPYING.LGPL COPYRIGHT LICENSE
%doc AUTHORS ChangeLog NEWS README
%{_bindir}/indi_*
%{_bindir}/indiserver
%{_bindir}/shelyak_usis
%{_datadir}/indi
%{_udevrulesdir}/80-dbk21-camera.rules
%{_udevrulesdir}/99-indi_auxiliary.rules

%files libs
%license COPYING.BSD COPYING.GPL COPYING.LGPL COPYRIGHT LICENSE
%if 0%{?build_qt5_client}
%exclude %{_libdir}/libindiclientqt.so.*
%endif
%{_libdir}/%{name}*.so.2
%{_libdir}/%{name}*.so.2.*
%{_libdir}/indi/MathPlugins

%if 0%{?build_qt5_client}
%files qt
%{_libdir}/libindiclientqt.so.2
%{_libdir}/libindiclientqt.so.2.*
%endif

%files devel
%{_includedir}/%{name}
%{_libdir}/%{name}*.so
%{_libdir}/pkgconfig/%{name}.pc

%files static
%{_libdir}/%{name}*.a


%changelog
* Sun Aug 20 2023 Mattia Verga <mattia.verga@proton.me> - 2.0.3-1
- Update to 2.0.3

* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild

* Fri Jun 02 2023 Mattia Verga <mattia.verga@proton.me> - 2.0.2-1
- Update to 2.0.2 (fedora#2211737)

* Mon Apr 17 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 2.0.1-3
- Fix systemd BuildRequires

* Mon Apr 17 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 2.0.1-2
- Separate Qt5 client library

* Tue Apr 11 2023 Mattia Verga <mattia.verga@proton.me> - 2.0.1-1
- Update to 2.0.1 (fedora#2184574)
- Enable libXISF support

* Sun Feb 26 2023 Orion Poplawski <orion@nwra.com> - 2.0.0-3
- Rebuilt for Boost 1.81

* Tue Feb 14 2023 Mattia Verga <mattia.verga@proton.me> - 2.0.0-2
- Remove old patch

* Tue Feb 14 2023 Mattia Verga <mattia.verga@proton.me> - 2.0.0-1
- Update to 2.0.0 (fedora#2165858)

* Sun Jan 29 2023 Benjamin A. Beasley <code@musicinmybrain.net> - 1.9.9-4
- Fix missing header for GCC 13

* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.9-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild

* Thu Dec 29 2022 Maxwell G <gotmax@e.email> - 1.9.9-2
- Rebuild for cfitsio 4.2

* Sun Dec 04 2022 Mattia Verga <mattia.verga@proton.me> - 1.9.9-1
- Update to 1.9.9 (fedora#2149808)

* Tue Oct 04 2022 Mattia Verga <mattia.verga@proton.me> - 1.9.8-1
- Update to 1.9.8

* Tue Aug 23 2022 Mamoru TASAKA <mtasaka@fedoraproject.org> - 1.9.7-2
- Rebuild for gsl-2.7.1

* Sat Aug 06 2022 Mattia Verga <mattia.verga@proton.me> - 1.9.7-1
- Update to 1.9.7

* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild

* Mon Mar 21 2022 Mattia Verga <mattia.verga@protonmail.com> - 1.9.5.1-1
- Upgrade to 1.9.5.1

* Mon Feb 28 2022 Rex Dieter <rdieter@fedoraproject.org> - 1.9.4-2
- enable ogg/theora support

* Sat Feb 05 2022 Mattia Verga <mattia.verga@protonmail.com> - 1.9.4-1
- Upgrade to 1.9.4

* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild

* Thu Jan 06 2022 Mattia Verga <mattia.verga@protonmail.com> - 1.9.3-2
- Disable tests on s390x

* Thu Jan 06 2022 Mattia Verga <mattia.verga@protonmail.com> - 1.9.3-1
- Upgrade to 1.9.3
- Remove unneeded patches
- Fix and enable tests

* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - Packaging variables read or set by %forgemeta
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild

* Thu May 13 2021 Mattia Verga <mattia.verga@protonmail.com> - 1.9.0-1
- Upgrade to 1.9.0
- Added options to build qt5 client and unit tests
- Remove %%ldconfig_scriptlets macro

* Tue Feb 02 2021 Christian Dersch <lupinix@mailbox.org> - 1.8.6-4
- Rebuilt for libcfitsio.so.7

* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild

* Fri Dec 04 2020 Jeff Law <law@redhat.com> - 1.8.6-2
- Fix missing #includes for gcc-11

* Mon Aug 24 2020 Sergio Pascual <sergiopr@fedoraproject.org> - 1.8.6-1
- New upstream source (1.8.6)

* Tue Aug 18 2020 Sergio Pascual <sergiopr@fedoraproject.org> - 1.8.5-4
- Fix cmake out-of-source-build (bz #1864002)

* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.5-3
- Second attempt - Rebuilt for
  https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild

* Thu Jul 09 2020 Sergio Pascual <sergiopr@fedoraproject.org> 1.8.5-1
- New upstream source (1.8.5)

* Wed Jul 08 2020 Jeff Law <law@redhat.com> 1.8.1-4
- Disable LTO

* Sun Mar 01 2020 Sergio Pascual <sergiopr@fedoraproject.org> 1.8.1-3
- Patch stime in arm (bz#1799588)

* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.8.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Sun Oct 20 2019 Christian Dersch <lupinix@fedoraproject.org> - 1.8.1-1
- new version

* Tue Aug 20 2019 Susi Lehtola <jussilehtola@fedoraproject.org> - 1.7.7-3
- Rebuilt for GSL 2.6.

* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Sun Apr 28 2019 Christian Dersch <lupinix@mailbox.org> - 1.7.7-1
- new version

* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild

* Wed Jan 23 2019 Björn Esser <besser82@fedoraproject.org> - 1.7.4-3
- Append curdir to CMake invokation. (#1668512)

* Tue Jul 31 2018 Florian Weimer <fweimer@redhat.com> - 1.7.4-2
- Rebuild with fixed binutils

* Sun Jul 29 2018 Christian Dersch <lupinix@mailbox.org> - 1.7.4-1
- new version

* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.7.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild

* Thu Jun 21 2018 Sergio Pascual <sergiopr@fedoraproject.org> 1.7.2-2
- Patch udev rule to remove plugdev (bz #1577332)

* Sat May 26 2018 Christian Dersch <lupinix@mailbox.org> - 1.7.2-1
- new version

* Fri Feb 23 2018 Christian Dersch <lupinix@mailbox.org> - 1.6.2-3
- rebuilt for cfitsio 3.420 (so version bump)

* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild

* Mon Jan 08 2018 Christian Dersch <lupinix@mailbox.org> - 1.6.2-1
- new version

* Mon Jan 08 2018 Christian Dersch <lupinix@mailbox.org> - 1.6.1-1
- new version

* Tue Jan 02 2018 Christian Dersch <lupinix@fedoraproject.org> - 1.6.0-1
- new version
- split shared libraries into -libs subpackage, to be multiarch clean

* Sat Oct 07 2017 Christian Dersch <lupinix@mailbox.org> - 1.5.0-1
- new version

* Sat Aug 05 2017 Christian Dersch <lupinix@mailbox.org> - 1.4.1-4
- Rebuild (gsl)

* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild

* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.4.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild

* Mon Feb 27 2017 Christian Dersch <lupinix@mailbox.org> - 1.4.1-1
- new version

* Sun Feb 26 2017 Christian Dersch <lupinix@mailbox.org> - 1.4.0-1
- new version

* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Thu Dec 15 2016 derschc <lupinix@mailbox.org> - 1.3.1-1
- new version

* Sat May 07 2016 Christian Dersch <lupinix@mailbox.org> - 1.2.0-3
- Unified spec for Fedora and EPEL

* Mon Feb 22 2016 Orion Poplawski <orion@cora.nwra.com> - 1.2.0-2
- Rebuild for gsl 2.1

* Tue Feb 02 2016 Christian Dersch <lupinix@mailbox.org> - 1.2.0-1
- new version

* Mon Sep 07 2015 Christian Dersch <lupinix@fedoraproject.org> 1.1.0-1
- New upstream source (1.1.0)
- New BR: curl-devel
- New BR: systemd (for udevrulesdir macro)

* Mon Feb 23 2015 Sergio Pascual <sergiopr@fedoraproject.org> 1.0.0-1
- New upstream source (1.0.0)

* Mon Oct 06 2014 Sergio Pascual <sergiopr@fedoraproject.org> 0.9.9-1
- New upstream source (0.9.9)
- Removed patches ported upstream

* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.8.1-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild

* Mon Jul 28 2014 Peter Robinson <pbrobinson@fedoraproject.org> 0.9.8.1-6
- rebuild (libnova)

* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.8.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

* Mon May 12 2014 Marcin Juszkiewicz <mjuszkiewicz@redhat.com> 0.9.8.1-4
- Add AArch64 definitions where needed.

* Fri May 09 2014 Sergio Pascual <sergiopr@fedoraproject.org> 0.9.8.1-3
- Plugin directory has to be arch-dependent

* Sun Apr 27 2014 Christian Dersch <chrisdersch@gmail.com> 0.9.8.1-2
- Fix wrong upstream version

* Thu Apr 24 2014 Sergio Pascual <sergiopr@fedoraproject.org> 0.9.8.1-1
- New upstream source (0.9.8.1)

* Tue Dec 03 2013 Sergio Pascual <sergiopr@fedoraproject.org> 0.9.7-1
- New upstream source (0.9.7)

* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.6-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Wed Jul 17 2013 Sergio Pascual <sergiopr@fedoraproject.org> 0.9.6-5
- rebuild (cfitsio 3.350)

* Fri Mar 22 2013 Rex Dieter <rdieter@fedoraproject.org> 0.9.6-4
- rebuild (cfitsio)

* Wed Mar 20 2013 Rex Dieter <rdieter@fedoraproject.org> 0.9.6-3
- rebuild (cfitsio)

* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Fri Dec 07 2012 Sergio Pascual <sergiopr at fedoraproject.org> - 0.9.6-1
- New upstream source
- Added udev rules (in wrong directory)
- Fixed FSF previous address bug, new appear

* Tue Jan 24 2012 Sergio Pascual <sergiopr at fedoraproject.org> - 0.9-1
- New upstream source
- All instruments created (solves #653690)
- Library does not call exit()
- Library does not build require boost-devel

* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Fri Jul 15 2011 Sergio Pascual <sergiopr at fedoraproject.org> - 0.8-1
- New upstream source
- Submitted a bug upstream, address of FSF is incorrect in some files

* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.6.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Fri Nov 26 2010 Sergio Pascual <sergiopr at fedoraproject.org> - 0.6.2-2
- Adding manually telescopes missing (bz #653690)

* Thu Jul 29 2010 Sergio Pascual <sergiopr at fedoraproject.org> - 0.6.2-1
- New upstream source (bz #618776)
- Bz #564842 fixed upstream, patch removed
- With pkgconfig file

* Wed Feb 17 2010 Sergio Pascual <sergiopr at fedoraproject.org> - 0.6-11
- Added missing -lm in indi_sbig_stv. Fixes bz #564842

* Fri Jan 08 2010 Sergio Pascual <sergiopr at fedoraproject.org> - 0.6-10
- EVR bump, rebuilt with new libnova

* Tue Dec 22 2009 Sergio Pascual <sergiopr at fedoraproject.org> - 0.6-9
- Static library moved to its own subpackage

* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.6-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.6-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild

* Wed Feb 18 2009 Sergio Pascual <sergiopr at fedoraproject.org> -  0.6-6
- Provides libindi-static

* Tue Feb 17 2009 Sergio Pascual <sergiopr at fedoraproject.org> -  0.6-5
- Need to provide the static library libindidriver.a to build indi-apogee

* Sat Feb 14 2009 Sergio Pascual <sergiopr at fedoraproject.org> -  0.6-4
- Fixed patch to find cfitsio

* Sat Feb 14 2009 Sergio Pascual <sergiopr at fedoraproject.org> -  0.6-3
- Patch to detect cfitsio in all architectures

* Fri Feb 06 2009 Sergio Pascual <sergiopr at fedoraproject.org> -  0.6-2
- Commands (rm, make) instead of macros
- Upstream bug about licenses (GPLv2 missing)
- Upstream bug about libindi calling exit

* Mon Jan 26 2009 Sergio Pascual <sergiopr at fedoraproject.org> -  0.6-1
- First version