/[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 1775878 - (show annotations) (download)
Wed Feb 16 00:53:57 2022 UTC (2 years, 2 months ago) by neoclust
File size: 35409 byte(s)
New version 98.0.4758.102
SILENT: From SquidF

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

  ViewVC Help
Powered by ViewVC 1.1.30