Fix heap-use-after-free issue
[platform/core/multimedia/mmsvc-core.git] / packaging / mused.spec
1 Name:       mused
2 Summary:    A multimedia daemon
3 Version:    0.3.159
4 Release:    0
5 Group:      System/Libraries
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8 Source1:    muse-server.service
9 Source2:    gtest.input
10 Source3:    muse-server-vd_product_tv.path
11 Source4:    muse-server-vd_product_tv.service
12 Source5:    muse-server-vd_product_audio.service
13 Source6:    %{name}.notstrip
14 Source7:    muse-server.path
15 BuildRequires: cmake
16 BuildRequires: pkgconfig(libsystemd)
17 BuildRequires: pkgconfig(capi-system-info)
18 BuildRequires: pkgconfig(capi-system-runtime-info)
19 BuildRequires: pkgconfig(cynara-client)
20 BuildRequires: pkgconfig(cynara-creds-socket)
21 BuildRequires: pkgconfig(cynara-session)
22 BuildRequires: pkgconfig(dlog)
23 BuildRequires: pkgconfig(gio-2.0)
24 BuildRequires: pkgconfig(glib-2.0)
25 BuildRequires: pkgconfig(gmodule-2.0)
26 BuildRequires: pkgconfig(gstreamer-1.0)
27 BuildRequires: pkgconfig(gstreamer-base-1.0)
28 BuildRequires: pkgconfig(iniparser)
29 BuildRequires: pkgconfig(json-c)
30 BuildRequires: pkgconfig(libtbm)
31 BuildRequires: pkgconfig(libtzplatform-config)
32 BuildRequires: pkgconfig(mm-common)
33 BuildRequires: pkgconfig(storage)
34 %if "%{tizen_profile_name}" == "tv"
35 BuildRequires: pkgconfig(libresourced)
36 BuildRequires: pkgconfig(lwipc)
37 BuildRequires: pkgconfig(ttrace)
38 %else
39 BuildRequires: pkgconfig(mm-resource-manager)
40 %endif
41 %if 0%{?gtests:1}
42 BuildRequires: pkgconfig(gmock)
43 %endif
44
45 Requires(post): /sbin/ldconfig
46 Requires(postun): /sbin/ldconfig
47 Requires: security-config
48
49 %description
50
51
52 %package devel
53 Summary:  A Media Daemon library in Tizen (Development)
54 Group:    Multimedia/Service
55 Requires: %{name} = %{version}-%{release}
56 %description devel
57
58 %prep
59 %setup -q
60
61 %build
62 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
63 export CFLAGS="$CFLAGS -DSYSCONFDIR=\\\"%{_hal_sysconfdir}\\\""
64 export CXXFLAGS="$CXXFLAGS -DSYSCONFDIR=\\\"%{_hal_sysconfdir}\\\""
65
66 %if 0%{?sec_build_binary_debug_enable}
67 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE -D_GNU_SOURCE"
68 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE -D_GNU_SOURCE"
69 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE -D_GNU_SOURCE"
70 %endif
71
72 %if 0%{?gcov:1}
73 export CFLAGS+=" -fprofile-arcs -ftest-coverage -DMUSE_GCOV_TEST "
74 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage -DMUSE_GCOV_TEST "
75 export LDFLAGS+=" -lgcov "
76 %endif
77
78 %if ("%{_vd_cfg_product_type}" == "AUDIO") || ("%{_vd_cfg_product_type}" == "TV") || ("%{_vd_cfg_product_type}" == "LFD") || ("%{_vd_cfg_product_type}" == "HTV") || ("%{_vd_cfg_product_type}" == "AV") || ("%{_vd_cfg_product_type}" == "IWB") || ("%{_vd_cfg_product_type}" == "WALL")
79 export CFLAGS+=" -DMUSE_REGISTER_VIP -DMUSE_USE_LWIPC -DMUSE_TTRACE_LOG"
80 %cmake . -DCMAKE_INSTALL_PREFIX=/usr -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DLIBDIR=%{_libdir} -DTZ_SYS_DATA=%TZ_SYS_DATA -DMUSE_REGISTER_VIP=1 -DMUSE_TTRACE_LOG=1 -DMUSE_USE_LWIPC=1
81 %else
82 export CFLAGS+=" -DMUSE_USE_POWER_OFF_STATE_CHANGE -DMUSE_USE_EXTERNAL_STORAGE_STATE_CHANGE -DMUSE_USE_WATCHDOG"
83 %cmake . -DCMAKE_INSTALL_PREFIX=/usr -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DLIBDIR=%{_libdir} -DTZ_SYS_DATA=%TZ_SYS_DATA -DMUSE_GTESTS_BUILD=%{?gtests:1}%{!?gtests:0}
84 %endif
85
86 make %{?jobs:-j%jobs}
87
88 %install
89 rm -rf %{buildroot}
90
91 %make_install
92
93 %if ("%{_vd_cfg_product_type}" == "AUDIO")
94 mkdir -p %{buildroot}%{_unitdir}/stater.target.wants
95 install -m 0644 %SOURCE5 %{buildroot}%{_unitdir}/muse-server.service
96 %install_service starter.target.wants muse-server.service
97
98 mkdir -p %{buildroot}%{_sysconfdir}/notstrip
99 install -m 0644 %SOURCE6 %{buildroot}%{_sysconfdir}/notstrip/%{name}.notstrip
100 %else
101 %if ("%{_vd_cfg_product_type}" == "TV") || ("%{_vd_cfg_product_type}" == "LFD") || ("%{_vd_cfg_product_type}" == "HTV") || ("%{_vd_cfg_product_type}" == "AV") || ("%{_vd_cfg_product_type}" == "IWB") || ("%{_vd_cfg_product_type}" == "WALL")
102 mkdir -p %{buildroot}%{_unitdir}/basic.target.wants
103 install -m 0644 %SOURCE4 %{buildroot}%{_unitdir}/muse-server.service
104 %install_service basic.target.wants muse-server.service
105
106 mkdir -p %{buildroot}%{_sysconfdir}/notstrip
107 install -m 0644 %SOURCE6 %{buildroot}%{_sysconfdir}/notstrip/%{name}.notstrip
108 install -m 0644 %SOURCE3 %{buildroot}%{_unitdir}/muse-server.path
109 %else
110 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
111 install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}/muse-server.service
112 %install_service multi-user.target.wants muse-server.service
113 install -m 0644 %SOURCE7 %{buildroot}%{_unitdir}/muse-server.path
114 %install_service paths.target.wants muse-server.path
115
116 %endif
117 %endif
118
119 mkdir -p %{buildroot}/var/log/%{name}
120 mkdir -p %{buildroot}%{TZ_SYS_DATA}/%{name}
121
122 %if 0%{?gtests:1}
123 install -m 0644 %SOURCE2 %{buildroot}%{TZ_SYS_DATA}/%{name}/gtest.input
124 %endif
125
126 %post
127 /sbin/ldconfig
128
129 chown multimedia_fw:multimedia_fw %{TZ_SYS_DATA}/%{name}
130 chown multimedia_fw:multimedia_fw /var/log/%{name}
131 chsmack -a "System::Shared" %{TZ_SYS_DATA}/%{name}
132 chsmack -a "System::Shared" /var/log/%{name}
133
134 %postun -p /sbin/ldconfig
135
136
137 %files
138 %manifest %{name}.manifest
139 %{_libdir}/libmuse-*.so.*
140 %license LICENSE.APLv2
141 %{_unitdir}/muse-server.service
142 %if ("%{_vd_cfg_product_type}" == "AUDIO")
143 %{_unitdir}/starter.target.wants/muse-server.service
144 %else
145 %if ("%{_vd_cfg_product_type}" == "TV") || ("%{_vd_cfg_product_type}" == "LFD") || ("%{_vd_cfg_product_type}" == "HTV") || ("%{_vd_cfg_product_type}" == "AV") || ("%{_vd_cfg_product_type}" == "IWB") || ("%{_vd_cfg_product_type}" == "WALL")
146 %{_unitdir}/basic.target.wants/muse-server.service
147 %else
148 %{_unitdir}/multi-user.target.wants/muse-server.service
149 %{_unitdir}/paths.target.wants/muse-server.path
150 %{_unitdir}/muse-server.path
151 %endif
152 %endif
153 %if ("%{_vd_cfg_product_type}" == "TV") || ("%{_vd_cfg_product_type}" == "LFD") || ("%{_vd_cfg_product_type}" == "HTV") || ("%{_vd_cfg_product_type}" == "AV") || ("%{_vd_cfg_product_type}" == "IWB") || ("%{_vd_cfg_product_type}" == "WALL")
154 %{_unitdir}/muse-server.path
155 %endif
156 %if ("%{_vd_cfg_product_type}" == "AUDIO") || ("%{_vd_cfg_product_type}" == "TV") || ("%{_vd_cfg_product_type}" == "LFD") || ("%{_vd_cfg_product_type}" == "HTV") || ("%{_vd_cfg_product_type}" == "AV") || ("%{_vd_cfg_product_type}" == "IWB") || ("%{_vd_cfg_product_type}" == "WALL")
157 %{_sysconfdir}/notstrip/%{name}.notstrip
158 %endif
159 %{TZ_SYS_DATA}/%{name}
160 /var/log/%{name}
161 %{_bindir}/*
162
163 %if 0%{?gtests:1}
164 %{TZ_SYS_DATA}/%{name}/gtest.input
165 %{_bindir}/gtest-muse-server
166 %endif
167
168 %files devel
169 %{_includedir}/media/*.h
170 %{_libdir}/pkgconfig/*.pc
171 %{_libdir}/*.so