Bläddra i källkod

Make this package now gold: - give people optionally back their composer and mail/news client - really enable freetype support this time - finally remove again all empty directories in package - stripped down installation area by removing unused files - add a few comments to clearify things a little bit more - strip down source distribution to save disk space - display a warning that this package is a beast to build - polish description and summary

Ralf S. Engelschall 23 år sedan
förälder
incheckning
36b1eb7d2e
1 ändrade filer med 70 tillägg och 11 borttagningar
  1. 70 11
      mozilla/mozilla.spec

+ 70 - 11
mozilla/mozilla.spec

@@ -23,11 +23,19 @@
 ##  SUCH DAMAGE.
 ##
 
+#   package options
+%ifndef       with_mailnews
+%define       with_mailnews   no
+%endif
+%ifndef       with_composer
+%define       with_composer   no
+%endif
+
 #   package information
 Name:         mozilla
-Summary:      Graphical Web/Mail/News/Chat Frontend
+Summary:      Graphical Internet Communication Frontend
 URL:          http://www.mozilla.org/
-Vendor:       Mozilla
+Vendor:       The Mozilla Project
 Packager:     The OpenPKG Project
 Distribution: OpenPKG [EVAL]
 Group:        Web
@@ -50,15 +58,34 @@ AutoReq:      no
 AutoReqProv:  no
 
 %description
-    Mozilla is a full-featured open-source web browser derived
-    from Netscape Communicator, designed for standards compliance,
-    performance and portability.
+    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 FIXME MB of free disk space and about"
+      echo "FIXME minutes real-time to build on a Pentium-III 800Mhz class CPU."
+      echo "So please be prepared... ;-)"
+    ) | %{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
+    #   configure source
     CC="%{l_cc}" \
     CXX="%{l_cxx}" \
     CFLAGS="%{l_cflags} %{l_cppflags}" \
@@ -84,19 +111,28 @@ AutoReqProv:  no
         --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-static \
         --enable-strip \
+%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-mailnews \
-        --disable-composer \
         --disable-svg \
         --disable-ldap \
-        --disable-freetype2 \
         --disable-accessibility \
         --disable-debug \
         --disable-dtd-debug \
@@ -108,19 +144,34 @@ AutoReqProv:  no
         --disable-optimize \
         --disable-xterm-updates \
         --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
-      #find . -type d -depth -print | xargs rmdir >/dev/null 2>&1 || true
+
+      #   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
     )
+
+    #   generate manual page for startup convinience wrapper
     %{l_prefix}/bin/pod2man \
         --section=1 --quotes=none \
         --release="Mozilla %{version}" --center="%{packager}" \
@@ -128,16 +179,24 @@ AutoReqProv:  no
 
 %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
-	(cd dist/bin && %{l_tar} -chf - . ) |\
-	    (cd $RPM_BUILD_ROOT%{l_prefix}/lib/mozilla && %{l_tar} -xf -)
+
+    #   move files into temporary installation tree
+    (cd dist/bin && %{l_tar} -chf - . ) |\
+        (cd $RPM_BUILD_ROOT%{l_prefix}/lib/mozilla && %{l_tar} -xf -)
+
+    #   add startup convinience wrapper
     %{l_shtool} install -c -m 755 -e 's;@l_prefix@;%{l_prefix};g' \
         %{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