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