# Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/app-office/libreoffice/libreoffice-3.2.1.ebuild,v 1.4 2010/09/17 10:49:59 scarabeus Exp $ WANT_AUTOMAKE="1.9" EAPI="2" 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 java-pkg-opt-2 kde4-base multilib python toolchain-funcs IUSE="binfilter junit cups dbus debug eds gnome gstreamer gtk kde ldap nsplugin odk opengl pam templates" MY_PV=3.2.99.1 PATCHLEVEL=OOO320 SRC=libreoffice MST=OOO320_m19 DEVPATH=http://download.documentfoundation.org/libreoffice/src/${SRC} S=${WORKDIR}/libre S_OLD=${WORKDIR}/libreoffice-build-${MY_PV} CONFFILE=${S}/distro-configs/Gentoo.conf.in BASIS=basis3.2 DESCRIPTION="libreoffice, a full office productivity suite." SRC_URI="${DEVPATH}-artwork-${PV}.tar.bz2 ${DEVPATH}-base-${PV}.tar.bz2 ${DEVPATH}-bootstrap-${PV}.tar.bz2 ${DEVPATH}-calc-${PV}.tar.bz2 ${DEVPATH}-components-${PV}.tar.bz2 ${DEVPATH}-extensions-${PV}.tar.bz2 ${DEVPATH}-filters-${PV}.tar.bz2 ${DEVPATH}-help-${PV}.tar.bz2 ${DEVPATH}-impress-${PV}.tar.bz2 ${DEVPATH}-l10n-${PV}.tar.bz2 ${DEVPATH}-libs-core-${PV}.tar.bz2 ${DEVPATH}-libs-extern-${PV}.tar.bz2 ${DEVPATH}-libs-extern-sys-${PV}.tar.bz2 ${DEVPATH}-libs-gui-${PV}.tar.bz2 ${DEVPATH}-postprocess-${PV}.tar.bz2 ${DEVPATH}-sdk-${PV}.tar.bz2 ${DEVPATH}-testing-${PV}.tar.bz2 ${DEVPATH}-ure-${PV}.tar.bz2 ${DEVPATH}-writer-${PV}.tar.bz2 ${DEVPATH}-extras-${PV}.tar.bz2 binfilter? ( ${DEVPATH}-extras-${PV}.tar.bz2 ) 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 ) ${DEVPATH}-build-${MY_PV}.tar.gz odk? ( java? ( http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll ) ) http://download.go-oo.org/SRC680/extras-3.tar.bz2 http://download.go-oo.org/SRC680/biblio.tar.bz2 http://download.go-oo.org/SRC680/lp_solve_5.5.0.12_source.tar.gz http://download.go-oo.org/DEV300/scsolver.2008-10-30.tar.bz2 http://download.go-oo.org/DEV300/ooo_oxygen_images-2009-06-17.tar.gz http://download.go-oo.org/SRC680/libwps-0.1.2.tar.gz http://multidimalgorithm.googlecode.com/files/mdds_0.3.0.tar.bz2" LANGS1="af ar as_IN be_BY bg bn br brx bs ca cs cy da de dgo dz el en_GB en_ZA eo es et eu fa fi fr ga gl gu he hi_IN hr hu id it ja ka kk km kn_IN ko kok ks ku lt mai mk ml_IN mn mni mr_IN nb ne nl nn nr ns oc or_IN pa_IN pl pt pt_BR ru rw sa_IN sat sd sh sk sl sr ss st sv sw_TZ ta ta_IN te_IN tg th ti_ER tn tr ts uk ur_IN uz ve vi xh zh_CN zh_TW zu" LANGS="${LANGS1} en en_US" for X in ${LANGS} ; do IUSE="${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="${SPELL_DIRS_DEPEND} linguas_${X}? ( app-dicts/myspell-${X} )" done HOMEPAGE="http://go-oo.org" LICENSE="LGPL-3" SLOT="0" KEYWORDS="~amd64 ~ppc ~sparc ~x86" COMMON_DEPEND="!app-office/libreoffice-bin 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 >=gnome-base/gconf-2.0 >=gnome-base/gnome-vfs-2.6 >=x11-libs/cairo-1.0.2 ) gtk? ( >=x11-libs/gtk+-2.10 >=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 dev-java/rhino:1.5 ) 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 ) media-libs/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 >=app-text/libwpd-0.8.8 >=media-libs/vigra-1.4 >=app-text/poppler-0.12.3-r3[xpdf-headers] >=media-libs/libwpg-0.1.3" 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 pam? ( sys-libs/pam sys-apps/shadow[pam] ) java? ( || ( =virtual/jdk-1.6* =virtual/jdk-1.5* ) junit? ( dev-java/junit:4 ) >=dev-java/ant-core-1.7 ) ldap? ( net-nds/openldap )" PROVIDE="virtual/ooo" pkg_setup() { 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="6144" 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 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 libreoffice-build-${MY_PV}.tar.gz } src_prepare() { # Hackish workaround for overlong path problem, see bug #130837 mv "${S_OLD}" "${S}" || die #Some fixes for our patchset cd "${S}" epatch "${FILESDIR}/gentoo-${PV}.diff" epatch "${FILESDIR}/gentoo-pythonpath.diff" epatch "${FILESDIR}/ooo-env_log.diff" cp -f "${FILESDIR}/qt-use-native-backend.diff" "${S}/patches/hotfixes" || die #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-system-rhino" >> ${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} echo "--with-rhino-jar=$(java-pkg_getjar rhino-1.5 js.jar)" >> ${CONFFILE} # junit:4 use junit && echo "--with-junit=$(java-pkg_getjar junit-4 junit.jar)" >> ${CONFFILE} fi # junit:4 use !junit && echo "--without-junit" >> ${CONFFILE} 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 gnome-vfs) >> ${CONFFILE} #gio support still gives crashes, see i#108993 echo "--disable-gio" >> ${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 echo "--with-extension-integration" >> ${CONFFILE} echo "--enable-minimizer" >> ${CONFFILE} echo "--enable-pdfimport" >> ${CONFFILE} echo "--enable-presenter-console" >> ${CONFFILE} echo "--without-writer2latex" >> ${CONFFILE} # Use splash screen without Sun logo #echo "--with-intro-bitmaps=\\\"${S}/build/${MST}/ooo_custom_images/nologo/introabout/intro.png\\\"" >> ${CONFFILE} # Upstream this, disabled for now #i108911 #echo "--with-system-redland" >> ${CONFFILE} # 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" \ --with-arch="${ARCH}" \ --with-srcdir="${DISTDIR}" \ --with-lang="${LINGUAS_OOO}" \ --with-num-cpus="${JOBS}" \ --without-binsuffix \ --with-installed-ooo-dirname="libreoffice" \ --with-tag="${MST}" \ --with-drink="True Blood" \ --without-git \ --without-split \ ${GTKFLAG} \ --disable-mono \ --disable-kde \ $(use_enable kde kde4) \ $(use_enable !debug strip) \ $(use_enable odk) \ $(use_enable pam) \ $(use_with java) \ $(use_with templates sun-templates) \ --disable-access \ --disable-post-install-scripts \ --enable-extensions \ --with-split \ --with-system-libwpd \ --with-system-libwpg \ --mandir=/usr/share/man \ --libdir=/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 "${D}" # record java libraries if use java; then java-pkg_regjar "${D}"/usr/$(get_libdir)/libreoffice/${BASIS}/program/classes/*.jar java-pkg_regjar "${D}"/usr/$(get_libdir)/libreoffice/ure/share/java/*.jar fi # Upstream places the bash-completion module in /etc. Gentoo places them in # /usr/share/bash-completion. bug 226061 dobashcompletion "${D}"/etc/bash_completion.d/ooffice.sh ooffice rm -rf "${D}"/etc/bash_completion.d/ || die "rm failed" } pkg_postinst() { fdo-mime_desktop_database_update fdo-mime_mime_database_update BASHCOMPLETION_NAME=ooffice && bash-completion_pkg_postinst ( [[ -x /sbin/chpax ]] || [[ -x /sbin/paxctl ]] ) && [[ -e /usr/$(get_libdir)/libreoffice/program/soffice.bin ]] && scanelf -Xzm /usr/$(get_libdir)/libreoffice/program/soffice.bin # Add available & useful jars to libreoffice classpath use java && /usr/$(get_libdir)/libreoffice/${BASIS}/program/java-set-classpath $(java-config --classpath=jdbc-mysql 2>/dev/null) >/dev/null elog " Some aditional functionality can be installed via Extension Manager: " elog " *) PDF Import " elog " *) Presentation Console " elog " *) Presentation Minimizer " elog elog " Please use the packages provided in " elog " /usr/$(get_libdir)/libreoffice/share/extension/install/ " elog " instead of those from the SUN extension site. " elog kde4-base_pkg_postinst }