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: fa8d6a80fc4ca7f929910fa4eeb4a941
33 Source1: get-source.sh
35 Patch0: system-libs.patch
36 Patch1: gcc-headers.patch
39 URL: https://developers.google.com/speed/pagespeed/
40 BuildRequires: %{apxs}
41 BuildRequires: apache-devel >= 2.2
42 BuildRequires: glib2-devel
44 BuildRequires: libselinux-devel
45 BuildRequires: libstdc++-devel >= 5:4.1
46 BuildRequires: opencv-devel >= 2.3.1
47 BuildRequires: openssl-devel
48 BuildRequires: pkgconfig
49 BuildRequires: python-devel >= 1:2.6
50 # This version of gyp is new enough that it knows to use make for Linux 3.x
51 # and FreeBSD, but old enough that 'type': 'settings' works and
52 # LINKER_SUPPORTS_ICF hasn't been removed yet.
53 BuildRequires: python-gyp >= 0.1-0.svn1602.1
54 BuildRequires: rpmbuild(macros) >= 1.268
55 BuildRequires: tar >= 1:1.22
56 BuildRequires: util-linux
58 BuildRequires: zlib-devel
59 # gcc4 might be installed, but not current __cc
60 %if "%(echo %{cc_version} | cut -d. -f1,2)" < "4.0"
61 BuildRequires: __cc >= 4.0
63 Requires: apache(modules-api) = %apache_modules_api
64 Requires: apache-mod_authz_host
65 Requires: apache-mod_headers
66 Suggests: apache-mod_deflate
67 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
69 %define _pkglibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
70 %define _pkgrootdir %(%{apxs} -q SYSCONFDIR 2>/dev/null)
71 %define _sysconfdir %{_pkgrootdir}/conf.d
72 %define htdocsdir %(%{apxs} -q htdocsdir 2>/dev/null)
73 %define cachedir %(%{apxs} -q proxycachedir 2>/dev/null)/mod_%{mod_name}
76 mod_pagespeed automates the application of those rules in an Apache
77 server. HTML, CSS, JavaScript, and images are changed dynamically
78 during the web serving process, so that the best practices recommended
79 by Page Speed can be used without having to change the way the web
83 %setup -q -n modpagespeed-%{version}
93 %{__python} build/gyp_chromium \
98 -Duse_system_apache_dev=1 \
99 -Duse_system_libjpeg=1 \
100 -Duse_system_libpng=1 \
101 -Duse_system_opencv=1 \
102 -Duse_system_zlib=1 \
103 -Dsystem_include_path_apr=%{_includedir}/apr \
104 -Dsystem_include_path_aprutil=%{_includedir}/apr-util \
105 -Dsystem_include_path_httpd=%{_includedir}/apache \
108 %{__make} mod_pagespeed js_minify css_minify_main \
109 BUILDTYPE=%{!?debug:Release}%{?debug:Debug} \
110 %{?with_verbose:V=1} \
114 CXX.host="%{__cxx}" \
115 LINK.host="%{__cxx}" \
116 CFLAGS="%{rpmcflags} %{rpmcppflags}" \
117 CXXFLAGS="%{rpmcxxflags} %{rpmcppflags}" \
121 rm -rf $RPM_BUILD_ROOT
122 install -d $RPM_BUILD_ROOT{%{_pkglibdir},%{_sysconfdir},%{_bindir},%{cachedir}}
124 %{__make} -j1 -C install staging_except_module \
125 APACHE_ROOT=%{_pkgrootdir} \
126 APACHE_MODULES=modules \
127 APACHE_DOC_ROOT=%{htdocsdir} \
128 MOD_PAGESPEED_CACHE=%{cachedir} \
129 MOD_PAGESPEED_STATS_LOG=/var/log/httpd/mod_pagespeed_stats.log \
132 out=out/%{!?debug:Release}%{?debug:Debug}
133 install -p $out/libmod_%{mod_name}.so $RPM_BUILD_ROOT%{_pkglibdir}/mod_%{mod_name}.so
134 install -p $out/js_minify $RPM_BUILD_ROOT%{_bindir}/pagespeed_js_minify
135 install -p $out/css_minify_main $RPM_BUILD_ROOT%{_bindir}/pagespeed_css_minify
138 cat > $RPM_BUILD_ROOT%{_sysconfdir}/90_mod_%{mod_name}.conf <<EOF
139 LoadModule %{mod_name}_module modules/mod_%{mod_name}.so
141 $(cat pagespeed.conf)
144 cp -p pagespeed_libraries.conf $RPM_BUILD_ROOT%{_sysconfdir}/91_mod_%{mod_name}_libraries.conf
146 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
147 cp -a mod_pagespeed_example/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
150 rm -rf $RPM_BUILD_ROOT
153 %service -q httpd restart
156 if [ "$1" = "0" ]; then
157 %service -q httpd restart
161 %defattr(644,root,root,755)
162 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}.conf
163 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}_libraries.conf
164 %attr(755,root,root) %{_bindir}/pagespeed_css_minify
165 %attr(755,root,root) %{_bindir}/pagespeed_js_minify
166 %attr(755,root,root) %{_pkglibdir}/mod_%{mod_name}.so
167 %{_examplesdir}/%{name}-%{version}
168 %dir %attr(770,root,http) %{cachedir}