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
|