[4.0] Remove profile build dependencies 80/107980/4
authorhk57.kim <hk57.kim@samsung.com>
Mon, 2 Jan 2017 07:32:05 +0000 (16:32 +0900)
committerjerry kim <hk57.kim@samsung.com>
Mon, 23 Jan 2017 08:06:04 +0000 (00:06 -0800)
- This is for Tizen 4.0.
- Added backward-compatibility that does not deteriorate 4.0 Configurability
- When you send SR of this comimt you need to create JIRA-TRE of:

 - common/ivi profile: Add libemuld-profile_common
 - wearable profile: Add libemuld-profile_wearable
 - mobile profile: Add libemuld-profile_mobile
 - tv profile: Add libemuld-profile_tv

(It's add, not replace.)

Change-Id: I0f956cd50eae4a9a51f2ed513a6519c38222bf53
Signed-off-by: hk57.kim <hk57.kim@samsung.com>
packaging/emuld.spec

index 56fc00277de2d5bdb80f81909d381530b1078203..b04a695c8781f343a0d16184b1a0bcc6b038d357 100644 (file)
@@ -4,6 +4,12 @@
 
 %bcond_with emulator
 
+# 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
+
 %define emuld_major_version 0
 %define emuld_minor_version 10
 %define emuld_release_number 20
@@ -46,10 +52,66 @@ Emulator daemon
 %package -n libemuld
 Summary:    Emulator daemon library
 Requires:   vconf
+# for multiprofile
+Requires:      libemuld-compat = %{version}-%{release}
+Recommends:    libemuld-profile_common = %{version}-%{release}
 
 %description -n libemuld
 Emulator daemon library for emuld and plugins
 
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if common || ivi || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "mobile"
+%package -n libemuld-profile_common
+Summary:       Emulator daemon library for common/ivi
+Provides:      libemuld-compat = %{version}-%{release}
+Provides:      libemuld-profile_ivi = %{version}-%{release}
+Conflicts:     libemuld-profile_mobile
+Conflicts:     libemuld-profile_wearable
+Conflicts:     libemuld-profile_tv
+%description -n libemuld-profile_common
+Emulator daemon library for emuld and plugins for common/ivi
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%package -n libemuld-profile_mobile
+Summary:       Emulator daemon library for mobile
+Provides:      libemuld-compat = %{version}-%{release}
+Conflicts:     libemuld-profile_common
+Conflicts:     libemuld-profile_wearable
+Conflicts:     libemuld-profile_tv
+%description -n libemuld-profile_mobile
+Emulator daemon library for emuld and plugins for mobile
+%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 libemuld-profile_wearable
+Summary:       Emulator daemon library for wearable
+Provides:      libemuld-compat = %{version}-%{release}
+Conflicts:     libemuld-profile_common
+Conflicts:     libemuld-profile_mobile
+Conflicts:     libemuld-profile_tv
+%description -n libemuld-profile_wearable
+Emulator daemon library for emuld and plugins for wearable
+%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 libemuld-profile_tv
+Summary:       Emulator daemon library for tv
+Provides:      libemuld-compat = %{version}-%{release}
+Conflicts:     libemuld-profile_common
+Conflicts:     libemuld-profile_mobile
+Conflicts:     libemuld-profile_wearable
+%description -n libemuld-profile_tv
+Emulator daemon library for emuld and plugins for tv
+%endif
+
 %package -n libemuld-devel
 Summary:    Emulator daemon library for (devel)
 Requires:   libemuld = %{version}-%{release}
@@ -69,27 +131,92 @@ chmod 644 %{SOURCE0}
 %define msgproc_vconf on
 %define msgproc_suspend on
 
-%if "%{?profile}" == "mobile"
-%define msgproc_location on
-%endif
-%if "%{?profile}" == "wearable"
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || wearable || "undefined"
+%if "%{?profile}" != "common" && "%{?profile}" != "tv" && "%{?profile}" != "ivi"
 %define msgproc_location on
 %endif
 
-%if "%{?profile}" == "mobile"
-export CFLAGS+=" -DMOBILE"
-%else
-%if "%{?profile}" == "wearable"
-export CFLAGS+=" -DWEARABLE"
-%else
-%if "%{?profile}" == "tv"
-export CFLAGS+=" -DTV"
-%else
-export CFLAGS+=" -DUNKNOWN_PROFILE"
+%build
+
+export CFLAGS_BASE="${CFALGS}"
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+mkdir -p build_mobile
+pushd build_mobile
+export CFLAGS="${CFLAGS_BASE} -DMOBILE"
+cmake .. \
+    -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+    -DLIB_INSTALL_DIR=%{_libdir} \
+    -DEMULD_MAJOR_VERSION=%{emuld_major_version} \
+    -DEMULD_MINOR_VERSION=%{emuld_minor_version} \
+    -DEMULD_RELEASE_NUMBER=%{emuld_release_number} \
+    -DMSGPROC_HDS=%{msgproc_hds} \
+    -DMSGPROC_CMD=%{msgproc_cmd} \
+    -DMSGPROC_PACKAGE=%{msgproc_package} \
+    -DMSGPROC_SYSTEM=%{msgproc_system} \
+    -DMSGPROC_VCONF=%{msgproc_vconf} \
+    -DMSGPROC_SUSPEND=%{msgproc_suspend} \
+    -DMSGPROC_LOCATION=%{msgproc_location}
+
+make
+popd
 %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"
+mkdir -p build_wearable
+pushd build_wearable
+export CFLAGS="${CFLAGS_BASE} -DWEARABLE"
+cmake .. \
+    -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+    -DLIB_INSTALL_DIR=%{_libdir} \
+    -DEMULD_MAJOR_VERSION=%{emuld_major_version} \
+    -DEMULD_MINOR_VERSION=%{emuld_minor_version} \
+    -DEMULD_RELEASE_NUMBER=%{emuld_release_number} \
+    -DMSGPROC_HDS=%{msgproc_hds} \
+    -DMSGPROC_CMD=%{msgproc_cmd} \
+    -DMSGPROC_PACKAGE=%{msgproc_package} \
+    -DMSGPROC_SYSTEM=%{msgproc_system} \
+    -DMSGPROC_VCONF=%{msgproc_vconf} \
+    -DMSGPROC_SUSPEND=%{msgproc_suspend} \
+    -DMSGPROC_LOCATION=%{msgproc_location}
+
+make
+popd
 %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"
+mkdir -p build_tv
+pushd build_tv
+export CFLAGS="${CFLAGS_BASE} -DTV"
+cmake .. \
+    -DCMAKE_INSTALL_PREFIX=%{_prefix} \
+    -DLIB_INSTALL_DIR=%{_libdir} \
+    -DEMULD_MAJOR_VERSION=%{emuld_major_version} \
+    -DEMULD_MINOR_VERSION=%{emuld_minor_version} \
+    -DEMULD_RELEASE_NUMBER=%{emuld_release_number} \
+    -DMSGPROC_HDS=%{msgproc_hds} \
+    -DMSGPROC_CMD=%{msgproc_cmd} \
+    -DMSGPROC_PACKAGE=%{msgproc_package} \
+    -DMSGPROC_SYSTEM=%{msgproc_system} \
+    -DMSGPROC_VCONF=%{msgproc_vconf} \
+    -DMSGPROC_SUSPEND=%{msgproc_suspend} \
+    -DMSGPROC_LOCATION=%{msgproc_location}
+
+make
+popd
 %endif
 
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if common || ivi || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "mobile"
+export CFLAGS="${CFLAGS_BASE} -DUNKNOWN_PROFILE"
 cmake . \
     -DCMAKE_INSTALL_PREFIX=%{_prefix} \
     -DLIB_INSTALL_DIR=%{_libdir} \
@@ -104,13 +231,59 @@ cmake . \
     -DMSGPROC_SUSPEND=%{msgproc_suspend} \
     -DMSGPROC_LOCATION=%{msgproc_location}
 
-%build
-
 make
+%endif
 
 %install
 rm -rf %{buildroot}
 
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+pushd build_mobile
+%make_install
+popd
+pushd %{buildroot}%{_libdir}
+for FILE in libemuld.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/$FILE.mobile"; done
+popd
+%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"
+pushd build_wearable
+%make_install
+popd
+pushd %{buildroot}%{_libdir}
+for FILE in libemuld.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/$FILE.wearable"; done
+popd
+%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"
+pushd build_tv
+%make_install
+popd
+pushd %{buildroot}%{_libdir}
+for FILE in libemuld.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/$FILE.tv"; done
+popd
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || wearable || tv || "undefined"
+%if "%{?profile}" != "common" && "%{?profile}" != "ivi"
+pushd %{_builddir}/%{name}-%{version}
+for FILE in libemuld.so*; do mv "$FILE" "%{buildroot}%{_libdir}/$FILE"; done
+popd
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if common || ivi || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "mobile"
+%make_install
+%endif
+
 # for systemd
 if [ ! -d %{buildroot}/usr/lib/systemd/system/emulator.target.wants ]; then
     mkdir -p %{buildroot}/usr/lib/systemd/system/emulator.target.wants
@@ -124,23 +297,57 @@ mkdir -p %{buildroot}/usr/share/license
 cp LICENSE %{buildroot}/usr/share/license/%{name}
 cp LICENSE %{buildroot}/usr/share/license/libemuld
 
-%make_install
-
 %clean
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if common || ivi || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "mobile"
 make clean
+%endif
 rm -rf CMakeCache.txt
 rm -rf CMakeFiles
 rm -rf cmake_install.cmake
 rm -rf Makefile
 rm -rf install_manifest.txt
+rm -rf build_mobile
+rm -rf build_wearable
+rm -rf build_tv
+rm -rf libemuld.so*
 
 %post
 chmod 770 %{_prefix}/bin/emuld
 
 %post -n libemuld -p /sbin/ldconfig
-%post -n libemuld-devel -p /sbin/ldconfig
 %postun -n libemuld -p /sbin/ldconfig
-%postun -n libemuld-devel -p /sbin/ldconfig
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%post -n libemuld-profile_mobile
+pushd %{_libdir}
+for FILE in libemuld.so*.mobile; do ln -sf "$FILE" "${FILE%.mobile}"; done
+popd
+/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 -n libemuld-profile_wearable
+pushd %{_libdir}
+for FILE in libemuld.so*.wearable; do ln -sf "$FILE" "${FILE%.wearable}"; done
+popd
+/sbin/ldconfig
+%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"
+%post -n libemuld-profile_tv
+pushd %{_libdir}
+for FILE in libemuld.so*.tv; do ln -sf "$FILE" "${FILE%.tv}"; done
+popd
+/sbin/ldconfig
+%endif
 
 %files -n emuld
 %defattr(-,root,root,-)
@@ -155,11 +362,47 @@ chmod 770 %{_prefix}/bin/emuld
 %manifest libemuld.manifest
 /usr/share/license/libemuld
 %{_libdir}/libemuld.so*
+%exclude %{_libdir}/libemuld.so*.mobile
+%exclude %{_libdir}/libemuld.so*.wearable
+%exclude %{_libdir}/libemuld.so*.tv
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if common || ivi || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "mobile"
+%files -n libemuld-profile_common
+# default .so files are housed in the main pkg.
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%files -n libemuld-profile_mobile
+%defattr(-,root,root,-)
+%manifest libemuld.manifest
+%{_libdir}/libemuld.so*.mobile
+%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"
+%files -n libemuld-profile_wearable
+%defattr(-,root,root,-)
+%manifest libemuld.manifest
+%{_libdir}/libemuld.so*.wearable
+%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 libemuld-profile_tv
+%defattr(-,root,root,-)
+%manifest libemuld.manifest
+%{_libdir}/libemuld.so*.tv
+%endif
 
 %files -n libemuld-devel
 %defattr(-,root,root,-)
 %{_includedir}/libemuld/*.h
-%{_libdir}/libemuld.so*
 %{_libdir}/pkgconfig/libemuld.pc
 
 %changelog