| Index: chrome_linux/installer/common/apt.include
|
| ===================================================================
|
| --- chrome_linux/installer/common/apt.include (revision 0)
|
| +++ chrome_linux/installer/common/apt.include (revision 0)
|
| @@ -0,0 +1,200 @@
|
| +@@include@@variables.include
|
| +
|
| +APT_GET="`which apt-get 2> /dev/null`"
|
| +APT_CONFIG="`which apt-config 2> /dev/null`"
|
| +
|
| +SOURCES_PREAMBLE="### THIS FILE IS AUTOMATICALLY CONFIGURED ###
|
| +# You may comment out this entry, but any other modifications may be lost.\n"
|
| +
|
| +# Parse apt configuration and return requested variable value.
|
| +apt_config_val() {
|
| + APTVAR="$1"
|
| + if [ -x "$APT_CONFIG" ]; then
|
| + "$APT_CONFIG" dump | sed -e "/^$APTVAR /"'!d' -e "s/^$APTVAR \"\(.*\)\".*/\1/"
|
| + fi
|
| +}
|
| +
|
| +# Install the repository signing key (see also:
|
| +# http://www.google.com/linuxrepositories/aboutkey.html)
|
| +install_key() {
|
| + APT_KEY="`which apt-key 2> /dev/null`"
|
| + if [ -x "$APT_KEY" ]; then
|
| + "$APT_KEY" add - >/dev/null 2>&1 <<KEYDATA
|
| +-----BEGIN PGP PUBLIC KEY BLOCK-----
|
| +Version: GnuPG v1.4.2.2 (GNU/Linux)
|
| +
|
| +mQGiBEXwb0YRBADQva2NLpYXxgjNkbuP0LnPoEXruGmvi3XMIxjEUFuGNCP4Rj/a
|
| +kv2E5VixBP1vcQFDRJ+p1puh8NU0XERlhpyZrVMzzS/RdWdyXf7E5S8oqNXsoD1z
|
| +fvmI+i9b2EhHAA19Kgw7ifV8vMa4tkwslEmcTiwiw8lyUl28Wh4Et8SxzwCggDcA
|
| +feGqtn3PP5YAdD0km4S4XeMEAJjlrqPoPv2Gf//tfznY2UyS9PUqFCPLHgFLe80u
|
| +QhI2U5jt6jUKN4fHauvR6z3seSAsh1YyzyZCKxJFEKXCCqnrFSoh4WSJsbFNc4PN
|
| +b0V0SqiTCkWADZyLT5wll8sWuQ5ylTf3z1ENoHf+G3um3/wk/+xmEHvj9HCTBEXP
|
| +78X0A/0Tqlhc2RBnEf+AqxWvM8sk8LzJI/XGjwBvKfXe+l3rnSR2kEAvGzj5Sg0X
|
| +4XmfTg4Jl8BNjWyvm2Wmjfet41LPmYJKsux3g0b8yzQxeOA4pQKKAU3Z4+rgzGmf
|
| +HdwCG5MNT2A5XxD/eDd+L4fRx0HbFkIQoAi1J3YWQSiTk15fw7RMR29vZ2xlLCBJ
|
| +bmMuIExpbnV4IFBhY2thZ2UgU2lnbmluZyBLZXkgPGxpbnV4LXBhY2thZ2VzLWtl
|
| +eW1hc3RlckBnb29nbGUuY29tPohjBBMRAgAjAhsDBgsJCAcDAgQVAggDBBYCAwEC
|
| +HgECF4AFAkYVdn8CGQEACgkQoECDD3+sWZHKSgCfdq3HtNYJLv+XZleb6HN4zOcF
|
| +AJEAniSFbuv8V5FSHxeRimHx25671az+uQINBEXwb0sQCACuA8HT2nr+FM5y/kzI
|
| +A51ZcC46KFtIDgjQJ31Q3OrkYP8LbxOpKMRIzvOZrsjOlFmDVqitiVc7qj3lYp6U
|
| +rgNVaFv6Qu4bo2/ctjNHDDBdv6nufmusJUWq/9TwieepM/cwnXd+HMxu1XBKRVk9
|
| +XyAZ9SvfcW4EtxVgysI+XlptKFa5JCqFM3qJllVohMmr7lMwO8+sxTWTXqxsptJo
|
| +pZeKz+UBEEqPyw7CUIVYGC9ENEtIMFvAvPqnhj1GS96REMpry+5s9WKuLEaclWpd
|
| +K3krttbDlY1NaeQUCRvBYZ8iAG9YSLHUHMTuI2oea07Rh4dtIAqPwAX8xn36JAYG
|
| +2vgLAAMFB/wKqaycjWAZwIe98Yt0qHsdkpmIbarD9fGiA6kfkK/UxjL/k7tmS4Vm
|
| +CljrrDZkPSQ/19mpdRcGXtb0NI9+nyM5trweTvtPw+HPkDiJlTaiCcx+izg79Fj9
|
| +KcofuNb3lPdXZb9tzf5oDnmm/B+4vkeTuEZJ//IFty8cmvCpzvY+DAz1Vo9rA+Zn
|
| +cpWY1n6z6oSS9AsyT/IFlWWBZZ17SpMHu+h4Bxy62+AbPHKGSujEGQhWq8ZRoJAT
|
| +G0KSObnmZ7FwFWu1e9XFoUCt0bSjiJWTIyaObMrWu/LvJ3e9I87HseSJStfw6fki
|
| +5og9qFEkMrIrBCp3QGuQWBq/rTdMuwNFiEkEGBECAAkFAkXwb0sCGwwACgkQoECD
|
| +D3+sWZF/WACfeNAu1/1hwZtUo1bR+MWiCjpvHtwAnA1R3IHqFLQ2X3xJ40XPuAyY
|
| +/FJG
|
| +=Quqp
|
| +-----END PGP PUBLIC KEY BLOCK-----
|
| +KEYDATA
|
| + fi
|
| +}
|
| +
|
| +# Set variables for the locations of the apt sources lists.
|
| +find_apt_sources() {
|
| + APTDIR=$(apt_config_val Dir)
|
| + APTETC=$(apt_config_val 'Dir::Etc')
|
| + APT_SOURCES="$APTDIR$APTETC$(apt_config_val 'Dir::Etc::sourcelist')"
|
| + APT_SOURCESDIR="$APTDIR$APTETC$(apt_config_val 'Dir::Etc::sourceparts')"
|
| +}
|
| +
|
| +# Update the Google repository if it's not set correctly.
|
| +# Note: this doesn't necessarily enable the repository, it just makes sure the
|
| +# correct settings are available in the sources list.
|
| +# Returns:
|
| +# 0 - no update necessary
|
| +# 2 - error
|
| +update_bad_sources() {
|
| + if [ ! "$REPOCONFIG" ]; then
|
| + return 0
|
| + fi
|
| +
|
| + find_apt_sources
|
| +
|
| + SOURCELIST="$APT_SOURCESDIR/@@PACKAGE@@.list"
|
| + # Don't do anything if the file isn't there, since that probably means the
|
| + # user disabled it.
|
| + if [ ! -r "$SOURCELIST" ]; then
|
| + return 0
|
| + fi
|
| +
|
| + # Basic check for active configurations (non-blank, non-comment lines).
|
| + ACTIVECONFIGS=$(grep -v "^[[:space:]]*\(#.*\)\?$" "$SOURCELIST" 2>/dev/null)
|
| +
|
| + # Check if the correct repository configuration is in there.
|
| + REPOMATCH=$(grep "^[[:space:]#]*\b$REPOCONFIG\b" "$SOURCELIST" \
|
| + 2>/dev/null)
|
| +
|
| + # Check if the correct repository is disabled.
|
| + MATCH_DISABLED=$(echo "$REPOMATCH" | grep "^[[:space:]]*#" 2>/dev/null)
|
| +
|
| + # Now figure out if we need to fix things.
|
| + BADCONFIG=1
|
| + if [ "$REPOMATCH" ]; then
|
| + # If it's there and active, that's ideal, so nothing to do.
|
| + if [ ! "$MATCH_DISABLED" ]; then
|
| + BADCONFIG=0
|
| + else
|
| + # If it's not active, but neither is anything else, that's fine too.
|
| + if [ ! "$ACTIVECONFIGS" ]; then
|
| + BADCONFIG=0
|
| + fi
|
| + fi
|
| + fi
|
| +
|
| + if [ $BADCONFIG -eq 0 ]; then
|
| + return 0
|
| + fi
|
| +
|
| + # At this point, either the correct configuration is completely missing, or
|
| + # the wrong configuration is active. In that case, just abandon the mess and
|
| + # recreate the file with the correct configuration. If there were no active
|
| + # configurations before, create the new configuration disabled.
|
| + DISABLE=""
|
| + if [ ! "$ACTIVECONFIGS" ]; then
|
| + DISABLE="#"
|
| + fi
|
| + printf "$SOURCES_PREAMBLE" > "$SOURCELIST"
|
| + printf "$DISABLE$REPOCONFIG\n" >> "$SOURCELIST"
|
| + if [ $? -eq 0 ]; then
|
| + return 0
|
| + fi
|
| + return 2
|
| +}
|
| +
|
| +# Add the Google repository to the apt sources.
|
| +# Returns:
|
| +# 0 - sources list was created
|
| +# 2 - error
|
| +create_sources_lists() {
|
| + if [ ! "$REPOCONFIG" ]; then
|
| + return 0
|
| + fi
|
| +
|
| + find_apt_sources
|
| +
|
| + SOURCELIST="$APT_SOURCESDIR/@@PACKAGE@@.list"
|
| + if [ -d "$APT_SOURCESDIR" ]; then
|
| + printf "$SOURCES_PREAMBLE" > "$SOURCELIST"
|
| + printf "$REPOCONFIG\n" >> "$SOURCELIST"
|
| + if [ $? -eq 0 ]; then
|
| + return 0
|
| + fi
|
| + fi
|
| + return 2
|
| +}
|
| +
|
| +# Remove our custom sources list file.
|
| +# Returns:
|
| +# 0 - successfully removed, or not configured
|
| +# !0 - failed to remove
|
| +clean_sources_lists() {
|
| + if [ ! "$REPOCONFIG" ]; then
|
| + return 0
|
| + fi
|
| +
|
| + find_apt_sources
|
| +
|
| + rm -f "$APT_SOURCESDIR/@@PACKAGE@@.list" \
|
| + "$APT_SOURCESDIR/@@PACKAGE@@-@@CHANNEL@@.list"
|
| +}
|
| +
|
| +# Detect if the repo config was disabled by distro upgrade and enable if
|
| +# necessary.
|
| +handle_distro_upgrade() {
|
| + if [ ! "$REPOCONFIG" ]; then
|
| + return 0
|
| + fi
|
| +
|
| + find_apt_sources
|
| + SOURCELIST="$APT_SOURCESDIR/@@PACKAGE@@.list"
|
| + if [ -r "$SOURCELIST" ]; then
|
| + REPOLINE=$(grep -E "^[[:space:]]*#[[:space:]]*$REPOCONFIG[[:space:]]*# disabled on upgrade to .*" "$SOURCELIST")
|
| + if [ $? -eq 0 ]; then
|
| + sed -i -e "s,^[[:space:]]*#[[:space:]]*\($REPOCONFIG\)[[:space:]]*# disabled on upgrade to .*,\1," \
|
| + "$SOURCELIST"
|
| + LOGGER=$(which logger 2> /dev/null)
|
| + if [ "$LOGGER" ]; then
|
| + "$LOGGER" -t "$0" "Reverted repository modification: $REPOLINE."
|
| + fi
|
| + fi
|
| + fi
|
| +}
|
| +
|
| +DEFAULT_ARCH="@@ARCHITECTURE@@"
|
| +
|
| +get_lib_dir() {
|
| + if [ "$DEFAULT_ARCH" = "i386" ]; then
|
| + LIBDIR=lib/i386-linux-gnu
|
| + elif [ "$DEFAULT_ARCH" = "amd64" ]; then
|
| + LIBDIR=lib/x86_64-linux-gnu
|
| + else
|
| + echo Unknown CPU Architecture: "$DEFAULT_ARCH"
|
| + exit 1
|
| + fi
|
| +}
|
|
|