##
## mozilla.spec -- OpenPKG RPM Specification
## Copyright (c) 2000-2003 The OpenPKG Project
## Copyright (c) 2000-2003 Ralf S. Engelschall
## Copyright (c) 2000-2003 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: mozilla
Summary: Graphical Internet Communication Frontend
URL: http://www.mozilla.org/
Vendor: The Mozilla Project
Packager: The OpenPKG Project
Distribution: OpenPKG [PLUS]
Group: Web
License: MPL
Version: 1.5.1
Release: 20031223
# package options
%option with_optimize yes
%option with_mailnews no
%option with_composer no
# list of sources
Source0: ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla%{version}/src/mozilla-source-%{version}.tar.bz2
Source1: ftp://ftp.openpkg.org/sources/CPY/mozilla/mozilla-1.4-libart.tar.bz2
Source2: mozilla.sh
Source3: mozilla.pod
Patch0: mozilla.patch
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
BuildPreReq: OpenPKG, openpkg >= 20030717, make, gcc, perl
PreReq: OpenPKG, openpkg >= 20030717, xsel
BuildPreReq: X11, glib, gtk, orbit, libiconv, infozip, openssl, freetype
PreReq: X11, glib, gtk, orbit, libiconv, infozip, openssl, freetype
AutoReq: no
AutoReqProv: no
%description
Mozilla is a full-featured Open Source Internet communication
frontend derived from the popular Netscape Communicator. It provides
Web, Mail, News and Chat client services and is designed for
standards compliance, performance and portability.
%prep
# display a warning that this package is a beast
( echo "This package requires about 540 MB of free disk space, 200 MB of RAM"
echo "and 70 minutes real-time to build on a Pentium-III 800Mhz class CPU."
echo "So be prepared and patient, please... ;-)"
) | %{l_rpmtool} msg -b -t notice
# 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/mozilla \
--includedir=%{l_prefix}/include/mozilla \
--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
%if "%{with_mailnews}" == "yes"
--enable-mailnews \
%else
--disable-mailnews \
%endif
%if "%{with_composer}" == "yes"
--enable-composer \
%else
--disable-composer \
%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/mozilla;" \
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 mozilla.pod} >mozilla.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/mozilla \
$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/mozilla && %{l_tar} -xf - ) || exit $?
# add startup convinience wrapper
%{l_shtool} install -c -m 755 %{l_value -s -a} \
%{SOURCE mozilla.sh} $RPM_BUILD_ROOT%{l_prefix}/bin/mozilla
%{l_shtool} install -c -m 644 \
mozilla.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