Remove Profile Build Dependencies: do it at runtime
[sdk/target/sdbd.git] / packaging / sdbd.spec
1 %bcond_with emulator
2
3 Name:       sdbd
4 Summary:    SDB daemon
5 Version:    3.0.13
6 Release:    0
7 License:    Apache-2.0
8 Summary:    SDB daemon
9 Group:      System/Utilities
10 Source0:    %{name}-%{version}.tar.gz
11 Source1001:    sdbd_device.service
12 Source1002:    sdbd_emulator.service
13 Source1003:    %{name}.manifest
14 Source1004:    sdbd_tcp.service
15 Source1005:    sdbd_device_tv.service
16 Source1006:    sdbd_emulator_tv.service
17
18 BuildRequires: capi-system-info-devel >= 0.2.0
19 BuildRequires: cmake >= 2.8.3
20 BuildRequires:  pkgconfig(libtzplatform-config)
21 #BuildRequires: sec-product-features
22 BuildRequires: pkgconfig(libsmack)
23 BuildRequires: pkgconfig(capi-system-info)
24 BuildRequires: pkgconfig(vconf)
25 BuildRequires: pkgconfig(glib-2.0)
26 BuildRequires: pkgconfig(dbus-1)
27 BuildRequires: pkgconfig(dbus-glib-1)
28 BuildRequires: pkgconfig(dlog)
29 Requires: dbus
30 Provides:      %{name}-profile_common = %{version}-%{release}
31 Provides:      %{name}-profile_mobile = %{version}-%{release}
32 Provides:      %{name}-profile_ivi = %{version}-%{release}
33 Provides:      %{name}-profile_wearable = %{version}-%{release}
34
35 %description
36 Description: SDB daemon.
37
38 %package profile_tv
39 Summary:   SDB daemon extension for TV
40 Requires:  %{name} = %{version}-%{release}
41 %description profile_tv
42 SDB daemon extension for TV.
43 This changes the service unit files of the default SDB daemon service files.
44
45 %package -n sdbd-devel
46 Summary:        SDBD plugin API
47 Group:          Development/Libraries
48
49 %description -n sdbd-devel
50 SDBD plugin API library
51
52 %prep
53 %setup -q
54 cp %{SOURCE1003} .
55
56 %build
57
58 # DO YOU REALLY SURE THAT x86 is never going to be non-emulator?
59 %if %{with emulator}
60 %define target_arch x86
61 %else
62 %define target_arch arm
63 %endif
64
65 cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} \
66         -DTARGET_ARCH=%{target_arch}
67
68 make %{?jobs:-j%jobs}
69
70 %install
71 mkdir -p %{buildroot}/usr/share/license
72 cp LICENSE %{buildroot}/usr/share/license/%{name}
73
74 %make_install
75 mkdir -p %{buildroot}%{_unitdir}
76
77 %if %{with emulator}
78 install -m 0644 %SOURCE1006 %{buildroot}%{_unitdir}/sdbd.service.tv
79 install -m 0644 %SOURCE1002 %{buildroot}%{_unitdir}/sdbd.service
80 mkdir -p %{buildroot}/%{_unitdir}/emulator_preinit.target.wants
81 ln -s %{_unitdir}/sdbd.service %{buildroot}/%{_unitdir}/emulator_preinit.target.wants/
82
83 %else
84 install -m 0644 %SOURCE1005 %{buildroot}%{_unitdir}/sdbd.service.tv
85 install -m 0644 %SOURCE1001 %{buildroot}%{_unitdir}/sdbd.service
86 install -m 0644 %SOURCE1004 %{buildroot}%{_unitdir}/sdbd_tcp.service
87 mkdir -p %{buildroot}/%{_unitdir}/multi-user.target.wants
88 ln -s %{_unitdir}/sdbd.service %{buildroot}/%{_unitdir}/multi-user.target.wants/
89 %endif
90
91 mkdir -p %{buildroot}%{_prefix}/sbin
92 install -m 755 script/sdk_launch %{buildroot}%{_prefix}/sbin/
93
94 mkdir -p %{buildroot}%{TZ_SYS_BIN}
95 install -m 755 script/profile_command %{buildroot}%{TZ_SYS_BIN}/
96
97 mkdir -p %{buildroot}%{_includedir}/sdb/
98 install -m 0644 src/sdbd_plugin.h %{buildroot}%{_includedir}/sdb/
99
100 mkdir -p %{buildroot}%{_libdir}/pkgconfig/
101 install -m 0644 packaging/sdbd.pc %{buildroot}%{_libdir}/pkgconfig/
102
103 %post
104 . %{_sysconfdir}/tizen-platform.conf
105 if ! getent passwd "${TZ_SDK_USER_NAME}" > /dev/null; then
106   rm -rf "${TZ_SDK_HOME}"
107   useradd -u 5100 -s /bin/false -m -d "${TZ_SDK_HOME}" "${TZ_SDK_USER_NAME}"
108   getent group developer > /dev/null || groupadd -g 5100 developer
109   for x in app_logging crash developer; do
110     usermod -A app_logging "${TZ_SDK_USER_NAME}"
111   done
112 fi
113
114 %files
115 %manifest sdbd.manifest
116 %license LICENSE
117 %defattr(-,root,root,-)
118 %{_prefix}/sbin/sdbd
119 %{_prefix}/sbin/sdk_launch
120 %attr(0755, root, root) %{_sysconfdir}/init.d/sdbd
121 %{_unitdir}/sdbd.service
122 %if %{with emulator}
123 %{_unitdir}/emulator_preinit.target.wants/sdbd.service
124 %else
125 %{_unitdir}/sdbd_tcp.service
126 %{_unitdir}/multi-user.target.wants/sdbd.service
127 %endif
128 /usr/share/license/%{name}
129 %{TZ_SYS_BIN}/profile_command
130
131 %post profile_tv
132 pushd {%_unitdir}
133 mv sdbd.service.tv sdbd.service
134 popd
135 %preun profile_tv
136 pushd {%_unitdir}
137 cp sdbd.service sdbd.service.tv
138 echo For correct bahavior of %{name} after uninstalling %{name}-profile_tv, you need to reinstall %{name}
139 popd
140 %files profile_tv
141 %{_unitdir}/sdbd.service.tv
142
143 %files -n sdbd-devel
144 %{_includedir}/sdb/sdbd_plugin.h
145 %{_libdir}/pkgconfig/sdbd.pc
146
147 %changelog