libreoffice/libreoffice.spec

1439 lines
52 KiB
RPMSpec
Raw Normal View History

#
# spec file for package libreoffice
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# List of supported langs, populated bellow in the lang macros
%global langpack_langs %{nil}
# extensions
%define numbertext_version 0.9.5
# Urls
%define external_url http://dev-www.libreoffice.org/src/
#%define tarball_url http://download.documentfoundation.org/libreoffice/src/6.0.0
%define tarball_url http://dev-builds.libreoffice.org/pre-releases/src/
# Enable the kde integration on openSUSE only
%if 0%{?is_opensuse}
%bcond_without kdeintegration
%else
%bcond_with kdeintegration
%endif
%if 0%{?suse_version} > 1320
%bcond_without firebird
%else
%bcond_with firebird
%endif
%if 0%{?suse_version} > 1320 || (0%{?sle_version} >= 120300 && 0%{?is_opensuse})
%bcond_without system_gpgme
%else
# Hack in the bundled libs to not pop up on requires/provides to avoid
# faking libreoffice provide some system packages
%global __provides_exclude_from ^%{_libdir}/libreoffice/program/lib(gpg|assuan).*\\.so.*$
%global __requires_exclude_from ^%{_libdir}/libreoffice/program/lib(gpg|assuan).*\\.so.*$
%global __requires_exclude ^libgpgmepp\\.so.*$
%bcond_with system_gpgme
%endif
Name: libreoffice
Version: 6.0.0.2
Release: 0
Summary: A Free Office Suite (Framework)
License: LGPL-3.0+ and MPL-2.0+
Group: Productivity/Office/Suite
Url: http://www.documentfoundation.org/
Source0: %{tarball_url}/libreoffice-%{version}.tar.xz
Source1: %{tarball_url}/libreoffice-help-%{version}.tar.xz
Source2: %{tarball_url}/libreoffice-translations-%{version}.tar.xz
# SUSE color palette bsc#1045339 https://intra.microfocus.net/brandcentral/suse/identity.php#palette
Source3: SUSE.soc
Source99: %{name}-rpmlintrc
# prebuilt extensions
Source402: %{external_url}/b7cae45ad2c23551fd6ccb8ae2c1f59e-numbertext_%{numbertext_version}.oxt
# used extensions sources
Source450: %{external_url}/1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt
Source452: %{external_url}/90401bca927835b6fbae4a707ed187c8-nlpsolver-0.9.tar.bz2
# GPGME bundle list
Source1000: %{external_url}/gpgme-1.8.0.tar.bz2
Source1001: %{external_url}/libgpg-error-1.26.tar.bz2
Source1002: %{external_url}/libassuan-2.4.3.tar.bz2
# Internal bundled stuff we can't remove
# To build this we would pull cygwin; not worth it
Source2001: http://dev-www.libreoffice.org/extern/185d60944ea767075d27247c3162b3bc-unowinreg.dll
# hsqldb simply does not work with new system version, but luckily we migrate to firebird
Source2002: %{external_url}/17410483b5b5f267aa18b7e00b65e6e0-hsqldb_1_8_0.zip
# Heavily patched and not possible to use system one
Source2003: %{external_url}/798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip
Source2004: %{external_url}/35c94d2df8893241173de1d16b6034c0-swingExSrc.zip
# Needed for wiki-published and always taken as bundled
Source2005: %{external_url}/a7983f859eafb2677d7ff386a023bc40-xsltml_2.1.2.zip
# Needed for integration tests
Source2006: http://dev-www.libreoffice.org/extern/8249374c274932a21846fa7629c2aa9b-officeotron-0.7.4-master.jar
Source2007: http://dev-www.libreoffice.org/extern/a084cd548b586552cb7d3ee51f1af969-odfvalidator-1.1.8-incubating-SNAPSHOT-jar-with-dependencies.jar
# PDFium is bundled everywhere
Source2008: %{external_url}/pdfium-3235.tar.bz2
# change user config dir name from ~/.libreoffice/3 to ~/.libreoffice/3-suse
# to avoid BerkleyDB incompatibility with the plain build
Patch1: scp2-user-config-suse.diff
# do not use the broken help; unopkg complained about it when registering extensions
# FIXME: the right fix is to compile the help and produce the .db_, .ht_, and other files
Patch4: nlpsolver-no-broken-help.diff
Patch5: mediawiki-no-broken-help.diff
Patch6: kde5-configure-checks.patch
Patch7: libreoffice-poppler-0.62.patch
# try to save space by using hardlinks
Patch990: install-with-hardlinks.diff
BuildRequires: %{name}-share-linker
BuildRequires: ant
BuildRequires: autoconf
BuildRequires: awk
BuildRequires: bison
BuildRequires: bsh2
BuildRequires: commons-logging
BuildRequires: cups-devel
BuildRequires: curl-devel
# Needed for tests
BuildRequires: dejavu-fonts
BuildRequires: doxygen >= 1.8.4
BuildRequires: fdupes
BuildRequires: flex
BuildRequires: flute
BuildRequires: gcc-c++
BuildRequires: glm-devel
# Needed for tests
BuildRequires: google-carlito-fonts
BuildRequires: gperf
BuildRequires: hyphen-devel
# genbrk binary is required
BuildRequires: icu
BuildRequires: java-devel >= 1.6
BuildRequires: junit4
BuildRequires: libbase
BuildRequires: libcppunit-devel >= 1.14.0
BuildRequires: libexif
BuildRequires: libfonts
BuildRequires: libformula
%if %{with system_gpgme}
BuildRequires: libgpgmepp-devel
%else
BuildRequires: chrpath
%endif
BuildRequires: libjpeg-devel
BuildRequires: liblayout
BuildRequires: libloader
BuildRequires: libmysqlclient-devel
BuildRequires: libmysqlcppconn-devel >= 1.0.6
BuildRequires: librepository
BuildRequires: libserializer
BuildRequires: libtool
BuildRequires: lpsolve-devel
BuildRequires: make
BuildRequires: neon-devel >= 0.26.0
BuildRequires: openldap2-devel
BuildRequires: pentaho-libxml
BuildRequires: pentaho-reporting-flow-engine
BuildRequires: pkgconfig
BuildRequires: postgresql-devel
# needed for the free command in build phase
BuildRequires: procps
BuildRequires: python3-xml
BuildRequires: sac
BuildRequires: ucpp
BuildRequires: unixODBC-devel
BuildRequires: unzip
BuildRequires: update-desktop-files
BuildRequires: xml-commons-apis
BuildRequires: xorg-x11
BuildRequires: xorg-x11-fonts
BuildRequires: xz
BuildRequires: zip
BuildRequires: perl(Archive::Zip)
BuildRequires: perl(Digest::MD5)
BuildRequires: pkgconfig(bluez)
BuildRequires: pkgconfig(dbus-glib-1)
BuildRequires: pkgconfig(epoxy) >= 1.2
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(gl)
BuildRequires: pkgconfig(glu)
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(graphite2) >= 0.9.3
BuildRequires: pkgconfig(gssrpc)
BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
BuildRequires: pkgconfig(gtk+-2.0) >= 2.18.0
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(harfbuzz) >= 0.9.42
BuildRequires: pkgconfig(harfbuzz-icu) >= 0.9.42
BuildRequires: pkgconfig(hunspell)
BuildRequires: pkgconfig(icu-i18n)
BuildRequires: pkgconfig(krb5)
BuildRequires: pkgconfig(lcms2)
BuildRequires: pkgconfig(libabw-0.1)
BuildRequires: pkgconfig(libcdr-0.1) >= 0.1
BuildRequires: pkgconfig(libclucene-core)
BuildRequires: pkgconfig(libcmis-0.5) >= 0.5.0
BuildRequires: pkgconfig(libe-book-0.1) >= 0.1.1
BuildRequires: pkgconfig(libeot) >= 0.01
BuildRequires: pkgconfig(libepubgen-0.1)
BuildRequires: pkgconfig(libetonyek-0.1) >= 0.1.7
BuildRequires: pkgconfig(libexttextcat) >= 3.1.1
BuildRequires: pkgconfig(libfreehand-0.1)
BuildRequires: pkgconfig(liblangtag)
BuildRequires: pkgconfig(libmspub-0.1) >= 0.1
BuildRequires: pkgconfig(libmwaw-0.3) >= 0.3.13
BuildRequires: pkgconfig(libodfgen-0.1) >= 0.1.4
BuildRequires: pkgconfig(liborcus-0.13)
BuildRequires: pkgconfig(libpagemaker-0.0)
BuildRequires: pkgconfig(libqxp-0.0)
BuildRequires: pkgconfig(librevenge-0.0) >= 0.0.1
BuildRequires: pkgconfig(librsvg-2.0)
BuildRequires: pkgconfig(libstaroffice-0.0) >= 0.0.4
BuildRequires: pkgconfig(libvisio-0.1) >= 0.1
BuildRequires: pkgconfig(libwpd-0.10) >= 0.10
BuildRequires: pkgconfig(libwpg-0.3)
BuildRequires: pkgconfig(libwps-0.4) >= 0.4.7
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(libxslt)
BuildRequires: pkgconfig(libzmf-0.0)
BuildRequires: pkgconfig(mdds-1.2) >= 1.2.3
BuildRequires: pkgconfig(mythes)
BuildRequires: pkgconfig(nspr) >= 4.8
BuildRequires: pkgconfig(nss) >= 3.9.3
BuildRequires: pkgconfig(poppler)
BuildRequires: pkgconfig(poppler-cpp)
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(redland)
BuildRequires: pkgconfig(sane-backends)
BuildRequires: pkgconfig(xmlsec1-nss) >= 1.2.24
BuildRequires: pkgconfig(xt)
Requires: libreoffice-branding >= 4.0
Requires: libreoffice-icon-themes = %{version}
# We need at least english to launch ourselves.
Requires: libreoffice-l10n-en = %{version}
Requires: python3
Requires(post): update-desktop-files
Requires(postun): update-desktop-files
Recommends: dejavu-fonts
Recommends: google-carlito-fonts
Provides: %{name}-draw-extensions = %{version}
Obsoletes: %{name}-draw-extensions < %{version}
Provides: %{name}-impress-extensions = %{version}
Obsoletes: %{name}-impress-extensions < %{version}
Provides: %{name}-base-extensions = %{version}
Obsoletes: %{name}-base-extensions < %{version}
Provides: %{name}-kde = %{version}
Obsoletes: %{name}-kde < %{version}
Provides: %{name}-l10n-prebuild = %{version}
Obsoletes: %{name}-l10n-prebuild < %{version}
Provides: %{name}-mono = %{version}
Obsoletes: %{name}-mono < %{version}
Provides: %{name}-ure = %{version}
Obsoletes: %{name}-ure < %{version}
Provides: %{name}-icon-theme-crystal = %{version}
Obsoletes: %{name}-icon-theme-crystal < %{version}
Provides: %{name}-icon-theme-oxygen = %{version}
Obsoletes: %{name}-icon-theme-oxygen < %{version}
ExclusiveArch: %{arm} aarch64 %{ix86} x86_64 ppc ppc64 ppc64le s390x
%if 0%{?suse_version} > 1325
BuildRequires: libboost_date_time-devel
BuildRequires: libboost_filesystem-devel
BuildRequires: libboost_iostreams-devel
BuildRequires: libboost_locale-devel
BuildRequires: libboost_system-devel
%else
BuildRequires: boost-devel
%endif
BuildRequires: liberation-fonts
Recommends: liberation-fonts
%if %{with firebird}
BuildRequires: pkgconfig(fbclient)
%endif
%if %{with kdeintegration}
BuildRequires: libkde4-devel
# needed for filepicker
BuildRequires: pkgconfig(glib-2.0) >= 2.4
%else
Provides: %{name}-kde4 = %{version}
Obsoletes: %{name}-kde4 < %{version}
Provides: %{name}-qt5 = %{version}
Obsoletes: %{name}-qt5 < %{version}
%endif
%description
LibreOffice is a comprehensive office package featuring a word
processor, a spreadsheet, a presentation program, and much more. This
package provides only the basic framework. You have to install the
additional modules to get the required functionality, see packages:
- libreoffice-base
- libreoffice-calc
- libreoffice-draw
- libreoffice-impress
- libreoffice-math
- libreoffice-writer
Some optional features are provided by extra packages, for example:
- libreoffice-mailmerge
- libreoffice-filters
- libreoffice-qt5
- libreoffice-gnome
Non-English localizations are provided by extra packages as well, for
example:
- libreoffice-l10n-de
- libreoffice-l10n-fr
- libreoffice-l10n-it
%package branding-upstream
Summary: Original Branding for LibreOffice
Group: Productivity/Office/Suite
Supplements: packageand(libreoffice:branding-upstream)
Conflicts: libreoffice-branding
Provides: libreoffice-branding = %{version}
Provides: libreoffice-branding-openSUSE = 4.0.1
Obsoletes: libreoffice-branding-openSUSE < 4.0.1
BuildArch: noarch
%description branding-upstream
This package includes the original branding for the LibreOffice office suite.
%package icon-themes
Summary: LibreOffice Icon Themes
Group: Productivity/Office/Suite
Requires(post): %{name}-share-linker
Requires(postun): %{name}-share-linker
Supplements: libreoffice
Provides: %{name}-icon-theme-breeze = %{version}
Obsoletes: %{name}-icon-theme-breeze < %{version}
Provides: %{name}-icon-theme-galaxy = %{version}
Obsoletes: %{name}-icon-theme-galaxy < %{version}
Provides: %{name}-icon-theme-hicontrast = %{version}
Obsoletes: %{name}-icon-theme-hicontrast < %{version}
Provides: %{name}-icon-theme-sifr = %{version}
Obsoletes: %{name}-icon-theme-sifr < %{version}
Provides: %{name}-icon-theme-tango = %{version}
Obsoletes: %{name}-icon-theme-tango < %{version}
BuildArch: noarch
%description icon-themes
This package provides all of the LibreOffice icon themes.
%package glade
Summary: Support for creating LibreOffice dialogs in glade
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
BuildArch: noarch
%description glade
%{name}-glade contains a catalog of LibreOffice-specific widgets for
glade and ui-previewer tool to check the visual appearance of dialogs.
%package gdb-pretty-printers
Summary: Additional support for debugging with gdb
Group: Productivity/Office/Suite
Requires: gdb
Requires: libreoffice = %{version}
Requires: python3-six
Supplements: libreoffice-debuginfo = %{version}
BuildArch: noarch
%description gdb-pretty-printers
This package provides gdb pretty printers for package %{name}.
%package base
Summary: LibreOffice Base
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
Requires: pentaho-reporting-flow-engine
Supplements: %{name}
%ifarch %{arm} %{ix86} ppc
Requires: jre-32 >= 1.6
%endif
%ifarch x86_64 aarch64 ppc64 ppc64le s390x
Requires: jre-64 >= 1.6
%endif
%description base
This module allows you to manage databases, create queries and reports
to track and manage your information by using LibreOffice office
suite.
%package calc
Summary: LibreOffice Calc
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
Supplements: %{name}
%description calc
This module allows you to perform calculation, analyze information and
manage lists in spreadsheets by using LibreOffice office suite.
%package draw
Summary: LibreOffice Draw
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
Supplements: %{name}
%description draw
This module allows you to create and edit drawings, flow charts, and
logos by using LibreOffice office suite.
%package math
Summary: LibreOffice Math
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
Supplements: %{name}
%description math
This module allows you to create and edit scientific formulas and
equations by using LibreOffice office suite.
%package impress
Summary: LibreOffice Impress
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
Supplements: %{name}
%description impress
This module allows you to create and edit presentations for slideshows,
meeting and Web pages by using LibreOffice office suite.
%package writer
Summary: LibreOffice Writer and Web
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
Supplements: %{name}
%description writer
This module allows you to create and edit text and graphics in letters,
reports, documents and Web pages by using LibreOffice office suite.
%package base-drivers-postgresql
Summary: PostgreSQL Database Driver for LibreOffice
Group: Productivity/Office/Suite
Requires: postgresql
%description base-drivers-postgresql
This package allows to access PostgreSQL databases from LibreOffice Base.
%package base-drivers-firebird
Summary: Firebird Database Driver for LibreOffice
Group: Productivity/Office/Suite
Requires: firebird
%description base-drivers-firebird
This package allows to access Firebird databeses from LibreOffice Base.
%package filters-optional
Summary: Additional Import and Export Filters for LibreOffice
Group: Productivity/Office/Suite
Requires: %{name}-calc = %{version}
Requires: %{name}-draw = %{version}
Requires: %{name}-impress = %{version}
Requires: %{name}-math = %{version}
Requires: %{name}-writer = %{version}
Supplements: %{name}
%description filters-optional
This package includes some additional import and export filters for
LibreOffice:
- AportisDoc (Palm)
- Pocket Excel
- Pocket Word
- DocBook
- XHTML
%package mailmerge
Summary: Mail Merge Functionality for LibreOffice
Group: Productivity/Office/Suite
Requires: %{name}-pyuno = %{version}
Supplements: %{name}
%description mailmerge
This module allows you to create form letters or send E-mail messages
to many recipients using LibreOffice office suite.
%package pyuno
Summary: Python UNO Bridge for LibreOffice
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
Supplements: %{name}
%description pyuno
The Python-UNO bridge allows to use the standard LibreOffice API
from the well known Python scripting language. It can be used to
develop UNO components in python, thus python UNO components may be run
within the LibreOffice process and can be called from Java, C++ or
the built in StarBasic scripting language. You can create and invoke
scripts with the office scripting framework (OOo 2.0 and later) with
it. For example, it is used for the mail merge functionality.
You can find the more information at
http://udk.openoffice.org/python/python-bridge.html
%package gnome
Summary: GNOME Extensions for LibreOffice
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
%description gnome
This package contains some GNOME extensions and GTK2 interface for LibreOffice.
%package gtk3
Summary: Gtk3 interface for LibreOffice
Group: Productivity/Office/Suite
Requires: %{name}-gnome = %{version}
%if 0%{?suse_version} > 1315 || 0%{?is_opensuse}
Supplements: packageand(libreoffice:gnome-session)
%endif
%description gtk3
This package contains Gtk3 interface rendering option for LibreOffice.
%package gtk2
Summary: Gtk2 interface for LibreOffice
Group: Productivity/Office/Suite
Recommends: %{name}-gnome = %{version}
# We are default on SLE12
%if 0%{?suse_version} == 1315 && !0%{?is_opensuse}
Supplements: packageand(libreoffice:gnome-session)
%endif
# Without kde integration we provide gtk2 interface there
%if !%{with kdeintegration}
Supplements: packageand(libreoffice:plasma5-workspace)
%endif
%description gtk2
This package contains Gtk2 interface rendering option for LibreOffice.
%package kde4
Summary: kde4 interface for LibreOffice
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
# we need full kdelibs4 otherwise we will crash
Requires: kdelibs4
Supplements: packageand(libreoffice:plasma5-workspace)
%description kde4
This package contains kde4 interface rendering options for LibreOffice.
%package qt5
Summary: Qt5 interface for LibreOffice
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
%description qt5
This package contains Qt5 interface rendering options for LibreOffice.
%package sdk
Summary: LibreOffice SDK
Group: Documentation/HTML
Requires: %{name} = %{version}
Requires: gcc-c++
Requires: make
Requires: ucpp
Requires: zip
Recommends: java-devel
Provides: libreoffice-ure-devel = %{version}
Obsoletes: libreoffice-ure-devel < %{version}
%description sdk
This package contains the files needed to build plugins/add-ons for
LibreOffice. It includes header files, IDL files, needed build
tools, etc.
The documentation is in the package libreoffice-sdk-doc
%package sdk-doc
Summary: LibreOffice SDK Documentation
Group: Development/Libraries/Other
Suggests: %{name}-sdk = %{version}
Enhances: %{name}-sdk = %{version}
Provides: libreoffice-ure-devel-doc = %{version}
Obsoletes: libreoffice-ure-devel-doc < %{version}
%description sdk-doc
This package includes documentation and examples for the LibreOffice
Software Development Kit (SDK).
%package officebean
Summary: OfficeBean Java Bean component for LibreOffice
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
%ifarch %{arm} %{ix86} ppc
Requires: jre-32 >= 1.6
%endif
%ifarch x86_64 aarch64 ppc64 ppc64le s390x
Requires: jre-64 >= 1.6
%endif
%description officebean
With the OfficeBean, a developer can easily write Java applications,
harnessing the power of LibreOffice. It encapsulates a connection to
a locally running LibreOffice process, and hides the complexity of
establishing and maintaining that connection from the developer.
It also allows embedding of LibreOffice documents within the Java
environment. It provides an interface the developer can use to obtain
Java AWT windows into which the backend LibreOffice process draws
its visual representation. These windows are then plugged into the UI
hierarchy of the hosting Java application. The embedded document is
controlled from the Java environment, since the OfficeBean allows
developers to access the complete LibreOffice API from their Java
environment giving them full control over the embedded document, its
appearance and behavior.
%package base-drivers-mysql
Summary: MySQL Database Driver for LibreOffice
Group: Productivity/Office/Suite
Requires: libreoffice-base = %{version}
Requires(pre): libreoffice = %{version}
Supplements: packageand(libreoffice-base:mysql-client)
%description base-drivers-mysql
This package allows to access MySQL databases from LibreOffice Base.
%package calc-extensions
Summary: LibreOffice Calc Extensions
Group: Productivity/Office/Suite
Requires: libreoffice-calc = %{version}
# pyuno is needed for the numbertext extension
Requires: libreoffice-pyuno = %{version}
Requires(pre): libreoffice = %{version}
# the watchWindow extension is written in java
%ifarch %{arm} %{ix86} ppc
Requires: jre-32 >= 1.6
%endif
%ifarch x86_64 aarch64 ppc64 ppc64le s390x
Requires: jre-64 >= 1.6
%endif
%description calc-extensions
This package provides extensions for LibreOffice Calc:
- Convert Text to Number
- New Functions NUMBERTEXT and MONEYTEXT
- Solver for Nonlinear Programming
%package writer-extensions
Summary: LibreOffice Writer Extensions
Group: Productivity/Office/Suite
Requires: libreoffice-writer = %{version}
Requires(pre): libreoffice = %{version}
# the wiki extension is written in java
%ifarch %{arm} %{ix86} ppc
Requires: jre-32 >= 1.6
%endif
%ifarch x86_64 aarch64 ppc64 ppc64le s390x
Requires: jre-64 >= 1.6
%endif
%description writer-extensions
This package provides extensions for LibreOffice Writer:
- MediaWiki Publisher
%package -n libreofficekit
Summary: A library providing access to LibreOffice functionality
Group: Productivity/Office/Suite
Requires: %{name} = %{version}
%description -n libreofficekit
LibreOfficeKit can be used to access LibreOffice functionality
through C/C++, without any need to use UNO.
%package -n libreofficekit-devel
Summary: Development files for libreofficekit
Group: Productivity/Office/Suite
Requires: libreofficekit = %{version}
%description -n libreofficekit-devel
The libreofficekit-devel package contains libraries and header files for
developing applications that use libreofficekit.
# Symlink autocorr files for various conversion items
%define make_autocorr_aliases(l:) \
%{?-l: \
for lang in %{*}; do \
ln -sf acor_%{-l*}.dat %{buildroot}%{_libdir}/%{name}/share/autocorr/acor_$lang.dat \
done \
} \
%{!?-l:%{error:-l must be present}}
# Symlinking macro for /usr/lib64 and /usr/share packing
# As argument takes name of the package
%define _link_noarch_files() \
%posttrans %{1} \
rpm -ql %{name}-%{1} > %{_datadir}/libreoffice/%{1}_list.txt || true \
if [ -f %{_datadir}/libreoffice/%{1}_list.txt ] ; then \
%{_bindir}/libreoffice-share-linker %{_datadir}/libreoffice/%{1}_list.txt || true \
fi \
\
%postun %{1} \
if [ "$1" = "0" -a -f %{_datadir}/libreoffice/%{1}_list.txt -a -x %{_bindir}/libreoffice-share-linker ]; then \
%{_bindir}/libreoffice-share-linker --unlink %{_datadir}/libreoffice/%{1}_list.txt || true \
rm -f %{_datadir}/libreoffice/%{1}_list.txt 2> /dev/null || true \
fi \
%{nil}
# Crazy magic for the auto help/lang generating.
# Inspired and adjusted from Fedora spec.
%define _langpack_common(g:l:j:) \
%if "%{-l*}" != "en-US" \
%dir %{_datadir}/libreoffice/program/resource \
%dir %{_datadir}/libreoffice/program/resource/%{-g:%{-g*}}%{!-g:%{-l*}} \
%dir %{_datadir}/libreoffice/program/resource/%{-g:%{-g*}}%{!-g:%{-l*}}/LC_MESSAGES \
%{_datadir}/%{name}/program/resource/%{-g:%{-g*}}%{!-g:%{-l*}}/LC_MESSAGES/*.mo \
%endif \
%dir %{_datadir}/%{name}/share/registry \
%dir %{_datadir}/%{name}/share/registry/res \
%{_datadir}/%{name}/share/registry/Langpack-%{-l*}.xcd \
%if "%{-l*}" != "en-US" \
%{_datadir}/%{name}/share/registry/res/registry_%{-l*}.xcd \
%endif \
%{_datadir}/%{name}/share/registry/res/fcfg_langpack_%{-l*}.xcd \
%dir %{_datadir}/%{name}/share/wizards \
%{_datadir}/%{name}/share/wizards/resources_%{-j:%{-j*}}%{!-j:%{-l*}}.properties \
%{nil}
# Defines a language pack subpackage.
#
# It's necessary to define language code (-l) and language name (-n).
# Additionally, it's possible
# * to require autocorr, hunspell, hyphen or mythes package or font for
# given language,
# * to obsolete openoffice.org-langpack package,
# * to provide libreoffice-langpack-loc package, where loc is glibc
# locale--this is necessary for yum to pick it automatically,
# * to require other, unrelated, packages,
# * to specify file serving as file list.
# For these, lower case character argument takes an argument specifying
# language, upper case character argument uses language from -l.
#
# All remaining arguments are considered to be files and added to the file
# list.
#
# c: additional config file (just the name stem)
# E the package does not contain any files (i.e., has empty filelist)
# i: additional language added to this package
# L: internal (LibreOffice) language code, used in file names
# l: language code, e.g., cs
# g: glibc/java locale
# j: java locale for the additional language
# k: glibc locale for the additional language
# Mm: myspell dependency
# n: language name, e.g., Czech
# p: Provides: of libreoffice-l10n
# q: Provides: of libreoffice-l10n if one provide is not enough
# r: comma-separated list of additional requires
# S:s: script classification (cjk, ctl). -S is only a marker, as it does
# not add any .xcd into the package (the file does not exist for at
# least one CTL-using locale, si)
# Xx: has autotext definitions
#
# Example:
# libreoffice-l10n-cs: langpack for Czech lang. Requiring myspell-cs_CZ:
# %%langpack -l cs -n Czech -m cs_CZ
%define langpack(c:Ei:g:j:k:L:l:Mm:n:p:q:r:S:s:Xx:) \
%define project LibreOffice \
%define lang %{-l:%{-l*}}%{!-l:%{error:Language code not defined}} \
%define _langpack_lang %{-L:%{-L*}}%{!-L:%{lang}} \
%define pkgname l10n-%{lang} \
%define langname %{-n:%{-n*}}%{!-n:%{error:Language name not defined}} \
%global langpack_langs %{langpack_langs} %{_langpack_lang} %{-i:%{-i*}} \
\
%package %{pkgname} \
Summary: %{langname} Localization Files for LibreOffice \
Group: Productivity/Office/Suite \
Requires: %{name} = %{version} \
Requires: %{name}-share-linker \
Provides: locale(libreoffice:%{lang}) \
BuildArch: noarch \
%{-m:Requires: myspell-%{-m*}}%{!-m:%{-M:Requires: myspell-%{lang}}} \
%{-r:Requires: %{-r*}} \
%{-p: \
Provides: %{name}-l10n-%{-p*} = %{version} \
Obsoletes: %{name}-l10n-%{-p*} < %{version} \
} \
%{-q: \
Provides: %{name}-l10n-%{-q*} = %{version} \
Obsoletes: %{name}-l10n-%{-q*} < %{version} \
} \
Provides: %{name}-help-%{lang} = %{version} \
Obsoletes: %{name}-help-%{lang} < %{version} \
%{-L: \
Provides: %{name}-help-%{-L*} = %{version} \
Obsoletes: %{name}-help-%{-L*} < %{version} \
} \
%{-p: \
Provides: %{name}-help-%{-p*} = %{version} \
Obsoletes: %{name}-help-%{-p*} < %{version} \
} \
%{-q: \
Provides: %{name}-help-%{-q*} = %{version} \
Obsoletes: %{name}-help-%{-q*} < %{version} \
} \
\
%description %{pkgname} \
Provides additional %{langname} translations and resources for %{project}. \
\
%files %{pkgname} \
%{!-E: \
%define autotextdir %{_datadir}/%{name}/share/autotext \
%dir %{autotextdir} \
%{expand:%%_langpack_common -l %{_langpack_lang} %{-g:-g %{-g*} -j %{-g*}}} \
%{-x:%{autotextdir}/%{-x*}}%{!-x:%{-X:%{autotextdir}/%{_langpack_lang}}} \
%{-c:%{_datadir}/%{name}/share/registry/%{-c*}.xcd} \
%{-s:%{_datadir}/%{name}/share/registry/%{-s*}_%{_langpack_lang}.xcd} \
%{-i:%{expand:%%_langpack_common -l %{-i*} %{-k:-g %{-k*}} %{-j:-j %{-j*}}}} \
} \
\
%{expand:%%_link_noarch_files %{pkgname}} \
%{nil}
%langpack -l af -n Afrikaans -m af_ZA
%langpack -l ar -n Arabic -s ctl -m ar
%langpack -l as -n Assamese
%langpack -l bg -n Bulgarian -X -m bg_BG
%langpack -l bn -n Bengali -m bn_BD
%langpack -l br -n Breton -m br_FR
%langpack -l ca -n Catalan -M -X
%langpack -l cs -n Czech -X -m cs_CZ
%langpack -l cy -n Welsh
%langpack -l da -n Danish -X -m da_DK
%langpack -l de -n German -X -M
%langpack -l dz -n Dzongkha -s ctl
%langpack -l el -n Greek -m el_GR
%langpack -l en -n English -L en-US -X -p en-GB -q en-ZA -M -g en_US
%langpack -l eo -n Esperanto
%langpack -l es -n Spanish -M -X
%langpack -l et -n Estonian -m et_EE
%langpack -l eu -n Basque
%langpack -l fa -n Farsi -s ctl -X
%langpack -l fi -n Finnish -r libreoffice-voikko -X
%langpack -l fr -n French -X -m fr_FR
%langpack -l ga -n Irish
%langpack -l gl -n Galician -M
%langpack -l gu -n Gujarati -s ctl -p gu-IN -m gu_IN
%langpack -l he -n Hebrew -s ctl -m he_IL
%langpack -l hi -n Hindi -s ctl -p hi-IN -m hi_IN
%langpack -l hr -n Croatian -m hr_HR -X
%langpack -l hu -n Hungarian -X -m hu_HU
%langpack -l it -n Italian -X -m it_IT
%langpack -l ja -n Japanese -s cjk -X
%langpack -l kk -n Kazakh
%langpack -l kn -n Kannada
%langpack -l ko -n Korean -s cjk -X
%langpack -l lt -n Lithuanian -m lt_LT -X
%langpack -l lv -n Latvian -m lv_LV
%langpack -l mai -n Maithili
%langpack -l ml -n Malayalam
%langpack -l mr -n Marathi
%langpack -l nb -n Bokmal -M -m no
%langpack -l nl -n Dutch -X -m nl_NL
%langpack -l nn -n Nynorsk -m no
%langpack -l nr -n Southern_Ndebele
%langpack -l nso -n Northern_Sotho
%langpack -l or -n Odia -s ctl
%langpack -l pa -n Punjabi -s ctl -L pa-IN -p pa-IN -g pa_IN -j pa_IN
%langpack -l pl -n Polish -X -m pl_PL
%langpack -l pt_BR -n Brazilian_Portuguese -m pt_BR -L pt-BR -p pt-BR -X -g pt_BR -j pt_BR
%langpack -l pt_PT -n Portuguese -m pt_PT -L pt -x pt -p pt -q pt-PT
%langpack -l ro -n Romanian -M -X
%langpack -l ru -n Russian -X -m ru_RU
%langpack -l si -n Sinhalese -S ctl -m si_LK
%langpack -l sk -n Slovak -X -m sk_SK
%langpack -l sl -n Slovenian -X -m sl_SI
%langpack -l sr -n Serbian -i sr-Latn -M -j sr_Latn -g sr -k sr@latin
%langpack -l ss -n Swati
%langpack -l st -n Southern_Sotho
%langpack -l sv -n Swedish -X -m sv_SE
%langpack -l ta -n Tamil -s ctl
%langpack -l te -n Telugu -m te_IN
%langpack -l th -n Thai -s ctl -c ctlseqcheck_th -m th_TH
%langpack -l tn -n Tswana
%langpack -l tr -n Turkish -X
%langpack -l ts -n Tsonga
%langpack -l uk -n Ukrainian -m uk_UA
%langpack -l ve -n Venda
%langpack -l xh -n Xhosa
%langpack -l zh_CN -n Simplified_Chinese -p zh-CN -s cjk -L zh-CN -x zh-CN -q zh-Hans -g zh_CN -j zh_CN
%langpack -l zh_TW -n Traditional_Chinese -p zh-TW -s cjk -L zh-TW -x zh-TW -q zh-Hant -g zh_TW -j zh_TW
%langpack -l zu -n Zulu -m zu_ZA
%prep
%setup -q -b1 -b2
# The rename of the configdir is needed only on older than factory for compat
%if 0%{?suse_version} < 1330
%patch1
%endif
%patch4
%patch5
%patch6 -p1
%patch7 -p1
%patch990 -p1
# Disable some of the failing tests (some are random)
%if 0%{?suse_version} < 1330
sed -i -e '/CppunitTest_desktop_lib/d' desktop/Module_desktop.mk
%endif
# Following two tests are really flaky
sed -i -e /CppunitTest_dbaccess_hsqldb_test/d dbaccess/Module_dbaccess.mk
sed -i -e s/CppunitTest_dbaccess_RowSetClones// dbaccess/Module_dbaccess.mk
# Fails due to diff caused by fonts
sed -i -e /CppunitTest_sw_rtfimport/d sw/Module_sw.mk
# Do not generate doxygen timestamp
echo "HTML_TIMESTAMP = NO" >> odk/docs/cpp/Doxyfile
echo "HTML_TIMESTAMP = NO" >> odk/docs/idl/Doxyfile
%build
# Parallel build settings ...
lo_jobs="%{?jobs:%{jobs}}"
%ifarch %{arm}
%if ! 0%{?qemu_user_space_build:1}
# native hardware is not that powerful
lo_jobs="1"
%endif
%endif
# do not eat all memory
echo "Available memory:"
free
echo "System limits:"
ulimit -a
lo_jobs_reduced=
if test -n "$lo_jobs" -a "$lo_jobs" -gt 1 ; then
mem_per_process=1200
max_mem=`LANG=C free -t -m | sed -n "s|^Mem: *\([0-9]*\).*$|\1|p"`
max_jobs="$(($max_mem / $mem_per_process))"
test "$lo_jobs" -gt "$max_jobs" && lo_jobs="$max_jobs" && lo_jobs_reduced="yes" && echo "Warning: Reducing number of jobs to $max_jobs because of memory limits"
test "$lo_jobs" -le 0 && lo_jobs=1 && echo "Warning: Do not use the parallel build at all becuse of memory limits"
fi
# finally set jobs
PARALLEL_BUILD=
if test -n "$lo_jobs" ; then
PARALLEL_BUILD="--with-parallelism=$lo_jobs"
fi
# make sure that JAVA_HOME is set correctly
source %{_sysconfdir}/profile.d/alljava.sh
# use RPM_OPT_FLAGS, ...
# remove big debugsymbols as we simply consume too much space
ARCH_FLAGS="`echo %{optflags} | sed -e 's/^-g /-g1 /g' -e 's/ -g / -g1 /g' -e 's/ -g$/ -g1/g'`"
CFLAGS="$ARCH_FLAGS"
CXXFLAGS="$ARCH_FLAGS"
export ARCH_FLAGS CFLAGS CXXFLAGS
# Colada does not have .pc file and configure creator was really lazy
export OPENCOLLADA_CFLAGS='-I/usr/include/COLLADABaseUtils -I/usr/include/COLLADAFramework -I/usr/include/COLLADASaxFrameworkLoader -I/usr/include/GeneratedSaxParser'
export OPENCOLLADA_LIBS='-lOpenCOLLADABaseUtils -lOpenCOLLADAFramework -lOpenCOLLADASaxFrameworkLoader -lGeneratedSaxParser'
# Set up Google API keys, see http://www.chromium.org/developers/how-tos/api-keys
# Note: these are for the openSUSE Chromium builds ONLY. For your own distribution,
# please get your own set of keys.
google_api_key="AIzaSyD1hTe85_a14kr1Ks8T3Ce75rvbR1_Dx7Q"
google_default_client_id="4139804441.apps.googleusercontent.com"
google_default_client_secret="KDTRKEZk2jwT_7CDpcmMA--P"
# do not run configure in autogen but use macro later
export NOCONFIGURE=yes
./autogen.sh
%configure \
$PARALLEL_BUILD \
--enable-eot \
--enable-mergelibs \
Accepting request 114864 from LibreOffice:Unstable this is needed to fix build in Factory - buildfix-icu-4.9.diff: fix build with icu-4.9; needed for openSUSE-12.2 - clean up configure switches: * move switches from SUSE*.conf to spec files * use --with-system-headers and --with-system-libs to prefer system stuff over internal copies * use --without-system-<library> only for stuff that is not packaged or not patched in the SUSE distribution, for example libvisio, redland, mythes * bin not longer existing options - remove unused python-devel from BuildRequires - build zip-3.0 only for openSUSE < 11.4 - add patches for the extra zip-3.0 from the last zip package - make sure that parallel build is used for dmake and GNU make build parts - buildfix-icu-4.9.diff: fix build with icu-4.9; needed for openSUSE-12.2 - clean up configure switches: * move switches from SUSE*.conf to spec files * use --with-system-headers and --with-system-libs to prefer system stuff over internal copies * use --without-system-<library> only for stuff that is not packaged or not patched in the SUSE distribution, for example libvisio, redland, mythes * bin not longer existing options - build zip-3.0 only for openSUSE < 11.4 - add patches for the extra zip-3.0 from the last zip package - make sure that parallel build is used for dmake and GNU make build parts OBS-URL: https://build.opensuse.org/request/show/114864 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libreoffice?expand=0&rev=31
2012-04-26 17:35:13 +02:00
--docdir=%{_docdir}/%{name} \
--with-compat-oowrappers \
--with-system-headers \
--with-system-libs \
--with-system-jars \
--with-system-ucpp \
--with-system-dicts \
--with-vendor=SUSE \
--with-alloc=system \
--with-tls=nss \
--disable-openssl \
--with-lang='%{langpack_langs}' \
Accepting request 114864 from LibreOffice:Unstable this is needed to fix build in Factory - buildfix-icu-4.9.diff: fix build with icu-4.9; needed for openSUSE-12.2 - clean up configure switches: * move switches from SUSE*.conf to spec files * use --with-system-headers and --with-system-libs to prefer system stuff over internal copies * use --without-system-<library> only for stuff that is not packaged or not patched in the SUSE distribution, for example libvisio, redland, mythes * bin not longer existing options - remove unused python-devel from BuildRequires - build zip-3.0 only for openSUSE < 11.4 - add patches for the extra zip-3.0 from the last zip package - make sure that parallel build is used for dmake and GNU make build parts - buildfix-icu-4.9.diff: fix build with icu-4.9; needed for openSUSE-12.2 - clean up configure switches: * move switches from SUSE*.conf to spec files * use --with-system-headers and --with-system-libs to prefer system stuff over internal copies * use --without-system-<library> only for stuff that is not packaged or not patched in the SUSE distribution, for example libvisio, redland, mythes * bin not longer existing options - build zip-3.0 only for openSUSE < 11.4 - add patches for the extra zip-3.0 from the last zip package - make sure that parallel build is used for dmake and GNU make build parts OBS-URL: https://build.opensuse.org/request/show/114864 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libreoffice?expand=0&rev=31
2012-04-26 17:35:13 +02:00
--disable-fetch-external \
--with-external-tar="$RPM_SOURCE_DIR" \
--disable-epm \
--disable-online-update \
--disable-systray \
--disable-gstreamer-0-10 \
--enable-gstreamer-1-0 \
--enable-gtk3 \
--enable-introspection \
--with-doxygen \
--enable-release-build \
Accepting request 114864 from LibreOffice:Unstable this is needed to fix build in Factory - buildfix-icu-4.9.diff: fix build with icu-4.9; needed for openSUSE-12.2 - clean up configure switches: * move switches from SUSE*.conf to spec files * use --with-system-headers and --with-system-libs to prefer system stuff over internal copies * use --without-system-<library> only for stuff that is not packaged or not patched in the SUSE distribution, for example libvisio, redland, mythes * bin not longer existing options - remove unused python-devel from BuildRequires - build zip-3.0 only for openSUSE < 11.4 - add patches for the extra zip-3.0 from the last zip package - make sure that parallel build is used for dmake and GNU make build parts - buildfix-icu-4.9.diff: fix build with icu-4.9; needed for openSUSE-12.2 - clean up configure switches: * move switches from SUSE*.conf to spec files * use --with-system-headers and --with-system-libs to prefer system stuff over internal copies * use --without-system-<library> only for stuff that is not packaged or not patched in the SUSE distribution, for example libvisio, redland, mythes * bin not longer existing options - build zip-3.0 only for openSUSE < 11.4 - add patches for the extra zip-3.0 from the last zip package - make sure that parallel build is used for dmake and GNU make build parts OBS-URL: https://build.opensuse.org/request/show/114864 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libreoffice?expand=0&rev=31
2012-04-26 17:35:13 +02:00
--enable-split-app-modules \
--enable-split-opt-features \
--enable-cairo-canvas \
--enable-largefile \
--enable-python=system \
--enable-randr \
Accepting request 114864 from LibreOffice:Unstable this is needed to fix build in Factory - buildfix-icu-4.9.diff: fix build with icu-4.9; needed for openSUSE-12.2 - clean up configure switches: * move switches from SUSE*.conf to spec files * use --with-system-headers and --with-system-libs to prefer system stuff over internal copies * use --without-system-<library> only for stuff that is not packaged or not patched in the SUSE distribution, for example libvisio, redland, mythes * bin not longer existing options - remove unused python-devel from BuildRequires - build zip-3.0 only for openSUSE < 11.4 - add patches for the extra zip-3.0 from the last zip package - make sure that parallel build is used for dmake and GNU make build parts - buildfix-icu-4.9.diff: fix build with icu-4.9; needed for openSUSE-12.2 - clean up configure switches: * move switches from SUSE*.conf to spec files * use --with-system-headers and --with-system-libs to prefer system stuff over internal copies * use --without-system-<library> only for stuff that is not packaged or not patched in the SUSE distribution, for example libvisio, redland, mythes * bin not longer existing options - build zip-3.0 only for openSUSE < 11.4 - add patches for the extra zip-3.0 from the last zip package - make sure that parallel build is used for dmake and GNU make build parts OBS-URL: https://build.opensuse.org/request/show/114864 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libreoffice?expand=0&rev=31
2012-04-26 17:35:13 +02:00
--without-fonts \
--without-myspell-dicts \
--with-jdk-home=$JAVA_HOME \
--with-beanshell-jar=%{_datadir}/java/bsh2/bsh.jar \
--with-ant-home=%{_datadir}/ant \
--with-external-dict-dir=%{_datadir}/hunspell \
--with-external-hyph-dir=%{_datadir}/hyphen \
--with-external-thes-dir=%{_datadir}/mythes \
--without-helppack-integration \
--without-help \
--without-export-validation \
Accepting request 114864 from LibreOffice:Unstable this is needed to fix build in Factory - buildfix-icu-4.9.diff: fix build with icu-4.9; needed for openSUSE-12.2 - clean up configure switches: * move switches from SUSE*.conf to spec files * use --with-system-headers and --with-system-libs to prefer system stuff over internal copies * use --without-system-<library> only for stuff that is not packaged or not patched in the SUSE distribution, for example libvisio, redland, mythes * bin not longer existing options - remove unused python-devel from BuildRequires - build zip-3.0 only for openSUSE < 11.4 - add patches for the extra zip-3.0 from the last zip package - make sure that parallel build is used for dmake and GNU make build parts - buildfix-icu-4.9.diff: fix build with icu-4.9; needed for openSUSE-12.2 - clean up configure switches: * move switches from SUSE*.conf to spec files * use --with-system-headers and --with-system-libs to prefer system stuff over internal copies * use --without-system-<library> only for stuff that is not packaged or not patched in the SUSE distribution, for example libvisio, redland, mythes * bin not longer existing options - build zip-3.0 only for openSUSE < 11.4 - add patches for the extra zip-3.0 from the last zip package - make sure that parallel build is used for dmake and GNU make build parts OBS-URL: https://build.opensuse.org/request/show/114864 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libreoffice?expand=0&rev=31
2012-04-26 17:35:13 +02:00
--enable-odk \
%if %{with kdeintegration}
--disable-qt5 \
--enable-kde4 \
%else
--disable-qt5 \
--disable-kde4 \
%endif
%if %{with system_gpgme}
--with-system-gpgmepp \
%else
--without-system-gpgmepp \
%endif
%if %{with firebird}
--enable-firebird-sdbc \
%else
--disable-firebird-sdbc \
%endif
Accepting request 114864 from LibreOffice:Unstable this is needed to fix build in Factory - buildfix-icu-4.9.diff: fix build with icu-4.9; needed for openSUSE-12.2 - clean up configure switches: * move switches from SUSE*.conf to spec files * use --with-system-headers and --with-system-libs to prefer system stuff over internal copies * use --without-system-<library> only for stuff that is not packaged or not patched in the SUSE distribution, for example libvisio, redland, mythes * bin not longer existing options - remove unused python-devel from BuildRequires - build zip-3.0 only for openSUSE < 11.4 - add patches for the extra zip-3.0 from the last zip package - make sure that parallel build is used for dmake and GNU make build parts - buildfix-icu-4.9.diff: fix build with icu-4.9; needed for openSUSE-12.2 - clean up configure switches: * move switches from SUSE*.conf to spec files * use --with-system-headers and --with-system-libs to prefer system stuff over internal copies * use --without-system-<library> only for stuff that is not packaged or not patched in the SUSE distribution, for example libvisio, redland, mythes * bin not longer existing options - build zip-3.0 only for openSUSE < 11.4 - add patches for the extra zip-3.0 from the last zip package - make sure that parallel build is used for dmake and GNU make build parts OBS-URL: https://build.opensuse.org/request/show/114864 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libreoffice?expand=0&rev=31
2012-04-26 17:35:13 +02:00
--enable-evolution2 \
--enable-dbus \
--enable-ext-ct2n \
--enable-ext-nlpsolver \
--enable-ext-numbertext \
--enable-ext-wiki-publisher \
--enable-ext-mariadb-connector \
--enable-scripting-beanshell \
--enable-scripting-javascript \
--disable-vlc \
--enable-neon \
--disable-ccache \
--disable-coinmp \
--enable-symbols \
--with-gdrive-client-secret="${google_default_client_secret}" \
--with-gdrive-client-id="${google_default_client_id}"
# no coinormp packages for coinmp
# just call make here as we added the jobs in configure
make build-nocheck
%check
# Run tests only on 64b intel as they are resource hogs
%ifarch x86_64
make
%endif
%install
make DESTDIR=%{buildroot} distro-pack-install
# Do not pollute build log
set +x
# Split out gtk3 interface to -gtk3 subpackage
grep -v "%{_libdir}/libreoffice/program/libvclplug_gtk3lo.so" file-lists/gnome_list.txt > tmplist
mv tmplist file-lists/gnome_list.txt
# also split out gtk2 interface to make sure we do not pull gtk2 for fun of it
grep -v "%{_libdir}/libreoffice/program/libvclplug_gtklo.so" file-lists/gnome_list.txt > tmplist
mv tmplist file-lists/gnome_list.txt
# Remove firebird connector from main package filelist
%if %{with firebird}
grep -v "%{_libdir}/libreoffice/program/libfirebird_sdbclo.so" file-lists/common_list.txt > tmplist
mv tmplist file-lists/common_list.txt
%endif
################
# update desktop files
builddir=`pwd`
cd %{buildroot}%{_datadir}/applications
for desktop in * ; do
# relative link is needed by %%suse_update_desktop_file
relative_target=`readlink $desktop | sed "s|%{_libdir}|../../%{_lib}|"`
# FIXME: remove the libreoffice- prefix because the old desktop files are preferred in %{_sysconfdir}/gnome_defaults.conf
desktop_new=`echo $desktop | sed -e "s/%{name}-//"`
rm $desktop
sed -i -e "s|%{_datadir}/applications/$desktop|%{_datadir}/applications/$desktop_new|" $builddir/file-lists/*.txt
# finally, create the right link
ln -sf $relative_target $desktop_new
# enable startup notification (bnc#796875)
grep -q "NoDisplay=true" $desktop_new || sed -i "s/\(\[Desktop Entry\]\)/\1\nStartupNotify=true/" $desktop_new
# suse_update
app=`echo $desktop_new | sed "s/.desktop//"`
%suse_update_desktop_file $app
done
sed -i -e 's:NoDisplay=false:NoDisplay=true:g' %{buildroot}/%{_datadir}/applications/math.desktop
cd -
################
# compat stuff for noarch packages
mkdir -p %{buildroot}/%{_datadir}/%{name}/program
echo "%dir %{_libdir}/%{name}" >>file-lists/common_list.txt
echo "%dir %{_datadir}/%{name}" >>file-lists/common_list.txt
echo "%dir %{_datadir}/%{name}/program" >>file-lists/common_list.txt
################
# helper script for noarch packages
# add missing directories to the file list
for dir in `find %{buildroot}/%{_datadir}/icons/gnome -type d` ; do
dir=`echo $dir | sed -e "s|%{buildroot}||"`
echo "%dir $dir" >>file-lists/common_list.txt
done
echo "%dir %{_datadir}/application-registry" >>file-lists/common_list.txt
echo "%dir %{_datadir}/mime-info" >>file-lists/common_list.txt
#################################
# Move split noarch data to share
#################################
for i in %{buildroot}%{_libdir}/%{name}/program/resource/*/*/*.mo \
%{buildroot}%{_libdir}/%{name}/share/registry/res/fcfg_langpack_*.xcd \
%{buildroot}%{_libdir}/%{name}/share/registry/res/registry_*.xcd \
%{buildroot}%{_libdir}/%{name}/share/registry/Langpack-*.xcd \
%{buildroot}%{_libdir}/%{name}/share/config/images*.zip \
%{buildroot}%{_libdir}/%{name}/share/registry/{cjk,ctl}_*.xcd \
%{buildroot}%{_libdir}/%{name}/share/registry/ctlseqcheck_th.xcd \
%{buildroot}%{_libdir}/%{name}/share/wizards/*.properties \
; do
trg="`dirname "$i" | sed 's|%{_libdir}|%{_datadir}|'`"
mkdir -p "$trg"
mv "$i" "$trg"
done
# help files are luckily in just one folder
mkdir -p %{buildroot}/%{_datadir}/%{name}/help/
grep -v '%{_libdir}/%{name}/help' file-lists/common_list.txt > tmplist
mv tmplist file-lists/common_list.txt
echo "%dir %{_datadir}/%{name}/help" >>file-lists/common_list.txt
mv %{buildroot}/%{_libdir}/%{name}/help/ %{buildroot}/%{_datadir}/%{name}/
mkdir -p %{buildroot}/%{_libdir}/%{name}/help/
echo "%dir %{_libdir}/%{name}/help" >>file-lists/common_list.txt
for file in idxcaption.xsl idxcontent.xsl main_transform.xsl ; do
mv "%{buildroot}/%{_datadir}/%{name}/help/$file" "%{buildroot}/%{_libdir}/%{name}/help/$file"
echo "%{_libdir}/%{name}/help/$file" >> file-lists/common_list.txt
done
# autotext is another self contained dir
mkdir -p %{buildroot}/%{_datadir}/%{name}/share/autotext/
grep -v '%{_libdir}/%{name}/share/autotext' file-lists/common_list.txt > tmplist
mv tmplist file-lists/common_list.txt
mv %{buildroot}/%{_libdir}/%{name}/share/autotext/ %{buildroot}/%{_datadir}/%{name}/share/
# translations of java apps should be in lang pkgs too
grep -v '%{_libdir}/%{name}/share/wizards' file-lists/common_list.txt > tmplist
mv tmplist file-lists/common_list.txt
# the sr is dupe of sr_Latn
rm -rf %{buildroot}%{datadir}/%{name}/share/wizards/resources_sr.properties
################
# branding split
################
# create symlinks for all brandings to noarch pkg
mkdir -p %{buildroot}/%{_datadir}/%{name}/program/shell
echo "%{_datadir}/%{name}/program/shell" >> file-lists/branding_upstream.txt
for file in sofficerc \
intro.png \
flat_logo.svg \
shell/about.svg ; do
mv "%{buildroot}%{_libdir}/%{name}/program/$file" "%{buildroot}%{_datadir}/%{name}/program/$file"
ln -sf "%{_datadir}/%{name}/program/$file" "%{buildroot}/%{_libdir}/%{name}/program/$file"
echo "%{_datadir}/%{name}/program/$file" >> file-lists/branding_upstream.txt
done
# Fix autocorr names for various language mutations
%make_autocorr_aliases -l en-GB en-AG en-AU en-BS en-BW en-BZ en-CA en-DK en-GH en-HK en-IE en-IN en-JM en-NG en-NZ en-SG en-TT
%make_autocorr_aliases -l en-US en-PH
%make_autocorr_aliases -l en-ZA en-NA en-ZW
%make_autocorr_aliases -l af-ZA af-NA
%make_autocorr_aliases -l de de-DE de-AT de-BE de-CH de-LI de-LU
%make_autocorr_aliases -l es es-ES es-AR es-BO es-CL es-CO es-CR es-CU es-DO es-EC es-GT es-HN es-MX es-NI es-PA es-PE es-PR es-PY es-SV es-US es-UY es-VE
%make_autocorr_aliases -l fr fr-FR fr-BE fr-CA fr-CH fr-LU fr-MC
%make_autocorr_aliases -l it it-IT it-CH
%make_autocorr_aliases -l nl-NL nl-AW
%make_autocorr_aliases -l sv-SE sv-FI
pushd %{buildroot}%{_libdir}/%{name}/share/autocorr
files=""
for file in acor*.dat; do
files="$files $file"
done
popd
for file in $files; do
echo "%{_libdir}/%{name}/share/autocorr/$file" >> file-lists/common_list.txt
done
# Install appdata files, so we're shown in gnome-software (and other, future app stores)
# upstream ships the files called libreoffice-{base,writer,...}, but the destop files are called base.destop [...]
# fixup the appdata files internal reference to the .desktop file and rename them on the go to match the name
install -m 0755 -d %{buildroot}%{_datadir}/appdata
for appdata in base calc draw impress writer; do
sed "s/libreoffice-${appdata}.desktop/${appdata}.desktop/" \
sysui/desktop/appstream-appdata/libreoffice-${appdata}.appdata.xml > %{buildroot}%{_datadir}/appdata/${appdata}.appdata.xml
echo "%{_datadir}/appdata/${appdata}.appdata.xml" >>file-lists/${appdata}_list.txt
%if 0%{?suse_version} < 1320
echo "%dir %{_datadir}/appdata/" >>file-lists/${appdata}_list.txt
%endif
rm -rf %{buildroot}%{_datadir}/appdata/libreoffice-${appdata}.appdata.xml
done
%if %{with kdeintegration}
echo "%{_datadir}/appdata/org.libreoffice.kde.metainfo.xml" >>file-lists/kde4_list.txt
%else
rm -f %{buildroot}%{_datadir}/appdata/org.libreoffice.kde.metainfo.xml
%endif
# Remove pointless readmes
rm -rf %{buildroot}%{_libdir}/%{name}/readmes/
# Prepare uno path detection, can't be patched in because it breaks tests
echo "import sys, os" > uno.py
echo "sys.path.append('%{_libdir}/%{name}/program')" >> uno.py
echo "os.putenv('URE_BOOTSTRAP', 'vnd.sun.star.pathname:%{_libdir}/libreoffice/program/fundamentalrc')" >> uno.py
cat %{buildroot}%{_libdir}/%{name}/program/uno.py >> uno.py
cp uno.py %{buildroot}%{_libdir}/%{name}/program/uno.py
# Generate python cache files
%py3_compile %{buildroot}/%{_libdir}/libreoffice/program/
%py3_compile %{buildroot}/%{_libdir}/libreoffice/share/extensions/
%py3_compile %{buildroot}/%{_libdir}/libreoffice/share/Scripts/python/
%py3_compile %{buildroot}/%{_libdir}/libreoffice/sdk/examples/python/
# Move python cache to respective filelist
for i in file-lists/*.txt; do
if [ `cat "${i}" | grep '\.py$' |wc -l` -gt 0 ]; then
cat "${i}" | grep '\.py$' > pyfiles.txt
for j in `cat pyfiles.txt`; do
# python3 has __pycache__ dir while py2 does not
pydir="${j%/*}"
pyname="${j##*/}"
echo "%dir ${pydir}/__pycache__/" >> "${i}"
echo "${pydir}/__pycache__/${pyname%.*}*.pyc" >> "${i}"
done
fi
done
rm pyfiles.txt
# Install color palette
cp %{SOURCE3} %{buildroot}%{_libdir}/libreoffice/share/palette/SUSE.soc
echo "%{_libdir}/libreoffice/share/palette/SUSE.soc" >> file-lists/common_list.txt
# Symlink libreofficekit to libdir
ln -s %{_libdir}/%{name}/program/liblibreofficekitgtk.so %{buildroot}%{_libdir}/liblibreofficekitgtk.so
%if !%{with system_gpgme}
chrpath --replace '$ORIGIN' %{buildroot}%{_libdir}/%{name}/program/libgpgme.so.11
chrpath --replace '$ORIGIN' %{buildroot}%{_libdir}/%{name}/program/libgpgmepp.so.6
chrpath --replace '$ORIGIN' %{buildroot}%{_libdir}/%{name}/program/libassuan.so.0
chrpath --replace '$ORIGIN' %{buildroot}%{_libdir}/%{name}/program/libgpg-error.so.0
%endif
# Symlink uno.py and unohelper.py so that python can find them
# This is done after the cache files generating on purpose
mkdir -p %{buildroot}%{python3_sitelib}
ln -s %{_libdir}/libreoffice/program/uno.py %{buildroot}%{python3_sitelib}/uno.py
ln -s %{_libdir}/libreoffice/program/unohelper.py %{buildroot}%{python3_sitelib}/unohelper.py
ln -s %{_libdir}/libreoffice/program/officehelper.py %{buildroot}%{python3_sitelib}/officehelper.py
echo "%{python3_sitelib}/uno.py" >> file-lists/pyuno_list.txt
echo "%{python3_sitelib}/unohelper.py" >> file-lists/pyuno_list.txt
echo "%{python3_sitelib}/officehelper.py" >> file-lists/pyuno_list.txt
# move glade catalog to system glade dir
install -m 0755 -d %{buildroot}%{_datadir}/glade/catalogs
mv %{buildroot}%{_libdir}/%{name}/share/glade/libreoffice-catalog.xml %{buildroot}%{_datadir}/glade/catalogs
install -m 0755 -d %{buildroot}%{_datadir}/glade3/catalogs
ln -s %{_datadir}/glade/catalogs/libreoffice-catalog.xml %{buildroot}%{_datadir}/glade3/catalogs
grep -v '%{_libdir}/%{name}/share/glade/libreoffice-catalog.xml' file-lists/common_list.txt > tmplist
mv tmplist file-lists/common_list.txt
# install gdb pretty printers
export DESTDIR=%{buildroot}
export SRCDIR="./"
./solenv/bin/install-gdb-printers -a %{_datadir}/gdb/auto-load%{_libdir}/%{name} -c -i %{_libdir}/%{name} -p %{_datadir}/libreoffice/gdb
# Libreofficekit headers
mkdir -p %{buildroot}%{_includedir}/LibreOfficeKit/
install -m 0644 include/LibreOfficeKit/*.h %{buildroot}%{_includedir}/LibreOfficeKit/
# We have ton of duped files so run over it
%fdupes %{buildroot}%{_prefix}
%post
/sbin/ldconfig
%mime_database_post
%desktop_database_post
%icon_theme_cache_post
%preun
uno_cache="%{_libdir}/%{name}/share/uno_packages/cache/uno_packages/"
if [ "$1" = "0" ] ; then
test -d "$uno_cache" && rm -rf "$uno_cache"/*
fi
exit 0
%postun
/sbin/ldconfig
%icon_theme_cache_postun
%desktop_database_postun
%mime_database_postun
%post base
%desktop_database_post
%postun base
%desktop_database_postun
%post calc
%desktop_database_post
%postun calc
%desktop_database_postun
%post draw
%desktop_database_post
%postun draw
%desktop_database_postun
%post math
%desktop_database_post
%postun math
%desktop_database_postun
%post impress
%desktop_database_post
%postun impress
%desktop_database_postun
%post writer
%desktop_database_post
%postun writer
%desktop_database_postun
%_link_noarch_files icon-themes
%files -f file-lists/common_list.txt
# ignore helper files for brp-symlink check
%exclude %{_datadir}/%{name}/program/sofficerc
%exclude %{_datadir}/%{name}/program/flat_logo.svg
%exclude %{_datadir}/%{name}/program/*.png
%exclude %{_datadir}/%{name}/program/shell/*.svg
%if 0%{?suse_version} < 1330
%dir %{_datadir}/icons/hicolor/512x512
%dir %{_datadir}/icons/hicolor/512x512/apps
%dir %{_datadir}/icons/hicolor/512x512/mimetypes
%endif
# FIXME: this is KDE4 only, wipe?
%dir %{_datadir}/icons/locolor
%dir %{_datadir}/icons/locolor/16x16
%dir %{_datadir}/icons/locolor/16x16/apps
%dir %{_datadir}/icons/locolor/16x16/mimetypes
%dir %{_datadir}/icons/locolor/32x32
%dir %{_datadir}/icons/locolor/32x32/apps
%dir %{_datadir}/icons/locolor/32x32/mimetypes
%files -n libreofficekit
%dir %{_libdir}/girepository-1.0
%{_libdir}/girepository-1.0/LOKDocView-0.1.typelib
%{_libdir}/liblibreofficekitgtk.so
%dir %{_libdir}/libreoffice/share/libreofficekit
%{_libdir}/libreoffice/share/libreofficekit/handle_image_end.png
%{_libdir}/libreoffice/share/libreofficekit/handle_image_middle.png
%{_libdir}/libreoffice/share/libreofficekit/handle_image_start.png
%files -n libreofficekit-devel
%dir %{_datadir}/gir-1.0
%{_datadir}/gir-1.0/LOKDocView-0.1.gir
%dir %{_includedir}/LibreOfficeKit
%{_includedir}/LibreOfficeKit/*.h
%files glade
%dir %{_datadir}/glade
%dir %{_datadir}/glade/catalogs
%{_datadir}/glade/catalogs/libreoffice-catalog.xml
%dir %{_datadir}/glade3
%dir %{_datadir}/glade3/catalogs
%{_datadir}/glade3/catalogs/libreoffice-catalog.xml
%files gdb-pretty-printers
%{_datadir}/gdb/auto-load/%{_libdir}/%{name}
%{_datadir}/libreoffice/gdb
%files -f file-lists/base_list.txt base
%files -f file-lists/calc_list.txt calc
%files -f file-lists/draw_list.txt draw
%files -f file-lists/math_list.txt math
%files -f file-lists/impress_list.txt impress
%files -f file-lists/writer_list.txt writer
%files -f file-lists/postgresql_list.txt base-drivers-postgresql
%if %{with firebird}
%files base-drivers-firebird
%{_libdir}/libreoffice/program/libfirebird_sdbclo.so
%endif
%files -f file-lists/filters_list.txt filters-optional
%files -f file-lists/mailmerge_list.txt mailmerge
%files -f file-lists/pyuno_list.txt pyuno
%files -f file-lists/gnome_list.txt gnome
%files gtk3
%{_libdir}/libreoffice/program/libvclplug_gtk3lo.so
%files gtk2
%{_libdir}/libreoffice/program/libvclplug_gtklo.so
%if %{with kdeintegration}
%files -f file-lists/kde4_list.txt kde4
%endif
%files -f file-lists/officebean_list.txt officebean
%files -f file-lists/sdk_list.txt sdk
%dir %{_libdir}/libreoffice/sdk/lib
%files -f file-lists/sdk_doc_list.txt sdk-doc
%files base-drivers-mysql
%{_libdir}/%{name}/share/extensions/mysql-connector-ooo
%files calc-extensions
%{_libdir}/%{name}/share/extensions/ConvertTextToNumber
%{_libdir}/%{name}/share/extensions/nlpsolver
%{_libdir}/%{name}/share/extensions/numbertext
%files writer-extensions
%{_libdir}/%{name}/share/extensions/wiki-publisher
%files icon-themes
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/share
%dir %{_datadir}/%{name}/share/config
%{_datadir}/%{name}/share/config/images_breeze.zip
%{_datadir}/%{name}/share/config/images_breeze_dark.zip
%{_datadir}/%{name}/share/config/images_elementary.zip
%{_datadir}/%{name}/share/config/images_galaxy.zip
%{_datadir}/%{name}/share/config/images_hicontrast.zip
%{_datadir}/%{name}/share/config/images_sifr.zip
%{_datadir}/%{name}/share/config/images_sifr_dark.zip
%{_datadir}/%{name}/share/config/images_tango.zip
%files -f file-lists/branding_upstream.txt branding-upstream
%changelog