]> git.pld-linux.org Git - packages/chromium-browser.git/blobdiff - chromium-browser.spec
disable ninja, gold linker runs oom on builders
[packages/chromium-browser.git] / chromium-browser.spec
index b9f4fb8d997e10046be097bd9be1a214a039f23d..aab0237d197f0b32fca13782f4127a0592959765 100644 (file)
@@ -7,14 +7,15 @@
 %bcond_without keyring                 # with keyring support (gnome-keyring dlopened, kwalletd via dbus)
 %bcond_with            gps                     # with gps support (linked), if enabled must use exactly same gpsd as shm structures may change leading to unexpected results (crash)
 %bcond_without libjpegturbo    # use libjpeg-turbo features
-%bcond_without nacl                    # build Native Client support
+%bcond_with    nacl                    # build Native Client support, disabled: http://crbug.com/269560
+%bcond_with    ninja                   # use Ninja instead of make to build
 %bcond_without pulseaudio              # with pulseaudio
 %bcond_without sandboxing              # with sandboxing
 %bcond_with            selinux                 # with SELinux (need policy first)
 %bcond_with            shared_libs             # with shared libs
 %bcond_with            sse2                    # use SSE2 instructions
 %bcond_without system_flac             # system flac
-%bcond_without system_ffmpeg   # system ffmpeg instead of ffmpegsumo
+%bcond_with    system_ffmpeg   # system ffmpeg instead of ffmpegsumo
 %bcond_without system_harfbuzz # system harfbuzz
 %bcond_without system_jsoncpp  # system jsoncpp
 %bcond_without system_libexif  # system libexif
@@ -59,9 +60,9 @@
 # - http://code.google.com/p/chromium/wiki/LinuxBuildInstructionsPrerequisites
 # - to look for new tarball, use update-source.sh script
 
-%define                branch          30.0.1599
-%define                basever         66
-#define                patchver        76
+%define                branch          33.0.1750
+%define                basever         117
+#define                patchver        107
 %define                gyp_rev 1014
 Summary:       A WebKit powered web browser
 Name:          chromium-browser
@@ -73,11 +74,11 @@ Version:    %{branch}.%{basever}
 Release:       1
 License:       BSD%{!?with_system_ffmpeg:, LGPL v2+ (ffmpeg)}
 Group:         X11/Applications/Networking
-Source0:       http://carme.pld-linux.org/~glen/chromium-browser/src/beta/%{name}-%{branch}.%{basever}.tar.gz
-# Source0-md5: 48e0806c4eab5dcc428fd59a826d0498
+Source0:       http://carme.pld-linux.org/~glen/chromium-browser/src/stable/%{name}-%{branch}.%{basever}.tar.xz
+# Source0-md5: 0811b1c65f2b8d1ebf00664ddb2f5e05
 %if "%{?patchver}" != ""
 Patch0:                http://carme.pld-linux.org/~glen/chromium-browser/src/stable/%{name}-%{version}.patch.xz
-# Patch0-md5:  ffbb56731a752ce52caaf0448dd6e073
+# Patch0-md5:  82e3012b5510187907bba50dadbe7137
 %endif
 Source1:       %{name}.default
 Source2:       %{name}.sh
@@ -103,7 +104,10 @@ Patch24:   nacl-verbose.patch
 Patch25:       gnome3-volume-control.patch
 Patch26:       master-prefs-path.patch
 Patch28:       system-mesa.patch
-Patch29:       system-icu.patch
+Patch30:       system-ply.patch
+Patch31:       system-jinja.patch
+Patch32:       remove_bundled_libraries-stale.patch
+Patch33:       gn.patch
 URL:           http://www.chromium.org/Home
 %{?with_gconf:BuildRequires:   GConf2-devel}
 %{?with_system_mesa:BuildRequires:     Mesa-libGL-devel >= 9.1}
@@ -146,12 +150,13 @@ BuildRequires:    libpng-devel
 %{?with_selinux:BuildRequires: libselinux-devel}
 BuildRequires: libstdc++-devel
 %{?with_system_libusb:BuildRequires:   libusb-devel >= 1.0}
-%{?with_system_libvpx:BuildRequires:   libvpx-devel >= 0.9.5-2}
-%{?with_system_libwebp:BuildRequires:  libwebp-devel >= 0.1.99}
+%{?with_system_libvpx:BuildRequires:   libvpx-devel >= 1.3.0}
+%{?with_system_libwebp:BuildRequires:  libwebp-devel >= 0.4.0}
 BuildRequires: libxml2-devel
 BuildRequires: libxslt-devel
 BuildRequires: man-db
 %{?with_system_minizip:BuildRequires:  minizip-devel}
+%{?with_ninja:BuildRequires:   ninja >= 1.3.0}
 BuildRequires: nspr-devel
 BuildRequires: nss-devel >= 1:3.12.3
 %{?with_system_opus:BuildRequires:     opus-devel >= 1.0.2}
@@ -165,9 +170,9 @@ BuildRequires:      pkgconfig
 %{?with_pulseaudio:BuildRequires:      pulseaudio-devel}
 BuildRequires: python
 #BuildRequires:        python-gyp >= 1-%{gyp_rev}
-BuildRequires: python-jinja2
+BuildRequires: python-jinja2 >= 2.7
 BuildRequires: python-modules
-BuildRequires: python-ply
+BuildRequires: python-ply >= 3.4
 %{?with_system_re2:BuildRequires:      re2-devel >= 20130115-2}
 BuildRequires: rpm >= 4.4.9-56
 BuildRequires: rpmbuild(macros) >= 1.453
@@ -195,7 +200,7 @@ Requires:   fonts-Type1-urw
 Requires:      hicolor-icon-theme
 Requires:      libevent >= 2.0.21
 %{?with_libjpegturbo:Requires: libjpeg-turbo >= 1.2.0}
-%{?with_system_libvpx:Requires:        libvpx >= 0.9.5-2}
+%{?with_system_libvpx:Requires:        libvpx >= 1.3.0}
 Requires:      lsb-release
 %{?with_system_re2:Requires:   re2 >= 20130115-2}
 Requires:      shared-mime-info
@@ -220,6 +225,16 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 # Usage: gyp_with BCOND_NAME [OPTION_NAME]
 %define                gyp_with() %{expand:%%{?with_%{1}:-D%{?2:use_%{2}}%{!?2:use_%{1}}=1}%%{!?with_%{1}:-D%{?2:use_%{2}}%{!?2:use_%{1}}=0}}
 
+%ifarch %{ix86}
+%define                target_arch ia32
+%endif
+%ifarch %{x8664}
+%define                target_arch x64
+%endif
+
+%define                buildtype       %{?debug:Debug}%{!?debug:Release}
+%define                builddir        out/%{buildtype}
+
 %if %{without debuginfo}
 %define                _enable_debug_packages  0
 %endif
@@ -293,13 +308,15 @@ ln -s %{SOURCE7} .
 %patch12 -p1
 %patch16 -p1
 %patch28 -p1
-%patch25 -p2
-%patch18 -p1
+%patch25 -p1
+%{?with_nacl:%patch18 -p1}
 %patch24 -p2
 %patch26 -p2
-%patch29 -p0
+%patch30 -p1
+%patch31 -p0
+%patch32 -p1
+%patch33 -p0
 
-exit 0
 sh -x clean-source.sh \
        %{!?with_nacl:nacl=0} \
        %{!?with_system_libvpx:libvpx=0} \
@@ -310,7 +327,9 @@ sh -x clean-source.sh \
        %{!?with_system_snappy:snappy=0} \
        %{!?with_system_sqlite:sqlite=0} \
        %{!?with_system_v8:v8=0} \
+       %{!?with_system_libwebp:libwebp=0} \
        %{!?with_system_zlib:zlib=0} \
+       %{!?with_system_ffmpeg:ffmpeg=0} \
        %{nil}
 
 %build
@@ -350,19 +369,23 @@ cd ../../../../..
 fi
 %endif
 
-flags="
-%ifarch %{ix86}
-       -Dtarget_arch=ia32 \
-%endif
-%ifarch %{x8664}
-       -Dtarget_arch=x64 \
+%if %{without system_ffmpeg}
+if [ ! -d third_party/ffmpeg/build.%{target_arch}.linux ]; then
+       # Re-configure bundled ffmpeg
+       cd third_party/ffmpeg
+       chromium/scripts/build_ffmpeg.sh linux %{target_arch} "$PWD" config-only
+       chromium/scripts/copy_config.sh
+       cd -
+fi
 %endif
+
+flags="
+       -Dtarget_arch=%{target_arch} \
+       -Dpython_arch=%{target_arch} \
+       -Dsystem_libdir=%{_lib} \
+       -Dpython_ver=%{py_ver} \
 %if "%{cc_version}" >= "4.4.0" && "%{cc_version}" < "4.5.0"
        -Dno_strict_aliasing=1 -Dgcc_version=44 \
-%endif
-%if %{with sandboxing}
-       -Dlinux_sandbox_path=%{_libdir}/%{name}/chromium-sandbox \
-       -Dlinux_sandbox_chrome_path=%{_libdir}/%{name}/%{name} \
 %endif
        %{!?debug:-Dwerror=} \
        %{!?debuginfo:-Dfastbuild=1 -Dremove_webcore_debug_symbols=1} \
@@ -406,7 +429,7 @@ flags="
        %{gyp_with system_libmtp} \
        %{gyp_with system_libsrtp} \
        %{gyp_with system_libusb} \
-       %{gyp_with system_libvpx} -Dmedia_use_libvpx=0 \
+       %{gyp_with system_libvpx} -Dmedia_use_libvpx=1 \
        %{gyp_with system_libwebp} \
        %{gyp_with system_libxnvctrl} \
        %{gyp_with system_mesa} \
@@ -434,8 +457,13 @@ flags="
 
 build/linux/unbundle/replace_gyp_files.py $flags
 
-test %{_specdir}/%{name}.spec -nt Makefile && %{__rm} -f Makefile
-test -e Makefile || \
+%if %{with ninja}
+chkfile=%{builddir}/build.ninja
+%else
+chkfile=Makefile
+%endif
+test %{_specdir}/%{name}.spec -nt $chkfile && %{__rm} -f $chkfile
+test -e $chkfile || \
        CC="%{__cc}" \
        CXX="%{__cxx}" \
        LDFLAGS="%{rpmldflags} -fuse-ld=gold" \
@@ -445,20 +473,26 @@ test -e Makefile || \
        CXX_host="%{__cxx}" \
        LD_host="%{__cxx}" \
 %{__python} build/gyp_chromium \
-       --format=make \
+       --format=%{?with_ninja:ninja}%{!?with_ninja:make} \
        --depth=. \
        build/all.gyp \
        $flags
 
+%if %{with ninja}
+ninja %{?_smp_mflags} %{?with_verbose:-v} -C %{builddir} \
+%else
 # need {CC/CXX/LDFLAGS}.host overrides for v8 build
-%{__make} -r chrome %{?with_sandboxing:chrome_sandbox} \
-       BUILDTYPE=%{!?debug:Release}%{?debug:Debug} \
+%{__make} -r \
+       BUILDTYPE=%{buildtype} \
        %{?with_verbose:V=1} \
        CC.host="%{__cc}" \
        CXX.host="%{__cxx}" \
        LDFLAGS.host="%{rpmldflags} -fuse-ld=gold" \
+%endif
+       chrome %{?with_sandboxing:chrome_sandbox} \
+       %{nil}
 
-cd out/%{!?debug:Release}%{?debug:Debug}
+cd %{builddir}
 MANWIDTH=80 man ./chrome.1 > man.out
 %{__sed} -e '1,/OPTIONS/d; /ENVIRONMENT/,$d' man.out > options.txt
 
@@ -468,7 +502,7 @@ install -d $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins \
        $RPM_BUILD_ROOT%{_datadir}/%{name}/{locales,resources} \
        $RPM_BUILD_ROOT{%{_bindir},%{_sysconfdir}/%{name},%{_mandir}/man1,%{_desktopdir}}
 
-cd out/%{!?debug:Release}%{?debug:Debug}
+cd %{builddir}
 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/default
 install -p %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/%{name}
 %{__sed} -i -e '
@@ -485,7 +519,7 @@ ln -s %{_datadir}/%{name}/locales $RPM_BUILD_ROOT%{_libdir}/%{name}/locales
 ln -s %{_datadir}/%{name}/resources $RPM_BUILD_ROOT%{_libdir}/%{name}/resources
 cp -p chrome.1 $RPM_BUILD_ROOT%{_mandir}/man1/%{name}.1
 install -p chrome $RPM_BUILD_ROOT%{_libdir}/%{name}/%{name}
-install -p chrome_sandbox $RPM_BUILD_ROOT%{_libdir}/%{name}/chromium-sandbox
+install -p chrome_sandbox $RPM_BUILD_ROOT%{_libdir}/%{name}/chrome-sandbox
 %if %{without system_ffmpeg}
 install -p libffmpegsumo.so $RPM_BUILD_ROOT%{_libdir}/%{name}
 %endif
@@ -581,7 +615,7 @@ fi
 %dir %{_libdir}/%{name}/plugins
 %attr(755,root,root) %{_libdir}/%{name}/%{name}
 # These unique permissions are intentional and necessary for the sandboxing
-%attr(4555,root,root) %{_libdir}/%{name}/chromium-sandbox
+%attr(4555,root,root) %{_libdir}/%{name}/chrome-sandbox
 
 # ffmpeg libs
 %if %{without system_ffmpeg}
This page took 1.245282 seconds and 4 git commands to generate.