##
## firefox.spec -- OpenPKG RPM Specification
## Copyright (c) 2000-2004 The OpenPKG Project
## Copyright (c) 2000-2004 Ralf S. Engelschall
## Copyright (c) 2000-2004 Cable & Wireless
##
## Permission to use, copy, modify, and distribute this software for
## any purpose with or without fee is hereby granted, provided that
## the above copyright notice and this permission notice appear in all
## copies.
##
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
## SUCH DAMAGE.
##
# package information
Name: firefox
Summary: Graphical Web Browser
URL: http://www.mozilla.org/products/firefox/
Vendor: The Mozilla Project
Packager: The OpenPKG Project
Distribution: OpenPKG
Class: EVAL
Group: Web
License: MPL
Version: 0.8
Release: 20040210
# package options
%option with_optimize yes
# list of sources
Source0: ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/%{version}/firefox-source-%{version}.tar.bz2
Source1: ftp://ftp.openpkg.org/sources/CPY/mozilla/mozilla-1.4-libart.tar.bz2
Source2: firefox.sh
Source3: firefox.pod
Patch0: firefox.patch
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
BuildPreReq: OpenPKG, openpkg >= 20040130, make, gcc, perl
PreReq: OpenPKG, openpkg >= 20040130, xsel
BuildPreReq: X11, glib, gtk, orbit, libiconv, infozip, openssl, freetype
PreReq: X11, glib, gtk, orbit, libiconv, infozip, openssl, freetype
AutoReq: no
AutoReqProv: no
%description
Firefox is a speedy, full-featured Web browser based on the Mozilla
codebase. It uses the Mozilla Gecko engine for rendering the Mozilla
Web content and XUL for presenting the GUI.
%track
prog firefox = {
version = %{version}
url = ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/
regex = (__VER__)
url = ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/__NEWVER__/
regex = firefox-source-(__VER__)\.tar\.bz2
}
%prep
# extract source distribution
%setup -q -n mozilla
%setup -q -n mozilla -D -T -a 1
# patch source distribution
%patch -p0
# strip down source distribution (save disk space)
find . -type d -name "CVS" -print | xargs rm -rf
find . -type d -name "macbuild" -print | xargs rm -rf
find . -type f -name ".cvsignore" -print | xargs rm -f
find . -type f -name "makefile.win" -print | xargs rm -f
find . -type f -name "MANIFEST" -print | xargs rm -f
rm -rf build/package
%build
# determine X11 paths
x11_libdir=`%{l_prefix}/etc/rc --query x11_libdir`
x11_incdir=`%{l_prefix}/etc/rc --query x11_incdir`
# determine build flags
CC="%{l_cc}"
CXX="%{l_cxx}"
CFLAGS="%{l_cflags} %{l_cppflags} -I${x11_incdir}"
CXXFLAGS="%{l_cxxflags} -Wno-deprecated %{l_cppflags}"
CPPFLAGS="%{l_cppflags glib} -I${x11_incdir}"
LDFLAGS="-L`pwd`/dist/bin -L`pwd`/dist/lib -L`pwd`/dist/lib/components"
LDFLAGS="$LDFLAGS %{l_ldflags} -L${x11_libdir}"
GLIB_CONFIG="%{l_prefix}/bin/glib-config"
GTK_CONFIG="%{l_prefix}/bin/gtk-config"
LIBIDL_CONFIG="%{l_prefix}/bin/libIDL-config"
PERL="%{l_prefix}/bin/perl"
MOZ_INTERNAL_LIBART_LGPL=1
export CC CXX CFLAGS CXXFLAGS CPPFLAGS LDFLAGS
export GLIB_CONFIG GTK_CONFIG LIBIDL_CONFIG
export MOZ_INTERNAL_LIBART_LGPL
# configure source
./configure \
--prefix=%{l_prefix} \
--libdir=%{l_prefix}/lib/firefox \
--includedir=%{l_prefix}/include/firefox \
--with-x \
--x-includes=`%{l_prefix}/etc/rc --query x11_incdir` \
--x-libraries=`%{l_prefix}/etc/rc --query x11_libdir` \
--enable-default-toolkit=gtk \
--enable-toolkit-gtk \
--disable-toolkit-qt \
--disable-toolkit-xlib \
--with-gtk-prefix=%{l_prefix} \
--with-glib-prefix=%{l_prefix} \
--with-libIDL-prefix=%{l_prefix} \
--with-system-jpeg=%{l_prefix} \
--with-system-png=%{l_prefix} \
--with-system-zlib=%{l_prefix} \
--with-ft-prefix=%{l_prefix} \
--enable-freetype2 \
--enable-jsd \
--enable-crypto \
--enable-chrome-format=jar \
--enable-svg \
--enable-static \
--enable-strip \
%if "%{with_optimize}" == "yes"
--enable-optimize="-O2" \
%else
--disable-optimize \
%endif
--disable-xft \
--disable-xinerama \
--disable-shared \
--disable-tests \
--disable-ldap \
--disable-accessibility \
--disable-debug \
--disable-dtd-debug \
--disable-pedantic \
--disable-auto-deps \
--disable-md \
--disable-cpp-exceptions \
--disable-cpp-rtti \
--disable-xterm-updates \
--disable-elf-dynstr-gc \
--with-pthreads
# build program
%{l_make} %{l_mflags}
# post-adjustments to builded program
( cd dist/bin
# prepare for multi-user usage
LD_LIBRARY_PATH=.; export LD_LIBRARY_PATH
MOZILLA_FIVE_HOME=.; export MOZILLA_FIVE_HOME
./regxpcom || true
./regchrome || true
touch chrome/user-skins.rdf chrome/user-locales.rdf
# re-adjust paths to reflect final location
%{l_shtool} subst \
-e "s;`pwd`;%{l_prefix}/lib/firefox;" \
components/xpti.dat components/compreg.dat
# strip down installation tree
find . -type d -depth -print | xargs rmdir >/dev/null 2>&1 || true
rm -f mozilla-config mkdepend nsinstall bloaturls.txt TestGtk* LICENSE README
rm -rf res/samples
# workaround run-time startup problems
mkdir .autoreg >/dev/null 2>&1 || true
) || exit $?
# generate manual page for startup convinience wrapper
%{l_prefix}/bin/pod2man \
--section=1 --quotes=none \
--release="Mozilla %{version}" --center="%{packager}" \
%{SOURCE firefox.pod} >firefox.1
%install
rm -rf $RPM_BUILD_ROOT
# generate temporary installation tree
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/bin \
$RPM_BUILD_ROOT%{l_prefix}/lib/firefox \
$RPM_BUILD_ROOT%{l_prefix}/man/man1
# move files into temporary installation tree
( cd dist/bin && %{l_tar} -chf - . ) |\
( cd $RPM_BUILD_ROOT%{l_prefix}/lib/firefox && %{l_tar} -xf - ) || exit $?
# add startup convinience wrapper
%{l_shtool} install -c -m 755 %{l_value -s -a} \
%{SOURCE firefox.sh} $RPM_BUILD_ROOT%{l_prefix}/bin/firefox
%{l_shtool} install -c -m 644 \
firefox.1 $RPM_BUILD_ROOT%{l_prefix}/man/man1/
# determine installation files
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
%files -f files
%clean
rm -rf $RPM_BUILD_ROOT