## ## mozilla.spec -- OpenPKG RPM Package Specification ## Copyright (c) 2000-2005 OpenPKG Foundation e.V. ## Copyright (c) 2000-2005 Ralf S. Engelschall ## ## 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: OpenPKG Distribution: OpenPKG Class: PLUS Group: Web License: MPL Version: 1.7.6 Release: 20050324 # package options %option with_optimize yes %option with_mailnews no %option with_composer no %option with_sdk no # list of sources Source0: ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla%{version}/source/mozilla-source-%{version}.tar.bz2 Source1: mozilla.sh Source2: mozilla.pod Patch0: mozilla.patch # build information Prefix: %{l_prefix} BuildRoot: %{l_buildroot} BuildPreReq: OpenPKG, openpkg >= 20040130, make, gcc, perl, pkgconfig PreReq: OpenPKG, openpkg >= 20040130, xsel, wmctrl BuildPreReq: X11, glib, gtk, png, jpeg, orbit, libiconv PreReq: X11, glib, gtk, png, jpeg, orbit, libiconv BuildPreReq: infozip, zlib, openssl, freetype, cairo, cairo::with_x11 = yes PreReq: infozip, zlib, openssl, freetype, cairo, cairo::with_x11 = yes 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. %track prog mozilla = { version = %{version} url = ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/ regex = mozilla(1\.\d+(\.\d+)*)\b url = ftp://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla__NEWVER__/src/ regex = mozilla-source-(__VER__)\.tar\.bz2 } %prep # display a warning that this package is a beast ( echo "This package requires about 600 MB of free disk space, 250 MB of RAM" echo "and 30 minutes real-time to build on a Pentium-4 3.2Ghz class CPU." echo "So be prepared and patient, please... ;-)" ) | %{l_rpmtool} msg -b -t notice # extract source distribution %setup -q -n mozilla # 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_rc} --query x11_libdir` x11_incdir=`%{l_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" MOZILLA_OFFICIAL=1 BUILD_OFFICIAL=1 export CC CXX CFLAGS CXXFLAGS CPPFLAGS LDFLAGS export GLIB_CONFIG GTK_CONFIG LIBIDL_CONFIG export MOZILLA_OFFICIAL BUILD_OFFICIAL # configure source ./configure \ --prefix=%{l_prefix} \ --libdir=%{l_prefix}/lib/mozilla \ --with-default-mozilla-five-home=%{l_prefix}/lib/mozilla \ --includedir=%{l_prefix}/include/mozilla \ --with-x \ --x-includes=`%{l_rc} --query x11_incdir` \ --x-libraries=`%{l_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-jsd \ --enable-crypto \ --enable-chrome-format=jar \ --enable-svg \ --enable-svg-renderer-cairo \ --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-freetype2 \ --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 built 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 convenience 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 $? # install SDK files %if "%{with_sdk}" == "yes" %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/include/mozilla \ $RPM_BUILD_ROOT%{l_prefix}/share/mozilla/idl \ $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig %{l_shtool} install -c -m 755 \ -e "s;-L$RPM_BUILD_ROOT%{l_prefix}[^ ]*;;g" \ build/unix/mozilla-config $RPM_BUILD_ROOT%{l_prefix}/bin/ for name in mozilla-gtkmozembed mozilla-js mozilla-xpcom mozilla-nspr mozilla-nss mozilla-plugin; do %{l_shtool} install -c -m 644 \ -e 's;include/mozilla/mozilla-%{version};include/mozilla;g' \ -e 's;lib/mozilla/mozilla-%{version};lib/mozilla;g' \ -e "s;-L$RPM_BUILD_ROOT%{l_prefix}[^ ]*;;g" \ build/unix/$name.pc $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig/$name.pc done ( cd dist/include && %{l_tar} -chf - . ) |\ ( cd $RPM_BUILD_ROOT%{l_prefix}/include/mozilla && %{l_tar} -xf - ) || exit $? ( cd dist/sdk/lib && %{l_tar} -chf - . ) |\ ( cd $RPM_BUILD_ROOT%{l_prefix}/lib/mozilla && %{l_tar} -xf - ) || exit $? ( cd dist/sdk/idl && %{l_tar} -chf - . ) |\ ( cd $RPM_BUILD_ROOT%{l_prefix}/share/mozilla/idl && %{l_tar} -xf - ) || exit $? %endif # add startup convenience 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