Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: chrome/installer/linux/debian/build.sh

Issue 81933002: Linux SxS: Use a non-colliding path for Debian packages. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698