wok view get-google-chrome/stuff/get-google-chrome @ rev 5307

get-google-chrome: Fixed google-chrome-unstable DEPENDS
author Liu Peng <rocky@slitaz.org>
date Wed Apr 21 00:04:15 2010 +0000 (2010-04-21)
parents f9edb4f35345
children 66e68cc95aa8
line source
1 #!/bin/sh
2 # Google Chrome is built with open source code from Chromium.
4 PACKAGE="google-chrome-unstable"
5 DEBPKG="${PACKAGE}_current_i386.deb"
6 URL="http://dl.google.com/linux/direct/$DEBPKG"
7 CUR_DIR=$(pwd)
8 TEMP_DIR=/tmp/$PACKAGE-$$
9 ROOT=
10 FORCED=
12 while getopts "hfr:" option; do
13 case $option in
14 h) echo -e "Usage: $(basename $0) [-f|-r path]\n -f: force install.\n -r path: root directory."; exit 1 ;;
15 f) FORCED="--forced" ;;
16 r) ROOT=$OPTARG ;;
17 \?) echo "Wrong argument, Exit ...."; exit 1 ;;
18 esac
19 done
21 # Check if we are root
22 if test $(id -u) != 0 ; then
23 echo -e "\nYou must be root to run `basename $0`."
24 echo -e "Please type 'su' and root password to become super-user.\n"
25 exit 1
26 fi
28 # Avoid reinstall
29 if [ -d $ROOT/var/lib/tazpkg/installed/$PACKAGE ] && [ -z $FORCED ]; then
30 echo -e "\n$PACKAGE package is already installed, add '-f' option to force install.\n"
31 exit 1
32 fi
34 # Create a TEMP_DIR
35 mkdir $TEMP_DIR
36 cd $TEMP_DIR
38 # Download the file
39 wget $URL
40 if [ ! -f $DEBPKG ]; then
41 cd $CUR_DIR
42 rm -rf $TEMP_DIR
43 echo "Could not download $DEBPKG. Exiting."
44 exit 1
45 fi
47 # Install binutils(ar) pkg
48 if [ ! -d /var/lib/tazpkg/installed/binutils ]; then
49 tazpkg get-install binutils
50 fi
51 if [ ! -f /usr/bin/ar ]; then
52 cd $CUR_DIR
53 rm -rf $TEMP_DIR
54 echo "Could not extract $DEBPKG. Exiting."
55 exit 1
56 fi
58 ar x $DEBPKG control.tar.gz data.tar.lzma && lzma d data.tar.lzma -so | tar xf -
59 tar xzf control.tar.gz ./control
60 VERSION=`sed -n 's/Version:\ *//p' control`
62 # extracted pkg can be removed: Save RAM
63 rm -rf $DEBPKG
65 mkdir -p $PACKAGE-$VERSION/fs
66 mv usr opt $PACKAGE-$VERSION/fs
68 # delete man page
69 rm -rf $PACKAGE-$VERSION/fs/usr/share/man/
71 cd $TEMP_DIR
73 cat > $PACKAGE-$VERSION/receipt << EOT
74 PACKAGE="$PACKAGE"
75 VERSION="$VERSION"
76 CATEGORY="non-free"
77 SHORT_DESC="The web browser from Google."
78 DEPENDS="gtk+ GConf lzma flash-plugin bash xdg-utils xorg-libXss"
79 WEB_SITE="http://www.google.com/chrome/"
81 post_install()
82 {
83 local root
84 root=$1
85 ln -s /usr/lib/libnspr4.so $root/usr/lib/libnspr4.so.0d 2> /dev/null
86 ln -s /usr/lib/libnss3.so $root/usr/lib/libnss3.so.1d 2> /dev/null
87 ln -s /usr/lib/libnssutil3.so $root/usr/lib/libnssutil3.so.1d 2> /dev/null
88 ln -s /usr/lib/libplc4.so $root/usr/lib/libplc4.so.0d 2> /dev/null
89 ln -s /usr/lib/libplds4.so $root/usr/lib/libplds4.so.0d 2> /dev/null
90 ln -s /usr/lib/libsmime3.so $root/usr/lib/libsmime3.so.1d 2> /dev/null
91 ln -s /usr/lib/libssl3.so $root/usr/lib/libssl3.so.1d 2> /dev/nul
92 sed -i 's/exec -a "$0"/exec /' $root/usr/bin/google-chrome 2> /dev/null
94 # Add icons to the system icons
95 XDG_ICON_RESOURCE="\`which xdg-icon-resource 2> /dev/null\`"
96 if [ ! -x "\$XDG_ICON_RESOURCE" ]; then
97 echo "Error: Could not find xdg-icon-resource" >&2
98 return 1
99 fi
100 for icon in "/opt/google/chrome/product_logo_"*.png; do
101 size="\${icon##*/product_logo_}"
102 "\$XDG_ICON_RESOURCE" install --size "\${size%.png}" "\$icon" "google-chrome"
103 done
105 # Add an entry to the system menu
106 XDG_DESKTOP_MENU="\`which xdg-desktop-menu 2> /dev/null\`"
107 UPDATE_MENUS="\`which update-menus 2> /dev/null\`"
108 if [ ! -x "\$XDG_DESKTOP_MENU" ]; then
109 echo "Error: Could not find xdg-desktop-menu" >&2
110 return 1
111 fi
112 "\$XDG_DESKTOP_MENU" install /opt/google/chrome/google-chrome.desktop
114 if [ -x "\$UPDATE_MENUS" ]; then
115 update-menus
116 fi
117 }
118 pre_remove()
119 {
120 rm -f /usr/lib/libnspr4.so.0d \
121 /usr/lib/libnss3.so.1d \
122 /usr/lib/libnssutil3.so.1d \
123 /usr/lib/libplc4.so.0d \
124 /usr/lib/libplds4.so.0d \
125 /usr/lib/libsmime3.so.1d \
126 /usr/lib/libssl3.so.1d 2> /dev/nul
128 # Remove icons from the system icons
129 XDG_ICON_RESOURCE="\`which xdg-icon-resource 2> /dev/null\`"
130 if [ ! -x "\$XDG_ICON_RESOURCE" ]; then
131 echo "Error: Could not find xdg-icon-resource" >&2
132 return 1
133 fi
134 for icon in "/opt/google/chrome/product_logo_"*.png; do
135 size="\${icon##*/product_logo_}"
136 "\$XDG_ICON_RESOURCE" uninstall --size "\${size%.png}" "google-chrome"
137 done
139 # Remove the entry from the system menu
140 XDG_DESKTOP_MENU="\`which xdg-desktop-menu 2> /dev/null\`"
141 UPDATE_MENUS="\`which update-menus 2> /dev/null\`"
142 if [ ! -x "\$XDG_DESKTOP_MENU" ]; then
143 echo "Error: Could not find xdg-desktop-menu" >&2
144 return 1
145 fi
146 "\$XDG_DESKTOP_MENU" uninstall /opt/google/chrome/google-chrome.desktop
148 if [ -x "\$UPDATE_MENUS" ]; then
149 update-menus
150 fi
151 }
152 EOT
154 # Pack
155 tazpkg pack $PACKAGE-$VERSION
157 # Clean to save RAM memory
158 rm -rf $PACKAGE-$VERSION
160 # Install pseudo package
161 yes y | tazpkg install $PACKAGE-$VERSION.tazpkg --root=$ROOT $FORCED
163 # Clean
164 cd $CUR_DIR
165 rm -rf $TEMP_DIR