/[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 1757648 - (show annotations) (download)
Thu Nov 18 10:39:06 2021 UTC (2 years, 5 months ago) by ns80
File size: 27412 byte(s)
- new version 96.0.4664.45 (mga#29541)

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

  ViewVC Help
Powered by ViewVC 1.1.30