| 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="-q" |
|
|
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 -binfilter branding cups dbus graphite gstreamer gtk nsplugin python vba webdav xmlsec -aqua -jemalloc -mysql -nlpsolver -odk -opengl -pdfimport -postgres -svg" |
| 18 | |
48 | |
| 19 | # now for the options |
49 | # now for the options |
| 20 | IUSES_J="java" |
50 | IUSES_J="java" |
| 21 | IUSES_NJ="-java" |
51 | IUSES_NJ="-java" |
| 22 | IUSES_G="gnome eds" |
52 | IUSES_G="gnome eds" |
| 23 | IUSES_NG="-gnome -eds" |
53 | IUSES_NG="-gnome -eds" |
| 24 | IUSES_K="kde" |
54 | IUSES_K="kde" |
| 25 | IUSES_NK="-kde" |
55 | IUSES_NK="-kde" |
| 26 | |
56 | |
| 27 | if [ -f /etc/portage/package.use ] ; then |
57 | if [ -f /etc/portage/package.use ] ; then |
| 28 | echo "Please save your package.use and make it as a directory" |
58 | die "Please save your package.use and make it as a directory" |
| 29 | exit 1 |
|
|
| 30 | fi |
59 | fi |
| 31 | |
60 | |
| 32 | mkdir -p /etc/portage/package.use/ |
61 | mkdir -p /etc/portage/package.use/ |
| 33 | |
62 | |
| 34 | OPTS="-v" |
63 | if [ -z "${MYPKGDIR}" -o ! -d "${MYPKGDIR}" ] ; then |
| 35 | |
64 | die "Anything goes wrong" |
| 36 | MYPKGDIR="$( emerge --info | grep PKGDIR | sed "s:PKGDIR=::;s:\"::g" )" |
65 | fi |
| 37 | |
66 | |
| 38 | # compile the flavor |
67 | # compile the flavor |
| 39 | echo "Base" |
68 | echo "Base" |
| 40 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_NJ} ${IUSES_NG} ${IUSES_NK}" > /etc/portage/package.use/libreo |
69 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_NJ} ${IUSES_NG} ${IUSES_NK}" > ${USEFILE} |
| 41 | emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
70 | CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
| 42 | quickpkg libreoffice --include-config=y |
71 | quickpkg libreoffice --include-config=y |
| 43 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-base-${BINVERSION}.tbz2 || die "Moving package failed" |
72 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-base-${BINVERSION}.tbz2 || die "Moving package failed" |
| 44 | |
73 | |
| 45 | echo "Base - java" |
74 | echo "Base - java" |
| 46 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_J} ${IUSES_NG} ${IUSES_NK}" > /etc/portage/package.use/libreo |
75 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_J} ${IUSES_NG} ${IUSES_NK}" > ${USEFILE} |
| 47 | emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
76 | CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
| 48 | quickpkg libreoffice --include-config=y |
77 | quickpkg libreoffice --include-config=y |
| 49 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-base-java-${BINVERSION}.tbz2 || die "Moving package failed" |
78 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-base-java-${BINVERSION}.tbz2 || die "Moving package failed" |
| 50 | |
79 | |
| 51 | # kde flavor |
80 | # kde flavor |
| 52 | echo "KDE" |
81 | echo "KDE" |
| 53 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_NJ} ${IUSES_NG} ${IUSES_K}" > /etc/portage/package.use/libreo |
82 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_NJ} ${IUSES_NG} ${IUSES_K}" > ${USEFILE} |
| 54 | emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
83 | CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
| 55 | quickpkg libreoffice --include-config=y |
84 | quickpkg libreoffice --include-config=y |
| 56 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-kde-${BINVERSION}.tbz2 || die "Moving package failed" |
85 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-kde-${BINVERSION}.tbz2 || die "Moving package failed" |
| 57 | |
86 | |
| 58 | echo "KDE - java" |
87 | echo "KDE - java" |
| 59 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_J} ${IUSES_NG} ${IUSES_K}" > /etc/portage/package.use/libreo |
88 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_J} ${IUSES_NG} ${IUSES_K}" > ${USEFILE} |
| 60 | emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
89 | CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
| 61 | quickpkg libreoffice --include-config=y |
90 | quickpkg libreoffice --include-config=y |
| 62 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-kde-java-${BINVERSION}.tbz2 || die "Moving package failed" |
91 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-kde-java-${BINVERSION}.tbz2 || die "Moving package failed" |
| 63 | |
92 | |
| 64 | # gnome flavor |
93 | # gnome flavor |
| 65 | echo "Gnome" |
94 | echo "Gnome" |
| 66 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_NJ} ${IUSES_G} ${IUSES_NK}" > /etc/portage/package.use/libreo |
95 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_NJ} ${IUSES_G} ${IUSES_NK}" > ${USEFILE} |
| 67 | emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
96 | CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
| 68 | quickpkg libreoffice --include-config=y |
97 | quickpkg libreoffice --include-config=y |
| 69 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-gnome-${BINVERSION}.tbz2 || die "Moving package failed" |
98 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-gnome-${BINVERSION}.tbz2 || die "Moving package failed" |
| 70 | |
99 | |
| 71 | echo "Gnome -java" |
100 | echo "Gnome -java" |
| 72 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_J} ${IUSES_G} ${IUSES_NK}" > /etc/portage/package.use/libreo |
101 | echo "app-office/libreoffice ${IUSES_BASE} ${IUSES_J} ${IUSES_G} ${IUSES_NK}" > ${USEFILE} |
| 73 | emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
102 | CFLAGS="${MYFLAGS}" CXXFLAGS="${MYFLAGS}" emerge ${OPTS} =libreoffice-${VERSION} || die "emerge failed" |
| 74 | quickpkg libreoffice --include-config=y |
103 | quickpkg libreoffice --include-config=y |
| 75 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-gnome-java-${BINVERSION}.tbz2 || die "Moving package failed" |
104 | mv ${MYPKGDIR}/app-office/libreoffice-${VERSION}.tbz2 ./libreoffice-gnome-java-${BINVERSION}.tbz2 || die "Moving package failed" |
| 76 | |
105 | |
| 77 | |
106 | |
| 78 | for name in ./libreoffice-*-${BINVERSION}.tbz2 ; do |
107 | for name in ./libreoffice-*-${BINVERSION}.tbz2 ; do |
| … | |
… | |
| 89 | echo "Moving debug info" |
118 | echo "Moving debug info" |
| 90 | mkdir -vp ../p2/usr/lib |
119 | mkdir -vp ../p2/usr/lib |
| 91 | mv -v usr/lib/debug ../p2/usr/lib/ |
120 | mv -v usr/lib/debug ../p2/usr/lib/ |
| 92 | |
121 | |
| 93 | echo "Re-packing program" |
122 | echo "Re-packing program" |
| 94 | tar cfvJ ../../bin-$BN.tar.xz --owner root --group root ./* |
123 | tar cfvJ ../../$ARCH-bin-$BN.tar.xz --owner root --group root ./* |
| 95 | |
124 | |
| 96 | echo "Re-packing debug info" |
125 | echo "Re-packing debug info" |
| 97 | cd ../p2 |
126 | cd ../p2 |
| 98 | tar cfvJ ../../debug-$BN.tar.xz --owner root --group root ./* |
127 | tar cfvJ ../../$ARCH-debug-$BN.tar.xz --owner root --group root ./* |
| 99 | |
128 | |
| 100 | echo "Removing unpacked files" |
129 | echo "Removing unpacked files" |
| 101 | cd ../.. |
130 | cd ../.. |
| 102 | rm -rf tmp.lo |
131 | rm -rf tmp.lo |
| 103 | |
132 | |
| 104 | echo "Done with $BN.tbz2" |
133 | echo "Done with $BN.tbz2" |
| 105 | |
134 | |
| 106 | done |
135 | done |
|
|
136 | |
|
|
137 | rm -fr ${USEFILE} |
|
|
138 | |
|
|
139 | rm -fr libreoffice*${VERSION}*.tbz2 |