A new user interface for you! Read more...

File MozillaFirefox.spec of Package MozillaFirefox

#
# spec file for package MozillaFirefox (Version 3.0.16)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2006-2009 Wolfgang Rosenauer
#
# 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:           MozillaFirefox
BuildRequires:  gcc-c++ libgnomeui-devel libidl-devel mozilla-xulrunner190-devel orbit-devel python unzip update-desktop-files zip
%if %suse_version > 1020
BuildRequires:  fdupes
%endif
License:        GPL v2 or later; LGPL v2.1 or later; MPL 1.1 or later
Provides:       web_browser
Provides:       firefox
Version:        3.0.16
Release:        1
Summary:        Mozilla Firefox Web Browser
Url:            http://www.mozilla.org/
Group:          Productivity/Networking/Web/Browsers
Source:         firefox-%{version}-source.tar.bz2
Source1:        MozillaFirefox.desktop
Source2:        %{name}-rpmlintrc
Source3:        mozilla.sh.in
Source4:        find-external-requires.sh
Source5:        firefox-lockdown.js
Source7:        l10n-%{version}.tar.bz2
Source8:        firefox-mimeinfo.xml
Source11:       firefox48.png
Source16:       firefox.1
Source17:       firefox-suse-default-prefs.js
Source30:       bookmarks.html.suse
Source31:       firefox.schemas
Source32:       search-addons.tar.bz2
Patch1:         firefox-libxul-sdk.patch
Patch2:         firefox-no-update-lite.patch
Patch14:        credits.patch
Patch17:        firefox-appname.patch
# PATCH-FEATURE-SLED firefox-ui-lockdown.patch FATE#302023, FATE#302024 - hfiguiere@novell.com
Patch20:        firefox-ui-lockdown.patch
Patch25:        mozilla-abi.patch
Patch30:        firefox-fix-set-background.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
PreReq:         coreutils /bin/sh gconf2 shared-mime-info desktop-file-utils
Requires:       mozilla-xulrunner190 >= %(rpm -q --queryformat '%{VERSION}-%{RELEASE}' mozilla-xulrunner190)
%requires_eq    mozilla-xulrunner190
%ifarch %ix86
Requires:       mozilla-xulrunner190-32bit >= %(rpm -q --queryformat '%{VERSION}-%{RELEASE}' mozilla-xulrunner190)
Requires:       mozilla-xulrunner190-32bit = %(rpm -q --queryformat '%{VERSION}' mozilla-xulrunner190)
%endif
#Requires:       %{name}-branding >= 3.0
%define default_home_page http://www.opensuse.org/
%define _unpackaged_files_terminate_build 0
%define _use_internal_dependency_generator 0
%define __find_requires sh %{SOURCE4}
%global provfind sh -c "grep -v '.so' | %__find_provides"
%global __find_provides %provfind
%define releasedate 2009120200
%define progname firefox
%define progdir %{_prefix}/%_lib/%{progname}
%define libgssapi libgssapi_krb5.so.2
%if %suse_version > 1020
%define gnome_confdir %{_sysconfdir}
%define gnome_dir     %{_prefix}
%gconf_schemas_prereq
%else
%define gnome_confdir %{_sysconfdir}/opt/gnome
%define gnome_dir     /opt/gnome
%endif
### build options
%define branding 1
%define localize 1
### build options end

%description
Mozilla Firefox is a standalone web browser, designed for standards
compliance and performance.  Its functionality can be enhanced via a
plethora of extensions.


%if %localize
%package translations
Summary:        Translations for MozillaFirefox
License:        GPL v2 or later; LGPL v2.1 or later; MPL 1.1 or later
Provides:       locale(%{name}:af;ar;be;bg;bn_IN;ca;cs;cy;da;de;el;en_GB;eo;es_AR;es_ES;et;eu;fi;fr;fy_NL;ga_IE;gl;gu_IN;he;hi_IN;hu;id;is;it;ja;ka;kn;ko;ku;lt;lv;mk;mn;mr;nb_NO;nl;nn_NO;oc;pa_IN;pl;pt_BR;pt_PT;ro;ru;si;sk;sl;sq;sr;sv_SE;te;th;tr;uk;zh_CN;zh_TW)
Group:          System/Localization
PreReq:         %{name} = %{version}
Requires:       mozilla-xulrunner190-translations

%description translations
This package contains several optional languages for the user interface
of MozillaFirefox.
%endif


%prep
%setup -q -n mozilla -b 7
cd $RPM_BUILD_DIR/mozilla
%patch1
%patch2 -p1
%patch14
%patch17
%patch20
# custom bookmarks
cp -f %{SOURCE30} $RPM_BUILD_DIR/mozilla/browser/locales/en-US/profile/bookmarks.html
%patch25
%patch30 -p1


%build
export MOZ_BUILD_DATE=%{releasedate}
export MOZILLA_OFFICIAL=1
export BUILD_OFFICIAL=1
export CFLAGS="$RPM_OPT_FLAGS -Os -fno-strict-aliasing"  
export CXXFLAGS="$CFLAGS"
export MOZCONFIG=$RPM_BUILD_DIR/mozconfig
SDKDIR=$(pkg-config --variable=sdkdir libxul)
cat << EOF > $MOZCONFIG
mk_add_options MOZILLA_OFFICIAL=1
mk_add_options BUILD_OFFICIAL=1
mk_add_options MOZ_MAKE_FLAGS=%{?jobs:-j%jobs}
. \$topsrcdir/browser/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 --with-system-nspr
ac_add_options --with-system-nss
ac_add_options --with-libxul-sdk=$SDKDIR
ac_add_options --with-system-jpeg
#ac_add_options --with-system-png     # doesn't work because of missing APNG support
ac_add_options --with-system-zlib
ac_add_options --disable-installer
ac_add_options --disable-tests
ac_add_options --disable-debug
ac_add_options --disable-crashreporter
EOF
%if %branding
cat << EOF >> $MOZCONFIG
ac_add_options --enable-official-branding
EOF
%endif
make -f client.mk build

%install
make -C browser/installer STRIP=/bin/true
# copy tree into RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/%{progdir}
cp -rf $RPM_BUILD_DIR/mozilla/dist/firefox/* $RPM_BUILD_ROOT/%{progdir}
# install additional locales
%if %localize
echo %defattr\(-,root,root\) > %{_tmppath}/translations.list
for locale in $(awk '{ print $1; }' browser/locales/shipped-locales); do
  case $locale in
   ja-JP-mac|en-US)
	;;
   *)
  	make -C browser/locales libs-$locale
  	cp dist/xpi-stage/locale-$locale/chrome/$locale.jar \
    	  $RPM_BUILD_ROOT/%{progdir}/chrome
  	cp dist/xpi-stage/locale-$locale/chrome/$locale.manifest \
     	  $RPM_BUILD_ROOT/%{progdir}/chrome
  	echo %{progdir}/chrome/$locale.jar      >> %{_tmppath}/translations.list
  	echo %{progdir}/chrome/$locale.manifest >> %{_tmppath}/translations.list
  esac
done
%endif
# overwrite the mozilla start-script and link it to /usr/bin
mkdir --parents $RPM_BUILD_ROOT/usr/bin
sed "s:%%PREFIX:%{_prefix}:g
s:%%PROGDIR:%{progdir}:g
s:%%APPNAME:%{progname}:g
s:%%PROFILE:.mozilla/firefox:g" \
  %{SOURCE3} > $RPM_BUILD_ROOT%{progdir}/%{progname}.sh
chmod 755 $RPM_BUILD_ROOT%{progdir}/%{progname}.sh
ln -sf ../..%{progdir}/%{progname}.sh $RPM_BUILD_ROOT/usr/bin/%{progname}
# desktop definition
mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
install -m 644 %{SOURCE1} \
   $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop
# additional mime-types
mkdir -p $RPM_BUILD_ROOT%{_datadir}/mime/packages
cp %{SOURCE8} $RPM_BUILD_ROOT%{_datadir}/mime/packages/%{progname}.xml
# SCHEMA File
mkdir -p $RPM_BUILD_ROOT%{gnome_confdir}/gconf/schemas
install -m 644 %{SOURCE31} \
               $RPM_BUILD_ROOT/%{gnome_confdir}/gconf/schemas/
# install man-page
mkdir -p $RPM_BUILD_ROOT%{_mandir}/man1/
cp %{SOURCE16} $RPM_BUILD_ROOT%{_mandir}/man1/%{progname}.1
# apply SUSE defaults
sed -e 's,RPM_VERSION,%{version}-%{release},g
s,GSSAPI,%{libgssapi},g' \
   %{SOURCE17} > suse-default-prefs
cp suse-default-prefs $RPM_BUILD_ROOT/%{progdir}/defaults/preferences/firefox-openSUSE.js
rm suse-default-prefs
cp %{SOURCE5} $RPM_BUILD_ROOT/%{progdir}/defaults/preferences/
# use correct locale for useragent
cat > $RPM_BUILD_ROOT%{progdir}/defaults/preferences/firefox-l10n.js << EOF
pref("general.useragent.locale", "chrome://global/locale/intl.properties");
EOF
##########
# ADDONS
#
(cd $RPM_BUILD_ROOT%{progdir}/searchplugins ; tar xjf %{SOURCE32})
# browserconfig.properties
sed "s;browser.startup.homepage=.*;browser.startup.homepage=%{default_home_page};g
s;browser.startup.homepage_reset=.*;browser.startup.homepage_reset=%{default_home_page};g" \
  dist/firefox/browserconfig.properties > $RPM_BUILD_ROOT%{progdir}/browserconfig.properties
cat << EOF >> $RPM_BUILD_ROOT%{progdir}/browserconfig.properties
startup.homepage_override_url=%{default_home_page}
EOF
mkdir -p $RPM_BUILD_ROOT/usr/share/pixmaps/
%if %branding
cp -f other-licenses/branding/firefox/mozicon128.png $RPM_BUILD_ROOT/usr/share/pixmaps/%{progname}.png
mkdir -p $RPM_BUILD_ROOT%{gnome_dir}/share/icons/hicolor/48x48/apps/
install -m 644 %{SOURCE11} $RPM_BUILD_ROOT%{gnome_dir}/share/icons/hicolor/48x48/apps/%{progname}.png
ln -sf %{progname}.png $RPM_BUILD_ROOT/usr/share/pixmaps/%{progname}-gnome.png
%else
cp -f $RPM_BUILD_ROOT%{progdir}/icons/mozicon50.xpm $RPM_BUILD_ROOT/usr/share/pixmaps/%{progname}.xpm
%endif
%suse_update_desktop_file %{name} Network WebBrowser X-Ximian-Main X-Ximian-Toplevel GTK
%if %suse_version > 1020
%find_gconf_schemas
%fdupes $RPM_BUILD_ROOT%{progdir}
%fdupes $RPM_BUILD_ROOT%{_datadir}
%endif
%if %branding
chmod -x $RPM_BUILD_ROOT%{_datadir}/pixmaps/%{progname}.png
%endif

%clean
rm -rf $RPM_BUILD_ROOT
%if %suse_version > 1020

%pre -f %{name}.schemas_pre

%preun -f %{name}.schemas_preun
%endif

%post
# update mime and desktop database
if [ -f usr/bin/update-mime-database ] ; then
  usr/bin/update-mime-database %{_datadir}/mime > /dev/null || :
fi
%if %suse_version >= 1030
if [ -f usr/bin/update-desktop-database ] ; then
  usr/bin/update-desktop-database > /dev/null || :
fi
%else
if [ -f opt/gnome/bin/update-mime-database ] ; then
  opt/gnome/bin/update-mime-database > /dev/null || :
fi
%endif
# move plugins to new location
if [ "$1" = "2" ]; then
  if [ -d /opt/MozillaFirefox/%{_lib}/plugins ]; then
    rm -rf /opt/MozillaFirefox/%{_lib}/plugins/libnullplugin.so
    cp -fud /opt/MozillaFirefox/%{_lib}/plugins/* %{progdir}/plugins
    rm -rf /opt/MozillaFirefox/%{_lib}/plugins
  fi
fi
%if %suse_version <= 1020
if [ ! -f /.buildenv ]; then
  export GCONF_CONFIG_SOURCE=`%{gnome_dir}/bin/gconftool-2 --get-default-source`
  %{gnome_dir}bin/gconftool-2 --makefile-install-rule %{gnome_confdir}/gconf/schemas/firefox.schemas > /dev/null 2>&1
fi
%endif
exit 0

%postun
if [ -f usr/bin/update-mime-database ] ; then
  usr/bin/update-mime-database %{_datadir}/mime > /dev/null || :
fi
%if %suse_version >= 1030
if [ -f usr/bin/update-desktop-database ] ; then
  usr/bin/update-desktop-database > /dev/null || :
fi
%else
if [ -f opt/gnome/bin/update-mime-database ] ; then
  opt/gnome/bin/update-mime-database > /dev/null || :
fi
%endif

%if %suse_version > 1020
%posttrans -f %{name}.schemas_posttrans
%endif
%if %suse_version > 1020

%files -f %{name}.schemas_list
%else

%files
%endif
%defattr(-,root,root)
%dir %{progdir}
%dir %{progdir}/chrome/
%{progdir}/chrome/browser.*
%{progdir}/chrome/classic.*
%{progdir}/chrome/en-US.*
%{progdir}/chrome/reporter.*
%{progdir}/chrome/icons
%{progdir}/components/
#%exclude %{progdir}/defaults/profile/bookmarks.html
%{progdir}/defaults/
%{progdir}/extensions/
%{progdir}/icons/
%{progdir}/searchplugins/
%{progdir}/modules/
%attr(755,root,root) %{progdir}/%{progname}.sh
%{progdir}/browserconfig.properties
%{progdir}/application.ini
%{progdir}/firefox
%{progdir}/blocklist.xml
%exclude %{progdir}/updater.ini
%exclude %{progdir}/removed-files
%exclude %{progdir}/README.txt
%exclude %{progdir}/old-homepage-default.properties
%exclude %{progdir}/components/libnkgnomevfs.so
%exclude %{progdir}/run-mozilla.sh
%exclude %{progdir}/libjemalloc.so
%{_datadir}/applications/%{name}.desktop
%if %suse_version <= 1020
%{gnome_confdir}/gconf/schemas/firefox.schemas
%endif
%{_datadir}/mime/packages/%{progname}.xml
%{_datadir}/pixmaps/firefox*
%if %branding
%{gnome_dir}/share/icons/hicolor/
%endif
%{_bindir}/%{progname}
%doc %{_mandir}/man1/%{progname}.1.gz

%if %localize
%files translations -f %{_tmppath}/translations.list
%defattr(-,root,root)
%endif

%changelog