Adjust emgd-bin.service to be finished before uxlaunch.service
[profile/ivi/emgd-bin.git] / packaging / emgd-bin.spec
1 # Copyright © 2002-2011, Intel Corporation.
2 #
3 # This program is free software; you can redistribute it and/or modify it
4 # under the terms and conditions of the GNU General Public License,
5 # version 2, as published by the Free Software Foundation.
6 #
7 # This program is distributed in the hope it will be useful, but WITHOUT
8 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9 # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
10 # more details.
11 #
12 # You should have received a copy of the GNU General Public License along with
13 # this program; if not, write to the Free Software Foundation, Inc.,
14 # 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
15 #----------------------------------------------------------------------------
16
17 #Just for now until the libs are ran using gcc rather than ld.
18 #This causes the omission of --build-id which causes debuginfo
19 #generation to puke.
20
21 %define debug_package %{nil}
22 %define libversion 1.5.15.3226
23
24 Name: emgd-bin
25 Summary: Intel EMGD graphics driver
26 Version: 2667
27 Release: 1.8%{?dist}
28 License: Intel Proprietary
29 Group: System/Libraries
30 ExclusiveArch: %{ix86}
31 URL: http://edc.intel.com/Software/Downloads/EMGD/
32 BuildRoot: %{_tmppath}/%{name}-%{version}-build
33
34 Source0: %{name}-%{version}.tar.bz2
35 Source1: emgd-bin.init
36 Source2: emgd-bin.service
37
38 %description
39 EMGD runtime graphics libraries
40
41 %package common
42 Summary: Common Intel EMGD graphics driver
43 Provides: libPVRScopeServices.so
44 Conflicts: mesa-libEGL mesa-libGLESv1 mesa-libGLESv2 mesa-libOpenVG pvr-bin-mrst pvr-bin-oaktrail pvr-bin-cdv
45 Requires(post): /sbin/ldconfig
46 Requires(postun): /sbin/ldconfig
47
48 %description common
49 Common EMGD runtime graphics libraries
50
51 %package x
52 Summary: Special X libraries
53 Group: System/Libraries
54 Requires: pciutils
55 Requires: %{name}-common
56
57 %description x
58 Special X libraries
59
60 %package devel
61 Summary: EMGD development headers
62 Group: Development/Libraries
63 Conflicts: mesa-libEGL-devel mesa-libGLESv1-devel mesa-libGLESv2-devel mesa-libOpenVG-devel mesa-libgbm-devel
64
65 %description devel
66 Development headers needed to build applications against EMGD libraries.
67 Khronos API headers and Wayland headers are provided.
68
69 %prep
70 %setup -q
71
72 %build
73
74 %install
75 rm -rf $RPM_BUILD_ROOT
76
77 mkdir -p $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/
78 mkdir -p $RPM_BUILD_ROOT%{_mandir}/man4/
79 mkdir -p $RPM_BUILD_ROOT/lib/systemd/system/
80 mkdir -p $RPM_BUILD_ROOT/usr/lib/pkgconfig/
81 mkdir -p $RPM_BUILD_ROOT/usr/libexec/
82 mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}/
83
84 install -m 644 -D usr/share/doc/emgd/license.txt $RPM_BUILD_ROOT%{_docdir}/%{name}/
85 install -m 644 -D usr/share/doc/emgd/readme.txt $RPM_BUILD_ROOT%{_docdir}/%{name}/
86 install -m 644 -D usr/share/doc/emgd/emgd-cb.conf $RPM_BUILD_ROOT%{_docdir}/%{name}/
87 install -m 644 -D usr/share/doc/emgd/emgd-rv.conf $RPM_BUILD_ROOT%{_docdir}/%{name}/
88 install -m 755 -D %{SOURCE1} $RPM_BUILD_ROOT/usr/libexec/emgd-bin.init
89 install -m 755 -D %{SOURCE2} $RPM_BUILD_ROOT/usr/lib/systemd/system/emgd-bin.service
90
91 install -m 644 -D etc/powervr.ini $RPM_BUILD_ROOT/etc/powervr.ini
92 install -m 644 -D usr/share/man/man4/emgd.4.gz $RPM_BUILD_ROOT%{_mandir}/man4/
93
94 mkdir -p $RPM_BUILD_ROOT%{_libdir}/dri/
95 pushd usr/lib
96 install -m 755 xorg/modules/drivers/emgd_drv.so $RPM_BUILD_ROOT%{_libdir}/xorg/modules/drivers/
97 install -m 755 dri/emgd_dri.so $RPM_BUILD_ROOT%{_libdir}/dri/
98 install -m 755 dri/emgd_drv_video.so $RPM_BUILD_ROOT%{_libdir}/dri/
99 install -m 755 libEMGD2d.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
100 install -m 755 libGLES_CM.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
101 install -m 755 libGLESv2.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
102 install -m 755 libOpenVG.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
103 install -m 755 libOpenVGU.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
104 install -m 755 libEMGDegl.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
105 install -m 755 libEGL.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
106 install -m 755 libEMGDOGL.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
107 install -m 755 libEMGDScopeServices.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
108 install -m 755 libemgdsrv_init.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
109 install -m 755 libemgdsrv_um.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
110 install -m 755 libemgdglslcompiler.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
111 install -m 755 libemgdPVR2D_DRIWSEGL.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
112 install -m 755 libgbm.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
113 install -m 755 libwayland-egl.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
114 install -m 755 libwayland-emgd.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
115 install -m 755 libemgdPVR2D_WAYLANDWSEGL.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
116 install -m 755 libemgdPVR2D_GBMWSEGL.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
117 install -m 755 libva.so.%{libversion} $RPM_BUILD_ROOT%{_libdir}/
118 #
119 # Development pkgconfig - GLES2, EGL, gbm
120 #
121 install -m 644 -D pkgconfig/egl.pc $RPM_BUILD_ROOT/usr/lib/pkgconfig/egl.pc
122 install -m 644 -D pkgconfig/glesv2.pc $RPM_BUILD_ROOT/usr/lib/pkgconfig/glesv2.pc
123 install -m 644 -D pkgconfig/gbm.pc $RPM_BUILD_ROOT/usr/lib/pkgconfig/gbm.pc
124 install -m 644 -D pkgconfig/glesv1_cm.pc $RPM_BUILD_ROOT/usr/lib/pkgconfig/glesv1_cm.pc
125 install -m 644 -D pkgconfig/vg.pc $RPM_BUILD_ROOT/usr/lib/pkgconfig/vg.pc
126 install -m 644 -D pkgconfig/wayland-egl.pc $RPM_BUILD_ROOT/usr/lib/pkgconfig/wayland-egl.pc
127 popd
128
129 pushd usr/include
130 #
131 # Development headers - EGL
132 #
133 install -m 644 -D EGL/egl.h $RPM_BUILD_ROOT/usr/include/EGL/egl.h
134 install -m 644 -D EGL/eglext.h $RPM_BUILD_ROOT/usr/include/EGL/eglext.h
135 install -m 644 -D EGL/eglplatform.h $RPM_BUILD_ROOT/usr/include/EGL/eglplatform.h
136
137 #
138 # Development headers - GLES1
139 #
140 install -m 644 -D GLES/glext.h $RPM_BUILD_ROOT/usr/include/GLES/glext.h
141 install -m 644 -D GLES/gl.h $RPM_BUILD_ROOT/usr/include/GLES/gl.h
142 install -m 644 -D GLES/glplatform.h $RPM_BUILD_ROOT/usr/include/GLES/glplatform.h
143
144 #
145 # Development headers - GLES2
146 #
147 install -m 644 -D GLES2/gl2ext.h $RPM_BUILD_ROOT/usr/include/GLES2/gl2ext.h
148 install -m 644 -D GLES2/gl2.h $RPM_BUILD_ROOT/usr/include/GLES2/gl2.h
149 install -m 644 -D GLES2/gl2platform.h $RPM_BUILD_ROOT/usr/include/GLES2/gl2platform.h
150
151 #
152 # Development headers - Khronos platform
153 #
154 install -m 644 -D KHR/khrplatform.h $RPM_BUILD_ROOT/usr/include/KHR/khrplatform.h
155
156 #
157 # Development headers - Wayland
158 #
159 install -m 644 -D gbm.h $RPM_BUILD_ROOT/usr/include/gbm.h
160
161 #
162 # Development headers - OpenVG
163 #
164 install -m 644 -D VG/openvg.h $RPM_BUILD_ROOT/usr/include/VG/openvg.h
165 install -m 644 -D VG/vgext.h $RPM_BUILD_ROOT/usr/include/VG/vgext.h
166 install -m 644 -D VG/vgplatform.h $RPM_BUILD_ROOT/usr/include/VG/vgplatform.h
167 install -m 644 -D VG/vgu.h $RPM_BUILD_ROOT/usr/include/VG/vgu.h
168 popd
169 pushd $RPM_BUILD_ROOT%{_libdir}
170 ln -s -f libEMGDOGL.so.%{libversion} libEMGDOGL.so.1
171 ln -s -f libEMGDOGL.so.%{libversion} libEMGDOGL.so
172 ln -s -f libemgdsrv_init.so.%{libversion} libemgdsrv_init.so.1
173 ln -s -f libemgdsrv_init.so.%{libversion} libemgdsrv_init.so
174 ln -s -f libemgdsrv_um.so.%{libversion} libemgdsrv_um.so.1
175 ln -s -f libemgdsrv_um.so.%{libversion} libemgdsrv_um.so
176 ln -s -f libemgdglslcompiler.so.%{libversion} libemgdglslcompiler.so.1
177 ln -s -f libemgdglslcompiler.so.%{libversion} libemgdglslcompiler.so
178 ln -s -f libemgdPVR2D_DRIWSEGL.so.%{libversion} libemgdPVR2D_DRIWSEGL.so.1
179 ln -s -f libemgdPVR2D_DRIWSEGL.so.%{libversion} libemgdPVR2D_DRIWSEGL.so
180 ln -s -f libemgdPVR2D_WAYLANDWSEGL.so.%{libversion} libemgdPVR2D_WAYLANDWSEGL.so.1
181 ln -s -f libemgdPVR2D_WAYLANDWSEGL.so.%{libversion} libemgdPVR2D_WAYLANDWSEGL.so
182 ln -s -f libEMGD2d.so.%{libversion} libEMGD2d.so.1
183 ln -s -f libEMGD2d.so.%{libversion} libEMGD2d.so
184 ln -s -f libOpenVG.so.%{libversion} libOpenVG.so.1
185 ln -s -f libOpenVG.so.%{libversion} libOpenVG.so
186 ln -s -f libOpenVGU.so.%{libversion} libOpenVGU.so.1
187 ln -s -f libOpenVGU.so.%{libversion} libOpenVGU.so
188 ln -s -f libGLESv2.so.%{libversion} libGLESv2.so.2
189 ln -s -f libGLESv2.so.%{libversion} libGLESv2.so
190 ln -s -f libGLES_CM.so.%{libversion} libGLES_CM.so.1
191 ln -s -f libGLES_CM.so.%{libversion} libGLES_CM.so
192 ln -s -f libEGL.so.%{libversion} libEGL.so.1
193 ln -s -f libEGL.so.%{libversion} libEGL.so
194 ln -s -f libEMGDegl.so.%{libversion} libEMGDegl.so.1
195 ln -s -f libEMGDegl.so.%{libversion} libEMGDegl.so
196 ln -s -f libgbm.so.%{libversion} libgbm.so.1
197 ln -s -f libgbm.so.%{libversion} libgbm.so
198 ln -s -f libwayland-egl.so.%{libversion} libwayland-egl.so.1
199 ln -s -f libwayland-egl.so.%{libversion} libwayland-egl.so
200 ln -s -f libwayland-emgd.so.%{libversion} libwayland-emgd.so.1
201 ln -s -f libwayland-emgd.so.%{libversion} libwayland-emgd.so
202 ln -s -f libEMGDScopeServices.so.%{libversion} libPVRScopeServices.so
203 ln -s -f libemgdPVR2D_GBMWSEGL.so.%{libversion} libemgdPVR2D_GBMWSEGL.so
204 ln -s -f libva.so.%{libversion} libva.so.1.0.12
205 ln -s -f libva.so.%{libversion} libva.so.1
206 ln -s -f libva.so.%{libversion} libva.so
207 popd
208
209
210 %clean
211 rm -rf $RPM_BUILD_ROOT
212
213 %post
214 # Kind of a hack, but RPM doesn't seem to remove the old libraries until after
215 # we've installed the new ones, so ldconfig will see the old libraries
216 # (which had an incorrect SONAME) and use them to overwrite our development
217 # symlinks, then remove the old libraries they were pointing at.
218 rm -f /usr/lib/libGLES_CM.so.1.1.*
219 rm -f /usr/lib/libGLESv2.so.1.1.*
220 rm -f /usr/lib/libEGL.so.1.1.*
221
222 /sbin/ldconfig
223
224 mkdir -p /usr/lib/systemd/system/multi-user.target.wants/
225 pushd /usr/lib/systemd/system/multi-user.target.wants/
226 ln -sf ../emgd-bin.service emgd-bin.service
227 popd
228
229 if [ -x /bin/systemctl ]; then
230     /bin/systemctl daemon-reload >/dev/null 2>&1 || :
231     /bin/systemctl start emgd-bin.service > /dev/null 2>&1 || :
232 fi
233
234 %postun
235 /sbin/ldconfig
236 rm -f /usr/lib/systemd/system/multi-user.target.wants/emgd-bin.service
237 if [ -x /bin/systemctl ]; then
238     systemctl daemon-reload >/dev/null 2>&1 || :
239 fi
240
241
242 %preun
243 if [ -x /bin/systemctl ]; then
244     sytemctl stop emgd-bin.service >/dev/null 2>&1 || :
245 fi
246
247
248 %files common
249 %defattr(-,root,root,-)
250 %{_docdir}/%{name}/license.txt
251 %{_docdir}/%{name}/readme.txt
252 %doc %{_mandir}/man4/emgd*
253 %config(noreplace) /etc/powervr.ini
254 %{_libdir}/dri/*
255 %{_libdir}/lib*
256
257 %files x
258 %defattr(-,root,root,-)
259 %{_libdir}/xorg/*
260 %{_docdir}/%{name}/emgd-*.conf
261 /usr/libexec/emgd-bin.init
262 %{_libdir}/systemd/system/emgd-bin.service
263
264 %files devel
265 %defattr(-,root,root,-)
266 %{_includedir}/*
267 %{_libdir}/libEGL.so
268 %{_libdir}/libGLES_CM.so
269 %{_libdir}/libGLESv2.so
270 %{_libdir}/libOpenVG.so
271 %{_libdir}/libOpenVGU.so
272 %{_libdir}/libgbm.so
273 %{_libdir}/libwayland-egl.so
274 %{_libdir}/pkgconfig/*