# Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI=6 PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) PYTHON_REQ_USE="threads,xml" MY_PV="${PV/_alpha/.alpha}" MY_PV="${MY_PV/_beta/.beta}" # experimental ; release ; old # Usually the tarballs are moved a lot so this should make everyone happy. DEV_URI=" https://dev-builds.libreoffice.org/pre-releases/src https://download.documentfoundation.org/libreoffice/src/${MY_PV:0:5}/ https://downloadarchive.documentfoundation.org/libreoffice/old/${MY_PV}/src " ADDONS_URI="https://dev-www.libreoffice.org/src/" BRANDING="${PN}-branding-gentoo-0.8.tar.xz" PATCHSET="${PN}-6.0.5.2-patchset-01.tar.xz" [[ ${MY_PV} == *9999* ]] && SCM_ECLASS="git-r3" inherit autotools bash-completion-r1 check-reqs eapi7-ver flag-o-matic gnome2-utils java-pkg-opt-2 multiprocessing pax-utils python-single-r1 qmake-utils toolchain-funcs xdg-utils ${SCM_ECLASS} unset SCM_ECLASS DESCRIPTION="A full office productivity suite" HOMEPAGE="https://www.libreoffice.org" SRC_URI="branding? ( https://dev.gentoo.org/~dilfridge/distfiles/${BRANDING} )" [[ -n ${PATCHSET} ]] && SRC_URI+=" https://dev.gentoo.org/~asturm/distfiles/${PATCHSET}" # Split modules following git/tarballs; Core MUST be first! # Help is used for the image generator # Only release has the tarballs if [[ ${MY_PV} != *9999* ]]; then for i in ${DEV_URI}; do SRC_URI+=" ${i}/${PN}-${MY_PV}.tar.xz" SRC_URI+=" ${i}/${PN}-help-${MY_PV}.tar.xz" done unset i fi unset DEV_URI # Really required addons # These are bundles that can't be removed for now due to huge patchsets. # If you want them gone, patches are welcome. ADDONS_SRC=( "java? ( ${ADDONS_URI}/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip )" # no release for 8 years, should we package it? "libreoffice_extensions_wiki-publisher? ( ${ADDONS_URI}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip )" # Does not build with 1.6 rhino at all "libreoffice_extensions_scripting-javascript? ( ${ADDONS_URI}/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip )" # requirement of rhino "libreoffice_extensions_scripting-javascript? ( ${ADDONS_URI}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip )" # not packageable "odk? ( http://download.go-oo.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll )" ) SRC_URI+=" ${ADDONS_SRC[*]}" unset ADDONS_URI unset ADDONS_SRC # Extensions that need extra work: LO_EXTS="nlpsolver scripting-beanshell scripting-javascript wiki-publisher" IUSE="bluetooth +branding coinmp +cups dbus debug eds firebird googledrive gstreamer +gtk gtk2 jemalloc kde mysql odk pdfimport postgres test vlc $(printf 'libreoffice_extensions_%s ' ${LO_EXTS})" REQUIRED_USE="${PYTHON_REQUIRED_USE} bluetooth? ( dbus ) kde? ( gtk ) libreoffice_extensions_nlpsolver? ( java ) libreoffice_extensions_scripting-beanshell? ( java ) libreoffice_extensions_scripting-javascript? ( java ) libreoffice_extensions_wiki-publisher? ( java ) " LICENSE="|| ( LGPL-3 MPL-1.1 )" SLOT="0" [[ ${MY_PV} == *9999* ]] || \ KEYWORDS="~amd64 ~arm ~arm64 ~x86 ~amd64-linux ~x86-linux" COMMON_DEPEND="${PYTHON_DEPS} app-arch/unzip app-arch/zip app-crypt/gpgme[cxx] app-text/hunspell:= >=app-text/libabw-0.1.0 >=app-text/libebook-0.1 app-text/libepubgen >=app-text/libetonyek-0.1 app-text/libexttextcat app-text/liblangtag >=app-text/libmspub-0.1.0 >=app-text/libmwaw-0.3.1 >=app-text/libodfgen-0.1.0 app-text/libqxp app-text/libstaroffice app-text/libwpd:0.10[tools] app-text/libwpg:0.3 >=app-text/libwps-0.4 app-text/mythes >=dev-cpp/clucene-2.3.3.4-r2 =dev-cpp/libcmis-0.5* dev-db/unixODBC dev-lang/perl dev-libs/boost:=[nls] dev-libs/expat dev-libs/hyphen dev-libs/icu:= dev-libs/libassuan dev-libs/libgpg-error >=dev-libs/liborcus-0.13.3 dev-libs/librevenge dev-libs/libxml2 dev-libs/libxslt dev-libs/nspr dev-libs/nss >=dev-libs/redland-1.0.16 >=dev-libs/xmlsec-1.2.24[nss] media-gfx/graphite2 media-libs/fontconfig media-libs/freetype:2 >=media-libs/harfbuzz-0.9.42:=[graphite,icu] media-libs/lcms:2 >=media-libs/libcdr-0.1.0 >=media-libs/libepoxy-1.3.1[X] >=media-libs/libfreehand-0.1.0 media-libs/libpagemaker >=media-libs/libpng-1.4:0= >=media-libs/libvisio-0.1.0 media-libs/libzmf net-libs/neon net-misc/curl net-nds/openldap sci-mathematics/lpsolve sys-libs/zlib:= virtual/glu virtual/jpeg:0 virtual/opengl x11-libs/cairo[X] x11-libs/libXinerama x11-libs/libXrandr x11-libs/libXrender bluetooth? ( net-wireless/bluez ) coinmp? ( sci-libs/coinor-mp ) cups? ( net-print/cups ) dbus? ( dev-libs/dbus-glib ) eds? ( dev-libs/glib:2 gnome-base/dconf gnome-extra/evolution-data-server ) firebird? ( >=dev-db/firebird-3.0.2.32703.0-r1[server] ) gstreamer? ( media-libs/gstreamer:1.0 media-libs/gst-plugins-base:1.0 ) gtk? ( dev-libs/glib:2 dev-libs/gobject-introspection gnome-base/dconf media-libs/mesa[egl] x11-libs/gtk+:3 x11-libs/pango ) gtk2? ( x11-libs/gdk-pixbuf >=x11-libs/gtk+-2.24:2 x11-libs/pango ) jemalloc? ( dev-libs/jemalloc ) kde? ( dev-qt/qtcore:5 dev-qt/qtgui:5 dev-qt/qtx11extras:5 dev-qt/qtwidgets:5 kde-frameworks/kconfig:5 kde-frameworks/kcoreaddons:5 kde-frameworks/ki18n:5 kde-frameworks/kio:5 kde-frameworks/kwindowsystem:5 ) libreoffice_extensions_scripting-beanshell? ( dev-java/bsh ) libreoffice_extensions_scripting-javascript? ( dev-java/rhino:1.6 ) mysql? ( dev-db/mysql-connector-c++ ) pdfimport? ( app-text/poppler:=[cxx] ) postgres? ( >=dev-db/postgresql-9.0:*[kerberos] ) " RDEPEND="${COMMON_DEPEND} !app-office/libreoffice-bin !app-office/libreoffice-bin-debug !app-office/openoffice media-fonts/dejavu media-fonts/liberation-fonts media-fonts/libertine || ( x11-misc/xdg-utils kde-plasma/kde-cli-tools ) java? ( >=virtual/jre-1.6 ) kde? ( kde-frameworks/breeze-icons:* ) vlc? ( media-video/vlc ) " if [[ ${MY_PV} != *9999* ]] && [[ ${PV} != *_* ]]; then PDEPEND="=app-office/libreoffice-l10n-$(ver_cut 1-2)*" else # Translations are not reliable on live ebuilds # rather force people to use english only. PDEPEND="!app-office/libreoffice-l10n" fi # FIXME: cppunit should be moved to test conditional # after everything upstream is under gbuild # as dmake execute tests right away DEPEND="${COMMON_DEPEND} >=dev-libs/libatomic_ops-7.2d dev-perl/Archive-Zip >=dev-util/cppunit-1.14.0 >=dev-util/gperf-3 dev-util/intltool >=dev-util/mdds-1.2.3:1= media-libs/glm sys-devel/bison sys-devel/flex sys-devel/gettext sys-devel/ucpp virtual/pkgconfig x11-base/xorg-proto x11-libs/libXt x11-libs/libXtst java? ( dev-java/ant-core >=virtual/jdk-1.6 ) odk? ( >=app-doc/doxygen-1.8.4 ) test? ( app-crypt/gnupg dev-util/cppunit media-fonts/dejavu ) " PATCHES=( # not upstreamable stuff "${FILESDIR}/${PN}-5.4-system-pyuno.patch" "${FILESDIR}/${PN}-5.3.4.2-kioclient5.patch" "${FILESDIR}/${PN}-6.0.3.2-disable-flaky-tests-1.patch" #bug 656676 # TODO: upstream "${FILESDIR}/${PN}-5.2.5.1-glibc-2.24.patch" "${FILESDIR}/${PN}-6.0.3.2-testTdf108947.patch" #bug 656600 # gtk3-kde5 vcl plugin backported from master "${WORKDIR}"/${PATCHSET/.tar.xz/} ) S="${WORKDIR}/${PN}-${MY_PV}" _check_reqs() { CHECKREQS_MEMORY="512M" if is-flagq "-g*" && ! is-flagq "-g*0" ; then CHECKREQS_DISK_BUILD="22G" else CHECKREQS_DISK_BUILD="6G" fi check-reqs_$1 } pkg_pretend() { use java || \ ewarn "If you plan to use Base application you should enable java or you will get various crashes." if has_version "/dev/null) --with-jvm-path="${EPREFIX}/usr/lib/" ) use libreoffice_extensions_scripting-beanshell && \ myeconfargs+=( --with-beanshell-jar=$(java-pkg_getjar bsh bsh.jar) ) use libreoffice_extensions_scripting-javascript && \ myeconfargs+=( --with-rhino-jar=$(java-pkg_getjar rhino-1.6 js.jar) ) fi is-flagq "-flto*" && myeconfargs+=( --enable-lto ) econf "${myeconfargs[@]}" } src_compile() { # more and more LO stuff tries to use OpenGL, including tests during build # bug 501508, bug 540624, bug 545974 and probably more addpredict /dev/dri addpredict /dev/ati addpredict /dev/nvidiactl # hack for offlinehelp, this needs fixing upstream at some point # it is broken because we send --without-help # https://bugs.freedesktop.org/show_bug.cgi?id=46506 ( grep "^export" "${S}/config_host.mk" > "${T}/config_host.mk" || die source "${T}/config_host.mk" 2&> /dev/null local path="${WORKDIR}/helpcontent2/source/auxiliary/" mkdir -p "${path}" || die echo "perl \"${S}/helpcontent2/helpers/create_ilst.pl\" -dir=helpcontent2/source/media/helpimg > \"${path}/helpimg.ilst\"" perl "${S}/helpcontent2/helpers/create_ilst.pl" \ -dir=helpcontent2/source/media/helpimg \ > "${path}/helpimg.ilst" [[ -s "${path}/helpimg.ilst" ]] || \ ewarn "The help images list is empty, something is fishy, report a bug." ) local target use test && target="build" || target="build-nocheck" # this is not a proper make script make ${target} || die } src_test() { make unitcheck || die make slowcheck || die } src_install() { # This is not Makefile so no buildserver make DESTDIR="${D}" distro-pack-install -o build -o check || die # bug 593514 if use gtk; then dosym libreoffice/program/liblibreofficekitgtk.so \ /usr/$(get_libdir)/liblibreofficekitgtk.so fi # bash completion aliases bashcomp_alias \ libreoffice \ unopkg loimpress lobase localc lodraw lomath lowriter lofromtemplate loweb loffice if use branding; then insinto /usr/$(get_libdir)/${PN}/program newins "${WORKDIR}/branding-sofficerc" sofficerc dodir /etc/env.d echo "CONFIG_PROTECT=/usr/$(get_libdir)/${PN}/program/sofficerc" > "${ED}"etc/env.d/99${PN} || die fi # Hack for offlinehelp, this needs fixing upstream at some point. # It is broken because we send --without-help # https://bugs.freedesktop.org/show_bug.cgi?id=46506 insinto /usr/$(get_libdir)/libreoffice/help doins xmlhelp/util/*.xsl pax-mark -m "${ED}"usr/$(get_libdir)/libreoffice/program/soffice.bin pax-mark -m "${ED}"usr/$(get_libdir)/libreoffice/program/unopkg.bin } pkg_postinst() { gnome2_icon_cache_update xdg_desktop_database_update xdg_mimeinfo_database_update } pkg_postrm() { gnome2_icon_cache_update xdg_desktop_database_update xdg_mimeinfo_database_update }