%global _support_weblog 0
+# Do not provide .so automatically for the extensions.
+# This if statement is for backward compatibility with GBM/Obsolete build systems
+%if "%{?profile}" != "wearable" && "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%global __provides_exclude_from ^.*\\.(wearable|mobile|tv|ivi|common)$
+%endif
+
Name: push
Summary: Push services and client library
Version: 0.4.61
Summary: Push service client library
Group: Application Framework/Libraries
Requires: %{name}-bin = %{version}-%{release}
-Provides: libpush.so.0
-
+Requires: libpush-compat = %{version}-%{release}
+Recommends: libpush-profile_common = %{version}-%{release}
+Provides: libpush.so.0
%description -n libpush
Push service client library
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || ivi || common || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv"
+%package -n libpush-profile_common
+Summary: Push service client library for common/mobile/ivi
+Group: Application Framework/Libraries
+Provides: libpush-compat = %{version}-%{release}
+Provides: libpush-profile_mobile = %{version}-%{release}
+Provides: libpush-profile_ivi = %{version}-%{release}
+Conflicts: libpush-profile_wearable
+Conflicts: libpush-profile_tv
+%description -n libpush-profile_common
+Push service client library for common/mobile/ivi
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if tv || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "wearable" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%package -n libpush-profile_tv
+Summary: Push service client library for tv
+Group: Application Framework/Libraries
+Provides: libpush-compat = %{version}-%{release}
+Conflicts: libpush-profile_common
+Conflicts: libpush-profile_wearable
+%description -n libpush-profile_tv
+Push service client library for tv
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%package -n libpush-profile_wearable
+Summary: Push service client library for wearable
+Group: Application Framework/Libraries
+Provides: libpush-compat = %{version}-%{release}
+Conflicts: libpush-profile_common
+Conflicts: libpush-profile_tv
+%description -n libpush-profile_wearable
+Push service client library for wearable
+%endif
+
%package -n libpush-devel
Summary: Push service client library (DEV)
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 Framework/Service
-
+Requires: %{name}-bin-compat = %{version}-%{release}
+Recommends: %{name}-bin-profile_common = %{version}-%{release}
%description bin
Push service daemon
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || ivi || common || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv"
+%package bin-profile_common
+Summary: Push service daemon for mobile/common/ivi
+Group: Application Framework/Service
+Provides: %{name}-bin-compat = %{version}-%{release}
+Provides: %{name}-bin-profile_mobile = %{version}-%{release}
+Provides: %{name}-bin-profile_ivi = %{version}-%{release}
+Conflicts: %{name}-bin-profile_wearable
+Conflicts: %{name}-bin-profile_tv
+%description bin-profile_common
+Push service daemon for mobile/common/ivi
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if tv || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "wearable" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%package bin-profile_tv
+Summary: Push service daemon for tv
+Group: Application Framework/Service
+Provides: %{name}-bin-compat = %{version}-%{release}
+Conflicts: %{name}-bin-profile_wearable
+Conflicts: %{name}-bin-profile_common
+%description bin-profile_tv
+Push service daemon for tv
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%package bin-profile_wearable
+Summary: Push service daemon for wearable
+Group: Application Framework/Service
+Provides: %{name}-bin-compat = %{version}-%{release}
+Conflicts: %{name}-bin-profile_tv
+Conflicts: %{name}-bin-profile_common
+%description bin-profile_wearable
+Push service daemon for wearable
+%endif
+
%package tool
Summary: Push service tool
Group: Development/Tools
Requires: libpush = %{version}-%{release}
Requires: %{name}-bin = %{version}-%{release}
-
+Requires: %{name}-tool-compat = %{version}-%{release}
+Recommends: %{name}-tool-profile_common = %{version}-%{release}
%description tool
Push service tool
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || ivi || common || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv"
+%package tool-profile_common
+Summary: Push service tool for mobile/common/ivi
+Group: Development/Tools
+Provides: %{name}-tool-compat = %{version}-%{release}
+Provides: %{name}-tool-profile_mobile = %{version}-%{release}
+Provides: %{name}-tool-profile_ivi = %{version}-%{release}
+Conflicts: %{name}-tool-profile_wearable
+Conflicts: %{name}-tool-profile_tv
+%description tool-profile_common
+Push service tool for mobile/common/ivi
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if tv || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "wearable" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%package tool-profile_tv
+Summary: Push service tool for tv
+Group: Development/Tools
+Provides: %{name}-tool-compat = %{version}-%{release}
+Conflicts: %{name}-tool-profile_wearable
+Conflicts: %{name}-tool-profile_common
+%description tool-profile_tv
+Push service tool for tv
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%package tool-profile_wearable
+Summary: Push service tool for wearable
+Group: Development/Tools
+Provides: %{name}-tool-compat = %{version}-%{release}
+Conflicts: %{name}-tool-profile_tv
+Conflicts: %{name}-tool-profile_common
+%description tool-profile_wearable
+Push service tool for wearable
+%endif
+
%define _upgrade_script_path /usr/share/upgrade/scripts/
%define _upgrade_script 500.sppc.sh
rm -rf %{buildroot}
mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
install -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/pushd.service
-%if "%{profile}" == "mobile"
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || ivi || common || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv"
install -m 0644 %{SOURCE2} %{buildroot}%{_unitdir}/pushd.path
-%else
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || tv || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
%install_service multi-user.target.wants pushd.service
%endif
mkdir -p %{buildroot}%{_libdir}/pkgconfig
cp -a push.pc %{buildroot}%{_libdir}/pkgconfig/
-
-mkdir -p %{buildroot}/usr/share/push/
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_upgrade_script_path}
cp -f scripts/%{_upgrade_script} %{buildroot}%{_upgrade_script_path}
+mkdir -p %{buildroot}/usr/share/push
%ifarch %{arm}
-#libpush
-cp -a arm/lib/libpush.so.* %{buildroot}%{_libdir}
-#libpus-devel
-cp -a arm/lib/libpush.so %{buildroot}%{_libdir}
-#push-bin
-cp -a arm/bin/pushd %{buildroot}%{_bindir}
-cp -a arm/bin/push_tool %{buildroot}%{_bindir}
-cp -a arm/share/push/*.cer %{buildroot}/usr/share/push/
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || ivi || common || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv"
+pushd arm/lib/
+for FILE in libpush.so*; do cp -a "$FILE" "%{buildroot}%{_libdir}/$FILE"; done
+popd
+pushd arm/bin/
+for FILE in push*; do cp -a "$FILE" "%{buildroot}%{_bindir}/$FILE"; done
+popd
+pushd arm/share/push/
+for FILE in *.cer; do cp -a "$FILE" "%{buildroot}/usr/share/push/$FILE"; done
+popd
%if %{_support_weblog}
arm/bin/pushlog_tool
%endif
+%endif
-%if "%{profile}" == "tv"
-#libpush
-cp -a arm_tv/lib/libpush.so.* %{buildroot}%{_libdir}
-#libpus-devel
-cp -a arm_tv/lib/libpush.so %{buildroot}%{_libdir}
-#push-bin
-cp -a arm_tv/bin/pushd %{buildroot}%{_bindir}
-cp -a arm_tv/bin/push_tool %{buildroot}%{_bindir}
-cp -a arm_tv/share/push/*.cer %{buildroot}/usr/share/push/
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if tv || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "wearable" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+pushd arm_tv/lib/
+for FILE in libpush.so*; do cp -a "$FILE" "%{buildroot}%{_libdir}/$FILE.tv"; done
+popd
+pushd arm_tv/bin/
+for FILE in push*; do cp -a "$FILE" "%{buildroot}%{_bindir}/$FILE.tv"; done
+popd
+pushd arm_tv/share/push/
+for FILE in *.cer; do cp -a "$FILE" "%{buildroot}/usr/share/push/$FILE.tv"; done
+popd
%if %{_support_weblog}
arm_tv/bin/pushlog_tool
%endif
%endif
-%if "%{profile}" == "wearable"
-#libpush
-cp -a arm_wearable/lib/libpush.so.* %{buildroot}%{_libdir}
-#libpus-devel
-cp -a arm_wearable/lib/libpush.so %{buildroot}%{_libdir}
-#push-bin
-cp -a arm_wearable/bin/pushd %{buildroot}%{_bindir}
-cp -a arm_wearable/bin/push_tool %{buildroot}%{_bindir}
-cp -a arm_wearable/share/push/*.cer %{buildroot}/usr/share/push/
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+pushd arm_wearable/lib/
+for FILE in libpush.so*; do cp -a "$FILE" "%{buildroot}%{_libdir}/$FILE.wearable"; done
+popd
+pushd arm_wearable/bin/
+for FILE in push*; do cp -a "$FILE" "%{buildroot}%{_bindir}/$FILE.wearable"; done
+popd
+pushd arm_wearable/share/push/
+for FILE in *.cer; do cp -a "$FILE" "%{buildroot}/usr/share/push/$FILE.wearable"; done
+popd
%if %{_support_weblog}
arm_wearable/bin/pushlog_tool
%endif
%endif
-%endif
+%endif //%ifarch %{arm}
%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/
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || ivi || common || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv"
+pushd aarch64/lib/
+for FILE in libpush.so*; do cp -a "$FILE" "%{buildroot}%{_libdir}/$FILE"; done
+popd
+pushd aarch64/bin/
+for FILE in push*; do cp -a "$FILE" "%{buildroot}%{_bindir}/$FILE"; done
+popd
+pushd aarch64/share/push/
+for FILE in *.cer; do cp -a "$FILE" "%{buildroot}/usr/share/push/$FILE"; done
+popd
+
%if %{_support_weblog}
aarch64/bin/pushlog_tool
%endif
%endif
+%endif //%ifarch aarch64
%ifarch %{ix86}
-#libpush
-cp -a x86/lib/libpush.so.* %{buildroot}%{_libdir}
-#libpus-devel
-cp -a x86/lib/libpush.so %{buildroot}%{_libdir}
-#push-bin
-cp -a x86/bin/pushd %{buildroot}%{_bindir}
-cp -a x86/bin/push_tool %{buildroot}%{_bindir}
-cp -a x86/share/push/*.cer %{buildroot}/usr/share/push/
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || ivi || common || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv"
+pushd x86/lib/
+for FILE in libpush.so*; do cp -a "$FILE" "%{buildroot}%{_libdir}/$FILE"; done
+popd
+pushd x86/bin/
+for FILE in push*; do cp -a "$FILE" "%{buildroot}%{_bindir}/$FILE"; done
+popd
+pushd x86/share/push/
+for FILE in *.cer; do cp -a "$FILE" "%{buildroot}/usr/share/push/$FILE"; done
+popd
%if %{_support_weblog}
x86/bin/pushlog_tool
%endif
+%endif
-%if "%{profile}" == "tv"
-#libpush
-cp -a x86_tv/lib/libpush.so.* %{buildroot}%{_libdir}
-#libpus-devel
-cp -a x86_tv/lib/libpush.so %{buildroot}%{_libdir}
-#push-bin
-cp -a x86_tv/bin/pushd %{buildroot}%{_bindir}
-cp -a x86_tv/bin/push_tool %{buildroot}%{_bindir}
-cp -a x86_tv/share/push/*.cer %{buildroot}/usr/share/push/
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if tv || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "wearable" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+pushd x86_tv/lib/
+for FILE in libpush.so*; do cp -a "$FILE" "%{buildroot}%{_libdir}/$FILE.tv"; done
+popd
+pushd x86_tv/bin/
+for FILE in push*; do cp -a "$FILE" "%{buildroot}%{_bindir}/$FILE.tv"; done
+popd
+pushd x86_tv/share/push/
+for FILE in *.cer; do cp -a "$FILE" "%{buildroot}/usr/share/push/$FILE.tv"; done
+popd
%if %{_support_weblog}
x86_tv/bin/pushlog_tool
%endif
%endif
-%if "%{profile}" == "wearable"
-#libpush
-cp -a x86_wearable/lib/libpush.so.* %{buildroot}%{_libdir}
-#libpus-devel
-cp -a x86_wearable/lib/libpush.so %{buildroot}%{_libdir}
-#push-bin
-cp -a x86_wearable/bin/pushd %{buildroot}%{_bindir}
-cp -a x86_wearable/bin/push_tool %{buildroot}%{_bindir}
-cp -a x86_wearable/share/push/*.cer %{buildroot}/usr/share/push/
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+pushd x86_wearable/lib/
+for FILE in libpush.so*; do cp -a "$FILE" "%{buildroot}%{_libdir}/$FILE.wearable"; done
+popd
+pushd x86_wearable/bin/
+for FILE in push*; do cp -a "$FILE" "%{buildroot}%{_bindir}/$FILE.wearable"; done
+popd
+pushd x86_wearable/share/push/
+for FILE in *.cer; do cp -a "$FILE" "%{buildroot}/usr/share/push/$FILE.wearable"; done
+popd
%if %{_support_weblog}
x86_wearable/bin/pushlog_tool
%endif
%endif
-%endif
+%endif //%ifarch %{ix86}
%ifarch x86_64
-#libpush
-cp -a x86_64/lib64/libpush.so.* %{buildroot}%{_libdir}
-#libpus-devel
-cp -a x86_64/lib64/libpush.so %{buildroot}%{_libdir}
-#push-bin
-cp -a x86_64/bin/pushd %{buildroot}%{_bindir}
-cp -a x86_64/bin/push_tool %{buildroot}%{_bindir}
-cp -a x86_64/share/push/*.cer %{buildroot}/usr/share/push/
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || ivi || common || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv"
+pushd x86_64/lib64/
+for FILE in libpush.so*; do cp -a "$FILE" "%{buildroot}%{_libdir}/$FILE"; done
+popd
+pushd x86_64/bin/
+for FILE in push*; do cp -a "$FILE" "%{buildroot}%{_bindir}/$FILE"; done
+popd
+pushd x86_64/share/push/
+for FILE in *.cer; do cp -a "$FILE" "%{buildroot}/usr/share/push/$FILE"; done
+popd
%if %{_support_weblog}
x86_64/bin/pushlog_tool
%endif
%endif
+%endif //%ifarch x86_64
%post bin
mkdir -p %{TZ_SYS_GLOBALUSER_DB}
chsmack -a "*" %{TZ_SYS_GLOBALUSER_DB}/.push.db
chsmack -a "*" %{TZ_SYS_GLOBALUSER_DB}/.push.db-journal
-%if "%{profile}" == "mobile"
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || ivi || common || "undefined"
+%if "%{?profile}" != "wearable" || "%{?profile}" != "tv"
ln -sf ../pushd.path %{_unitdir}/multi-user.target.wants/
%endif
-%post -n libpush
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if tv || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "wearable" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%post bin-profile_tv
+pushd %{_bindir}
+for FILE in push*.tv; do ln -sf "$FILE" "${FILE%.tv}"; done
+popd
+pushd /usr/share/push/
+for FILE in Push*.tv; do ln -sf "$FILE" "${FILE%.tv}"; done
+popd
+
+%post tool-profile_tv
+ln -sf push_tool.tv %{_bindir}/push_tool
+
+%post -n libpush-profile_tv
+pushd %{_libdir}
+for FILE in libpush.so*.tv; do ln -sf "$FILE" "${FILE%.tv}"; done
+popd
/sbin/ldconfig
-%postun -n libpush -p /sbin/ldconfig
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%post bin-profile_wearable
+pushd %{_bindir}
+for FILE in push*.wearable; do ln -sf "$FILE" "${FILE%.wearable}"; done
+popd
+pushd /usr/share/push/
+for FILE in Push*.wearable; do ln -sf "$FILE" "${FILE%.wearable}"; done
+popd
+
+%post tool-profile_wearable
+ln -sf push_tool.wearable %{_bindir}/push_tool
+
+%post -n libpush-profile_wearable
+pushd %{_libdir}
+for FILE in libpush.so*.wearable; do ln -sf "$FILE" "${FILE%.wearable}"; done
+popd
+/sbin/ldconfig
+
+%endif
+
%files -n libpush
%manifest libpush.manifest
-%attr(755,root,root) %{_libdir}/libpush.so.*
%files -n libpush-devel
%{_includedir}/*.h
%{_libdir}/pkgconfig/*.pc
-%{_libdir}/libpush.so
%files bin
%manifest push-bin.manifest
-%{_bindir}/pushd
-%attr(600,service_fw,service_fw) /usr/share/push/*.cer
+%{_unitdir}/pushd.service
%attr(644,root,root) /usr/share/licenses/%{name}/LICENSE
-
%{_upgrade_script_path}%{_upgrade_script}
%attr(755,root,root) %{_upgrade_script_path}%{_upgrade_script}
-%{_unitdir}/pushd.service
-%if "%{profile}" == "mobile"
+%files tool
+%manifest push-tool.manifest
+%if %{_support_weblog}
+ %{_bindir}/pushlog_tool
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || ivi || common || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv"
+
+%files -n libpush-profile_common
+%manifest libpush.manifest
+%attr(755,root,root) %{_libdir}/libpush.so*
+%exclude %{_libdir}/libpush.so*.tv
+%exclude %{_libdir}/libpush.so*.wearable
+
+%files bin-profile_common
+%{_bindir}/pushd
+%attr(600,service_fw,service_fw) /usr/share/push/PushServerTrust.cer
%{_unitdir}/pushd.path
-%else
+
+%files tool-profile_common
+%{_bindir}/push_tool
+
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if tv || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "wearable" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+
+%files -n libpush-profile_tv
+%manifest libpush.manifest
+%attr(755,root,root) %{_libdir}/libpush.so*.tv
+
+%files bin-profile_tv
+%{_bindir}/pushd.tv
+%attr(600,service_fw,service_fw) /usr/share/push/PushServerTrust.cer.tv
%{_unitdir}/multi-user.target.wants/pushd.service
+
+%files tool-profile_tv
+%{_bindir}/push_tool.tv
+
%endif
-%files tool
-%manifest push-tool.manifest
-%{_bindir}/push_tool
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+
+%files -n libpush-profile_wearable
+%manifest libpush.manifest
+%attr(755,root,root) %{_libdir}/libpush.so*.wearable
+
+%files bin-profile_wearable
+%{_bindir}/pushd.wearable
+%attr(600,service_fw,service_fw) /usr/share/push/PushServerTrust.cer.wearable
+%{_unitdir}/multi-user.target.wants/pushd.service
+
+%files tool-profile_wearable
+%{_bindir}/push_tool.wearable
-%if %{_support_weblog}
- %{_bindir}/pushlog_tool
%endif
%changelog