Git Repositories

SLKBUILD for LibreOffice under Salix.
[libreoffice-slkbuild.git] / SLKBUILD.tpl
1 # vim: syn=sh ft=sh et sw=2 sts=2 ts=2 tw=0:
2 #Packager: Cyrille Pontvieux <jrd~at~salixos~dot~org>
3 #Former Maintainer: Dimitris Tzemos <djemos~at~slackel~dot~gr>
4 #execute this script with arch=i686 fakeroot slkbuild -X
5 #to produce the i686 binary
6 #fakeroot slkbuild -X produce the x86_64 package
7
8 pkgname=libreoffice
9 pkgver=4.4.0.3
10 pkgrel=1cp
11 arch=${arch:-x86_64}
12 source=(
13   SLKBUILD.tpl
14   helps
15   langs
16   languages
17   Makefile
18   generate-SLKBUILD.py
19   "http://download.documentfoundation.org/libreoffice/src/$(echo $pkgver|cut -d. -f1-3)/${pkgname}-${pkgver}.tar.xz"
20   "http://download.documentfoundation.org/libreoffice/src/$(echo $pkgver|cut -d. -f1-3)/${pkgname}-translations-${pkgver}.tar.xz"
21   "http://download.documentfoundation.org/libreoffice/src/$(echo $pkgver|cut -d. -f1-3)/${pkgname}-dictionaries-${pkgver}.tar.xz"
22   "http://download.documentfoundation.org/libreoffice/src/$(echo $pkgver|cut -d. -f1-3)/${pkgname}-help-${pkgver}.tar.xz"
23 )
24 options=("noextract")
25 url=http://www.libreoffice.org/
26 multi=(
27 __libreoffice_l10n_LANG__
28 __libreoffice_help_LANG__
29 )
30
31 slackdesc=\
32 (
33 #|-----handy-ruler------------------------------------------------------|
34 "$pkgname (free office suite)"
35 "LibreOffice is an Open Source, community-developed, office"
36 "productivity suite. It includes key desktop applications, such as a"
37 "word processor, spreadsheet, presentation manager, formula editor and"
38 "drawing program, with a user interface and feature set similar to"
39 "other office suites. LibreOffice also works transparently with a"
40 "variety of file formats, including Microsoft Office File Formats."
41 )
42
43 __libreoffice_l10n_LANG_slackdesc__
44
45 __libreoffice_help_LANG_slackdesc__
46
47 build() {
48   lang_list="__lang_list__"
49   dict_list=$(cat <<EOF
50 __dict_list__
51 EOF
52 )
53   help_list="__help_list__"
54   cd $SRC
55   tar xf ${pkgname}-${pkgver}.tar.xz || return 1
56   mkdir -p ${pkgname}-${pkgver}/external/tarballs
57   (
58     cd ${pkgname}-${pkgver}/external/tarballs
59     ln -s -v ../../../${pkgname}-translations-${pkgver}.tar.xz .
60     ln -s -v ../../../${pkgname}-dictionaries-${pkgver}.tar.xz .
61     ln -s -v ../../../${pkgname}-help-${pkgver}.tar.xz .
62   )
63   cd ${pkgname}-${pkgver}
64   # for external archives (langs, dicts, helps)
65   chmod +x bin/unpack-sources
66   # gnome-vfs is disabled because LO wants GVFS >= 2.6 and only 2.0 is used in Salix 14.1
67   ./configure \
68     --prefix=/usr \
69     --libdir=/usr/lib${LIBDIRSUFFIX} \
70     --localstatedir=/var \
71     --sysconfdir=/etc \
72     --disable-ccache \
73     --enable-release-build=yes \
74     --enable-ext-wiki-publisher \
75     --enable-graphite \
76     --enable-orcus \
77     --disable-gconf \
78     --disable-gnome-vfs \
79     --enable-vlc \
80     --enable-eot \
81     --enable-extra-gallery \
82     --enable-extra-template \
83     --enable-extra-sample \
84     --enable-extra-font \
85     --enable-ext-watch-window \
86     --enable-ext-diagram \
87     --enable-ext-validator \
88     --enable-ext-barcode \
89     --enable-ext-ct2n \
90     --enable-ext-numbertext \
91     --enable-ext-hunart \
92     --enable-ext-typo \
93     --enable-ext-google-docs \
94     --enable-ext-nlpsolver \
95     --enable-ext-languagetool \
96     --without-krb5 \
97     --without-gssapi \
98     --without-junit \
99     --with-alloc=system \
100     --with-lang=ALL \
101     --with-help \
102     --with-myspell-dicts \
103     --without-system-dicts \
104     --with-system-boost \
105     --with-system-clucene \
106     --with-system-cairo \
107     --with-system-curl \
108     --with-system-expat \
109     --with-system-harfbuzz \
110     --with-system-icu \
111     --with-system-jpeg \
112     --with-system-lcms2 \
113     --with-system-libpng \
114     --with-system-libxml \
115     --with-system-mesa-headers \
116     --with-system-neon \
117     --with-system-nss \
118     --with-system-openldap \
119     --with-system-openssl \
120     --with-system-poppler \
121     --with-system-redland \
122     --with-system-zlib \
123     --with-vendor="Salix OS" \
124     --with-build-version=$pkgrel \
125     --build=$arch-slackware-linux \
126     || return 1
127   # we don't need to have these file lists
128   sed -i "/distro-install-file-lists/d" Makefile || return 1
129   # make needs a internet connection to download additionnal packages
130   make -j $numjobs build || return 1
131   make distro-pack-install DESTDIR=$PKG || return 1
132         # we don't need the included fonts, we already have packages for
133         # them anyway. We want to keep the opens___.ttf and fc_local.conf files.
134         find $PKG/usr/lib${LIBDIRSUFFIX}/$pkgname/share/fonts/truetype/ ! -name "opens___.ttf" ! -name "fc_local.conf" \
135     -type f \
136     -exec rm {} \;
137   ##############
138   # LANG PACKS #
139   ##############
140   echo "Preparing language packages: langs"
141   for l in $lang_list; do
142     echo ". $l"
143     for m in $PKG/gid_Module_Langpack_*_$l $PKG/gid_Module_Optional_Accessories_*_$l; do
144       [ -f "$m" ] || continue
145       for d in $(sed -rn '/^%dir/ {s/%dir //;p}' $m|sort -u); do
146         mkdir -p ${PKG}_libreoffice_l10n_${l}${d}
147       done
148       for f in $(grep '^/' $m|sort -u); do
149         mv ${PKG}${f} ${PKG}_libreoffice_l10n_${l}${f}
150       done
151       for d in $(sed -rn '/^%dir/ {s/%dir //;p}' $m|sort -r -u); do
152         rmdir ${PKG}${d} 2> /dev/null || true
153       done
154     done
155   done
156   echo "Preparing language packages: dicts"
157   for ld in $dict_list; do
158     l=$(echo $ld|cut -d: -f1)
159     # gnu sed necessary
160     dict=$(echo $ld|cut -d: -f2)
161     if [ -n "$dict" ]; then
162       echo ". $dict"
163       # funny names used in the package module filename,
164       # so try to determine it with some heuristics.
165       dict_dir1=$(echo $l|tr A-Z a-z|sed -r 's/^(.)/\U\1/; s/_(.)/_\U\1/;')
166       dict_dir2=$(echo $dict|tr A-Z a-z|sed -r 's/^(.)/\U\1/; s/_(.)/_\U\1/;')
167       dict_dir3=$(echo $dict_dir2|sed 's/_.*//')
168       for dict_dir in $dict_dir1 $dict_dir2 $dict_dir3; do
169         m=$PKG/gid_Module_Root_Extension_Dictionary_$dict_dir
170         [ -f "$m" ] || continue
171         for d in $(sed -rn '/^%dir/ {s/%dir //;p}' $m|sort -u); do
172           mkdir -p ${PKG}_libreoffice_l10n_${l}${d}
173         done
174         for f in $(grep '^/' $m|sort -u); do
175           cp ${PKG}${f} ${PKG}_libreoffice_l10n_${l}${f}
176         done
177         # do not try another
178         break
179       done
180     fi
181   done
182   echo "Cleaning dictionaries in main package"
183   for m in $PKG/gid_Module_Root_Extension_Dictionary_*; do
184     [ -f "$m" ] || continue
185     for f in $(grep '^/' $m|sort -u); do
186       rm ${PKG}${f} 2>/dev/null || true
187     done
188     for d in $(sed -rn '/^%dir/ {s/%dir //;p}' $m|sort -r -u); do
189       rmdir ${PKG}${d} 2>/dev/null || true
190     done
191   done
192   ##############
193   # HELP PACKS #
194   ##############
195   echo "Preparing help packages"
196   for h in $help_list; do
197     echo ". $h"
198     for m in $PKG/gid_Module_Helppack_*_$h; do
199       [ -f "$m" ] || continue
200       for d in $(sed -rn '/^%dir/ {s/%dir //;p}' $m|sort -u); do
201         mkdir -p ${PKG}_libreoffice_help_${h}${d}
202       done
203       for f in $(grep '^/' $m|sort -u); do
204         mv ${PKG}${f} ${PKG}_libreoffice_help_${h}${f}
205       done
206       for d in $(sed -rn '/^%dir/ {s/%dir //;p}' $m|sort -r -u); do
207         rmdir ${PKG}${d} 2>/dev/null || true
208       done
209     done
210   done
211   rm ${PKG}/gid_Module_*
212 }