Name: domoticz Version: 4.9700 Release: 3%{?dist} Summary: Open source Home Automation System License: GPLv3+ and ASL 2.0 and Boost and BSD and MIT URL: http://www.domoticz.com Source0: https://github.com/domoticz/domoticz/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz Source1: %{name}.service Source2: %{name}.conf # Source says its version 3.5876, but it's really 4.9700 Patch1: %{name}-version.patch # Use system tinyxpath (https://github.com/domoticz/domoticz/pull/1759) Patch2: %{name}-tinyxpath.patch # Use system openzwave includes Patch3: %{name}-openzwave.patch # Work against Dev branch of OpenZWave upstream Patch4: %{name}-openzwave-Dev.patch # Fix python detection (https://github.com/domoticz/domoticz/pull/1749) Patch5: %{name}-python.patch # OZWCP bug with empty list values Patch6: %{name}-cp-js.patch # Python 3.7 support (https://github.com/domoticz/domoticz/pull/2534) Patch7: %{name}-python37.patch BuildRequires: boost-devel BuildRequires: cmake BuildRequires: curl-devel BuildRequires: fontpackages-devel BuildRequires: gcc-c++ BuildRequires: git BuildRequires: libopenzwave-devel >= 1.5.0 BuildRequires: libusb-devel BuildRequires: lua-devel BuildRequires: mosquitto-devel BuildRequires: openssl-devel BuildRequires: python3-devel BuildRequires: sqlite-devel BuildRequires: systemd-devel BuildRequires: tinyxpath-devel BuildRequires: zlib-devel Requires(pre): shadow-utils Requires(post): systemd Requires(postun): systemd Requires(preun): systemd Requires: google-droid-sans-fonts Recommends: system-python-libs >= 3.4 Provides: bundled(js-ace) Provides: bundled(js-angularamd) = 0.2.1 Provides: bundled(js-angularjs) = 1.5.8 Provides: bundled(js-blockly) Provides: bundled(js-bootbox) Provides: bundled(js-bootstrap) = 3.2.0 Provides: bundled(js-colpick) Provides: bundled(js-d3) Provides: bundled(js-datatables-datatools) = 2.2.3 Provides: bundled(js-dateformat) = 1.2.3 Provides: bundled(js-filesaver) = 0.0-git20140725 Provides: bundled(js-highcharts) = 4.2.6 Provides: bundled(js-html5shiv) = 3.6.2 Provides: bundled(js-i18next) = 1.8.0 Provides: bundled(js-jquery) = 1.12.0 Provides: bundled(js-ngdraggable) Provides: bundled(js-nggrid) Provides: bundled(js-jquery-noty) = 2.1.0 Provides: bundled(js-require) = 2.1.14 Provides: bundled(js-respond) = 1.1.0 Provides: bundled(js-angular-ui-bootstrap) = 0.13.4 Provides: bundled(js-wow) = 0.1.9 Provides: bundled(js-ozwcp) Provides: bundled(js-less) = 1.3.0 Provides: bundled(js-ion-sound) = 3.0.6 Provides: bundled(js-zeroclipboard) = 1.0.4 %global _python_bytecompile_extra 0 %description Domoticz is a Home Automation System that lets you monitor and configure various devices like: Lights, Switches, various sensors/meters like Temperature, Rain, Wind, UV, Electra, Gas, Water and much more. Notifications/Alerts can be sent to any mobile device %prep %setup -q %patch1 -p1 -b.version %patch2 -p1 -b.tinyxpath %patch3 -p1 -b.openzwave %patch4 -p1 -b.openzwave-Dev %patch5 -p1 -b.python %patch6 -p1 -b.ozwcp-cp-js %patch7 -p1 -b.python37 rm -f hardware/openzwave/*.h rm -rf hardware/openzwave/aes rm -rf hardware/openzwave/command_classes rm -rf hardware/openzwave/platform rm -rf hardware/openzwave/value_classes rm -rf sqlite/ rm -rf tinyxpath/ %build %cmake \ -DUSE_STATIC_LIBSTDCXX=NO \ -DUSE_STATIC_OPENZWAVE=NO \ -DUSE_OPENSSL_STATIC=NO \ -DUSE_BUILTIN_LUA=NO \ -DUSE_BUILTIN_MQTT=NO \ -DUSE_BUILTIN_SQLITE=NO \ -DUSE_BUILTIN_TINYXPATH=NO \ -DUSE_STATIC_BOOST=NO \ -DCMAKE_INSTALL_PREFIX=%{_datadir}/%{name} make %{?_smp_mflags} %install %make_install # remove docs, we grab them in files below rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/*.txt # move binary to standard directory mkdir -p $RPM_BUILD_ROOT%{_bindir}/ mv $RPM_BUILD_ROOT%{_datadir}/%{name}/%{name} $RPM_BUILD_ROOT%{_bindir}/ # install systemd service and config mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/ mkdir -p $RPM_BUILD_ROOT%{_unitdir}/ cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_unitdir}/ cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/%{name} # create backups/database/ssl cert directory mkdir -p $RPM_BUILD_ROOT%{_sharedstatedir}/%{name}/backups # Disable the app's self-update script chmod 644 $RPM_BUILD_ROOT%{_datadir}/%{name}/updatedomo # Unbundle DroidSans.ttf rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/www/styles/elemental/fonts/DroidSans.ttf ln -s %{_fontdir}/google-droid/DroidSans.ttf \ $RPM_BUILD_ROOT%{_datadir}/%{name}/www/styles/elemental/fonts/ rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/www/styles/element-light/fonts/DroidSans.ttf ln -s %{_fontdir}/google-droid/DroidSans.ttf \ $RPM_BUILD_ROOT%{_datadir}/%{name}/www/styles/element-light/fonts/ rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/www/styles/element-dark/fonts/DroidSans.ttf ln -s %{_fontdir}/google-droid/DroidSans.ttf \ $RPM_BUILD_ROOT%{_datadir}/%{name}/www/styles/element-dark/fonts/ # Automatic backup directory ln -s %{_sharedstatedir}/%{name}/backups \ $RPM_BUILD_ROOT%{_datadir}/%{name}/backups # OpenZWave Control Panel temp file ln -s %{_sharedstatedir}/%{name}/ozwcp.poll.XXXXXX.xml \ $RPM_BUILD_ROOT%{_datadir}/%{name}/ozwcp.poll.XXXXXX.xml # Byte compile the default plugin %py_byte_compile %{__python3} %{buildroot}%{_datadir}/%{name}/plugins/AwoxSMP %pre getent group domoticz >/dev/null || groupadd -r domoticz getent passwd domoticz >/dev/null || \ useradd -r -g domoticz -d %{_datadir}/%{name} -s /sbin/nologin \ -c "Domoticz Home Automation Server" domoticz # For OpenZWave USB access (/dev/ttyACM#) usermod -G domoticz,dialout domoticz %post %systemd_post %{name}.service %preun %systemd_preun %{name}.service %postun %systemd_postun_with_restart %{name}.service %files %license License.txt %doc README.md History.txt %{_bindir}/%{name} %config(noreplace) %{_sysconfdir}/sysconfig/%{name} %{_datadir}/%{name}/ %attr(0755,domoticz,domoticz) %{_sharedstatedir}/%{name}/ %{_unitdir}/%{name}.service %changelog * Sun Nov 11 2018 Michael Cronenworth - 4.9700-3 - Add patch to support Python 3.7 * Thu Jul 12 2018 Fedora Release Engineering - 4.9700-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Sun Jul 08 2018 Michael Cronenworth - 4.9700-1 - Version update * Tue Jun 19 2018 Miro HronĨok - 3.8153-7 - Rebuilt for Python 3.7 * Mon Jun 18 2018 Michael Cronenworth - 3.8153-6 - Do not compile some of the extra Python files - Add patch to fix bug in OZWCP javascript * Wed Feb 07 2018 Fedora Release Engineering - 3.8153-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Thu Jan 25 2018 Michael Cronenworth - 3.8153-4 - Add OpenZWave Command Class Barrier support - Boost 1.66 support (RHBZ#1538585) * Fri Sep 08 2017 Michael Cronenworth - 3.8153-3 - Fix OpenZWave control panel symlink (RHBZ#1482266) - Fix Python detection * Mon Jul 31 2017 Michael Cronenworth - 3.8153-2 - Fix OpenZWave control panel * Mon Jul 31 2017 Michael Cronenworth - 3.8153-1 - New upstream version - Unbundle tinyxpath * Wed Jul 26 2017 Fedora Release Engineering - 3.5877-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Fri Jul 21 2017 Kalev Lember - 3.5877-2 - Rebuilt for Boost 1.64 * Wed Jul 19 2017 Michael Cronenworth - 3.5877-1 - Initial spec