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 # - use only source for modpagespeed if system headers are used (remove copies from tarball)
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 %if "%{pld_release}" == "ac"
18 # add suffix, but allow ccache, etc in ~/.rpmmacros
19 %{expand:%%define __cc %(echo '%__cc' | sed -e 's,-gcc,-gcc4,')}
20 %{expand:%%define __cxx %(echo '%__cxx' | sed -e 's,-g++,-g++4,')}
21 %{expand:%%define __cpp %(echo '%__cpp' | sed -e 's,-gcc,-gcc4,')}
24 %define mod_name pagespeed
25 %define apxs %{_sbindir}/apxs
26 Summary: Apache module for rewriting web pages to reduce latency and bandwidth
27 Name: apache-mod_%{mod_name}
31 Group: Networking/Daemons/HTTP
32 Source0: modpagespeed-%{version}.tar.xz
33 # Source0-md5: 1c67625812d18899ce6a47da069c6043
34 Source1: get-source.sh
35 Patch0: system-libs.patch
36 Patch1: gcc-headers.patch
37 URL: https://developers.google.com/speed/pagespeed/
38 BuildRequires: %{apxs}
39 BuildRequires: apache-devel >= 2.2
40 BuildRequires: glib2-devel
42 BuildRequires: libjpeg-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
91 %{__python} build/gyp_chromium --format=make build/all.gyp \
93 -Duse_system_apache_dev=1 \
94 -Duse_system_libjpeg=1 \
95 -Duse_system_libpng=1 \
96 -Duse_system_opencv=1 \
102 # makefile wrapper so we could just invoke "make" from shell
103 cat > Makefile <<'EOF'
104 # target names from build/all.gyp
106 $(MAKE) -C src mod_pagespeed \
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}" \
121 rm -rf $RPM_BUILD_ROOT
122 install -d $RPM_BUILD_ROOT{%{_pkglibdir},%{_sysconfdir},%{cachedir}/{cache,files}}
123 %{__make} -j1 -C src/install staging_except_module \
125 APACHE_ROOT=%{_pkgrootdir} \
126 APACHE_MODULES=modules \
127 APACHE_DOC_ROOT=%{htdocsdir} \
128 MOD_PAGESPEED_FILE_ROOT=%{cachedir} \
131 install -p src/out/Release/libmod_%{mod_name}.so $RPM_BUILD_ROOT%{_pkglibdir}/mod_%{mod_name}.so
132 cd src/install/staging
133 cat > $RPM_BUILD_ROOT%{_sysconfdir}/90_mod_%{mod_name}.conf <<EOF
134 LoadModule %{mod_name}_module modules/mod_%{mod_name}.so
136 $(cat pagespeed.conf)
139 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
140 cp -a mod_pagespeed_example/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
143 rm -rf $RPM_BUILD_ROOT
146 %service -q httpd restart
149 if [ "$1" = "0" ]; then
150 %service -q httpd restart
154 %defattr(644,root,root,755)
155 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}.conf
156 %attr(755,root,root) %{_pkglibdir}/mod_%{mod_name}.so
157 %{_examplesdir}/%{name}-%{version}
159 %dir %attr(710,root,http) %{cachedir}
160 %dir %attr(770,root,http) %{cachedir}/cache
161 %dir %attr(770,root,http) %{cachedir}/files