File mozilla-xulrunner181.spec of Package mozilla-xulrunner181
#
# spec file for package mozilla-xulrunner181 (Version 1.8.1.4)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
Name: mozilla-xulrunner181
BuildRequires: gcc-c++ java-devel libgnomeui-devel libidl-devel update-desktop-files zip
License: LGPL, MPL
Version: 1.8.1.4
Release: 1
Summary: Mozilla Runtime Environment 1.8.1.x
URL: http://www.mozilla.org/
Group: Productivity/Other
Provides: gecko181
%if %suse_version > 1010
Obsoletes: mozilla-xulrunner
# For upgrade from 10.2 betas:
Obsoletes: mozilla-xulrunner180
%endif
%if %suse_version == 1020
Provides: mozilla-xulrunner181 = 1.8.0.99
%endif
Source: xulrunner-source-%{version}.tar.bz2
Source1: l10n.tar.bz2
Patch1: abuild.patch
Patch2: nss-opt.patch
Patch4: idldir.patch
Patch8: nsIPermission.patch
Patch9: rpath.patch
Patch10: system-proxies.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
PreReq: libstdc++ expat pango xorg-x11-libs fontconfig freetype2
PreReq: gtk2 atk glib2 update-alternatives
### build configuration ###
%define has_system_cairo 0
%define has_system_nspr 0
%define has_system_nss 0
%define pango 0
%if %suse_version > 930 || %opensuse_bs
%define has_system_cairo 1
%define has_system_nspr 1
%endif
%if %is_plus || %suse_version >= 930
%define pango 1
%endif
%if %suse_version > 1010 || %opensuse_bs
# NSS version on 10.1 is too old
%define has_system_nss 1
%endif
%define releasedate 2007060200
%define intversion 1.8.1.4
%define apiversion 1.8.1
%define uaweight 18140
### configuration end ###
%define my_provides /tmp/my-provides
%define my_requires /tmp/my-requires
%if %has_system_nspr
BuildRequires: mozilla-nspr-devel
PreReq: mozilla-nspr >= %( echo `rpm -q --queryformat '%{VERSION}' mozilla-nspr`)
%endif
%if %has_system_nss
BuildRequires: mozilla-nss-devel
PreReq: mozilla-nss
%endif
%description
XULRunner is a single installable package that can be used to bootstrap
multiple XUL+XPCOM applications that are as rich as Firefox and
Thunderbird.
Authors:
--------
Mozilla Foundation <drivers@mozilla.org>
%package devel
Summary: XULRunner/Gecko SDK 1.8.1.x
Group: Development/Libraries/Other
%if %suse_version > 1010
Obsoletes: gecko-sdk
# For upgrade from 10.2 betas:
Obsoletes: mozilla-xulrunner180-devel
%endif
%if %has_system_nspr
Requires: mozilla-nspr-devel >= %( echo `rpm -q --queryformat '%{VERSION}' mozilla-nspr-devel`)
%endif
%if %has_system_nss
PreReq: mozilla-nss-devel
%endif
PreReq: %{name} = %{version}
%description devel
Software Development Kit to embed XUL or Gecko into other applications.
Authors:
--------
Mozilla Foundation <drivers@mozilla.org>
%package l10n
Summary: Translations for XULRunner 1.8.1.x
Group: Productivity/Other
PreReq: %{name} = %{version}
%if %suse_version > 1010
# For upgrade from 10.2 betas:
Obsoletes: mozilla-xulrunner180-l10n
%endif
%description l10n
XULRunner is a single installable package that can be used to bootstrap
multiple XUL+XPCOM applications that are as rich as Firefox and
Thunderbird.
This package contains all supported languages but en-US which is
delivered in the main package.
Authors:
--------
Mozilla Foundation <drivers@mozilla.org>
%debug_package
%prep
%setup -n mozilla -b 1 -q
%patch1
%patch2
%patch4
%patch8
%patch9
%patch10
%build
export MOZ_BUILD_DATE=%{releasedate}
export LD_LIBRARY_PATH=$RPM_BUILD_DIR/mozilla/dist/bin
export CFLAGS="$RPM_OPT_FLAGS -g -Os -fno-strict-aliasing"
%if %suse_version > 1000
export CFLAGS="$CFLAGS -fstack-protector"
%endif
%ifarch ppc64
export CFLAGS="$CFLAGS -mminimal-toc"
%endif
export CXXFLAGS="$CFLAGS"
export RPATH="-Wl,-rpath -Wl,%{_libdir}/xulrunner-%{intversion}"
export MOZCONFIG=$RPM_BUILD_DIR/mozconfig
export MOZILLA_OFFICIAL=1
export BUILD_OFFICIAL=1
export MOZ_MILESTONE_RELEASE=1
#
cat << EOF > $MOZCONFIG
mk_add_options MOZILLA_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZ_MILESTONE_RELEASE=1
mk_add_options MOZ_MAKE_FLAGS=%{?jobs:-j%jobs}
. \$topsrcdir/xulrunner/config/mozconfig
ac_add_options --prefix=%{_prefix}
ac_add_options --libdir=%{_libdir}
ac_add_options --sysconfdir=%{_sysconfdir}
ac_add_options --mandir=%{_mandir}
ac_add_options --includedir=%{_includedir}
ac_add_options --enable-optimize="$CFLAGS"
ac_add_options --enable-extensions=default,cookie,permissions
ac_add_options --with-system-jpeg
ac_add_options --with-system-png
ac_add_options --with-system-mng
ac_add_options --with-system-zlib
ac_add_options --enable-default-toolkit=gtk2
ac_add_options --enable-xft
ac_add_options --disable-freetype2
ac_add_options --enable-svg
ac_add_options --enable-canvas
ac_add_options --disable-tests
ac_add_options --disable-installer
EOF
%if %pango
cat << EOF >> $MOZCONFIG
ac_add_options --enable-pango
EOF
%endif
%if %has_system_nspr
cat << EOF >> $MOZCONFIG
ac_add_options --with-system-nspr
EOF
%endif
%if %has_system_nss
cat << EOF >> $MOZCONFIG
ac_add_options --with-system-nss
EOF
%endif
%if %has_system_cairo
cat << EOF >> $MOZCONFIG
ac_add_options --enable-system-cairo
EOF
%endif
make -f client.mk build
%install
make -C xulrunner/installer STRIP=/bin/true
mkdir -p $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{intversion}
mkdir -p $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{intversion}/extensions
mkdir -p $RPM_BUILD_ROOT/usr/bin
cp -rf dist/xulrunner/* $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{intversion}/
# GRE
mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/gre.d/
# SDK
mkdir -p $RPM_BUILD_ROOT%{_includedir}/xulrunner-%{intversion}
mkdir -p $RPM_BUILD_ROOT%{_libdir}/pkgconfig
mkdir -p $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{intversion}/bin/
cp -rL dist/sdk/bin/* $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{intversion}/
cp -rL dist/sdk/lib/*.a $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{intversion}/
cp -rL dist/sdk/lib/*.jar $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{intversion}/
cp -rL dist/sdk/idl/* $RPM_BUILD_ROOT%{_includedir}/xulrunner-%{intversion}/
cp -rL dist/include/* $RPM_BUILD_ROOT%{_includedir}/xulrunner-%{intversion}/
cp -rL dist/sdk/include/* $RPM_BUILD_ROOT%{_includedir}/xulrunner-%{intversion}/
cp -rL dist/bin/xulrunner-config $RPM_BUILD_ROOT%{_bindir}/
install -m 755 $RPM_BUILD_DIR/mozilla/build/unix/xulrunner-*.pc $RPM_BUILD_ROOT%{_libdir}/pkgconfig/
%if %has_system_nss
rm $RPM_BUILD_ROOT%{_libdir}/pkgconfig/xulrunner-nss.pc
ln -sf nss.pc $RPM_BUILD_ROOT%{_libdir}/pkgconfig/xulrunner-nss.pc
%endif
# XPI example
cp -rL dist/xpi-stage/simple $RPM_BUILD_ROOT/%{_libdir}/xulrunner-%{intversion}/
# ghosts
touch $RPM_BUILD_ROOT/%{_libdir}/xulrunner-%{intversion}/global.reginfo
# install additional locales
rm -f %{_tmppath}/translations.list
for locale in $(cat toolkit/locales/all-locales); do
make -C toolkit/locales libs-$locale
cp dist/xpi-stage/locale-$locale/chrome/$locale.jar \
$RPM_BUILD_ROOT/%{_libdir}/xulrunner-%{intversion}/chrome
cp dist/xpi-stage/locale-$locale/chrome/$locale.manifest \
$RPM_BUILD_ROOT/%{_libdir}/xulrunner-%{intversion}/chrome
echo %{_libdir}/xulrunner-%{intversion}/chrome/$locale.jar \
>> %{_tmppath}/translations.list
echo %{_libdir}/xulrunner-%{intversion}/chrome/$locale.manifest \
>> %{_tmppath}/translations.list
done
# API symlink
ln -sf xulrunner-%{intversion} $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{apiversion}
# compat link
%if %suse_version == 1020
touch $RPM_BUILD_ROOT%{_libdir}/xulrunner-1.8.1b2
%endif
# modify provides and requires lists
%if %has_system_nspr && !%has_system_nss
cat << EOF > %{my_provides}
grep -vE "libnss3.so|libnssckbi.so|libsmime3.so|libsoftokn3.so|libssl3.so|libfreebl3.so" | %{__find_provides}
EOF
chmod 755 %{my_provides}
%define __find_provides %{my_provides}
cat << EOF > %{my_requires}
grep -vE "libnss3.so|libnssckbi.so|libsmime3.so|libsoftokn3.so|libssl3.so|libfreebl3.so|libpipnss.so" | %{__find_requires}
EOF
chmod 755 %{my_requires}
%define __find_requires %{my_requires}
%endif
%clean
rm -rf $RPM_BUILD_ROOT
%if %has_system_nspr && !%has_system_nss
rm -f %{my_provides}
rm -f %{my_requires}
%endif
rm -rf %{_tmppath}/translations.list
%pre
# if an update we need to unregister the old version now
if [ "$1" = "2" ]; then
%ifarch x86_64 ppc64 s390x
/usr/lib64/xulrunner-%{apiversion}/xulrunner --unregister-global || :
%else
/usr/lib/xulrunner-%{apiversion}/xulrunner --unregister-global || :
%endif
fi
exit 0
%post
if [ "$1" = "1" ]; then
/usr/sbin/update-alternatives --install %{_bindir}/xulrunner \
xulrunner %{_libdir}/xulrunner-%{intversion}/xulrunner %{uaweight} || :
fi
%{_libdir}/xulrunner-%{intversion}/xulrunner --register-global || :
%if %suse_version == 1020
%posttrans
if [ "$1" = "1" ]; then
test -d %{_libdir}/xulrunner-1.8.1b2 && rm -rf %{_libdir}/xulrunner-1.8.1b2
ln -sf xulrunner-%{intversion} %{_libdir}/xulrunner-1.8.1b2
fi
exit 0
%endif
%preun
if [ "$1" = "0" ]; then # deinstallation
%{_libdir}/xulrunner-%{intversion}/xulrunner --unregister-global
/usr/sbin/update-alternatives --remove xulrunner %{_libdir}/xulrunner-%{intversion}/xulrunner
fi
exit 0
%files
%defattr(-,root,root)
%dir %{_libdir}/xulrunner-%{intversion}/
%dir %{_libdir}/xulrunner-%{intversion}/chrome/
%dir %{_libdir}/xulrunner-%{intversion}/extensions/
%{_libdir}/xulrunner-%{intversion}/chrome/classic.*
%{_libdir}/xulrunner-%{intversion}/chrome/comm.*
%{_libdir}/xulrunner-%{intversion}/chrome/en-US.*
%{_libdir}/xulrunner-%{intversion}/chrome/pippki.*
%{_libdir}/xulrunner-%{intversion}/chrome/toolkit.*
%{_libdir}/xulrunner-%{intversion}/chrome/chromelist.txt
%{_libdir}/xulrunner-%{intversion}/chrome/icons/
%{_libdir}/xulrunner-%{intversion}/components/
%{_libdir}/xulrunner-%{intversion}/defaults/
%{_libdir}/xulrunner-%{intversion}/greprefs/
%{_libdir}/xulrunner-%{intversion}/icons/
%{_libdir}/xulrunner-%{intversion}/plugins/
%{_libdir}/xulrunner-%{intversion}/res/
%{_libdir}/xulrunner-%{intversion}/*.so
%{_libdir}/xulrunner-%{intversion}/LICENSE
%{_libdir}/xulrunner-%{intversion}/README.txt
%{_libdir}/xulrunner-%{intversion}/dependentlibs.list
%{_libdir}/xulrunner-%{intversion}/mozilla-xremote-client
%if !%has_system_nss
%{_libdir}/xulrunner-%{intversion}/libsoftokn3.chk
%{_libdir}/xulrunner-%{intversion}/libfreebl3.chk
%endif
%{_libdir}/xulrunner-%{intversion}/run-mozilla.sh
%{_libdir}/xulrunner-%{intversion}/updater
%{_libdir}/xulrunner-%{intversion}/xpicleanup
%{_libdir}/xulrunner-%{intversion}/xulrunner
%{_libdir}/xulrunner-%{intversion}/xulrunner-bin
%{_libdir}/xulrunner-%{intversion}/xulrunner-stub
%{_libdir}/xulrunner-%{intversion}/javaxpcom.jar
%ghost %{_libdir}/xulrunner-%{intversion}/global.reginfo
# GRE
%dir %{_sysconfdir}/gre.d/
# example
%{_libdir}/xulrunner-%{intversion}/simple/
# API symlink
%{_libdir}/xulrunner-%{apiversion}
# compat symlink
%if %suse_version == 1020
%ghost %{_libdir}/xulrunner-1.8.1b2
%endif
%files devel
%defattr(-,root,root)
%{_libdir}/xulrunner-%{intversion}/*.a
%{_libdir}/xulrunner-%{intversion}/MozillaInterfaces*
%{_libdir}/xulrunner-%{intversion}/regxpcom
%{_libdir}/xulrunner-%{intversion}/xpidl
%{_libdir}/xulrunner-%{intversion}/xpt_dump
%{_libdir}/xulrunner-%{intversion}/xpt_link
%{_bindir}/xulrunner-config
%attr(644,root,root) %{_libdir}/pkgconfig/*
%{_includedir}/xulrunner-%{intversion}/
%files l10n -f %{_tmppath}/translations.list
%defattr(-,root,root)