Kulle, 4.0 is use the old script by
brokenman (not my script).
Copy and run my script
Code: Select all
su
toor
chmod +x my-script.sh
cd /where-is-my-script
./my-script.sh de
Code: Select all
#!/bin/bash
# This is LibreOffice build script of xzm module for Porteus
# Version 2019-06-06
# Copyright 2019 Blaze admin at ublaze.ru
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Root check
if [ `whoami` != "root" ]; then
echo -e "\nOnly root can run this.\n"
exit 1
fi
PRGNAM=${PRGNAM:-LibreOffice}
VERSION=${VERSION:-`curl -sv http://download.documentfoundation.org/libreoffice/stable/ 2>/dev/null | grep [0-9].[0-9].[0-9] | sort -u | tail -1 | cut -d'"' -f4 | tr -d /`}
BUILD=${BUILD:-1}
TAG=${TAG:-bl}
LOLANG=${LOLANG:-$1}
BOLD=${BOLD:-"\e[1m"}
CYAN=${CYAN:-"\e[96m"}
GREEN=${GREEN:-"\e[92m"}
RED=${RED:-"\e[31m"}
RESET=${RESET:-"\e[0m"}
if [ -z "$LOLANG" ]; then
echo -e "\nUsage: ${BOLD}update-libreoffice ${CYAN}your-language${RESET}\nFor example: ${BOLD}update-libreoffice ${CYAN}en-US${RESET}\n"
# How to check supported languages of LO:
# curl -sv http://download.documentfoundation.org/libreoffice/stable/6.2.3/rpm/x86_64/ 2>/dev/null | awk '/pack/' | cut -d'_' -f7 | cut -d'.' -f1 | sort -u | tr '\n' ' ' | fmt
echo -e "Supported languages:\naf am ar as ast be bg bn bn-IN bo br brx bs ca ca-valencia cs cy da de
dgo dsb dz el en-GB en-US en-ZA eo es et eu fa fi fr fy ga gd gl gu gug
he hi hr hsb hu id is it ja ka kab kk km kmr-Latn kn ko kok ks lb lo lt
lv mai mk ml mn mni mr my nb ne nl nn nr nso oc om or pa-IN pl pt pt-BR
ro ru rw sa-IN sat sd si sid sk sl sq sr sr-Latn ss st sv sw-TZ ta te
tg th tn tr ts tt ug uk uz ve vec vi xh zh-CN zh-TW zu\n"
exit 1
fi
# Check if LO installed in the system
if [[ -d "$(ls -d /opt/libreoffice* 2>/dev/null)" ]]; then
MYVER=${MYVER:-`/opt/libreoffice*/program/soffice --version | awk 'NR==1 {print $2}' | sed 's/..$//'`}
fi
if [ "$MYVER" == "$VERSION" ]; then
echo -e "You have the latest ${GREEN}$MYVER${RESET} version of $PRGNAM"
exit
else
read -p "$(echo -e Do you want to build $PRGNAM ${GREEN}$VERSION${RESET} xzm module? [y/n])" -n 1 -r -s && echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "We continue the execution of the $0 script" &>/dev/null
else
exit
fi
fi
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
if [[ "$ARCH" == i686 || "$ARCH" == i586 ]]; then
# Download LibreOffice
echo -e "\nDownloading LibreOffice"
wget -q --show-progress http://download.documentfoundation.org/libreoffice/stable/"$VERSION"/rpm/x86/LibreOffice\_"$VERSION"'_Linux_x86_'rpm.tar.gz
tar -xf LibreOffice_"$VERSION"'_Linux_x86_'rpm.tar.gz
rm -f $TMP/LibreOffice_"$VERSION".*'_Linux_x86_'rpm/RPMS/libreoffice?.?-dict-{es,fr}-*.rpm
mv $TMP/LibreOffice_"$VERSION".*'_Linux_x86_'rpm/RPMS/* $PKG
rm -rf $TMP/LibreOffice_"$VERSION".*'_Linux_x86_'rpm
rm -f $TMP/LibreOffice_"$VERSION"'_Linux_x86_'rpm.tar.gz
# Download helppack
echo -e "\nDownloading ${BOLD}${CYAN}$LOLANG${RESET} helppack"
wget -q --show-progress http://download.documentfoundation.org/libreoffice/stable/"$VERSION"/rpm/x86/LibreOffice\_"$VERSION"'_Linux_x86_rpm_helppack_'"$LOLANG".tar.gz
tar -xf LibreOffice_"$VERSION"'_Linux_x86_rpm_helppack_'"$LOLANG".tar.gz
mv $TMP/LibreOffice_"$VERSION".*'_Linux_x86_rpm_helppack_'"$LOLANG"/RPMS/* $PKG
rm -rf $TMP/LibreOffice_"$VERSION".*'_Linux_x86_rpm_helppack_'"$LOLANG"
rm -f $TMP/LibreOffice_"$VERSION"'_Linux_x86_rpm_helppack_'"$LOLANG".tar.gz
elif [[ "$ARCH" == x86_64 ]]; then
# Download LibreOffice
echo -e "\nDownloading LibreOffice"
wget -q --show-progress http://download.documentfoundation.org/libreoffice/stable/"$VERSION"/rpm/'x86_64'/LibreOffice\_"$VERSION"'_Linux_x86-64_'rpm.tar.gz
tar -xf LibreOffice_"$VERSION"'_Linux_x86-64_'rpm.tar.gz
rm -f $TMP/LibreOffice_"$VERSION".*'_Linux_x86-64_'rpm/RPMS/libreoffice?.?-dict-{es,fr}-*.rpm
mv $TMP/LibreOffice_"$VERSION".*'_Linux_x86-64_'rpm/RPMS/* $PKG
rm -rf $TMP/LibreOffice_"$VERSION".*'_Linux_x86-64_'rpm
rm -f $TMP/LibreOffice_"$VERSION"'_Linux_x86-64_'rpm.tar.gz
# Download helppack
echo -e "\nDownloading ${BOLD}${CYAN}$LOLANG${RESET} helppack"
wget -q --show-progress http://download.documentfoundation.org/libreoffice/stable/"$VERSION"/rpm/'x86_64'/LibreOffice\_"$VERSION"'_Linux_x86-64_rpm_helppack_'"$LOLANG".tar.gz
tar -xf LibreOffice_"$VERSION"'_Linux_x86-64_rpm_helppack_'"$LOLANG".tar.gz
mv $TMP/LibreOffice_"$VERSION".*'_Linux_x86-64_rpm_helppack_'"$LOLANG"/RPMS/* $PKG
rm -rf $TMP/LibreOffice_"$VERSION".*'_Linux_x86-64_rpm_helppack_'"$LOLANG"
rm -f $TMP/LibreOffice_"$VERSION"'_Linux_x86-64_rpm_helppack_'"$LOLANG".tar.gz
else
echo 'Failed to download LibreOffice!'
exit 1
fi
if [[ "$LOLANG" != 'en-US' && "$ARCH" == i686 || "$ARCH" == i586 ]]; then
# Download langpack
echo -e "\nDownloading ${BOLD}${CYAN}$LOLANG${RESET} langpack"
wget -q --show-progress http://download.documentfoundation.org/libreoffice/stable/"$VERSION"/rpm/'x86'/LibreOffice\_"$VERSION"'_Linux_x86_rpm_langpack_'"$LOLANG".tar.gz
tar -xf LibreOffice_"$VERSION"'_Linux_x86_rpm_langpack_'"$LOLANG".tar.gz
mv $TMP/LibreOffice_"$VERSION".*'_Linux_x86_rpm_langpack_'"$LOLANG"/RPMS/* $PKG
rm -rf $TMP/LibreOffice_"$VERSION".*'_Linux_x86_rpm_langpack_'"$LOLANG"
rm -f $TMP/LibreOffice_"$VERSION"'_Linux_x86_rpm_langpack_'"$LOLANG".tar.gz
elif [[ "$LOLANG" != 'en-US' && "$ARCH" == x86_64 ]]; then
# Download langpack
echo -e "\nDownloading ${BOLD}${CYAN}$LOLANG${RESET} langpack"
wget -q --show-progress http://download.documentfoundation.org/libreoffice/stable/"$VERSION"/rpm/'x86_64'/LibreOffice\_"$VERSION"'_Linux_x86-64_rpm_langpack_'"$LOLANG".tar.gz
tar -xf LibreOffice_"$VERSION"'_Linux_x86-64_rpm_langpack_'"$LOLANG".tar.gz
mv $TMP/LibreOffice_"$VERSION".*'_Linux_x86-64_rpm_langpack_'"$LOLANG"/RPMS/* $PKG
rm -rf $TMP/LibreOffice_"$VERSION".*'_Linux_x86-64_rpm_langpack_'"$LOLANG"
rm -f $TMP/LibreOffice_"$VERSION"'_Linux_x86-64_rpm_langpack_'"$LOLANG".tar.gz
elif [[ "$LOLANG" == 'en-US' ]]; then
echo "$LOLANG = en-US" &>/dev/null
else
echo "Failed to download your ${BOLD}$LOLANG${RESET} language for LibreOffice!"
exit 1
fi
# Extract all rpm
echo -e "\nBuilding of $OUTPUT/$PRGNAM-$VERSION-$ARCH-$LOLANG-$BUILD$TAG.xzm module"
cd $PKG
for i in `find . -type f | fgrep .rpm | sort`; do rpm2cpio $i | cpio -idmv &>/dev/null; done
rm -f *.rpm
# Cleaning of LO
rm -rf $PKG/var
rm -rf $PKG/opt/libreoffice?.?/{readmes,CREDITS.fodt,LICENSE,LICENSE.fodt,LICENSE.html,NOTICE}
# Fix of double menu entries
find $PKG/usr/share/applications/ -name *.desktop -delete
mv -f $PKG/opt/libreoffice?.?/share/xdg/*.desktop $PKG/usr/share/applications
# If you use official LibreOffice 6.1.x (or higher) rpm.tar.gz package -
# need to drop avahi and wayland dependences.
# set SAL_USE_VCLPLUGIN=gtk
LO=$(find $PKG/opt/libreoffice*/program -name soffice | awk 'NR==1 {print $0}')
sed -i -e '/^#\ restore/i# Prefer GTK2\nexport SAL_USE_VCLPLUGIN=${SAL_USE_VCLPLUGIN:-gtk}\n' $LO
# built two dummy/empty libraries (need for run LO Impress)
cd $(echo $LO | sed 's|soffice||')
gcc -shared -o libavahi-client.so.3 -x c - < /dev/null
gcc -shared -o libavahi-common.so.3 -x c - < /dev/null
unset LO
# Building of LO xzm module
mksquashfs $PKG $OUTPUT/$PRGNAM-$VERSION-$ARCH-$LOLANG-$BUILD$TAG.xzm -b 256K -comp xz -Xbcj x86 -noappend
rm -rf $PKG
# Check on LO xzm file exists in /tmp
if [ -f "$OUTPUT/$PRGNAM-$VERSION-$ARCH-$LOLANG-$BUILD$TAG.xzm" ]; then
echo -e "\n${BOLD}Your $PRGNAM module is at: ${GREEN}${BOLD}$OUTPUT/$PRGNAM-$VERSION-$ARCH-$LOLANG-$BUILD$TAG.xzm${RESET}\n${BOLD}Please move it to your modules folder to survive a reboot.${RESET}\n"
else
echo -e "\n${RED}${BOLD}Faile. Your $PRGNAM module is not built.${RESET}\n"
fi
Linux 6.6.11-porteus #1 SMP PREEMPT_DYNAMIC Sun Jan 14 12:07:37 MSK 2024 x86_64 Intel(R) Xeon(R) CPU E3-1270 v6 @ 3.80GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Navi 23 [Radeon RX 6600] [1002:73ff] (rev c7) » Vengeance LPX 16GB DDR4 K2 3200MHz C16