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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1714210 - (show annotations) (download)
Fri Apr 9 08:11:32 2021 UTC (3 years ago) by ns80
File size: 26891 byte(s)
- try to fix mga#28631

1 # eu-strip crashes on chrome binary from this build
2 %define _enable_debug_packages 0
3 %global debug_package %{nil}
4 %global __debug_install_post %{nil}
5
6 %global use_clang 0
7 %global use_gold 0
8 %global warnings_as_errors 0
9 %global system_icu 1
10 %global system_openjpeg 1
11 %global system_libtiff 1
12 %global system_libvpx 0
13 %global system_dav1d 1
14 %global system_re2 1
15 %global system_fontconfig 1
16 # system libevent causes the renderer to get stuck
17 %global system_libevent 0
18
19 %if %{use_gold}
20 %define gn_gold use_gold=true
21 %else
22 %define gn_gold use_gold=false
23 %endif
24 %if %{system_icu}
25 %define gn_icu icu
26 %endif
27 %if %{system_libvpx}
28 %define gn_libvpx libvpx
29 %endif
30 %if %{system_dav1d}
31 %define gn_dav1d dav1d
32 %endif
33 %if %{system_re2}
34 %define gn_re2 re2
35 %endif
36 %if %{system_fontconfig}
37 %define gn_fontconfig fontconfig
38 %endif
39 %if %{system_libevent}
40 %define gn_libevent libevent
41 %endif
42 %if %{use_clang}
43 %define gn_clang is_clang=true
44 %else
45 %define gn_clang is_clang=false
46 %endif
47 %if %{warnings_as_errors}
48 %else
49 %define gn_warnings_as_errors treat_warnings_as_errors=false
50 %endif
51
52 %define crname chromium-browser
53 %define _crdir %{_libdir}/%{crname}
54 %define __requires_exclude_from ^%{_crdir}/libwidevinecdmadapter.so$
55
56 # eol 'fix' corrupts some .bin
57 %define dont_fix_eol 1
58
59 # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys
60 # Note: these are for Mageia use ONLY.
61 # For your own builds, please get your own set of keys.
62 %define google_api_key AIzaSyDhhIHB_kQZodiWr8yDAm8E3GwEyiXmuDU
63
64 Name: chromium-browser-stable
65 Version: 89.0.4389.114
66 Release: %mkrel 2
67 Summary: A fast webkit-based web browser
68 Group: Networking/WWW
69 License: BSD, LGPL
70 URL: http://www.chromium.org/Home
71 # http://omahaproxy.appspot.com/
72 # http://googlechromereleases.blogspot.com/
73 Source0: http://commondatastorage.googleapis.com/chromium-browser-official/chromium-%{version}.tar.xz
74 Source1: chromium-wrapper
75 Source2: chromium-browser.desktop
76 Source3: pkg_resources.tar.gz
77 # from gentoo: compiler setup
78 Patch1: chromium-compiler-r4.patch
79 # fix googleisms in man page
80 Patch2: chromium-mageia.patch
81 # (ns80) use a patch rather than a source file for widevine
82 Patch3: chromium-71.0.3578.98-widevine-r3.patch
83 # (ns80) remove unrar
84 Patch4: chromium-norar.patch
85 # (cjw) Recognize mimetypes for matroska (.mkv) and AVI (.avi) formats (video/x-matroska and audio/x-matroska, video/x-msvideo) + handle A52 "AC3" and DTS compressed audio.
86 Patch6: chromium-55-extra-media.patch
87 # (cjw) [1/2] Recognize mimetypes for WMV (.wmv), FLV (.flv) and MPEG (.mpg) videos
88 Patch7: chromium-40-wmvflvmpg.patch
89 # (cjw) [2/2] Handle more video codecs.
90 Patch8: chromium-40-sorenson-spark.patch
91 # (cjw) disable external components -- this stops chromium from downloading hotword stuff, for example
92 Patch10: chromium-45-no-external-components.patch
93 # (debian) disable third party cookies by default
94 Patch11: chromium-third-party-cookies-off-by-default.patch
95 # (cjw) fix build error due to android-specific code
96 Patch19: chromium-50-codec-warnings.patch
97 # (cjw) remove assertion on "chromium" branding in combination with enabled "proprietary codecs"
98 Patch22: chromium-54-proprietary-codecs-assert.patch
99 # (cjw) disable werror for a compilation warning that causes the build to fail
100 Patch23: chromium-53-bignum-werror-fix.patch
101 # (cjw) add -Wno-error=depecated-declarations because ffmpeg deprecations cause the build to fail
102 Patch24: chromium-53-ffmpeg-no-deprecation-errors.patch
103 # (cjw) link several libraries directly instead of loading them using dlopen()
104 Patch27: chromium-53-link-libgio-libpci-libudev-libbrlapi.patch
105 # (cjw) add missing unbundle gn files (1)
106 Patch28: chromium-53-gn-system-icu-jsoncpp.patch
107 # (cjw) add missing unbundle gn files (2)
108 Patch29: chromium-53-gn-system-opus.patch
109 %if %{system_libtiff}
110 # (cjw) build pdfium with system libtiff
111 Patch30: chromium-52-pdfium-system-libtiff-libpng.patch
112 %endif
113 %if %{system_openjpeg}
114 # (cjw) fix pdfium build with system openjpeg
115 Patch31: chromium-74-pdfium-system-libopenjpeg2.patch
116 %endif
117 # (cjw) system libvpx
118 Patch32: chromium-60-system-libvpx.patch
119 # (cjw) fix build with current glib...
120 Patch36: chromium-58-glib.patch
121 # (cjw) use system nodejs to fix build
122 Patch37: chromium-58-system-nodejs.patch
123 # (cjw) use system closure compiler
124 Patch38: chromium-72-system-closure-compiler.patch
125 # (cjw) fix build with system icu
126 Patch39: chromium-77-system-icu.patch
127 # (cjw) force use of python2, since python3 does not work
128 Patch40: chromium-77-python2.patch
129 # (cjw) support using system dav1d
130 Patch41: chromium-79-system-dav1d.patch
131
132 # (cjw) gcc errors: redefined macros
133 Patch80: chromium-gcc-macro-redefined.patch
134 # (cjw) gcc errors: include files
135 Patch81: chromium-gcc-includes.patch
136 # (cjw) gcc warnings: suggested parentheses
137 Patch82: chromium-gcc-parentheses.patch
138 # (cjw) gcc warnings: unused variables or functions
139 Patch83: chromium-gcc-unused.patch
140 # (cjw) gcc warnings: missing casts
141 Patch84: chromium-gcc-type-errors.patch
142 # (cjw) gcc errors: multiple character literals
143 Patch85: chromium-gcc-character-literals.patch
144 # (cjw) gcc constexpr problems
145 Patch87: chromium-gcc-constexpr.patch
146 # (cjw) gcc anonymous namespace problems
147 Patch88: chromium-gcc-anonymous-namespace.patch
148 # (cjw) gcc noexcept problems
149 Patch89: chromium-gcc-noexcept.patch
150 # (cjw) gcc warnings: variable assigned in own assignment rhs
151 Patch90: chromium-gcc-double-assignment.patch
152 # (cjw) gcc warnings: optional constructs
153 Patch91: chromium-gcc-optional.patch
154 # (cjw) gcc warnings: uninitialized variables
155 Patch92: chromium-gcc-uninitialized.patch
156 # (cjw) gcc - unclear...
157 Patch93: chromium-gcc-unsorted.patch
158 # (cjw) gcc disabled warnings
159 %if !%{use_clang}
160 Patch94: chromium-gcc-disabled-warnings.patch
161 %endif
162
163 # (cjw) alignment problems
164 Patch188: chromium-68-gcc8.patch
165 # (cjw) fix gn bootstrapping with gcc
166 Patch190: chromium-69-gn-bootstrap.patch
167 # (cjw) build fixes for 64-bit arm
168 Patch193: chromium-70-aarch64.patch
169 # (cjw) gn bootstrap fix
170 Patch195: chromium-72-gn-bootstrap.patch
171 # (cjw) fix i586 build
172 Patch198: chromium-72-i586.patch
173 # (cjw) fix build with system zlib
174 Patch240: chromium-85-system-zlib.patch
175 # (cjw) fix angle-vulkan build with system zlib
176 Patch243: chromium-87-system-zlib.patch
177 # (cjw) fix broken system libvpx build
178 Patch244: chromium-88-system-libvpx.patch
179 # (cjw) fix i586 build
180 Patch248: chromium-87-i586.patch
181 # https://github.com/schnitzeltony/meta-browser/blob/master/recipes-browser/chromium/files/0003-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch
182 Patch249: 0003-Fix-sandbox-Aw-snap-for-syscalls-403-and-407.patch
183 # (ns80) try to fix mga#28631
184 Patch250: chromium-89-EnumTable-crash.patch
185
186 # Patches from Arch Linux
187 Patch300: chromium-glibc-2.33.patch
188 Patch301: chromium-fix-libva-redef.patch
189
190 Provides: %{crname}
191 Obsoletes: chromium-browser-unstable < 26.0.1410.51
192 Obsoletes: chromium-browser-beta < 26.0.1410.51
193 Obsoletes: chromium-browser < 1:9.0.597.94
194 BuildRequires: bison
195 BuildRequires: flex
196 BuildRequires: gperf
197 %if %{system_icu}
198 BuildRequires: icu
199 %endif
200 BuildRequires: ninja
201 BuildRequires: python2
202 BuildRequires: yasm
203 BuildRequires: bzip2-devel
204 #BuildRequires: closure-compiler
205 BuildRequires: cups-devel
206 BuildRequires: elfutils-devel
207 BuildRequires: ffmpeg-devel
208 BuildRequires: glib2-devel
209 BuildRequires: gtk3-devel
210 BuildRequires: libatomic-devel
211 %if %{system_libevent}
212 BuildRequires: libevent-devel
213 %endif
214 BuildRequires: libmesagl-devel
215 BuildRequires: libpam-devel
216 BuildRequires: libpulseaudio-devel
217 BuildRequires: mesaglesv2-devel
218 %if %mgaver >= 6
219 BuildRequires: nodejs
220 %endif
221 BuildRequires: osmesa-devel
222 #BuildRequires: protobuf-devel
223 BuildRequires: snappy-devel
224 BuildRequires: perl(Switch)
225 BuildRequires: pkgconfig(alsa)
226 BuildRequires: pkgconfig(atk)
227 %if %{system_dav1d}
228 BuildRequires: pkgconfig(dav1d)
229 %endif
230 BuildRequires: pkgconfig(dbus-glib-1)
231 BuildRequires: pkgconfig(expat)
232 BuildRequires: pkgconfig(flac)
233 %if %{system_fontconfig}
234 BuildRequires: pkgconfig(fontconfig)
235 %endif
236 BuildRequires: pkgconfig(freetype2)
237 BuildRequires: pkgconfig(gbm)
238 BuildRequires: pkgconfig(glu)
239 BuildRequires: pkgconfig(gnome-keyring-1)
240 BuildRequires: pkgconfig(gnutls)
241 %if %mgaver >= 7
242 BuildRequires: pkgconfig(harfbuzz)
243 %endif
244 %if %{system_icu}
245 BuildRequires: pkgconfig(icu-i18n)
246 %endif
247 BuildRequires: pkgconfig(jsoncpp)
248 BuildRequires: pkgconfig(libcap)
249 BuildRequires: pkgconfig(libdrm)
250 BuildRequires: pkgconfig(libexif)
251 BuildRequires: pkgconfig(libjpeg)
252 BuildRequires: pkgconfig(libopenjp2)
253 BuildRequires: pkgconfig(libpci)
254 BuildRequires: pkgconfig(libpng)
255 %if %{system_libtiff}
256 BuildRequires: pkgconfig(libtiff-4)
257 %endif
258 BuildRequires: pkgconfig(libusb-1.0)
259 %if %{system_libvpx}
260 BuildRequires: pkgconfig(libvpx)
261 %endif
262 BuildRequires: pkgconfig(libwebp)
263 BuildRequires: pkgconfig(libxml-2.0)
264 BuildRequires: pkgconfig(libxslt)
265 BuildRequires: pkgconfig(minizip)
266 BuildRequires: pkgconfig(nspr)
267 BuildRequires: pkgconfig(nss)
268 BuildRequires: pkgconfig(opus)
269 %if %{system_re2}
270 BuildRequires: pkgconfig(re2)
271 %endif
272 BuildRequires: pkgconfig(speech-dispatcher)
273 BuildRequires: pkgconfig(speex)
274 BuildRequires: pkgconfig(udev)
275 BuildRequires: pkgconfig(xscrnsaver)
276 BuildRequires: pkgconfig(xt)
277 BuildRequires: pkgconfig(xtst)
278 BuildRequires: pkgconfig(zlib)
279 %if %{use_clang}
280 BuildRequires: clang
281 %endif
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,firefox320_profile,firefox35_profile,firefox3_nss,firefox3_nss_mac,firefox3_profile,firefox_profile,firefox_searchplugins,focus,frame_dom_access,frame_tree,ftp,fullscreen_mouselock,geolocation,google,gpu,History,image_decoding,image_search,import,indexeddb,inspector,installer,interstitial_page,login,native_messaging,navigation_interception,notifications,page_cycler,page_load_metrics,password,pepper,perf,permissions,plugin_power_saver,policy,popup_blocker,predictor,prefs,pref_service,prerender,printing,profiles,push_messaging,referrer_policy,safe_browsing,save_page,scroll,session_history,session_restore,sessions,settings,speech,ssl,subresource_filter,sunspider,sync,template_url_scraper,textinput,third_party,top_sites,translate,unit,v8_benchmark_v6,viewsource,web_app_info,webrtc,websocket,webui_test_resources.grd,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,pnacl_mime_type}
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/{engagement,extensions,history,net_internals}
329 rm -r --interactive=never components/test/data/update_client/jebgalgnebhfojomionfpkfelancnnkf/component1.dll
330 rm -r --interactive=never content/test/data/
331 rm -r --interactive=never ppapi/native_client/tests/
332 rm -r --interactive=never third_party/apache-win32/
333 rm -r --interactive=never third_party/expat/{fuzz,include,src}
334 rm -r --interactive=never third_party/ffmpeg/*/*
335 rm -r --interactive=never third_party/flac/{include,src}
336 %if %{system_icu}
337 rm -r --interactive=never third_party/icu/{android,android_small,common,patches,source,chromeos,ios}
338 %endif
339 rm -r --interactive=never third_party/jsoncpp/source
340 rm -r --interactive=never third_party/lcov
341 %if %{system_libevent}
342 rm -r --interactive=never base/third_party/libevent/*/*
343 rm -r --interactive=never base/third_party/libevent/*.[ch]
344 %endif
345 %if %{system_libvpx}
346 rm -r --interactive=never third_party/libvpx/source/{libvpx,config}
347 %endif
348 rm -r --interactive=never third_party/libaom/source
349 %if %{system_dav1d}
350 rm -r --interactive=never third_party/dav1d/{libdav1d,version}
351 %endif
352 rm -r --interactive=never third_party/libjpeg_turbo/*.[ch]
353 rm -r --interactive=never third_party/libpng/*.[ch]
354 rm -r --interactive=never third_party/libxslt/{linux,mac,src,win32}
355 rm -r --interactive=never third_party/xdg-utils/tests/
356 rm -r --interactive=never third_party/zlib/{*.[ch],contrib/minizip}
357 rm -r --interactive=never native_client_sdk/src/tools/lib/tests/data
358 rm -r --interactive=never buildtools/third_party/eu-strip/bin
359 rm --interactive=never third_party/pdfium/third_party/libopenjpeg20/*.[ch]
360 rm -r --interactive=never third_party/pdfium/third_party/libpng16
361 %if %{system_libtiff}
362 rm --interactive=never third_party/pdfium/third_party/libtiff/*.[ch]
363 %endif
364 %if %{system_re2}
365 rm -r --interactive=never third_party/re2/src
366 %endif
367 %if %{system_fontconfig}
368 rm -r --interactive=never third_party/fontconfig/{src,include,chromium}
369 %endif
370 rm --interactive=never native_client/tools/redirector.exe
371 rm --interactive=never third_party/webrtc/data/voice_engine/stereo_rtp_files/rtpplay.exe
372 rm -r --interactive=never third_party/llvm
373 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/gles/t/SanOGLES-Gerbera.exe
374 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/gles/t/SanOGLES-PVRSDK.exe
375 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/gles/t/libGLES_CM.dll
376 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/gles/bob/bob
377 rm --interactive=never third_party/webgl/src/sdk/demos/google/san-angeles/glut/SanOGLES
378 rm --interactive=never third_party/lzma_sdk/Executable/7za.exe
379 rm --interactive=never third_party/lzma_sdk/7zr.exe
380 rm --interactive=never third_party/breakpad/symupload.exe
381 rm -r --interactive=never third_party/catapult/third_party/google-endpoints/setuptools
382 rm -r --interactive=never third_party/catapult/third_party/vinn/third_party/v8
383 rm --interactive=never third_party/depot_tools/ninja.exe
384 rm --interactive=never third_party/depot_tools/ninja-linux32
385 rm --interactive=never third_party/depot_tools/ninja-linux64
386 rm -r --interactive=never native_client/tools/hermetic_cygwin
387 rm -r --interactive=never base/test/data/pe_image/
388 rm -r --interactive=never base/test/data/file_version_info_unittest
389 rm -r --interactive=never chrome/chrome_cleaner/test/resources/signed_dll
390 rm --interactive=never third_party/crashpad/crashpad/handler/win/z7_test.dll
391 rm -r --interactive=never third_party/crashpad/crashpad/snapshot/elf/elf_image_reader_fuzzer_corpus
392 rm -r --interactive=never third_party/boringssl/src/util/ar/testdata
393 rm -r --interactive=never third_party/pyelftools/test/testfiles_for_unittests
394 rm -r --interactive=never third_party/pyelftools/test/external_tools
395 rm -r --interactive=never third_party/pyelftools/test/testfiles_for_readelf
396 rm -r --interactive=never third_party/pyelftools/examples
397 rm -r --interactive=never third_party/skia/platform_tools/android/bin
398 rm --interactive=never third_party/nasm/travis/test/tmap.o.t
399 rm -r --interactive=never components/test/data/update_client
400 rm -r --interactive=never build/android/tests/symbolize
401
402 rm --interactive=never third_party/skia/platform_tools/android/apps/gradle/wrapper/gradle-wrapper.jar
403 rm --interactive=never third_party/libphonenumber/dist/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar
404 rm --interactive=never third_party/libphonenumber/dist/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar
405 rm -r --interactive=never third_party/libphonenumber/dist/java/demo/war/WEB-INF/lib
406 rm -r --interactive=never third_party/libphonenumber/dist/java/lib
407 rm --interactive=never third_party/webrtc/examples/androidapp/third_party/autobanh/lib/autobanh.jar
408 rm --interactive=never third_party/closure_compiler/compiler/compiler.jar
409 rm --interactive=never third_party/flatbuffers/src/android/gradle/wrapper/gradle-wrapper.jar
410 rm --interactive=never third_party/flatbuffers/src/samples/android/gradle/wrapper/gradle-wrapper.jar
411 rm --interactive=never third_party/gradle_wrapper/gradle/wrapper/gradle-wrapper.jar
412 rm --interactive=never third_party/webgl/src/conformance-suites/2.0.0/deqp/compiler.jar
413 rm --interactive=never third_party/jetifier_standalone/lib/jetifier-standalone.jar
414 rm --interactive=never third_party/grpc/src/examples/android/helloworld/gradle/wrapper/gradle-wrapper.jar
415 rm --interactive=never third_party/grpc/src/src/android/test/interop/gradle/wrapper/gradle-wrapper.jar
416 rm --interactive=never third_party/android_deps/local_modifications/androidx_preference_preference/androidx_preference_preference_java.jar
417 rm --interactive=never third_party/android_deps/local_modifications/androidx_fragment_fragment/androidx_fragment_fragment_java.jar
418 rm --interactive=never third_party/tflite/src/tensorflow/lite/java/ovic/demo/gradle/wrapper/gradle-wrapper.jar
419 rm --interactive=never third_party/tflite/src/tensorflow/lite/java/demo/gradle/wrapper/gradle-wrapper.jar
420 rm --interactive=never third_party/tflite/src/tensorflow/examples/android/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 -re 's/char\s*\*(.*)getenv\("CHROME_VERSION_EXTRA"\)/char const *\1"%{product_vendor} %{product_version}"/' $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 use_system_freetype=true \
487 use_system_harfbuzz=true \
488 use_system_libpng=true \
489 enable_dav1d_decoder=true enable_libaom_decoder=false \
490 use_custom_libcxx=false \
491 closure_compile=false \
492 enable_mojom_closure_compile=false \
493 enable_js_type_check=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=%{__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 CFLAGS=$(echo "$CFLAGS"|sed -e 's/-g //')
520 CXXFLAGS=$(echo "$CXXFLAGS"|sed -e 's/-g //')
521 CXXFLAGS="$CXXFLAGS -faligned-new -Wno-attributes"
522 %if %{use_clang}
523 CFLAGS="$CFLAGS -Wno-error=unused-result"
524 CXXFLAGS="$CXXFLAGS -Wno-error=deprecated-declarations"
525 %else
526 CXXFLAGS="$CXXFLAGS -Wno-error=class-memaccess -Wno-error=unknown-pragmas -Wno-error=array-bounds -Wno-return-type -std=gnu++17"
527 %endif
528 %ifarch %ix86
529 %if %{use_gold}
530 LDFLAGS="$LDFLAGS -Wl,--no-keep-files-mapped"
531 %endif
532 %endif
533
534 %ifarch %{ix86}
535 CFLAGS="$CFLAGS -msse2"
536 CXXFLAGS="$CXXFLAGS -msse2"
537 %endif
538
539 python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args='%{gn_config}'
540
541 out/Release/gn gen --script-executable=/usr/bin/python2 --args='%{gn_config}' out/Release
542
543 # python...
544 mkdir out/Release/python2_root
545 cp -r %{python3_sitelib}/xcbgen out/Release/python2_root/
546 cp -r %{python3_sitelib}/setuptools out/Release/python2_root/
547 pushd out/Release/python2_root/
548 tar xf %{SOURCE3}
549 popd
550
551 %if !%{use_gold}
552 # ld.bfd needs lots of file descriptors to link chrome
553 ulimit -n 4096
554 %endif
555
556 pushd out/Release
557 env PYTHONPATH=${PWD}/python2_root ninja %{_smp_mflags} chrome chrome_sandbox
558 popd
559
560 # man page
561 sed -e "s/@@PACKAGE@@/chromium/" -e "s/@@MENUNAME@@/Chromium Web Browser/" chrome/app/resources/manpage.1.in >out/Release/chromium.1
562
563 %install
564 ls out/Release
565 mkdir -p %{buildroot}%{_bindir}
566 mkdir -p %{buildroot}%{_crdir}/locales
567 mkdir -p %{buildroot}%{_crdir}/themes
568 mkdir -p %{buildroot}%{_mandir}/man1
569 install -m 755 %{_sourcedir}/chromium-wrapper %{buildroot}%{_crdir}/
570 install -m 755 out/Release/chrome %{buildroot}%{_crdir}/
571 install -m 4755 out/Release/chrome_sandbox %{buildroot}%{_crdir}/chrome-sandbox
572 install -m 644 out/Release/chromium.1 %{buildroot}%{_mandir}/man1/%{crname}.1
573 install -m 644 out/Release/chrome_100_percent.pak %{buildroot}%{_crdir}/
574 install -m 644 out/Release/chrome_200_percent.pak %{buildroot}%{_crdir}/
575 install -m 644 out/Release/resources.pak %{buildroot}%{_crdir}/
576 install -m 644 out/Release/snapshot_blob.bin %{buildroot}%{_crdir}/
577 install -m 755 out/Release/mksnapshot %{buildroot}%{_crdir}/
578 install -m 644 out/Release/locales/*.pak %{buildroot}%{_crdir}/locales/
579 install -m 644 out/Release/v8_context_snapshot.bin %{buildroot}%{_crdir}/
580 install -m 755 out/Release/libEGL.so %{buildroot}%{_crdir}/
581 install -m 755 out/Release/libGLESv2.so %{buildroot}%{_crdir}/
582 ln -s %{_crdir}/chromium-wrapper %{buildroot}%{_bindir}/%{crname}
583
584 %ifarch %{ix86} x86_64
585 mkdir -p %{buildroot}%{_crdir}/swiftshader
586 install -m 755 out/Release/swiftshader/*.so %{buildroot}%{_crdir}/swiftshader/
587 %endif
588
589 find out/Release/resources/ -name "*.d" -exec rm {} \;
590 cp -r out/Release/resources %{buildroot}%{_crdir}
591
592 # desktop file
593 mkdir -p %{buildroot}%{_datadir}/applications
594 install -m 644 %{_sourcedir}/%{crname}.desktop %{buildroot}%{_datadir}/applications/
595
596 %if %{system_icu}
597 # symlink to ICU data file
598 ICUDATADIR=$(icuinfo | grep \"icudata.path\" | sed -re 's/^.*>(.*)<.*$/\1/')
599 ICUDATANAME=$(icuinfo | grep \"icudata.name\" | sed -re 's/^.*>(.*)<.*$/\1/')
600 ICUDATAFILE=$(realpath --relative-to=%{_crdir}/ ${ICUDATADIR}/${ICUDATANAME}.dat)
601 ln -s ${ICUDATAFILE} %{buildroot}%{_crdir}/icudtl.dat
602 %else
603 install -m 644 out/Release/icudtl.dat %{buildroot}%{_crdir}/
604 %endif
605
606 # icon
607 for i in 22_mono 24 32 48 64 128 256; do
608 mkdir -p %{buildroot}%{_iconsdir}/hicolor/${i}x${i}/apps
609 if [ -f chrome/app/theme/chromium/product_logo_$i.png ]; then
610 install -m 644 chrome/app/theme/chromium/product_logo_$i.png \
611 %{buildroot}%{_iconsdir}/hicolor/${i}x${i}/apps/%{crname}.png
612 else
613 install -m 644 chrome/app/theme/chromium/linux/product_logo_$i.xpm \
614 %{buildroot}%{_iconsdir}/hicolor/${i}x${i}/apps/%{crname}.xpm
615 fi
616 done
617
618 %files -n chromium-browser
619
620 %files
621 %{_bindir}/%{crname}
622 %dir %{_crdir}
623 %{_crdir}/chromium-wrapper
624 %{_crdir}/chrome
625 %attr(4755,root,root) %{_crdir}/chrome-sandbox
626 %{_crdir}/icudtl.dat
627 %{_crdir}/locales
628 %{_crdir}/snapshot_blob.bin
629 %{_crdir}/resources.pak
630 %{_crdir}/resources
631 %{_crdir}/chrome_100_percent.pak
632 %{_crdir}/chrome_200_percent.pak
633 %{_crdir}/mksnapshot
634 %{_crdir}/themes
635 %{_crdir}/libEGL.so
636 %{_crdir}/libGLESv2.so
637 %ifarch %{ix86} x86_64
638 %{_crdir}/swiftshader
639 %endif
640 %{_crdir}/v8_context_snapshot.bin
641 %{_mandir}/man1/%{crname}*
642 %{_datadir}/applications/*.desktop
643 %{_iconsdir}/hicolor/*/apps/%{crname}.png
644 %{_iconsdir}/hicolor/*/apps/%{crname}.xpm

  ViewVC Help
Powered by ViewVC 1.1.30