/[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 1790477 - (show annotations) (download)
Fri Mar 11 21:31:02 2022 UTC (2 years, 1 month ago) by squidf
File size: 35034 byte(s)
Update to 99.0.4844.51
New fix-build-patch chromium-99-third_party-symbolize-missing-include for MGA9
New fix-build-patch chromium-99-v8-missing-utility-include for MGA9
Remove autopatch
Deprecated chromium-98-vulkan-validation-layer.patch
Deprecated chromium-98-duplicate-peer-error-to-dvlog.patch
Deprecated chromium-98-WaylandFrameManager-check.patch
Deprecated chromium-97-ScrollView-reference.patch
Update delete items list of source bundles
Replace stack-protector by stack-clash-protection with clang 11 (mga8)
system icu leads to icu_use_data_file=false
Add system-libdrm patch to unbundle fully libdrm
Use system wayland
Clean up gcc-only patches
Add gn arguments to improve load time
Add build dependency lib64va and egl for GPU hardware acceleration

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_gold 0
7
8 #squidf:WARNING: building with gcc is broken from chromium version 98. Too heavy workload to update patches and find new ones.
9 # Actually, only clang is supported by Chromium dev.
10 %global use_clang 1
11
12 #squidf: MGA version dependent flags
13 %if %mgaver >= 9
14 %global system_icu 1
15 %global system_harfbuzz 1
16 %else
17 #squidf: not sure why it works with Cauldron. MGA8 icu verson is deprecated?
18 %global system_icu 0
19 #squidf: harfbuzz >= 3 required
20 %global system_harfbuzz 0
21 %endif
22 #squidf: use vaapi from the system
23 %global use_vaapi 1
24 %global system_openjpeg 1
25 %global system_libtiff 1
26 %global system_libvpx 0
27 #squidf: changes in dav1d management: 98_ Patch required targetting dav1d_decoder.cc
28 %global system_dav1d 0
29 %global system_re2 1
30 %global system_fontconfig 1
31 %global system_freetype 1
32 # system libevent causes the renderer to get stuck
33 %global system_libevent 0
34
35 #squidf:build error with chromium 97 even for MGA9
36 %global warnings_as_errors 0
37
38 %if %{use_gold}
39 %define gn_gold use_gold=true
40 %else
41 %define gn_gold use_gold=false
42 %endif
43 %if %{system_icu}
44 %define bdl_icu icu
45 #squidf: icu_use_data_file needs to be adjusted accordingly
46 %define gn_icu icu_use_data_file=false
47 %else
48 %define gn_icu icu_use_data_file=true
49 %endif
50 %if %{system_libvpx}
51 %define gn_libvpx libvpx
52 %endif
53 %if %{system_dav1d}
54 %define gn_dav1d dav1d
55 %endif
56 %if %{system_re2}
57 %define gn_re2 re2
58 %endif
59 %if %{system_fontconfig}
60 %define gn_fontconfig fontconfig
61 %endif
62 %if %{system_freetype}
63 %define gn_freetype use_system_freetype=true
64 %define bdl_freetype freetype
65 %endif
66 %if %{system_libevent}
67 %define gn_libevent libevent
68 %endif
69 %if %{use_vaapi}
70 %define gn_vaapi use_vaapi=true
71 %else
72 %define gn_vaapi use_vaapi=false
73 %endif
74 %if %{use_clang}
75 %define gn_clang is_clang=true
76 %define gn_lld use_lld=true
77 %else
78 %define gn_clang is_clang=false
79 %define gn_lld use_lld=false
80 %endif
81 %if %{warnings_as_errors}
82 #squidf: added as above for consistency
83 %define gn_warnings_as_errors treat_warnings_as_errors=true
84 %else
85 %define gn_warnings_as_errors treat_warnings_as_errors=false
86 %endif
87 #squidf:test added here to be independant of Mageia version
88 %if %{system_harfbuzz}
89 %define gn_harfbuzz use_system_harfbuzz=true
90 %define bdl_harfbuzz harfbuzz-ng
91 %else
92 %define gn_harfbuzz use_system_harfbuzz=false
93 %endif
94
95 %define crname chromium-browser
96 %define _crdir %{_libdir}/%{crname}
97 %define __requires_exclude_from ^%{_crdir}/libwidevinecdmadapter.so$
98
99 # eol 'fix' corrupts some .bin
100 %define dont_fix_eol 1
101
102 # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys
103 # Note: these are for Mageia use ONLY.
104 # For your own builds, please get your own set of keys.
105 %define google_api_key AIzaSyDhhIHB_kQZodiWr8yDAm8E3GwEyiXmuDU
106
107 Name: chromium-browser-stable
108 Version: 99.0.4844.51
109 Release: %mkrel 1
110 Summary: A fast webkit-based web browser
111 Group: Networking/WWW
112 License: BSD, LGPL
113 URL: http://www.chromium.org/Home
114 # http://omahaproxy.appspot.com/
115 # http://googlechromereleases.blogspot.com/
116 Source0: https://commondatastorage.googleapis.com/chromium-browser-official/chromium-%{version}.tar.xz
117 Source1: chromium-wrapper
118 Source2: chromium-browser.desktop
119 #Applications preferences at startup
120 Source13: master_preferences
121
122 # from gentoo: compiler setup
123 #squidf: update for 98_
124 Patch1: chromium-98-compiler-r4.patch
125 # fix googleisms in man page
126 Patch2: chromium-mageia.patch
127 # (ns80) use a patch rather than a source file for widevine
128 Patch3: chromium-71.0.3578.98-widevine-r3.patch
129 # (ns80) remove unrar
130 #squidf: update for 96_
131 Patch4: chromium-96-norar.patch
132 # (cjw) [1/4] 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.
133 #squidf: extra-media.patch splitted to account for Chromium 95 code update
134 #squidf: update for 98_
135 Patch6: chromium-98-extra-media.patch
136 # (cjw) [2/4] Recognize mimetypes for WMV (.wmv), FLV (.flv) and MPEG (.mpg) videos
137 #squidf: splitted for chromium 95.0.4638.54 and merged with chromium-95-extra-media.patch
138 Patch7: chromium-95-wmvflvmpg.patch
139 # (cjw) [3/4] Handle more video codecs.
140 #squidf: splitted for chromium 95.0.4638.54 and merged with chromium-95-extra-media.patch
141 #squidf: update for 98_
142 Patch8: chromium-98-sorenson-spark.patch
143 # (cjw) [4/4] Add a profile for each added video codec and merged with chromium-95-extra-media.patch
144 #squidf: splitted for chromium 95.0.4638.54
145 Patch9: chromium-95-extra-media-video-profiles.patch
146 # (cjw) disable external components -- this stops chromium from downloading hotword stuff, for example
147 #squidf: update for 99_
148 Patch10: chromium-99-no-external-components.patch
149 # (debian) disable third party cookies by default
150 Patch11: chromium-third-party-cookies-off-by-default.patch
151 # (cjw) fix build error due to android-specific code
152 Patch19: chromium-50-codec-warnings.patch
153 # (cjw) remove assertion on "chromium" branding in combination with enabled "proprietary codecs"
154 Patch22: chromium-54-proprietary-codecs-assert.patch
155 # (cjw) link several libraries directly instead of loading them using dlopen()
156 Patch27: chromium-53-link-libgio-libpci-libudev-libbrlapi.patch
157 # (cjw) add missing unbundle gn files (1)
158 Patch28: chromium-53-gn-system-icu-jsoncpp.patch
159 # (cjw) add missing unbundle gn files (2)
160 Patch29: chromium-53-gn-system-opus.patch
161 # (cjw) build pdfium with system libtiff
162 #squidf: update for chromium 96.0.4664.45
163 Patch30: chromium-99-pdfium-system-libtiff-libpng.patch
164 # (cjw) fix pdfium build with system openjpeg
165 Patch31: chromium-74-pdfium-system-libopenjpeg2.patch
166 # (cjw) fix build with current glib...
167 Patch36: chromium-58-glib.patch
168 # (cjw) use system nodejs to fix build
169 #squidf: update for 98_
170 Patch37: chromium-98-system-nodejs.patch
171 # (cjw) use system closure compiler
172 #squidf: update for 97_71
173 Patch38: chromium-97-system-closure-compiler.patch
174 # (cjw) fix build with system icu
175 Patch39: chromium-77-system-icu.patch
176 # (cjw) support using system dav1d
177 Patch41: chromium-79-system-dav1d.patch
178 # (cjw) gcc errors: include files
179 #squidf: update for 99_ Required with clang as well
180 Patch81: chromium-99-gcc-includes.patch
181 # (cjw) gcc warnings: missing casts
182 #squidf: update for 99_ -required for MGA9 even using clang. MGA8 manages without.
183 #squidf: deprecated patches for gl_helper.cc inspector_cache_storage_agent.cc ax_object.cc exception_handler.cc
184 Patch84: chromium-99-gcc-type-errors.patch
185 # (cjw) fix gn bootstrapping with gcc. Kept with clang to stay safe.
186 #squidf: grouped 69 and 72 versions
187 Patch190: chromium-98-gn-bootstrap.patch
188 # (cjw) fix i586 build
189 Patch198: chromium-72-i586.patch
190 #squidf: grouped system zlib patches 85, 87 and 96, including angle-vulkan fix
191 Patch240: chromium-98-system-zlib.patch
192 # (cjw) fix broken system libvpx build
193 Patch244: chromium-88-system-libvpx.patch
194 # (ns80) try to fix mga#28631 / updated patch from gentoo
195 #squidf: update for 98_
196 Patch250: chromium-98-EnumTable-crash.patch
197 # (cjw) fix build with "old" system freetype
198 Patch254: chromium-94-system-freetype.patch
199 # (cjw) fix build with system ffmpeg
200 Patch255: chromium-94-system-ffmpeg.patch
201 # (cjw) fix crash in DCHECK() while logging metrics
202 Patch256: chromium-94-GetNeverPromptSitesBetween-crash.patch
203
204 #squidf: for clang
205 Patch258: chromium-clang-nomerge.patch
206 #squidf:geentoo patch to pass sandbox/linux/services/credentials.cc:103:16: error: variable-sized object may not be initialized
207 # https://bugs.gentoo.org/823857
208 #squidf: update for 99_45
209 Patch261: chromium-99-clang-variable-size-object.patch
210 #squidf: MGA8 specific to use clang11 instead of clang13 (unknown option -ffile-compilation-dir)
211 #squidf: update for 98_
212 Patch259: chromium-98-clang_compiler.patch
213
214 #squidf:additional patch for vaapi (mainly from rpmfusion/freeworld)
215 Patch280: chromium-98-vaapi-libdrm.patch
216 Patch281: chromium-98-fix-vaapi-on-intel.patch
217
218 #squidf: additional patch
219 #squidf: From Arch linux: build error: media/filters/ffmpeg_demuxer.cc:1599:9: error: use of undeclared identifier 'av_stream_get_first_dts'
220 Patch300: chromium-97-ffmpeg-av_stream_get_first_dts.patch
221 #squidf: build error: math_extras.h:130:18: error: constexpr function never produces a constant expression
222 Patch301: chromium-98-constexpr-compiler.patch
223 #squidf: 2 patches from openSUSE tumbleweed to fix build for MGA9 (ok without for MGA8)
224 Patch302: chromium-99-third_party-symbolize-missing-include.patch
225 Patch303: chromium-99-v8-missing-utility-include.patch
226 #squidf: 2 patches from openSUSE tumbleweed
227 Patch304: chromium-98-sql-standard-layout-type.patch
228 Patch305: chromium-94-sql-no-assert.patch
229 #squidf: from openSUSE tumbleweed to unbundle fully libdrm
230 Patch306: chromium-98-system-libdrm.patch
231 #squidf: update for 99_
232 Patch307: chromium-99-wayland-egl.patch
233
234
235 Provides: %{crname}
236 Obsoletes: chromium-browser-unstable < 26.0.1410.51
237 Obsoletes: chromium-browser-beta < 26.0.1410.51
238 Obsoletes: chromium-browser < 1:9.0.597.94
239 BuildRequires: bison
240 BuildRequires: flex
241 BuildRequires: gperf
242 %if %{system_icu}
243 BuildRequires: icu
244 %endif
245 BuildRequires: ninja
246 #squidf: move to Python3:
247 BuildRequires: python3
248 BuildRequires: python3-devel
249 BuildRequires: python3-beautifulsoup4
250 BuildRequires: python3-html5lib
251 BuildRequires: python3-markupsafe
252 BuildRequires: python3-ply
253 BuildRequires: python3-simplejson
254 #BuildRequires: yasm
255 BuildRequires: bzip2-devel
256 #BuildRequires: closure-compiler
257 BuildRequires: cups-devel
258 BuildRequires: elfutils-devel
259 BuildRequires: ffmpeg-devel
260 BuildRequires: glib2-devel
261 BuildRequires: gtk3-devel
262 BuildRequires: libatomic-devel
263 %if %{system_libevent}
264 BuildRequires: libevent-devel
265 %endif
266 BuildRequires: libmesagl-devel
267 BuildRequires: libpam-devel
268 BuildRequires: libpulseaudio-devel
269 BuildRequires: mesaglesv2-devel
270 %if %mgaver >= 6
271 BuildRequires: nodejs
272 %endif
273 BuildRequires: osmesa-devel
274 #BuildRequires: protobuf-devel
275 BuildRequires: snappy-devel
276 BuildRequires: perl(Switch)
277 BuildRequires: pkgconfig(alsa)
278 BuildRequires: pkgconfig(atk)
279 %if %{system_dav1d}
280 BuildRequires: pkgconfig(dav1d)
281 %endif
282 BuildRequires: pkgconfig(dbus-glib-1)
283 BuildRequires: pkgconfig(expat)
284 BuildRequires: pkgconfig(flac)
285 %if %{system_fontconfig}
286 BuildRequires: pkgconfig(fontconfig)
287 %endif
288 BuildRequires: pkgconfig(freetype2)
289 BuildRequires: pkgconfig(gbm)
290 BuildRequires: pkgconfig(glu)
291 BuildRequires: pkgconfig(gnome-keyring-1)
292 BuildRequires: pkgconfig(gnutls)
293 #squidf:test not based on Mageia version anymore
294 %if %{system_harfbuzz}
295 BuildRequires: pkgconfig(harfbuzz)
296 %endif
297 %if %{system_icu}
298 BuildRequires: pkgconfig(icu-i18n)
299 %endif
300 BuildRequires: pkgconfig(jsoncpp)
301 BuildRequires: pkgconfig(libcap)
302 BuildRequires: pkgconfig(libdrm)
303 BuildRequires: pkgconfig(libexif)
304 BuildRequires: pkgconfig(libjpeg)
305 BuildRequires: pkgconfig(libopenjp2)
306 BuildRequires: pkgconfig(libpci)
307 BuildRequires: pkgconfig(libpng)
308 %if %{system_libtiff}
309 BuildRequires: pkgconfig(libtiff-4)
310 %endif
311 BuildRequires: pkgconfig(libusb-1.0)
312 #squidf:added for vaapi support
313 BuildRequires: pkgconfig(egl)
314 BuildRequires: pkgconfig(libva)
315 BuildRequires: pkgconfig(libva-drm)
316 BuildRequires: pkgconfig(libva-glx)
317 BuildRequires: pkgconfig(libva-wayland)
318 BuildRequires: pkgconfig(libva-x11)
319 %if %{system_libvpx}
320 BuildRequires: pkgconfig(libvpx)
321 %endif
322 BuildRequires: pkgconfig(libwebp)
323 BuildRequires: pkgconfig(libxml-2.0)
324 BuildRequires: pkgconfig(libxslt)
325 BuildRequires: pkgconfig(minizip)
326 BuildRequires: pkgconfig(nspr)
327 BuildRequires: pkgconfig(nss)
328 BuildRequires: pkgconfig(opus)
329 %if %{system_re2}
330 BuildRequires: pkgconfig(re2)
331 %endif
332 BuildRequires: pkgconfig(speech-dispatcher)
333 BuildRequires: pkgconfig(speex)
334 BuildRequires: pkgconfig(udev)
335 BuildRequires: pkgconfig(xscrnsaver)
336 BuildRequires: pkgconfig(xt)
337 BuildRequires: pkgconfig(xtst)
338 BuildRequires: pkgconfig(zlib)
339 %if %{use_clang}
340 BuildRequires: clang
341 BuildRequires: lld
342 %endif
343 BuildRequires: clang-tools-extra
344 #squidf:for 98_ and system wayland
345 BuildRequires: pkgconfig(wayland-egl)
346 BuildRequires: pkgconfig(wayland-client)
347 BuildRequires: pkgconfig(wayland-cursor)
348 BuildRequires: pkgconfig(wayland-scanner)
349 BuildRequires: pkgconfig(wayland-server)
350
351 # Unused but building gn wants it to be present
352 BuildRequires: pkgconfig(gconf-2.0)
353 BuildRequires: git
354 ExclusiveArch: i586 x86_64
355 # aarch64 does not build without fewer than default parallel jobs config
356 # armv5tl armv7hl
357
358 %description
359 Chromium is a browser that combines a minimal design with sophisticated
360 technology to make the web faster, safer, and easier.
361
362 For certain media playback features - AAC decoding - this package
363 currently assumes decoder support is available, while that is only true if
364 the 'tainted' variety of the libavcodec package is installed. When the 'core'
365 variety of libavcodec is installed, chromium may output noise for AAC audio.
366
367 %ifarch %{ix86}
368 The i586 build of this package does not work on machines that do not
369 support the SSE2 instruction set extension.
370 %endif
371
372 %package -n chromium-browser
373 Summary: A fast webkit-based web browser (transition package)
374 Epoch: 1
375 Group: Networking/WWW
376 Requires: %{name} = %{version}-%{release}
377
378 %description -n chromium-browser
379 Chromium is a browser that combines a minimal design with sophisticated
380 technology to make the web faster, safer, and easier.
381
382 This is a transition package that installs the stable channel Chromium
383 browser.
384
385 %prep
386 %setup -q -n chromium-%{version}
387
388 #squidf: avoid autopatch to get all patches in src.rpm, independently of the flag settings
389 %patch1 -p1 -b .fix-buid-compiler-r4
390 %patch2 -p1 -b .fix-googleism
391 %patch3 -p1 -b .add-widevine
392 %patch4 -p1 -b .remove-norar
393 %patch6 -p1 -b .add-extra-media
394 %patch7 -p1 -b .add-wmvflvmpg
395 %patch8 -p1 -b .add-video-codecs
396 %patch9 -p1 -b .add-extra-video-codecs-profiles
397 %patch10 -p1 -b .disable-no-external-components-downloads
398 %patch11 -p1 -b .disable-third-party-cookies-by-default
399 %patch19 -p1 -b .fix-build-due-to-android-specificities
400 %patch22 -p1 -b .remove-chromium-branding
401 %patch27 -p1 -b .link-libraaries-libgio-libpci-libudev-libbrlapi
402 %patch28 -p1 -b .missing-system-icu-jsoncpp-gn-flags
403 %patch29 -p1 -b .missing-system-opus-gn-flag
404 %if %{system_libtiff}
405 %patch30 -p1 -b .use-pdfium-with-system-libtiff-libpng
406 %endif
407 %if %{system_openjpeg}
408 %patch31 -p1 -b .use-pdfium-with-system-libopenjpeg2
409 %endif
410 %patch36 -p1 -b .fix-build-with-current-glib
411 %patch37 -p1 -b .fix-build-with-system-nodejs
412 %patch38 -p1 -b .use-system-closure-compiler
413 %patch39 -p1 -b .fix-build-with-system-icu
414 %if %{system_dav1d}
415 %patch41 -p1 -b .use-system-dav1d
416 %endif
417 %patch81 -p1 -b .fix-build-gcc-includes
418 %patch84 -p1 -b .fix-build-gcc-type-errors
419 %patch190 -p1 -b .fix-build-gn-bootstrap
420 %patch198 -p1 -b .fix-build-i586
421 %patch240 -p1 -b .use-system-zlib
422 %patch244 -p1 -b .use-system-libvpx
423 %patch250 -p1 -b .fix-crash-EnumTable
424 %patch254 -p1 -b .use-system-freetype.patch
425 %patch255 -p1 -b .fix-build-system-ffmpeg
426 %patch256 -p1 -b .fix-crash-GetNeverPromptSitesBetween
427 %if %{use_clang}
428 %patch258 -p1 -b .fix-build-clang-nomerge
429 %patch261 -p1 -b .fix-build-variable-size-object
430 %if %mgaver <= 8
431 %patch259 -p1 -b .fix-build-clang11
432 %endif
433 %endif
434 %patch280 -p1 -b .use-system-vaapi-libdrm
435 %patch281 -p1 -b .fix-vaapi-on-intel
436 %patch300 -p1 -b .fix-build-av_stream_get_first_dts
437 %patch301 -p1 -b .fix-build-constexpr
438 %patch302 -p1 -b .fix-build-symbolize-exchange_namespace
439 %patch303 -p1 -b .fix-build-v8-missing-utility-include
440 %patch304 -p1 -b .sql-standard-layout-type
441 %patch305 -p1 -b .sql-no-assert.patch
442 %patch306 -p1 -b .system-libdrm
443 %patch307 -p1 -b .wayland-egl
444
445
446 # files we do not want from upstream source bundles
447 rm -r --interactive=never third_party/breakpad/breakpad/src/processor/testdata/
448 rm -r --interactive=never third_party/breakpad/breakpad/src/tools
449 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,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,sunspider,sync,template_url_scraper,textinput,third_party,top_sites,translate,unit,viewsource,web_app_info,webrtc,websocket,webui_test_resources.grd,workers}
450 rm -r --interactive=never chrome/test/data/nacl/{pnacl_error_handling,cross_origin,irt_exception,pnacl_request_header,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}
451 rmdir chrome/test/data/webui/{settings,extensions}/a11y
452 rmdir chrome/test/data/webui/settings/chromeos/app_management
453 rmdir chrome/test/data/webui/history/history_clusters
454 #squidf: for 99_: extension cannot be removed because of .../webui/extensions/BUILD.gn
455 #rmdir chrome/test/data/webui/{engagement,extensions,history}
456 rmdir chrome/test/data/webui/{engagement,history}
457 rm -r --interactive=never components/test/data/update_client/jebgalgnebhfojomionfpkfelancnnkf/component1.dll
458 rm -r --interactive=never content/test/data/
459 rm -r --interactive=never ppapi/native_client/tests/
460 rm -r --interactive=never third_party/apache-win32/
461 rm -r --interactive=never third_party/expat/{fuzz,include,src}
462 %if %{system_freetype}
463 rm -r --interactive=never third_party/freetype/{include,src}
464 %endif
465 rm -r --interactive=never third_party/ffmpeg/*/*
466 rm -r --interactive=never third_party/flac/{include,src}
467 %if %{system_icu}
468 rm -r --interactive=never third_party/icu/{android,android_small,common,patches,source,chromeos,ios}
469 %endif
470 rm -r --interactive=never third_party/jsoncpp/source
471 rm -r --interactive=never third_party/lcov
472 %if %{system_libevent}
473 rm -r --interactive=never base/third_party/libevent/*/*
474 rm -r --interactive=never base/third_party/libevent/*.[ch]
475 %endif
476 %if %{system_libvpx}
477 rm -r --interactive=never third_party/libvpx/source/{libvpx,config}
478 %endif
479 rm -r --interactive=never third_party/libaom/source
480 %if %{system_dav1d}
481 rm -r --interactive=never third_party/dav1d/{libdav1d,version}
482 %endif
483 rm -r --interactive=never third_party/libjpeg_turbo/*.[ch]
484 rm -r --interactive=never third_party/libpng/*.[ch]
485 rm -r --interactive=never third_party/libxslt/{linux,mac,src,win32}
486 rm -r --interactive=never third_party/xdg-utils/tests/
487 rm -r --interactive=never third_party/zlib/{*.[ch],contrib/minizip}
488 rm -r --interactive=never native_client_sdk/src/tools/lib/tests/data
489 rm -r --interactive=never buildtools/third_party/eu-strip/bin
490 rm --interactive=never third_party/pdfium/third_party/libopenjpeg20/*.[ch]
491 rm -r --interactive=never third_party/pdfium/third_party/libpng16
492 %if %{system_libtiff}
493 rm --interactive=never third_party/pdfium/third_party/libtiff/*.[ch]
494 %endif
495 %if %{system_re2}
496 rm -r --interactive=never third_party/re2/src
497 %endif
498 %if %{system_fontconfig}
499 rm -r --interactive=never third_party/fontconfig/{src,include,chromium}
500 %endif
501 rm --interactive=never native_client/tools/redirector.exe
502 rm --interactive=never third_party/webrtc/data/voice_engine/stereo_rtp_files/rtpplay.exe
503 rm -r --interactive=never third_party/llvm
504 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/gles/t/SanOGLES-Gerbera.exe
505 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/gles/t/SanOGLES-PVRSDK.exe
506 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/gles/t/libGLES_CM.dll
507 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/gles/bob/bob
508 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/glut/SanOGLES
509 rm --interactive=never third_party/lzma_sdk/Executable/7za.exe
510 rm --interactive=never third_party/lzma_sdk/7zr.exe
511 rm --interactive=never third_party/breakpad/symupload.exe
512 rm -r --interactive=never third_party/catapult/third_party/google-endpoints/setuptools
513 rm -r --interactive=never third_party/catapult/third_party/vinn/third_party/v8
514 rm --interactive=never third_party/depot_tools/ninja.exe
515 rm --interactive=never third_party/depot_tools/ninja-linux32
516 rm --interactive=never third_party/depot_tools/ninja-linux64
517 rm -r --interactive=never native_client/tools/hermetic_cygwin
518 rm -r --interactive=never base/test/data/pe_image/
519 rm -r --interactive=never base/test/data/file_version_info_unittest
520 rm -r --interactive=never chrome/chrome_cleaner/test/resources/signed_dll
521 rm --interactive=never third_party/crashpad/crashpad/handler/win/z7_test.dll
522 rm -r --interactive=never third_party/crashpad/crashpad/snapshot/elf/elf_image_reader_fuzzer_corpus
523 rm -r --interactive=never third_party/boringssl/src/util/ar/testdata
524 rm -r --interactive=never third_party/pyelftools/test/testfiles_for_unittests
525 rm -r --interactive=never third_party/pyelftools/test/external_tools
526 rm -r --interactive=never third_party/pyelftools/test/testfiles_for_readelf
527 rm -r --interactive=never third_party/pyelftools/examples
528 rm -r --interactive=never third_party/skia/platform_tools/android/bin
529 rm --interactive=never third_party/nasm/travis/test/tmap.o.t
530 rm -r --interactive=never components/test/data/update_client
531 rm -r --interactive=never build/android/tests/symbolize
532
533 rm --interactive=never third_party/skia/platform_tools/android/apps/gradle/wrapper/gradle-wrapper.jar
534 rm --interactive=never third_party/libphonenumber/dist/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar
535 rm --interactive=never third_party/libphonenumber/dist/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar
536 rm -r --interactive=never third_party/libphonenumber/dist/java/demo/war/WEB-INF/lib
537 rm -r --interactive=never third_party/libphonenumber/dist/java/lib
538 rm --interactive=never third_party/webrtc/examples/androidapp/third_party/autobanh/lib/autobanh.jar
539 rm --interactive=never third_party/closure_compiler/compiler/compiler.jar
540 rm --interactive=never third_party/flatbuffers/src/android/gradle/wrapper/gradle-wrapper.jar
541 rm --interactive=never third_party/flatbuffers/src/kotlin/gradle/wrapper/gradle-wrapper.jar
542 rm --interactive=never third_party/gradle_wrapper/gradle/wrapper/gradle-wrapper.jar
543 rm --interactive=never third_party/webgl/src/conformance-suites/2.0.0/deqp/compiler.jar
544 rm --interactive=never third_party/grpc/src/examples/android/helloworld/gradle/wrapper/gradle-wrapper.jar
545 rm --interactive=never third_party/grpc/src/src/android/test/interop/gradle/wrapper/gradle-wrapper.jar
546 rm --interactive=never third_party/tflite/src/tensorflow/lite/java/ovic/demo/gradle/wrapper/gradle-wrapper.jar
547 rm --interactive=never third_party/tflite/src/tensorflow/lite/java/demo/gradle/wrapper/gradle-wrapper.jar
548 rm --interactive=never third_party/checkstyle/checkstyle-all.jar
549 rm --interactive=never build/android/stacktrace/java_deobfuscate.jar
550
551 %if %{system_libevent}
552 find base/third_party/libevent -type f \! -regex '.*\.\(gn\|gni\|isolate\)' -delete
553 %endif
554
555 %if %{system_icu}
556 # Remove bundled ICU; its header files appear to get picked up instead of
557 # the system ones, leading to errors during the final link stage.
558 # https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/BNGvJc08B6Q
559 find third_party/icu -type f \! -regex '.*\.\(gn\|gni\|isolate\)' -delete
560 %endif
561
562 # Hard code extra version
563 FILE=chrome/common/channel_info_posix.cc
564 sed -i.orig -r -e 's/env = getenv\("CHROME_VERSION_EXTRA"\).*;/env = "%{product_vendor} %{product_version}";/' -e 's/return env \? (.*) : .*;/return \1;/' $FILE
565 if diff -u $FILE $FILE.orig >/dev/null; then
566 exit 1
567 fi
568
569 %build
570 #squidf: harfbuzz and freetype added back based on other distro spec, but might not be mandatory
571 %define unbundle_list ffmpeg flac %{?gn_fontconfig} libwebp libxml libxslt snappy %{?gn_libvpx} libpng %{?bdl_icu} zlib jsoncpp opus %{?gn_re2} libdrm %{?gn_dav1d} %{?gn_libevent} %{?bdl_freetype} %{?bdl_harfbuzz-ng}
572 # handled by upstream regular build scripts: freetype harfbuzz-ng
573 # mesa
574
575 # v NO TABS IN HERE!
576 %define gn_mga use_sysroot=false \
577 system_libdir="%{_lib}" \
578 %{?gn_icu} \
579 enable_nacl=false \
580 is_nacl_glibc=false \
581 custom_toolchain="//build/toolchain/linux/unbundle:default" \
582 host_toolchain="//build/toolchain/linux/unbundle:default" \
583 proprietary_codecs=true \
584 linux_link_libudev = true \
585 linux_link_libspeechd = true \
586 linux_link_xlib = true \
587 enable_platform_ac3_eac3_audio = true \
588 enable_mse_mpeg2ts_stream_parser=true \
589 enable_platform_hevc=true \
590 use_system_libjpeg=true \
591 use_system_libopenjpeg2=true \
592 use_libjpeg_turbo=false \
593 enable_widevine=true \
594 pdf_enable_xfa=true \
595 gtk_version=3 \
596 fatal_linker_warnings=false \
597 use_libpci = true \
598 use_pulseaudio=true \
599 use_allocator="none" \
600 is_debug=false \
601 %{?gn_clang} \
602 clang_use_chrome_plugins=false \
603 %{?gn_lld} \
604 %{?gn_gold} \
605 %{?gn_freetype} \
606 %{?gn_harfbuzz} \
607 use_system_libpng=true \
608 enable_dav1d_decoder=true enable_libaom=false \
609 use_custom_libcxx=false \
610 enable_mojom_closure_compile=false \
611 enable_js_type_check=false \
612 dcheck_always_on=false \
613 %{?gn_warnings_as_errors} \
614 google_api_key="%{google_api_key}"
615
616 #squidf:additional arguments:
617 # to use vaapi from Chromium 96
618 # for 98_, compiler errors with bundled Wayland
619 # is_component_build to improve load-time (used by many other distro)
620 %define gn_more %{gn_mga} \
621 %{?gn_vaapi} \
622 use_system_libwayland=true \
623 use_system_wayland_scanner=true \
624 is_component_build=false
625
626 build/linux/unbundle/replace_gn_files.py --system-libraries %{unbundle_list}
627 third_party/libaddressinput/chromium/tools/update-strings.py
628
629 %set_build_flags
630 %if %{use_clang}
631 CC=clang; export CC
632 CXX=clang++; export CXX
633 %else
634 CC=%{__cc}; export CC
635 CXX=%{__cxx}; export CXX
636 LD="%{__cxx}"; export LD
637 %endif
638
639 AR=%{__ar}; export AR
640 NM=%{_bindir}/nm; export NM
641
642 %if %{use_clang}
643 LDFLAGS="-fuse-ld=lld $LDFLAGS"
644 %else
645 %if %{use_gold}
646 LDFLAGS="-fuse-ld=gold $LDFLAGS"
647 %endif
648 %endif
649
650 # filter out -g from CFLAGS and CXXFLAGS to fix builds
651 %if %{_enable_debug_packages}
652 %else
653 CFLAGS=$(echo "$CFLAGS"|sed -e 's/-g //')
654 CXXFLAGS=$(echo "$CXXFLAGS"|sed -e 's/-g //')
655 %endif
656
657 CXXFLAGS="$CXXFLAGS -faligned-new -Wno-attributes -Wno-ignored-attributes"
658
659 #squidf: all the below flags are from openSUSE
660 export CXXFLAGS="${CXXFLAGS} -Wno-unused-command-line-argument -Wno-unknown-warning-option"
661 # extra flags to reduce warnings that aren't very useful
662 export CXXFLAGS="${CXXFLAGS} -Wno-pedantic -Wno-unused-result -Wno-unused-function -Wno-unused-variable -Wno-deprecated-declarations"
663 # ignore warnings for minor mistakes that are too common
664 export CXXFLAGS="${CXXFLAGS} -Wno-return-type -Wno-parentheses -Wno-misleading-indentation"
665 # ignore warnings due to gcc bug (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84055)
666 export CXXFLAGS="${CXXFLAGS} -Wno-ignored-attributes"
667 # ingore new gcc 8 warnings that aren't yet handled upstream
668 export CXXFLAGS="${CXXFLAGS} -Wno-address -Wno-dangling-else"
669 # for wayland
670 export CXXFLAGS="${CXXFLAGS} -I/usr/include/wayland -I/usr/include/libxkbcommon"
671 #### end openSUSE flag
672
673 %if %mgaver <= 8
674 #squidf:FIX ME??: -std=gnu++17 has been added but build fails
675 %if %{use_clang}
676 CFLAGS="$CFLAGS -Wno-error=unused-result"
677 CXXFLAGS="$CXXFLAGS -Wno-error=deprecated-declarations -Wno-error=deprecated-copy -Wno-error=psabi -Wno-error=implicit-const-int-float-conversion -Wno-error=non-c-typedef-for-linkage -Wno-error=unused-const-variable"
678 %else
679 #squidf:WARNING: so far, building with gcc on Mageia does not work for chromium version higher than 98
680 CXXFLAGS="$CXXFLAGS -Wno-error=class-memaccess -Wno-error=unknown-pragmas -Wno-error=array-bounds -Wno-return-type -Wno-error=nonnull -Wno-error=free-nonheap-object -Wno-error=stringop-overflow -Wno-error=unused -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=maybe-uninitialized -Wno-error=uninitialized -Wno-error=invalid-offsetof"
681 %endif
682 %else
683 #squidf:this part aims at reflecting Cauldron spec
684 %if %{use_clang}
685 CFLAGS="$CFLAGS -Wno-error=unused-result"
686 CXXFLAGS="$CXXFLAGS -Wno-error=deprecated-declarations -Wno-error=deprecated-copy -Wno-error=psabi -Wno-error=implicit-const-int-float-conversion -Wno-error=non-c-typedef-for-linkage -Wno-error=unused-const-variable -std=gnu++17"
687 %else
688 #squidf:WARNING: so far, building with gcc on Mageia does not work for chromium version higher than 98
689 CXXFLAGS="$CXXFLAGS -Wno-error=class-memaccess -Wno-error=unknown-pragmas -Wno-error=array-bounds -Wno-return-type -Wno-error=nonnull -Wno-error=free-nonheap-object -Wno-error=stringop-overread -Wno-error=unused -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=maybe-uninitialized -Wno-error=uninitialized -Wno-error=invalid-offsetof -std=gnu++17"
690 %endif
691 %endif
692
693 #squidf: fix random stack mashing detection with clang 11
694 %if %mgaver <= 8
695 CFLAGS=${CFLAGS/-fstack-protector}
696 CFLAGS="$CFLAGS -fno-stack-protector -fstack-clash-protection"
697 CXXFLAGS=${CXXFLAGS/-fstack-protector}
698 CXXFLAGS="$CXXFLAGS -fno-stack-protector -fstack-clash-protection"
699 %endif
700
701 %if %{use_gold}
702 %ifarch %ix86
703 LDFLAGS="$LDFLAGS -Wl,--no-keep-files-mapped"
704 %endif
705 %else
706 LDFLAGS="$LDFLAGS -fno-use-linker-plugin"
707 %endif
708
709 # for debugging:
710 %if %{_enable_debug_packages}
711 CFLAGS="$(echo $CFLAGS|sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//' -e 's/-D_FORTIFY_SOURCE=2//') -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -gdwarf64"
712 CXXFLAGS="$(echo $CXXFLAGS|sed -e 's/-Wp,-D_FORTIFY_SOURCE=2//' -e 's/-D_FORTIFY_SOURCE=2//') -Og -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -Wno-error=return-type -gdwarf64"
713 %endif
714
715 %ifarch %{ix86}
716 CFLAGS="$CFLAGS -msse2"
717 CXXFLAGS="$CXXFLAGS -msse2"
718 %endif
719
720
721 python tools/gn/bootstrap/bootstrap.py --gn-gen-args='%{gn_more}'
722
723 out/Release/gn gen --args='%{gn_more}' out/Release
724
725
726 %if !%{use_gold}
727 # ld.bfd needs lots of file descriptors to link chrome
728 ulimit -n 4096
729 %endif
730
731
732 JOBS=$(echo %{_smp_mflags}|sed -re 's#^-j##')
733 %{__ninja} -j${JOBS} -C out/Release chrome chrome_sandbox
734
735
736 # man page
737 sed -e "s/@@PACKAGE@@/chromium/" -e "s/@@MENUNAME@@/Chromium Web Browser/" chrome/app/resources/manpage.1.in >out/Release/chromium.1
738
739 %install
740 mkdir -p %{buildroot}%{_bindir}
741 mkdir -p %{buildroot}%{_crdir}/locales
742 mkdir -p %{buildroot}%{_crdir}/themes
743 mkdir -p %{buildroot}%{_crdir}/MEIPreload
744 mkdir -p %{buildroot}%{_mandir}/man1
745
746 #squidf: add master_preferences to prevent default browser check banner, at first
747 %{__install} -m 644 %{SOURCE13} %{buildroot}%{_crdir}/master_preferences
748
749 install -m 755 %{_sourcedir}/chromium-wrapper %{buildroot}%{_crdir}/
750 install -m 755 out/Release/chrome %{buildroot}%{_crdir}/
751 install -m 4755 out/Release/chrome_sandbox %{buildroot}%{_crdir}/chrome-sandbox
752 install -m 644 out/Release/chromium.1 %{buildroot}%{_mandir}/man1/%{crname}.1
753 install -m 644 out/Release/chrome_100_percent.pak %{buildroot}%{_crdir}/
754 install -m 644 out/Release/chrome_200_percent.pak %{buildroot}%{_crdir}/
755 install -m 644 out/Release/resources.pak %{buildroot}%{_crdir}/
756 install -m 644 out/Release/snapshot_blob.bin %{buildroot}%{_crdir}/
757 install -m 755 out/Release/mksnapshot %{buildroot}%{_crdir}/
758 install -m 755 out/Release/chrome_crashpad_handler %{buildroot}%{_crdir}/
759 install -m 644 out/Release/locales/*.pak %{buildroot}%{_crdir}/locales/
760 install -m 644 out/Release/v8_context_snapshot.bin %{buildroot}%{_crdir}/
761 install -m 755 out/Release/libEGL.so %{buildroot}%{_crdir}/
762 install -m 755 out/Release/libGLESv2.so %{buildroot}%{_crdir}/
763 install -m 644 out/Release/MEIPreload/* %{buildroot}%{_crdir}/MEIPreload/
764 ln -s %{_crdir}/chromium-wrapper %{buildroot}%{_bindir}/%{crname}
765
766 %ifarch %{ix86} x86_64
767 mkdir -p %{buildroot}%{_crdir}/swiftshader
768 install -m 755 out/Release/swiftshader/*.so %{buildroot}%{_crdir}/swiftshader/
769 %endif
770
771 find out/Release/resources/ -name "*.d" -exec rm {} \;
772 cp -r out/Release/resources %{buildroot}%{_crdir}
773
774 # desktop file
775 mkdir -p %{buildroot}%{_datadir}/applications
776 install -m 644 %{_sourcedir}/%{crname}.desktop %{buildroot}%{_datadir}/applications/
777
778 %if %{system_icu}
779 # symlink to ICU data file
780 ICUDATADIR=$(icuinfo | grep \"icudata.path\" | sed -re 's/^.*>(.*)<.*$/\1/')
781 ICUDATANAME=$(icuinfo | grep \"icudata.name\" | sed -re 's/^.*>(.*)<.*$/\1/')
782 ICUDATAFILE=$(realpath --relative-to=%{_crdir}/ ${ICUDATADIR}/${ICUDATANAME}.dat)
783 ln -s ${ICUDATAFILE} %{buildroot}%{_crdir}/icudtl.dat
784 %else
785 %{__install} -m 644 out/Release/icudtl.dat %{buildroot}%{_crdir}/
786 %endif
787
788 # icon
789 for i in 22_mono 24 32 48 64 128 256; do
790 %{__mkdir_p} %{buildroot}%{_iconsdir}/hicolor/${i}x${i}/apps
791 if [ -f chrome/app/theme/chromium/product_logo_$i.png ]; then
792 %{__install} -m 644 chrome/app/theme/chromium/product_logo_$i.png \
793 %{buildroot}%{_iconsdir}/hicolor/${i}x${i}/apps/%{crname}.png
794 else
795 %{__install} -m 644 chrome/app/theme/chromium/linux/product_logo_$i.xpm \
796 %{buildroot}%{_iconsdir}/hicolor/${i}x${i}/apps/%{crname}.xpm
797 fi
798 done
799
800 %files -n chromium-browser
801
802 %files
803 %{_bindir}/%{crname}
804 %dir %{_crdir}
805 %{_crdir}/chromium-wrapper
806 %{_crdir}/chrome
807 %attr(4755,root,root) %{_crdir}/chrome-sandbox
808 %{_crdir}/icudtl.dat
809 %{_crdir}/locales
810 %{_crdir}/master_preferences
811 %{_crdir}/snapshot_blob.bin
812 %{_crdir}/v8_context_snapshot.bin
813 %{_crdir}/resources.pak
814 %{_crdir}/resources
815 %{_crdir}/chrome_100_percent.pak
816 %{_crdir}/chrome_200_percent.pak
817 %{_crdir}/mksnapshot
818 %{_crdir}/chrome_crashpad_handler
819 %{_crdir}/themes
820 %{_crdir}/libEGL.so
821 %{_crdir}/libGLESv2.so
822 %ifarch %{ix86} x86_64
823 %{_crdir}/swiftshader
824 %endif
825 %{_mandir}/man1/%{crname}*
826 %{_datadir}/applications/*.desktop
827 %{_iconsdir}/hicolor/*/apps/%{crname}.png
828 %{_iconsdir}/hicolor/*/apps/%{crname}.xpm
829 %{_crdir}/MEIPreload
830
831

  ViewVC Help
Powered by ViewVC 1.1.30