CHANNELS_URL=http://omahaproxy.appspot.com/all
PACKAGE_NAME=chromium-browser
-WORK_DIR=$(cd $(dirname "$0"); pwd)
-CHROMIUM=$HOME/svn/$PACKAGE_NAME-$CHANNEL
+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
-VERSION=$(wget -qO - "$CHANNELS_URL?os=linux&channel=$CHANNEL" | awk -F, 'NR > 1{print $3}')
+# 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
set -x
-# consider lockfile stale after 3h
-if ! lockfile -l 10800 $LOCKFILE; then
- exit 1
-fi
-
-trap "rm -f $LOCKFILE" EXIT
+(
+ flock -n 9 || { echo "$PROGRAM: locked"; exit 1; }
-TMP_DIR=$(mktemp -d $WORK_DIR/$PACKAGE_NAME-$CHANNEL-$VERSION-_XXXXXX)
-LOGFILE=$TMP_DIR/$PACKAGE_NAME-$VERSION.log
+ TMP_DIR=$(mktemp -d $WORK_DIR/$PACKAGE_NAME-$CHANNEL-$VERSION-_XXXXXX)
+ LOGFILE=$TMP_DIR/$PACKAGE_NAME-$VERSION.log
-(
-cd "$TMP_DIR"
-srctarball=$PACKAGE_NAME-$VERSION.tar.bz2
-if [ "$CHANNEL" = "dev" ]; then
- wget -c -nv -O $srctarball "$OFFICIAL_URL/chromium-$VERSION.tar.bz2"
-else
- wget -c -nv -O $srctarball "$OFFICIAL_URL/chromium-$VERSION.tar.bz2"
-fi
+ (
+ cd "$TMP_DIR"
+ srctarball=$PACKAGE_NAME-$VERSION.tar.xz
+ wget -c -nv -O $srctarball "$OFFICIAL_URL/chromium-$VERSION.tar.xz"
-# repackage cleaned up tarball
-test -d $PACKAGE_NAME-$VERSION || {
- tar xjvf $srctarball
- install -d $PACKAGE_NAME-$VERSION
- # relocate to src dir (needed to workaround some gyp bug)
- mv chromium-$VERSION $PACKAGE_NAME-$VERSION/src
-}
+ # repackage cleaned up tarball
+ test -d $PACKAGE_NAME-$VERSION || {
+ tar xvf $srctarball
+ mv chromium-$VERSION $PACKAGE_NAME-$VERSION
+ }
-ls -lh $srctarball
-rm $srctarball
+ ls -lh $srctarball
+ rm $srctarball
-cd $PACKAGE_NAME-$VERSION/src
-du -sh .
+ cd $PACKAGE_NAME-$VERSION
+ du -sh .
-awk 'NR=1 {print $NF; exit}' v8/ChangeLog | tee -a v8.txt
+ awk '/^#define/ && /(MAJOR|MINOR)_VERSION|BUILD_NUMBER|PATCH_LEVEL/ { printf("%s=%s\n", $2, $3) }' v8/src/version.cc | tee -a v8.sh
-# keep v8 in sources if branch is not stable
-if [ "$CHANNEL" = "stable" ]; then
- v8=0
-else
- v8=0
-fi
+ 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
-if [ "$CHANNEL" != "dev" ]; then
- sh -x $WORK_DIR/clean-source.sh v8=$v8 emptydirs=1
-fi
+ # do not keep REMOVED*.txt in tarball. they are visible in .log anyway
+ rm -vf REMOVED-*.txt
-# do not keep REMOVED*.txt in tarball. they are visible in .log anyway
-rm -vf REMOVED-*.txt
+ du -sh .
-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
-# 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 ..
-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
-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
-rm -rf $PACKAGE_NAME-$VERSION
+ chmod 644 $tarball
+ mv $tarball $DIST_DIR
-chmod 644 $tarball
-mv $tarball $DIST_DIR
+ ) > $LOGFILE 2>&1
-) > $LOGFILE 2>&1
+ chmod 644 $LOGFILE
+ mv $LOGFILE $DIST_DIR
-chmod 644 $LOGFILE
-mv $LOGFILE $DIST_DIR
+ rm -rf $TMP_DIR
-rm -rf $TMP_DIR
+ # 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
-# 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
- sh -x $WORK_DIR/make-diff-patch.sh $base $current
- mv $PACKAGE_NAME-$VERSION.patch.xz $DIST_DIR
- # for beta and dev channels, move the diff pointer
- if [ "$CHANNEL" != "stable" ]; then
- ln -sf $PACKAGE_NAME-$VERSION.tar.$EXT $DIST_DIR/$PACKAGE_NAME-$BASEVER.tar.$EXT
+ # 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
-fi
-# try updating spec and build it as well
-if [ -x $WORK_DIR/update-source.sh ]; then
- build_package=1 \
- publish_packages=1 \
- sh -x $WORK_DIR/update-source.sh
-fi
+ rm $LOCKFILE
+) 9>$LOCKFILE