packages: chromium-browser/chromium-browser.spec (NEW), chromium-browser/ch...
arekm
arekm at pld-linux.org
Fri Sep 18 21:26:47 CEST 2009
Author: arekm Date: Fri Sep 18 19:26:47 2009 GMT
Module: packages Tag: HEAD
---- Log message:
- raw
---- Files affected:
packages/chromium-browser:
chromium-browser.spec (NONE -> 1.1) (NEW), chromium-browser.spec~ (NONE -> 1.1) (NEW), chromium-daily-tarball.sh (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: packages/chromium-browser/chromium-browser.spec
diff -u /dev/null packages/chromium-browser/chromium-browser.spec:1.1
--- /dev/null Fri Sep 18 21:26:47 2009
+++ packages/chromium-browser/chromium-browser.spec Fri Sep 18 21:26:42 2009
@@ -0,0 +1,129 @@
+# $Revision$, $Date$
+# spec from http://spot.fedorapeople.org/chromium/
+
+%global svndate 20090711
+%global svnver svn20464
+
+Summary: A WebKit powered web browser
+Name: chromium
+Version: 3.0.194.0
+Release: 0.1.%{svndate}%{svnver}%{?dist}
+License: BSD
+Group: Applications/Networking
+# see src/chrome/VERSION
+Patch0: %{name}-20090711-system-bz2-xml2-xslt-zlib-minizip-libevent-jpeg-png-nss-nspr-v8.patch
+# Use chromium-daily-tarball.sh to generate tarball.
+Source0: %{name}-%{svndate}%{svnver}.tar.bz2
+# Custom build tools for chromium, hammer is a fancy front-end for scons
+Source1: http://src.chromium.org/svn/trunk/tools/depot_tools.tar.gz
+Source2: %{name}-browser.sh
+Source3: %{name}-browser.desktop
+# We don't actually use this in the build, but it is included so you can make the tarball.
+Source4: %{name}-daily-tarball.sh
+BuildRequires: bzip2-devel
+BuildRequires: libevent-devel
+BuildRequires: libjpeg-devel
+BuildRequires: libpng-devel
+BuildRequires: desktop-file-utils
+BuildRequires: gperf
+BuildRequires: flex
+BuildRequires: gtk2-devel
+BuildRequires: atk-devel
+BuildRequires: v8-devel
+BuildRequires: scons
+BuildRequires: gcc-c++
+BuildRequires: bison
+BuildRequires: fontconfig-devel
+BuildRequires: GConf2-devel
+BuildRequires: dbus-devel
+BuildRequires: alsa-lib-devel
+BuildRequires: libxslt-devel
+BuildRequires: nss-devel
+BuildRequires: nspr-devel
+BuildRequires: minizip-devel
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+# Chromium bits don't compile on x86_64.
+ExclusiveArch: %{ix86} arm
+
+%description
+Chromium is an open-source web browser, powered by WebKit.
+
+%prep
+%setup -q -n %{name}-%{svndate}%{svnver} -a 1
+cp %{SOURCE4} .
+
+# Somehow, path noise from the tarball creation got embedded.
+# Thanks gclient. :P
+# FIXME: Figure out how to avoid this
+for i in `find . |grep "\.scons"`; do
+ sed -i "s|/home/spot/sandbox/chromium-%{svndate}/|%{_builddir}/chromium-%{svndate}%{svnver}/|g" $i
+done
+
+# Patch in support for system libs
+# bz2, xml2, xslt, zlib, minizp, event, jpeg, png, nss, nspr, v8
+%patch0 -p1 -b .system
+
+# Scrape out incorrect optflags and hack in the correct ones
+PARSED_OPT_FLAGS=`echo \'$RPM_OPT_FLAGS \' | sed "s/ /',/g" | sed "s/',/', '/g"`
+for i in `find . |grep "\.scons"`; do
+ sed -i "s|'-march=pentium4',||g" $i
+ sed -i "s|'-msse2',||g" $i
+ sed -i "s|'-mfpmath=sse',||g" $i
+ sed -i "s|'-O0',||g" $i
+ sed -i "s|'-m32',|$PARSED_OPT_FLAGS|g" $i
+done
+
+# Change the location for the sandbox helper binary
+sed -i 's|/opt/google/chrome/chrome-sandbox|%{_libdir}/chromium-browser/chrome-sandbox|g' src/chrome/browser/zygote_host_linux.cc
+
+# Tell the sandbox code where to find chromium-browser
+sed -i 's|/opt/google/chrome/chrome|%{_libdir}/chromium-browser/chromium-browser|g' src/sandbox/linux/suid/sandbox.cc
+
+%build
+cd src/build/
+../../depot_tools/hammer --mode=Release chrome chrome_sandbox
+
+%install
+rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{_bindir}
+cp -a %{SOURCE2} $RPM_BUILD_ROOT%{_bindir}/chromium-browser
+install -d $RPM_BUILD_ROOT%{_libdir}/chromium-browser/
+pushd src/sconsbuild/Release
+cp -a chrome.pak locales resources themes $RPM_BUILD_ROOT%{_libdir}/chromium-browser/
+cp -a chrome $RPM_BUILD_ROOT%{_libdir}/chromium-browser/chromium-browser
+cp -a chrome_sandbox $RPM_BUILD_ROOT%{_libdir}/chromium-browser/chrome-sandbox
+popd
+
+install -d $RPM_BUILD_ROOT%{_pixmapsdir}/
+cp -a src/chrome/app/theme/chromium/product_logo_48.png $RPM_BUILD_ROOT%{_pixmapsdir}/chromium-browser.png
+
+install -d $RPM_BUILD_ROOT%{_desktopdir}/
+desktop-file-install --dir $RPM_BUILD_ROOT%{_desktopdir} %{SOURCE3}
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(644,root,root,755)
+%doc chromium-daily-tarball.sh
+%attr(755,root,root) %{_bindir}/chromium-browser
+%dir %{_libdir}/chromium-browser/
+%{_libdir}/chromium-browser/chrome.pak
+# These unique permissions are intentional and necessary for the sandboxing
+%{_libdir}/chromium-browser/chromium-browser
+%attr(4555, root, root) %{_libdir}/chromium-browser/chrome-sandbox
+%{_libdir}/chromium-browser/locales/
+%{_libdir}/chromium-browser/resources/
+%{_libdir}/chromium-browser/themes/
+%{_pixmapsdir}/chromium-browser.png
+%{_desktopdir}/*.desktop
+
+%define date %(echo `LC_ALL="C" date +"%a %b %d %Y"`)
+%changelog
+* %{date} PLD Team <feedback at pld-linux.org>
+All persons listed below can be reached at <cvs_login>@pld-linux.org
+
+$Log$
+Revision 1.1 2009/09/18 19:26:42 arekm
+- raw
+
================================================================
Index: packages/chromium-browser/chromium-browser.spec~
diff -u /dev/null packages/chromium-browser/chromium-browser.spec~:1.1
--- /dev/null Fri Sep 18 21:26:47 2009
+++ packages/chromium-browser/chromium-browser.spec~ Fri Sep 18 21:26:42 2009
@@ -0,0 +1,131 @@
+%global svndate 20090711
+%global svnver svn20464
+
+Name: chromium
+# see src/chrome/VERSION
+Version: 3.0.194.0
+Release: 0.1.%{svndate}%{svnver}%{?dist}
+Summary: A WebKit powered web browser
+License: BSD
+Group: Applications/Internet
+Patch0: chromium-20090711-system-bz2-xml2-xslt-zlib-minizip-libevent-jpeg-png-nss-nspr-v8.patch
+# Use chromium-daily-tarball.sh to generate tarball.
+Source0: chromium-%{svndate}%{svnver}.tar.bz2
+# Custom build tools for chromium, hammer is a fancy front-end for scons
+Source1: http://src.chromium.org/svn/trunk/tools/depot_tools.tar.gz
+Source2: chromium-browser.sh
+Source3: chromium-browser.desktop
+# We don't actually use this in the build, but it is included so you can make the tarball.
+Source4: chromium-daily-tarball.sh
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRequires: bzip2-devel, libevent-devel, libjpeg-devel, libpng-devel
+BuildRequires: libxslt-devel, nss-devel, nspr-devel, minizip-devel
+BuildRequires: v8-devel, scons, gcc-c++, bison, flex, gtk2-devel, atk-devel
+BuildRequires: fontconfig-devel, GConf2-devel, dbus-devel, alsa-lib-devel
+BuildRequires: desktop-file-utils, gperf
+# Chromium bits don't compile on x86_64.
+ExclusiveArch: %{ix86} arm
+
+%description
+Chromium is an open-source web browser, powered by WebKit.
+
+%prep
+%setup -q -n chromium-%{svndate}%{svnver} -a 1
+cp %{SOURCE4} .
+
+# Somehow, path noise from the tarball creation got embedded.
+# Thanks gclient. :P
+# FIXME: Figure out how to avoid this
+for i in `find . |grep "\.scons"`; do
+ sed -i "s|/home/spot/sandbox/chromium-%{svndate}/|%{_builddir}/chromium-%{svndate}%{svnver}/|g" $i
+done
+
+# Patch in support for system libs
+# bz2, xml2, xslt, zlib, minizp, event, jpeg, png, nss, nspr, v8
+%patch0 -p1 -b .system
+
+# Scrape out incorrect optflags and hack in the correct ones
+PARSED_OPT_FLAGS=`echo \'$RPM_OPT_FLAGS \' | sed "s/ /',/g" | sed "s/',/', '/g"`
+for i in `find . |grep "\.scons"`; do
+ sed -i "s|'-march=pentium4',||g" $i
+ sed -i "s|'-msse2',||g" $i
+ sed -i "s|'-mfpmath=sse',||g" $i
+ sed -i "s|'-O0',||g" $i
+ sed -i "s|'-m32',|$PARSED_OPT_FLAGS|g" $i
+done
+
+# Change the location for the sandbox helper binary
+sed -i 's|/opt/google/chrome/chrome-sandbox|%{_libdir}/chromium-browser/chrome-sandbox|g' src/chrome/browser/zygote_host_linux.cc
+
+# Tell the sandbox code where to find chromium-browser
+sed -i 's|/opt/google/chrome/chrome|%{_libdir}/chromium-browser/chromium-browser|g' src/sandbox/linux/suid/sandbox.cc
+
+%build
+cd src/build/
+../../depot_tools/hammer --mode=Release chrome chrome_sandbox
+
+%install
+rm -rf %{buildroot}
+mkdir -p %{buildroot}%{_bindir}
+cp -a %{SOURCE2} %{buildroot}%{_bindir}/chromium-browser
+mkdir -p %{buildroot}%{_libdir}/chromium-browser/
+pushd src/sconsbuild/Release
+cp -a chrome.pak locales resources themes %{buildroot}%{_libdir}/chromium-browser/
+cp -a chrome %{buildroot}%{_libdir}/chromium-browser/chromium-browser
+cp -a chrome_sandbox %{buildroot}%{_libdir}/chromium-browser/chrome-sandbox
+popd
+
+mkdir -p %{buildroot}%{_datadir}/pixmaps/
+cp -a src/chrome/app/theme/chromium/product_logo_48.png %{buildroot}%{_datadir}/pixmaps/chromium-browser.png
+
+mkdir -p %{buildroot}%{_datadir}/applications/
+desktop-file-install --dir %{buildroot}%{_datadir}/applications %{SOURCE3}
+
+%clean
+rm -rf %{buildroot}
+
+%files
+%defattr(-,root,root,-)
+%doc chromium-daily-tarball.sh
+%{_bindir}/chromium-browser
+%dir %{_libdir}/chromium-browser/
+%{_libdir}/chromium-browser/chrome.pak
+# These unique permissions are intentional and necessary for the sandboxing
+%{_libdir}/chromium-browser/chromium-browser
+%attr(4555, root, root) %{_libdir}/chromium-browser/chrome-sandbox
+%{_libdir}/chromium-browser/locales/
+%{_libdir}/chromium-browser/resources/
+%{_libdir}/chromium-browser/themes/
+%{_datadir}/pixmaps/chromium-browser.png
+%{_datadir}/applications/*.desktop
+
+%changelog
+* Sat Jul 11 2009 Tom "spot" Callaway <tcallawa at redhat.com> 3.0.194.0-0.1.20090711svn20464
+- 20090711svn20464
+- fix sandboxing up to match code changes (no longer need to be read-only, doesn't need /var/run/chrome-sandbox)
+
+* Wed Jul 8 2009 Tom "spot" Callaway <tcallawa at redhat.com> 3.0.193.0-0.1.20090708svn20141
+- 20090708svn20141
+- support LinuxZygote sandboxing
+
+* Sat Jul 4 2009 Tom "spot" Callaway <tcallawa at redhat.com> 3.0.192.0-0.1.20090704svn19929
+- 20090704svn19929
+- hack in correct optflags
+
+* Sun Jun 28 2009 Tom "spot" Callaway <tcallawa at redhat.com>
+- 20090628svn19474
+
+* Fri Jun 26 2009 Tom "spot" Callaway <tcallawa at redhat.com>
+- 20090626svn19370
+
+* Thu Jun 25 2009 Tom "spot" Callaway <tcallawa at redhat.com>
+- 3.0.191.0 20090625svn19237
+
+* Thu Jun 18 2009 Tom "spot" Callaway <tcallawa at redhat.com>
+- 3.0.190.0 20090618svn18706
+
+* Mon Jun 8 2009 Tom "spot" Callaway <tcallawa at redhat.com>
+- 20090608svn17870
+
+* Sat Jun 6 2009 Tom "spot" Callaway <tcallawa at redhat.com>
+- 20090606svn17834
================================================================
Index: packages/chromium-browser/chromium-daily-tarball.sh
diff -u /dev/null packages/chromium-browser/chromium-daily-tarball.sh:1.1
--- /dev/null Fri Sep 18 21:26:47 2009
+++ packages/chromium-browser/chromium-daily-tarball.sh Fri Sep 18 21:26:42 2009
@@ -0,0 +1,193 @@
+#!/bin/bash
+
+# This script checks out chromium source from svn, using the gclient tool.
+
+LOCALDIR=`pwd`
+REMOVE=false
+TODAYSDATE=`date +%Y%m%d`
+USAGE="Usage: chromium-daily-tarball.sh [-hrv]"
+VERBOSE=false
+
+
+while getopts "hrv" opt; do
+ case $opt in
+ h ) printf "$USAGE\n"
+ printf "\nAvailable command line options:\n"
+ printf "%b\t-h\t\tthis help\n"
+ printf "%b\t-r\t\tremove conflicting chromium files/directories\n"
+ printf "%b\t-v\t\tverbose output\n\n"
+ exit 1 ;;
+ r ) REMOVE=true ;;
+ v ) VERBOSE=true
+ printf "[VERBOSE]: Enabled\n" ;;
+ \? ) printf "$USAGE\n"
+ exit 1 ;;
+ esac
+done
+
+# Prerequisites:
+# gclient
+printf "Looking for gclient in your PATH: "
+which gclient
+RETVAL=$?
+if [ $RETVAL -ne 0 ]; then
+ printf "[ERROR]: Could not find gclient in PATH. Please install it first.\n"
+ exit 2
+else
+ printf "Found it! Lets get to work.\n"
+fi
+
+
+# First, lets look for the directory, without svnrev.
+if [ -d chromium-$TODAYSDATE ]; then
+ if [ "$REMOVE" = "true" ]; then
+ if [ "$VERBOSE" = "true" ]; then
+ printf "[VERBOSE]: Removing conflicting directory: chromium-$TODAYSDATE/\n"
+ fi
+ rm -rf chromium-$TODAYSDATE/
+ if [ "$VERBOSE" = "true" ]; then
+ printf "[VERBOSE]: Removed conflicting directory: chromium-$TODAYSDATE/\n"
+ fi
+ else
+ printf "[ERROR]: chromium-$TODAYSDATE/ exists, use -r option to remove it\n"
+ exit 2
+ fi
+fi
+
+# At this point, we know the chromium daily directory does not exist, time to make it.
+if [ "$VERBOSE" = "true" ]; then
+ printf "[VERBOSE]: Creating directory: chromium-$TODAYSDATE/\n"
+fi
+mkdir -p chromium-$TODAYSDATE
+
+# go into the chromium dir
+pushd chromium-$TODAYSDATE/
+
+# Make the gclient config
+if [ "$VERBOSE" = "true" ]; then
+ printf "[VERBOSE]: Generating gclient config\n"
+fi
+
+gclient config http://src.chromium.org/svn/trunk/src
+
+# We rewrite .gclient to take out the LayoutTests for size considerations
+cat > .gclient <<'EOF'
+# An element of this array (a "solution") describes a repository directory
+# that will be checked out into your working copy. Each solution may
+# optionally define additional dependencies (via its DEPS file) to be
+# checked out alongside the solution's directory. A solution may also
+# specify custom dependencies (via the "custom_deps" property) that
+# override or augment the dependencies specified by the DEPS file.
+# If a "safesync_url" is specified, it is assumed to reference the location of
+# a text file which contains nothing but the last known good SCM revision to
+# sync against. It is fetched if specified and used unless --head is passed
+solutions = [
+ { "name" : "src",
+ "url" : "http://src.chromium.org/svn/trunk/src",
+ "custom_deps" : {
+ # To use the trunk of a component instead of what's in DEPS:
+ #"component": "https://svnserver/component/trunk/",
+ # To exclude a component from your working copy:
+ #"data/really_large_component": None,
+ "src/webkit/data/layout_tests/LayoutTests": None,
+ },
+ "safesync_url": ""
+ }
+]
+EOF
+
+printf "Checking out the source tree. This will take some time.\n"
+
+if [ "$VERBOSE" = "true" ]; then
+ gclient sync --force
+else
+ gclient sync --force &>/dev/null
+fi
+
+# Determine SVN rev of chromium (we don't care about the other sub-checkouts)
+pushd src/chrome
+SVNREV=`svnversion`
+popd
+
+printf "Chromium svn$SVNREV [$TODAYSDATE] checked out\n"
+
+FULLVER=`echo ${TODAYSDATE}svn${SVNREV}`
+
+# Remove third party bits that we have on the system
+if [ "$VERBOSE" = "true" ]; then
+ printf "[VERBOSE]: Removing unnecessary third_party bits\n"
+fi
+pushd src/third_party
+rm -rf bzip2/ libevent/ libjpeg/ libpng/ libxml/ libxslt/ nss/ nspr/ zlib/
+popd
+
+# Get rid of .svn bits to save space
+if [ "$VERBOSE" = "true" ]; then
+ printf "[VERBOSE]: Removing unnecessary .svn bits\n"
+fi
+find src -depth -name .svn -type d -exec rm -rf {} \;
+
+# Get rid of reference_build prebuilt binaries
+if [ "$VERBOSE" = "true" ]; then
+ printf "[VERBOSE]: Removing reference_build prebuilt binaries\n"
+fi
+find src -depth -name reference_build -type d -exec rm -rf {} \;
+
+# Gclient embeds the full checkout path all over the .scons files. We'll replace it with a known dummy tree, which we can sed out
+# in the rpm spec.
+# FIXME: There has to be a better way to prevent this .scons mangling.
+for i in `find . |grep "\.scons"`; do
+ sed -i "s|$LOCALDIR/chromium-$TODAYSDATE/|/home/spot/sandbox/chromium-$TODAYSDATE/|g" $i
+done
+
+popd
+
+# Now, lets look for the final target directory, without svnrev.
+if [ -d chromium-$FULLVER ]; then
+ if [ "$REMOVE" = "true" ]; then
+ if [ "$VERBOSE" = "true" ]; then
+ printf "[VERBOSE]: Removing conflicting directory: chromium-$FULLVER/\n"
+ fi
+ rm -rf chromium-$FULLVER/
+ if [ "$VERBOSE" = "true" ]; then
+ printf "[VERBOSE]: Removed conflicting directory: chromium-$FULLVER/\n"
+ fi
+ else
+ printf "[ERROR]: chromium-$FULLVER/ exists, use -r option to remove it\n"
+ exit 2
+ fi
+fi
+
+# At this point, we know the chromium target directory does not exist, time to rename the checkout
+if [ "$VERBOSE" = "true" ]; then
+ printf "[VERBOSE]: Renaming checkout directory from: chromium-$TODAYSDATE/ to: chromium-$FULLVER/\n"
+fi
+mv chromium-$TODAYSDATE/ chromium-$FULLVER/
+
+# Now, lets look for the tarball.
+if [ -f chromium-$FULLVER.tar.bz2 ]; then
+ if [ "$VERBOSE" = "true" ]; then
+ printf "[VERBOSE]: Found tarball matching chromium-$FULLVER.tar.bz2\n"
+ fi
+ if [ "$REMOVE" = "true" ]; then
+ if [ "$VERBOSE" = "true" ]; then
+ printf "[VERBOSE]: Removing conflicting file: chromium-$FULLVER.tar.bz2\n"
+ fi
+ rm -f chromium-$FULLVER.tar.bz2
+ if [ "$VERBOSE" = "true" ]; then
+ printf "[VERBOSE]: Removed conflicting file: chromium-$FULLVER.tar.bz2\n"
+ fi
+ else
+ printf "[ERROR]: chromium-$FULLVER.tar.bz2 exists, use -r option to remove it\n"
+ exit 2
+ fi
+fi
+
+if [ "$VERBOSE" = "true" ]; then
+ printf "[VERBOSE]: Creating tarball: chromium-$FULLVER.tar.bz2\n"
+fi
+tar cfj chromium-$FULLVER.tar.bz2 chromium-$FULLVER
+
+# All done.
+printf "Daily chromium source processed and ready: chromium-$FULLVER.tar.bz2\n"
+exit 0
================================================================
More information about the pld-cvs-commit
mailing list