get-scripts diff libreoffice @ rev 4
Fix bug 79: get-LibreOffice get-OpenOffice3 packages shoud not have capital letter on their names.
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sun Feb 16 20:20:05 2014 +0000 (2014-02-16) |
parents | |
children | 8b66f6a75a05 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/libreoffice Sun Feb 16 20:20:05 2014 +0000 1.3 @@ -0,0 +1,160 @@ 1.4 +#!/bin/sh 1.5 +# get-LibreOffice - install LibreOffice excl. KDE/Gnome integration & test suite. 1.6 +# 1.7 +# (C) 2010 SliTaz - GNU General Public License v3. 1.8 +# Author : Ben Arnold <ben@seawolfsanctuary.com> 1.9 +# via : get-OpenOffice3 (Eric Joseph-Alexandre <erjo@slitaz.org>) 1.10 +# 1.11 + 1.12 +PACKAGE="LibreOffice" 1.13 +WEB_SITE="http://www.libreoffice.org" 1.14 +CATEGORY="office" 1.15 +SHORT_DESC="Productivity suite." 1.16 +DEPENDS="cups" 1.17 +SUGGESTED="java6-jre" 1.18 +DIR="stable" 1.19 +PREFIX="LibreOffice" 1.20 +SUFFIX="Linux_x86_rpm.tar.gz" 1.21 +WGET_URL="http://download.documentfoundation.org/libreoffice/$DIR" 1.22 + 1.23 +VERSION="$(basename $(wget -O - $WGET_URL/ 2> /dev/null | \ 1.24 + sed '/href=\"[0-9]/!d;s/.*href=\"//;s/[/\">].*//' | tail -1))" 1.25 +if [ -z "$VERSION" ]; then 1.26 + abort_package "Can't detect an appropriate version. The version numbering or URL may have changed. Aborted." 1.27 +fi 1.28 +VER="${VERSION/\-/}" # without hyphens 1.29 + 1.30 + 1.31 +TARBALL="${PREFIX}_${VER}_${SUFFIX}" 1.32 + 1.33 +for LOC in ${LANG/_/-} ${LANG%_*}; do 1.34 + L_SUFFIX="Linux_x86_rpm_langpack_$LOC.tar.gz" 1.35 + L_TARBALL="${PREFIX}_${VER}_${L_SUFFIX}" 1.36 + LANG_URL="$WGET_URL/${VERSION}/rpm/x86/${L_TARBALL}" 1.37 + busybox wget -s $LANG_URL 2> /dev/null || continue 1.38 + echo "Added $LANG ($LOC)." 1.39 + break 1.40 +done 1.41 +WGET_URL="$WGET_URL/${VERSION}/rpm/x86/${TARBALL}" 1.42 + 1.43 +CUR_DIR=$(pwd) 1.44 +TEMP_DIR="/tmp/$PACKAGE.$$" 1.45 +SOURCE_DIR="/tmp/src.$$" 1.46 +EXCLUDE="kde|gnome|test" 1.47 +LOG="/tmp/$(basename $0 .sh).log" 1.48 + 1.49 +# Check if we have the tarball before. 1.50 +if [ ! -f $SOURCE_DIR/$TARBALL ]; then 1.51 + echo "Downloading LibreOffice tarball (it's time to have a break)... " 1.52 + # Check if $SOURCE_DIR exist 1.53 + test -d $SOURCE_DIR || mkdir -p $SOURCE_DIR 1.54 + # Get the file. 1.55 + wget -c $WGET_URL -O $SOURCE_DIR/$TARBALL 1.56 + if [ -n $L_TARBALL ] ; then # Are we localised? 1.57 + wget -c $LANG_URL -O $SOURCE_DIR/$L_TARBALL 1.58 + fi 1.59 + status 1.60 +fi 1.61 +if [ ! -f $SOURCE_DIR/$TARBALL ]; then 1.62 + rm -rf $SOURCE_DIR 1.63 + abort_package "Could not download $TARBALL. Exiting." 1.64 +fi 1.65 + 1.66 +echo -n "Extracting files (this may take a while): " 1.67 + 1.68 +# Creates TEMP_DIR and extract tarball 1.69 +mkdir -p $TEMP_DIR 1.70 +for TB in $TARBALL $L_TARBALL ; do 1.71 + tar xvzf $SOURCE_DIR/$TB -C $TEMP_DIR > $LOG 2>&1 || 1.72 + abort_package "Failed to extract $TB" 1.73 +done 1.74 + 1.75 +# Get version found in archive (often directory is still RC version when final is present) 1.76 +ARCHIVED_VERSION=$(find $TEMP_DIR -type d 2> /dev/null | sed "/$PREFIX/!d;\$!d;s/_/ /g" | awk '{print $2}') 1.77 +echo -n "(found v${ARCHIVED_VERSION})" 1.78 + 1.79 +# Consolidate localisations into main package 1.80 +if [ -n $L_TARBALL ] ; then # Are we localised? 1.81 + TARBALL_NAME="${TARBALL/.tar.gz/}" 1.82 + L_TARBALL_NAME="${L_TARBALL/.tar.gz/}" 1.83 + mv -f $TEMP_DIR/${L_TARBALL_NAME/$VERSION/$ARCHIVED_VERSION}/RPMS/*.rpm $TEMP_DIR/${TARBALL_NAME/$VERSION/$ARCHIVED_VERSION}/RPMS/ 1.84 +fi 1.85 +status 1.86 + 1.87 +# Extracted pkg can be removed: Save RAM 1.88 +rm -rf $SOURCE_DIR 1.89 + 1.90 +# Extract everything from RPMS 1.91 +cd $TEMP_DIR/${TARBALL_NAME/$VERSION/$ARCHIVED_VERSION}/RPMS 1.92 +for i in *.rpm 1.93 +do 1.94 + if (! echo $i | egrep -qi $EXCLUDE); then 1.95 + echo -n "." 1.96 + (rpm2cpio $i | cpio -id >> $LOG 2>&1 ) && rm -f $i 1.97 + fi 1.98 +done 1.99 +rpm2cpio libobasis*-gnome-integration*.rpm | cpio -id >> $LOG 2>&1 1.100 + 1.101 +# extracted pkg can be removed: Save RAM 1.102 +rm -f libobasis*.rpm 1.103 + 1.104 +status 1.105 +echo -n "Preparing package... " 1.106 + 1.107 +# Make the package 1.108 +mkdir -p $PACKAGE-$VERSION/fs/usr/lib $PACKAGE-$VERSION/fs/usr/share 1.109 + 1.110 +# use mv instead of 'cp -a' to save RAM 1.111 +mv opt/libreoffice* $PACKAGE-$VERSION/fs/usr/lib/libreoffice 1.112 +mv usr/share/mime $PACKAGE-$VERSION/fs/usr/share 1.113 +mv usr/share/icons $PACKAGE-$VERSION/fs/usr/share 1.114 +mv usr/bin $PACKAGE-$VERSION/fs/usr 1.115 + 1.116 +# relocalized libexec directory 1.117 +bin=$(echo $PACKAGE-$VERSION/fs/usr/bin/libreoffice${VERSION%.*}) 1.118 +if [ -L $bin ]; then 1.119 + target=$(readlink $bin) 1.120 + rm -f $bin 1.121 + ln -s ${target/opt/usr\/lib\/libreoffice} $bin 1.122 +else 1.123 + sed -i 's#/opt/#/usr/lib/libreoffice/#' $bin 1.124 +fi 1.125 + 1.126 +# Create receipt 1.127 +cat > $PACKAGE-$VERSION/receipt <<EOT 1.128 +# SliTaz package receipt. 1.129 + 1.130 +PACKAGE="$PACKAGE" 1.131 +VERSION="$VERSION" 1.132 +CATEGORY="$CATEGORY" 1.133 +SHORT_DESC="$SHORT_DESC" 1.134 +WEB_SITE="$WEB_SITE" 1.135 + 1.136 +DEPENDS="$DEPENDS" 1.137 +SUGGESTED="$SUGGESTED" 1.138 + 1.139 +post_install() 1.140 +{ 1.141 + cd \$1/usr/share/applications 1.142 + ln -s /usr/lib/libreoffice*/share/xdg/base.desktop libreoffice-base.desktop 1.143 + ln -s /usr/lib/libreoffice*/share/xdg/impress.desktop libreoffice-impress.desktop 1.144 + ln -s /usr/lib/libreoffice*/share/xdg/writer.desktop libreoffice-writer.desktop 1.145 + ln -s /usr/lib/libreoffice*/share/xdg/calc.desktop libreoffice-calc.desktop 1.146 + ln -s /usr/lib/libreoffice*/share/xdg/math.desktop libreoffice-math.desktop 1.147 + ln -s /usr/lib/libreoffice*/share/xdg/draw.desktop libreoffice-draw.desktop 1.148 + ln -s /usr/lib/libreoffice*/share/xdg/printeradmin.desktop libreoffice-printeradmin.desktop 1.149 + chmod +x /usr/lib/libreoffice*/share/xdg/*.desktop 1.150 + 1.151 + cd \$1/usr/bin 1.152 + ln -sf /usr/lib/libreoffice/program/soffice 1.153 + ln -sf /usr/lib/libreoffice/program/soffice libreoffice${VERSION%.*} 1.154 +} 1.155 + 1.156 +post_remove() 1.157 +{ 1.158 + rm -f \$1/usr/share/applications/libreoffice-* 1.159 +} 1.160 + 1.161 +EOT 1.162 +status 1.163 +set +e