wok annotate get-OpenOffice3/stuff/get-OpenOffice3 @ rev 25002

updated nrg2iso (0.4 -> 0.4.1)
author Hans-G?nter Theisgen
date Mon May 16 14:45:30 2022 +0100 (2022-05-16)
parents c07aaa614a02
children
rev   line source
erjo@1694 1 #!/bin/sh
erjo@1694 2 # get-OpenOffice3, install everything for OpenOffice.org exept KDE/Gnome integration and testsuite.
erjo@1694 3 #
Hans-G?nter@22827 4 # (C) 2020 SliTaz - GNU General Public License v3.
erjo@1694 5 #
erjo@1694 6 # Author : Eric Joseph-Alexandre <erjo@slitaz.org>
Hans-G?nter@22827 7 # modified by HGT on 2020-02-07
Hans-G?nter@22827 8 #
Hans-G?nter@22827 9 # === Initialisations ===
erjo@1694 10
Hans-G?nter@22827 11 PKGS_DB="/var/lib/tazpkg" # packages database directory
erjo@1694 12 PACKAGE="OpenOffice3"
Hans-G?nter@22827 13 WEB_SITE="https://openoffice.org"
Hans-G?nter@22827 14 CATEGORY="office"
Hans-G?nter@22827 15 DEPENDS="java-jre"
Hans-G?nter@22827 16
pascal@6699 17 PATTERN="Linux_x86_install-rpm"
Hans-G?nter@22827 18 EXCLUDE="kde|gnome|test"
erjo@1694 19
Hans-G?nter@22827 20 # Declare functions check_root, status, ...
Hans-G?nter@22827 21 . /lib/libtaz.sh
Hans-G?nter@22827 22 # and make commandline options (if any) available as variables
pascal@7542 23
Hans-G?nter@22827 24 is_installed()
erjo@1694 25 {
Hans-G?nter@22827 26 if [ -d $ROOT$PKGS_DB/installed/$PACKAGE ]
Hans-G?nter@22827 27 then #package is deemed to be installed
erjo@1694 28 return 0
Hans-G?nter@22827 29 else
erjo@1694 30 return 1
erjo@1694 31 fi
erjo@1694 32 }
erjo@1694 33
Hans-G?nter@22827 34 # Show commandline options, if requested by --help
Hans-G?nter@22827 35 if [ "$help" == "yes" ]
Hans-G?nter@22827 36 then
Hans-G?nter@22827 37 echo "Commandline options:
Hans-G?nter@22827 38 $0
Hans-G?nter@22827 39 --version=<version>
Hans-G?nter@22827 40 --root=<path-to-root>
Hans-G?nter@22827 41 --install=yes|no|quick
Hans-G?nter@22827 42 --keep=no|yes
Hans-G?nter@22827 43 --tmpdir=<directory-to-build-package>
Hans-G?nter@22827 44 --logfile=<logging-file>"
Hans-G?nter@22827 45 exit
Hans-G?nter@22827 46 fi
Hans-G?nter@22827 47
Hans-G?nter@22827 48 # Check for system administrator privileges
erjo@1694 49 check_root
erjo@1694 50
Hans-G?nter@22827 51 title "Package $PACKAGE will be build as SliTaz package and installed"
Hans-G?nter@22827 52
Hans-G?nter@22827 53 # Fetch latest version, unless version is set by option --version
Hans-G?nter@22827 54 [ -z "$version" ] && version="latest"
Hans-G?nter@22827 55
Hans-G?nter@22827 56 # Install SliTaz package, unless inhibited by option --install=no
Hans-G?nter@22827 57 [ -z "$install" ] && install="yes"
Hans-G?nter@22827 58
Hans-G?nter@22827 59 # Delete SliTaz package file $PACKAGE-$VERSION.tazpkg after installation,
Hans-G?nter@22827 60 # unless option --keep=yes is given
Hans-G?nter@22827 61 [ -z "$keep" ] && keep="no"
Hans-G?nter@22827 62
Hans-G?nter@22827 63 # Directory for temporary files
Hans-G?nter@22827 64 [ -z "$tempdir" ] && TMP_DIR="/tmp/get-$PACKAGE"
Hans-G?nter@22827 65
Hans-G?nter@22827 66 # Logging file
Hans-G?nter@22827 67 [ -z "$logfile" ] && LOG=$TMP_DIR/get-$PACKAGE.log
Hans-G?nter@22827 68
Hans-G?nter@22827 69 cat <<EOT
Hans-G?nter@22827 70 Options in use:
Hans-G?nter@22827 71 root : $root/
Hans-G?nter@22827 72 version : $version
Hans-G?nter@22827 73 install package: $install
Hans-G?nter@22827 74 keep tazpkg : $keep
Hans-G?nter@22827 75 build directory: $TMP_DIR
Hans-G?nter@22827 76 logging file : $LOG
Hans-G?nter@22827 77
Hans-G?nter@22827 78 EOT
Hans-G?nter@22827 79
Hans-G?nter@22827 80 separator; newline
Hans-G?nter@22827 81
Hans-G?nter@22827 82 # Set WGET_URL
Hans-G?nter@22827 83 # 3.3.0 no german rpm-Package available!
Hans-G?nter@22827 84 for MIRROR in \
Hans-G?nter@22827 85 http://ftp.free.fr/mirrors/ftp.openoffice.org \
Hans-G?nter@22827 86 http://ftp-stud.hs-esslingen.de/pub/Mirrors/ftp.openoffice.org \
Hans-G?nter@22827 87 http://www.ellak.gr/pub/openoffice \
Hans-G?nter@22827 88 http://ftp.snt.utwente.nl/pub/software/openoffice \
Hans-G?nter@22827 89 http://ftp.nluug.nl/pub/office/openoffice \
Hans-G?nter@22827 90 http://ftp.isu.edu.tw/pub/OpenOffice
Hans-G?nter@22827 91 do
Hans-G?nter@22827 92 wget -O - $MIRROR/ 2> /dev/null | grep -q localized || continue
Hans-G?nter@22827 93 DIR="stable"
Hans-G?nter@22827 94 LOC=$(wget -O - $MIRROR/localized/ 2> /dev/null | \
Hans-G?nter@22827 95 grep -E ">$LANG<|>$LANG/<|>${LANG/_/-}<|>${LANG/_/-}/<|>${LANG%_*}<|>${LANG%_*}/<" | \
Hans-G?nter@22827 96 head -1 | sed 's|.*href=\"\(.*\)/\".*|\1|')
Hans-G?nter@22827 97 [ -n "$LOC" ] && DIR="localized/$LOC"
Hans-G?nter@22827 98 VERSION="$(wget -O - $MIRROR/$DIR/ 2> /dev/null | \
Hans-G?nter@22827 99 grep href=\"[0-9] | tail -1 | sed 's|.*href=\"\(.*\)/\".*|\1|' 2> /dev/null)"
Hans-G?nter@22827 100 [ -n "$VERSION" ] && break
Hans-G?nter@22827 101 done
Hans-G?nter@22827 102 TARBALL=$(wget -O - $MIRROR/$DIR/$VERSION/ 2> /dev/null | \
Hans-G?nter@22827 103 grep $PATTERN | tail -1 | sed 's|.*href=\"\(.*\)\".*|\1|')
Hans-G?nter@22827 104 # bug in sed?:
Hans-G?nter@22827 105 TARBALL=${TARBALL%%\"*}
Hans-G?nter@22827 106 echo "Archive is $TARBALL ..."
Hans-G?nter@22827 107
Hans-G?nter@22827 108 # Set VERSION, unless supplied by --version
Hans-G?nter@22827 109 if [ "$version" == "latest" ]
Hans-G?nter@22827 110 then
Hans-G?nter@22827 111 echo "Selecting $DIR version $VERSION from $MIRROR ..."
Hans-G?nter@22827 112 WGET_URL=$MIRROR/$DIR/$VERSION/$TARBALL
Hans-G?nter@22827 113 else
Hans-G?nter@22827 114 TARBALL=${TARBALL/$VERSION/$version}
Hans-G?nter@22827 115 VERSION=$version
Hans-G?nter@22827 116 WGET_URL="$MIRROR/$DIR/$VERSION/$TARBALL"
erjo@1694 117 fi
erjo@1694 118
Hans-G?nter@22827 119 # === Remove package, if installed ===
Hans-G?nter@22827 120 if [ is_installed ]
Hans-G?nter@22827 121 then
Hans-G?nter@22827 122 action "Removing installed version..."
Hans-G?nter@22827 123 tazpkg remove $PACKAGE --root="$root/"
Hans-G?nter@22827 124 [ ! is_installed ] &&
Hans-G?nter@22827 125 die "Can't remove installed version. Exiting."
pascal@3893 126 fi
erjo@1694 127
Hans-G?nter@22827 128 # === Fetch archive file, if not existing ===
Hans-G?nter@22827 129
Hans-G?nter@22827 130 CUR_DIR=$(pwd)
Hans-G?nter@22827 131 mkdir -p $TMP_DIR
Hans-G?nter@22827 132 cd $TMP_DIR
Hans-G?nter@22827 133 if [ -f $TARBALL ]
Hans-G?nter@22827 134 then
Hans-G?nter@22827 135 echo "Using existing archive file $TARBALL"
Hans-G?nter@22827 136 else
Hans-G?nter@22827 137 action "Fetching the archive"
Hans-G?nter@22827 138 newline
Hans-G?nter@22827 139 wget --no-check-certificate $WGET_URL
Hans-G?nter@22827 140 if [ ! -f $TARBALL ]
Hans-G?nter@22827 141 then
Hans-G?nter@22827 142 cd $CUR_DIR
Hans-G?nter@22827 143 rm -rf $TMP_DIR
Hans-G?nter@22827 144 echo "Could not transfer $TARBALL from $WGET_URL. Exiting."
Hans-G?nter@22827 145 exit 1
Hans-G?nter@22827 146 fi
Hans-G?nter@22827 147 fi
Hans-G?nter@22827 148
Hans-G?nter@22827 149 # === Extract files from archive ===
Hans-G?nter@22827 150 action "Extracting the archive"
Hans-G?nter@22827 151 newline
Hans-G?nter@22827 152
Hans-G?nter@22827 153 tar x -vf $TARBALL > $LOG 2>&1 || \
erjo@1694 154 (echo "Failed to extract $TARBALL" ; exit 1)
Hans-G?nter@22827 155
erjo@1694 156 status
erjo@1694 157
Hans-G?nter@22827 158 # Remove archive file
Hans-G?nter@22827 159 rm -f $TARBALL
erjo@1694 160
erjo@1694 161 # Extract everything from RPMS
Hans-G?nter@22827 162 cd $TMP_DIR/*/RPMS
erjo@1694 163 for i in *.rpm
Hans-G?nter@22827 164 do
Hans-G?nter@22827 165 if (! echo $i | egrep -qi $EXCLUDE)
Hans-G?nter@22827 166 then
Hans-G?nter@22827 167 (rpm2cpio $i | cpio -id >> $LOG 2>&1 ) &&
Hans-G?nter@22827 168 echo rm -f $i
erjo@1694 169 fi
Hans-G?nter@22827 170 done
erjo@1694 171 rpm2cpio desktop-integration/*freedesktop*.rpm | cpio -id >> $LOG 2>&1
erjo@1694 172
Hans-G?nter@22827 173 # extracted pkg can be removed
jozee@4984 174 rm -f desktop-integration/*freedesktop*.rpm
jozee@5011 175
Hans-G?nter@22827 176 # Make the package
Hans-G?nter@22827 177 mkdir -p $PACKAGE-$VERSION/fs/usr/lib/openoffice
Hans-G?nter@22827 178 mkdir -p $PACKAGE-$VERSION/fs/usr/share
jozee@4984 179
Hans-G?nter@22827 180 # use mv instead of 'cp -a' to save space
Hans-G?nter@22827 181 mv opt/openoffice* $PACKAGE-$VERSION/fs/usr/lib/openoffice
Hans-G?nter@22827 182 mv usr/share/mime $PACKAGE-$VERSION/fs/usr/share
Hans-G?nter@22827 183 mv usr/share/icons $PACKAGE-$VERSION/fs/usr/share
Hans-G?nter@22827 184 mv usr/bin $PACKAGE-$VERSION/fs/usr
erjo@1694 185
erjo@1694 186 # relocalized OOo libexec directory
Hans-G?nter@22827 187 sed -i 's#/opt/#/usr/lib/openoffice/#' \
Hans-G?nter@22827 188 $PACKAGE-$VERSION/fs/usr/bin/openoffice*
erjo@1694 189
erjo@1694 190 # Create receipt
erjo@1694 191 cat > $PACKAGE-$VERSION/receipt <<EOT
erjo@1694 192 # SliTaz package receipt.
erjo@1694 193
erjo@1694 194 PACKAGE="$PACKAGE"
erjo@1694 195 VERSION="$VERSION"
erjo@1694 196 CATEGORY="office"
erjo@1694 197 SHORT_DESC="Productivity suite."
Hans-G?nter@22827 198 DEPENDS="$DEPENDS"
Hans-G?nter@22827 199 WEB_SITE="$WEB_SITE"
erjo@1694 200
erjo@1694 201 post_install()
erjo@1694 202 {
pascal@13706 203 cd \$1/usr/share/applications
erjo@1694 204 ln -s /usr/lib/openoffice/openoffice.org3/share/xdg/base.desktop openoffice.org3-base.desktop
erjo@1694 205 ln -s /usr/lib/openoffice/openoffice.org3/share/xdg/impress.desktop openoffice.org3-impress.desktop
erjo@1694 206 ln -s /usr/lib/openoffice/openoffice.org3/share/xdg/writer.desktop openoffice.org3-writer.desktop
erjo@1694 207 ln -s /usr/lib/openoffice/openoffice.org3/share/xdg/calc.desktop openoffice.org3-calc.desktop
erjo@1694 208 ln -s /usr/lib/openoffice/openoffice.org3/share/xdg/math.desktop openoffice.org3-math.desktop
erjo@1694 209 ln -s /usr/lib/openoffice/openoffice.org3/share/xdg/draw.desktop openoffice.org3-draw.desktop
erjo@1694 210 ln -s /usr/lib/openoffice/openoffice.org3/share/xdg/printeradmin.desktop openoffice.org3-printeradmin.desktop
Hans-G?nter@22827 211
pascal@13706 212 cd \$1/usr/bin
erjo@1694 213 ln -sf /usr/lib/openoffice/openoffice.org3/program/soffice
erjo@1694 214 }
erjo@1694 215
erjo@1694 216 post_remove()
erjo@1694 217 {
pascal@13706 218 rm -f \$1/usr/share/applications/openoffice.org3-*
erjo@1694 219 }
erjo@1694 220
erjo@1694 221 EOT
erjo@1694 222
pascal@13706 223 fake_install()
pascal@13706 224 {
Hans-G?nter@22827 225 mkdir -p $root/var/lib/tazpkg/installed/$PACKAGE
pascal@13706 226 echo "00000000000000000000000000000000 $PACKAGE-$VERSION.tazpkg" >> \
Hans-G?nter@22827 227 $root/var/lib/tazpkg/installed.md5
Hans-G?nter@22827 228 [ -s $1/description.txt $root/var/lib/tazpkg/installed/$PACKAGE
pascal@13706 229 ( cd fs ; find *) | sed 's|^|/|' > \
Hans-G?nter@22827 230 $root/var/lib/tazpkg/installed/$PACKAGE/files.list
Hans-G?nter@22827 231 if grep -q ^CONFIG_FILES= $1/receipt
Hans-G?nter@22827 232 then
pascal@13706 233 cd fs
Hans-G?nter@22827 234 find $( . ./receipt ; echo " $CONFIG_FILES" | sed 's# /# #g') |\
pascal@13706 235 cpio -o -H newc | gzip -9 > \
Hans-G?nter@22827 236 $root/var/lib/tazpkg/installed/$PACKAGE/volatile.cpio.gz
Hans-G?nter@22827 237 for i in $( . ./receipt ; echo $CONFIG_FILES)
Hans-G?nter@22827 238 do
Hans-G?nter@22827 239 [ -e $root$i ] && rm -rf .$i
Hans-G?nter@22827 240 done
pascal@13706 241 cd ..
pascal@13706 242 fi
pascal@13706 243 sed -i "s/^PACKAGE=/UNPACKED_SIZE=\"$(du -chs $1 | sed '$!d;s/.total//')\"\n&/" \
pascal@13706 244 $1/receipt
Hans-G?nter@22827 245 cp $1/receipt $root/var/lib/tazpkg/installed/$PACKAGE
pascal@13706 246 echo "Compute md5sum..."
pascal@13710 247 find fs -type f | xargs md5sum | sed 's| fs/| /|' > \
Hans-G?nter@22827 248 $root/var/lib/tazpkg/installed/$PACKAGE/md5sum
pascal@13706 249 echo "Move files..."
Hans-G?nter@22827 250 ( cd $1/fs ; find ) | while read file
Hans-G?nter@22827 251 do
Hans-G?nter@22827 252 [ -e $1/fs/$file -a ! -e $root/$file ] &&
Hans-G?nter@22827 253 mv $1/fs/$file $(dirname $root/$file)
Hans-G?nter@22827 254 done
pascal@13706 255 }
erjo@1694 256
Hans-G?nter@22827 257 [ "$install" == "quick" ] &&
Hans-G?nter@22827 258 fake_install $PACKAGE-$VERSION && return 0
jozee@4984 259
Hans-G?nter@22827 260 # Pack
Hans-G?nter@22827 261 tazpkg pack $PACKAGE-$VERSION
Hans-G?nter@22827 262 # Remove package tree
Hans-G?nter@22827 263 rm -rf $PACKAGE-$VERSION
pascal@13706 264
Hans-G?nter@22827 265 # === Install the SliTaz package ===
Hans-G?nter@22827 266 [ "$install" == "yes" ] &&
Hans-G?nter@22827 267 tazpkg install $PACKAGE-$VERSION.tazpkg --root="$root"
pascal@13706 268
Hans-G?nter@22827 269 # === Cleanup ===
Hans-G?nter@22827 270 # Preserve package file, if requested
Hans-G?nter@22827 271 [ "$keep" == "yes" ] &&
Hans-G?nter@22827 272 ( mv $PACKAGE-$VERSION.tazpkg $CUR_DIR &&
Hans-G?nter@22827 273 echo Saved $PACKAGE-$VERSION.tazpkg to $CUR_DIR )
erjo@1694 274
Hans-G?nter@22827 275 # Remove temporary build directory
pascal@13706 276 cd $CUR_DIR
Hans-G?nter@22827 277 rm -rf $TMP_DIR