summaryrefslogtreecommitdiff
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