/[packages]/updates/8/chromium-browser-stable/current/SPECS/chromium-browser-stable.spec
ViewVC logotype

Contents of /updates/8/chromium-browser-stable/current/SPECS/chromium-browser-stable.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1694977 - (show annotations) (download)
Mon Mar 1 09:46:36 2021 UTC (3 years ago) by ns80
File size: 26218 byte(s)
- new version 88.0.4324.182 (mga#28369)

1 # eu-strip crashes on chrome binary from this build
2 %define _enable_debug_packages 0
3 %global debug_package %{nil}
4 %global __debug_install_post %{nil}
5
6 %global use_clang 0
7 %global use_gold 0
8 %global warnings_as_errors 0
9 %global system_icu 1
10 %global system_openjpeg 1
11 %global system_libtiff 1
12 %global system_libvpx 0
13 %global system_dav1d 1
14 %global system_re2 1
15 %global system_fontconfig 1
16 # system libevent causes the renderer to get stuck
17 %global system_libevent 0
18
19 %if %{use_gold}
20 %define gn_gold use_gold=true
21 %else
22 %define gn_gold use_gold=false
23 %endif
24 %if %{system_icu}
25 %define gn_icu icu
26 %endif
27 %if %{system_libvpx}
28 %define gn_libvpx libvpx
29 %endif
30 %if %{system_dav1d}
31 %define gn_dav1d dav1d
32 %endif
33 %if %{system_re2}
34 %define gn_re2 re2
35 %endif
36 %if %{system_fontconfig}
37 %define gn_fontconfig fontconfig
38 %endif
39 %if %{system_libevent}
40 %define gn_libevent libevent
41 %endif
42 %if %{use_clang}
43 %define gn_clang is_clang=true
44 %else
45 %define gn_clang is_clang=false
46 %endif
47 %if %{warnings_as_errors}
48 %else
49 %define gn_warnings_as_errors treat_warnings_as_errors=false
50 %endif
51
52 %define crname chromium-browser
53 %define _crdir %{_libdir}/%{crname}
54 %define __requires_exclude_from ^%{_crdir}/libwidevinecdmadapter.so$
55
56 # eol 'fix' corrupts some .bin
57 %define dont_fix_eol 1
58
59 # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys
60 # Note: these are for Mageia use ONLY.
61 # For your own builds, please get your own set of keys.
62 %define google_api_key AIzaSyDhhIHB_kQZodiWr8yDAm8E3GwEyiXmuDU
63
64 Name: chromium-browser-stable
65 Version: 88.0.4324.182
66 Release: %mkrel 1
67 Summary: A fast webkit-based web browser
68 Group: Networking/WWW
69 License: BSD, LGPL
70 URL: http://www.chromium.org/Home
71 # http://omahaproxy.appspot.com/
72 # http://googlechromereleases.blogspot.com/
73 Source0: http://commondatastorage.googleapis.com/chromium-browser-official/chromium-%{version}.tar.xz
74 Source1: chromium-wrapper
75 Source2: chromium-browser.desktop
76 Source3: pkg_resources.tar.gz
77 # from gentoo: compiler setup
78 Patch1: chromium-compiler-r4.patch
79 # fix googleisms in man page
80 Patch2: chromium-mageia.patch
81 # (ns80) use a patch rather than a source file for widevine
82 Patch3: chromium-71.0.3578.98-widevine-r3.patch
83 # (ns80) remove unrar
84 Patch4: chromium-norar.patch
85 # (cjw) Recognize mimetypes for matroska (.mkv) and AVI (.avi) formats (video/x-matroska and audio/x-matroska, video/x-msvideo) + handle A52 "AC3" and DTS compressed audio.
86 Patch6: chromium-55-extra-media.patch
87 # (cjw) [1/2] Recognize mimetypes for WMV (.wmv), FLV (.flv) and MPEG (.mpg) videos
88 Patch7: chromium-40-wmvflvmpg.patch
89 # (cjw) [2/2] Handle more video codecs.
90 Patch8: chromium-40-sorenson-spark.patch
91 # (cjw) disable external components -- this stops chromium from downloading hotword stuff, for example
92 Patch10: chromium-45-no-external-components.patch
93 # (debian) disable third party cookies by default
94 Patch11: chromium-third-party-cookies-off-by-default.patch
95 # (cjw) fix build error due to android-specific code
96 Patch19: chromium-50-codec-warnings.patch
97 # (cjw) remove assertion on "chromium" branding in combination with enabled "proprietary codecs"
98 Patch22: chromium-54-proprietary-codecs-assert.patch
99 # (cjw) disable werror for a compilation warning that causes the build to fail
100 Patch23: chromium-53-bignum-werror-fix.patch
101 # (cjw) add -Wno-error=depecated-declarations because ffmpeg deprecations cause the build to fail
102 Patch24: chromium-53-ffmpeg-no-deprecation-errors.patch
103 # (cjw) link several libraries directly instead of loading them using dlopen()
104 Patch27: chromium-53-link-libgio-libpci-libudev-libbrlapi.patch
105 # (cjw) add missing unbundle gn files (1)
106 Patch28: chromium-53-gn-system-icu-jsoncpp.patch
107 # (cjw) add missing unbundle gn files (2)
108 Patch29: chromium-53-gn-system-opus.patch
109 %if %{system_libtiff}
110 # (cjw) build pdfium with system libtiff
111 Patch30: chromium-52-pdfium-system-libtiff-libpng.patch
112 %endif
113 %if %{system_openjpeg}
114 # (cjw) fix pdfium build with system openjpeg
115 Patch31: chromium-74-pdfium-system-libopenjpeg2.patch
116 %endif
117 # (cjw) system libvpx
118 Patch32: chromium-60-system-libvpx.patch
119 # (cjw) fix build with current glib...
120 Patch36: chromium-58-glib.patch
121 # (cjw) use system nodejs to fix build
122 Patch37: chromium-58-system-nodejs.patch
123 # (cjw) use system closure compiler
124 Patch38: chromium-72-system-closure-compiler.patch
125 # (cjw) fix build with system icu
126 Patch39: chromium-77-system-icu.patch
127 # (cjw) force use of python2, since python3 does not work
128 Patch40: chromium-77-python2.patch
129 # (cjw) support using system dav1d
130 Patch41: chromium-79-system-dav1d.patch
131
132 # (cjw) gcc errors: redefined macros
133 Patch80: chromium-gcc-macro-redefined.patch
134 # (cjw) gcc errors: include files
135 Patch81: chromium-gcc-includes.patch
136 # (cjw) gcc warnings: suggested parentheses
137 Patch82: chromium-gcc-parentheses.patch
138 # (cjw) gcc warnings: unused variables or functions
139 Patch83: chromium-gcc-unused.patch
140 # (cjw) gcc warnings: missing casts
141 Patch84: chromium-gcc-type-errors.patch
142 # (cjw) gcc errors: multiple character literals
143 Patch85: chromium-gcc-character-literals.patch
144 # (cjw) gcc warnings: "missing" return for enum switch statements
145 Patch86: chromium-gcc-switch-fall-through-return-missing.patch
146 # (cjw) gcc constexpr problems
147 Patch87: chromium-gcc-constexpr.patch
148 # (cjw) gcc anonymous namespace problems
149 Patch88: chromium-gcc-anonymous-namespace.patch
150 # (cjw) gcc noexcept problems
151 Patch89: chromium-gcc-noexcept.patch
152 # (cjw) gcc warnings: variable assigned in own assignment rhs
153 Patch90: chromium-gcc-double-assignment.patch
154 # (cjw) gcc warnings: optional constructs
155 Patch91: chromium-gcc-optional.patch
156 # (cjw) gcc warnings: uninitialized variables
157 Patch92: chromium-gcc-uninitialized.patch
158 # (cjw) gcc - unclear...
159 Patch93: chromium-gcc-unsorted.patch
160 # (cjw) gcc disabled warnings
161 %if !%{use_clang}
162 Patch94: chromium-gcc-disabled-warnings.patch
163 %endif
164
165 # (cjw) alignment problems
166 Patch188: chromium-68-gcc8.patch
167 # (cjw) fix gn bootstrapping with gcc
168 Patch190: chromium-69-gn-bootstrap.patch
169 # (cjw) build fixes for 64-bit arm
170 Patch193: chromium-70-aarch64.patch
171 # (cjw) gn bootstrap fix
172 Patch195: chromium-72-gn-bootstrap.patch
173 # (cjw) fix i586 build
174 Patch198: chromium-72-i586.patch
175 # (cjw) fix build with system zlib
176 Patch240: chromium-85-system-zlib.patch
177 # (cjw) fix angle-vulkan build with system zlib
178 Patch243: chromium-87-system-zlib.patch
179 # (cjw) fix broken system libvpx build
180 Patch244: chromium-88-system-libvpx.patch
181 # fix broken system icu build, from https://github.com/stha09/chromium-patches
182 Patch245: chromium-88-ideographicSpaceCharacter.patch
183 # (cjw) fix i586 build
184 Patch248: chromium-87-i586.patch
185 # https://github.com/schnitzeltony/meta-browser/blob/master/recipes-browser/chromium/files/0003-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch
186 Patch249: 0003-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch
187
188 Provides: %{crname}
189 Obsoletes: chromium-browser-unstable < 26.0.1410.51
190 Obsoletes: chromium-browser-beta < 26.0.1410.51
191 Obsoletes: chromium-browser < 1:9.0.597.94
192 BuildRequires: bison
193 BuildRequires: flex
194 BuildRequires: gperf
195 %if %{system_icu}
196 BuildRequires: icu
197 %endif
198 BuildRequires: ninja
199 BuildRequires: python2
200 BuildRequires: yasm
201 BuildRequires: bzip2-devel
202 #BuildRequires: closure-compiler
203 BuildRequires: cups-devel
204 BuildRequires: elfutils-devel
205 BuildRequires: ffmpeg-devel
206 BuildRequires: glib2-devel
207 BuildRequires: gtk3-devel
208 BuildRequires: libatomic-devel
209 %if %{system_libevent}
210 BuildRequires: libevent-devel
211 %endif
212 BuildRequires: libmesagl-devel
213 BuildRequires: libpam-devel
214 BuildRequires: libpulseaudio-devel
215 BuildRequires: mesaglesv2-devel
216 %if %mgaver >= 6
217 BuildRequires: nodejs
218 %endif
219 BuildRequires: osmesa-devel
220 #BuildRequires: protobuf-devel
221 BuildRequires: snappy-devel
222 BuildRequires: perl(Switch)
223 BuildRequires: pkgconfig(alsa)
224 BuildRequires: pkgconfig(atk)
225 %if %{system_dav1d}
226 BuildRequires: pkgconfig(dav1d)
227 %endif
228 BuildRequires: pkgconfig(dbus-glib-1)
229 BuildRequires: pkgconfig(expat)
230 BuildRequires: pkgconfig(flac)
231 %if %{system_fontconfig}
232 BuildRequires: pkgconfig(fontconfig)
233 %endif
234 BuildRequires: pkgconfig(freetype2)
235 BuildRequires: pkgconfig(gbm)
236 BuildRequires: pkgconfig(glu)
237 BuildRequires: pkgconfig(gnome-keyring-1)
238 BuildRequires: pkgconfig(gnutls)
239 %if %mgaver >= 7
240 BuildRequires: pkgconfig(harfbuzz)
241 %endif
242 %if %{system_icu}
243 BuildRequires: pkgconfig(icu-i18n)
244 %endif
245 BuildRequires: pkgconfig(jsoncpp)
246 BuildRequires: pkgconfig(libcap)
247 BuildRequires: pkgconfig(libdrm)
248 BuildRequires: pkgconfig(libexif)
249 BuildRequires: pkgconfig(libjpeg)
250 BuildRequires: pkgconfig(libopenjp2)
251 BuildRequires: pkgconfig(libpci)
252 BuildRequires: pkgconfig(libpng)
253 %if %{system_libtiff}
254 BuildRequires: pkgconfig(libtiff-4)
255 %endif
256 BuildRequires: pkgconfig(libusb-1.0)
257 %if %{system_libvpx}
258 BuildRequires: pkgconfig(libvpx)
259 %endif
260 BuildRequires: pkgconfig(libwebp)
261 BuildRequires: pkgconfig(libxml-2.0)
262 BuildRequires: pkgconfig(libxslt)
263 BuildRequires: pkgconfig(minizip)
264 BuildRequires: pkgconfig(nspr)
265 BuildRequires: pkgconfig(nss)
266 BuildRequires: pkgconfig(opus)
267 %if %{system_re2}
268 BuildRequires: pkgconfig(re2)
269 %endif
270 BuildRequires: pkgconfig(speech-dispatcher)
271 BuildRequires: pkgconfig(speex)
272 BuildRequires: pkgconfig(udev)
273 BuildRequires: pkgconfig(xscrnsaver)
274 BuildRequires: pkgconfig(xt)
275 BuildRequires: pkgconfig(xtst)
276 BuildRequires: pkgconfig(zlib)
277 %if %{use_clang}
278 BuildRequires: clang
279 %endif
280
281 # Unused but building gn wants it to be present
282 BuildRequires: pkgconfig(gconf-2.0)
283 BuildRequires: git
284 ExclusiveArch: i586 x86_64
285 # aarch64 does not build without fewer than default parallel jobs config
286 # armv5tl armv7hl
287
288 %description
289 Chromium is a browser that combines a minimal design with sophisticated
290 technology to make the web faster, safer, and easier.
291
292 For certain media playback features - AAC decoding - this package
293 currently assumes decoder support is available, while that is only true if
294 the 'tainted' variety of the libavcodec package is installed. When the 'core'
295 variety of libavcodec is installed, chromium may output noise for AAC audio.
296
297 %ifarch %{ix86}
298 The i586 build of this package does not work on machines that do not
299 support the SSE2 instruction set extension.
300 %endif
301
302 %package -n chromium-browser
303 Summary: A fast webkit-based web browser (transition package)
304 Epoch: 1
305 Group: Networking/WWW
306 Requires: %{name} = %{version}-%{release}
307
308 %description -n chromium-browser
309 Chromium is a browser that combines a minimal design with sophisticated
310 technology to make the web faster, safer, and easier.
311
312 This is a transition package that installs the stable channel Chromium
313 browser.
314
315 %prep
316 %setup -q -n chromium-%{version}
317 %autopatch -p1
318
319 # files we do not want from upstream source bundles
320 rm -r --interactive=never third_party/breakpad/breakpad/src/processor/testdata/
321 rm -r --interactive=never third_party/breakpad/breakpad/src/tools
322 find chrome/common/extensions/docs/ -type f \! -regex '.*\.\(gn\|gni\)' -delete
323 rm -r --interactive=never chrome/test/data/{android,app_shim,apptest,ash,autofill,automation,automation_proxy_snapshot,banners,bookmark_html_reader,bookmarks,captive_portal,chromedriver,chrome_endure,chromeos,click_modifier,components,constrained_files,content,content_setting_bubble,devtools,diagnostics,dom_automation,dom_checker,dom_distiller,downloads,drive_first_run,dromaeo,durable,edge_database_reader,edge_profile,encoding_tests,extensions,fast_shutdown,fast_tab_close,favicon,feeds,file_select_helper,find_in_page,firefox320_profile,firefox35_profile,firefox3_nss,firefox3_nss_mac,firefox3_profile,firefox_profile,firefox_searchplugins,focus,frame_dom_access,frame_tree,ftp,fullscreen_mouselock,geolocation,google,gpu,History,image_decoding,image_search,import,indexeddb,inspector,installer,interstitial_page,login,native_messaging,navigation_interception,notifications,page_cycler,page_load_metrics,password,pepper,perf,permissions,plugin_power_saver,policy,popup_blocker,predictor,prefs,pref_service,prerender,printing,profiles,push_messaging,referrer_policy,safe_browsing,save_page,scroll,session_history,session_restore,sessions,settings,speech,ssl,subresource_filter,sunspider,sync,template_url_scraper,textinput,third_party,top_sites,translate,unit,v8_benchmark_v6,viewsource,web_app_info,webrtc,websocket,webui_test_resources.grd,whitelists,workers}
324 rm -r --interactive=never chrome/test/data/nacl/{pnacl_error_handling,cross_origin,irt_exception,pnacl_request_header,nonsfi,pnacl_url_loader,pnacl_hw_eh_disabled,pnacl_nmf_options,pnacl_dyncode_syscall_disabled,extension_mime_handler,ppapi_test_lib,bad,ppapi,manifest,pnacl_debug_url,extension_validation_cache,exit_status,progress_events,manifest_file,sysconf_nprocessors_onln,crash,pnacl_mime_type}
325 rmdir chrome/test/data/webui/{settings,extensions}/a11y
326 rmdir chrome/test/data/webui/settings/chromeos/app_management
327 rmdir chrome/test/data/webui/{engagement,extensions,history,net_internals}
328 rm -r --interactive=never components/test/data/update_client/jebgalgnebhfojomionfpkfelancnnkf/component1.dll
329 rm -r --interactive=never content/test/data/
330 rm -r --interactive=never ppapi/native_client/tests/
331 rm -r --interactive=never third_party/apache-win32/
332 rm -r --interactive=never third_party/expat/{fuzz,include,src}
333 rm -r --interactive=never third_party/ffmpeg/*/*
334 rm -r --interactive=never third_party/flac/{include,src}
335 %if %{system_icu}
336 rm -r --interactive=never third_party/icu/{android,android_small,common,patches,source,chromeos,ios}
337 %endif
338 rm -r --interactive=never third_party/jsoncpp/source
339 rm -r --interactive=never third_party/lcov
340 %if %{system_libevent}
341 rm -r --interactive=never base/third_party/libevent/*/*
342 rm -r --interactive=never base/third_party/libevent/*.[ch]
343 %endif
344 %if %{system_libvpx}
345 rm -r --interactive=never third_party/libvpx/source/{libvpx,config}
346 %endif
347 rm -r --interactive=never third_party/libaom/source
348 %if %{system_dav1d}
349 rm -r --interactive=never third_party/dav1d/{libdav1d,version}
350 %endif
351 rm -r --interactive=never third_party/libjpeg_turbo/*.[ch]
352 rm -r --interactive=never third_party/libpng/*.[ch]
353 rm -r --interactive=never third_party/libxslt/{linux,mac,src,win32}
354 rm -r --interactive=never third_party/xdg-utils/tests/
355 rm -r --interactive=never third_party/zlib/{*.[ch],contrib/minizip}
356 rm -r --interactive=never native_client_sdk/src/tools/lib/tests/data
357 rm -r --interactive=never buildtools/third_party/eu-strip/bin
358 rm --interactive=never third_party/pdfium/third_party/libopenjpeg20/*.[ch]
359 rm -r --interactive=never third_party/pdfium/third_party/libpng16
360 %if %{system_libtiff}
361 rm --interactive=never third_party/pdfium/third_party/libtiff/*.[ch]
362 %endif
363 %if %{system_re2}
364 rm -r --interactive=never third_party/re2/src
365 %endif
366 %if %{system_fontconfig}
367 rm -r --interactive=never third_party/fontconfig/{src,include,chromium}
368 %endif
369 rm --interactive=never native_client/tools/redirector.exe
370 rm --interactive=never third_party/webrtc/data/voice_engine/stereo_rtp_files/rtpplay.exe
371 rm -r --interactive=never third_party/llvm
372 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/gles/t/SanOGLES-Gerbera.exe
373 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/gles/t/SanOGLES-PVRSDK.exe
374 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/gles/t/libGLES_CM.dll
375 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/gles/bob/bob
376 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/glut/SanOGLES
377 rm --interactive=never third_party/lzma_sdk/Executable/7za.exe
378 rm --interactive=never third_party/lzma_sdk/7zr.exe
379 rm --interactive=never third_party/breakpad/symupload.exe
380 rm -r --interactive=never third_party/catapult/third_party/google-endpoints/setuptools
381 rm -r --interactive=never third_party/catapult/third_party/vinn/third_party/v8
382 rm --interactive=never third_party/depot_tools/ninja.exe
383 rm --interactive=never third_party/depot_tools/ninja-linux32
384 rm --interactive=never third_party/depot_tools/ninja-linux64
385 rm -r --interactive=never native_client/tools/hermetic_cygwin
386 rm -r --interactive=never base/test/data/pe_image/
387 rm -r --interactive=never base/test/data/file_version_info_unittest
388 rm -r --interactive=never chrome/chrome_cleaner/test/resources/signed_dll
389 rm --interactive=never third_party/crashpad/crashpad/handler/win/z7_test.dll
390 rm -r --interactive=never third_party/crashpad/crashpad/snapshot/elf/elf_image_reader_fuzzer_corpus
391 rm -r --interactive=never third_party/boringssl/src/util/ar/testdata
392 rm -r --interactive=never third_party/pyelftools/test/testfiles_for_unittests
393 rm -r --interactive=never third_party/pyelftools/test/external_tools
394 rm -r --interactive=never third_party/pyelftools/test/testfiles_for_readelf
395 rm -r --interactive=never third_party/pyelftools/examples
396 rm -r --interactive=never third_party/skia/platform_tools/android/bin
397 rm --interactive=never third_party/nasm/travis/test/tmap.o.t
398 rm -r --interactive=never components/test/data/update_client
399 rm -r --interactive=never build/android/tests/symbolize
400
401 rm --interactive=never third_party/skia/platform_tools/android/apps/gradle/wrapper/gradle-wrapper.jar
402 rm --interactive=never third_party/libphonenumber/dist/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar
403 rm --interactive=never third_party/libphonenumber/dist/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar
404 rm -r --interactive=never third_party/libphonenumber/dist/java/demo/war/WEB-INF/lib
405 rm -r --interactive=never third_party/libphonenumber/dist/java/lib
406 rm --interactive=never third_party/webrtc/examples/androidapp/third_party/autobanh/lib/autobanh.jar
407 rm --interactive=never third_party/closure_compiler/compiler/compiler.jar
408 rm --interactive=never third_party/flatbuffers/src/android/gradle/wrapper/gradle-wrapper.jar
409 rm --interactive=never third_party/flatbuffers/src/samples/android/gradle/wrapper/gradle-wrapper.jar
410 rm --interactive=never third_party/devtools-frontend/src/scripts/closure/compiler.jar
411 rm --interactive=never third_party/devtools-frontend/src/scripts/closure/closure_runner/closure_runner.jar
412 rm --interactive=never third_party/devtools-frontend/src/scripts/jsdoc_validator/jsdoc_validator.jar
413 rm --interactive=never third_party/gradle_wrapper/gradle/wrapper/gradle-wrapper.jar
414 rm --interactive=never third_party/webgl/src/conformance-suites/2.0.0/deqp/compiler.jar
415
416 %if %{system_libevent}
417 find base/third_party/libevent -type f \! -regex '.*\.\(gn\|gni\|isolate\)' -delete
418 %endif
419
420 %if %{system_icu}
421 # Remove bundled ICU; its header files appear to get picked up instead of
422 # the system ones, leading to errors during the final link stage.
423 # https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/BNGvJc08B6Q
424 find third_party/icu -type f \! -regex '.*\.\(gn\|gni\|isolate\)' -delete
425 %endif
426
427 # Hard code extra version
428 FILE=chrome/common/channel_info_posix.cc
429 sed -i.orig -re 's/char\s*\*(.*)getenv\("CHROME_VERSION_EXTRA"\)/char const *\1"%{product_vendor} %{product_version}"/' $FILE
430 if diff -u $FILE $FILE.orig >/dev/null; then
431 exit 1
432 fi
433
434 # version taken from: strings opt/google/chrome-unstable/chrome | grep -C 1 " (version:"
435 #define widevine_version 1.4.8.1008
436 #for chrome_arch in ia32 x64; do
437 # mkdir -p third_party/widevine/cdm/linux/${chrome_arch}
438 # sed -e "s/@WIDEVINE_VERSION@/%{widevine_version}/" %{SOURCE4} > third_party/widevine/cdm/linux/${chrome_arch}/widevine_cdm_version.h
439 #done
440
441 %build
442 %define unbundle_list ffmpeg flac %{?gn_fontconfig} libwebp libxml libxslt snappy %{?gn_libvpx} libpng %{?gn_icu} zlib jsoncpp opus %{?gn_re2} libdrm %{?gn_dav1d} %{?gn_libevent}
443 # handled by upstream regular build scripts: freetype harfbuzz-ng
444 # mesa
445
446 # v NO TABS IN HERE!
447 %define gn_config use_sysroot=false \
448 system_libdir="%{_lib}" \
449 icu_use_data_file=true \
450 enable_nacl=false \
451 is_nacl_glibc=false \
452 linux_use_bundled_binutils=false \
453 custom_toolchain="//build/toolchain/linux/unbundle:default" \
454 host_toolchain="//build/toolchain/linux/unbundle:default" \
455 proprietary_codecs=true \
456 linux_link_libudev = true \
457 linux_link_libspeechd = true \
458 enable_platform_ac3_eac3_audio = true \
459 enable_mse_mpeg2ts_stream_parser=true \
460 enable_platform_hevc=true \
461 use_system_libjpeg=true \
462 use_system_libopenjpeg2=true \
463 use_libjpeg_turbo=false \
464 enable_widevine=true \
465 pdf_enable_xfa=true \
466 gtk_version=3 \
467 fatal_linker_warnings=false \
468 use_libpci = true \
469 use_pulseaudio=true \
470 use_allocator="none" \
471 is_debug=false \
472 %{?gn_clang} \
473 clang_use_chrome_plugins=false \
474 use_lld=false \
475 %{?gn_gold} \
476 use_system_freetype=true \
477 use_system_harfbuzz=true \
478 use_system_libpng=true \
479 enable_dav1d_decoder=true enable_libaom_decoder=false \
480 use_custom_libcxx=false \
481 closure_compile=false \
482 enable_mojom_closure_compile=false \
483 enable_js_type_check=false \
484 %{?gn_warnings_as_errors} \
485 google_api_key="%{google_api_key}"
486
487
488 # enable_browser_cdms=true \
489
490 build/linux/unbundle/replace_gn_files.py --system-libraries %{unbundle_list}
491 third_party/libaddressinput/chromium/tools/update-strings.py
492
493 %set_build_flags
494 %if %{use_clang}
495 CC=clang; export CC
496 CXX=clang++; export CXX
497 %else
498 CC=%{__cc}; export CC
499 CXX=%{__cxx}; export CXX
500 %endif
501 AR=%{__ar}; export AR
502 NM=%{__nm}; export NM
503 LD="%{__cxx}"; export LD
504 %if %{use_gold}
505 LD="$LD -fuse-ld=gold"
506 %endif
507
508 # filter out -g from CFLAGS and CXXFLAGS to fix builds
509 CFLAGS=$(echo "$CFLAGS"|sed -e 's/-g //')
510 CXXFLAGS=$(echo "$CXXFLAGS"|sed -e 's/-g //')
511 CXXFLAGS="$CXXFLAGS -faligned-new -Wno-attributes"
512 %if %{use_clang}
513 CFLAGS="$CFLAGS -Wno-error=unused-result"
514 CXXFLAGS="$CXXFLAGS -Wno-error=deprecated-declarations"
515 %else
516 CXXFLAGS="$CXXFLAGS -Wno-error=class-memaccess -Wno-error=unknown-pragmas -Wno-error=array-bounds"
517 %endif
518 %ifarch %ix86
519 %if %{use_gold}
520 LDFLAGS="$LDFLAGS -Wl,--no-keep-files-mapped"
521 %endif
522 %endif
523
524 %ifarch %{ix86}
525 CFLAGS="$CFLAGS -msse2"
526 CXXFLAGS="$CXXFLAGS -msse2"
527 %endif
528
529 python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args='%{gn_config}'
530
531 out/Release/gn gen --script-executable=/usr/bin/python2 --args='%{gn_config}' out/Release
532
533 # python...
534 mkdir out/Release/python2_root
535 cp -r %{python3_sitelib}/xcbgen out/Release/python2_root/
536 cp -r %{python3_sitelib}/setuptools out/Release/python2_root/
537 pushd out/Release/python2_root/
538 tar xf %{SOURCE3}
539 popd
540
541 %if !%{use_gold}
542 # ld.bfd needs lots of file descriptors to link chrome
543 ulimit -n 4096
544 %endif
545
546 pushd out/Release
547 env PYTHONPATH=${PWD}/python2_root ninja %{_smp_mflags} chrome chrome_sandbox
548 popd
549
550 # man page
551 sed -e "s/@@PACKAGE@@/chromium/" -e "s/@@MENUNAME@@/Chromium Web Browser/" chrome/app/resources/manpage.1.in >out/Release/chromium.1
552
553 %install
554 ls out/Release
555 mkdir -p %{buildroot}%{_bindir}
556 mkdir -p %{buildroot}%{_crdir}/locales
557 mkdir -p %{buildroot}%{_crdir}/themes
558 mkdir -p %{buildroot}%{_mandir}/man1
559 install -m 755 %{_sourcedir}/chromium-wrapper %{buildroot}%{_crdir}/
560 install -m 755 out/Release/chrome %{buildroot}%{_crdir}/
561 install -m 4755 out/Release/chrome_sandbox %{buildroot}%{_crdir}/chrome-sandbox
562 install -m 644 out/Release/chromium.1 %{buildroot}%{_mandir}/man1/%{crname}.1
563 install -m 644 out/Release/chrome_100_percent.pak %{buildroot}%{_crdir}/
564 install -m 644 out/Release/chrome_200_percent.pak %{buildroot}%{_crdir}/
565 install -m 644 out/Release/resources.pak %{buildroot}%{_crdir}/
566 install -m 644 out/Release/snapshot_blob.bin %{buildroot}%{_crdir}/
567 install -m 755 out/Release/mksnapshot %{buildroot}%{_crdir}/
568 install -m 644 out/Release/locales/*.pak %{buildroot}%{_crdir}/locales/
569 install -m 644 out/Release/v8_context_snapshot.bin %{buildroot}%{_crdir}/
570 install -m 755 out/Release/libEGL.so %{buildroot}%{_crdir}/
571 install -m 755 out/Release/libGLESv2.so %{buildroot}%{_crdir}/
572 ln -s %{_crdir}/chromium-wrapper %{buildroot}%{_bindir}/%{crname}
573
574 %ifarch %{ix86} x86_64
575 mkdir -p %{buildroot}%{_crdir}/swiftshader
576 install -m 755 out/Release/swiftshader/*.so %{buildroot}%{_crdir}/swiftshader/
577 %endif
578
579 find out/Release/resources/ -name "*.d" -exec rm {} \;
580 cp -r out/Release/resources %{buildroot}%{_crdir}
581
582 # desktop file
583 mkdir -p %{buildroot}%{_datadir}/applications
584 install -m 644 %{_sourcedir}/%{crname}.desktop %{buildroot}%{_datadir}/applications/
585
586 %if %{system_icu}
587 # symlink to ICU data file
588 ICUDATADIR=$(icuinfo | grep \"icudata.path\" | sed -re 's/^.*>(.*)<.*$/\1/')
589 ICUDATANAME=$(icuinfo | grep \"icudata.name\" | sed -re 's/^.*>(.*)<.*$/\1/')
590 ICUDATAFILE=$(realpath --relative-to=%{_crdir}/ ${ICUDATADIR}/${ICUDATANAME}.dat)
591 ln -s ${ICUDATAFILE} %{buildroot}%{_crdir}/icudtl.dat
592 %else
593 install -m 644 out/Release/icudtl.dat %{buildroot}%{_crdir}/
594 %endif
595
596 # icon
597 for i in 22_mono 24 32 48 64 128 256; do
598 mkdir -p %{buildroot}%{_iconsdir}/hicolor/${i}x${i}/apps
599 if [ -f chrome/app/theme/chromium/product_logo_$i.png ]; then
600 install -m 644 chrome/app/theme/chromium/product_logo_$i.png \
601 %{buildroot}%{_iconsdir}/hicolor/${i}x${i}/apps/%{crname}.png
602 else
603 install -m 644 chrome/app/theme/chromium/linux/product_logo_$i.xpm \
604 %{buildroot}%{_iconsdir}/hicolor/${i}x${i}/apps/%{crname}.xpm
605 fi
606 done
607
608 %files -n chromium-browser
609
610 %files
611 %{_bindir}/%{crname}
612 %dir %{_crdir}
613 %{_crdir}/chromium-wrapper
614 %{_crdir}/chrome
615 %attr(4755,root,root) %{_crdir}/chrome-sandbox
616 %{_crdir}/icudtl.dat
617 %{_crdir}/locales
618 %{_crdir}/snapshot_blob.bin
619 %{_crdir}/resources.pak
620 %{_crdir}/resources
621 %{_crdir}/chrome_100_percent.pak
622 %{_crdir}/chrome_200_percent.pak
623 %{_crdir}/mksnapshot
624 %{_crdir}/themes
625 %{_crdir}/libEGL.so
626 %{_crdir}/libGLESv2.so
627 %ifarch %{ix86} x86_64
628 %{_crdir}/swiftshader
629 %endif
630 %{_crdir}/v8_context_snapshot.bin
631 %{_mandir}/man1/%{crname}*
632 %{_datadir}/applications/*.desktop
633 %{_iconsdir}/hicolor/*/apps/%{crname}.png
634 %{_iconsdir}/hicolor/*/apps/%{crname}.xpm

  ViewVC Help
Powered by ViewVC 1.1.30