| 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.4.3" |
|
|
9 | BINVERSION="3.6.4.3" |
|
|
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.2.2" |
20 | if [ "$( uname -m )" = "x86_64" ] ; then |
|
|
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 $( uname -m ) not supported" |
|
|
28 | fi |
| 14 | |
29 | |
| 15 | BINRELEASE="-r1" |
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 some basic utility in your system" |
|
|
43 | fi |
|
|
44 | done |
| 16 | |
45 | |
| 17 | # first the default subset of useflags |
46 | # first the default subset of useflags |
| 18 | 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 opengl vba webdav -aqua -binfilter -jemalloc -mysql -odk -postgres" |
|
|
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 |
| 19 | |
59 | |
| 20 | # now for the options |
60 | # now for the options |
| 21 | IUSES_J="java" |
61 | IUSES_J="java libreoffice_extensions_nlpsolver" |
| 22 | IUSES_NJ="-java" |
62 | IUSES_NJ="-java" |
| 23 | IUSES_G="gnome eds" |
63 | IUSES_G="gnome eds" |
| 24 | IUSES_NG="-gnome -eds" |
64 | IUSES_NG="-gnome -eds" |
| 25 | IUSES_K="kde" |
65 | IUSES_K="kde" |
| 26 | IUSES_NK="-kde" |
66 | IUSES_NK="-kde" |
| 27 | |
67 | |
|
|
68 | if [ -f /etc/portage/package.use ] ; then |
|
|
69 | die "Please save your package.use and re-create it as a directory" |
|
|
70 | fi |
|
|
71 | |
| 28 | mkdir -p /etc/portage/package.use/ |
72 | mkdir -p /etc/portage/package.use/ || die |
|
|
73 | |
|
|
74 | mkdir -p "${MYPKGDIR}" |
|
|
75 | if [ -z "${MYPKGDIR}" -o ! -d "${MYPKGDIR}" ] ; then |
|
|
76 | die "Anything goes wrong" |
|
|
77 | fi |
| 29 | |
78 | |
| 30 | # compile the flavor |
79 | # compile the flavor |
| 31 | echo "Base" |
80 | echo "Base" |
| 32 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_NJ} ${IUSES_NG} ${IUSES_NK}" > /etc/portage/package.use/libreo |
81 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_NJ} ${IUSES_NG} ${IUSES_NK}" > ${USEFILE} |
| 33 | emerge -v =libreoffice-${VERSION} || die "emerge failed" |
82 | FEATURES="${FEATURES} splitdebug" CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
| 34 | quickpkg libreoffice --include-config=y |
83 | quickpkg libreoffice --include-config=y |
| 35 | mv /tmp/portage/packages/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-base-${VERSION}${BINRELEASE}.tbz2 || die "Moving package failed" |
84 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-base-${BINVERSION}.tbz2 || die "Moving package failed" |
| 36 | |
85 | |
| 37 | echo "Base - java" |
86 | echo "Base - java" |
| 38 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_J} ${IUSES_NG} ${IUSES_NK}" > /etc/portage/package.use/libreo |
87 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_J} ${IUSES_NG} ${IUSES_NK}" > ${USEFILE} |
| 39 | emerge -v =libreoffice-${VERSION} || die "emerge failed" |
88 | FEATURES="${FEATURES} splitdebug" CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
| 40 | quickpkg libreoffice --include-config=y |
89 | quickpkg libreoffice --include-config=y |
| 41 | mv /tmp/portage/packages/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-base-java-${VERSION}${BINRELEASE}.tbz2 || die "Moving package failed" |
90 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-base-java-${BINVERSION}.tbz2 || die "Moving package failed" |
| 42 | |
91 | |
| 43 | # kde flavor |
92 | # kde flavor |
| 44 | echo "KDE" |
93 | echo "KDE" |
| 45 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_NJ} ${IUSES_NG} ${IUSES_K}" > /etc/portage/package.use/libreo |
94 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_NJ} ${IUSES_NG} ${IUSES_K}" > ${USEFILE} |
| 46 | emerge -v =libreoffice-${VERSION} || die "emerge failed" |
95 | FEATURES="${FEATURES} splitdebug" CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
| 47 | quickpkg libreoffice --include-config=y |
96 | quickpkg libreoffice --include-config=y |
| 48 | mv /tmp/portage/packages/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-kde-${VERSION}${BINRELEASE}.tbz2 || die "Moving package failed" |
97 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-kde-${BINVERSION}.tbz2 || die "Moving package failed" |
| 49 | |
98 | |
| 50 | echo "KDE - java" |
99 | echo "KDE - java" |
| 51 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_J} ${IUSES_NG} ${IUSES_K}" > /etc/portage/package.use/libreo |
100 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_J} ${IUSES_NG} ${IUSES_K}" > ${USEFILE} |
| 52 | emerge -v =libreoffice-${VERSION} || die "emerge failed" |
101 | FEATURES="${FEATURES} splitdebug" CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
| 53 | quickpkg libreoffice --include-config=y |
102 | quickpkg libreoffice --include-config=y |
| 54 | mv /tmp/portage/packages/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-kde-java-${VERSION}${BINRELEASE}.tbz2 || die "Moving package failed" |
103 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-kde-java-${BINVERSION}.tbz2 || die "Moving package failed" |
| 55 | |
104 | |
| 56 | # gnome flavor |
105 | # gnome flavor |
| 57 | echo "Gnome" |
106 | echo "Gnome" |
| 58 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_NJ} ${IUSES_G} ${IUSES_NK}" > /etc/portage/package.use/libreo |
107 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_NJ} ${IUSES_G} ${IUSES_NK}" > ${USEFILE} |
| 59 | emerge -v =libreoffice-${VERSION} || die "emerge failed" |
108 | FEATURES="${FEATURES} splitdebug" CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
| 60 | quickpkg libreoffice --include-config=y |
109 | quickpkg libreoffice --include-config=y |
| 61 | mv /tmp/portage/packages/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-gnome-${VERSION}${BINRELEASE}.tbz2 || die "Moving package failed" |
110 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-gnome-${BINVERSION}.tbz2 || die "Moving package failed" |
| 62 | |
111 | |
| 63 | echo "Gnome -java" |
112 | echo "Gnome -java" |
| 64 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_J} ${IUSES_G} ${IUSES_NK}" > /etc/portage/package.use/libreo |
113 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_J} ${IUSES_G} ${IUSES_NK}" > ${USEFILE} |
| 65 | emerge -v =libreoffice-${VERSION} || die "emerge failed" |
114 | FEATURES="${FEATURES} splitdebug" CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
| 66 | quickpkg libreoffice --include-config=y |
115 | quickpkg libreoffice --include-config=y |
| 67 | mv /tmp/portage/packages/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-gnome-java-${VERSION}${BINRELEASE}.tbz2 || die "Moving package failed" |
116 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-gnome-java-${BINVERSION}.tbz2 || die "Moving package failed" |
| 68 | |
117 | |
| 69 | |
118 | |
| 70 | for name in ./libreoffice-*-${VERSION}${BINRELEASE}.tbz2 ; do |
119 | for name in ./libreoffice-*-${BINVERSION}.tbz2 ; do |
| 71 | |
120 | |
| 72 | BN=`basename $name .tbz2` |
121 | BN=`basename $name .tbz2` |
| 73 | |
122 | |
| 74 | rm -rf tmp.lo |
123 | rm -rf tmp.lo |
| 75 | mkdir -vp tmp.lo/p1 tmp.lo/p2 |
124 | mkdir -vp tmp.lo/p1 tmp.lo/p2 |
| … | |
… | |
| 81 | echo "Moving debug info" |
130 | echo "Moving debug info" |
| 82 | mkdir -vp ../p2/usr/lib |
131 | mkdir -vp ../p2/usr/lib |
| 83 | mv -v usr/lib/debug ../p2/usr/lib/ |
132 | mv -v usr/lib/debug ../p2/usr/lib/ |
| 84 | |
133 | |
| 85 | echo "Re-packing program" |
134 | echo "Re-packing program" |
| 86 | tar cfvJ ../../bin-$BN.tar.xz --owner root --group root ./* |
135 | tar cfvJ ../../$ARCH-bin-$BN.tar.xz --owner root --group root ./* |
| 87 | |
136 | |
| 88 | echo "Re-packing debug info" |
137 | echo "Re-packing debug info" |
| 89 | cd ../p2 |
138 | cd ../p2 |
| 90 | tar cfvJ ../../debug-$BN.tar.xz --owner root --group root ./* |
139 | tar cfvJ ../../$ARCH-debug-$BN.tar.xz --owner root --group root ./* |
| 91 | |
140 | |
| 92 | echo "Removing unpacked files" |
141 | echo "Removing unpacked files" |
| 93 | cd ../.. |
142 | cd ../.. |
| 94 | rm -rf tmp.lo |
143 | rm -rf tmp.lo |
| 95 | |
144 | |
| 96 | echo "Done with $BN.tbz2" |
145 | echo "Done with $BN.tbz2" |
| 97 | |
146 | |
| 98 | done |
147 | done |
|
|
148 | |
|
|
149 | rm -f ${USEFILE} || die "Removing ${USEFILE} failed" |
|
|
150 | |
|
|
151 | rm -f libreoffice*${VERSION}*.tbz2 || die "Removing un-split package files failed" |