wok diff get-vivaldi/stuff/get-vivaldi @ rev 24038
updated get-vivaldi (1.0 -> 1.01)
author | Hans-G?nter Theisgen |
---|---|
date | Tue Apr 13 15:38:58 2021 +0100 (2021-04-13) |
parents | 100bf857d43f |
children | 31250d4576c3 |
line diff
1.1 --- a/get-vivaldi/stuff/get-vivaldi Tue Jul 05 17:03:57 2016 +0200 1.2 +++ b/get-vivaldi/stuff/get-vivaldi Tue Apr 13 15:38:58 2021 +0100 1.3 @@ -1,70 +1,190 @@ 1.4 #!/bin/sh 1.5 +# 1.6 +# get-vivaldi - create and install SliTaz package vivaldi 1.7 +# 1.8 +# (C) 2021 SliTaz - GNU General Public License v3. 1.9 +# Author : Aleksej Bobylev 1.10 +# modified by Hans-Günter Theisgen on 2021-04-13 1.11 +# 1.12 1.13 -# Get and install Vivaldi browser for Linux 1.14 +# === Initialisations === 1.15 1.16 -# Check if we are root 1.17 -if [ $(id -u) -ne 0 ]; then 1.18 - echo -e "\nYou must be root to run $(basename $0)." 1.19 - echo -e "Please type 'su' and root password to become super-user.\n" 1.20 - exit 1 1.21 +PKGS_DB="/var/lib/tazpkg" # packages database directory 1.22 +PACKAGE="vivaldi" 1.23 +CATEGORY="non-free" 1.24 +SHORT=DESC="An advanced browser made with the power user in mind." 1.25 +MAINTAINER="nobody@slitaz.org" 1.26 +LICENSE="non-free" 1.27 +WEB_SITE="https://vivaldi.com/" 1.28 +# at least valid for 3.7.2218.52-1: 1.29 +DEPENDS="at-spi2-atk bash GConf gtk+3 libcups libexif libxkbcommon mesa-wayland nss xorg-libxshmfence" 1.30 + 1.31 +# Declare functions check_root, status, ... 1.32 +. /lib/libtaz.sh 1.33 +# and make commandline options (if any) available as variables 1.34 + 1.35 +is_installed() 1.36 +{ 1.37 + if [ -d $ROOT$PKGS_DB/installed/$PACKAGE ] 1.38 + then #package is deemed to be installed 1.39 + return 0 1.40 + else 1.41 + return 1 1.42 + fi 1.43 +} 1.44 + 1.45 +# Show commandline options, if requested by --help 1.46 +if [ "$help" == "yes" ] 1.47 + then 1.48 + echo "Commandline options: 1.49 + $0 1.50 + --version=<version> 1.51 + --root=<path-to-root> 1.52 + --install=yes|no 1.53 + --keep=no|yes 1.54 + --tmpdir=<directory-to-build-package> 1.55 + --logfile=<logging-file>" 1.56 + exit 1.57 fi 1.58 1.59 -# Get link to downloading precompiled package 1.60 -dl_page='https://vivaldi.com/download' 1.61 -dl_type='32bit RPM' 1.62 -url=$(busybox wget -O - "$dl_page" | sed "/$dl_type/!d;s|.*href=\"\\([^\"]*\\).*|\\1|") 1.63 -if [ -z "$url" ]; then 1.64 - echo -e "\nCan't find download link on $dl_page for $dl_type." 1.65 - exit 1 1.66 +# Check for system administrator privileges 1.67 +check_root 1.68 + 1.69 +title "Package $PACKAGE will be build as SliTaz package and installed" 1.70 + 1.71 +# Fetch latest version, unless version is set by option --version 1.72 +# For available versions look at https://vivaldi.com/download/archive/ 1.73 +[ -z "$version" ] && version="latest" 1.74 + 1.75 +# Install SliTaz package, unless inhibited by option --install=no 1.76 +[ -z "$install" ] && install="yes" 1.77 + 1.78 +# Delete SliTaz package file $PACKAGE-$VERSION.tazpkg after installation, 1.79 +# unless option --keep=yes is given 1.80 +[ -z "$keep" ] && keep="no" 1.81 + 1.82 +# Directory for temporary files 1.83 +TMP_DIR="$tmpdir" 1.84 +[ -z "$tmpdir" ] && TMP_DIR="/tmp/get-$PACKAGE" 1.85 + 1.86 +# Logging file (unused by now) 1.87 +LOG="$logfile" 1.88 +[ -z "$logfile" ] && LOG=$TMP_DIR/get-$PACKAGE.log 1.89 + 1.90 +cat <<EOT 1.91 +Options in use: 1.92 + root : $root/ 1.93 + version : $version 1.94 + install package: $install 1.95 + keep tazpkg : $keep 1.96 + build directory: $TMP_DIR 1.97 + logging file : $LOG 1.98 + 1.99 +EOT 1.100 + 1.101 +separator; newline 1.102 + 1.103 +# === Remove package, if installed === 1.104 +if is_installed 1.105 + then 1.106 + echo "$PACKAGE is already installed." 1.107 + echo -n "Would you like to remove and reinstall this package [y/n]? " 1.108 + read answer 1.109 + case "$answer" in 1.110 + y|Y) 1.111 + action "Removing installed version..." 1.112 + tazpkg remove $PACKAGE --root="$root/" 1.113 + [ ! is_installed ] && 1.114 + die "Can't remove installed version. Exiting." 1.115 + ;; 1.116 + *) 1.117 + echo "Leaving $PACKAGE untouched." 1.118 + exit 0 1.119 + ;; 1.120 + esac 1.121 fi 1.122 1.123 -# Download package 1.124 -tmp_dir="$(mktemp -d)" 1.125 -cd "$tmp_dir" 1.126 -busybox wget $url 1.127 -pkg=$(basename $url) 1.128 -if [ ! -f $pkg ]; then 1.129 - cd - 1.130 - rm -r "$tmp_dir" 1.131 - echo "Could not download $pkg. Exiting." 1.132 - exit 1 1.133 +# === Fetch rpm package, if not existing === 1.134 +if [ "$version" == "latest" ] 1.135 + then 1.136 + dl_page='https://vivaldi.com/download' 1.137 + dl_type='i386.rpm' 1.138 + WGET_URL=$(busybox wget -O - "$dl_page" | sed "/$dl_type/!d;s|.*href=\"\\([^\"]*\\)\.i386\.rpm.*|\\1|") 1.139 + VERSION=${WGET_URL#*vivaldi-stable-*} 1.140 + WGET_URL=$WGET_URL.$dl_type 1.141 + FILE=$(basename $WGET_URL) 1.142 + else 1.143 + VERSION=$version 1.144 + FILE="${PACKAGE}-stable-${VERSION}.i386.rpm" 1.145 + WGET_URL="https://downloads.vivaldi.com/stable/$FILE" 1.146 fi 1.147 1.148 -# Extract package 1.149 -rpm2cpio $pkg | cpio -dium 1.150 -rm $pkg 1.151 +CUR_DIR=$(pwd) 1.152 +mkdir -p $TMP_DIR 1.153 +cd $TMP_DIR 1.154 +if [ -f $FILE ] 1.155 + then 1.156 + echo "Using existing archive file $FILE" 1.157 + else 1.158 + action "Fetching the archive" 1.159 + newline 1.160 + wget --no-check-certificate $WGET_URL 1.161 + if [ ! -f $FILE ] 1.162 + then 1.163 + cd $CUR_DIR 1.164 + rm -rf $TMP_DIR 1.165 + echo "Could not transfer $FILE from $WGET_URL. Exiting." 1.166 + exit 1 1.167 + fi 1.168 +fi 1.169 + return 1.170 1.171 +action "Extracting the rpm package" 1.172 +newline 1.173 +rpm2cpio $FILE | cpio -dium 1.174 +status 1.175 + 1.176 +# Remove archive file 1.177 +rm -f $FILE 1.178 + 1.179 +# === Create SliTaz package === 1.180 # Remove updater cron job 1.181 rm -r ./etc 1.182 1.183 # Add icons 1.184 -for size in 16 22 24 32 48 64 128 256; do 1.185 - mkdir -p "$tmp_dir/usr/share/icons/hicolor/${size}x$size/apps" 1.186 - ln -s /opt/vivaldi/product_logo_$size.png "$tmp_dir/usr/share/icons/hicolor/${size}x$size/apps/vivaldi.png" 1.187 -done 1.188 +for size in 16 22 24 32 48 64 128 256 1.189 + do 1.190 + mkdir -p "$TMP_DIR/usr/share/icons/hicolor/${size}x$size/apps" 1.191 + ln -s /opt/vivaldi/product_logo_$size.png \ 1.192 + "$TMP_DIR/usr/share/icons/hicolor/${size}x$size/apps/vivaldi.png" 1.193 + done 1.194 1.195 # Prepare to packaging 1.196 -VERSION="$(echo $pkg | sed 's|[^_]*_\(.*\)\.i386.*|\1|')" 1.197 -mkdir -p $tmp_dir/vivaldi-$VERSION/fs 1.198 -mv $tmp_dir/opt $tmp_dir/usr $tmp_dir/vivaldi-$VERSION/fs 1.199 +mkdir -p $TMP_DIR/$PACKAGE-$VERSION/fs 1.200 +mv $TMP_DIR/opt $TMP_DIR/$PACKAGE-$VERSION/fs 1.201 +mv $TMP_DIR/usr $TMP_DIR/$PACKAGE-$VERSION/fs 1.202 1.203 -cat > $tmp_dir/vivaldi-$VERSION/receipt << EOT 1.204 -PACKAGE="vivaldi" 1.205 +cat > $TMP_DIR/$PACKAGE-$VERSION/receipt << EOT 1.206 +PACKAGE="$PACKAGE" 1.207 VERSION="$VERSION" 1.208 -CATEGORY="non-free" 1.209 -SHORT_DESC="An advanced browser made with the power user in mind" 1.210 -DEPENDS="gtk+ bash libcups libexif GConf nss mesa" 1.211 -WEB_SITE="https://vivaldi.com/" 1.212 +CATEGORY="$CATEGORY" 1.213 +SHORT_DESC="$SHORT_DESC" 1.214 +DEPENDS="$DEPENDS" 1.215 +WEB_SITE="$WEB_SITE" 1.216 EOT 1.217 1.218 -tazpkg pack vivaldi-$VERSION gzip 1.219 +tazpkg pack $PACKAGE-$VERSION gzip 1.220 1.221 -# Clean to save RAM memory 1.222 -rm -rf $PACKAGE-$VERSION 1.223 +# === Install the SliTaz package === 1.224 +[ "$install" == "yes" ] && 1.225 +tazpkg install $PACKAGE-$VERSION.tazpkg --root="$root" 1.226 1.227 -# Install pseudo package 1.228 -yes y | tazpkg install vivaldi-$VERSION.tazpkg 1.229 +# === Cleanup === 1.230 +# Preserve package file, if requested 1.231 +[ "$keep" == "yes" ] && 1.232 +( mv $PACKAGE-$VERSION.tazpkg $CUR_DIR && 1.233 + echo "Saved $PACKAGE-$VERSION.tazpkg to $CUR_DIR" ) 1.234 1.235 -# Clean 1.236 -cd - 1.237 -rm -rf $tmp_dir 1.238 +# Remove temporary build directory 1.239 +cd $CUR_DIR 1.240 +rm -rf $TMP_DIR