Thanks very much Mojo. We found where to insert the changes you suggested. It does indeed start downloading the basic LibO package, but it appears that the name "LibO" in the script must be wrong, as it does not lead us anywhere in the end...
When we changed it to "LibreOffice" in all places in the script, then the whole thing started moving forward nicely. But again, the script stopped wotking when it tried to download the lang-pack. We found that there was also a wrong name (langpack_rpm) of this language package and we changed it to "rpm_langpack", at which point the script downloaded the full LibreOffice AND the lang-pack but it eventually got stuck again at the stage of 'untar-ing' in tmp. We are attaching the slightly changed script and we'll be grateful for any further ideas... Thanks Constantine PS. Our efforts to promote a wider use of SliTaz in Greece find some difficulty by the fact that there is not even a Greek keyboard locale. Would it please be possible to take care of this?? On 11/02/2013 08:46 πμ, mojo wrote: > On Fri, Feb 8, 2013 at 5:30 PM, Kostas Mousafiris <[email protected]> wrote: >> I tried another couple of Slitaz new installations tonight with some >> really old PCs :-) >> I would have been pretty happy about how it went, >> had it not been for a little problem with installing the new LibreOffice >> edition 4.00 >> >> The usual address that I was using for my previous installations does >> not seem to work anymore... >> I tried to fiddle around a bit by copying the download addresses taken >> from the official LibO site: >> >> https://www.libreoffice.org/download/?type=rpm-x86&lang=en-US >> and >> > https://www.libreoffice.org/download/?type=rpm-x86&lang=en-US&version=4.0.0 > Main Install Download Button: > http://download.documentfoundation.org/libreoffice/stable/4.0.0/rpm/x86/LibreOffice_4.0.0_Linux_x86_rpm.tar.gz > > /usr/bin/get-LibreOffice: > Change > SUFFIX="Linux_x86_install-rpm_en-US.tar.gz" > to > SUFFIX="Linux_x86_rpm.tar.gz" >
#!/bin/sh # get-LibreOffice - install LibreOffice excl. KDE/Gnome integration & test suite. # # (C) 2010 SliTaz - GNU General Public License v3. # Author : Ben Arnold <[email protected]> # via : get-OpenOffice3 (Eric Joseph-Alexandre <[email protected]>) # PACKAGE="LibreOffice" URL="http://www.libreoffice.org" ROOT="$1" DIR="stable" SUFFIX="Linux_x86_rpm.tar.gz" WGET_URL="http://download.documentfoundation.org/libreoffice/$DIR" VERSION="$(basename $(wget -O - $WGET_URL/ 2> /dev/null | \ sed '/href=\"[0-9]/!d;s/.*href=\"//;s/[/\">].*//' | tail -1))" if [ -z "$VERSION" ]; then echo "Can't detect an appropriate version. The version numbering or URL may have changed. Aborted." exit 0 fi VER="${VERSION/\-/}" # without hyphens TARBALL="LibreOffice_${VER}_${SUFFIX}" for LOC in ${LANG/_/-} ${LANG%_*}; do L_SUFFIX="Linux_x86_rpm_langpack_$LOC.tar.gz" L_TARBALL="LibreOffice_${VER}_${L_SUFFIX}" LANG_URL="$WGET_URL/${VERSION}/rpm/x86/${L_TARBALL}" busybox wget -s $LANG_URL 2> /dev/null || continue echo "Added $LANG ($LOC)." break done WGET_URL="$WGET_URL/${VERSION}/rpm/x86/${TARBALL}" CUR_DIR=$(pwd) TEMP_DIR="/tmp/$PACKAGE.$$" SOURCE_DIR="/tmp/src.$$" EXCLUDE="kde|gnome|test" LOG="/tmp/$(basename $0 .sh).log" # Status function with color (supported by Ash). status() { local CHECK=$? echo -en "\\033[70G[ " if [ $CHECK = 0 ]; then echo -en "\\033[1;33mOK" else echo -en "\\033[1;31mFailed" fi echo -e "\\033[0;39m ]" return $CHECK } # Check if user is root to install, or remove packages. check_root() { if test $(id -u) != 0 ; then echo -e "\nYou must be root to run `basename $0` with this option." echo -e "Please use 'su' and root password to become super-user.\n" exit 0 fi } check_if_installed() { # Avoid reinstall if [ -d $ROOT/var/lib/tazpkg/installed/$PACKAGE ];then return 0 else return 1 fi } # We need to be root check_root # Check if package already installed if (check_if_installed $PACKAGE); then echo "$PACKAGE is already installed." [ -n "$ROOT" ] && exit 0 echo -n "Would you like to remove and reinstall this package [y/n]? " read answer case "$answer" in y|Y) tazpkg remove $PACKAGE ;; *) exit 0 ;; esac fi # Check if we have the tarball before. if [ ! -f $SOURCE_DIR/$TARBALL ]; then echo "Downloading LibreOffice tarball (it's time to have a break)... " # Check if $SOURCE_DIR exist test -d $SOURCE_DIR || mkdir -p $SOURCE_DIR # Get the file. wget -c $WGET_URL -O $SOURCE_DIR/$TARBALL if [ -n $L_TARBALL ] ; then # Are we localised? wget -c $LANG_URL -O $SOURCE_DIR/$L_TARBALL fi status fi if [ ! -f $SOURCE_DIR/$TARBALL ]; then rm -rf $SOURCE_DIR echo "Could not download $TARBALL. Exiting." exit 1 fi echo -n "Extracting files (this may take a while): " # Creates TEMP_DIR and extract tarball mkdir -p $TEMP_DIR for TB in $TARBALL $L_TARBALL ; do tar xvzf $SOURCE_DIR/$TB -C $TEMP_DIR > $LOG 2>&1 || \ (echo "Failed to extract $TB" ; exit 1) done # Get version found in archive (often directory is still RC version when final is present) ARCHIVED_VERSION=`find $TEMP_DIR -type d 2> /dev/null | grep LibreOffice | head -n 1 | sed 's/_/ /g' | awk '{print $2}'` echo -n "(found v${VERSION})" # Consolidate localisations into main package if [ -n $L_TARBALL ] ; then # Are we localised? TARBALL_NAME="${TARBALL/.tar.gz/}" L_TARBALL_NAME="${L_TARBALL/.tar.gz/}" mv -f $TEMP_DIR/${L_TARBALL_NAME/$VERSION}/RPMS/*.rpm $TEMP_DIR/${TARBALL_NAME/$VERSION}/RPMS/ fi status # Extracted pkg can be removed: Save RAM rm -rf $SOURCE_DIR # Extract everything from RPMS cd $TEMP_DIR/${TARBALL_NAME/$VERSION}/RPMS for i in *.rpm do if (! echo $i | egrep -qi $EXCLUDE); then echo -n "." (rpm2cpio $i | cpio -id >> $LOG 2>&1 ) && rm -f $i fi done rpm2cpio desktop-integration/*freedesktop*.rpm | cpio -id >> $LOG 2>&1 # extracted pkg can be removed: Save RAM rm -f desktop-integration/*freedesktop*.rpm status echo -n "Preparing package... " # Make the package mkdir -p $PACKAGE-$VERSION/fs/usr/lib/libreoffice \ $PACKAGE-$VERSION/fs/usr/share # use mv instead of 'cp -a' to save RAM mv opt/libreoffice* $PACKAGE-$VERSION/fs/usr/lib mv usr/share/mime $PACKAGE-$VERSION/fs/usr/share mv usr/share/icons $PACKAGE-$VERSION/fs/usr/share mv usr/bin $PACKAGE-$VERSION/fs/usr # relocalized libexec directory bin=$(ls $PACKAGE-$VERSION/fs/usr/bin/libreoffice???) if [ -L $bin ]; then target=$(readlink $bin) rm -f $bin ln -s ${target/opt/usr\/lib\/libreoffice} $bin else sed -i 's#/opt/#/usr/lib/libreoffice/#' $bin fi # Create receipt cat > $PACKAGE-$VERSION/receipt <<EOT # SliTaz package receipt. PACKAGE="$PACKAGE" VERSION="$VERSION" CATEGORY="office" SHORT_DESC="Productivity suite." DEPENDS="java6-jre" WEB_SITE="$URL" post_install() { cd /usr/share/applications ln -s /usr/lib/libreoffice?*/share/xdg/base.desktop libreoffice-base.desktop ln -s /usr/lib/libreoffice?*/share/xdg/impress.desktop libreoffice-impress.desktop ln -s /usr/lib/libreoffice?*/share/xdg/writer.desktop libreoffice-writer.desktop ln -s /usr/lib/libreoffice?*/share/xdg/calc.desktop libreoffice-calc.desktop ln -s /usr/lib/libreoffice?*/share/xdg/math.desktop libreoffice-math.desktop ln -s /usr/lib/libreoffice?*/share/xdg/draw.desktop libreoffice-draw.desktop ln -s /usr/lib/libreoffice?*/share/xdg/printeradmin.desktop libreoffice-printeradmin.desktop chmod +x /usr/lib/libreoffice?*/share/xdg/*.desktop cd /usr/bin ln -s /usr/lib/libreoffice?* /usr/lib/libreoffice ln -sf /usr/lib/libreoffice/program/soffice } post_remove() { rm -f /usr/share/applications/libreoffice-* } EOT status # Pack tazpkg pack $PACKAGE-$VERSION # Clean to save RAM memory rm -rf $PACKAGE-$VERSION # Install pseudo package tazpkg install $PACKAGE-$VERSION.tazpkg --root=$ROOT case " $@ " in *\ --k*) mv $PACKAGE-$VERSION.tazpkg $CUR_DIR ;; esac # Clean cd $CUR_DIR rm -rf $TEMP_DIR
#!/bin/sh # get-LibreOffice - install LibreOffice excl. KDE/Gnome integration & test suite. # # (C) 2010 SliTaz - GNU General Public License v3. # Author : Ben Arnold <[email protected]> # via : get-OpenOffice3 (Eric Joseph-Alexandre <[email protected]>) # PACKAGE="LibreOffice" URL="http://www.libreoffice.org" ROOT="$1" DIR="stable" SUFFIX="Linux_x86_rpm.tar.gz" WGET_URL="http://download.documentfoundation.org/libreoffice/$DIR" VERSION="$(basename $(wget -O - $WGET_URL/ 2> /dev/null | \ sed '/href=\"[0-9]/!d;s/.*href=\"//;s/[/\">].*//' | tail -1))" if [ -z "$VERSION" ]; then echo "Can't detect an appropriate version. The version numbering or URL may have changed. Aborted." exit 0 fi VER="${VERSION/\-/}" # without hyphens TARBALL="LibreOffice_${VER}_${SUFFIX}" for LOC in ${LANG/_/-} ${LANG%_*}; do L_SUFFIX="Linux_x86_rpm_langpack_$LOC.tar.gz" L_TARBALL="LibreOffice_${VER}_${L_SUFFIX}" LANG_URL="$WGET_URL/${VERSION}/rpm/x86/${L_TARBALL}" busybox wget -s $LANG_URL 2> /dev/null || continue echo "Added $LANG ($LOC)." break done WGET_URL="$WGET_URL/${VERSION}/rpm/x86/${TARBALL}" CUR_DIR=$(pwd) TEMP_DIR="/tmp/$PACKAGE.$$" SOURCE_DIR="/tmp/src.$$" EXCLUDE="kde|gnome|test" LOG="/tmp/$(basename $0 .sh).log" # Status function with color (supported by Ash). status() { local CHECK=$? echo -en "\\033[70G[ " if [ $CHECK = 0 ]; then echo -en "\\033[1;33mOK" else echo -en "\\033[1;31mFailed" fi echo -e "\\033[0;39m ]" return $CHECK } # Check if user is root to install, or remove packages. check_root() { if test $(id -u) != 0 ; then echo -e "\nYou must be root to run `basename $0` with this option." echo -e "Please use 'su' and root password to become super-user.\n" exit 0 fi } check_if_installed() { # Avoid reinstall if [ -d $ROOT/var/lib/tazpkg/installed/$PACKAGE ];then return 0 else return 1 fi } # We need to be root check_root # Check if package already installed if (check_if_installed $PACKAGE); then echo "$PACKAGE is already installed." [ -n "$ROOT" ] && exit 0 echo -n "Would you like to remove and reinstall this package [y/n]? " read answer case "$answer" in y|Y) tazpkg remove $PACKAGE ;; *) exit 0 ;; esac fi # Check if we have the tarball before. if [ ! -f $SOURCE_DIR/$TARBALL ]; then echo "Downloading LibreOffice tarball (it's time to have a break)... " # Check if $SOURCE_DIR exist test -d $SOURCE_DIR || mkdir -p $SOURCE_DIR # Get the file. wget -c $WGET_URL -O $SOURCE_DIR/$TARBALL if [ -n $L_TARBALL ] ; then # Are we localised? wget -c $LANG_URL -O $SOURCE_DIR/$L_TARBALL fi status fi if [ ! -f $SOURCE_DIR/$TARBALL ]; then rm -rf $SOURCE_DIR echo "Could not download $TARBALL. Exiting." exit 1 fi echo -n "Extracting files (this may take a while): " # Creates TEMP_DIR and extract tarball mkdir -p $TEMP_DIR for TB in $TARBALL $L_TARBALL ; do tar xvzf $SOURCE_DIR/$TB -C $TEMP_DIR > $LOG 2>&1 || \ (echo "Failed to extract $TB" ; exit 1) done # Get version found in archive (often directory is still RC version when final is present) ARCHIVED_VERSION=`find $TEMP_DIR -type d 2> /dev/null | grep LibreOffice | head -n 1 | sed 's/_/ /g' | awk '{print $2}'` echo -n "(found v${VERSION})" # Consolidate localisations into main package if [ -n $L_TARBALL ] ; then # Are we localised? TARBALL_NAME="${TARBALL/.tar.gz/}" L_TARBALL_NAME="${L_TARBALL/.tar.gz/}" mv -f $TEMP_DIR/${L_TARBALL_NAME/$VERSION}/RPMS/*.rpm $TEMP_DIR/${TARBALL_NAME/$VERSION}/RPMS/ fi status # Extracted pkg can be removed: Save RAM rm -rf $SOURCE_DIR # Extract everything from RPMS cd $TEMP_DIR/${TARBALL_NAME/$VERSION}/RPMS for i in *.rpm do if (! echo $i | egrep -qi $EXCLUDE); then echo -n "." (rpm2cpio $i | cpio -id >> $LOG 2>&1 ) && rm -f $i fi done rpm2cpio desktop-integration/*freedesktop*.rpm | cpio -id >> $LOG 2>&1 # extracted pkg can be removed: Save RAM rm -f desktop-integration/*freedesktop*.rpm status echo -n "Preparing package... " # Make the package mkdir -p $PACKAGE-$VERSION/fs/usr/lib/libreoffice \ $PACKAGE-$VERSION/fs/usr/share # use mv instead of 'cp -a' to save RAM mv opt/libreoffice* $PACKAGE-$VERSION/fs/usr/lib mv usr/share/mime $PACKAGE-$VERSION/fs/usr/share mv usr/share/icons $PACKAGE-$VERSION/fs/usr/share mv usr/bin $PACKAGE-$VERSION/fs/usr # relocalized libexec directory bin=$(ls $PACKAGE-$VERSION/fs/usr/bin/libreoffice???) if [ -L $bin ]; then target=$(readlink $bin) rm -f $bin ln -s ${target/opt/usr\/lib\/libreoffice} $bin else sed -i 's#/opt/#/usr/lib/libreoffice/#' $bin fi # Create receipt cat > $PACKAGE-$VERSION/receipt <<EOT # SliTaz package receipt. PACKAGE="$PACKAGE" VERSION="$VERSION" CATEGORY="office" SHORT_DESC="Productivity suite." DEPENDS="java6-jre" WEB_SITE="$URL" post_install() { cd /usr/share/applications ln -s /usr/lib/libreoffice?*/share/xdg/base.desktop libreoffice-base.desktop ln -s /usr/lib/libreoffice?*/share/xdg/impress.desktop libreoffice-impress.desktop ln -s /usr/lib/libreoffice?*/share/xdg/writer.desktop libreoffice-writer.desktop ln -s /usr/lib/libreoffice?*/share/xdg/calc.desktop libreoffice-calc.desktop ln -s /usr/lib/libreoffice?*/share/xdg/math.desktop libreoffice-math.desktop ln -s /usr/lib/libreoffice?*/share/xdg/draw.desktop libreoffice-draw.desktop ln -s /usr/lib/libreoffice?*/share/xdg/printeradmin.desktop libreoffice-printeradmin.desktop chmod +x /usr/lib/libreoffice?*/share/xdg/*.desktop cd /usr/bin ln -s /usr/lib/libreoffice?* /usr/lib/libreoffice ln -sf /usr/lib/libreoffice/program/soffice } post_remove() { rm -f /usr/share/applications/libreoffice-* } EOT status # Pack tazpkg pack $PACKAGE-$VERSION # Clean to save RAM memory rm -rf $PACKAGE-$VERSION # Install pseudo package tazpkg install $PACKAGE-$VERSION.tazpkg --root=$ROOT case " $@ " in *\ --k*) mv $PACKAGE-$VERSION.tazpkg $CUR_DIR ;; esac # Clean cd $CUR_DIR rm -rf $TEMP_DIR

