%global _build_pkgcheck_set %{nil} # eol 'fix' corrupts some .bin %define dont_fix_eol 1 %define crname chromium-browser %define _crdir %{_libdir}/%{crname} %define _src %{_topdir}/SOURCES %define chromium_system_libs 0 %define clang 0 Summary: A fast web browser based on the Blink engine Name: chromium-browser-stable Version: 47.0.2526.106 Release: 1 License: BSD, LGPL Group: Networking/WWW Source0: https://commondatastorage.googleapis.com/chromium-browser-official/chromium-%{version}.tar.xz Source1: chromium-wrapper Source2: chromium-browser.desktop Source30: master_preferences Source31: default_bookmarks.html Source32: chromium.default Source100: icons.tar.bz2 Source997: depot_tools.tar.xz Source998: gn-binaries.tar.xz Source999: new-system-icons.tar.xz Source1000: README.urpmi Patch4: chromium-30.0.1599.66-master-prefs-path.patch # PATCH-FIX-UPSTREAM Add more charset aliases Patch6: chromium-more-codec-aliases.patch # PATCH-FIX-OPENSUSE Adjust ldflags for better building Patch8: adjust-ldflags-no-keep-memory.patch # PATCH-FIX-OPENSUSE Compile the sandbox with -fPIE settings Patch15: chromium-25.0.1364.172-sandbox-pie.patch Patch20: chromium-gcc4.7.patch # archlinux arm enhancement patches Patch100: arm-webrtc-fix.patch Patch101: chromium-arm-r0.patch # New from Debian Patch500: chromium-third-party-cookies-off-by-default.patch Patch501: chromium-ps-print.patch Provides: %{crname} = %{EVRD} Conflicts: chromium-browser-unstable Conflicts: chromium-browser-beta Obsoletes: chromium-browser < 1:9.0.597.94 BuildRequires: bison BuildRequires: flex BuildRequires: gperf BuildRequires: gyp BuildRequires: ninja BuildRequires: util-linux BuildRequires: yasm BuildRequires: bzip2-devel BuildRequires: cap-devel BuildRequires: cups-devel BuildRequires: elfutils-devel BuildRequires: jpeg-devel BuildRequires: pam-devel BuildRequires: speech-dispatcher-devel BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(atk) BuildRequires: pkgconfig(dbus-glib-1) BuildRequires: pkgconfig(expat) BuildRequires: pkgconfig(flac) BuildRequires: pkgconfig(gconf-2.0) BuildRequires: pkgconfig(gl) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(glu) BuildRequires: pkgconfig(gnome-keyring-1) BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) BuildRequires: pkgconfig(gtk+-2.0) BuildRequires: pkgconfig(harfbuzz) BuildRequires: pkgconfig(libevent) BuildRequires: pkgconfig(libexif) BuildRequires: pkgconfig(libgcrypt) BuildRequires: pkgconfig(libgpsd) BuildRequires: pkgconfig(libmtp) BuildRequires: pkgconfig(libpci) BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(libusb-1.0) BuildRequires: pkgconfig(libwebp) BuildRequires: pkgconfig(minizip) BuildRequires: pkgconfig(nspr) BuildRequires: pkgconfig(nss) BuildRequires: pkgconfig(opus) BuildRequires: pkgconfig(speex) BuildRequires: pkgconfig(udev) BuildRequires: pkgconfig(vpx) BuildRequires: pkgconfig(xscrnsaver) BuildRequires: pkgconfig(xt) BuildRequires: pkgconfig(xtst) BuildRequires: pkgconfig(zlib) %if 0%{?clang} BuildRequires: clang %endif Suggests: chromium-browser-pepper-flash Suggests: chromium-widevinecdm-plugin Conflicts: chromium-browser-beta Conflicts: chromium-browser-unstable Obsoletes: chromium-browser < 1:9.0.597.94 Obsoletes: chromium-browser-pdf-plugin < 17.0.0.169 Provides: %{crname} = %{EVRD} ExclusiveArch: %{ix86} x86_64 armv7l %description Chromium is a browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier. This is the stable channel Chromium browser. It offers a rock solid browser which is updated with features and fixes once they have been thoroughly tested. If you want the latest features, install the chromium-browser-unstable package instead. Note: If you are reverting from unstable to stable or beta channel, you may experience tab crashes on startup. This crash only affects tabs restored during the first launch due to a change in how tab state is stored. See http://bugs.chromium.org/34688. It's always a good idea to back up your profile before changing channels. %files %config %{_sysconfdir}/%{crname} %config %{_sysconfdir}/default/%{crname} %{_bindir}/%{crname} %{_crdir}/chromium-wrapper %{_crdir}/chrome %{_crdir}/chrome-sandbox %{_crdir}/icudtl.dat %{_crdir}/locales %{_crdir}/lib %{_crdir}/resources.pak %{_crdir}/resources %{_crdir}/chrome_*_percent.pak %{_crdir}/content_resources.pak %{_crdir}/keyboard_resources.pak %{_crdir}/*_blob.bin %{_crdir}/themes %{_crdir}/default_apps %dir %{_crdir}/pepper %{_mandir}/man1/%{crname}* %{_datadir}/applications/*.desktop %{_iconsdir}/hicolor/*/apps/chromium* %{_docdir}/%{name}/README.urpmi #---------------------------------------------------------------------------- %package -n chromium-browser Summary: A fast web browser based on the Blink engine Epoch: 1 Group: Networking/WWW Requires: %{name} = %{version}-%{release} %description -n chromium-browser Chromium is a browser that combines a minimal design with sophisticated technology to make the web faster, safer, and easier. This is a transition package that installs the stable channel Chromium browser. If you prefer the dev channel browser, install the chromium-browser-unstable package instead. %files -n chromium-browser #---------------------------------------------------------------------------- %package -n chromedriver Summary: WebDriver for Google Chrome/Chromium Group: Development/Other Requires: %{name} = %{version}-%{release} %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. %files -n chromedriver %doc LICENSE AUTHORS %{_bindir}/chromedriver %{_crdir}/chromedriver #---------------------------------------------------------------------------- %prep %setup -qn chromium-%{version} -a 998 -a 997 -a 999 # remove some third_party rm -rf third_party/binutils/ %patch4 -p1 -b .prefs %patch6 -p0 %patch8 -p1 #patch14 -p1 %patch15 -p1 #patch20 -p2 # archlinux arm enhancements %patch100 -p0 %patch101 -p0 # new from debian %patch500 -p1 %patch501 -p2 ### build with widevine support # Patch from crbug (chromium bugtracker) # fix the missing define (if not, fail build) (need upstream fix) (https://crbug.com/473866) sed '14i#define WIDEVINE_CDM_VERSION_STRING "Something fresh"' -i "third_party/widevine/cdm/stub/widevine_cdm_version.h" # Hard code extra version FILE=chrome/common/channel_info_posix.cc sed -i.orig -e 's/getenv("CHROME_VERSION_EXTRA")/"%{product_vendor} %{product_version}"/' $FILE cmp $FILE $FILE.orig && exit 1 %build # https://groups.google.com/a/chromium.org/forum/#!topic/chromium-packagers/9JX1N2nf4PU touch chrome/test/data/webui/i18n_process_css_test.html touch chrome/test/data/webui_test_resources.grd buildconfig+="-Dwerror= -Dlinux_sandbox_chrome_path=%{_libdir}/%{name}/chrome -Duse_system_ffmpeg=0 -Dbuild_ffmpegsumo=1 -Dproprietary_codecs=1 -Dremove_webcore_debug_symbols=1 -Dlogging_like_official_build=1 -Dlinux_fpic=1 -Ddisable_sse2=1 -Dcomponent=shared_library -Dtoolkit_uses_gtk=0 -Dffmpeg_branding=Chrome -Ddisable_nacl=1 -Ddisable_glibc=0 -Ddisable_pnacl=1 -Ddisable_newlib_untar=0 -Duse_system_xdg_utils=1 -Denable_hotwording=0 -Duse_aura=1" %if 0%{?clang} buildconfig+="-Dclang=1 -Dclang_use_chrome_plugins=0" %else buildconfig+=" -Dclang=0" %endif %if 0%{?chromium_system_libs} buildconfig+=" -Duse_system_flac=1 -Duse_system_speex=1 -Duse_system_libexif=1 -Duse_system_libevent=1 -Duse_system_libmtp=1 -Duse_system_opus=1 -Duse_system_bzip2=1 -Duse_system_harfbuzz=1 -Duse_system_libjpeg=1 -Duse_system_libpng=1 -Duse_system_libxslt=1 -Duse_system_libxml=1 -Duse_system_libyuv=1 -Duse_system_nspr=1 -Duse_system_protobuf=1 -Duse_system_yasm=1" %else buildconfig+=" -Duse_system_flac=0 -Duse_system_speex=0 -Duse_system_libexif=0 -Duse_system_libevent=0 -Duse_system_libmtp=0 -Duse_system_opus=0 -Duse_system_bzip2=0 -Duse_system_harfbuzz=0 -Duse_system_libjpeg=0 -Duse_system_libpng=0 -Duse_system_libxslt=0 -Duse_system_libxml=0 -Duse_system_libyuv=0 -Duse_system_nspr=0 -Duse_system_protobuf=0 -Duse_system_yasm=0" %endif %ifarch x86_64 buildconfig+=" -Dsystem_libdir=lib64 -Dtarget_arch=x64" %endif buildconfig+=" -Duse_system_icu=0 -Duse_pulseaudio=1 -Dlinux_link_libpci=1 -Dlinux_link_gnome_keyring=1 -Dlinux_link_gsettings=1 -Dlinux_link_libgps=1 -Dlinux_link_libspeechd=1 -Djavascript_engine=v8 -Dlinux_use_gold_binary=0 -Dlinux_use_gold_flags=0 -Dgoogle_api_key=AIzaSyD1hTe85_a14kr1Ks8T3Ce75rvbR1_Dx7Q -Dgoogle_default_client_id=4139804441.apps.googleusercontent.com -Dgoogle_default_client_secret=KDTRKEZk2jwT_7CDpcmMA--P" %if 0%{?clang} export CC=/usr/bin/clang export CXX=/usr/bin/clang++ # Modern Clang produces a *lot* of warnings export CXXFLAGS="${CXXFLAGS} -Wno-unknown-warning-option -Wno-unused-local-typedef -Wunknown-attributes -Wno-tautological-undefined-compare" #export GYP_DEFINES="clang=1 enable_hidpi=1 enable_touch_ui=1 enable_hotwording=0" %else #export GYP_DEFINES="enable_hidpi=1 enable_touch_ui=1 enable_hotwording=0" %endif build/linux/unbundle/replace_gyp_files.py $buildconfig export GYP_GENERATORS='ninja' ./build/gyp_chromium build/all.gyp --depth=. $buildconfig mkdir -p out/Release ninja -C out/Release chrome chrome_sandbox chromedriver #ninja -C out/Release chrome chrome_sandbox chromedriver widevinecdmadapter clearkeycdm %install mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_crdir}/locales mkdir -p %{buildroot}%{_crdir}/themes mkdir -p %{buildroot}%{_crdir}/default_apps mkdir -p %{buildroot}%{_mandir}/man1 install -m 755 %{_src}/chromium-wrapper %{buildroot}%{_crdir}/ install -m 755 out/Release/chrome %{buildroot}%{_crdir}/ install -m 4755 out/Release/chrome_sandbox %{buildroot}%{_crdir}/chrome-sandbox cp -a out/Release/chromedriver %{buildroot}%{_crdir}/chromedriver install -m 644 out/Release/chrome.1 %{buildroot}%{_mandir}/man1/%{crname}.1 install -m 644 out/Release/*.pak %{buildroot}%{_crdir}/ install -m 644 out/Release/icudtl.dat %{buildroot}%{_crdir}/ cp -a out/Release/*_blob.bin %{buildroot}%{_crdir}/ # chromium components mkdir -p %{buildroot}%{_crdir}/lib/ cp -av out/Release/lib/*.so %{buildroot}%{_crdir}/lib/ install -m 644 out/Release/locales/*.pak %{buildroot}%{_crdir}/locales/ install -m 644 out/Release/resources.pak %{buildroot}%{_crdir}/ install -m 644 chrome/browser/resources/default_apps/* %{buildroot}%{_crdir}/default_apps/ ln -s %{_crdir}/chromium-wrapper %{buildroot}%{_bindir}/%{crname} sed -i "s!@LIBDIR@!%{_libdir}!g" %{buildroot}%{_crdir}/chromium-wrapper ln -s %{_crdir}/chromedriver %{buildroot}%{_bindir}/chromedriver # create global config file mkdir -p %{buildroot}%{_sysconfdir}/default install -m644 %{SOURCE32} %{buildroot}%{_sysconfdir}/default/%{crname} # create pepper dir. talkplugin works fine only if sylinks in pepper mkdir -p %{buildroot}%{_crdir}/pepper find out/Release/resources/ -name "*.d" -exec rm {} \; cp -r out/Release/resources %{buildroot}%{_crdir} # desktop file mkdir -p %{buildroot}%{_datadir}/applications install -m 644 %{_src}/%{crname}.desktop %{buildroot}%{_datadir}/applications/ # icon mkdir -p %{buildroot}%{_iconsdir}/hicolor/ tar xjf %{SOURCE100} -C %{buildroot}%{_iconsdir}/hicolor/ mkdir -p %{buildroot}%{_sysconfdir}/%{crname} install -m 0644 %{SOURCE30} %{buildroot}%{_sysconfdir}/%{crname}/ install -m 0644 %{SOURCE31} %{buildroot}%{_sysconfdir}/%{crname}/ find %{buildroot} -name "*.nexe" -exec strip {} \; mkdir -p %{buildroot}%{_docdir}/%{name} install -p -m755 %{SOURCE1000} %{buildroot}%{_docdir}/%{name}