+%global _support_weblog 0
+
Name: push
Summary: Push services and client library
-Version: 0.2.42
-Release: 3
-Group: Application Framwork/Service
-License: Flora
+Version: 0.4.09
+Release: 1
+Group: Application Framework/Service
+License: Apache-2.0
Source0: %{name}-%{version}.tar.gz
-Source1001: libpush.manifest
-Source1002: libpush-devel.manifest
-Source1003: %{name}-bin.manifest
-Source1004: %{name}-tool.manifest
-Source1005: init_push_DB.sh
-BuildRequires: pkgconfig(libtzplatform-config)
-
+Source1: pushd.service
+Requires(post): /sbin/ldconfig
+Requires(post): /usr/bin/sqlite3
+Requires(postun): /sbin/ldconfig
+
+%if %{_support_weblog}
+BuildRequires: pkgconfig(zlib)
+BuildRequires: pkgconfig(json-glib-1.0)
+%endif
%description
Push services and client library.
%package -n libpush
Summary: Push service client library
-Group: Application Framwork/Libraries
+Group: Application Framework/Libraries
+Requires: %{name}-bin = %{version}-%{release}
Provides: libpush.so.0
%description -n libpush
Push service client library
-
%package -n libpush-devel
Summary: Push service client library (DEV)
-Group: devel
+Group: Development/Libraries
Requires: libpush = %{version}-%{release}
Requires: capi-appfw-application-devel
%description -n libpush-devel
Push service client library (DEV)
-
%package bin
Summary: Push service daemon
-Group: Application Framwork/Service
-Requires: badge
+Group: Application Framework/Service
+Requires(post): telephony-daemon
%description bin
Push service daemon
-
%package tool
Summary: Push service tool
-Group: devel
+Group: Development/Tools
Requires: libpush = %{version}-%{release}
Requires: %{name}-bin = %{version}-%{release}
%description tool
Push service tool
-
-
%prep
%setup -q
-cp %{SOURCE1001} %{SOURCE1002} %{SOURCE1003} %{SOURCE1004} .
%build
%install
rm -rf %{buildroot}
+mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants
+install -m 0644 %{SOURCE1} %{buildroot}%{_libdir}/systemd/system/pushd.service
+ln -s ../pushd.service %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/pushd.service
+mkdir -p %{buildroot}%{_libdir}/systemd/user/tizen-middleware.target.wants
+cp %{SOURCE1} %{buildroot}%{_libdir}/systemd/user/pushd.service
+ln -s ../pushd.service %{buildroot}%{_libdir}/systemd/user/tizen-middleware.target.wants/
+
+mkdir -p %{buildroot}/usr/share/license
+cp -f LICENSE %{buildroot}/usr/share/license/%{name}
+
+%if %{_support_weblog}
+cp -a share/push/push_sslkey.pem %{buildroot}/usr/share/push/
+cp -a share/push/prd-dl-key.pem %{buildroot}/usr/share/push/
+%endif
-mkdir -p %{buildroot}%{_bindir}
-mkdir -p %{buildroot}%{_libdir}/pkgconfig
mkdir -p %{buildroot}%{_includedir}
-mkdir -p %{buildroot}/usr/share/push
-mkdir -p %{buildroot}%{_sysconfdir}/init.d
-mkdir -p %{buildroot}%{_sysconfdir}/rc.d/{rc3.d,rc5.d}
-mkdir -p %{buildroot}/usr/lib/systemd/user/tizen-middleware.target.wants
+cp -a include/push-service.h %{buildroot}%{_includedir}
+cp -a include/push.h %{buildroot}%{_includedir}
+%if %{_support_weblog}
+ include/pushlog.h %{buildroot}%{_includedir}
+%endif
+mkdir -p %{buildroot}%{_libdir}/pkgconfig
+cp -a push.pc %{buildroot}%{_libdir}/pkgconfig/
+
+mkdir -p %{buildroot}/usr/share/push/
+mkdir -p %{buildroot}%{_bindir}
+
+%ifarch aarch64
+#libpush
+cp -a aarch64/lib64/libpush.so.* %{buildroot}%{_libdir}
+#libpush-devel
+cp -a aarch64/lib64/libpush.so %{buildroot}%{_libdir}
+#push-bin
+cp -a aarch64/bin/pushd %{buildroot}%{_bindir}
+cp -a aarch64/bin/push_tool %{buildroot}%{_bindir}
+cp -a aarch64/share/push/*.cer %{buildroot}/usr/share/push/
+%if %{_support_weblog}
+ aarch64/bin/pushlog_tool
+%endif
+%endif
%ifarch %{arm}
#libpush
cp -a arm/lib/libpush.so.* %{buildroot}%{_libdir}
-#libpush-devel
-cp -a arm/include/push.h %{buildroot}%{_includedir}
-cp -a arm/lib/pkgconfig/push.pc %{buildroot}%{_libdir}/pkgconfig/push.pc
+#libpus-devel
cp -a arm/lib/libpush.so %{buildroot}%{_libdir}
#push-bin
cp -a arm/bin/pushd %{buildroot}%{_bindir}
-cp -a arm/share/push/PushServerTrust.cer %{buildroot}/usr/share/push/PushServerTrust.cer
-cp -a arm/etc/init.d/pushd %{buildroot}%{_sysconfdir}/init.d/pushd
-cp -a arm/etc/rc.d/rc3.d/S90pushd %{buildroot}%{_sysconfdir}/rc.d/rc3.d/S90pushd
-cp -a arm/etc/rc.d/rc5.d/S90pushd %{buildroot}%{_sysconfdir}/rc.d/rc5.d/S90pushd
-cp -a arm/lib/systemd/user/pushd.service %{buildroot}%{_libdir}/systemd/user/pushd.service
-cp -a arm/lib/systemd/user/tizen-middleware.target.wants/pushd.service \
- %{buildroot}%{_libdir}/systemd/user/tizen-middleware.target.wants/pushd.service
-#push-tool
cp -a arm/bin/push_tool %{buildroot}%{_bindir}
-%else
+cp -a arm/share/push/*.cer %{buildroot}/usr/share/push/
+%if %{_support_weblog}
+ arm/bin/pushlog_tool
+%endif
+%endif
+
+%ifarch %{ix86} x86_64
#libpush
cp -a x86/lib/libpush.so.* %{buildroot}%{_libdir}
-#libpush-devel
-cp -a x86/include/push.h %{buildroot}%{_includedir}
-cp -a x86/lib/pkgconfig/push.pc %{buildroot}%{_libdir}/pkgconfig/push.pc
+#libpus-devel
cp -a x86/lib/libpush.so %{buildroot}%{_libdir}
#push-bin
cp -a x86/bin/pushd %{buildroot}%{_bindir}
-cp -a x86/share/push/PushServerTrust.cer %{buildroot}/usr/share/push/PushServerTrust.cer
-cp -a x86/etc/init.d/pushd %{buildroot}%{_sysconfdir}/init.d/pushd
-cp -a x86/etc/rc.d/rc3.d/S90pushd %{buildroot}%{_sysconfdir}/rc.d/rc3.d/S90pushd
-cp -a x86/etc/rc.d/rc5.d/S90pushd %{buildroot}%{_sysconfdir}/rc.d/rc5.d/S90pushd
-cp -a x86/lib/systemd/user/pushd.service %{buildroot}/usr/lib/systemd/user/pushd.service
-cp -a x86/lib/systemd/user/tizen-middleware.target.wants/pushd.service \
- %{buildroot}/usr/lib/systemd/user/tizen-middleware.target.wants/pushd.service
-#push-tool
cp -a x86/bin/push_tool %{buildroot}%{_bindir}
+cp -a x86/share/push/*.cer %{buildroot}/usr/share/push/
+%if %{_support_weblog}
+ x86/bin/pushlog_tool
+%endif
%endif
-#if [ -f /usr/lib/rpm-plugins/msm.so ]
-#then
-# chsmack -a "_" -e "_" %{buildroot}/etc/init.d/pushd
-# chsmack -a "_" -e "_" %{buildroot}/etc/rc.d/rc3.d/S90pushd
-# chsmack -a "_" -e "_" %{buildroot}/etc/rc.d/rc5.d/S90pushd
-#fi
-
-install -D -m 0750 %{SOURCE1005} %{buildroot}%{_datadir}/%{name}/init_push_DB.sh
%post bin
-%{_datadir}/%{name}/init_push_DB.sh
+mkdir -p /opt/usr/dbspace
+sqlite3 /opt/usr/dbspace/.push.db "PRAGMA journal_mode = PERSIST; create table a(a); drop table a;" > /dev/null
+chown system:5000 /opt/usr/dbspace/.push.db
+chown system:5000 /opt/usr/dbspace/.push.db-journal
+chmod 660 /opt/usr/dbspace/.push.db
+chmod 660 /opt/usr/dbspace/.push.db-journal
+
+chsmack -a 'push-service::db' /opt/usr/dbspace/.push.db
+chsmack -a 'push-service::db' /opt/usr/dbspace/.push.db-journal
%post -n libpush
/sbin/ldconfig
%postun -n libpush -p /sbin/ldconfig
-
%files -n libpush
%manifest libpush.manifest
-%attr(644,-,-) %{_libdir}/libpush.so.*
+%attr(644,system,system)%{_libdir}/libpush.so.*
%files -n libpush-devel
-%manifest libpush-devel.manifest
-%attr(644,-,-) %{_includedir}/*.h
+%{_includedir}/*.h
%{_libdir}/pkgconfig/*.pc
%{_libdir}/libpush.so
%files bin
-%manifest %{name}-bin.manifest
-%{_bindir}/pushd
-/usr/share/push/*.cer
-/etc/init.d/pushd
-/etc/rc.d/rc3.d/S90pushd
-/etc/rc.d/rc5.d/S90pushd
-/usr/lib/systemd/user/pushd.service
-/usr/lib/systemd/user/tizen-middleware.target.wants/pushd.service
-%{_datadir}/%{name}/init_push_DB.sh
+%manifest push-bin.manifest
+%attr(755,system,system)%{_bindir}/pushd
+%attr(644,system,system)/usr/share/push/*.cer
+%attr(644,system,system)/usr/share/license/%{name}
+
+# This is a certificate file to access to logging server by HTTPS.
+%if %{_support_weblog}
+%attr(644,system,system)/usr/share/push/push_sslkey.pem
+%attr(644,system,system)/usr/share/push/prd-dl-key.pem
+%endif
+
+%attr(755,system,system)%{_libdir}/systemd/user/pushd.service
+%attr(755,system,system)%{_libdir}/systemd/user/tizen-middleware.target.wants/pushd.service
+%attr(755,system,system)%{_libdir}/systemd/system/multi-user.target.wants/pushd.service
+%attr(755,system,system)%{_libdir}/systemd/system/pushd.service
%files tool
-%manifest %{name}-tool.manifest
+%manifest push-tool.manifest
%{_bindir}/push_tool
+%if %{_support_weblog}
+ %{_bindir}/pushlog_tool
+%endif
+
%changelog
+* Sat Nov 3 2012 Jooseok Park <jooseok.park@samsung.com> - 0.2.26
+- Prevent bug fixed(out-of bounds read, dead code,..)
* Mon Oct 22 2012 Jooseok Park <jooseok.park@samsung.com> - 0.2.25
- bundle null check added & protobuf null check added
* Wed Sep 19 2012 Jooseok Park <jooseok.park@samsung.com> - 0.2.24