wok diff get-OpenOffice3/stuff/get-OpenOffice3 @ rev 25002
updated nrg2iso (0.4 -> 0.4.1)
author | Hans-G?nter Theisgen |
---|---|
date | Mon May 16 14:45:30 2022 +0100 (2022-05-16) |
parents | c07aaa614a02 |
children |
line diff
1.1 --- a/get-OpenOffice3/stuff/get-OpenOffice3 Thu Dec 26 12:26:59 2019 +0100 1.2 +++ b/get-OpenOffice3/stuff/get-OpenOffice3 Mon May 16 14:45:30 2022 +0100 1.3 @@ -1,159 +1,191 @@ 1.4 #!/bin/sh 1.5 # get-OpenOffice3, install everything for OpenOffice.org exept KDE/Gnome integration and testsuite. 1.6 # 1.7 -# (C) 2008 SliTaz - GNU General Public License v3. 1.8 +# (C) 2020 SliTaz - GNU General Public License v3. 1.9 # 1.10 # Author : Eric Joseph-Alexandre <erjo@slitaz.org> 1.11 +# modified by HGT on 2020-02-07 1.12 +# 1.13 +# === Initialisations === 1.14 1.15 +PKGS_DB="/var/lib/tazpkg" # packages database directory 1.16 PACKAGE="OpenOffice3" 1.17 -URL="http://www.openoffice.org" 1.18 -ROOT="$1" 1.19 +WEB_SITE="https://openoffice.org" 1.20 +CATEGORY="office" 1.21 +DEPENDS="java-jre" 1.22 + 1.23 PATTERN="Linux_x86_install-rpm" 1.24 +EXCLUDE="kde|gnome|test" 1.25 1.26 -for MIRROR in \ 1.27 -http://mirror.switch.ch/ftp/mirror/OpenOffice \ 1.28 -http://openoffice.cict.fr \ 1.29 -http://wwwftp.ciril.fr/pub/openoffice \ 1.30 -http://artfiles.org/openoffice.org \ 1.31 -http://vesta.informatik.rwth-aachen.de/ftp/pub/mirror/OpenOffice \ 1.32 -http://ftp.ntua.gr/pub/OpenOffice \ 1.33 -http://ftp.iitm.ac.in/openoffice \ 1.34 -http://www.ring.gr.jp/archives/misc/openoffice \ 1.35 -http://ftp.nluug.nl/pub/office/openoffice \ 1.36 +# Declare functions check_root, status, ... 1.37 +. /lib/libtaz.sh 1.38 +# and make commandline options (if any) available as variables 1.39 1.40 -do 1.41 - wget -O - $MIRROR/ 2> /dev/null | grep -q localized || continue 1.42 - DIR="stable" 1.43 - LOC=$(wget -O - $MIRROR/localized/ 2> /dev/null | \ 1.44 - grep -E ">$LANG/|>${LANG/_/-}/|>${LANG%_*}/" | \ 1.45 - head -1 | sed 's/.*href=\"\(.*\)\/\".*/\1/') 1.46 - [ -n "$LOC" ] && DIR="localized/$LOC" 1.47 - VERSION="$(basename $(wget -O - $MIRROR/$DIR/ 2> /dev/null | grep \ 1.48 - href=\"[0-9] | tail -1 | sed 's/.*href=\"\(.*\)\".*/\1/') 2> /dev/null)" 1.49 - [ -n "$VERSION" ] && break 1.50 -done 1.51 - 1.52 -if [ -z "$VERSION" ]; then 1.53 - echo "Can't find VERSION. Abort." 1.54 - exit 0 1.55 -fi 1.56 -echo "Selecting $DIR version $VERSION ..." 1.57 -TARBALL="$(wget -O - $MIRROR/$DIR/$VERSION/ \ 1.58 - 2> /dev/null | grep $PATTERN | tail -1 | sed 's/.*href=\"\(.*\)\".*/\1/')" 1.59 -echo "Archive is $TARBALL ..." 1.60 -WGET_URL=$MIRROR/$DIR/$VERSION/$TARBALL 1.61 - 1.62 -TEMP_DIR="/tmp/$PACKAGE.$$" 1.63 -CUR_DIR=$(pwd) 1.64 -SOURCE_DIR="/tmp/src.$$" 1.65 -EXCLUDE="kde|gnome|test" 1.66 -LOG="/tmp/$(basename $0 .sh).log" 1.67 - 1.68 -# Status function with color (supported by Ash). 1.69 -status() 1.70 +is_installed() 1.71 { 1.72 - local CHECK=$? 1.73 - echo -en "\\033[70G[ " 1.74 - if [ $CHECK = 0 ]; then 1.75 - echo -en "\\033[1;33mOK" 1.76 - else 1.77 - echo -en "\\033[1;31mFailed" 1.78 - fi 1.79 - echo -e "\\033[0;39m ]" 1.80 - return $CHECK 1.81 -} 1.82 - 1.83 -# Check if user is root to install, or remove packages. 1.84 -check_root() 1.85 -{ 1.86 - if test $(id -u) != 0 ; then 1.87 - echo -e "\nYou must be root to run `basename $0` with this option." 1.88 - echo -e "Please use 'su' and root password to become super-user.\n" 1.89 - exit 0 1.90 - fi 1.91 -} 1.92 - 1.93 -check_if_installed() 1.94 -{ 1.95 - # Avoid reinstall 1.96 - if [ -d $ROOT/var/lib/tazpkg/installed/$PACKAGE ];then 1.97 + if [ -d $ROOT$PKGS_DB/installed/$PACKAGE ] 1.98 + then #package is deemed to be installed 1.99 return 0 1.100 - else 1.101 + else 1.102 return 1 1.103 fi 1.104 } 1.105 1.106 -#We need to bee root 1.107 +# Show commandline options, if requested by --help 1.108 +if [ "$help" == "yes" ] 1.109 + then 1.110 + echo "Commandline options: 1.111 + $0 1.112 + --version=<version> 1.113 + --root=<path-to-root> 1.114 + --install=yes|no|quick 1.115 + --keep=no|yes 1.116 + --tmpdir=<directory-to-build-package> 1.117 + --logfile=<logging-file>" 1.118 + exit 1.119 +fi 1.120 + 1.121 +# Check for system administrator privileges 1.122 check_root 1.123 1.124 -#check if package already installed 1.125 -if (check_if_installed $PACKAGE); then 1.126 - echo "$PACKAGE is already installed." 1.127 - [ -n "$ROOT" ] && exit 0 1.128 - echo -n "Would you like to remove and reinstall this package [y/n]? " 1.129 - read answer 1.130 - case "$answer" in 1.131 - y|Y) 1.132 - tazpkg remove $PACKAGE ;; 1.133 - *) 1.134 - exit 0 ;; 1.135 - esac 1.136 - 1.137 +title "Package $PACKAGE will be build as SliTaz package and installed" 1.138 + 1.139 +# Fetch latest version, unless version is set by option --version 1.140 +[ -z "$version" ] && version="latest" 1.141 + 1.142 +# Install SliTaz package, unless inhibited by option --install=no 1.143 +[ -z "$install" ] && install="yes" 1.144 + 1.145 +# Delete SliTaz package file $PACKAGE-$VERSION.tazpkg after installation, 1.146 +# unless option --keep=yes is given 1.147 +[ -z "$keep" ] && keep="no" 1.148 + 1.149 +# Directory for temporary files 1.150 +[ -z "$tempdir" ] && TMP_DIR="/tmp/get-$PACKAGE" 1.151 + 1.152 +# Logging file 1.153 +[ -z "$logfile" ] && LOG=$TMP_DIR/get-$PACKAGE.log 1.154 + 1.155 +cat <<EOT 1.156 +Options in use: 1.157 + root : $root/ 1.158 + version : $version 1.159 + install package: $install 1.160 + keep tazpkg : $keep 1.161 + build directory: $TMP_DIR 1.162 + logging file : $LOG 1.163 + 1.164 +EOT 1.165 + 1.166 +separator; newline 1.167 + 1.168 +# Set WGET_URL 1.169 +# 3.3.0 no german rpm-Package available! 1.170 +for MIRROR in \ 1.171 + http://ftp.free.fr/mirrors/ftp.openoffice.org \ 1.172 + http://ftp-stud.hs-esslingen.de/pub/Mirrors/ftp.openoffice.org \ 1.173 + http://www.ellak.gr/pub/openoffice \ 1.174 + http://ftp.snt.utwente.nl/pub/software/openoffice \ 1.175 + http://ftp.nluug.nl/pub/office/openoffice \ 1.176 + http://ftp.isu.edu.tw/pub/OpenOffice 1.177 + do 1.178 + wget -O - $MIRROR/ 2> /dev/null | grep -q localized || continue 1.179 + DIR="stable" 1.180 + LOC=$(wget -O - $MIRROR/localized/ 2> /dev/null | \ 1.181 + grep -E ">$LANG<|>$LANG/<|>${LANG/_/-}<|>${LANG/_/-}/<|>${LANG%_*}<|>${LANG%_*}/<" | \ 1.182 + head -1 | sed 's|.*href=\"\(.*\)/\".*|\1|') 1.183 + [ -n "$LOC" ] && DIR="localized/$LOC" 1.184 + VERSION="$(wget -O - $MIRROR/$DIR/ 2> /dev/null | \ 1.185 + grep href=\"[0-9] | tail -1 | sed 's|.*href=\"\(.*\)/\".*|\1|' 2> /dev/null)" 1.186 + [ -n "$VERSION" ] && break 1.187 + done 1.188 +TARBALL=$(wget -O - $MIRROR/$DIR/$VERSION/ 2> /dev/null | \ 1.189 + grep $PATTERN | tail -1 | sed 's|.*href=\"\(.*\)\".*|\1|') 1.190 +# bug in sed?: 1.191 +TARBALL=${TARBALL%%\"*} 1.192 +echo "Archive is $TARBALL ..." 1.193 + 1.194 +# Set VERSION, unless supplied by --version 1.195 +if [ "$version" == "latest" ] 1.196 + then 1.197 + echo "Selecting $DIR version $VERSION from $MIRROR ..." 1.198 + WGET_URL=$MIRROR/$DIR/$VERSION/$TARBALL 1.199 + else 1.200 + TARBALL=${TARBALL/$VERSION/$version} 1.201 + VERSION=$version 1.202 + WGET_URL="$MIRROR/$DIR/$VERSION/$TARBALL" 1.203 fi 1.204 1.205 - 1.206 -# Check if we have the tarball before. 1.207 -if [ ! -f $SOURCE_DIR/$TARBALL ]; then 1.208 - echo "Downloading OppenOffice.org tarball (it's time to have a break)... " 1.209 - #Check if $SOURCE_DIR exist 1.210 - test -d $SOURCE_DIR || mkdir -p $SOURCE_DIR 1.211 - # Get the file. 1.212 - wget -c $WGET_URL -O $SOURCE_DIR/$TARBALL 1.213 - status 1.214 -fi 1.215 -if [ ! -f $SOURCE_DIR/$TARBALL ]; then 1.216 - rm -rf $SOURCE_DIR 1.217 - echo "Could not download $TARBALL. Exiting." 1.218 - exit 1 1.219 +# === Remove package, if installed === 1.220 +if [ is_installed ] 1.221 + then 1.222 + action "Removing installed version..." 1.223 + tazpkg remove $PACKAGE --root="$root/" 1.224 + [ ! is_installed ] && 1.225 + die "Can't remove installed version. Exiting." 1.226 fi 1.227 1.228 -# Creates TEMP_DIR and extract tarball 1.229 -mkdir -p $TEMP_DIR 1.230 -echo -n "Extract files from archive..." 1.231 -busybox tar xvf $SOURCE_DIR/$TARBALL -C $TEMP_DIR > $LOG 2>&1 || \ 1.232 +# === Fetch archive file, if not existing === 1.233 + 1.234 +CUR_DIR=$(pwd) 1.235 +mkdir -p $TMP_DIR 1.236 +cd $TMP_DIR 1.237 +if [ -f $TARBALL ] 1.238 + then 1.239 + echo "Using existing archive file $TARBALL" 1.240 + else 1.241 + action "Fetching the archive" 1.242 + newline 1.243 + wget --no-check-certificate $WGET_URL 1.244 + if [ ! -f $TARBALL ] 1.245 + then 1.246 + cd $CUR_DIR 1.247 + rm -rf $TMP_DIR 1.248 + echo "Could not transfer $TARBALL from $WGET_URL. Exiting." 1.249 + exit 1 1.250 + fi 1.251 +fi 1.252 + 1.253 +# === Extract files from archive === 1.254 +action "Extracting the archive" 1.255 +newline 1.256 + 1.257 +tar x -vf $TARBALL > $LOG 2>&1 || \ 1.258 (echo "Failed to extract $TARBALL" ; exit 1) 1.259 + 1.260 status 1.261 1.262 -# extracted pkg can be removed: Save RAM 1.263 -rm -rf $SOURCE_DIR 1.264 - 1.265 -cd $TEMP_DIR/*/RPMS 1.266 +# Remove archive file 1.267 +rm -f $TARBALL 1.268 1.269 # Extract everything from RPMS 1.270 +cd $TMP_DIR/*/RPMS 1.271 for i in *.rpm 1.272 -do 1.273 - if (! echo $i | egrep -qi $EXCLUDE); then 1.274 - (rpm2cpio $i | cpio -id >> $LOG 2>&1 ) && rm -f $i 1.275 + do 1.276 + if (! echo $i | egrep -qi $EXCLUDE) 1.277 + then 1.278 + (rpm2cpio $i | cpio -id >> $LOG 2>&1 ) && 1.279 + echo rm -f $i 1.280 fi 1.281 -done 1.282 + done 1.283 rpm2cpio desktop-integration/*freedesktop*.rpm | cpio -id >> $LOG 2>&1 1.284 1.285 -# extracted pkg can be removed: Save RAM 1.286 +# extracted pkg can be removed 1.287 rm -f desktop-integration/*freedesktop*.rpm 1.288 1.289 +# Make the package 1.290 +mkdir -p $PACKAGE-$VERSION/fs/usr/lib/openoffice 1.291 +mkdir -p $PACKAGE-$VERSION/fs/usr/share 1.292 1.293 -# Make the package 1.294 -mkdir -p $PACKAGE-$VERSION/fs/usr/lib/openoffice \ 1.295 - $PACKAGE-$VERSION/fs/usr/share 1.296 - 1.297 -# use mv instead of 'cp -a' to save RAM 1.298 -mv opt/openoffice* $PACKAGE-$VERSION/fs/usr/lib/openoffice 1.299 -mv usr/share/mime $PACKAGE-$VERSION/fs/usr/share 1.300 -mv usr/share/icons $PACKAGE-$VERSION/fs/usr/share 1.301 -mv usr/bin $PACKAGE-$VERSION/fs/usr 1.302 +# use mv instead of 'cp -a' to save space 1.303 +mv opt/openoffice* $PACKAGE-$VERSION/fs/usr/lib/openoffice 1.304 +mv usr/share/mime $PACKAGE-$VERSION/fs/usr/share 1.305 +mv usr/share/icons $PACKAGE-$VERSION/fs/usr/share 1.306 +mv usr/bin $PACKAGE-$VERSION/fs/usr 1.307 1.308 # relocalized OOo libexec directory 1.309 -sed -i 's#/opt/#/usr/lib/openoffice/#' $PACKAGE-$VERSION/fs/usr/bin/openoffice* 1.310 +sed -i 's#/opt/#/usr/lib/openoffice/#' \ 1.311 + $PACKAGE-$VERSION/fs/usr/bin/openoffice* 1.312 1.313 # Create receipt 1.314 cat > $PACKAGE-$VERSION/receipt <<EOT 1.315 @@ -163,8 +195,8 @@ 1.316 VERSION="$VERSION" 1.317 CATEGORY="office" 1.318 SHORT_DESC="Productivity suite." 1.319 -DEPENDS="java-jre" 1.320 -WEB_SITE="$URL" 1.321 +DEPENDS="$DEPENDS" 1.322 +WEB_SITE="$WEB_SITE" 1.323 1.324 post_install() 1.325 { 1.326 @@ -176,7 +208,7 @@ 1.327 ln -s /usr/lib/openoffice/openoffice.org3/share/xdg/math.desktop openoffice.org3-math.desktop 1.328 ln -s /usr/lib/openoffice/openoffice.org3/share/xdg/draw.desktop openoffice.org3-draw.desktop 1.329 ln -s /usr/lib/openoffice/openoffice.org3/share/xdg/printeradmin.desktop openoffice.org3-printeradmin.desktop 1.330 - 1.331 + 1.332 cd \$1/usr/bin 1.333 ln -sf /usr/lib/openoffice/openoffice.org3/program/soffice 1.334 } 1.335 @@ -190,54 +222,56 @@ 1.336 1.337 fake_install() 1.338 { 1.339 - mkdir -p $ROOT/var/lib/tazpkg/installed/$PACKAGE 1.340 + mkdir -p $root/var/lib/tazpkg/installed/$PACKAGE 1.341 echo "00000000000000000000000000000000 $PACKAGE-$VERSION.tazpkg" >> \ 1.342 - $ROOT/var/lib/tazpkg/installed.md5 1.343 - [ -s $1/description.txt $ROOT/var/lib/tazpkg/installed/$PACKAGE 1.344 + $root/var/lib/tazpkg/installed.md5 1.345 + [ -s $1/description.txt $root/var/lib/tazpkg/installed/$PACKAGE 1.346 ( cd fs ; find *) | sed 's|^|/|' > \ 1.347 - $ROOT/var/lib/tazpkg/installed/$PACKAGE/files.list 1.348 - if grep -q ^CONFIG_FILES= $1/receipt ; then 1.349 + $root/var/lib/tazpkg/installed/$PACKAGE/files.list 1.350 + if grep -q ^CONFIG_FILES= $1/receipt 1.351 + then 1.352 cd fs 1.353 - find $( . ./receipt ; echo " $CONFIG_FILES" | sed 's| /| |g') |\ 1.354 + find $( . ./receipt ; echo " $CONFIG_FILES" | sed 's# /# #g') |\ 1.355 cpio -o -H newc | gzip -9 > \ 1.356 - $ROOT/var/lib/tazpkg/installed/$PACKAGE/volatile.cpio.gz 1.357 - for i in $( . ./receipt ; echo $CONFIG_FILES) ; do 1.358 - [ -e $ROOT$i ] && rm -rf .$i 1.359 - done 1.360 + $root/var/lib/tazpkg/installed/$PACKAGE/volatile.cpio.gz 1.361 + for i in $( . ./receipt ; echo $CONFIG_FILES) 1.362 + do 1.363 + [ -e $root$i ] && rm -rf .$i 1.364 + done 1.365 cd .. 1.366 fi 1.367 sed -i "s/^PACKAGE=/UNPACKED_SIZE=\"$(du -chs $1 | sed '$!d;s/.total//')\"\n&/" \ 1.368 $1/receipt 1.369 - cp $1/receipt $ROOT/var/lib/tazpkg/installed/$PACKAGE 1.370 + cp $1/receipt $root/var/lib/tazpkg/installed/$PACKAGE 1.371 echo "Compute md5sum..." 1.372 find fs -type f | xargs md5sum | sed 's| fs/| /|' > \ 1.373 - $ROOT/var/lib/tazpkg/installed/$PACKAGE/md5sum 1.374 + $root/var/lib/tazpkg/installed/$PACKAGE/md5sum 1.375 echo "Move files..." 1.376 - ( cd $1/fs ; find ) | while read file ; do 1.377 - [ -e $1/fs/$file -a ! -e $ROOT/$file ] && 1.378 - mv $1/fs/$file $(dirname $ROOT/$file) 1.379 - done 1.380 + ( cd $1/fs ; find ) | while read file 1.381 + do 1.382 + [ -e $1/fs/$file -a ! -e $root/$file ] && 1.383 + mv $1/fs/$file $(dirname $root/$file) 1.384 + done 1.385 } 1.386 1.387 -case " $@ " in 1.388 -*\ --q*) # --quick 1.389 - fake_install $PACKAGE-$VERSION ;; 1.390 -*) 1.391 - # Pack 1.392 - tazpkg pack $PACKAGE-$VERSION 1.393 +[ "$install" == "quick" ] && 1.394 +fake_install $PACKAGE-$VERSION && return 0 1.395 1.396 - # Clean to save RAM memory 1.397 - rm -rf $PACKAGE-$VERSION 1.398 +# Pack 1.399 +tazpkg pack $PACKAGE-$VERSION 1.400 +# Remove package tree 1.401 +rm -rf $PACKAGE-$VERSION 1.402 1.403 - # Install pseudo package 1.404 - tazpkg install $PACKAGE-$VERSION.tazpkg --root=$ROOT 1.405 +# === Install the SliTaz package === 1.406 +[ "$install" == "yes" ] && 1.407 +tazpkg install $PACKAGE-$VERSION.tazpkg --root="$root" 1.408 1.409 - echo " $@ " | grep -q ' --k' && 1.410 - mv $PACKAGE-$VERSION.tazpkg $CUR_DIR 1.411 - ;; 1.412 -esac 1.413 +# === Cleanup === 1.414 +# Preserve package file, if requested 1.415 +[ "$keep" == "yes" ] && 1.416 +( mv $PACKAGE-$VERSION.tazpkg $CUR_DIR && 1.417 + echo Saved $PACKAGE-$VERSION.tazpkg to $CUR_DIR ) 1.418 1.419 +# Remove temporary build directory 1.420 cd $CUR_DIR 1.421 - 1.422 -# Clean 1.423 -rm -rf $TEMP_DIR 1.424 +rm -rf $TMP_DIR