File libreoffice-ure.spec of Package libreoffice-ure
#
# spec file for package libreoffice-ure
#
# Copyright (c) 2011 SUSE LINUX Products 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/
#
# norootforbuild
Name: libreoffice-ure
Version: 3.3.1.2
Release: 1.<RELEASE2>
%define piece ure
%define ooo_build_version 3.3.1.2
%define ooo_piece_version 3.3.1.2
%define ooo_sourcedirname libreoffice-build-%ooo_build_version
%define ooo_prefix %_libdir
%define ooo_home libreoffice
%define ooo_basis_dir basis3.3
#!BuildIgnore: libreoffice
BuildRequires: libreoffice-bootstrap = %version
BuildRequires: ImageMagick ant ant-apache-regexp bison boost-devel ccache cups-devel curl-devel flac-devel flex gcc-c++ gnome-vfs2-devel gperf gtk2-devel icu java-devel libxml2-devel mono-devel neon-devel pam-devel perl-Archive-Zip perl-Compress-Zlib python-devel recode unixODBC-devel unzip xml-commons-apis zip
%if 0%{?suse_version}
BuildRequires: db-devel krb5 libexif openldap2-devel xorg-x11
%endif
%if 0%{?meego_version}
BuildRequires: db4-devel krb5-devel libexif-devel openldap-devel
BuildRequires: xorg-x11-server-devel
BuildRequires: xorg-x11-proto-xproto
BuildRequires: xorg-x11-utils
%endif
############################
# KDE3 stuff
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
BuildRequires: kdelibs3-devel
%endif
############################
# cppunit stuff
%if 0%{?suse_version} >= 01100
BuildRequires: libcppunit-devel
%endif
License: LGPLv3
Group: Productivity/Office/Suite
AutoReqProv: on
%if 0%{?suse_version}
%ifarch %ix86
# libstlport_gcc4 improves compatibility with the upstream extensions (bnc#458952)
Recommends: libstlport_gcc4
%endif
%endif
# compat stuff
Provides: OpenOffice_org-ure = %version
Obsoletes: OpenOffice_org-ure <= %version
Summary: LibreOffice UNO Runtime Environment
Url: http://www.documentfoundation.org/
Source0: libreoffice-%piece-%ooo_piece_version.tar.bz2
Source1: libreoffice-sdk-%ooo_piece_version.tar.bz2
# prebuilt mono dlls for older distributions and ppc
Source100: ooo-cli-prebuilt-3.3.tar.bz2
# necessary for SDK, http://udk.openoffice.org/common/man/spec/transparentofficecomponents.html
# FIXME: can be built using mingw32 C++ compiler
Source101: 185d60944ea767075d27247c3162b3bc-unowinreg.dll
# FIXME: this patch is needed to build ure and sdk pieces at the same time
Patch990: libreoffice-3.2.99.2-piece-sdk-with-ure.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: %ix86 x86_64 ppc
%description
UNO is the basic technology used by LibreOffice. It allows to
integrate modules written in various programming languages.
%if 0%{?suse_version} <= 01130
%package -n libreoffice-mono
License: LGPLv3
Summary: Mono UNO Bridge for LibreOffice
Group: Productivity/Office/Suite
Requires: mono-core
Requires: %name = %version
Provides: OpenOffice_org-mono = %version
Obsoletes: OpenOffice_org-mono <= %version
%description -n libreoffice-mono
The Mono/UNO binding allows a Mono application to access the complete
set of APIs exposed by LibreOffice via UNO. A trivial example
use-case might be a small mono application to create a spreadsheet,
populate it with data, charts, formatting, then save that in Excel
format.
Currently the use of Mono for add-ins & scripting inside OO.o itself is
not supported.
%endif
%package -n libreoffice-pyuno
License: LGPLv3
Summary: Python UNO Bridge for LibreOffice
Group: Productivity/Office/Suite
Provides: libreoffice:%ooo_prefix/%ooo_home/program/pyuno.so
Requires: %name = %version
# compat stuff
Provides: OpenOffice_org-pyuno = %version
Obsoletes: OpenOffice_org-pyuno <= %version
%description -n libreoffice-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 devel
Requires: %name = %version
%if 0%{?suse_version} <= 01130
Requires: libreoffice-mono = %version
%endif
Requires: libreoffice-pyuno = %version
Requires: libreoffice-bootstrap = %version
# compat stuff
Provides: OpenOffice_org-ure-devel = %version
Obsoletes: OpenOffice_org-ure-devel <= %version
Provides: OpenOffice_org-sdk = %version
Obsoletes: OpenOffice_org-sdk <= %version
Provides: libreoffice-sdk = %version
License: Artistic ; BSD3c ; GPLv2+ ; LPPL .. ; LGPLv2.1+ ; LGPLv3 ; MPL .. ; MIT
Summary: LibreOffice URE Development
Group: Productivity/Office/Suite
AutoReqProv: off
%description devel
This package allows developement based on the LibreOffice UNO
runtime environment API.
%package devel-doc
Requires: %name-devel = %version
# compat stuff
Provides: OpenOffice_org-ure-devel-doc = %version
Obsoletes: OpenOffice_org-ure-devel-doc <= %version
Provides: OpenOffice_org-sdk-doc = %version
Obsoletes: OpenOffice_org-sdk-doc <= %version
Provides: libreoffice-sdk-doc = %version
License: Artistic ; BSD3c ; GPLv2+ ; LPPL .. ; LGPLv2.1+ ; LGPLv3 ; MPL .. ; MIT
Summary: LibreOffice URE Development
Group: Productivity/Office/Suite
AutoReqProv: off
%description devel-doc
This package allows developement based on the LibreOffice UNO
runtime environment API.
%prep
%setup -q -b1 -n libreoffice-%piece-%ooo_piece_version
# move sdk sources to the main build dir
mv ../libreoffice-sdk-%ooo_piece_version/* . && rmdir ../libreoffice-sdk-%ooo_piece_version
# prebuilt stuff
mkdir -p external/cli
tar -xjf %{S:100} -C external/cli
mkdir -p ooo-build/src
cp %{S:101} ooo-build/src
# FIXME: create fake prj stuff to make build happy
mkdir -p external/prj
touch external/prj/build.lst
touch external/prj/d.lst
# hotfixes
mkdir -p ooo-build/hotfixes
cp %{P:990} ooo-build/hotfixes
%build
# setup env.
export OO_INSTDIR=%{_libdir}/%ooo_home
export OO_TOOLSDIR=$OO_INSTDIR/build/bin
export VERBOSE=1
export PIECE_BUILD_NCPUS_AUTO=1
export PIECE_USE_JOBS="%{?jobs:%jobs}"
# FIXME: hack to avoid dependecy problem
$OO_TOOLSDIR/piece/build-generic %piece %ooo_sourcedirname || $OO_TOOLSDIR/piece/build-generic %piece %ooo_sourcedirname || $OO_TOOLSDIR/piece/build-generic %piece %ooo_sourcedirname
%install
# setup env.
export OO_INSTDIR=%{_libdir}/%ooo_home
export OO_TOOLSDIR=$OO_INSTDIR/build/bin
export DESTDIR=$RPM_BUILD_ROOT
# install SDK first because it removes solver
$OO_TOOLSDIR/piece/install-generic sdk %ooo_sourcedirname
$OO_TOOLSDIR/piece/install-generic %piece %ooo_sourcedirname
# bin the SDK-related zip files from solver; they were installed together with URE
find $RPM_BUILD_ROOT%ooo_prefix/%ooo_home/solver -name "*.zip" -exec rm -f {} \;
%ifarch %ix86
# helper script to create compat link needed to run upstream extensions (bnc#458952)
cat << EOF > $RPM_BUILD_ROOT%ooo_prefix/%ooo_home/ure/bin/create-libstlport-compat-links
#!/bin/sh
# helper script to create compat link needed to run upstream extensions (bnc#458952)
if ! test -L %_libdir/libstlport_gcc.so -a -r %_libdir/libstlport_gcc.so ; then
lib_name=\`ls /usr/lib/libstlport_gcc.so.4* 2>/dev/null | tail -n 1\`
if test -n "\$lib_name" -a -r "\$lib_name" ; then
lib_name=\`basename \$lib_name\`
rm -f %_libdir/libstlport_gcc.so
ln -sf \$lib_name %_libdir/libstlport_gcc.so
fi
fi
EOF
chmod 755 $RPM_BUILD_ROOT%ooo_prefix/%ooo_home/ure/bin/create-libstlport-compat-links
%endif
# compat symlink to correctly uninstall OOo
mkdir -p $RPM_BUILD_ROOT%_datadir/ooo3
ln -sf ../libreoffice/link-to-ooo-home $RPM_BUILD_ROOT%_datadir/ooo3/link-to-ooo-home
%clean
rm -rf $RPM_BUILD_ROOT
%pre
# crazy hack for the ugly extensions
if test $1 -gt 1 ; then
if test -d %{_libdir}/%ooo_home/share/uno_packages/cache -a \
-n "`find %{_libdir}/%ooo_home/share/uno_packages/cache -name LanguageTool-0.9.3.oxt`" ; then
# try to remove the LangTool extension by the older URE; it can't be
# removed with OOo-3.1 and higher
echo "Unregistering the LangTool extension from LibreOffice..."
unopkg remove --shared org.openoffice.languagetool.oxt || true;
# clear disk cache
unopkg list --shared > /dev/null 2>&1 || true;
fi
fi
%post
/sbin/ldconfig
# clean the UNO cache if there is a broken extension
unopkg-regenerate-cache %{_libdir}/%ooo_home LanguageTool-0.9.3.oxt || true
# FIXME: remove this in OOo-3.3; people should have cleaned system by the update
# to OOo-3.2, OOo-3.2.1, or they do not care
# an older version created invalid symlink /libstlport_gcc.so by mistake
# we remove it because it looks quite ugly
if test -L /libstlport_gcc.so ; then
rm -f /libstlport_gcc.so
fi
%postun
/sbin/ldconfig
%ifarch %ix86
if test $1 = 0 ; then
# OOo is removed => remove the link as well if it is not created by stlport-devel package (bnc#458952)
if test -L %_libdir/libstlport_gcc.so -a ! -r %_prefix/include/stlport/ctime ; then
rm -f %_libdir/libstlport_gcc.so
fi
fi
%endif
%ifarch %ix86
%posttrans
# the compat link was %%ghost in old OOo-ure packages, so it might be removed also during OOo-ure update (bnc#458952)
if test -f %ooo_prefix/%ooo_home/ure/bin/javaldx ; then
%ooo_prefix/%ooo_home/ure/bin/create-libstlport-compat-links || true;
fi
%endif
%ifarch %ix86
%triggerin -- libstlport_gcc4
# create compat link needed to run upstream extensions (bnc#458952)
%ooo_prefix/%ooo_home/ure/bin/create-libstlport-compat-links || true;
%endif
%ifarch %ix86
%triggerpostun -- libstlport_gcc4-devel
# create compat link needed to run upstream extensions (bnc#458952)
%ooo_prefix/%ooo_home/ure/bin/create-libstlport-compat-links || true;
%endif
%ifarch %ix86
%triggerpostun -- libstlport_gcc4
# remove compat link needed to run upstream extensions (bnc#458952)
if test $2 = 0 ; then
if test -L %_libdir/libstlport_gcc.so -a ! -r %_libdir/libstlport_gcc.so ; then
rm -f %_libdir/libstlport_gcc.so
fi
fi
exit 0
%endif
%post devel
/sbin/ldconfig
%postun devel
/sbin/ldconfig
%files -f files-%piece.txt
%defattr(-,root,root)
%ifarch %ix86
%ooo_prefix/%ooo_home/ure/bin/create-libstlport-compat-links
%endif
# compat symlink to correctly uninstall OOo
%dir %_datadir/ooo3
%_datadir/ooo3/link-to-ooo-home
%if 0%{?suse_version} <= 01130
%files -f files-mono.txt -n libreoffice-mono
%defattr(-,root,root)
%endif
%files -f files-pyuno.txt -n libreoffice-pyuno
%defattr(-,root,root)
%if 0%{?meego_version}
%ooo_prefix/%ooo_home/%ooo_basis_dir/program/*.pyc
%ooo_prefix/%ooo_home/%ooo_basis_dir/program/*.pyo
%endif
%files -f files-sdk.txt devel
%defattr(-,root,root)
%dir %ooo_prefix/%ooo_home/solver
%ooo_prefix/%ooo_home/solver/*
%files -f files-sdk-doc.txt devel-doc
%defattr(-,root,root)
%changelog