LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File chromium.spec of Package chromium (Project network: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
%if %{?suse_version} != 1320
# 1320 didn't contain ffmpeg YET
%bcond_without system_ffmpeg
%else
%bcond_with system_ffmpeg
%endif
%if %{?suse_version} <= 1320
%bcond_with system_vpx
%else
%bcond_without system_vpx
%endif
%if %{?suse_version} < 1330
%bcond_with system_icu
%else
%bcond_without system_icu
%endif
%if %{?suse_version} >= 1320 || (%{?suse_version} == 1315 && 0%{?leap_version} >= 420200)
%bcond_without system_minizip
%else
%bcond_with system_mnizip
%endif
# This is just overall condition to contain everything we can't provide on SLE12
%if 0%{?suse_version} >= 1320 || 0%{?is_opensuse}
%bcond_with sle_bundles
%else
%bcond_without sle_bundles
%endif
%bcond_with clang
Name:           chromium
Version:        55.0.2883.75
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
Source30:       master_preferences
Source100:      chromium-browser.sh
Source101:      chromium-browser.desktop
Source102:      chromium-browser.xml
Source103:      chromium.default
Source104:      chromium-icons.tar.bz2
# PATCH-FEATURE-UPSTREAM https://bugs.chromium.org/p/chromium/issues/detail?id=654190
Source105:      chromium-browser.appdata.xml
# 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-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
Patch12:        chromium-sandbox.patch
# PATCH-FIX-SUSE make ld use less memory by tweaking compiler flags
Patch13:        chromium-linker-memory.patch
# PATCH-FIX-UPSTREAM use system ffmpeg even in 2.x series version
Patch14:        chromium-54-ffmpeg2compat.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
# PATCH-FIX-SUSE: allow proprietary codecs to be set with chromium branding
Patch202:       chromium-prop-codecs.patch
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:  re2-devel
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(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)
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
%if !%{with sle_bundles}
BuildRequires:  python-Jinja2
BuildRequires:  python-beautifulsoup4
BuildRequires:  python-html5lib
BuildRequires:  python-ply
BuildRequires:  python-simplejson
BuildRequires:  python-xml
BuildRequires:  yasm-devel
%endif
%if %{with system_minizip}
BuildRequires:  pkgconfig(minizip)
%endif
%if %{with system_icu}
BuildRequires:  pkgconfig(icu-i18n) >= 54.0
%endif
%if %{with system_vpx}
BuildRequires:  pkgconfig(vpx) >= 1.4.0
%endif
%if %{with system_ffmpeg}
BuildRequires:  pkgconfig(libavcodec)
BuildRequires:  pkgconfig(libavfilter)
BuildRequires:  pkgconfig(libavformat)
BuildRequires:  pkgconfig(libavutil)
Conflicts:      otherproviders(ffmpegsumo)
Provides:       ffmpegsumo = %{version}
%else
Requires:       ffmpegsumo
# Recommends the chromium-ffmpeg library (available from packman)
Recommends:     %{name}-ffmpeg
%endif
%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.

%if !%{with system_ffmpeg}
%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
%endif

%package -n chromedriver
Summary:        WebDriver for Google Chrome/Chromium
License:        BSD-3-Clause
Group:          Development/Tools/Other
Url:            http://code.google.com/p/chromedriver/
Requires:       %{name} = %{version}

%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
%patch202 -p1

#Standard patches
%patch1
%patch2
%patch4
%patch5 -p1
%patch6 -p1
%patch7
%patch8 -p1
%if !%{with sle_bundles}
%patch9 -p1
%endif
%patch10
%patch12 -p1
%patch13 -p1
%patch14 -p1

# archlinux arm enhancements
%patch100
%patch101

# Remove bundled libs
keeplibs=(
    base/third_party/dmg_fp
    base/third_party/dynamic_annotations
    base/third_party/nspr
    base/third_party/icu
    base/third_party/superfasthash
    base/third_party/symbolize
    base/third_party/valgrind
    base/third_party/xdg_mime
    base/third_party/xdg_user_dirs
    breakpad/src/third_party/curl
    chrome/third_party/mozilla_security_manager
    courgette/third_party
    net/third_party/mozilla_security_manager
    net/third_party/nss
    third_party/WebKit
    third_party/analytics
    third_party/angle
    third_party/angle/src/common/third_party/numerics
    third_party/angle/src/third_party/compiler
    third_party/angle/src/third_party/libXNVCtrl
    third_party/angle/src/third_party/murmurhash
    third_party/angle/src/third_party/trace_event
    third_party/boringssl
    third_party/brotli
    third_party/cacheinvalidation
    third_party/catapult
    third_party/catapult/third_party/polymer
    third_party/catapult/third_party/py_vulcanize
    third_party/catapult/third_party/py_vulcanize/third_party/rcssmin
    third_party/catapult/third_party/py_vulcanize/third_party/rjsmin
    third_party/catapult/tracing/third_party/d3
    third_party/catapult/tracing/third_party/gl-matrix
    third_party/catapult/tracing/third_party/jszip
    third_party/catapult/tracing/third_party/mannwhitneyu
    third_party/ced
    third_party/cld_2
    third_party/cld_3
    third_party/cros_system_api
    third_party/devscripts
    third_party/dom_distiller_js
    third_party/fips181
    third_party/flatbuffers
    third_party/flot
    third_party/google_input_tools
    third_party/google_input_tools/third_party/closure_library
    third_party/google_input_tools/third_party/closure_library/third_party/closure
    third_party/hunspell
    third_party/iccjpeg
    third_party/icu
    third_party/jstemplate
    third_party/khronos
    third_party/leveldatabase
    third_party/libXNVCtrl
    third_party/libaddressinput
    third_party/libjingle
    third_party/libphonenumber
    third_party/libsecret
    third_party/libsrtp
    third_party/libudev
    third_party/libusb
    third_party/libwebm
    third_party/libxml/chromium
    third_party/libyuv
    third_party/lss
    third_party/lzma_sdk
    third_party/mesa
    third_party/modp_b64
    third_party/mt19937ar
    third_party/openh264
    third_party/openmax_dl
    third_party/opus
    third_party/ots
    third_party/pdfium
    third_party/pdfium/third_party/agg23
    third_party/pdfium/third_party/base
    third_party/pdfium/third_party/bigint
    third_party/pdfium/third_party/freetype
    third_party/pdfium/third_party/lcms2-2.6
    third_party/pdfium/third_party/libjpeg
    third_party/pdfium/third_party/libopenjpeg20
    third_party/pdfium/third_party/libpng16
    third_party/pdfium/third_party/libtiff
    third_party/pdfium/third_party/zlib_v128
    third_party/polymer
    third_party/protobuf
    third_party/protobuf/third_party/six
    third_party/qcms
    third_party/sfntly
    third_party/skia
    third_party/smhasher
    third_party/sqlite
    third_party/tcmalloc
    third_party/usrsctp
    third_party/web-animations-js
    third_party/webdriver
    third_party/webrtc
    third_party/widevine
    third_party/woff2
    third_party/x86inc
    third_party/zlib/google
    url/third_party/mozilla
    v8/src/third_party/valgrind
)
%if %{with sle_bundles}
keeplibs+=(
    third_party/yasm
    third_party/jinja2
    third_party/markupsafe
    third_party/simplejson
    third_party/ply
    third_party/catapult/third_party/beautifulsoup4
    third_party/catapult/third_party/html5lib-python
)
%endif
%if !%{with system_minizip}
keeplibs+=( third_party/zlib )
%endif
%if !%{with system_vpx}
keeplibs+=(
    third_party/libvpx
    third_party/libvpx/source/libvpx/third_party/x86inc
)
%endif
%if !%{with system_ffmpeg}
keeplibs+=( third_party/ffmpeg )
%endif
# needed due to bugs in GN
keeplibs+=(
    base/third_party/libevent
    third_party/adobe
    third_party/speech-dispatcher
    third_party/usb_ids
    third_party/xdg-utils
    third_party/yasm/run_yasm.py
)
build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove

%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

# Set system libraries to be used
gn_system_libraries="
    flac
    harfbuzz-ng
    libjpeg
    libpng
    libwebp
    libxml
    libxslt
    re2
    snappy
"
%if !%{with sle_bundles}
gn_system_libraries+=" yasm"
%endif
%if %{with system_minizip}
gn_system_libraries+=" zlib"
%endif
%if %{with system_icu}
gn_system_libraries+=" icu"
%endif
%if %{with system_vpx}
gn_system_libraries+=" libvpx"
%endif
%if %{with system_ffmpeg}
gn_system_libraries+=" ffmpeg"
%endif
build/linux/unbundle/replace_gn_files.py --system-libraries ${gn_system_libraries}

# Create the configuration for GN
# Available options: out/Release/gn args --list out/Release/
myconf_gn=""
myconf_gn+=" linux_use_bundled_binutils=false"
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+=" is_component_build=false"
myconf_gn+=" use_sysroot=false"
myconf_gn+=" treat_warnings_as_errors=false"
myconf_gn+=" fatal_linker_warnings=false"
myconf_gn+=" use_allocator=\"tcmalloc\""
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
# The proprietary codecs just force the chromium to say they can use it and
# offload the actual computation to the split ffmpeg.so, otherwise the chromium
# won't be able to load the codec even if the library can handle it
myconf_gn+=" proprietary_codecs=true"
%if 0%{?packman_bs} || %{with system_ffmpeg}
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"
%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 %{buildroot}%{_libdir}/chromium/
    %if !%{with system_icu}
    cp -a icudtl.dat %{buildroot}%{_libdir}/chromium/
    %endif

    # chromedriver
    cp -a chromedriver %{buildroot}%{_libdir}/chromium/

    # ffmpeg
    %if !%{with system_ffmpeg}
    cp -a libffmpeg.so %{buildroot}%{_libdir}/chromium/
    %endif

    # 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}/appdata/
    cp -a %{SOURCE105} %{buildroot}%{_datadir}/appdata/

    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

    # 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
%dir %{_datadir}/appdata/
%{_datadir}/appdata/chromium-browser.appdata.xml
%{_datadir}/gnome-control-center/default-apps/chromium-browser.xml
%{_datadir}/icons/hicolor/
%{_libexecdir}/chrome_sandbox
%if !%{with system_ffmpeg}
%exclude %{_libdir}/chromium/libffmpeg.so
%endif
%exclude %{_libdir}/chromium/chromedriver
%{_bindir}/chromium

%if !%{with system_ffmpeg}
%files ffmpegsumo
%defattr(-,root,root,-)
%{_libdir}/chromium/libffmpeg.so
%endif

%files -n chromedriver
%defattr(-,root,root,-)
%{_libdir}/chromium/chromedriver
%endif

%changelog