wok rev 7832
Add get-LibreOffice (v1.0) - script (based on get-OpenOffice3) to download and package LibreOffice w/out lang. packs
author | Ben Arnold <ben@seawolfsanctuary.com> |
---|---|
date | Sun Dec 26 22:00:38 2010 +0000 (2010-12-26) |
parents | adf1e2623e66 |
children | 50289f6c8ce3 |
files | get-LibreOffice/receipt get-LibreOffice/stuff/get-LibreOffice |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/get-LibreOffice/receipt Sun Dec 26 22:00:38 2010 +0000 1.3 @@ -0,0 +1,16 @@ 1.4 +# SliTaz package receipt. 1.5 + 1.6 +PACKAGE="get-LibreOffice" 1.7 +VERSION="1.0" 1.8 +CATEGORY="office" 1.9 +SHORT_DESC="Productivity suite." 1.10 +MAINTAINER="ben@seawolfsanctuary.com" 1.11 +WEB_SITE="http://www.documentfoundation.org" 1.12 +TAGS="office word excel ppt openoffice libreoffice" 1.13 + 1.14 +# Rules to gen a SliTaz package suitable for Tazpkg. 1.15 +genpkg_rules() 1.16 +{ 1.17 + mkdir -p $fs/usr/bin 1.18 + install -o root -g root -m755 stuff/get-LibreOffice $fs/usr/bin 1.19 +} 1.20 \ No newline at end of file
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/get-LibreOffice/stuff/get-LibreOffice Sun Dec 26 22:00:38 2010 +0000 2.3 @@ -0,0 +1,186 @@ 2.4 +#!/bin/sh 2.5 +# get-LibreOffice - install LibreOffice excl. KDE/Gnome integration & test suite. 2.6 +# 2.7 +# (C) 2010 SliTaz - GNU General Public License v3. 2.8 +# Author : Ben Arnold <ben@seawolfsanctuary.com> 2.9 +# via : get-OpenOffice3 (Eric Joseph-Alexandre <erjo@slitaz.org>) 2.10 +# 2.11 + 2.12 +PACKAGE="LibreOffice" 2.13 +URL="http://www.libreoffice.org" 2.14 +ROOT="$1" 2.15 + 2.16 +DIR="testing" 2.17 +SUFFIX="Linux_x86_install-rpm_en-US.tar.gz" 2.18 + 2.19 +VERSION="$(basename $(wget -O - http://download.documentfoundation.org/libreoffice/$DIR/ \ 2.20 + 2> /dev/null | grep href=\"[0-9] | tail -1 | sed 's/.*href=\"//;s/[/\">].*//'))" 2.21 +if [ -z "$VERSION" ]; then 2.22 + echo "Can't detect an appropriate version. The version numbering or URL may have changed. 2.23 + Aborted." 2.24 + exit 0 2.25 +fi 2.26 +VER="${VERSION/\-/}" # without hyphens 2.27 + 2.28 +TARBALL="LibO_${VER}_${SUFFIX}" 2.29 +WGET_URL="http://download.documentfoundation.org/libreoffice/${DIR}/${VERSION}/rpm/x86/${TARBALL}" 2.30 +TEMP_DIR="/tmp/$PACKAGE.$$" 2.31 +SOURCE_DIR="/tmp/src.$$" 2.32 +EXCLUDE="kde|gnome|test" 2.33 +LOG="/tmp/$(basename $0 .sh).log" 2.34 + 2.35 +# Status function with color (supported by Ash). 2.36 +status() 2.37 +{ 2.38 + local CHECK=$? 2.39 + echo -en "\\033[70G[ " 2.40 + if [ $CHECK = 0 ]; then 2.41 + echo -en "\\033[1;33mOK" 2.42 + else 2.43 + echo -en "\\033[1;31mFailed" 2.44 + fi 2.45 + echo -e "\\033[0;39m ]" 2.46 + return $CHECK 2.47 +} 2.48 + 2.49 +# Check if user is root to install, or remove packages. 2.50 +check_root() 2.51 +{ 2.52 + if test $(id -u) != 0 ; then 2.53 + echo -e "\nYou must be root to run `basename $0` with this option." 2.54 + echo -e "Please use 'su' and root password to become super-user.\n" 2.55 + exit 0 2.56 + fi 2.57 +} 2.58 + 2.59 +check_if_installed() 2.60 +{ 2.61 + # Avoid reinstall 2.62 + if [ -d $ROOT/var/lib/tazpkg/installed/$PACKAGE ];then 2.63 + return 0 2.64 + else 2.65 + return 1 2.66 + fi 2.67 +} 2.68 + 2.69 +#We need to bee root 2.70 +check_root 2.71 + 2.72 +#check if package already installed 2.73 +if (check_if_installed $PACKAGE); then 2.74 + echo "$PACKAGE is already installed." 2.75 + [ -n "$ROOT" ] && exit 0 2.76 + echo -n "Would you like to remove and reinstall this package [y/n]? " 2.77 + read answer 2.78 + case "$answer" in 2.79 + y|Y) 2.80 + tazpkg remove $PACKAGE ;; 2.81 + *) 2.82 + exit 0 ;; 2.83 + esac 2.84 + 2.85 +fi 2.86 + 2.87 + 2.88 +# Check if we have the tarball before. 2.89 +if [ ! -f $SOURCE_DIR/$TARBALL ]; then 2.90 + echo "Downloading LibreOffice tarball (it's time to have a break)... " 2.91 + #Check if $SOURCE_DIR exist 2.92 + test -d $SOURCE_DIR || mkdir -p $SOURCE_DIR 2.93 + # Get the file. 2.94 + wget -c $WGET_URL -O $SOURCE_DIR/$TARBALL 2.95 + status 2.96 +fi 2.97 +if [ ! -f $SOURCE_DIR/$TARBALL ]; then 2.98 + rm -rf $SOURCE_DIR 2.99 + echo "Could not download $TARBALL. Exiting." 2.100 + exit 1 2.101 +fi 2.102 + 2.103 +# Creates TEMP_DIR and extract tarball 2.104 +mkdir -p $TEMP_DIR 2.105 +echo -n "Extract files from archive..." 2.106 +tar xvzf $SOURCE_DIR/$TARBALL -C $TEMP_DIR > $LOG 2>&1 || \ 2.107 + (echo "Failed to extract $TARBALL" ; exit 1) 2.108 +status 2.109 + 2.110 +# extracted pkg can be removed: Save RAM 2.111 +rm -rf $SOURCE_DIR 2.112 + 2.113 +cd $TEMP_DIR/*/RPMS 2.114 + 2.115 +# Extract everything from RPMS 2.116 +echo -n "Extracting files" 2.117 +for i in *.rpm 2.118 +do 2.119 + if (! echo $i | egrep -qi $EXCLUDE); then 2.120 + echo -n "." 2.121 + (rpm2cpio $i | cpio -id >> $LOG 2>&1 ) && rm -f $i 2.122 + fi 2.123 +done 2.124 +rpm2cpio desktop-integration/*freedesktop*.rpm | cpio -id >> $LOG 2>&1 2.125 + 2.126 +# extracted pkg can be removed: Save RAM 2.127 +rm -f desktop-integration/*freedesktop*.rpm 2.128 + 2.129 +status 2.130 +echo -n "Preparing package... " 2.131 + 2.132 +# Make the package 2.133 +mkdir -p $PACKAGE-$VERSION/fs/usr/lib/libreoffice \ 2.134 + $PACKAGE-$VERSION/fs/usr/share 2.135 + 2.136 +# use mv instead of 'cp -a' to save RAM 2.137 +mv opt/libreoffice* $PACKAGE-$VERSION/fs/usr/lib 2.138 +mv usr/share/mime $PACKAGE-$VERSION/fs/usr/share 2.139 +mv usr/share/icons $PACKAGE-$VERSION/fs/usr/share 2.140 +mv usr/bin $PACKAGE-$VERSION/fs/usr 2.141 + 2.142 +# relocalized OOo libexec directory 2.143 +sed -i 's#/opt/#/usr/lib/libreoffice/#' $PACKAGE-$VERSION/fs/usr/bin/libreoffice* 2.144 + 2.145 +# Create receipt 2.146 +cat > $PACKAGE-$VERSION/receipt <<EOT 2.147 +# SliTaz package receipt. 2.148 + 2.149 +PACKAGE="$PACKAGE" 2.150 +VERSION="$VERSION" 2.151 +CATEGORY="office" 2.152 +SHORT_DESC="Productivity suite." 2.153 +DEPENDS="" 2.154 +WEB_SITE="$URL" 2.155 + 2.156 +post_install() 2.157 +{ 2.158 + cd /usr/share/applications 2.159 + ln -s /usr/lib/libreoffice/share/xdg/base.desktop libreoffice-base.desktop 2.160 + ln -s /usr/lib/libreoffice/share/xdg/impress.desktop libreoffice-impress.desktop 2.161 + ln -s /usr/lib/libreoffice/share/xdg/writer.desktop libreoffice-writer.desktop 2.162 + ln -s /usr/lib/libreoffice/share/xdg/calc.desktop libreoffice-calc.desktop 2.163 + ln -s /usr/lib/libreoffice/share/xdg/math.desktop libreoffice-math.desktop 2.164 + ln -s /usr/lib/libreoffice/share/xdg/draw.desktop libreoffice-draw.desktop 2.165 + ln -s /usr/lib/libreoffice/share/xdg/printeradmin.desktop libreoffice-printeradmin.desktop 2.166 + 2.167 + cd /usr/bin 2.168 + ln -sf /usr/lib/libreoffice/program/soffice 2.169 +} 2.170 + 2.171 +post_remove() 2.172 +{ 2.173 + rm -f /usr/share/applications/libreoffice-* 2.174 +} 2.175 + 2.176 +EOT 2.177 +status 2.178 + 2.179 +# Pack 2.180 +tazpkg pack $PACKAGE-$VERSION 2.181 + 2.182 +# Clean to save RAM memory 2.183 +rm -rf $PACKAGE-$VERSION 2.184 + 2.185 +# Install pseudo package 2.186 +tazpkg install $PACKAGE-$VERSION.tazpkg --root=$ROOT 2.187 + 2.188 +# Clean 2.189 +rm -rf $TEMP_DIR