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

Contents of /cauldron/chromium-browser-stable/current/SPECS/chromium-browser-stable.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1721374 - (show annotations) (download)
Wed May 5 05:33:25 2021 UTC (2 years, 11 months ago) by cjw
File size: 26532 byte(s)
- 90.0.4430.93

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 1
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: 90.0.4430.93
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 constexpr problems
145 Patch87: chromium-gcc-constexpr.patch
146 # (cjw) gcc anonymous namespace problems
147 Patch88: chromium-gcc-anonymous-namespace.patch
148 # (cjw) gcc noexcept problems
149 Patch89: chromium-gcc-noexcept.patch
150 # (cjw) gcc warnings: variable assigned in own assignment rhs
151 Patch90: chromium-gcc-double-assignment.patch
152 # (cjw) gcc warnings: optional constructs
153 Patch91: chromium-gcc-optional.patch
154 # (cjw) gcc warnings: uninitialized variables
155 Patch92: chromium-gcc-uninitialized.patch
156 # (cjw) gcc - unclear...
157 Patch93: chromium-gcc-unsorted.patch
158 # (cjw) gcc disabled warnings
159 %if !%{use_clang}
160 Patch94: chromium-gcc-disabled-warnings.patch
161 Patch95: chromium-gcc-va_args.patch
162 %endif
163
164 # (cjw) alignment problems
165 Patch188: chromium-68-gcc8.patch
166 # (cjw) fix gn bootstrapping with gcc
167 Patch190: chromium-69-gn-bootstrap.patch
168 # (cjw) build fixes for 64-bit arm
169 Patch193: chromium-70-aarch64.patch
170 # (cjw) gn bootstrap fix
171 Patch195: chromium-72-gn-bootstrap.patch
172 # (cjw) fix i586 build
173 Patch198: chromium-72-i586.patch
174 # (cjw) fix build with system zlib
175 Patch240: chromium-85-system-zlib.patch
176 # (cjw) fix angle-vulkan build with system zlib
177 Patch243: chromium-87-system-zlib.patch
178 # (cjw) fix broken system libvpx build
179 Patch244: chromium-88-system-libvpx.patch
180 # (cjw) fix i586 build
181 Patch248: chromium-87-i586.patch
182 # https://github.com/schnitzeltony/meta-browser/blob/master/recipes-browser/chromium/files/0003-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch
183 Patch249: 0003-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch
184 # (ns80) try to fix mga#28631
185 Patch250: chromium-89-EnumTable-crash.patch
186
187 # Patches from Arch Linux
188 Patch300: chromium-glibc-2.33.patch
189 #Patch301: chromium-fix-libva-redef.patch
190
191 Provides: %{crname}
192 Obsoletes: chromium-browser-unstable < 26.0.1410.51
193 Obsoletes: chromium-browser-beta < 26.0.1410.51
194 Obsoletes: chromium-browser < 1:9.0.597.94
195 BuildRequires: bison
196 BuildRequires: flex
197 BuildRequires: gperf
198 %if %{system_icu}
199 BuildRequires: icu
200 %endif
201 BuildRequires: ninja
202 BuildRequires: python2
203 BuildRequires: yasm
204 BuildRequires: bzip2-devel
205 #BuildRequires: closure-compiler
206 BuildRequires: cups-devel
207 BuildRequires: elfutils-devel
208 BuildRequires: ffmpeg-devel
209 BuildRequires: glib2-devel
210 BuildRequires: gtk3-devel
211 BuildRequires: libatomic-devel
212 %if %{system_libevent}
213 BuildRequires: libevent-devel
214 %endif
215 BuildRequires: libmesagl-devel
216 BuildRequires: libpam-devel
217 BuildRequires: libpulseaudio-devel
218 BuildRequires: mesaglesv2-devel
219 %if %mgaver >= 6
220 BuildRequires: nodejs
221 %endif
222 BuildRequires: osmesa-devel
223 #BuildRequires: protobuf-devel
224 BuildRequires: snappy-devel
225 BuildRequires: perl(Switch)
226 BuildRequires: pkgconfig(alsa)
227 BuildRequires: pkgconfig(atk)
228 %if %{system_dav1d}
229 BuildRequires: pkgconfig(dav1d)
230 %endif
231 BuildRequires: pkgconfig(dbus-glib-1)
232 BuildRequires: pkgconfig(expat)
233 BuildRequires: pkgconfig(flac)
234 %if %{system_fontconfig}
235 BuildRequires: pkgconfig(fontconfig)
236 %endif
237 BuildRequires: pkgconfig(freetype2)
238 BuildRequires: pkgconfig(gbm)
239 BuildRequires: pkgconfig(glu)
240 BuildRequires: pkgconfig(gnome-keyring-1)
241 BuildRequires: pkgconfig(gnutls)
242 %if %mgaver >= 7
243 BuildRequires: pkgconfig(harfbuzz)
244 %endif
245 %if %{system_icu}
246 BuildRequires: pkgconfig(icu-i18n)
247 %endif
248 BuildRequires: pkgconfig(jsoncpp)
249 BuildRequires: pkgconfig(libcap)
250 BuildRequires: pkgconfig(libdrm)
251 BuildRequires: pkgconfig(libexif)
252 BuildRequires: pkgconfig(libjpeg)
253 BuildRequires: pkgconfig(libopenjp2)
254 BuildRequires: pkgconfig(libpci)
255 BuildRequires: pkgconfig(libpng)
256 %if %{system_libtiff}
257 BuildRequires: pkgconfig(libtiff-4)
258 %endif
259 BuildRequires: pkgconfig(libusb-1.0)
260 %if %{system_libvpx}
261 BuildRequires: pkgconfig(libvpx)
262 %endif
263 BuildRequires: pkgconfig(libwebp)
264 BuildRequires: pkgconfig(libxml-2.0)
265 BuildRequires: pkgconfig(libxslt)
266 BuildRequires: pkgconfig(minizip)
267 BuildRequires: pkgconfig(nspr)
268 BuildRequires: pkgconfig(nss)
269 BuildRequires: pkgconfig(opus)
270 %if %{system_re2}
271 BuildRequires: pkgconfig(re2)
272 %endif
273 BuildRequires: pkgconfig(speech-dispatcher)
274 BuildRequires: pkgconfig(speex)
275 BuildRequires: pkgconfig(udev)
276 BuildRequires: pkgconfig(xscrnsaver)
277 BuildRequires: pkgconfig(xt)
278 BuildRequires: pkgconfig(xtst)
279 BuildRequires: pkgconfig(zlib)
280 %if %{use_clang}
281 BuildRequires: clang
282 %endif
283
284 # Unused but building gn wants it to be present
285 BuildRequires: pkgconfig(gconf-2.0)
286 BuildRequires: git
287 ExclusiveArch: i586 x86_64
288 # aarch64 does not build without fewer than default parallel jobs config
289 # armv5tl armv7hl
290
291 %description
292 Chromium is a browser that combines a minimal design with sophisticated
293 technology to make the web faster, safer, and easier.
294
295 For certain media playback features - AAC decoding - this package
296 currently assumes decoder support is available, while that is only true if
297 the 'tainted' variety of the libavcodec package is installed. When the 'core'
298 variety of libavcodec is installed, chromium may output noise for AAC audio.
299
300 %ifarch %{ix86}
301 The i586 build of this package does not work on machines that do not
302 support the SSE2 instruction set extension.
303 %endif
304
305 %package -n chromium-browser
306 Summary: A fast webkit-based web browser (transition package)
307 Epoch: 1
308 Group: Networking/WWW
309 Requires: %{name} = %{version}-%{release}
310
311 %description -n chromium-browser
312 Chromium is a browser that combines a minimal design with sophisticated
313 technology to make the web faster, safer, and easier.
314
315 This is a transition package that installs the stable channel Chromium
316 browser.
317
318 %prep
319 %setup -q -n chromium-%{version}
320 %autopatch -p1
321
322 # files we do not want from upstream source bundles
323 rm -r --interactive=never third_party/breakpad/breakpad/src/processor/testdata/
324 rm -r --interactive=never third_party/breakpad/breakpad/src/tools
325 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,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,workers}
326 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}
327 rmdir chrome/test/data/webui/{settings,extensions}/a11y
328 rmdir chrome/test/data/webui/settings/chromeos/app_management
329 rmdir chrome/test/data/webui/{engagement,extensions,history,net_internals}
330 rm -r --interactive=never components/test/data/update_client/jebgalgnebhfojomionfpkfelancnnkf/component1.dll
331 rm -r --interactive=never content/test/data/
332 rm -r --interactive=never ppapi/native_client/tests/
333 rm -r --interactive=never third_party/apache-win32/
334 rm -r --interactive=never third_party/expat/{fuzz,include,src}
335 rm -r --interactive=never third_party/ffmpeg/*/*
336 rm -r --interactive=never third_party/flac/{include,src}
337 %if %{system_icu}
338 rm -r --interactive=never third_party/icu/{android,android_small,common,patches,source,chromeos,ios}
339 %endif
340 rm -r --interactive=never third_party/jsoncpp/source
341 rm -r --interactive=never third_party/lcov
342 %if %{system_libevent}
343 rm -r --interactive=never base/third_party/libevent/*/*
344 rm -r --interactive=never base/third_party/libevent/*.[ch]
345 %endif
346 %if %{system_libvpx}
347 rm -r --interactive=never third_party/libvpx/source/{libvpx,config}
348 %endif
349 rm -r --interactive=never third_party/libaom/source
350 %if %{system_dav1d}
351 rm -r --interactive=never third_party/dav1d/{libdav1d,version}
352 %endif
353 rm -r --interactive=never third_party/libjpeg_turbo/*.[ch]
354 rm -r --interactive=never third_party/libpng/*.[ch]
355 rm -r --interactive=never third_party/libxslt/{linux,mac,src,win32}
356 rm -r --interactive=never third_party/xdg-utils/tests/
357 rm -r --interactive=never third_party/zlib/{*.[ch],contrib/minizip}
358 rm -r --interactive=never native_client_sdk/src/tools/lib/tests/data
359 rm -r --interactive=never buildtools/third_party/eu-strip/bin
360 rm --interactive=never third_party/pdfium/third_party/libopenjpeg20/*.[ch]
361 rm -r --interactive=never third_party/pdfium/third_party/libpng16
362 %if %{system_libtiff}
363 rm --interactive=never third_party/pdfium/third_party/libtiff/*.[ch]
364 %endif
365 %if %{system_re2}
366 rm -r --interactive=never third_party/re2/src
367 %endif
368 %if %{system_fontconfig}
369 rm -r --interactive=never third_party/fontconfig/{src,include,chromium}
370 %endif
371 rm --interactive=never native_client/tools/redirector.exe
372 rm --interactive=never third_party/webrtc/data/voice_engine/stereo_rtp_files/rtpplay.exe
373 rm -r --interactive=never third_party/llvm
374 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/gles/t/SanOGLES-Gerbera.exe
375 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/gles/t/SanOGLES-PVRSDK.exe
376 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/gles/t/libGLES_CM.dll
377 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/gles/bob/bob
378 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/glut/SanOGLES
379 rm --interactive=never third_party/lzma_sdk/Executable/7za.exe
380 rm --interactive=never third_party/lzma_sdk/7zr.exe
381 rm --interactive=never third_party/breakpad/symupload.exe
382 rm -r --interactive=never third_party/catapult/third_party/google-endpoints/setuptools
383 rm -r --interactive=never third_party/catapult/third_party/vinn/third_party/v8
384 rm --interactive=never third_party/depot_tools/ninja.exe
385 rm --interactive=never third_party/depot_tools/ninja-linux32
386 rm --interactive=never third_party/depot_tools/ninja-linux64
387 rm -r --interactive=never native_client/tools/hermetic_cygwin
388 rm -r --interactive=never base/test/data/pe_image/
389 rm -r --interactive=never base/test/data/file_version_info_unittest
390 rm -r --interactive=never chrome/chrome_cleaner/test/resources/signed_dll
391 rm --interactive=never third_party/crashpad/crashpad/handler/win/z7_test.dll
392 rm -r --interactive=never third_party/crashpad/crashpad/snapshot/elf/elf_image_reader_fuzzer_corpus
393 rm -r --interactive=never third_party/boringssl/src/util/ar/testdata
394 rm -r --interactive=never third_party/pyelftools/test/testfiles_for_unittests
395 rm -r --interactive=never third_party/pyelftools/test/external_tools
396 rm -r --interactive=never third_party/pyelftools/test/testfiles_for_readelf
397 rm -r --interactive=never third_party/pyelftools/examples
398 rm -r --interactive=never third_party/skia/platform_tools/android/bin
399 rm --interactive=never third_party/nasm/travis/test/tmap.o.t
400 rm -r --interactive=never components/test/data/update_client
401 rm -r --interactive=never build/android/tests/symbolize
402
403 rm --interactive=never third_party/skia/platform_tools/android/apps/gradle/wrapper/gradle-wrapper.jar
404 rm --interactive=never third_party/libphonenumber/dist/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar
405 rm --interactive=never third_party/libphonenumber/dist/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar
406 rm -r --interactive=never third_party/libphonenumber/dist/java/demo/war/WEB-INF/lib
407 rm -r --interactive=never third_party/libphonenumber/dist/java/lib
408 rm --interactive=never third_party/webrtc/examples/androidapp/third_party/autobanh/lib/autobanh.jar
409 rm --interactive=never third_party/closure_compiler/compiler/compiler.jar
410 rm --interactive=never third_party/flatbuffers/src/android/gradle/wrapper/gradle-wrapper.jar
411 rm --interactive=never third_party/flatbuffers/src/samples/android/gradle/wrapper/gradle-wrapper.jar
412 rm --interactive=never third_party/gradle_wrapper/gradle/wrapper/gradle-wrapper.jar
413 rm --interactive=never third_party/webgl/src/conformance-suites/2.0.0/deqp/compiler.jar
414 rm --interactive=never third_party/grpc/src/examples/android/helloworld/gradle/wrapper/gradle-wrapper.jar
415 rm --interactive=never third_party/grpc/src/src/android/test/interop/gradle/wrapper/gradle-wrapper.jar
416 rm --interactive=never third_party/tflite/src/tensorflow/lite/java/ovic/demo/gradle/wrapper/gradle-wrapper.jar
417 rm --interactive=never third_party/tflite/src/tensorflow/lite/java/demo/gradle/wrapper/gradle-wrapper.jar
418 rm --interactive=never third_party/tflite/src/tensorflow/examples/android/gradle/wrapper/gradle-wrapper.jar
419 rm --interactive=never third_party/checkstyle/checkstyle-all.jar
420 rm --interactive=never build/android/stacktrace/java_deobfuscate.jar
421
422 %if %{system_libevent}
423 find base/third_party/libevent -type f \! -regex '.*\.\(gn\|gni\|isolate\)' -delete
424 %endif
425
426 %if %{system_icu}
427 # Remove bundled ICU; its header files appear to get picked up instead of
428 # the system ones, leading to errors during the final link stage.
429 # https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/BNGvJc08B6Q
430 find third_party/icu -type f \! -regex '.*\.\(gn\|gni\|isolate\)' -delete
431 %endif
432
433 # Hard code extra version
434 FILE=chrome/common/channel_info_posix.cc
435 sed -i.orig -re 's/char\s*\*(.*)getenv\("CHROME_VERSION_EXTRA"\)/char const *\1"%{product_vendor} %{product_version}"/' $FILE
436 if diff -u $FILE $FILE.orig >/dev/null; then
437 exit 1
438 fi
439
440 # version taken from: strings opt/google/chrome-unstable/chrome | grep -C 1 " (version:"
441 #define widevine_version 1.4.8.1008
442 #for chrome_arch in ia32 x64; do
443 # mkdir -p third_party/widevine/cdm/linux/${chrome_arch}
444 # sed -e "s/@WIDEVINE_VERSION@/%{widevine_version}/" %{SOURCE4} > third_party/widevine/cdm/linux/${chrome_arch}/widevine_cdm_version.h
445 #done
446
447 %build
448 %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}
449 # handled by upstream regular build scripts: freetype harfbuzz-ng
450 # mesa
451
452 # v NO TABS IN HERE!
453 %define gn_config use_sysroot=false \
454 system_libdir="%{_lib}" \
455 icu_use_data_file=true \
456 enable_nacl=false \
457 is_nacl_glibc=false \
458 linux_use_bundled_binutils=false \
459 custom_toolchain="//build/toolchain/linux/unbundle:default" \
460 host_toolchain="//build/toolchain/linux/unbundle:default" \
461 proprietary_codecs=true \
462 linux_link_libudev = true \
463 linux_link_libspeechd = true \
464 linux_link_libbrlapi = true \
465 linux_link_xlib = true \
466 enable_platform_ac3_eac3_audio = true \
467 enable_mse_mpeg2ts_stream_parser=true \
468 enable_platform_hevc=true \
469 use_system_libjpeg=true \
470 use_system_libopenjpeg2=true \
471 use_libjpeg_turbo=false \
472 enable_widevine=true \
473 pdf_enable_xfa=true \
474 gtk_version=3 \
475 fatal_linker_warnings=false \
476 use_libpci = true \
477 use_pulseaudio=true \
478 use_allocator="none" \
479 is_debug=false \
480 %{?gn_clang} \
481 clang_use_chrome_plugins=false \
482 use_lld=false \
483 %{?gn_gold} \
484 use_system_freetype=true \
485 use_system_harfbuzz=true \
486 use_system_libpng=true \
487 enable_dav1d_decoder=true enable_libaom=false \
488 use_custom_libcxx=false \
489 closure_compile=false \
490 enable_mojom_closure_compile=false \
491 enable_js_type_check=false \
492 %{?gn_warnings_as_errors} \
493 google_api_key="%{google_api_key}"
494
495
496 # enable_browser_cdms=true \
497
498 build/linux/unbundle/replace_gn_files.py --system-libraries %{unbundle_list}
499 third_party/libaddressinput/chromium/tools/update-strings.py
500
501 %set_build_flags
502 %if %{use_clang}
503 CC=clang; export CC
504 CXX=clang++; export CXX
505 %else
506 CC=%{__cc}; export CC
507 CXX=%{__cxx}; export CXX
508 %endif
509 AR=%{__ar}; export AR
510 NM=%{__nm}; export NM
511 LD="%{__cxx}"; export LD
512 %if %{use_gold}
513 LD="$LD -fuse-ld=gold"
514 %endif
515
516 # filter out -g from CFLAGS and CXXFLAGS to fix builds
517 CFLAGS=$(echo "$CFLAGS"|sed -e 's/-g //')
518 CXXFLAGS=$(echo "$CXXFLAGS"|sed -e 's/-g //')
519 CXXFLAGS="$CXXFLAGS -faligned-new -Wno-attributes -Wno-ignored-attributes"
520 %if %{use_clang}
521 CFLAGS="$CFLAGS -Wno-error=unused-result"
522 CXXFLAGS="$CXXFLAGS -Wno-error=deprecated-declarations"
523 %else
524 CXXFLAGS="$CXXFLAGS -Wno-error=class-memaccess -Wno-error=unknown-pragmas -Wno-error=array-bounds -Wno-return-type -std=gnu++17"
525 %endif
526 %ifarch %ix86
527 %if %{use_gold}
528 LDFLAGS="$LDFLAGS -Wl,--no-keep-files-mapped"
529 %endif
530 %endif
531
532 %ifarch %{ix86}
533 CFLAGS="$CFLAGS -msse2"
534 CXXFLAGS="$CXXFLAGS -msse2"
535 %endif
536
537 python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args='%{gn_config}'
538
539 out/Release/gn gen --script-executable=/usr/bin/python2 --args='%{gn_config}' out/Release
540
541 # python...
542 mkdir out/Release/python2_root
543 cp -r %{python3_sitelib}/xcbgen out/Release/python2_root/
544 cp -r %{python3_sitelib}/setuptools out/Release/python2_root/
545 pushd out/Release/python2_root/
546 tar xf %{SOURCE3}
547 popd
548
549 %if !%{use_gold}
550 # ld.bfd needs lots of file descriptors to link chrome
551 ulimit -n 4096
552 %endif
553
554 pushd out/Release
555 JOBS=$(echo %{_smp_mflags}|sed -re 's#^-j##')
556 if [ $JOBS -gt 16 ]; then
557 JOBS=16
558 fi
559 env PYTHONPATH=${PWD}/python2_root ninja -j${JOBS} chrome chrome_sandbox
560 popd
561
562 # man page
563 sed -e "s/@@PACKAGE@@/chromium/" -e "s/@@MENUNAME@@/Chromium Web Browser/" chrome/app/resources/manpage.1.in >out/Release/chromium.1
564
565 %install
566 ls out/Release
567 mkdir -p %{buildroot}%{_bindir}
568 mkdir -p %{buildroot}%{_crdir}/locales
569 mkdir -p %{buildroot}%{_crdir}/themes
570 mkdir -p %{buildroot}%{_mandir}/man1
571 install -m 755 %{_sourcedir}/chromium-wrapper %{buildroot}%{_crdir}/
572 install -m 755 out/Release/chrome %{buildroot}%{_crdir}/
573 install -m 4755 out/Release/chrome_sandbox %{buildroot}%{_crdir}/chrome-sandbox
574 install -m 644 out/Release/chromium.1 %{buildroot}%{_mandir}/man1/%{crname}.1
575 install -m 644 out/Release/chrome_100_percent.pak %{buildroot}%{_crdir}/
576 install -m 644 out/Release/chrome_200_percent.pak %{buildroot}%{_crdir}/
577 install -m 644 out/Release/resources.pak %{buildroot}%{_crdir}/
578 install -m 644 out/Release/snapshot_blob.bin %{buildroot}%{_crdir}/
579 install -m 755 out/Release/mksnapshot %{buildroot}%{_crdir}/
580 install -m 644 out/Release/locales/*.pak %{buildroot}%{_crdir}/locales/
581 install -m 644 out/Release/v8_context_snapshot.bin %{buildroot}%{_crdir}/
582 install -m 755 out/Release/libEGL.so %{buildroot}%{_crdir}/
583 install -m 755 out/Release/libGLESv2.so %{buildroot}%{_crdir}/
584 ln -s %{_crdir}/chromium-wrapper %{buildroot}%{_bindir}/%{crname}
585
586 %ifarch %{ix86} x86_64
587 mkdir -p %{buildroot}%{_crdir}/swiftshader
588 install -m 755 out/Release/swiftshader/*.so %{buildroot}%{_crdir}/swiftshader/
589 %endif
590
591 find out/Release/resources/ -name "*.d" -exec rm {} \;
592 cp -r out/Release/resources %{buildroot}%{_crdir}
593
594 # desktop file
595 mkdir -p %{buildroot}%{_datadir}/applications
596 install -m 644 %{_sourcedir}/%{crname}.desktop %{buildroot}%{_datadir}/applications/
597
598 %if %{system_icu}
599 # symlink to ICU data file
600 ICUDATADIR=$(icuinfo | grep \"icudata.path\" | sed -re 's/^.*>(.*)<.*$/\1/')
601 ICUDATANAME=$(icuinfo | grep \"icudata.name\" | sed -re 's/^.*>(.*)<.*$/\1/')
602 ICUDATAFILE=$(realpath --relative-to=%{_crdir}/ ${ICUDATADIR}/${ICUDATANAME}.dat)
603 ln -s ${ICUDATAFILE} %{buildroot}%{_crdir}/icudtl.dat
604 %else
605 install -m 644 out/Release/icudtl.dat %{buildroot}%{_crdir}/
606 %endif
607
608 # icon
609 for i in 22_mono 24 32 48 64 128 256; do
610 mkdir -p %{buildroot}%{_iconsdir}/hicolor/${i}x${i}/apps
611 if [ -f chrome/app/theme/chromium/product_logo_$i.png ]; then
612 install -m 644 chrome/app/theme/chromium/product_logo_$i.png \
613 %{buildroot}%{_iconsdir}/hicolor/${i}x${i}/apps/%{crname}.png
614 else
615 install -m 644 chrome/app/theme/chromium/linux/product_logo_$i.xpm \
616 %{buildroot}%{_iconsdir}/hicolor/${i}x${i}/apps/%{crname}.xpm
617 fi
618 done
619
620 %files -n chromium-browser
621
622 %files
623 %{_bindir}/%{crname}
624 %dir %{_crdir}
625 %{_crdir}/chromium-wrapper
626 %{_crdir}/chrome
627 %attr(4755,root,root) %{_crdir}/chrome-sandbox
628 %{_crdir}/icudtl.dat
629 %{_crdir}/locales
630 %{_crdir}/snapshot_blob.bin
631 %{_crdir}/resources.pak
632 %{_crdir}/resources
633 %{_crdir}/chrome_100_percent.pak
634 %{_crdir}/chrome_200_percent.pak
635 %{_crdir}/mksnapshot
636 %{_crdir}/themes
637 %{_crdir}/libEGL.so
638 %{_crdir}/libGLESv2.so
639 %ifarch %{ix86} x86_64
640 %{_crdir}/swiftshader
641 %endif
642 %{_crdir}/v8_context_snapshot.bin
643 %{_mandir}/man1/%{crname}*
644 %{_datadir}/applications/*.desktop
645 %{_iconsdir}/hicolor/*/apps/%{crname}.png
646 %{_iconsdir}/hicolor/*/apps/%{crname}.xpm

  ViewVC Help
Powered by ViewVC 1.1.30