]> git.pld-linux.org Git - packages/chromium-browser.git/blobdiff - get-source.sh
update clean source rules
[packages/chromium-browser.git] / get-source.sh
old mode 100644 (file)
new mode 100755 (executable)
index de5553b..a48ee57
 #!/bin/sh
+set -e
 
-# based on debian/rules for chromium package
+# CHANNEL: any from CHANNELS_URL: stable, beta, dev
+CHANNEL=${1:-beta}
+
+CHANNELS_URL=http://omahaproxy.appspot.com/all
+PACKAGE_NAME=chromium-browser
+PROGRAM=${0##*/}
+WORK_DIR=$(cd "$(dirname "$0")"; pwd)
+LOCKFILE=$WORK_DIR/$PACKAGE_NAME-$CHANNEL.lock
+# Browse URL: http://gsdview.appspot.com/chromium-browser-official/
+OFFICIAL_URL=http://commondatastorage.googleapis.com/chromium-browser-official
+DIST_DIR=$HOME/public_html/chromium-browser/src/$CHANNEL
+
+# skip package build if interactive
+tty -s && build_package=0
+
+VERSION=${2:-$(wget -qO - "$CHANNELS_URL?os=linux&channel=$CHANNEL" | awk -F, 'NR > 1{print $3}')}
+if [ -z "$VERSION" ]; then
+       echo >&2 "Can't figure out version for $CHANNEL"
+       exit 1
+fi
+
+# don't use .xz for beta channels, annoying if unpacks that slowly
+if [ "$CHANNEL" = "stable" ]; then
+       EXT=xz
+else
+       EXT=gz
+fi
+VERSION_FILE=$DIST_DIR/$PACKAGE_NAME-$VERSION.tar.$EXT
+
+if [ -e $VERSION_FILE -a -z "$FORCE" ]; then
+       # nothing to update
+       exit 0
+fi
 
-set -e
 set -x
 
-CHANNEL="beta"
-# See Staying Green More Of The Time at http://dev.chromium.org/developers/how-tos/get-the-code
-USE_GREEN_REV=1
+(
+       flock -n 9 || { echo "$PROGRAM: locked"; exit 1; }
 
-GCLIENT_URL="http://src.chromium.org/svn/trunk/tools/depot_tools"
-CHROMIUM_URL="http://src.chromium.org/svn/trunk/src"
-CHROMIUM_RLZ="http://src.chromium.org/svn/releases"
-DEPS_URL="http://src.chromium.org/svn/trunk/deps/third_party"
-GREEN_REV_URL="http://chromium-status.appspot.com/lkgr"
-CHANNELS_URL="http://omahaproxy.appspot.com/"
+       TMP_DIR=$(mktemp -d $WORK_DIR/$PACKAGE_NAME-$CHANNEL-$VERSION-_XXXXXX)
+       LOGFILE=$TMP_DIR/$PACKAGE_NAME-$VERSION.log
 
-CHANNEL="beta"
+       (
+       cd "$TMP_DIR"
+       srctarball=$PACKAGE_NAME-$VERSION.tar.xz
+       wget -c -nv -O $srctarball "$OFFICIAL_URL/chromium-$VERSION.tar.xz"
 
-TMP_DIR=$(pwd)/chromium-browser
+       # repackage cleaned up tarball
+       test -d $PACKAGE_NAME-$VERSION || {
+               tar xvf $srctarball
+               mv chromium-$VERSION $PACKAGE_NAME-$VERSION
+       }
 
-VERSION=$(wget -qO - "$CHANNELS_URL" | grep -i "^linux,${CHANNEL}" | cut -d, -f3)
+       ls -lh $srctarball
+       rm $srctarball
 
+       cd $PACKAGE_NAME-$VERSION
+       du -sh .
 
-rm -rf $TMP_DIR
-install -d $TMP_DIR
-svn co "$GCLIENT_URL" chromium-browser/tools/depot_tools
-cd $TMP_DIR
-if [ "$USE_GREEN_REV" -eq 1 ]; then
-       REVISION=$(wget -qO - "${GREEN_REV_URL}")
-       ./tools/depot_tools/gclient config "${CHROMIUM_URL}" "${GREEN_REV_URL}"
-else
-       REVISION=101024
-       ./tools/depot_tools/gclient config "${CHROMIUM_URL}"
-fi
+       awk '/^#define/ && /(MAJOR|MINOR)_VERSION|BUILD_NUMBER|PATCH_LEVEL/ { printf("%s=%s\n", $2, $3) }' v8/src/version.cc | tee -a v8.sh
+
+       if [ "$CHANNEL" != "dev" ]; then
+               patch -p1 < $WORK_DIR/remove_bundled_libraries-stale.patch
+               sh -x $WORK_DIR/clean-source.sh emptydirs=1 v8=0 mesa=0 sqlite=0 ffmpeg=0
+               patch -p1 -R < $WORK_DIR/remove_bundled_libraries-stale.patch
+       fi
+
+       # do not keep REMOVED*.txt in tarball. they are visible in .log anyway
+       rm -vf REMOVED-*.txt
+
+       du -sh .
+
+       # add LASTCHANGE info, take "branch_revision" item
+       svnver=$(wget -qO - "$CHANNELS_URL?os=linux&channel=$CHANNEL" | awk -F, 'NR > 1{print $8}')
+       echo "$svnver" > build/LASTCHANGE.in
+
+       cd ..
+
+       tarball=$PACKAGE_NAME-$VERSION.tar.$EXT
+       # xz -9 OOM's on carme
+       XZ_OPT=-e8 tar -caf $tarball $PACKAGE_NAME-$VERSION
+       ls -lh $tarball
+
+       rm -rf $PACKAGE_NAME-$VERSION
+
+       chmod 644 $tarball
+       mv $tarball $DIST_DIR
 
-REVISION="--revision src@${REVISION}"
+       ) > $LOGFILE 2>&1
 
-cd $TMP_DIR
-./tools/depot_tools/gclient update --nohooks ${REVISION}
+       chmod 644 $LOGFILE
+       mv $LOGFILE $DIST_DIR
 
-cd $TMP_DIR
-SDIR=`grep '"name"' .gclient | cut -d\" -f4`
-perl -i~ -pe 's%(.python., .src/build/gyp_chromium.)%"echo", "#disabled#", $1%' $SDIR/DEPS
-./tools/depot_tools/gclient runhooks
-mv $SDIR/DEPS~ $SDIR/DEPS
+       rm -rf $TMP_DIR
 
-cd $(TMP_DIR)/src && find . -type f \( -iname \*.exe -o -iname \*.dll -o -iname \*.pdb -o -name \*.o -o -name \*.a -o -name \*.dylib \) -exec rm -fv {} \; > REMOVED-bin_only.txt
-wc -l $(TMP_DIR)/src/REMOVED-*.txt
+       # create diff patches
+       BASEVER=${VERSION%.*}.0
+       if [ -e $DIST_DIR/$PACKAGE_NAME-$BASEVER.tar.$EXT ]; then
+               base=$(readlink -f $DIST_DIR/$PACKAGE_NAME-$BASEVER.tar.$EXT)
+               current=$DIST_DIR/$PACKAGE_NAME-$VERSION.tar.$EXT
+               if [ "$(basename $base)" != "$(basename $current)" ]; then
+                       sh -x $WORK_DIR/make-diff-patch.sh $base $current
+                       chmod 644 $PACKAGE_NAME-$VERSION.patch.xz
+                       mv $PACKAGE_NAME-$VERSION.patch.xz $DIST_DIR
+                       # for beta and dev channels, update the diff pointer
+                       if [ "$CHANNEL" != "stable" ]; then
+                               ln -sf $PACKAGE_NAME-$VERSION.tar.$EXT $DIST_DIR/$PACKAGE_NAME-$BASEVER.tar.$EXT
+                       fi
+               fi
+       fi
 
+       # try updating spec and build it as well
+       if [ -x $WORK_DIR/update-source.sh ]; then
+               build_package=${build_package-1} \
+               publish_packages=${publish_packages-1} \
+               sh -x $WORK_DIR/update-source.sh
+       fi
 
+       rm $LOCKFILE
+) 9>$LOCKFILE
This page took 0.035598 seconds and 4 git commands to generate.