2 # - use make < 3.82 (from th-obsolete) to hack on code, because 3.82
3 # invalidates built objects and it's annoying to wait if all is recompiled
4 # each time you invoke make
5 # - http://wiki.mediatemple.net/w/(dv)_HOWTO:_Install_mod_pagespeed
7 # - c++ errors on 64bit/32bit gcc 4.5.1-4:
8 # /usr/include/c++/4.5.1/bits/stl_map.h:87:5: instantiated from here
9 # /usr/include/c++/4.5.1/bits/stl_pair.h:77:11: error: ‘std::pair<_T1, _T2>::second’ has incomplete type
10 # ./net/instaweb/util/public/cache_interface.h:28:7: error: forward declaration of ‘struct net_instaweb::SharedString’
11 # make[1]: *** [out/Release/obj.target/mod_pagespeed_test/net/instaweb/util/cache_fetcher_test.o] Error 1
12 # http://pastebin.com/Eu88BPSQ
13 # - sizeof(apr_int32_t) == sizeof(apr_int64_t) on 32bit (!?!):
14 # third_party/apache/apr/src/strings/apr_snprintf.c: In function 'conv_os_thread_t':
15 # third_party/apache/apr/src/strings/apr_snprintf.c:500:5: error: duplicate case value
16 # third_party/apache/apr/src/strings/apr_snprintf.c:498:5: error: previously used here
17 # third_party/apache/apr/src/strings/apr_snprintf.c: In function 'conv_os_thread_t_hex':
18 # third_party/apache/apr/src/strings/apr_snprintf.c:671:5: error: duplicate case value
19 # third_party/apache/apr/src/strings/apr_snprintf.c:669:5: error: previously used here
20 # - possible sysdeps (uses release tags)
21 # "serf_src": "http://serf.googlecode.com/svn/tags/0.3.1",
22 # "apr_src": "http://svn.apache.org/repos/asf/apr/apr/tags/1.4.2",
23 # "aprutil_src": "http://svn.apache.org/repos/asf/apr/apr-util/tags/1.3.9",
24 # "apache_httpd_src": "http://svn.apache.org/repos/asf/httpd/httpd/tags/2.2.15",
25 # "opencv_src": "https://code.ros.org/svn/opencv/tags/2.1",
26 # "gflags_root": "http://google-gflags.googlecode.com/svn/tags/gflags-1.3/src",
27 # "google_sparsehash_root": "http://google-sparsehash.googlecode.com/svn/tags/sparsehash-1.8.1/src",
28 %define svndate 20101104
30 %define mod_name pagespeed
31 %define apxs %{_sbindir}/apxs
32 Summary: Apache module for rewriting web pages to reduce latency and bandwidth
33 Name: apache-mod_%{mod_name}
37 Group: Networking/Daemons/HTTP
38 Source10: http://src.chromium.org/svn/trunk/tools/depot_tools.tar.gz
39 # Source10-md5: 56a3c406fcb645eaaa608a257f06a90d
40 # test -d depot_tools || tar xzf depot_tools.tar.gz
41 # install -d modpagespeed
43 # test -f .gclient || ../depot_tools/gclient config http://modpagespeed.googlecode.com/svn/trunk/src
44 # ../depot_tools/gclient sync
45 # Populate the LASTCHANGE file template as we no longer have the VCS files at this point
46 # (cd src/build && svnversion > LASTCHANGE.in)
48 # tar -cjf modpagespeed-$(date +%Y%m%d).tar.bz2 --exclude-vcs modpagespeed
49 # ../dropin modpagespeed-$(date +%Y%m%d).tar.bz2 &
50 Source0: modpagespeed-%{svndate}.tar.bz2
51 # Source0-md5: 1640f3c7226ffd3ba4a67f0064241495
52 URL: http://code.google.com/p/modpagespeed/
53 BuildRequires: %{apxs}
54 BuildRequires: apache-devel >= 2.2
55 BuildRequires: rpmbuild(macros) >= 1.268
56 Requires: apache(modules-api) = %apache_modules_api
57 Suggests: apache-mod_deflate
58 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
60 %define _pkglibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
61 %define _sysconfdir %(%{apxs} -q SYSCONFDIR 2>/dev/null)/conf.d
64 mod_pagespeed automates the application of those rules in an Apache
65 server. HTML, CSS, JavaScript, and images are changed dynamically
66 during the web serving process, so that the best practices recommended
67 by Page Speed can be used without having to change the way the web
71 %setup -q -n modpagespeed -a10
73 cat > apache.conf <<EOF
74 LoadModule %{mod_name}_module modules/mod_%{mod_name}.so > apache.conf
76 $(cat src/install/common/pagespeed.conf.template)
80 export PATH=$PATH:$(pwd)/depot_tools
84 cat > Makefile <<'EOF'
87 BUILDTYPE=%{!?debug:Release}%{?debug:Debug} \
88 %{?with_verbose:V=1} \
93 LINK.host="%{__cxx}" \
94 CFLAGS="%{rpmcflags} %{rpmcppflags}" \
95 CXXFLAGS="%{rpmcxxflags} %{rpmcppflags}" \
100 rm -rf $RPM_BUILD_ROOT
101 install -d $RPM_BUILD_ROOT{%{_pkglibdir},%{_sysconfdir}}
102 install -p mod_%{mod_name}.so $RPM_BUILD_ROOT%{_pkglibdir}
103 cp -a apache.conf $RPM_BUILD_ROOT%{_sysconfdir}/90_mod_%{mod_name}.conf
106 rm -rf $RPM_BUILD_ROOT
109 %service -q httpd restart
112 if [ "$1" = "0" ]; then
113 %service -q httpd restart
117 %defattr(644,root,root,755)
118 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}.conf
119 %attr(755,root,root) %{_pkglibdir}/mod_%{mod_name}.so