File libreoffice-languagetool.spec.in of Package libreoffice-languagetool.openSUSE_11.4_Update

#
# spec file for package libreoffice-languagetool
#
# Copyright (c) 2012 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/
#


@DO_NOT_EDIT_COMMENT@
Name:           libreoffice-languagetool
Version:        1.4
Release:        0
#!BuildIgnore:  libreoffice
%define	        ooo_prefix      %{_libdir}
%define	        ooo_home        libreoffice
# ignore cs because of an unlclear license; also unsupported
# ignore sk unknown license; almost empty dictionary
# ignore uk (unsupported)
%define	        langtool_langs  ca de en es fr gl it km pl nl ro ru sk sv
Summary:        Language Checker for LibreOffice
License:        @ALL_LICENSES@
Group:          Productivity/Office/Suite
Url:            http://www.languagetool.org/
# svn co https://languagetool.svn.sourceforge.net/svnroot/languagetool languagetool
# cd tags/V_1_4/JLanguageTool
# rm src/resource/cs/{*.dict,*.info}  because of unclear licese; also it is not longer supported (only a bachelor's thesis)
# rm src/resource/uk/{*.dict,*.info}  because of unclear licese
# rm src/resource/ml/{*.dict,*.info}  because of unclear licese
# rm -rf libs/ooo
#    + we use these jars from our libreoffice packages
# FIXME: wanted to remove libs/commons-logging-1.1.1.jar but it was not available on SLED11
#        it is small file (60kB) => it is not worth doing special hacks for SLED11 and other distros
# NOTE: jakarta-regexp-1.4.jar uses the Apache License, v2.0, see http://archive.apache.org/dist/jakarta/regexp/jakarta-regexp-1.4.tar.gz
Source0:        JLanguageTool-%{version}.tar.bz2
# helper files to generate the spec file
Source100:      libreoffice-languagetool.spec.in
Source101:      lo-languagetool-data
Source102:      lo-languagetool-gen-spec
# PATCH-FIX-OPENSUSE ignore dictionaries that are not installed; it allows to package them separately
Patch0:         JLanguageTool-1.4-package-dicts-separately.diff
# PATCH-FIX-OPENSUSE use the system libreoffice jars
Patch1:         JLanguageTool-0.9.3-system-ooo-jars.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
Patch2:         JLanguageTool-1.4-no-broken-help.diff
BuildRequires:  ant
BuildRequires:  java-devel
BuildRequires:  libreoffice >= 3.5
BuildRequires:  unzip
# dependencies for post install scripts
%if 0%{?suse_version} > 01120
Requires(post):   coreutils
Requires(post):   grep
Requires(post):   libreoffice >= 3.5
Requires(postun): coreutils
Requires(postun): grep
Requires(postun): libreoffice >= 3.5
%endif
%if 0%{?suse_version} && 0%{?suse_version} <= 01120
PreReq:         coreutils
PreReq:         grep
PreReq:         libreoffice >= 3.5
%endif
Requires:       jre >= 1.6
Requires:       libreoffice >= 3.5
# the Czech stuff newer worked; the package was created by mistake
Obsoletes:      OpenOffice_org-LanguageTool-cs < 0.9.9
# compat stuff
Provides:       OpenOffice_org-LanguageTool = %{version}
Obsoletes:      OpenOffice_org-LanguageTool <= %{version}
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildArch:      noarch

%description
This package provides the language checker extension for
LibreOffice. It allows to detect errors that a simple spell checker
cannot detect, e.g. mixing up there/their, no/now etc. It can also
detect some grammar mistakes. It does not include spell checking.

The language checker uses special dictionaries that are provided by the
libreoffice-languagetool-<lang> packages.

@METADATA@
%prep
%setup -q -n JLanguageTool-%{version}
%patch0
%patch1
%patch2
cp libs/README libs/README-libs.txt

%build
ant -Dsys.ooo.dir=%{_libdir}/%ooo_home dist

%install
# skip the check for java bytecode version; it uses some jar files prebuilt with JRE-1.6
# can't be complied with JDK-1.5; the dependency on JRE-1.5 is solved at runtime
export NO_BRP_CHECK_BYTECODE_VERSION="true"
# main package
oxt=$(pwd)/dist/LanguageTool-%{version}.oxt
mkdir -p %{buildroot}%{_datadir}/%ooo_home/share/extensions/languagetool-%{version}
cd %{buildroot}%{_datadir}/%ooo_home/share/extensions/languagetool-%{version}
unzip "$oxt"
cd - >/dev/null 2>&1
# dictionaries
for lang in %langtool_langs ; do
    # dir
    mkdir -p %{buildroot}%{_datadir}/%ooo_home/ure/lib/resource/$lang
    echo "%dir %{_datadir}/%ooo_home" >files-langtool-$lang.txt
    echo "%dir %{_datadir}/%ooo_home/ure" >>files-langtool-$lang.txt
    echo "%dir %{_datadir}/%ooo_home/ure/lib" >>files-langtool-$lang.txt
    echo "%dir %{_datadir}/%ooo_home/ure/lib/resource" >>files-langtool-$lang.txt
    echo "%dir %{_datadir}/%ooo_home/ure/lib/resource/$lang" >>files-langtool-$lang.txt
    # files
    for file in src/resource/$lang/{*.dict,*.info} ; do
	filename=${file#src/resource/$lang/}
	cp $file %{buildroot}%{_datadir}/%ooo_home/ure/lib/resource/$lang/$filename
	echo "%{_datadir}/%ooo_home/ure/lib/resource/$lang/$filename" >>files-langtool-$lang.txt
    done
    cp files-langtool-$lang.txt %{buildroot}%{_datadir}/%ooo_home
    echo "%{_datadir}/%ooo_home/files-langtool-$lang.txt" >>files-langtool-$lang.txt
    # common README.txt
    echo "%doc README.txt" >>files-langtool-$lang.txt
done
# we need to create architecture dependent symlinks even for the main package
# create file list for link-to-ooo-home script
find %{buildroot}%{_datadir}/%ooo_home/share/extensions/languagetool-%{version}/ -type d \
     -printf "%%%%dir %{_datadir}/%ooo_home/share/extensions/languagetool-%{version}/%%P\n" \
     >files-langtool.txt
find %{buildroot}%{_datadir}/%ooo_home/share/extensions/languagetool-%{version}/ -type f \
     -printf "%{_datadir}/%ooo_home/share/extensions/languagetool-%{version}/%%P\n" \
     >>files-langtool.txt
cp files-langtool.txt %{buildroot}%{_datadir}/%ooo_home
echo "%{_datadir}/%ooo_home/files-langtool.txt" >>files-langtool.txt

%clean
rm -rf %{buildroot}

%files -f files-langtool.txt
%defattr(-,root,root)
%doc CHANGES.txt COPYING.txt README.txt libs/*.txt libs/build/junit-license.txt
%dir %{_datadir}/%ooo_home
%dir %{_datadir}/%ooo_home/share
%dir %{_datadir}/%ooo_home/share/extensions

%pre
if test -f %{_datadir}/ooo3/share/extension/install/LanguageTool-*.oxt ; then
    # unregister the extension that was added by OOo-LanguageTool and LO packages
    if unopkg list --shared | grep -q "org.openoffice.languagetool.oxt" ; then
        unopkg remove --shared org.openoffice.languagetool.oxt || true;
    fi
    # explain errors if extension that was added by OOo-LanguageTool and OOo packages
    echo
    echo "WARNING: Please ignore the following error about the extension:"
    echo "WARNING:     org.openoffice.languagetool.oxt"
    echo "WARNING: It is printed by the old OpenOffice_org package. The extension cannot"
    echo "WARNING: be unregistered from the OOo cache because unopkg tool already"
    echo "WARNING: works with the LO cache. The LO installation will be correct!"
    echo
fi
# the initial libreoffice packages symlinked the whole directory a wrong way (bnc#677354)
home_path="%ooo_home/share/extensions/languagetool-%{version}"
for link in "/usr/lib/$home_path" "/usr/lib64/$home_path" ; do
    test -L "$link" && rm "$link" || true
done

%post
# link to the directory where the extenisons is automatically detected
%{_datadir}/%ooo_home/link-to-ooo-home %{_datadir}/%ooo_home/files-langtool.txt || true

%posttrans
# update UNO cache for bundled extensions
%{_sbindir}/unopkg-sync-bundled || true

%preun
test "$1" = "0" && cp %{_datadir}/%ooo_home/files-langtool.txt %{_datadir}/%ooo_home/files-langtool.txt.postun || true

%postun
test "$1" = "0" && %{_datadir}/%ooo_home/link-to-ooo-home --unlink %{_datadir}/%ooo_home/files-langtool.txt.postun || true
rm -f %{_datadir}/%ooo_home/files-langtool.txt.postun 2>/dev/null
# update UNO cache for bundled extensions
%{_sbindir}/unopkg-sync-bundled || true

@INSTALL_SCRIPTS@
@FILES@
%changelog