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