Name: sensord
Summary: Sensor daemon
-Version: 2.0.3
-Release: 0
+Version: 4.0.3
+Release: 1
Group: System/Sensor Framework
License: Apache-2.0
Source0: %{name}-%{version}.tar.gz
Source1: sensord.service
-Source2: sensord_command.socket
-Source3: sensord_event.socket
-
+Source2: sensord.socket
BuildRequires: cmake
BuildRequires: libattr-devel
BuildRequires: pkgconfig(dlog)
-BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(vconf)
BuildRequires: pkgconfig(libsystemd-daemon)
-BuildRequires: pkgconfig(capi-system-info)
BuildRequires: pkgconfig(cynara-creds-socket)
BuildRequires: pkgconfig(cynara-client)
BuildRequires: pkgconfig(cynara-session)
-Requires: libsensord = %{version}-%{release}
-
-%define auto_rotation_state ON
-%define orientation_state OFF
-%define gravity_state OFF
-%define linear_accel_state OFF
-%define rv_state OFF
-%define geomagnetic_rv_state OFF
-%define gaming_rv_state OFF
-%define tilt_state OFF
-%define gyroscope_uncal_state OFF
-%define build_test_suite ON
+
+Requires: %{name}-dummy = %{version}-%{release}
+Provides: %{name}-profile_mobile = %{version}-%{release}
+Provides: %{name}-profile_wearable = %{version}-%{release}
+Provides: %{name}-profile_ivi = %{version}-%{release}
+Provides: %{name}-profile_common = %{version}-%{release}
+%global __provides_exclude ^.*-genuine\\.so.*$
%description
-Sensor daemon
+This package provides the fully functional internal API library and the service daemon
+of the Sensor Framework. The library replaces the dummy library installed by %{name}-dummy.
-%package -n libsensord
-Summary: Sensord library
-Group: System/Libraries
-Requires: %{name} = %{version}-%{release}
-%description -n libsensord
-Sensord library
+%package dummy
+Summary: Sensor Framework 'dummy' library
+Provides: %{name}-profile_tv = %{version}-%{release}
+# To support old-snapshot-based package builds
+Provides: libsensor.so.2
-%package -n libsensord-devel
-Summary: Sensord shared library
+%description dummy
+This package provides the dummy library of the sensor internal API.
+Installing %{name} replaces this dummy library with the actually functional library.
+
+
+%package devel
+Summary: Internal Sensor API (Development)
Group: System/Development
-Requires: libsensord = %{version}-%{release}
+Requires: %{name}-dummy = %{version}-%{release}
+# To support old-snapshot-based package builds
+#Provides: libsensord-devel
+
+%description devel
+Internal Sensor API (Development)
-%description -n libsensord-devel
-Sensord shared library
%package -n sensor-hal-devel
Summary: Sensord HAL interface
%description -n sensor-hal-devel
Sensord HAL interface
-%if %{build_test_suite} == "ON"
+
%package -n sensor-test
Summary: Sensord library
Group: System/Testing
%description -n sensor-test
Sensor functional testing
-%endif
%prep
%setup -q
+%build
MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
-cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DMAJORVER=${MAJORVER} -DFULLVER=%{version} \
- -DORIENTATION=%{orientation_state} -DGRAVITY=%{gravity_state} \
- -DLINEAR_ACCEL=%{linear_accel_state} -DRV=%{rv_state} \
- -DGEOMAGNETIC_RV=%{geomagnetic_rv_state} -DGAMING_RV=%{gaming_rv_state} \
- -DGYROSCOPE_UNCAL=%{gyroscope_uncal_state} -DAUTO_ROTATION=%{auto_rotation_state} \
- -DTILT=%{tilt_state} -DTEST_SUITE=%{build_test_suite}
-
-%build
-make %{?jobs:-j%jobs}
+%cmake . -DMAJORVER=${MAJORVER} -DFULLVER=%{version}
+make %{?_smp_mflags}
%install
-rm -rf %{buildroot}
%make_install
mkdir -p %{buildroot}%{_unitdir}
install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}
install -m 0644 %SOURCE2 %{buildroot}%{_unitdir}
-install -m 0644 %SOURCE3 %{buildroot}%{_unitdir}
%install_service multi-user.target.wants sensord.service
-%install_service sockets.target.wants sensord_event.socket
-%install_service sockets.target.wants sensord_command.socket
-
-%post
-systemctl daemon-reload
+%install_service sockets.target.wants sensord.socket
-%postun
-systemctl daemon-reload
+ln -s libsensor.so.%{version} %{buildroot}/%{_libdir}/libsensor.so.2
+ln -s libsensor.so.%{version} %{buildroot}/%{_libdir}/libsensor.so.1
-%post -n libsensord
-ln -sf %{_libdir}/libsensor.so.%{version} %{_libdir}/libsensor.so.1
+%post
+pushd %{_libdir}
+ln -sf libsensor-genuine.so.%{version} libsensor.so.%{version}
+chsmack -a "_" libsensor.so.%{version}
+popd
/sbin/ldconfig
-%postun -n libsensord
-/sbin/ldconfig
+%preun
+echo "You need to reinstall %{name}-dummy to keep using the APIs after uninstalling this."
%files
-%attr(0644,root,root)/usr/etc/virtual_sensors.xml
%manifest packaging/sensord.manifest
+%{_libdir}/libsensor-genuine.so.*
+%{_libdir}/libsensord-shared.so
+%{_libdir}/sensor/fusion/libsensor-fusion.so
%{_bindir}/sensord
%{_unitdir}/sensord.service
-%{_unitdir}/sensord_command.socket
-%{_unitdir}/sensord_event.socket
+%{_unitdir}/sensord.socket
%{_unitdir}/multi-user.target.wants/sensord.service
-%{_unitdir}/sockets.target.wants/sensord_command.socket
-%{_unitdir}/sockets.target.wants/sensord_event.socket
+%{_sysconfdir}/dbus-1/system.d/sensor.conf
+%{_unitdir}/sockets.target.wants/sensord.socket
%license LICENSE.APLv2
-%files -n libsensord
-%defattr(-,root,root,-)
-%manifest packaging/libsensord.manifest
+
+%post dummy
+/sbin/ldconfig
+
+%files dummy
+%manifest packaging/sensord.manifest
%{_libdir}/libsensor.so.*
-%{_libdir}/libsensord-shared.so
%license LICENSE.APLv2
-%files -n libsensord-devel
-%defattr(-,root,root,-)
+
+%files devel
+%manifest packaging/sensord.manifest
+%exclude %{_includedir}/sensor/sensor_hal.h
%{_includedir}/sensor/*.h
%{_libdir}/libsensor.so
%{_libdir}/pkgconfig/sensor.pc
-%license LICENSE.APLv2
+
%files -n sensor-hal-devel
-%defattr(-,root,root,-)
-%{_includedir}/sensor/sensor_hal.h
-%license LICENSE.APLv2
+%manifest packaging/sensord.manifest
+%{_includedir}/sensor/sensor_hal*.h
+
-%if %{build_test_suite} == "ON"
%files -n sensor-test
-%defattr(-,root,root,-)
-%{_bindir}/api-test
-%{_bindir}/sensor-test
-%{_bindir}/multi-thread-performance-test
-%{_bindir}/multi-process-performance-test
-%{_bindir}/fusion-data-collection
-%license LICENSE.APLv2
-%endif
+%{_bindir}/sensorctl
+
+
+# Dummy packages for Tizen 3.0.
+# When building other packages on Tizen 3.0, after building sensord first,
+# some dependency conflicts may occur. These dummy packages may fix such
+# dependency issues.
+%package -n libsensord
+Summary: Dummy libsensord
+Requires: sensord-dummy
+Group: System/Sensor Framework
+
+%description -n libsensord
+Dummy libsensord
+
+%files -n libsensord
+
+%package -n libsensord-devel
+Summary: Dummy libsensord-devel
+Requires: sensord-devel
+Group: System/Sensor Framework
+
+%description -n libsensord-devel
+Dummy libsensord-devel
+
+%files -n libsensord-devel