File: upgrade_protobuf.sh

package info (click to toggle)
icedove 1:52.3.0-4~deb8u2
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 1,705,608 kB
  • sloc: cpp: 5,079,451; ansic: 2,051,639; python: 458,782; java: 241,615; xml: 192,378; asm: 178,649; sh: 81,867; makefile: 24,692; perl: 16,874; objc: 4,389; yacc: 1,816; ada: 1,697; lex: 1,257; pascal: 1,251; cs: 879; exp: 499; php: 436; lisp: 258; awk: 152; sed: 51; ruby: 47; csh: 27
file content (71 lines) | stat: -rwxr-xr-x 1,559 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/env bash

set -e

usage() {
    echo "Usage: upgrade_protobuf.sh path/to/protobuf"
    echo
    echo "    Upgrades mozilla-central's copy of the protobuf library."
    echo
    echo "    Get a protobuf release from here:"
    echo "    https://github.com/google/protobuf/releases"
}

if [[ "$#" -ne 1 ]]; then
    usage
    exit 1
fi

PROTOBUF_LIB_PATH=$1

if [[ ! -d "$PROTOBUF_LIB_PATH" ]]; then
    echo No such directory: $PROTOBUF_LIB_PATH
    echo
    usage
    exit 1
fi

realpath() {
    if [[ $1 = /* ]]; then
        echo "$1"
    else
        echo "$PWD/${1#./}"
    fi
}

PROTOBUF_LIB_PATH=$(realpath $PROTOBUF_LIB_PATH)

cd $(dirname $0)

# Remove the old protobuf sources.
rm -rf src/google/*

# Add all the new protobuf sources.
cp -r $PROTOBUF_LIB_PATH/src/google/* src/google/

# Remove compiler sources.
rm -rf src/google/protobuf/compiler

# Remove test files.
find src/google -name '*test*' | xargs rm -rf

# Remove protobuf's build files.
find src/google/ -name '.deps' | xargs rm -rf
find src/google/ -name '.dirstamp' | xargs rm -rf
rm -rf src/google/protobuf/SEBS

# Apply custom changes for building as part of mozilla-central.

cd ../../.. # Top level.

echo
echo Applying custom changes for mozilla-central. If this fails, you need to
echo edit the 'toolkit/components/protobuf/src/google/*' sources manually and
echo update the 'toolkit/components/protobuf/m-c-changes.patch' patch file
echo accordingly.
echo

patch -p1 < toolkit/components/protobuf/m-c-changes.patch

echo
echo Successfully upgraded the protobuf lib!