File mozilla-xulrunner181.spec of Package mozilla-xulrunner181

#
# spec file for package mozilla-xulrunner181 (Version 1.8.1.19)
#
# Copyright (c) 2008 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:           mozilla-xulrunner181
BuildRequires:  gcc-c++ java-devel libgnomeui-devel libidl-devel update-desktop-files zip
%if %suse_version > 1020
BuildRequires:  fdupes
%endif
License:        GPL v2 or later; LGPL v2.1 or later; MOZILLA PUBLIC LICENSE (MPL/NPL)
Version:        1.8.1.19
Release:        0.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
%define ga_version 1.8.1b2
Provides:       mozilla-xulrunner181 = 1.8.0.99
%endif
%if %suse_version == 1030
%define ga_version 1.8.1.4
%endif
%if %suse_version == 1100
%define ga_version 1.8.1.13
%endif
%if %suse_version >= 1030 && 0%{?ga_version:1}
Provides:       mozilla-xulrunner181 = %{ga_version}
%endif
Source:         xulrunner-source-%{version}.tar.bz2
Source1:        l10n-%{version}.tar.bz2
Source2:        %{name}-rpmlintrc
Patch1:         abuild.patch
Patch2:         nss-opt.patch
Patch3:         mozilla-gcc4.3-fixes.patch
Patch4:         idldir.patch
Patch5:         mozilla-path_len.patch
Patch6:         gcc-undefined-ops.patch
Patch7:         xulrunner-apilibdir.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 coreutils
### build configuration ###
%define has_system_cairo 1
%define has_system_nspr  1
%define has_system_nss   0
%define pango 1
%if %suse_version > 1010 || 0%{?opensuse_bs}
# NSS version on 10.1 is too old
%define has_system_nss   1
%endif
%define releasedate 2008121300
%define apiversion 1.8.1
%define uaweight 181190
### configuration end ###
%define my_provides %{_tmppath}/my-provides
%define my_requires %{_tmppath}/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
License:        GPL v2 or later; LGPL v2.1 or later; MOZILLA PUBLIC LICENSE (MPL/NPL)
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
Requires:       mozilla-nss-devel >= %( echo `rpm -q --queryformat '%{VERSION}' 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
License:        GPL v2 or later; LGPL v2.1 or later; MOZILLA PUBLIC LICENSE (MPL/NPL)
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>

%prep
%setup -n mozilla -b 1 -q
%patch1
%patch2
%patch3
%patch4
%patch5 -p1
%patch6
%patch7
%patch8
%patch9
%patch10

%build
%ifarch %x86
%if %suse_version <= 1010
export JAVA_HOME=/usr/lib/jvm/java-1.4.2-sun
%endif
%endif
export MOZ_BUILD_DATE=%{releasedate}
export LD_LIBRARY_PATH=$RPM_BUILD_DIR/mozilla/dist/bin
export CFLAGS="$RPM_OPT_FLAGS -Os -fno-strict-aliasing"
%ifarch ppc64
export CFLAGS="$CFLAGS -mminimal-toc"
%endif
export CXXFLAGS="$CFLAGS"
#%if %suse_version > 1020
#export ac_cv_visibility_hidden="no"
#%endif
export RPATH="-Wl,-rpath -Wl,%{_libdir}/xulrunner-%{version}"
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
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-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-%{version}
mkdir -p $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version}/extensions
mkdir -p $RPM_BUILD_ROOT/usr/bin
cp -rf dist/xulrunner/* $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version}/
# GRE
mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/gre.d/
# SDK
mkdir -p $RPM_BUILD_ROOT%{_includedir}/xulrunner-%{version}
mkdir -p $RPM_BUILD_ROOT%{_libdir}/pkgconfig
mkdir -p $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version}/bin/
cp -rL dist/sdk/bin/*     $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version}/
cp -rL dist/sdk/lib/*.a   $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version}/
cp -rL dist/sdk/lib/*.jar $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version}/
cp -rL dist/sdk/idl/*     $RPM_BUILD_ROOT%{_includedir}/xulrunner-%{version}/
cp -rL dist/include/*     $RPM_BUILD_ROOT%{_includedir}/xulrunner-%{version}/
cp -rL dist/sdk/include/* $RPM_BUILD_ROOT%{_includedir}/xulrunner-%{version}/
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-%{version}/
# remove some executable permissions
find $RPM_BUILD_ROOT%{_includedir}/xulrunner-%{version} \
     -type f -perm -111 -exec chmod a-x {} \;
find $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version}/ \
     -name "*.js" -o -name "*.xpm" | xargs chmod a-x
# ghosts
touch $RPM_BUILD_ROOT/%{_libdir}/xulrunner-%{version}/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-%{version}/chrome
  cp dist/xpi-stage/locale-$locale/chrome/$locale.manifest \
     $RPM_BUILD_ROOT/%{_libdir}/xulrunner-%{version}/chrome
  echo %{_libdir}/xulrunner-%{version}/chrome/$locale.jar \
    >> %{_tmppath}/translations.list
  echo %{_libdir}/xulrunner-%{version}/chrome/$locale.manifest \
    >> %{_tmppath}/translations.list
done
# API symlink
ln -sf xulrunner-%{version} $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{apiversion}
# compat links
%if 0%{?ga_version:1}
touch $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{ga_version}
%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
# fdupes
%if %suse_version > 1020
%fdupes $RPM_BUILD_ROOT%{_includedir}/xulrunner-%{version}/
%fdupes $RPM_BUILD_ROOT%{_libdir}/xulrunner-%{version}/
%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
/usr/sbin/update-alternatives --install %{_bindir}/xulrunner \
  xulrunner %{_libdir}/xulrunner-%{version}/xulrunner %{uaweight} || :
%{_libdir}/xulrunner-%{version}/xulrunner --register-global || :
# needed for updates which transition directory to symlink
%if 0%{?ga_version:1} 
%posttrans
#if [ "$1" = "1" ]; then
test -d %{_libdir}/xulrunner-%{ga_version} && rm -rf %{_libdir}/xulrunner-%{ga_version}
ln -sf xulrunner-%{version} %{_libdir}/xulrunner-%{ga_version}
#fi
exit 0
%endif

%preun
if [ "$1" = "0" ]; then # deinstallation
  %{_libdir}/xulrunner-%{version}/xulrunner --unregister-global
  # that's not quite nice since old versions should be removed on update as well
  # but that's problematic for updates w/o raising the version number
  /usr/sbin/update-alternatives --remove xulrunner %{_libdir}/xulrunner-%{version}/xulrunner
fi
exit 0

%files
%defattr(-,root,root)
%dir %{_libdir}/xulrunner-%{version}/
%dir %{_libdir}/xulrunner-%{version}/chrome/
%dir %{_libdir}/xulrunner-%{version}/extensions/
%{_libdir}/xulrunner-%{version}/chrome/classic.*
%{_libdir}/xulrunner-%{version}/chrome/comm.*
%{_libdir}/xulrunner-%{version}/chrome/en-US.*
%{_libdir}/xulrunner-%{version}/chrome/pippki.*
%{_libdir}/xulrunner-%{version}/chrome/toolkit.*
%{_libdir}/xulrunner-%{version}/chrome/chromelist.txt
%{_libdir}/xulrunner-%{version}/chrome/icons/
%{_libdir}/xulrunner-%{version}/components/
%{_libdir}/xulrunner-%{version}/defaults/
%{_libdir}/xulrunner-%{version}/greprefs/
%{_libdir}/xulrunner-%{version}/icons/
%{_libdir}/xulrunner-%{version}/plugins/
%{_libdir}/xulrunner-%{version}/res/
%{_libdir}/xulrunner-%{version}/*.so
%{_libdir}/xulrunner-%{version}/LICENSE
%{_libdir}/xulrunner-%{version}/README.txt
%{_libdir}/xulrunner-%{version}/dependentlibs.list
%{_libdir}/xulrunner-%{version}/mozilla-xremote-client
%if !%has_system_nss
%{_libdir}/xulrunner-%{version}/libsoftokn3.chk
%{_libdir}/xulrunner-%{version}/libfreebl3.chk
%endif
%{_libdir}/xulrunner-%{version}/run-mozilla.sh
%{_libdir}/xulrunner-%{version}/updater
%{_libdir}/xulrunner-%{version}/xpicleanup
%{_libdir}/xulrunner-%{version}/xulrunner
%{_libdir}/xulrunner-%{version}/xulrunner-bin
%{_libdir}/xulrunner-%{version}/xulrunner-stub
%{_libdir}/xulrunner-%{version}/javaxpcom.jar
%ghost %{_libdir}/xulrunner-%{version}/global.reginfo
# GRE
%dir %{_sysconfdir}/gre.d/
# example
%{_libdir}/xulrunner-%{version}/simple/
# API symlink
%{_libdir}/xulrunner-%{apiversion}
# compat symlinks
%if 0%{?ga_version:1} 
%ghost %{_libdir}/xulrunner-%{ga_version}
%endif

%files devel
%defattr(-,root,root)
%{_libdir}/xulrunner-%{version}/*.a
%{_libdir}/xulrunner-%{version}/MozillaInterfaces*
%{_libdir}/xulrunner-%{version}/regxpcom
%{_libdir}/xulrunner-%{version}/xpidl
%{_libdir}/xulrunner-%{version}/xpt_dump
%{_libdir}/xulrunner-%{version}/xpt_link
%{_bindir}/xulrunner-config
%attr(644,root,root) %{_libdir}/pkgconfig/*
%{_includedir}/xulrunner-%{version}/

%files l10n -f %{_tmppath}/translations.list
%defattr(-,root,root)
%changelog
* Thu Dec 18 2008 hfiguiere@suse.de
- Review and approve changes.
* Mon Dec 15 2008 wr@rosenauer.org
- Security update to version 1.8.1.19 (bnc#455804, bnc#457913)
* Wed Nov 05 2008 hpj@novell.com
- Add mozilla-shared-nss-db.patch, which migrates the old NSS DB
  to the new, shared format and location.
* Wed Oct 01 2008 maw@suse.de
- Security update to version 1.8.1.17 (bnc#429179)
- Drop milestone.patch and unused-includes.patch, both of which
  have been upstreamed
- Respin abuild.patch.
* Tue Jun 24 2008 maw@suse.de
- Security update to version 1.8.1.14 (bnc#390992):
  + MFSA 2008-20/CVE-2008-1380: Crash in JavaScript garbage
  collector (bnc#390992)
- Add milestone.patch (bnc#378230, comment 15)
- Drop bmo425576.patch.
* Wed May 28 2008 maw@suse.de
- Add bmo425576.patch (bnc#390992).
* Fri May 16 2008 schwab@suse.de
- Remove unused includes.
* Thu Apr 10 2008 ro@suse.de
- added baselibs.conf file for xxbit packages
* Thu Apr 03 2008 maw@suse.de
- Security update to version 1.8.1.13 (bnc#370353):
  + MFSA 2008-19/CVE-2008-1241:  XUL popup spoofing variant
  (cross-tab popups)
  + MFSA 2008-18/CVE-2008-1195 and CVE-2008-1240: Java socket
  connection to any local port via LiveConnect
  + MFSA 2008-17/CVE-2007-4879: Privacy issue with SSL Client
  Authentication
  + MFSA 2008-16/CVE-2008-1238: HTTP Referrer spoofing with
  malformed URLs
  + MFSA 2008-15/CVE-2008-1236 and CVE-2008-1237: Crashes with
  evidence of memory corruption (rv:1.8.1.13)
  + MFSA 2008-14/CVE-2008-1233, CVE-2008-1234, and CVE-2008-1235:
  JavaScript privilege escalation and arbitrary code execution.
* Mon Mar 24 2008 maw@suse.de
- Add mozilla-missing-decl.patch, which is necessary when building
  against new versions of mozilla-nss (bmo#399589).
* Tue Mar 11 2008 maw@suse.de
- Merge changes from the build service (thanks, Wolfgang)
- Update to version 1.8.1.12 (bnc#354469).
* Mon Jan 28 2008 maw@suse.de
- Merge changes from the build service (thanks, Wolfgang)
- update to version 1.8.1.11 (20080113)
* Thu Jul 26 2007 maw@suse.de
- Update to version 1.8.1.4
- Rename l10n.tar.bz2 to l10n-%%{version}.tar.bz2
- Remove upstreamed visibility.patch
- Adapt system-proxies.patch to not use internal interfaces.
* Wed May 23 2007 stbinner@suse.de
- use %%fdupes
* Thu Jan 18 2007 maw@suse.de
- Add undefined-ops.patch, silencing some warnings.
* Tue Nov 28 2006 kkaempf@suse.de
- also support proper updates for -devel and -l10n subpackages
  (#223891)
* Tue Nov 28 2006 kkaempf@suse.de
- added 'Provides mozilla-xulrunner180' to properly update
  from 10.2 beta/rc versions (#223891)
* Wed Nov 22 2006 sbrabec@suse.cz
- Obsolete old xulrunner (#216100).
* Fri Sep 08 2006 stark@suse.de
- update to snapshot 1.8.1-20060907
  * upstreamed file-saver.patch
* Tue Aug 29 2006 stark@suse.de
- fixed system-proxies.patch to build again
* Sun Aug 27 2006 stark@suse.de
- update to snapshot 1.8.1-20060826
- enabled cookie and permissions extensions
- fixed pre-install script
* Wed Aug 23 2006 stark@suse.de
- update to snapshot 1.8.1-20060822
* Tue Jul 18 2006 stark@suse.de
- initial package based on mozilla-xulrunner180
openSUSE Build Service is sponsored by