blob: 6663cc4eb83b8f94742b68ca47b8ca6adbae65aa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
#!/bin/bash
# important: you need to use the most general CFLAGS to build the packages:
# * for x86 : CFLAGS="-march=i586 -mtune=generic -O2 -pipe -g"
# * for amd64: CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -g"
# What you can set:
VERSION="3.6.3.2"
BINVERSION="3.6.3.2"
OPTS="-v"
USEFILE="/etc/portage/package.use/libreo"
MYPKGDIR="$( portageq pkgdir )"
################################################
die() {
echo "${1}"
exit 1
}
if [ "$( uname -m )" = "x86_64" ] ; then
MYFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -g"
ARCH="amd64"
elif [ "$( uname -m )" = "i686" ] ; then
MYFLAGS="-march=i586 -mtune=generic -O2 -pipe -g"
ARCH="x86"
else
die "Arch not supported"
fi
for i in \
"/bin/echo" \
"/bin/mkdir" \
"/bin/mv" \
"/bin/rm" \
"/bin/sed" \
"/bin/tar" \
"/usr/bin/emerge" \
"/usr/bin/portageq" \
"/usr/bin/quickpkg"
do
if [ ! -e "${i}" ] ; then
die "Missing something in your system"
fi
done
# first the default subset of useflags
IUSES_BASE="bash-completion branding cups dbus gstreamer gtk opengl svg vba webdav -aqua -binfilter -jemalloc -mysql -odk -postgres"
ENABLE_EXTENSIONS="presenter-console presenter-minimizer"
DISABLE_EXTENSIONS="nlpsolver pdfimport scripting-beanshell scripting-javascript wiki-publisher"
for lo_xt in ${ENABLE_EXTENSIONS}; do
IUSES_BASE+=" libreoffice_extensions_${lo_xt}"
done
for lo_xt in ${DISABLE_EXTENSIONS}; do
IUSES_BASE+=" -libreoffice_extensions_${lo_xt}"
done
unset lo_xt
# now for the options
IUSES_J="java libreoffice_extensions_nlpsolver"
IUSES_NJ="-java"
IUSES_G="gnome eds"
IUSES_NG="-gnome -eds"
IUSES_K="kde"
IUSES_NK="-kde"
if [ -f /etc/portage/package.use ] ; then
die "Please save your package.use and make it as a directory"
fi
mkdir -p /etc/portage/package.use/
if [ -z "${MYPKGDIR}" -o ! -d "${MYPKGDIR}" ] ; then
die "Anything goes wrong"
fi
# compile the flavor
echo "Base"
echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_NJ} ${IUSES_NG} ${IUSES_NK}" > ${USEFILE}
CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed"
quickpkg libreoffice --include-config=y
mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-base-${BINVERSION}.tbz2 || die "Moving package failed"
echo "Base - java"
echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_J} ${IUSES_NG} ${IUSES_NK}" > ${USEFILE}
CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed"
quickpkg libreoffice --include-config=y
mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-base-java-${BINVERSION}.tbz2 || die "Moving package failed"
# kde flavor
echo "KDE"
echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_NJ} ${IUSES_NG} ${IUSES_K}" > ${USEFILE}
CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed"
quickpkg libreoffice --include-config=y
mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-kde-${BINVERSION}.tbz2 || die "Moving package failed"
echo "KDE - java"
echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_J} ${IUSES_NG} ${IUSES_K}" > ${USEFILE}
CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed"
quickpkg libreoffice --include-config=y
mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-kde-java-${BINVERSION}.tbz2 || die "Moving package failed"
# gnome flavor
echo "Gnome"
echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_NJ} ${IUSES_G} ${IUSES_NK}" > ${USEFILE}
CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed"
quickpkg libreoffice --include-config=y
mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-gnome-${BINVERSION}.tbz2 || die "Moving package failed"
echo "Gnome -java"
echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_J} ${IUSES_G} ${IUSES_NK}" > ${USEFILE}
CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed"
quickpkg libreoffice --include-config=y
mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-gnome-java-${BINVERSION}.tbz2 || die "Moving package failed"
for name in ./libreoffice-*-${BINVERSION}.tbz2 ; do
BN=`basename $name .tbz2`
rm -rf tmp.lo
mkdir -vp tmp.lo/p1 tmp.lo/p2
cd tmp.lo/p1
echo "Unpacking complete archive $BN.tbz2"
tar xfvjp ../../$BN.tbz2
echo "Moving debug info"
mkdir -vp ../p2/usr/lib
mv -v usr/lib/debug ../p2/usr/lib/
echo "Re-packing program"
tar cfvJ ../../$ARCH-bin-$BN.tar.xz --owner root --group root ./*
echo "Re-packing debug info"
cd ../p2
tar cfvJ ../../$ARCH-debug-$BN.tar.xz --owner root --group root ./*
echo "Removing unpacked files"
cd ../..
rm -rf tmp.lo
echo "Done with $BN.tbz2"
done
rm -fr ${USEFILE}
rm -fr libreoffice*${VERSION}*.tbz2
|