shell: introduce sdb user daemon for user shell
[sdk/target/sdbd.git] / packaging / sdbd.spec
index 6841020..e595e8c 100644 (file)
+%bcond_with emulator
+
 Name:       sdbd
 Summary:    SDB daemon
-Version:    2.2.0
-Release:    1
-Group:      TO_BE/FILLED_IN
-License:    TO BE FILLED IN
+Version:    3.0.15
+Release:    0
+License:    Apache-2.0
+Summary:    SDB daemon
+Group:      System/Utilities
 Source0:    %{name}-%{version}.tar.gz
-Requires(post): pkgmgr
-Requires(post): pkgmgr-server
-Requires(post): wrt
-Requires(post): aul
-Requires: default-files-tizen
-Requires: sys-assert
-Requires: debug-launchpad
+Source1001:    sdbd_device.service
+Source1002:    sdbd_emulator.service
+Source1003:    %{name}.manifest
+Source1004:    sdbd_tcp.service
+Source1005:    sdbd_device_tv.service
+Source1006:    sdbd_emulator_tv.service
+
+BuildRequires: capi-system-info-devel >= 0.2.0
+BuildRequires: cmake >= 2.8.3
+BuildRequires:  pkgconfig(libtzplatform-config)
+#BuildRequires: sec-product-features
+BuildRequires: pkgconfig(libsmack)
+BuildRequires: pkgconfig(capi-system-info)
+BuildRequires: pkgconfig(vconf)
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(dbus-1)
+BuildRequires: pkgconfig(dbus-glib-1)
+BuildRequires: pkgconfig(dlog)
+Requires: dbus
 
 %description
-Description: SDB daemon
+Description: SDB daemon.
 
+%package -n sdbd-devel
+Summary:       SDBD plugin API
+Group:         Development/Libraries
+
+%description -n sdbd-devel
+SDBD plugin API library
 
 %prep
 %setup -q
+cp %{SOURCE1003} .
 
 %build
-make %{?jobs:-j%jobs}
+%if "%{?tizen_profile_name}" == "wearable"
+%define wearable_profile on
+%else
+%define wearable_profile off
+%endif
+%if %{with emulator}
+%define target_arch x86
+%else
+%define target_arch arm
+%endif
+cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+       -DWEARABLE_PROFILE=%{wearable_profile} \
+       -DTARGET_ARCH=%{target_arch}
 
+make %{?jobs:-j%jobs}
 
 %install
-rm -rf %{buildroot}
+mkdir -p %{buildroot}/usr/share/license
+cp LICENSE %{buildroot}/usr/share/license/%{name}
+
 %make_install
+mkdir -p %{buildroot}%{_unitdir}
+
+%if %{with emulator}
+%if "%{profile}" == "tv"
+install -m 0644 %SOURCE1006 %{buildroot}%{_unitdir}/sdbd.service
+%else
+install -m 0644 %SOURCE1002 %{buildroot}%{_unitdir}/sdbd.service
+%endif
+mkdir -p %{buildroot}/%{_unitdir}/emulator_preinit.target.wants
+ln -s %{_unitdir}/sdbd.service %{buildroot}/%{_unitdir}/emulator_preinit.target.wants/
+
+%else
+%if "%{profile}" == "tv"
+install -m 0644 %SOURCE1005 %{buildroot}%{_unitdir}/sdbd.service
+%else
+install -m 0644 %SOURCE1001 %{buildroot}%{_unitdir}/sdbd.service
+%endif
+install -m 0644 %SOURCE1004 %{buildroot}%{_unitdir}/sdbd_tcp.service
+mkdir -p %{buildroot}/%{_unitdir}/multi-user.target.wants
+ln -s %{_unitdir}/sdbd.service %{buildroot}/%{_unitdir}/multi-user.target.wants/
+
+mkdir -p %{buildroot}%{_prefix}/lib/udev/rules.d/
+install -m 644 rules/99-sdbd.rules %{buildroot}%{_prefix}/lib/udev/rules.d/
+%endif
+
+mkdir -p %{buildroot}%{_prefix}/sbin
+install -m 755 script/sdk_launch %{buildroot}%{_prefix}/sbin/
+
+mkdir -p %{buildroot}%{TZ_SYS_BIN}
+install -m 755 script/profile_command %{buildroot}%{TZ_SYS_BIN}/
+
+mkdir -p %{buildroot}%{_includedir}/sdb/
+install -m 0644 src/sdbd_plugin.h %{buildroot}%{_includedir}/sdb/
+
+mkdir -p %{buildroot}%{_libdir}/pkgconfig/
+install -m 0644 packaging/sdbd.pc %{buildroot}%{_libdir}/pkgconfig/
 
 %post
-chsmack -a sdbd::home /home/developer
-chsmack -t /home/developer
+. %{_sysconfdir}/tizen-platform.conf
+if ! getent passwd "${TZ_SDK_USER_NAME}" > /dev/null; then
+  rm -rf "${TZ_SDK_HOME}"
+  useradd -u 5100 -s /bin/false -m -d "${TZ_SDK_HOME}" "${TZ_SDK_USER_NAME}"
+  getent group developer > /dev/null || groupadd -g 5100 developer
+  for x in app_logging crash developer; do
+    usermod -A app_logging "${TZ_SDK_USER_NAME}"
+  done
+fi
+
+cp -f /bin/sh /bin/sh-user
+chsmack -a "_" /bin/sh-user
+chsmack -e "User::Shell" /bin/sh-user
+chsmack -a "_" /sbin/sdbd-user
+chsmack -e "User::Shell" /sbin/sdbd-user
 
 %files
 %manifest sdbd.manifest
-%defattr(-,root,root,-) 
+%license LICENSE
+%defattr(-,root,root,-)
 %{_prefix}/sbin/sdbd
-%{_sysconfdir}/init.d/sdbd
-
-%ifarch %{ix86}
-    %{_sysconfdir}/rc.d/rc3.d
+%{_prefix}/sbin/sdbd-user
+%{_prefix}/sbin/sdk_launch
+%attr(0755, root, root) %{_sysconfdir}/init.d/sdbd
+%{_unitdir}/sdbd.service
+%if %{with emulator}
+%{_unitdir}/emulator_preinit.target.wants/sdbd.service
+%else
+%{_unitdir}/sdbd_tcp.service
+%{_unitdir}/multi-user.target.wants/sdbd.service
+%{_prefix}/lib/udev/rules.d/99-sdbd.rules
 %endif
+/usr/share/license/%{name}
+%{TZ_SYS_BIN}/profile_command
+
+%files -n sdbd-devel
+%{_includedir}/sdb/sdbd_plugin.h
+%{_libdir}/pkgconfig/sdbd.pc
 
 %changelog
-* Wed Apr 04 2013 Ho Namkoong <ho.namkoong@samsung.com>
- - supports platform gdbserver
-* Mon Dec 02 2012 Yoonki Park <yoonki.park@samsung.com>
- - supports cs report service using inotify
-* Mon Dec 02 2012 Yoonki Park <yoonki.park@samsung.com>
- - sdb code dropped from adb (Ice Cream Samdwich 4.1.1)
-* Wed Apr 18 2012 Yoonki Park <yoonki.park@samsung.com>
- - set dir permission to 777
-* Sat Mar 31 2012 Yoonki Park <yoonki.park@samsung.com>
- - let sshd be daemon and create sshd.pid file