## ## 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