# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/app-office/libreoffice/libreoffice-3.3.1.ebuild,v 1.9 2011/03/27 09:48:47 fauli Exp $ EAPI="3" WANT_AUTOMAKE="1.9" KDE_REQUIRED="optional" CMAKE_REQUIRED="never" PYTHON_DEPEND="2" PYTHON_USE_WITH="threads" inherit autotools bash-completion check-reqs db-use eutils fdo-mime flag-o-matic gnome2-utils java-pkg-opt-2 kde4-base multilib pax-utils python toolchain-funcs IUSE="binfilter cups dbus debug eds gnome gstreamer gtk kde ldap nsplugin odk opengl templates" MY_PV=3.3.1.2 MY_P="${PN}-build-${MY_PV}" PATCHLEVEL=OOO320 SRC=OOo_${PV}_src DEVPATH="http://download.documentfoundation.org/libreoffice/src" S="${WORKDIR}/${MY_P}" CONFFILE=${S}/distro-configs/Gentoo.conf.in BASIS=basis3.3 DESCRIPTION="LibreOffice, a full office productivity suite." SRC_URI="${DEVPATH}/${PN}-build-${MY_PV}.tar.gz templates? ( http://extensions.services.openoffice.org/files/273/0/Sun_ODF_Template_Pack_en-US.oxt http://extensions.services.openoffice.org/files/295/1/Sun_ODF_Template_Pack_de.oxt http://extensions.services.openoffice.org/files/299/0/Sun_ODF_Template_Pack_it.oxt http://extensions.services.openoffice.org/files/297/0/Sun_ODF_Template_Pack_fr.oxt http://extensions.services.openoffice.org/files/301/1/Sun_ODF_Template_Pack_es.oxt ftp://ftp.devall.hu/kami/go-oo//Sun_ODF_Template_Pack_hu.oxt ) odk? ( java? ( http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll ) ) http://download.go-oo.org/SRC680/extras-3.1.tar.bz2 http://download.go-oo.org/SRC680/biblio.tar.bz2" # Shiny split sources with so many packages... MODULES="artwork base bootstrap calc components extensions extras filters help impress libs-core libs-extern libs-extern-sys libs-gui postprocess sdk testing ure writer l10n" for mod in ${MODULES}; do SRC_URI+=" ${DEVPATH}/${PN}-${mod}-${MY_PV}.tar.bz2" done # addons ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/128cfc86ed5953e57fe0f5ae98b62c2e-libtextcat-2.2.tar.gz" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/1756c4fa6c616ae15973c104cd8cb256-Adobe-Core35_AFMs-314.tar.gz" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/18f577b374d60b3c760a3a3350407632-STLport-4.5.tar.gz" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/1f24ab1d39f4a51faf22244c94a6203f-xmlsec1-1.2.14.tar.gz" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/24be19595acad0a2cae931af77a0148a-LICENSE_source-9.0.0.7-bj.html" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/26b3e95ddf3d9c077c480ea45874b3b8-lp_solve_5.5.tar.gz" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/284e768eeda0e2898b0d5bf7e26a016e-raptor-1.4.18.tar.gz" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/2a177023f9ea8ec8bd00837605c5df1b-jakarta-tomcat-5.0.30-src.tar.gz" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/ca4870d899fd7e943ffc310a5421ad4d-liberation-fonts-ttf-1.06.0.20100721.tar.gz" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/35efabc239af896dfb79be7ebdd6e6b9-gentiumbasic-fonts-1.10.zip" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/377a60170e5185eb63d3ed2fae98e621-README_silgraphite-2.3.1.txt" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/39bb3fcea1514f1369fcfc87542390fd-sacjava-1.3.zip" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/48470d662650c3c074e1c3fabbc67bbd-README_source-9.0.0.7-bj.txt" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/4a660ce8466c9df01f19036435425c3a-glibc-2.1.3-stub.tar.gz" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/599dc4cc65a07ee868cf92a667a913d2-xpdf-3.02.tar.gz" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/5aba06ede2daa9f2c11892fbd7bc3057-libserializer.zip" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/7376930b0d3f3d77a685d94c4a3acda8-STLport-4.5-0119.tar.gz" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/79600e696a98ff95c2eba976f7a8dfbb-liblayout.zip" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/8294d6c42e3553229af9934c5c0ed997-stax-api-1.0-2-sources.jar" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/8ea307d71d11140574bfb9fcc2487e33-libbase.zip" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/a06a496d7a43cbdc35e69dbe678efadb-libloader.zip" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/a4d9b30810a434a3ed39fc0003bbd637-LICENSE_stax-api-1.0-2-sources.html" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/ada24d37d8d638b3d8a9985e80bc2978-source-9.0.0.7-bj.zip" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/bc702168a2af16869201dbe91e46ae48-LICENSE_Python-2.6.1" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/c441926f3a552ed3e5b274b62e86af16-STLport-4.0.tar.gz" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/d0b5af6e408b8d2958f3d83b5244f5e8-hyphen-2.4.tar.gz" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/d1a3205871c3c52e8a50c9f18510ae12-libformula.zip" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/d4c4d91ab3a8e52a2e69d48d34ef4df4-core.zip" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/dbb3757275dc5cc80820c0b4dd24ed95-librepository.zip" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/e0707ff896045731ff99e99799606441-README_db-4.7.25.NC-custom.txt" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/f3e2febd267c8e4b13df00dac211dd6d-flute.zip" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/f7925ba8491fe570e5164d2c72791358-libfonts.zip" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/fb7ba5c2182be4e73748859967455455-README_stax-api-1.0-2-sources.txt" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/fdb27bfe2dbe2e7b57ae194d9bf36bab-SampleICC-1.3.2.tar.gz" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/37282537d0ed1a087b1c8f050dc812d9-dejavu-fonts-ttf-2.32.zip" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/067201ea8b126597670b5eff72e1f66c-mythes-1.2.0.tar.gz" ADDONS_SRC+=" http://hg.services.openoffice.org/binaries/cf8a6967f7de535ae257fa411c98eb88-mdds_0.3.0.tar.bz2" ADDONS_SRC+=" http://download.go-oo.org/src/47e1edaa44269bc537ae8cabebb0f638-JLanguageTool-1.0.0.tar.bz2" ADDONS_SRC+=" http://download.go-oo.org/src/90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2" ADDONS_SRC+=" http://download.go-oo.org/src/0f63ee487fda8f21fafa767b3c447ac9-ixion-0.2.0.tar.gz" ADDONS_SRC+=" http://download.go-oo.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll" ADDONS_SRC+=" http://download.go-oo.org/src/5ff846847dab351604ad859e2fd4ed3c-libwpd-0.9.1.tar.bz2" ADDONS_SRC+=" http://download.go-oo.org/src/5ba6a61a2f66dfd5fee8cdd4cd262a37-libwpg-0.2.0.tar.bz2" ADDONS_SRC+=" http://download.go-oo.org/src/9e436bff44c60dc8b97cba0c7fc11a5c-libwps-0.2.0.tar.bz2" ADDONS_SRC+=" http://www.numbertext.org/linux/881af2b7dca9b8259abbca00bbbc004d-LinLibertineG-20110101.zip" SRC_URI+=" ${ADDONS_SRC}" LANGS1="af ar as ast be_BY bg bn bo br brx bs ca ca_XV cs cy da de dgo dz el en en_GB en_ZA eo es et eu fa fi fr ga gd gl gu he hi hr hu id is it ja ka kk km kn ko kok ks ku ky lo lt lv mai mk ml mn mni mr ms my nb ne nl nn nr ns oc om or pa_IN pap pl ps pt pt_BR ro ru rw sa_IN sat sd sh si sk sl sq sr ss st sv sw_TZ ta te tg th ti tn tr ts ug uk uz ve vi xh zh_CN zh_TW zu" LANGS="${LANGS1} en en_US" for X in ${LANGS} ; do IUSE+=" linguas_${X}" done # intersection of available linguas and app-dicts/myspell-* dictionaries SPELL_DIRS="af bg ca cs cy da de el en eo es et fr ga gl he hr hu it ku lt mk nb nl nn pl pt ru sk sl sv tn zu" SPELL_DIRS_DEPEND="" for X in ${SPELL_DIRS} ; do SPELL_DIRS_DEPEND+=" linguas_${X}? ( app-dicts/myspell-${X} )" done HOMEPAGE="http://www.libreoffice.org" LICENSE="LGPL-3" SLOT="0" KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux" COMMON_DEPEND="!app-office/libreoffice-bin !app-office/openoffice-bin !app-office/openoffice x11-libs/libXaw x11-libs/libXinerama x11-libs/libXrandr >=dev-lang/perl-5.0 >=dev-libs/glib-2.18 dbus? ( >=dev-libs/dbus-glib-0.71 ) gnome? ( >=x11-libs/gtk+-2.10:2 gnome-base/gconf:2 >=x11-libs/cairo-1.0.2 ) gtk? ( >=x11-libs/gtk+-2.10:2 >=x11-libs/cairo-1.0.2 ) eds? ( >=gnome-extra/evolution-data-server-1.2 ) gstreamer? ( >=media-libs/gstreamer-0.10 >=media-libs/gst-plugins-base-0.10 ) java? ( >=dev-java/bsh-2.0_beta4 dev-java/lucene:2.3 dev-java/lucene-analyzers:2.3 ) nsplugin? ( net-libs/xulrunner:1.9 >=dev-libs/nspr-4.6.6 >=dev-libs/nss-3.11-r1 ) opengl? ( virtual/opengl ) >=net-libs/neon-0.24.7 >=dev-libs/openssl-0.9.8g >=media-libs/freetype-2.1.10-r2 >=media-libs/fontconfig-2.3.0 cups? ( net-print/cups ) dev-libs/redland[ssl] virtual/jpeg media-libs/libpng app-arch/zip app-arch/unzip >=app-text/hunspell-1.1.4-r1 dev-libs/expat >=dev-libs/icu-4.0 >=sys-libs/db-4.3 >=media-libs/vigra-1.4 >=app-text/poppler-0.12.3-r3[xpdf-headers]" RDEPEND="java? ( >=virtual/jre-1.5 ) ${SPELL_DIRS_DEPEND} ${COMMON_DEPEND}" DEPEND="${COMMON_DEPEND} x11-libs/libXrender x11-libs/libXtst x11-proto/printproto x11-proto/xextproto x11-proto/xproto x11-proto/xineramaproto >=sys-apps/findutils-4.1.20-r1 dev-perl/Archive-Zip dev-util/pkgconfig dev-util/intltool >=dev-libs/boost-1.36 sys-devel/flex sys-devel/bison dev-libs/libxslt >=dev-libs/libxml2-2.0 >=dev-util/gperf-3 >=net-misc/curl-7.12 sys-libs/zlib sys-apps/coreutils dev-util/cppunit java? ( || ( =virtual/jdk-1.6* =virtual/jdk-1.5* ) >=dev-java/ant-core-1.7 ) ldap? ( net-nds/openldap )" pkg_setup() { java-pkg-opt-2_pkg_setup # sys-libs/db version used local db_ver=$(db_findver '>=sys-libs/db-4.3') kde4-base_pkg_setup python_set_active_version 2 python_pkg_setup } src_unpack() { unpack ${MY_P}.tar.gz } src_prepare() { ewarn ewarn " It is important to note that LibreOffice is a very fragile " ewarn " build when it comes to CFLAGS. A number of flags have already " ewarn " been filtered out. If you experience difficulty merging this " ewarn " package and use aggressive CFLAGS, lower the CFLAGS and try to " ewarn " merge again. " ewarn ewarn " Also if you experience a build break, please make sure to retry " ewarn " with MAKEOPTS="-j1" before filing a bug. " ewarn # Check if we have enough RAM and free diskspace to build this beast CHECKREQS_MEMORY="512" use debug && CHECKREQS_DISK_BUILD="12288" || CHECKREQS_DISK_BUILD="7144" check_reqs strip-linguas ${LANGS} # en_US is built by default, upstream needs us to use --with-lang="" in this case though, so strip it out export LINGUAS_TEMP=$(echo ${LINGUAS} | sed -e 's/\ben_US\b//g;s/en//g;s/_GB/en_GB/g;s/_ZA/en_ZA/g') if [[ -z "${LINGUAS_TEMP}" ]] || [[ ${LINGUAS_TEMP} == " " ]]; then export LINGUAS_OOO="" else # always build en-US as a fallback (needed for broken code / translations) export LINGUAS_OOO="en-US ${LINGUAS_TEMP//_/-}" fi if use !java; then ewarn " You are building with java-support disabled, this results in some " ewarn " of the LibreOffice functionality being disabled. " ewarn " If something you need does not work for you, rebuild with " ewarn " java in your USE-flags. " ewarn fi if use !gtk && use !gnome; then ewarn " If you want the LibreOffice systray quickstarter to work " ewarn " activate either the 'gtk' or 'gnome' use flags. " ewarn fi if is-flagq -ffast-math ; then eerror " You are using -ffast-math, which is known to cause problems. " eerror " Please remove it from your CFLAGS, using this globally causes " eerror " all sorts of problems. " eerror " After that you will also have to - at least - rebuild python otherwise " eerror " the LibreOffice build will break. " die fi #Some fixes for our patchset cd "${S}" epatch "${FILESDIR}/gentoo-${PV}.diff" epatch "${FILESDIR}/gentoo-pythonpath.diff" epatch "${FILESDIR}/env_log.diff" epatch "${FILESDIR}/fix-ooo-collision.diff" epatch "${FILESDIR}/scrap-pixmap-links.diff" epatch "${FILESDIR}/enable-startup-notification.diff" use java && cp -f "${FILESDIR}/sdext-presenter.diff" "${S}/patches/hotfixes" cp -f "${FILESDIR}/libreoffice-3.3.0_libxmlsec_fix_extern_c.diff" "${S}/patches/hotfixes" cp -f "${FILESDIR}/libreoffice-3.3-libpng-1.5.diff" "${S}/patches/hotfixes" cp -f "${FILESDIR}/libreoffice-3.3.1-neon_remove_SSPI_support.diff" "${S}/patches/hotfixes" #Use flag checks if use java ; then echo "--with-ant-home=${ANT_HOME}" >> ${CONFFILE} echo "--with-jdk-home=$(java-config --jdk-home 2>/dev/null)" >> ${CONFFILE} echo "--with-java-target-version=$(java-pkg_get-target)" >> ${CONFFILE} echo "--with-jvm-path=/usr/$(get_libdir)/" >> ${CONFFILE} echo "--with-system-beanshell" >> ${CONFFILE} echo "--with-system-lucene" >> ${CONFFILE} echo "--with-beanshell-jar=$(java-pkg_getjar bsh bsh.jar)" >> ${CONFFILE} echo "--with-lucene-core-jar=$(java-pkg_getjar lucene-2.3 lucene-core.jar)" >> ${CONFFILE} echo "--with-lucene-analyzers-jar=$(java-pkg_getjar lucene-analyzers-2.3 lucene-analyzers.jar)" >> ${CONFFILE} fi echo $(use_enable nsplugin mozilla) >> ${CONFFILE} echo $(use_with nsplugin system-mozilla libxul) >> ${CONFFILE} echo $(use_enable binfilter) >> ${CONFFILE} echo $(use_enable cups) >> ${CONFFILE} echo $(use_enable dbus) >> ${CONFFILE} echo $(use_enable eds evolution2) >> ${CONFFILE} echo $(use_enable gnome gconf) >> ${CONFFILE} echo $(use_enable gnome gio) >> ${CONFFILE} echo "--disable-gnome-vfs" >> ${CONFFILE} echo $(use_enable gnome lockdown) >> ${CONFFILE} echo $(use_enable gstreamer) >> ${CONFFILE} echo $(use_enable gtk systray) >> ${CONFFILE} echo $(use_enable ldap) >> ${CONFFILE} echo $(use_enable opengl) >> ${CONFFILE} echo $(use_with ldap openldap) >> ${CONFFILE} echo $(use_enable debug crashdump) >> ${CONFFILE} echo $(use_enable debug strip-solver) >> ${CONFFILE} # Extension stuff, disabled when building without java for bug #352812 if use java; then echo "--with-extension-integration" >> ${CONFFILE} echo "--enable-pdfimport" >> ${CONFFILE} echo "--enable-minimizer" >> ${CONFFILE} echo "--enable-presenter-console" >> ${CONFFILE} echo "--enable-presenter-extra-ui" >> ${CONFFILE} #still necessary echo "--enable-presenter-screen" >> ${CONFFILE} fi # Misc stuff echo "--disable-graphite" >> ${CONFFILE} echo "--with-system-cppunit" >> ${CONFFILE} echo "--with-system-openssl" >> ${CONFFILE} echo "--with-system-redland" >> ${CONFFILE} echo "--without-junit" >> ${CONFFILE} #fix desktop files bug #352955 sed -i 's/Exec=oo/Exec=lo/g' "${S}"/desktop/*.desktop.in.in || die "Could not fix desktop files" # needed for sun-templates patch eautoreconf } src_configure() { use kde && export KDE4DIR="${KDEDIR}" use kde && export QT4LIB="/usr/$(get_libdir)/qt4" # Use multiprocessing by default now, it gets tested by upstream export JOBS=$(echo "${MAKEOPTS}" | sed -e "s/.*-j\([0-9]\+\).*/\1/") # Compile problems with these ... filter-flags "-funroll-loops" filter-flags "-fprefetch-loop-arrays" filter-flags "-fno-default-inline" filter-flags "-ftracer" filter-flags "-fforce-addr" filter-flags "-O[s2-9]" if [[ $(gcc-major-version) -lt 4 ]]; then filter-flags "-fstack-protector" filter-flags "-fstack-protector-all" replace-flags "-fomit-frame-pointer" "-momit-leaf-frame-pointer" fi # Build with NVidia cards breaks otherwise use opengl && append-flags "-DGL_GLEXT_PROTOTYPES" # Now for our optimization flags ... export ARCH_FLAGS="${CXXFLAGS}" use debug || export LINKFLAGSOPTIMIZE="${LDFLAGS}" # Make sure gnome-users get gtk-support local GTKFLAG="--disable-gtk --disable-cairo --without-system-cairo" { use gtk || use gnome; } && GTKFLAG="--enable-gtk --enable-cairo --with-system-cairo" cd "${S}" ./configure --with-distro="Gentoo" \ --prefix="${EPREFIX}"/usr \ --sysconfdir="${EPREFIX}"/etc \ --with-arch="${ARCH}" \ --with-srcdir="${DISTDIR}" \ --with-lang="${LINGUAS_OOO}" \ --with-num-cpus="${JOBS}" \ --without-binsuffix \ --with-installed-ooo-dirname="libreoffice" \ --with-drink="True Blood" \ --without-git \ --with-split \ ${GTKFLAG} \ --disable-mono \ --disable-kde \ $(use_enable kde kde4) \ $(use_enable !debug strip) \ $(use_enable odk) \ $(use_with java) \ $(use_with templates sun-templates) \ --disable-access \ --disable-post-install-scripts \ $(use_enable java extensions) \ --without-system-libwpd \ --without-system-libwpg \ --mandir="${EPREFIX}"/usr/share/man \ --libdir="${EPREFIX}"/usr/$(get_libdir) \ || die "Configuration failed!" } src_compile() { make || die "Build failed" } src_install() { export PYTHONPATH="" einfo "Preparing Installation" make DESTDIR="${D}" install || die "Installation failed!" # Fix the permissions for security reasons chown -RP root:0 "${ED}" # record java libraries if use java; then java-pkg_regjar "${ED}"/usr/$(get_libdir)/${PN}/${BASIS}/program/classes/*.jar java-pkg_regjar "${ED}"/usr/$(get_libdir)/${PN}/ure/share/java/*.jar fi # Upstream places the bash-completion module in /etc. Gentoo places them in # /usr/share/bash-completion. bug 226061 dobashcompletion "${ED}"/etc/bash_completion.d/libreoffice.sh libreoffice rm -rf "${ED}"/etc/bash_completion.d/ || die "rm failed" } pkg_preinst() { { use gtk || use gnome; } && gnome2_icon_savelist } pkg_postinst() { # Cache updates fdo-mime_desktop_database_update fdo-mime_mime_database_update { use gtk || use gnome; } && gnome2_icon_cache_update BASHCOMPLETION_NAME=libreoffice && bash-completion_pkg_postinst pax-mark -m "${EPREFIX}"/usr/$(get_libdir)/libreoffice/program/soffice.bin # Add available & useful jars to LibreOffice classpath use java && "${EPREFIX}"/usr/$(get_libdir)/${PN}/${BASIS}/program/java-set-classpath $(java-config --classpath=jdbc-mysql 2>/dev/null) >/dev/null kde4-base_pkg_postinst } pkg_postrm() { fdo-mime_desktop_database_update { use gtk || use gnome; } && gnome2_icon_cache_update }