3 %bcond_without verbose # verbose build (V=1)
6 # - http://code.google.com/p/modpagespeed/wiki/HowToBuild
7 # - http://wiki.mediatemple.net/w/(dv)_HOWTO:_Install_mod_pagespeed
9 # - add unit tests running
10 # - possible sysdeps (uses release tags)
11 # "serf_src": "http://serf.googlecode.com/svn/tags/0.3.1",
12 # "gflags_root": "http://google-gflags.googlecode.com/svn/tags/gflags-1.3/src",
13 # "google_sparsehash_root": "http://google-sparsehash.googlecode.com/svn/tags/sparsehash-1.8.1/src",
16 %if "%{pld_release}" == "ac"
17 # add suffix, but allow ccache, etc in ~/.rpmmacros
18 %{expand:%%define __cc %(echo '%__cc' | sed -e 's,-gcc,-gcc4,')}
19 %{expand:%%define __cxx %(echo '%__cxx' | sed -e 's,-g++,-g++4,')}
20 %{expand:%%define __cpp %(echo '%__cpp' | sed -e 's,-gcc,-gcc4,')}
23 %define mod_name pagespeed
24 %define apxs %{_sbindir}/apxs
25 Summary: Apache module for rewriting web pages to reduce latency and bandwidth
26 Name: apache-mod_%{mod_name}
30 Group: Networking/Daemons/HTTP
31 Source0: modpagespeed-%{version}.tar.xz
32 # Source0-md5: 7df9bf6b1aacec28d81b1678192652ca
33 Source1: get-source.sh
35 Patch0: system-libs.patch
36 Patch1: gcc-headers.patch
38 URL: https://developers.google.com/speed/pagespeed/
39 BuildRequires: %{apxs}
40 BuildRequires: apache-devel >= 2.2
41 BuildRequires: glib2-devel
43 BuildRequires: libselinux-devel
44 BuildRequires: libstdc++-devel >= 5:4.1
45 BuildRequires: opencv-devel >= 2.3.1
46 BuildRequires: openssl-devel
47 BuildRequires: pkgconfig
48 BuildRequires: python-devel >= 1:2.6
49 # This version of gyp is new enough that it knows to use make for Linux 3.x
50 # and FreeBSD, but old enough that 'type': 'settings' works and
51 # LINKER_SUPPORTS_ICF hasn't been removed yet.
52 BuildRequires: python-gyp >= 1-1175
53 BuildRequires: rpmbuild(macros) >= 1.268
54 BuildRequires: tar >= 1:1.22
55 BuildRequires: util-linux
57 BuildRequires: zlib-devel
58 # gcc4 might be installed, but not current __cc
59 %if "%(echo %{cc_version} | cut -d. -f1,2)" < "4.0"
60 BuildRequires: __cc >= 4.0
62 Requires: apache(modules-api) = %apache_modules_api
63 Requires: apache-mod_authz_host
64 Requires: apache-mod_headers
65 Suggests: apache-mod_deflate
66 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
68 %define _pkglibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
69 %define _pkgrootdir %(%{apxs} -q SYSCONFDIR 2>/dev/null)
70 %define _sysconfdir %{_pkgrootdir}/conf.d
71 %define htdocsdir %(%{apxs} -q htdocsdir 2>/dev/null)
72 %define cachedir %(%{apxs} -q proxycachedir 2>/dev/null)/mod_%{mod_name}
75 mod_pagespeed automates the application of those rules in an Apache
76 server. HTML, CSS, JavaScript, and images are changed dynamically
77 during the web serving process, so that the best practices recommended
78 by Page Speed can be used without having to change the way the web
82 %setup -q -n modpagespeed-%{version}
91 %{__python} build/gyp_chromium \
96 -Duse_system_apache_dev=1 \
97 -Duse_system_libjpeg=1 \
98 -Duse_system_libpng=1 \
99 -Duse_system_opencv=1 \
100 -Duse_system_zlib=1 \
101 -Dsystem_include_path_apr=%{_includedir}/apr \
102 -Dsystem_include_path_aprutil=%{_includedir}/apr-util \
103 -Dsystem_include_path_httpd=%{_includedir}/apache \
106 %{__make} mod_pagespeed js_minify css_minify_main \
107 BUILDTYPE=%{!?debug:Release}%{?debug:Debug} \
108 %{?with_verbose:V=1} \
112 CXX.host="%{__cxx}" \
113 LINK.host="%{__cxx}" \
114 CFLAGS="%{rpmcflags} %{rpmcppflags}" \
115 CXXFLAGS="%{rpmcxxflags} %{rpmcppflags}" \
119 rm -rf $RPM_BUILD_ROOT
120 install -d $RPM_BUILD_ROOT{%{_pkglibdir},%{_sysconfdir},%{_bindir},%{cachedir}}
122 %{__make} -j1 -C install staging_except_module \
123 APACHE_ROOT=%{_pkgrootdir} \
124 APACHE_MODULES=modules \
125 APACHE_DOC_ROOT=%{htdocsdir} \
126 MOD_PAGESPEED_CACHE=%{cachedir} \
127 MOD_PAGESPEED_STATS_LOG=/var/log/httpd/mod_pagespeed_stats.log \
130 out=out/%{!?debug:Release}%{?debug:Debug}
131 install -p $out/libmod_%{mod_name}.so $RPM_BUILD_ROOT%{_pkglibdir}/mod_%{mod_name}.so
132 install -p $out/js_minify $RPM_BUILD_ROOT%{_bindir}/pagespeed_js_minify
133 install -p $out/css_minify_main $RPM_BUILD_ROOT%{_bindir}/pagespeed_css_minify
136 cat > $RPM_BUILD_ROOT%{_sysconfdir}/90_mod_%{mod_name}.conf <<EOF
137 LoadModule %{mod_name}_module modules/mod_%{mod_name}.so
139 $(cat pagespeed.conf)
142 cp -p pagespeed_libraries.conf $RPM_BUILD_ROOT%{_sysconfdir}/91_mod_%{mod_name}_libraries.conf
144 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
145 cp -a mod_pagespeed_example/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
148 rm -rf $RPM_BUILD_ROOT
151 %service -q httpd restart
154 if [ "$1" = "0" ]; then
155 %service -q httpd restart
159 %defattr(644,root,root,755)
160 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}.conf
161 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}_libraries.conf
162 %attr(755,root,root) %{_bindir}/pagespeed_css_minify
163 %attr(755,root,root) %{_bindir}/pagespeed_js_minify
164 %attr(755,root,root) %{_pkglibdir}/mod_%{mod_name}.so
165 %{_examplesdir}/%{name}-%{version}
166 %dir %attr(770,root,http) %{cachedir}