wok rev 22827

modified get-OpenOffice3
author Hans-G?nter Theisgen
date Fri Feb 07 16:26:49 2020 +0100 (2020-02-07)
parents d77b60725297
children 44e5646831ce
files get-OpenOffice3/receipt get-OpenOffice3/stuff/get-OpenOffice3
line diff
     1.1 --- a/get-OpenOffice3/receipt	Fri Feb 07 16:15:46 2020 +0100
     1.2 +++ b/get-OpenOffice3/receipt	Fri Feb 07 16:26:49 2020 +0100
     1.3 @@ -1,19 +1,24 @@
     1.4  # SliTaz package receipt.
     1.5  
     1.6  PACKAGE="get-OpenOffice3"
     1.7 -VERSION="1.2"
     1.8 +VERSION="1.20"
     1.9  CATEGORY="office"
    1.10 -SHORT_DESC="Productivity suite"
    1.11 +TAGS="office word excel ppt openoffice"
    1.12 +SHORT_DESC="Productivity suite."
    1.13  MAINTAINER="erjo@slitaz.org"
    1.14  LICENSE="GPL3"
    1.15 -WEB_SITE="http://www.openoffice.org"
    1.16 -TAGS="office word excel ppt openoffice"
    1.17 +WEB_SITE="https://openoffice.org"
    1.18  
    1.19  # Rules to gen a SliTaz package suitable for Tazpkg.
    1.20  genpkg_rules()
    1.21  {
    1.22  	mkdir -p $fs/usr/bin
    1.23 -	install -o root -g root -m755 stuff/get-OpenOffice3 $fs/usr/bin
    1.24 +	install -o root -g root -m755 stuff/get-OpenOffice3	$fs/usr/bin
    1.25  	ln -s get-OpenOffice3 $fs/usr/bin/get-openoffice
    1.26  }
    1.27  
    1.28 +post_install()
    1.29 +{
    1.30 +	echo "Now you may enter:
    1.31 +get-openoffice"
    1.32 +}
     2.1 --- a/get-OpenOffice3/stuff/get-OpenOffice3	Fri Feb 07 16:15:46 2020 +0100
     2.2 +++ b/get-OpenOffice3/stuff/get-OpenOffice3	Fri Feb 07 16:26:49 2020 +0100
     2.3 @@ -1,159 +1,191 @@
     2.4  #!/bin/sh
     2.5  # get-OpenOffice3, install everything for OpenOffice.org exept KDE/Gnome integration and testsuite.
     2.6  #
     2.7 -# (C) 2008 SliTaz - GNU General Public License v3.
     2.8 +# (C) 2020 SliTaz - GNU General Public License v3.
     2.9  #
    2.10  # Author : Eric Joseph-Alexandre <erjo@slitaz.org>
    2.11 +# modified by HGT on 2020-02-07
    2.12 +#
    2.13 +#	=== Initialisations ===
    2.14  
    2.15 +PKGS_DB="/var/lib/tazpkg"	# packages database directory
    2.16  PACKAGE="OpenOffice3"
    2.17 -URL="http://www.openoffice.org"
    2.18 -ROOT="$1"
    2.19 +WEB_SITE="https://openoffice.org"
    2.20 +CATEGORY="office"
    2.21 +DEPENDS="java-jre"
    2.22 +
    2.23  PATTERN="Linux_x86_install-rpm"
    2.24 +EXCLUDE="kde|gnome|test"
    2.25  
    2.26 -for MIRROR in \
    2.27 -http://mirror.switch.ch/ftp/mirror/OpenOffice \
    2.28 -http://openoffice.cict.fr \
    2.29 -http://wwwftp.ciril.fr/pub/openoffice \
    2.30 -http://artfiles.org/openoffice.org \
    2.31 -http://vesta.informatik.rwth-aachen.de/ftp/pub/mirror/OpenOffice \
    2.32 -http://ftp.ntua.gr/pub/OpenOffice \
    2.33 -http://ftp.iitm.ac.in/openoffice \
    2.34 -http://www.ring.gr.jp/archives/misc/openoffice \
    2.35 -http://ftp.nluug.nl/pub/office/openoffice \
    2.36 +# Declare functions check_root, status, ...
    2.37 +. /lib/libtaz.sh
    2.38 +# and make commandline options (if any) available as variables
    2.39  
    2.40 -do
    2.41 -	wget -O - $MIRROR/ 2> /dev/null | grep -q localized || continue
    2.42 -	DIR="stable"
    2.43 -	LOC=$(wget -O - $MIRROR/localized/ 2> /dev/null | \
    2.44 -		grep -E ">$LANG/|>${LANG/_/-}/|>${LANG%_*}/" | \
    2.45 -		head -1 | sed 's/.*href=\"\(.*\)\/\".*/\1/')
    2.46 -	[ -n "$LOC" ] && DIR="localized/$LOC"
    2.47 -	VERSION="$(basename $(wget -O - $MIRROR/$DIR/ 2> /dev/null | grep \
    2.48 -	href=\"[0-9] | tail -1 | sed 's/.*href=\"\(.*\)\".*/\1/') 2> /dev/null)"
    2.49 -	[ -n "$VERSION" ] && break
    2.50 -done
    2.51 -
    2.52 -if [ -z "$VERSION" ]; then
    2.53 -	echo "Can't find VERSION. Abort."
    2.54 -	exit 0
    2.55 -fi
    2.56 -echo "Selecting $DIR version $VERSION ..."
    2.57 -TARBALL="$(wget -O - $MIRROR/$DIR/$VERSION/ \
    2.58 -	2> /dev/null | grep $PATTERN | tail -1 | sed 's/.*href=\"\(.*\)\".*/\1/')"
    2.59 -echo "Archive is $TARBALL ..."
    2.60 -WGET_URL=$MIRROR/$DIR/$VERSION/$TARBALL
    2.61 -
    2.62 -TEMP_DIR="/tmp/$PACKAGE.$$"
    2.63 -CUR_DIR=$(pwd)
    2.64 -SOURCE_DIR="/tmp/src.$$"
    2.65 -EXCLUDE="kde|gnome|test"
    2.66 -LOG="/tmp/$(basename $0 .sh).log"
    2.67 -
    2.68 -# Status function with color (supported by Ash).
    2.69 -status()
    2.70 +is_installed()
    2.71  {
    2.72 -	local CHECK=$?
    2.73 -	echo -en "\\033[70G[ "
    2.74 -	if [ $CHECK = 0 ]; then
    2.75 -		echo -en "\\033[1;33mOK"
    2.76 -	else
    2.77 -		echo -en "\\033[1;31mFailed"
    2.78 -	fi
    2.79 -	echo -e "\\033[0;39m ]"
    2.80 -	return $CHECK
    2.81 -}
    2.82 -
    2.83 -# Check if user is root to install, or remove packages.
    2.84 -check_root()
    2.85 -{
    2.86 -	if test $(id -u) != 0 ; then
    2.87 -		echo -e "\nYou must be root to run `basename $0` with this option."
    2.88 -		echo -e "Please use 'su' and root password to become super-user.\n"
    2.89 -		exit 0
    2.90 -	fi
    2.91 -}
    2.92 -
    2.93 -check_if_installed()
    2.94 -{
    2.95 -	 # Avoid reinstall
    2.96 -	 if [ -d $ROOT/var/lib/tazpkg/installed/$PACKAGE ];then
    2.97 +	if [ -d $ROOT$PKGS_DB/installed/$PACKAGE ]
    2.98 +	  then	#package is deemed to be installed
    2.99  	 	return 0
   2.100 -	 else
   2.101 +	  else
   2.102  	 	return 1
   2.103  	 fi
   2.104  }
   2.105  
   2.106 -#We need to bee root
   2.107 +# Show commandline options, if requested by --help
   2.108 +if [ "$help" == "yes" ]
   2.109 +  then
   2.110 +	echo "Commandline options:
   2.111 +  $0
   2.112 +	--version=<version>
   2.113 +	--root=<path-to-root>
   2.114 +	--install=yes|no|quick
   2.115 +	--keep=no|yes
   2.116 +	--tmpdir=<directory-to-build-package>
   2.117 +	--logfile=<logging-file>"
   2.118 +	exit
   2.119 +fi
   2.120 +
   2.121 +# Check for system administrator privileges
   2.122  check_root
   2.123  
   2.124 -#check if package already installed
   2.125 -if (check_if_installed $PACKAGE); then
   2.126 -	echo "$PACKAGE is already installed."
   2.127 -	[ -n "$ROOT" ] && exit 0
   2.128 -	echo -n "Would you like to remove and reinstall this package [y/n]? "
   2.129 -	read answer
   2.130 -	case "$answer" in
   2.131 -	y|Y)
   2.132 -		tazpkg remove $PACKAGE ;;
   2.133 -	*)
   2.134 -		exit 0 ;;
   2.135 -	esac
   2.136 -		
   2.137 +title "Package $PACKAGE will be build as SliTaz package and installed"
   2.138 +
   2.139 +# Fetch latest version, unless version is set by option --version
   2.140 +[ -z "$version" ] && version="latest"
   2.141 +
   2.142 +# Install SliTaz package, unless inhibited by option --install=no
   2.143 +[ -z "$install" ] && install="yes"
   2.144 +
   2.145 +# Delete SliTaz package file $PACKAGE-$VERSION.tazpkg after installation,
   2.146 +# unless option --keep=yes is given
   2.147 +[ -z "$keep" ] && keep="no"
   2.148 +
   2.149 +# Directory for temporary files
   2.150 +[ -z "$tempdir" ] && TMP_DIR="/tmp/get-$PACKAGE"
   2.151 +
   2.152 +# Logging file
   2.153 +[ -z "$logfile" ] && LOG=$TMP_DIR/get-$PACKAGE.log
   2.154 +
   2.155 +cat <<EOT
   2.156 +Options in use:
   2.157 +  root           : $root/
   2.158 +  version        : $version
   2.159 +  install package: $install
   2.160 +  keep tazpkg    : $keep
   2.161 +  build directory: $TMP_DIR
   2.162 +  logging file   : $LOG
   2.163 +
   2.164 +EOT
   2.165 +
   2.166 +separator; newline
   2.167 +
   2.168 +# Set WGET_URL
   2.169 +# 3.3.0 no german rpm-Package available!
   2.170 +for MIRROR in								\
   2.171 +	http://ftp.free.fr/mirrors/ftp.openoffice.org			\
   2.172 +	http://ftp-stud.hs-esslingen.de/pub/Mirrors/ftp.openoffice.org	\
   2.173 +	http://www.ellak.gr/pub/openoffice				\
   2.174 +	http://ftp.snt.utwente.nl/pub/software/openoffice		\
   2.175 +	http://ftp.nluug.nl/pub/office/openoffice			\
   2.176 +	http://ftp.isu.edu.tw/pub/OpenOffice
   2.177 +  do
   2.178 +	wget -O - $MIRROR/ 2> /dev/null | grep -q localized || continue
   2.179 +	DIR="stable"
   2.180 +	LOC=$(wget -O - $MIRROR/localized/ 2> /dev/null | \
   2.181 +		grep -E ">$LANG<|>$LANG/<|>${LANG/_/-}<|>${LANG/_/-}/<|>${LANG%_*}<|>${LANG%_*}/<" | \
   2.182 +		head -1 | sed 's|.*href=\"\(.*\)/\".*|\1|')
   2.183 +	[ -n "$LOC" ] && DIR="localized/$LOC"
   2.184 +	VERSION="$(wget -O - $MIRROR/$DIR/ 2> /dev/null | \
   2.185 +	grep href=\"[0-9] | tail -1 | sed 's|.*href=\"\(.*\)/\".*|\1|' 2> /dev/null)"
   2.186 +	[ -n "$VERSION" ] && break
   2.187 +  done
   2.188 +TARBALL=$(wget -O - $MIRROR/$DIR/$VERSION/ 2> /dev/null | \
   2.189 +	grep $PATTERN | tail -1 | sed 's|.*href=\"\(.*\)\".*|\1|')
   2.190 +# bug in sed?:
   2.191 +TARBALL=${TARBALL%%\"*}
   2.192 +echo "Archive is $TARBALL ..."
   2.193 +
   2.194 +# Set VERSION, unless supplied by --version
   2.195 +if [ "$version" == "latest" ]
   2.196 +  then
   2.197 +	echo "Selecting $DIR version $VERSION from $MIRROR ..."
   2.198 +	WGET_URL=$MIRROR/$DIR/$VERSION/$TARBALL
   2.199 +  else
   2.200 +	TARBALL=${TARBALL/$VERSION/$version}
   2.201 +	VERSION=$version
   2.202 +	WGET_URL="$MIRROR/$DIR/$VERSION/$TARBALL"
   2.203  fi
   2.204  
   2.205 -
   2.206 -# Check if we have the tarball before.
   2.207 -if [ ! -f $SOURCE_DIR/$TARBALL ]; then
   2.208 -	echo "Downloading OppenOffice.org tarball (it's time to have a break)... "
   2.209 -	#Check if $SOURCE_DIR exist
   2.210 -	test -d $SOURCE_DIR || mkdir -p $SOURCE_DIR
   2.211 -	# Get the file.
   2.212 -	wget -c $WGET_URL -O $SOURCE_DIR/$TARBALL
   2.213 -	status
   2.214 -fi
   2.215 -if [ ! -f $SOURCE_DIR/$TARBALL ]; then
   2.216 -	rm -rf $SOURCE_DIR
   2.217 -	echo "Could not download $TARBALL. Exiting."
   2.218 -	exit 1
   2.219 +#	=== Remove package, if installed ===
   2.220 +if [ is_installed ]
   2.221 +  then
   2.222 +	action "Removing installed version..."
   2.223 +	tazpkg remove $PACKAGE --root="$root/"
   2.224 +	[ ! is_installed ] &&
   2.225 +	die "Can't remove installed version. Exiting."
   2.226  fi
   2.227  
   2.228 -# Creates TEMP_DIR and extract tarball
   2.229 -mkdir -p $TEMP_DIR
   2.230 -echo -n "Extract files from archive..."
   2.231 -busybox tar xvf $SOURCE_DIR/$TARBALL -C $TEMP_DIR > $LOG 2>&1 || \
   2.232 +#	=== Fetch archive file, if not existing ===
   2.233 +
   2.234 +CUR_DIR=$(pwd)
   2.235 +mkdir -p $TMP_DIR
   2.236 +cd $TMP_DIR
   2.237 +if [ -f $TARBALL ]
   2.238 +  then
   2.239 +	echo "Using existing archive file $TARBALL"
   2.240 +  else
   2.241 +	action "Fetching the archive"
   2.242 +	newline
   2.243 +	wget	--no-check-certificate $WGET_URL
   2.244 +	if [ ! -f $TARBALL ]
   2.245 +	  then
   2.246 +		cd $CUR_DIR
   2.247 +		rm -rf $TMP_DIR
   2.248 +		echo "Could not transfer $TARBALL from $WGET_URL. Exiting."
   2.249 +		exit 1
   2.250 +	fi
   2.251 +fi
   2.252 +
   2.253 +#	=== Extract files from archive ===
   2.254 +action "Extracting the archive"
   2.255 +newline
   2.256 +
   2.257 +tar x -vf $TARBALL > $LOG 2>&1 || \
   2.258   (echo "Failed to extract $TARBALL" ; exit 1)
   2.259 +
   2.260  status
   2.261  
   2.262 -# extracted pkg can be removed: Save RAM
   2.263 -rm -rf $SOURCE_DIR
   2.264 -
   2.265 -cd $TEMP_DIR/*/RPMS
   2.266 +# Remove archive file
   2.267 +rm -f $TARBALL
   2.268  
   2.269  # Extract everything from RPMS
   2.270 +cd $TMP_DIR/*/RPMS
   2.271  for i in *.rpm
   2.272 -do
   2.273 -	if (! echo $i | egrep -qi $EXCLUDE); then
   2.274 -		(rpm2cpio $i | cpio -id >> $LOG 2>&1 ) && rm  -f $i
   2.275 +  do
   2.276 +	if (! echo $i | egrep -qi $EXCLUDE)
   2.277 +	  then
   2.278 +		(rpm2cpio $i | cpio -id >> $LOG 2>&1 ) &&
   2.279 +		echo rm -f $i
   2.280  	fi
   2.281 -done
   2.282 +  done
   2.283  rpm2cpio desktop-integration/*freedesktop*.rpm | cpio -id >> $LOG 2>&1
   2.284  	
   2.285 -# extracted pkg can be removed: Save RAM
   2.286 +# extracted pkg can be removed
   2.287  rm -f desktop-integration/*freedesktop*.rpm
   2.288  
   2.289 +# Make the package
   2.290 +mkdir -p $PACKAGE-$VERSION/fs/usr/lib/openoffice
   2.291 +mkdir -p $PACKAGE-$VERSION/fs/usr/share
   2.292  
   2.293 -# Make the package
   2.294 -mkdir -p $PACKAGE-$VERSION/fs/usr/lib/openoffice  \
   2.295 -  $PACKAGE-$VERSION/fs/usr/share
   2.296 -
   2.297 -# use mv instead of 'cp -a' to save RAM
   2.298 -mv opt/openoffice* $PACKAGE-$VERSION/fs/usr/lib/openoffice
   2.299 -mv usr/share/mime $PACKAGE-$VERSION/fs/usr/share
   2.300 -mv usr/share/icons $PACKAGE-$VERSION/fs/usr/share
   2.301 -mv usr/bin $PACKAGE-$VERSION/fs/usr
   2.302 +# use mv instead of 'cp -a' to save space
   2.303 +mv opt/openoffice*	$PACKAGE-$VERSION/fs/usr/lib/openoffice
   2.304 +mv usr/share/mime	$PACKAGE-$VERSION/fs/usr/share
   2.305 +mv usr/share/icons	$PACKAGE-$VERSION/fs/usr/share
   2.306 +mv usr/bin		$PACKAGE-$VERSION/fs/usr
   2.307  
   2.308  # relocalized OOo libexec directory
   2.309 -sed -i 's#/opt/#/usr/lib/openoffice/#'  $PACKAGE-$VERSION/fs/usr/bin/openoffice*
   2.310 +sed -i 's#/opt/#/usr/lib/openoffice/#' \
   2.311 +	$PACKAGE-$VERSION/fs/usr/bin/openoffice*
   2.312  
   2.313  # Create receipt
   2.314  cat > $PACKAGE-$VERSION/receipt <<EOT
   2.315 @@ -163,8 +195,8 @@
   2.316  VERSION="$VERSION"
   2.317  CATEGORY="office"
   2.318  SHORT_DESC="Productivity suite."
   2.319 -DEPENDS="java-jre"
   2.320 -WEB_SITE="$URL"
   2.321 +DEPENDS="$DEPENDS"
   2.322 +WEB_SITE="$WEB_SITE"
   2.323  
   2.324  post_install()
   2.325  {
   2.326 @@ -176,7 +208,7 @@
   2.327  	ln -s /usr/lib/openoffice/openoffice.org3/share/xdg/math.desktop openoffice.org3-math.desktop
   2.328  	ln -s /usr/lib/openoffice/openoffice.org3/share/xdg/draw.desktop openoffice.org3-draw.desktop
   2.329  	ln -s /usr/lib/openoffice/openoffice.org3/share/xdg/printeradmin.desktop openoffice.org3-printeradmin.desktop
   2.330 -	
   2.331 +
   2.332  	cd \$1/usr/bin
   2.333  	ln -sf /usr/lib/openoffice/openoffice.org3/program/soffice
   2.334  }
   2.335 @@ -190,54 +222,56 @@
   2.336  
   2.337  fake_install()
   2.338  {
   2.339 -	mkdir -p $ROOT/var/lib/tazpkg/installed/$PACKAGE
   2.340 +	mkdir -p $root/var/lib/tazpkg/installed/$PACKAGE
   2.341  	echo "00000000000000000000000000000000  $PACKAGE-$VERSION.tazpkg" >> \
   2.342 -		$ROOT/var/lib/tazpkg/installed.md5
   2.343 -	[ -s $1/description.txt $ROOT/var/lib/tazpkg/installed/$PACKAGE
   2.344 +		$root/var/lib/tazpkg/installed.md5
   2.345 +	[ -s $1/description.txt $root/var/lib/tazpkg/installed/$PACKAGE
   2.346  	( cd fs ; find *) | sed 's|^|/|' > \
   2.347 -		$ROOT/var/lib/tazpkg/installed/$PACKAGE/files.list
   2.348 -	if grep -q ^CONFIG_FILES= $1/receipt ; then
   2.349 +		$root/var/lib/tazpkg/installed/$PACKAGE/files.list
   2.350 +	if grep -q ^CONFIG_FILES= $1/receipt
   2.351 +	  then
   2.352  		cd fs
   2.353 -		find $( . ./receipt ; echo " $CONFIG_FILES" | sed 's| /| |g') |\
   2.354 +		find $( . ./receipt ; echo " $CONFIG_FILES" | sed 's# /# #g') |\
   2.355  			cpio -o -H newc | gzip -9 > \
   2.356 -			$ROOT/var/lib/tazpkg/installed/$PACKAGE/volatile.cpio.gz
   2.357 -		for i in $( . ./receipt ; echo $CONFIG_FILES) ; do
   2.358 -			[ -e $ROOT$i ] && rm -rf .$i
   2.359 -		done
   2.360 +			$root/var/lib/tazpkg/installed/$PACKAGE/volatile.cpio.gz
   2.361 +		for i in $( . ./receipt ; echo $CONFIG_FILES)
   2.362 +		  do
   2.363 +			[ -e $root$i ] && rm -rf .$i
   2.364 +		  done
   2.365  		cd ..
   2.366  	fi
   2.367  	sed -i "s/^PACKAGE=/UNPACKED_SIZE=\"$(du -chs $1 | sed '$!d;s/.total//')\"\n&/" \
   2.368  		$1/receipt
   2.369 -	cp $1/receipt $ROOT/var/lib/tazpkg/installed/$PACKAGE
   2.370 +	cp $1/receipt	$root/var/lib/tazpkg/installed/$PACKAGE
   2.371  	echo "Compute md5sum..."
   2.372  	find fs -type f | xargs md5sum | sed 's|  fs/|  /|' > \
   2.373 -		$ROOT/var/lib/tazpkg/installed/$PACKAGE/md5sum
   2.374 +		$root/var/lib/tazpkg/installed/$PACKAGE/md5sum
   2.375  	echo "Move files..."
   2.376 -	( cd $1/fs ; find ) | while read file ; do 
   2.377 -		[ -e $1/fs/$file -a ! -e $ROOT/$file ] &&
   2.378 -		mv $1/fs/$file $(dirname $ROOT/$file)
   2.379 -	done
   2.380 +	( cd $1/fs ; find ) | while read file
   2.381 +	  do 
   2.382 +		[ -e $1/fs/$file -a ! -e $root/$file ] &&
   2.383 +		mv $1/fs/$file $(dirname $root/$file)
   2.384 +	  done
   2.385  }
   2.386  
   2.387 -case " $@ " in
   2.388 -*\ --q*)	# --quick
   2.389 -	fake_install $PACKAGE-$VERSION ;;
   2.390 -*)
   2.391 -	# Pack
   2.392 -	tazpkg pack $PACKAGE-$VERSION
   2.393 +[ "$install" == "quick" ] &&
   2.394 +fake_install $PACKAGE-$VERSION && return 0
   2.395  
   2.396 -	# Clean to save RAM memory
   2.397 -	rm -rf $PACKAGE-$VERSION
   2.398 +# Pack
   2.399 +tazpkg pack $PACKAGE-$VERSION
   2.400 +# Remove package tree
   2.401 +rm -rf $PACKAGE-$VERSION
   2.402  
   2.403 -	# Install pseudo package
   2.404 -	tazpkg install $PACKAGE-$VERSION.tazpkg --root=$ROOT
   2.405 +#	=== Install the SliTaz package ===
   2.406 +[ "$install" == "yes" ] &&
   2.407 +tazpkg install $PACKAGE-$VERSION.tazpkg --root="$root"
   2.408  
   2.409 -	echo " $@ " | grep -q ' --k' &&
   2.410 -	mv $PACKAGE-$VERSION.tazpkg $CUR_DIR
   2.411 -	;;
   2.412 -esac
   2.413 +#	=== Cleanup ===
   2.414 +# Preserve package file, if requested
   2.415 +[ "$keep" == "yes" ] &&
   2.416 +( mv $PACKAGE-$VERSION.tazpkg $CUR_DIR &&
   2.417 +  echo Saved $PACKAGE-$VERSION.tazpkg to $CUR_DIR )
   2.418  
   2.419 +# Remove temporary build directory
   2.420  cd $CUR_DIR
   2.421 -
   2.422 -# Clean
   2.423 -rm -rf $TEMP_DIR
   2.424 +rm -rf $TMP_DIR