## START: Set by rpmautospec
## (rpmautospec version 0.7.3)
## 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


Summary: EdgeTX Companion
Name: edgetx-companion

Version: 2.10.6
Release: %autorelease
License: GPLv2
URL: https://edgetx.org/
Source0: https://github.com/EdgeTX/edgetx/archive/refs/tags/v%{version}.tar.gz#/edgetx-%{version}.tar.gz
Source12: https://github.com/nothings/stb/archive/7cce4c3ad9a147c67258c5966f676d8436140939.tar.gz#/stb-7cce4c3a.tar.gz
Source14: https://github.com/EdgeTX/lvgl/archive/9a414b1d48d2893133b6038ec80d59fb157aade4.tar.gz#/lvgl-9a414b1d.tar.gz
Source15: https://github.com/google/googletest/archive/refs/tags/v1.14.0.tar.gz#/googletest-1.14.0.tar.gz
Source16: https://github.com/edgetx/maxLibQt/archive/b5418f76cc4891e09f4e21276175d39dbb130f66.tar.gz#/maxLibQt-b5418f76.tar.gz

Patch1: edgetx-cmake.patch
Patch2: edgetx-desktop.patch
Patch4: edgetx-disable-appimage.patch
Patch5: build-simulator.sh.patch

BuildRequires: cmake
BuildRequires: make
BuildRequires: gcc-c++
BuildRequires: clang-devel
BuildRequires: qt5-qttools-devel, qt5-qtsvg-devel, qt5-qtmultimedia-devel
BuildRequires: fox-devel
BuildRequires: SDL2-devel
BuildRequires: python3-pillow python3-lz4 python3-clang
BuildRequires: libusb1-devel
BuildRequires: yaml-cpp-devel
BuildRequires: miniz-devel
BuildRequires: python3-jinja2
Requires: dfu-util

%description
OpenTX Companion transmitter support software is used for many different
tasks like loading OpenTX firmware to the radio, backing up model
settings, editing settings and running radio simulators.

%prep
%autosetup -n edgetx-%{version} -p1
( cd radio/src/thirdparty/libopenui/thirdparty && tar xvzf %SOURCE12 && rmdir stb && ln -s stb-* stb )
( cd radio/src/thirdparty/libopenui/thirdparty && tar xvzf %SOURCE14 && rmdir lvgl && ln -s lvgl-* lvgl )
tar xvzf %SOURCE15 && ln -s googletest-* googletest
( cd companion/src && tar xvzf %SOURCE16 && ln -s maxLibQt-* maxLibQt )

%set_build_flags
mkdir bin
cat > bin/cmake <<'EOS'
#!/bin/bash
set -x
%cmake "$@"
EOS
chmod a+x bin/cmake

sed -i 's/include(FetchGtest)/add_subdirectory(googletest)/' cmake/NativeTargets.cmake
sed -i '/include(FetchMiniz)/d' companion/src/CMakeLists.txt
sed -i '/include(FetchYamlCpp)/d' companion/src/CMakeLists.txt
sed -i 's/include(FetchMaxLibQt)/add_subdirectory(maxLibQt)/' companion/src/CMakeLists.txt

%build
CMAKE_OPTS="-DGVARS=YES -DLUA=YES -DHELI=YES -DMULTIMODULE=YES -DPPM_LIMITS_SYMETRICAL=YES -DAUTOSWITCH=YES -DAUTOSOURCE=YES -DPPM_CENTER_ADJUSTABLE=YES -DFLIGHT_MODES=YES -DOVERRIDE_CHANNEL_FUNCTION=YES -DFRSKY_STICKS=YES -DDEBUG=YES -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS:BOOL=OFF -Dgoogletest_SOURCE_DIR=$(pwd)/googletest -Dmaxlibqt_SOURCE_DIR=$(pwd)/maxLibQt -DINSTALL_GTEST=OFF -DINSTALL_GMOCK=OFF"
# Build shared libraries for simulator
MAKEFLAGS="-O -j${RPM_BUILD_NCPUS}" tools/build-companion.sh "$(pwd)" "$(pwd)/%{_vpath_builddir}" "$CMAKE_OPTS" release
# Clean slate? There is probaly nothing wrong reusing the configuration
# left over from previous step, but be safe
rm -f "$(pwd)/%{_vpath_builddir}/CMakeCache.txt" "$(pwd)/%{_vpath_builddir}/native/CMakeCache.txt"
%cmake $CMAKE_OPTS -DPCB=X9D
%make_build -C %{_vpath_builddir} native-configure
%make_build -C %{_vpath_builddir} companion
%make_build -C %{_vpath_builddir} simulator

%install
%{cmake_install}/native

%files
%defattr(-,root,root,-)
%{_bindir}/edgetx-companion
%{_bindir}/edgetx-simulator
%dir %{_libdir}/edgetx-companion-210
%{_libdir}/edgetx-companion-210/libedgetx-boxer-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-bumblebee-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-commando8-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-el18-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-f16-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-lr3pro-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-nv14-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-pl18-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-pl18ev-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-pocket-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-t8-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-t12-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-t12max-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-t14-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-t15-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-t16-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-t18-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-t20-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-t20v2-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-tlite-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-tpro-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-tpros-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-tprov2-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-tx12-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-tx12mk2-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-tx16s-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-x7-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-x7access-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-x9d-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-x9d+-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-x9d+2019-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-x9e-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-x9lite-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-x9lites-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-x10-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-x10express-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-x12s-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-xlite-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-xlites-simulator.so
%{_libdir}/edgetx-companion-210/libedgetx-zorro-simulator.so
%{_prefix}/lib/udev/rules.d/45-edgetx-companion-taranis.rules
%{_prefix}/lib/udev/rules.d/45-edgetx-companion-usbasp.rules
%{_datadir}/applications/edgetx-companion210.desktop
%{_datadir}/applications/edgetx-simulator210.desktop
%{_datadir}/icons/hicolor/16x16/apps/edgetx-companion.png
%{_datadir}/icons/hicolor/22x22/apps/edgetx-companion.png
%{_datadir}/icons/hicolor/24x24/apps/edgetx-companion.png
%{_datadir}/icons/hicolor/32x32/apps/edgetx-companion.png
%{_datadir}/icons/hicolor/48x48/apps/edgetx-companion.png
%{_datadir}/icons/hicolor/128x128/apps/edgetx-companion.png
%{_datadir}/icons/hicolor/256x256/apps/edgetx-companion.png
%{_datadir}/icons/hicolor/512x512/apps/edgetx-companion.png
%{_datadir}/icons/hicolor/scalable/apps/edgetx-companion.svg

%changelog
## START: Generated by rpmautospec
* Thu Jan 23 2025 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.10.6-1
- Update to EdgeTX 2.10.6.

* Tue Dec 24 2024 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.10.5-4
- We need the full history and clean worktree to make the computed release
  in GitHub Actions precise.

* Mon Dec 23 2024 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.10.5-3
- Use %%autorelease and %%autochangelog to take advantage of the git
  history.

* Mon Dec 23 2024 Alexander Kabaev <kan@fb.com> - 2.10.5-2
- Build simulation libraries before companion and simulator itself.

* Mon Nov 25 2024 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.10.5-1
- Update to EdgeTX 2.10.5.

* Tue Sep 10 2024 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.10.4-1
- Update to EdgeTX 2.10.4.

* Sat Aug 03 2024 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.10.3-1
- Update to EdgeTX 2.10.3.

* Thu Jul 04 2024 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.10.2-1
- Update to EdgeTX 2.10.2.

* Fri May 31 2024 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.10.1-1
- Update to EdgeTX 2.10.1.

* Thu May 30 2024 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.10.0-7
- Update README with the 2.10 information.

* Sun May 12 2024 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.10.0-6
- Update to EdgeTX 2.10.0 GA.

* Sat May 04 2024 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.10.0-5
- Update to EdgeTX 2.10.0-rc4.

* Thu Apr 04 2024 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.10.0-4
- Update to EdgeTX 2.10.0-rc3.

* Thu Mar 28 2024 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.10.0-3
- Addressing Node.js 16 actions are deprecated.

* Thu Mar 28 2024 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.10.0-2
- Update to EdgeTX 2.10.0-rc2.

* Sat Mar 09 2024 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.10.0-1
- Update to EdgeTX 2.10.0-rc1.

* Tue Feb 13 2024 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.9.4-1
- Update to EdgeTX 2.9.4.

* Sun Jan 21 2024 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.9.3-2
- Prevent installation of libusb.

* Sat Jan 20 2024 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.9.3-1
- Update to EdgeTX 2.9.3.

* Sat Nov 18 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.9.2-1
- Update to EdgeTX 2.9.2.

* Thu Sep 28 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.9.1-1
- Update to EdgeTX 2.9.1.

* Sat Sep 02 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.9.0-4
- Add build status information.

* Sat Sep 02 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.9.0-3
- Disable network for rpmbuild, to make sure the .src.rpm brought
  everything needed.

* Sat Sep 02 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.9.0-2
- Update to EdgeTX 2.9.0.

* Sun Aug 06 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.9.0-1
- Update to EdgeTX 2.9.0-rc2.

* Sun Aug 06 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.8.5-3
- Test building the rpm in GitHub Actions.

* Sun Aug 06 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.8.5-2
- Add brief README.

* Sat Aug 05 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.8.5-1
- Update to EdgeTX 2.8.5.

* Mon May 15 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.8.4-1
- Update to EdgeTX 2.8.4.

* Mon May 15 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.8.3-4
- Revert "Fixes https://github.com/EdgeTX/edgetx/issues/3222."

* Sun Apr 23 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.8.3-3
- The yaml-cpp ships Google Test, use that one.

* Thu Apr 20 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.8.3-2
- Addressing %%patchN is deprecated (5 usages found), use %%patch N (or
  %%patch -P N).

* Wed Apr 19 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.8.3-1
- Update to EdgeTX 2.8.3.

* Mon Apr 03 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.8.2-1
- Update to EdgeTX 2.8.2.

* Tue Feb 21 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.8.1-3
- Fixes https://github.com/EdgeTX/edgetx/issues/3222.

* Tue Feb 21 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.8.1-2
- Radiomaster Boxer simulator gets built as well.

* Tue Feb 21 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.8.1-1
- Update to EdgeTX 2.8.1.

* Mon Jan 02 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.8.0-1
- Rebase to EdgeTX 2.8.0.

* Sun Jan 01 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.7.2-2
- Update the yaml-cpp source to match the git module for the 2.7.2 release.

* Sun Jan 01 2023 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.7.2-1
- Update to EdgeTX 2.7.2.

* Mon May 09 2022 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.7.1-1
- Rebase to 2.7.1

* Sat Apr 16 2022 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.7.0-1
- Rebase to EdgeTX 2.7.0.

* Thu Mar 24 2022 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.6.0-2
- Revert "The commit 1e09791a1e2fe2a0ca9835019d634a4c6a4fa3bf marking
  2.3.14 is not included in the release/2.3.14 tag."

* Tue Mar 22 2022 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.6.0-1
- Rebase to EdgeTX 2.6.0.

* Mon Mar 21 2022 Jan Pazdziora <jpx-edgetx@adelton.com> - 2.5.0-1
- Update .spec and patches for EdgeTX 2.5.0.
## END: Generated by rpmautospec