]> git.pld-linux.org Git - packages/chromium-browser.git/blob - get-source.sh
protobuf dep should be on -libs
[packages/chromium-browser.git] / get-source.sh
1 #!/bin/sh
2 set -e
3
4 # CHANNEL: any from CHANNELS_URL: stable, beta, dev
5 CHANNEL=${1:-beta}
6
7 CHANNELS_URL=http://omahaproxy.appspot.com/all
8 PACKAGE_NAME=chromium-browser
9 PROGRAM=${0##*/}
10 WORK_DIR=$(cd "$(dirname "$0")"; pwd)
11 LOCKFILE=$WORK_DIR/$PACKAGE_NAME-$CHANNEL.lock
12 # Browse URL: http://gsdview.appspot.com/chromium-browser-official/
13 OFFICIAL_URL=http://commondatastorage.googleapis.com/chromium-browser-official
14 DIST_DIR=$HOME/public_html/chromium-browser/src/$CHANNEL
15
16 # skip package build if interactive
17 tty -s && build_package=0
18
19 VERSION=${2:-$(wget -qO - "$CHANNELS_URL?os=linux&channel=$CHANNEL" | awk -F, 'NR > 1{print $3}')}
20 if [ -z "$VERSION" ]; then
21         echo >&2 "Can't figure out version for $CHANNEL"
22         exit 1
23 fi
24
25 # don't use .xz for beta channels, annoying if unpacks that slowly
26 if [ "$CHANNEL" = "stable" ]; then
27         EXT=xz
28 else
29         EXT=gz
30 fi
31 VERSION_FILE=$DIST_DIR/$PACKAGE_NAME-$VERSION.tar.$EXT
32
33 if [ -e $VERSION_FILE -a -z "$FORCE" ]; then
34         # nothing to update
35         exit 0
36 fi
37
38 set -x
39
40 (
41         flock -n 9 || { echo "$PROGRAM: locked"; exit 1; }
42
43         TMP_DIR=$(mktemp -d $WORK_DIR/$PACKAGE_NAME-$CHANNEL-$VERSION-_XXXXXX)
44         LOGFILE=$TMP_DIR/$PACKAGE_NAME-$VERSION.log
45
46         (
47         cd "$TMP_DIR"
48         srctarball=$PACKAGE_NAME-$VERSION.tar.xz
49         wget -c -nv -O $srctarball "$OFFICIAL_URL/chromium-$VERSION.tar.xz"
50
51         # repackage cleaned up tarball
52         test -d $PACKAGE_NAME-$VERSION || {
53                 tar xvf $srctarball
54                 mv chromium-$VERSION $PACKAGE_NAME-$VERSION
55         }
56
57         ls -lh $srctarball
58         rm $srctarball
59
60         cd $PACKAGE_NAME-$VERSION
61         du -sh .
62
63         awk '/^#define/ && /(MAJOR|MINOR)_VERSION|BUILD_NUMBER|PATCH_LEVEL/ { printf("%s=%s\n", $2, $3) }' v8/src/version.cc | tee -a v8.sh
64
65         if [ "$CHANNEL" != "dev" ]; then
66                 patch -p1 < $WORK_DIR/remove_bundled_libraries-stale.patch
67                 sh -x $WORK_DIR/clean-source.sh emptydirs=1 v8=0 mesa=0 sqlite=0 ffmpeg=0
68                 patch -p1 -R < $WORK_DIR/remove_bundled_libraries-stale.patch
69         fi
70
71         # do not keep REMOVED*.txt in tarball. they are visible in .log anyway
72         rm -vf REMOVED-*.txt
73
74         du -sh .
75
76         # add LASTCHANGE info, take "branch_revision" item
77         svnver=$(wget -qO - "$CHANNELS_URL?os=linux&channel=$CHANNEL" | awk -F, 'NR > 1{print $8}')
78         echo "$svnver" > build/LASTCHANGE.in
79
80         cd ..
81
82         tarball=$PACKAGE_NAME-$VERSION.tar.$EXT
83         # xz -9 OOM's on carme
84         XZ_OPT=-e8 tar -caf $tarball $PACKAGE_NAME-$VERSION
85         ls -lh $tarball
86
87         rm -rf $PACKAGE_NAME-$VERSION
88
89         chmod 644 $tarball
90         mv $tarball $DIST_DIR
91
92         ) > $LOGFILE 2>&1
93
94         chmod 644 $LOGFILE
95         mv $LOGFILE $DIST_DIR
96
97         rm -rf $TMP_DIR
98
99         # create diff patches
100         BASEVER=${VERSION%.*}.0
101         if [ -e $DIST_DIR/$PACKAGE_NAME-$BASEVER.tar.$EXT ]; then
102                 base=$(readlink -f $DIST_DIR/$PACKAGE_NAME-$BASEVER.tar.$EXT)
103                 current=$DIST_DIR/$PACKAGE_NAME-$VERSION.tar.$EXT
104                 if [ "$(basename $base)" != "$(basename $current)" ]; then
105                         sh -x $WORK_DIR/make-diff-patch.sh $base $current
106                         chmod 644 $PACKAGE_NAME-$VERSION.patch.xz
107                         mv $PACKAGE_NAME-$VERSION.patch.xz $DIST_DIR
108                         # for beta and dev channels, update the diff pointer
109                         if [ "$CHANNEL" != "stable" ]; then
110                                 ln -sf $PACKAGE_NAME-$VERSION.tar.$EXT $DIST_DIR/$PACKAGE_NAME-$BASEVER.tar.$EXT
111                         fi
112                 fi
113         fi
114
115         # try updating spec and build it as well
116         if [ -x $WORK_DIR/update-source.sh ]; then
117                 build_package=${build_package-1} \
118                 publish_packages=${publish_packages-1} \
119                 sh -x $WORK_DIR/update-source.sh
120         fi
121
122         rm $LOCKFILE
123 ) 9>$LOCKFILE
This page took 0.075026 seconds and 3 git commands to generate.