Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.2:Ports
chromium
chromium.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File chromium.spec of Package chromium
# # spec file for package chromium # # Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %define rname chromium %bcond_with clang Name: chromium Version: 54.0.2840.90 Release: 0 Summary: Google's opens source browser project License: BSD-3-Clause and LGPL-2.1+ Group: Productivity/Networking/Web/Browsers Url: http://code.google.com/p/chromium/ Source0: http://commondatastorage.googleapis.com/chromium-browser-official/%{rname}-%{version}.tar.xz Source2: %{rname}-rpmlintrc Source30: master_preferences Source31: default_bookmarks.html Source99: chrome-wrapper Source100: chromium-browser.sh Source101: chromium-browser.desktop Source102: chromium-browser.xml Source103: chromium.default Source104: chromium-icons.tar.bz2 # PATCH-FIX-OPENSUSE Make the 1-click-install ymp file always download [bnc#836059] Patch1: exclude_ymp.diff # PATCH-FIX-OPENSUSE enables reading of the master preference Patch2: chromium-master-prefs-path.patch # PATCH-FIX-UPSTREAM Add more charset aliases Patch3: chromium-more-codec-aliases.patch # PATCH-FIX-OPENSUSE Compile the sandbox with -fPIE settings Patch4: chromium-sandbox-pie.patch # PATCH-FIX-OPENSUSE chromium-46.0.2490.71-fix-missing-i18n_process_css_test.patch - file was removed Patch5: chromium-46.0.2490.71-fix-missing-i18n_process_css_test.patch # PATCH-FIX-OPENSUSE fix_building_widevinecdm_with_chromium.patch - Enable WideVine plugin Patch6: fix_building_widevinecdm_with_chromium.patch # PATCH-FIX-OPENSUSE fix_network_api_crash.patch - Fix crash in network API, e.g. when using chromecast extension Patch7: fix_network_api_crash.patch # System libs Patch8: chromium-system-ffmpeg-r3.patch Patch9: chromium-system-jinja-r13.patch # Gcc fix Patch10: gcc60-fixes.diff # PATCH-FIX-UPSTREAM correctly build sandbox Patch11: chromium-sandbox.patch # PATCH-FIX-SUSE make ld use less memory by tweaking compiler flags Patch13: chromium-linker-memory.patch # archlinux arm enhancement patches Patch100: arm-webrtc-fix.patch Patch101: arm_use_right_compiler.patch # GN buildsystem related patches Patch200: chromium-last-commit-position-r0.patch Patch201: fix-gn-bootstrap.diff BuildRequires: SDL-devel BuildRequires: binutils-gold BuildRequires: bison BuildRequires: cups-devel BuildRequires: desktop-file-utils BuildRequires: fdupes BuildRequires: flex BuildRequires: gperf BuildRequires: hicolor-icon-theme BuildRequires: libcap-devel BuildRequires: libdc1394 BuildRequires: libelf-devel BuildRequires: libgcrypt-devel BuildRequires: libgsm BuildRequires: libgsm-devel BuildRequires: libjpeg-devel BuildRequires: libpng-devel BuildRequires: ncurses-devel BuildRequires: ninja BuildRequires: pam-devel BuildRequires: pkgconfig BuildRequires: procps BuildRequires: python BuildRequires: python-Jinja2 BuildRequires: python-ply BuildRequires: python-simplejson BuildRequires: python-xml BuildRequires: snappy-devel BuildRequires: update-desktop-files BuildRequires: util-linux BuildRequires: wdiff BuildRequires: perl(Switch) BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(bzip2) BuildRequires: pkgconfig(cairo) >= 1.6 BuildRequires: pkgconfig(dbus-1) BuildRequires: pkgconfig(dirac) >= 1.0.0 BuildRequires: pkgconfig(expat) BuildRequires: pkgconfig(flac++) BuildRequires: pkgconfig(freetype2) BuildRequires: pkgconfig(gconf-2.0) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gnome-keyring-1) BuildRequires: pkgconfig(gtk+-2.0) BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(harfbuzz) BuildRequires: pkgconfig(hunspell) BuildRequires: pkgconfig(imlib2) BuildRequires: pkgconfig(jack) BuildRequires: pkgconfig(kadm-client) BuildRequires: pkgconfig(kdb) BuildRequires: pkgconfig(krb5) BuildRequires: pkgconfig(libcrypto) BuildRequires: pkgconfig(libdc1394-2) BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libevent) BuildRequires: pkgconfig(libexif) BuildRequires: pkgconfig(libffi) BuildRequires: pkgconfig(liboil-0.3) >= 0.3.15 BuildRequires: pkgconfig(libpci) BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(libssl) BuildRequires: pkgconfig(libtcmalloc) BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(libwebp) BuildRequires: pkgconfig(libxml-2.0) BuildRequires: pkgconfig(libxslt) BuildRequires: pkgconfig(nspr) >= 4.9.5 BuildRequires: pkgconfig(nss) >= 3.14 BuildRequires: pkgconfig(ogg) BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(python) BuildRequires: pkgconfig(schroedinger-1.0) BuildRequires: pkgconfig(slang) BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(theora) >= 1.1 BuildRequires: pkgconfig(valgrind) BuildRequires: pkgconfig(vdpau) BuildRequires: pkgconfig(vorbis) BuildRequires: pkgconfig(vpx) BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xcomposite) BuildRequires: pkgconfig(xcursor) BuildRequires: pkgconfig(xdamage) BuildRequires: pkgconfig(xext) BuildRequires: pkgconfig(xfixes) BuildRequires: pkgconfig(xi) BuildRequires: pkgconfig(xrandr) BuildRequires: pkgconfig(xrender) BuildRequires: pkgconfig(xscrnsaver) BuildRequires: pkgconfig(xt) BuildRequires: pkgconfig(xtst) BuildRequires: pkgconfig(zlib) #Requirements to build a fully functional ffmpeg Requires: alsa Requires: hicolor-icon-theme Requires: xdg-utils Requires(pre): permissions Conflicts: otherproviders(chromium-browser) Provides: chromium-based-browser = %{version} Provides: chromium-browser = %{version} Provides: browser(npapi) Obsoletes: %{name}-suid-helper < %{version} Obsoletes: chromium-browser < %{version} Provides: %{name}-suid-helper = %{version} Obsoletes: chromium-beta-desktop-gnome Obsoletes: chromium-beta-desktop-kde Obsoletes: chromium-desktop-gnome Obsoletes: chromium-desktop-kde Obsoletes: chromium-dev-desktop-gnome Obsoletes: chromium-dev-desktop-kde # There is no v8 for ppc and thus chromium won't run on ppc. For aarch64 certain buildrequires are missing (e.g. valgrind) # while it would build for %arm, we exclude it as it takes forever to build ExcludeArch: %arm aarch64 ppc ppc64 ppc64le Requires: ffmpegsumo # Recommends the chromium-ffmpeg library (available from packman) Recommends: %{name}-ffmpeg %if %{with clang} BuildRequires: clang >= 3.9.0 %else BuildRequires: gcc BuildRequires: gcc-c++ %endif #Requirements to build a fully functional ffmpeg # This can only be done on packman OBS %if 0%{?packman_bs} BuildRequires: libfaac-devel >= 1.28 BuildRequires: libmp3lame-devel BuildRequires: libopencore-amr-devel BuildRequires: libx264-devel BuildRequires: libxvidcore-devel %endif %description Chromium is the open-source project behind Google Chrome. We invite you to join us in our effort to help build a safer, faster, and more stable way for all Internet users to experience the web, and to create a powerful platform for developing a new generation of web applications. %package ffmpegsumo Summary: Library to provide partial ffmpeg support to Chromium License: BSD-3-Clause and LGPL-2.1+ Group: Productivity/Networking/Web/Browsers Requires: %{name} Conflicts: otherproviders(ffmpegsumo) Provides: ffmpegsumo = %{version} %description ffmpegsumo The is the multimedia codec library for Chromium. It is based on the internal ffmpeg source code and contains only the open source codecs from ffmpeg. Proprietary codecs (e.g. H.264) are not part of this library, but are provided in an external package %package -n chromedriver Summary: WebDriver for Google Chrome/Chromium License: BSD-3-Clause Group: Development/Tools/Other Url: http://code.google.com/p/chromedriver/ %description -n chromedriver WebDriver is an open source tool for automated testing of webapps across many browsers. It provides capabilities for navigating to web pages, user input, JavaScript execution, and more. ChromeDriver is a standalone server which implements WebDriver's wire protocol for Chromium. It is being developed by members of the Chromium and WebDriver teams. %if 0%{?packman_bs} %package ffmpeg Summary: The ffmpeg library for Google's opens source browser Chromium License: BSD-3-Clause and LGPL-2.1+ Group: Productivity/Networking/Web/Browsers Requires: %{name} Conflicts: otherproviders(ffmpegsumo) Provides: ffmpegsumo = %{version} %description ffmpeg FFMPEG library built from the chromium sources. %endif %prep %setup -q -n %{rname}-%{version} #GN Buildsystem fixes %patch200 -p1 %patch201 -p1 #Standard patches %patch1 %patch2 %patch3 %patch4 %patch5 -p1 %patch6 -p1 %patch7 %patch8 -p1 %patch9 -p1 %patch10 %patch11 -p1 %patch13 -p1 # archlinux arm enhancements %patch100 %patch101 %build # do not eat all memory ninjaproc="%{?jobs:%{jobs}}" echo "Available memory:" free echo "System limits:" ulimit -a if test -n "$ninjaproc" -a "$ninjaproc" -gt 1 ; then mem_per_process=1300 max_mem=`LANG=C free -t -m | sed -n "s|^Mem: *\([0-9]*\).*$|\1|p"` max_jobs="$(($max_mem / $mem_per_process))" test "$ninjaproc" -gt "$max_jobs" && ninjaproc="$max_jobs" && echo "Warning: Reducing number of jobs to $max_jobs because of memory limits" test "$ninjaproc" -le 0 && ninjaproc=1 && echo "Warning: Do not use the parallel build at all becuse of memory limits" fi # Create the configuration for GN # Available options: out/Release/gn args --list out/Release/ myconf_gn="" myconf_gn+=" is_debug=false" myconf_gn+=" enable_nacl=false" myconf_gn+=" is_component_ffmpeg=true" myconf_gn+=" use_cups=true" myconf_gn+=" use_gconf=true" myconf_gn+=" use_gtk3=true" myconf_gn+=" use_aura=true" myconf_gn+=" enable_clipboard_aurax11=true" myconf_gn+=" symbol_level=1" myconf_gn+=" remove_webcore_debug_symbols=true" myconf_gn+=" use_kerberos=true" myconf_gn+=" use_pulseaudio=true link_pulseaudio=true" myconf_gn+=" use_sysroot=false" myconf_gn+=" treat_warnings_as_errors=false" myconf_gn+=" fatal_linker_warnings=false" myconf_gn+=" use_allocator=\"none\"" myconf_gn+=" fieldtrial_testing_like_official_build=true" myconf_gn+=" use_gold=true" myconf_gn+=" use_sysroot=false" myconf_gn+=" enable_widevine=true" myconf_gn+=" enable_hangout_services_extension=true" %if %{with clang} myconf_gn+=" is_clang=true clang_base_path=\"/usr\" clang_use_chrome_plugins=false" %else myconf_gn+=" is_clang=false" %endif # Define the Chrome branding in order to get libffmpeg on packman that supports all codecs %if 0%{?packman_bs} myconf_gn+=" proprietary_codecs=true" myconf_gn+=" ffmpeg_branding=\"Chrome\"" %endif %ifarch %{arm} myconf_gn+=" target_cpu=\"arm\"" myconf_gn+=" target_sysroot_dir=\"\"" myconf_gn+=" arm_use_neon=false" myconf_gn+=" arm_optionally_use_neon=false" myconf_gn+=" arm_use_thumb=true" myconf_gn+=" is_component_build=true" %endif # Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys # Note: these are for the openSUSE Chromium builds ONLY. For your own distribution, # please get your own set of keys. google_api_key="AIzaSyD1hTe85_a14kr1Ks8T3Ce75rvbR1_Dx7Q" google_default_client_id="4139804441.apps.googleusercontent.com" google_default_client_secret="KDTRKEZk2jwT_7CDpcmMA--P" myconf_gn+=" google_api_key=\"${google_api_key}\"" myconf_gn+=" google_default_client_id=\"${google_default_client_id}\"" myconf_gn+=" google_default_client_secret=\"${google_default_client_secret}\"" third_party/libaddressinput/chromium/tools/update-strings.py if [ ! -f chrome/test/data/webui/i18n_process_css_test.html ]; then touch chrome/test/data/webui/i18n_process_css_test.html fi %if %{with clang} export CC=clang export CXX=clang++ %endif export CFLAGS="%{optflags}" export CXXFLAGS="%{optflags}" tools/gn/bootstrap/bootstrap.py -v --gn-gen-args "${myconf_gn}" # GN does not support passing cflags: # https://bugs.chromium.org/p/chromium/issues/detail?id=642016 out/Release/gn gen --args="${myconf_gn}" out/Release %if 0%{?packman_bs} ninja -v -j $ninjaproc -C out/Release third_party/ffmpeg %else ninja -v -j $ninjaproc -C out/Release chrome chrome_sandbox chromedriver %endif %install mkdir -p %{buildroot}%{_libdir}/chromium %if 0%{?packman_bs} pushd out/Release cp -av libffmpeg.so %{buildroot}%{_libdir}/chromium/ popd %else %ifarch x86_64 mkdir -p %{buildroot}%{_libexecdir}/ %endif mkdir -p %{buildroot}%{_bindir} install -m 755 %{SOURCE100} %{buildroot}%{_bindir}/chromium # x86_64 capable systems need this sed -i "s|%{_libexecdir}/chromium|%{_libdir}/chromium|g" %{buildroot}%{_bindir}/chromium mkdir -p %{buildroot}%{_mandir}/man1/ pushd out/Release # Install the file %{_sysconfdir}/default/chromium which defines the chromium flags mkdir -p %{buildroot}%{_sysconfdir}/default install -m 644 %{SOURCE103} %{buildroot}%{_sysconfdir}/default/chromium # Recent Chromium builds now wants to have the sandbox in the same directory. So let's create a symlink to the one in %{_prefix}/lib cp -a chrome_sandbox %{buildroot}%{_libexecdir}/ ln -s -f %{_libexecdir}/chrome_sandbox %{buildroot}/%{_libdir}/chromium/chrome-sandbox cp -a *.bin *.pak locales xdg-mime icudtl.dat %{buildroot}%{_libdir}/chromium/ cp -a chromedriver %{buildroot}%{_libdir}/chromium/ # chromium components # ffmpeg cp -av libffmpeg.so %{buildroot}%{_libdir}/chromium/ # Patch xdg-settings to use the chromium version of xdg-mime as that the system one is not KDE4 compatible sed "s|xdg-mime|%{_libdir}/chromium/xdg-mime|g" xdg-settings > %{buildroot}%{_libdir}/chromium/xdg-settings cp -a resources.pak %{buildroot}%{_libdir}/chromium/ cp -a chrome %{buildroot}%{_libdir}/chromium/chromium cp -a chrome.1 %{buildroot}%{_mandir}/man1/chrome.1 cp -a chrome.1 %{buildroot}%{_mandir}/man1/chromium.1 %fdupes %{buildroot}%{_mandir}/man1/ popd mkdir -p %{buildroot}%{_datadir}/icons/ pushd %{buildroot}%{_datadir}/icons/ tar -xjf %{SOURCE104} mv oxygen hicolor popd mkdir -p %{buildroot}%{_datadir}/applications/ desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE101} mkdir -p %{buildroot}%{_datadir}/gnome-control-center/default-apps/ cp -a %{SOURCE102} %{buildroot}%{_datadir}/gnome-control-center/default-apps/ # link to browser plugin path. Plugin patch doesn't work. Why? mkdir -p %{buildroot}%{_libdir}/browser-plugins pushd %{buildroot}%{_libdir}/chromium ln -s ../browser-plugins plugins # Install the master_preferences file mkdir -p %{buildroot}%{_sysconfdir}/chromium install -m 0644 %{SOURCE30} %{buildroot}%{_sysconfdir}/chromium install -m 0644 %{SOURCE31} %{buildroot}%{_sysconfdir}/chromium # Set the right attributes chmod 755 %{buildroot}%{_libdir}/chromium/xdg-settings chmod 755 %{buildroot}%{_libdir}/chromium/xdg-mime %endif %if !0%{?packman_bs} %verifyscript %verify_permissions -e %{_libexecdir}/chrome_sandbox %post %icon_theme_cache_post %desktop_database_post %set_permissions %{_libexecdir}/chrome_sandbox /sbin/ldconfig %{_libdir}/chromium %postun %icon_theme_cache_postun %desktop_database_postun /sbin/ldconfig %{_libdir}/chromium %endif # Files! %if 0%{?packman_bs} %post ffmpeg /sbin/ldconfig %{_libdir}/chromium %postun ffmpeg /sbin/ldconfig %{_libdir}/chromium %files ffmpeg %defattr(-,root,root,-) %dir %{_libdir}/chromium %{_libdir}/chromium/libffmpeg.so %else %files %defattr(-,root,root,-) %verify(not mode) %{_libexecdir}/chrome_sandbox %doc AUTHORS LICENSE %config %{_sysconfdir}/chromium %config(noreplace) %{_sysconfdir}/default/chromium %dir %{_datadir}/gnome-control-center %dir %{_datadir}/gnome-control-center/default-apps %{_libdir}/chromium/ %{_mandir}/man1/chrom* %{_datadir}/applications/*.desktop %{_datadir}/gnome-control-center/default-apps/chromium-browser.xml %{_datadir}/icons/hicolor/ %{_libexecdir}/chrome_sandbox %exclude %{_libdir}/chromium/libffmpeg.so %exclude %{_libdir}/chromium/chromedriver %{_bindir}/chromium %files ffmpegsumo %defattr(-,root,root,-) %{_libdir}/chromium/libffmpeg.so %files -n chromedriver %defattr(-,root,root,-) %{_libdir}/chromium/chromedriver %endif %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor