openoffice.org-voikko broken in F7 and F8, please review some changes
Ville-Pekka Vainio
vpivaini at cs.helsinki.fi
Sat Feb 9 11:07:56 UTC 2008
Hi all,
I noticed my package openoffice.org-voikko being broken in F7 and F8 after it
had already been pushed to the stable updates, so now there's a broken
package in these releases and I'd like to fix it ASAP. In the future, I'll
definitely try to be more thorough with testing my packages.
There are two problems with this package:
1) It tries to install an .oxt extension unzipped (an .oxt file is basically a
library and some XML files in a zip). However, apparently unzipped extensions
only work in Rawhide, so in F7 and F8 I need to install the .oxt file as
such.
Is it ok to install the .oxt file into %{_libdir}/%{name}
(/usr/lib/openoffice.org-voikko) even though it's not actually a library as
such, but there is a library inside the file? Any better locations?
2) /usr/lib/openoffice.org/program/unopkg creates files into the user's home
directory when it's being used. This creates problems if the package is
installed with sudo and the user invoking sudo is currently running OO.o, the
extension won't be installed into OO.o even though the files get copied onto
the filesystem.
And even if the user is not running OO.o while installing the package with
sudo, unopkg apparently creates root owned files in the user's home
directory. There's a following workaround in the Debian package:
TMP_HOME="$(mktemp -t -d $PACKAGE_NAME.XXXXXX)" || exit 1
export HOME="$TMP_HOME"
<run unopkg here>
rm -rf "$TMP_HOME"
Running the rm -rf is a bit ugly, but what do you think, is it ok or too
risky? I've tested it on my own systems, it appears to not cause any
problems. If I don't do this, installing openoffice.org-voikko with sudo may
cause problems to the user. I'd like to get an 'ok' from at least one other
packager before doing this, though.
Here's the spec file so you can see the whole situation, it still echoes the
dir it's about to remove, just for safety reasons while testing:
Name: openoffice.org-voikko
Version: 2.1
Release: 2%{?dist}
Summary: Finnish spellchecker and hyphenator extension for
OpenOffice.org
Group: Applications/Productivity
License: GPLv2+
URL: http://voikko.sourceforge.net/
Source0:
http://downloads.sourceforge.net/voikko/%{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: openoffice.org-sdk >= 2.0.4 libvoikko-devel >= 1.5
Requires(pre): openoffice.org-core
Requires(post): openoffice.org-core
Requires(preun): openoffice.org-core
Requires(postun): openoffice.org-core
Requires: openoffice.org-core >= 2.0.4 libvoikko >= 1.5
%define oo2_sdk %{_libdir}/openoffice.org/sdk
%define oo2 %{_libdir}/openoffice.org
%define unopkg %{oo2}/program/unopkg
%define voikkodir %{_libdir}/%{name}
%define voikkoext %{_libdir}/%{name}/voikko.oxt
# Can't make debug package as long as we need to install the .oxt file
%define debug_package %{nil}
%description
This package contains a Finnish spell-checking and hyphenation component for
OpenOffice.org. The actual spell-checking and hyphenation functionality is
provided by the Voikko library.
%prep
%setup -q
%build
. %{oo2_sdk}/setsdkenv_unix.sh
make %{?_smp_mflags}
%install
rm -rf $RPM_BUILD_ROOT
cd build
voikkoPackage=$(pwd)/voikko.oxt;
# OOo extension
install -d -m 755 $RPM_BUILD_ROOT%{voikkodir}
install -p -m 644 "$voikkoPackage" $RPM_BUILD_ROOT%{voikkodir}
# The TMP_HOME trick is taken from the Debian scripts by Teemu Likonen:
# Registering program 'unopkg' writes things to $HOME/.openoffice* directory
# (even with the '--shared' option). We must set $HOME to some temporary
# directory so that these (root owned) files don't get written to the regular
# user's HOME in case he/she runs this with sudo.
%pre
if [ $1 -gt 1 ]; then
# Upgrade => deregister old extension
TMP_HOME="$(mktemp -t -d $PACKAGE_NAME.XXXXXX)" || exit 1
export HOME="$TMP_HOME"
echo pre home $HOME
%{unopkg} remove --shared
org.puimula.ooovoikko -env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY=1 || :
rm -rf "$TMP_HOME"
fi
%post
# register extension
TMP_HOME="$(mktemp -t -d $PACKAGE_NAME.XXXXXX)" || exit 1
export HOME="$TMP_HOME"
echo post home $HOME
%{unopkg}
add --shared %{voikkoext} -env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY=1 || :
rm -rf "$TMP_HOME"
%preun
if [ $1 -eq 0 ]; then
# not upgrading => deregister
TMP_HOME="$(mktemp -t -d $PACKAGE_NAME.XXXXXX)" || exit 1
export HOME="$TMP_HOME"
echo preun home $HOME
%{unopkg} remove --shared
org.puimula.ooovoikko -env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY=1 || :
rm -rf "$TMP_HOME"
fi
%postun
# clear disk cache
TMP_HOME="$(mktemp -t -d $PACKAGE_NAME.XXXXXX)" || exit 1
export HOME="$TMP_HOME"
echo postun home $HOME
%{unopkg} list --shared -env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY=1
> /dev/null 2>&1 || :
rm -rf "$TMP_HOME"
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
%{voikkodir}
%doc ChangeLog COPYING README
%changelog
<snip>
--
Ville-Pekka Vainio
More information about the fedora-devel-list
mailing list