3 %bcond_without verbose # verbose build (V=1)
6 # - relase notes: https://developers.google.com/speed/pagespeed/module/release_notes
7 # - http://code.google.com/p/modpagespeed/wiki/HowToBuild
8 # - http://wiki.mediatemple.net/w/(dv)_HOWTO:_Install_mod_pagespeed
10 # - add unit tests running
11 # - possible sysdeps (uses release tags)
12 # "serf_src": "http://serf.googlecode.com/svn/tags/0.3.1",
13 # "gflags_root": "http://google-gflags.googlecode.com/svn/tags/gflags-1.3/src",
14 # "google_sparsehash_root": "http://google-sparsehash.googlecode.com/svn/tags/sparsehash-1.8.1/src",
17 %define mod_name pagespeed
18 %define apxs %{_sbindir}/apxs
19 Summary: Apache module for rewriting web pages to reduce latency and bandwidth
20 Name: apache-mod_%{mod_name}
26 Group: Networking/Daemons/HTTP
27 Source0: modpagespeed-%{version}.tar.xz
28 # Source0-md5: ce0f27b177fba51f6b9f08fed8134709
29 Source1: get-source.sh
31 Patch0: system-libs.patch
33 Patch4: no-dev-stdout.patch
34 URL: https://developers.google.com/speed/pagespeed/module
35 BuildRequires: %{apxs}
36 BuildRequires: apache-devel >= 2.2
38 BuildRequires: glib2-devel
40 BuildRequires: libselinux-devel
41 BuildRequires: libstdc++-devel >= 5:4.1
42 BuildRequires: opencv-devel >= 2.3.1
43 BuildRequires: openssl-devel
44 BuildRequires: pkgconfig
45 BuildRequires: python-devel >= 1:2.6
46 # This version of gyp is new enough that it knows to use make for Linux 3.x
47 # and FreeBSD, but old enough that 'type': 'settings' works and
48 # LINKER_SUPPORTS_ICF hasn't been removed yet.
49 BuildRequires: python-gyp >= 0.1-0.svn1602.1
50 BuildRequires: rpmbuild(macros) >= 1.268
51 BuildRequires: tar >= 1:1.22
52 BuildRequires: util-linux
54 BuildRequires: zlib-devel
55 Requires: apache(modules-api) = %apache_modules_api
56 Requires: apache-mod_authz_host
57 Requires: apache-mod_headers
58 Suggests: apache-mod_deflate
59 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
61 %define _pkglibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
62 %define _pkgrootdir %(%{apxs} -q SYSCONFDIR 2>/dev/null)
63 %define _sysconfdir %{_pkgrootdir}/conf.d
64 %define htdocsdir %(%{apxs} -q htdocsdir 2>/dev/null)
65 %define cachedir %(%{apxs} -q proxycachedir 2>/dev/null)/mod_%{mod_name}
68 mod_pagespeed automates the application of those rules in an Apache
69 server. HTML, CSS, JavaScript, and images are changed dynamically
70 during the web serving process, so that the best practices recommended
71 by Page Speed can be used without having to change the way the web
75 %setup -q -n modpagespeed-%{version}
84 %{__python} build/gyp_chromium \
89 -Duse_system_apache_dev=1 \
90 -Duse_system_libjpeg=1 \
91 -Duse_system_libpng=1 \
92 -Duse_system_opencv=1 \
94 -Dsystem_include_path_apr=%{_includedir}/apr \
95 -Dsystem_include_path_aprutil=%{_includedir}/apr-util \
96 -Dsystem_include_path_httpd=%{_includedir}/apache \
99 %{__make} mod_pagespeed js_minify css_minify_main \
100 BUILDTYPE=%{!?debug:Release}%{?debug:Debug} \
101 %{?with_verbose:V=1} \
105 CXX.host="%{__cxx}" \
106 LINK.host="%{__cxx}" \
107 CFLAGS="%{rpmcflags} %{rpmcppflags}" \
108 CXXFLAGS="%{rpmcxxflags} %{rpmcppflags}" \
112 rm -rf $RPM_BUILD_ROOT
113 install -d $RPM_BUILD_ROOT{%{_pkglibdir},%{_sysconfdir},%{_bindir},%{cachedir}}
115 %{__make} -j1 -C install staging_except_module \
116 APACHE_ROOT=%{_pkgrootdir} \
117 APACHE_MODULES=modules \
118 APACHE_DOC_ROOT=%{htdocsdir} \
119 MOD_PAGESPEED_CACHE=%{cachedir} \
120 MOD_PAGESPEED_STATS_LOG=/var/log/httpd/mod_pagespeed_stats.log \
123 out=out/%{!?debug:Release}%{?debug:Debug}
124 install -p $out/libmod_%{mod_name}.so $RPM_BUILD_ROOT%{_pkglibdir}/mod_%{mod_name}.so
125 install -p $out/js_minify $RPM_BUILD_ROOT%{_bindir}/pagespeed_js_minify
126 install -p $out/css_minify_main $RPM_BUILD_ROOT%{_bindir}/pagespeed_css_minify
129 cat > $RPM_BUILD_ROOT%{_sysconfdir}/90_mod_%{mod_name}.conf <<EOF
130 LoadModule %{mod_name}_module modules/mod_%{mod_name}.so
132 $(cat pagespeed.conf)
135 cp -p pagespeed_libraries.conf $RPM_BUILD_ROOT%{_sysconfdir}/91_mod_%{mod_name}_libraries.conf
137 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
138 cp -a mod_pagespeed_example/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
141 rm -rf $RPM_BUILD_ROOT
144 %service -q httpd restart
147 if [ "$1" = "0" ]; then
148 %service -q httpd restart
152 %defattr(644,root,root,755)
153 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}.conf
154 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}_libraries.conf
155 %attr(755,root,root) %{_bindir}/pagespeed_css_minify
156 %attr(755,root,root) %{_bindir}/pagespeed_js_minify
157 %attr(755,root,root) %{_pkglibdir}/mod_%{mod_name}.so
158 %{_examplesdir}/%{name}-%{version}
159 %dir %attr(770,root,http) %{cachedir}