OLD | NEW |
---|---|
1 #!/bin/bash | 1 #!/bin/bash |
2 # | 2 # |
3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
6 | 6 |
7 # TODO(mmoss) This currently only works with official builds, since non-official | 7 # TODO(mmoss) This currently only works with official builds, since non-official |
8 # builds don't add the "${BUILDDIR}/installer/" files needed for packaging. | 8 # builds don't add the "${BUILDDIR}/installer/" files needed for packaging. |
9 | 9 |
10 set -e | 10 set -e |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
46 "${STAGEDIR}/usr/share/doc/${PACKAGE}" | 46 "${STAGEDIR}/usr/share/doc/${PACKAGE}" |
47 } | 47 } |
48 | 48 |
49 # Put the package contents in the staging area. | 49 # Put the package contents in the staging area. |
50 stage_install_debian() { | 50 stage_install_debian() { |
51 # Always use a different name for /usr/bin symlink depending on channel. | 51 # Always use a different name for /usr/bin symlink depending on channel. |
52 # First, to avoid file collisions. Second, to make it possible to | 52 # First, to avoid file collisions. Second, to make it possible to |
53 # use update-alternatives for /usr/bin/google-chrome. | 53 # use update-alternatives for /usr/bin/google-chrome. |
54 local USR_BIN_SYMLINK_NAME="${PACKAGE}-${CHANNEL}" | 54 local USR_BIN_SYMLINK_NAME="${PACKAGE}-${CHANNEL}" |
55 | 55 |
56 if [ "$CHANNEL" != "stable" ]; then | 56 if [ "$CHANNEL" != "stable" ]; then |
Paweł Hajdan Jr.
2013/11/22 17:55:46
We don't do any path changes for the stable channe
Lei Zhang
2013/11/22 19:48:45
Right, I had that notion in my head but missed thi
| |
57 # This would ideally be compiled into the app, but that's a bit too | 57 # This would ideally be compiled into the app, but that's a bit too |
58 # intrusive of a change for these limited use channels, so we'll just hack | 58 # intrusive of a change for these limited use channels, so we'll just hack |
59 # it into the wrapper script. The user can still override since it seems to | 59 # it into the wrapper script. The user can still override since it seems to |
60 # work to specify --user-data-dir multiple times on the command line, with | 60 # work to specify --user-data-dir multiple times on the command line, with |
61 # the last occurrence winning. | 61 # the last occurrence winning. |
62 local SXS_USER_DATA_DIR="\${XDG_CONFIG_HOME:-\${HOME}/.config}/${PACKAGE}-${ CHANNEL}" | 62 local SXS_USER_DATA_DIR="\${XDG_CONFIG_HOME:-\${HOME}/.config}/${PACKAGE}-${ CHANNEL}" |
63 local DEFAULT_FLAGS="--user-data-dir=\"${SXS_USER_DATA_DIR}\"" | 63 local DEFAULT_FLAGS="--user-data-dir=\"${SXS_USER_DATA_DIR}\"" |
64 | 64 |
65 # Avoid file collisions between channels. | 65 # Avoid file collisions between channels. |
66 local INSTALLDIR="${INSTALLDIR}-${CHANNEL}" | |
67 | |
66 # TODO(phajdan.jr): Do that for all packages for SxS, | 68 # TODO(phajdan.jr): Do that for all packages for SxS, |
67 # http://crbug.com/38598 . | 69 # http://crbug.com/38598 . |
68 # We can't do this for now for all packages because of | |
69 # http://crbug.com/295103 , and ultimately http://crbug.com/22703 . | |
70 # Also see https://groups.google.com/a/chromium.org/d/msg/chromium-dev/DBEqO ORaRiw/pE0bNI6h0kcJ . | |
71 if [ "$CHANNEL" = "trunk" ] || [ "$CHANNEL" = "asan" ]; then | 70 if [ "$CHANNEL" = "trunk" ] || [ "$CHANNEL" = "asan" ]; then |
72 local PACKAGE="${PACKAGE}-${CHANNEL}" | 71 local PACKAGE="${PACKAGE}-${CHANNEL}" |
73 local INSTALLDIR="${INSTALLDIR}-${CHANNEL}" | |
74 fi | 72 fi |
75 | 73 |
76 # Make it possible to distinguish between menu entries | 74 # Make it possible to distinguish between menu entries |
77 # for different channels. | 75 # for different channels. |
78 local MENUNAME="${MENUNAME} (${CHANNEL})" | 76 local MENUNAME="${MENUNAME} (${CHANNEL})" |
79 fi | 77 fi |
80 prep_staging_debian | 78 prep_staging_debian |
81 stage_install_common | 79 stage_install_common |
82 echo "Staging Debian install files in '${STAGEDIR}'..." | 80 echo "Staging Debian install files in '${STAGEDIR}'..." |
83 install -m 755 -d "${STAGEDIR}/${INSTALLDIR}/cron" | 81 install -m 755 -d "${STAGEDIR}/${INSTALLDIR}/cron" |
84 process_template "${BUILDDIR}/installer/common/repo.cron" \ | 82 process_template "${BUILDDIR}/installer/common/repo.cron" \ |
85 "${STAGEDIR}/${INSTALLDIR}/cron/${PACKAGE}" | 83 "${STAGEDIR}/${INSTALLDIR}/cron/${PACKAGE}" |
86 chmod 755 "${STAGEDIR}/${INSTALLDIR}/cron/${PACKAGE}" | 84 chmod 755 "${STAGEDIR}/${INSTALLDIR}/cron/${PACKAGE}" |
87 pushd "${STAGEDIR}/etc/cron.daily/" | 85 pushd "${STAGEDIR}/etc/cron.daily/" |
88 ln -snf "${INSTALLDIR}/cron/${PACKAGE}" "${PACKAGE}" | 86 ln -snf "${INSTALLDIR}/cron/${PACKAGE}" "${PACKAGE}" |
89 popd | 87 popd |
90 process_template "${BUILDDIR}/installer/debian/debian.menu" \ | 88 process_template "${BUILDDIR}/installer/debian/debian.menu" \ |
91 "${STAGEDIR}/usr/share/menu/${PACKAGE}.menu" | 89 "${STAGEDIR}/usr/share/menu/${PACKAGE}.menu" |
92 chmod 644 "${STAGEDIR}/usr/share/menu/${PACKAGE}.menu" | 90 chmod 644 "${STAGEDIR}/usr/share/menu/${PACKAGE}.menu" |
93 process_template "${BUILDDIR}/installer/debian/postinst" \ | 91 process_template "${BUILDDIR}/installer/debian/postinst" \ |
94 "${STAGEDIR}/DEBIAN/postinst" | 92 "${STAGEDIR}/DEBIAN/postinst" |
95 chmod 755 "${STAGEDIR}/DEBIAN/postinst" | 93 chmod 755 "${STAGEDIR}/DEBIAN/postinst" |
96 process_template "${BUILDDIR}/installer/debian/prerm" \ | 94 process_template "${BUILDDIR}/installer/debian/prerm" \ |
97 "${STAGEDIR}/DEBIAN/prerm" | 95 "${STAGEDIR}/DEBIAN/prerm" |
98 chmod 755 "${STAGEDIR}/DEBIAN/prerm" | 96 chmod 755 "${STAGEDIR}/DEBIAN/prerm" |
99 process_template "${BUILDDIR}/installer/debian/postrm" \ | 97 process_template "${BUILDDIR}/installer/debian/postrm" \ |
100 "${STAGEDIR}/DEBIAN/postrm" | 98 "${STAGEDIR}/DEBIAN/postrm" |
101 chmod 755 "${STAGEDIR}/DEBIAN/postrm" | 99 chmod 755 "${STAGEDIR}/DEBIAN/postrm" |
100 | |
101 # Compatibility symlinks to avoid breaking Chrome on update. | |
102 # TODO(phajdan.jr): Remove before enabling SxS (obvious file collisions). | |
103 # See http://crbug.com/295103 , and ultimately http://crbug.com/22703 . | |
104 # Also see https://groups.google.com/a/chromium.org/d/msg/chromium-dev/DBEqOOR aRiw/pE0bNI6h0kcJ . | |
105 if [ "$CHANNEL" != "stable" ] && \ | |
Lei Zhang
2013/11/22 03:02:11
nit: {CHANNEL}
Paweł Hajdan Jr.
2013/11/22 17:55:46
Done.
| |
106 [ "${CHANNEL}" != "trunk" ] && \ | |
107 [ "${CHANNEL}" != "asan" ]; then | |
108 mkdir -p "${STAGEDIR}/opt/google/chrome" | |
109 for x in chrome chrome-sandbox locales; do | |
110 ln -s "${INSTALLDIR}/${x}" "${STAGEDIR}/opt/google/chrome/${x}" | |
111 done | |
112 pushd "${STAGEDIR}/${INSTALLDIR}" | |
113 for x in *.pak; do | |
114 ln -s "${INSTALLDIR}/${x}" "${STAGEDIR}/opt/google/chrome/${x}" | |
115 done | |
116 popd | |
117 fi | |
102 } | 118 } |
103 | 119 |
104 # Actually generate the package file. | 120 # Actually generate the package file. |
105 do_package() { | 121 do_package() { |
106 echo "Packaging ${ARCHITECTURE}..." | 122 echo "Packaging ${ARCHITECTURE}..." |
107 PREDEPENDS="$COMMON_PREDEPS" | 123 PREDEPENDS="$COMMON_PREDEPS" |
108 DEPENDS="${COMMON_DEPS}" | 124 DEPENDS="${COMMON_DEPS}" |
109 # Trunk is a special package, mostly for development testing, so don't make | 125 # Trunk is a special package, mostly for development testing, so don't make |
110 # it replace any installed release packages. | 126 # it replace any installed release packages. |
111 if [ "$CHANNEL" != "trunk" ] && [ "$CHANNEL" != "asan" ]; then | 127 if [ "$CHANNEL" != "trunk" ] && [ "$CHANNEL" != "asan" ]; then |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
332 ;; | 348 ;; |
333 * ) | 349 * ) |
334 echo | 350 echo |
335 echo "ERROR: Don't know how to build DEBs for '$TARGETARCH'." | 351 echo "ERROR: Don't know how to build DEBs for '$TARGETARCH'." |
336 echo | 352 echo |
337 exit 1 | 353 exit 1 |
338 ;; | 354 ;; |
339 esac | 355 esac |
340 | 356 |
341 do_package | 357 do_package |
OLD | NEW |