]>
Commit | Line | Data |
---|---|---|
757b3ba5 ER |
1 | # |
2 | # Conditional build: | |
42a31ab3 | 3 | %bcond_without verbose # verbose build (V=1) |
757b3ba5 | 4 | |
b6a5d8d0 | 5 | # NOTE |
757b3ba5 | 6 | # - http://code.google.com/p/modpagespeed/wiki/HowToBuild |
eb743e9a | 7 | # - http://wiki.mediatemple.net/w/(dv)_HOWTO:_Install_mod_pagespeed |
b6a5d8d0 | 8 | # TODO |
757b3ba5 | 9 | # - add unit tests running |
b6a5d8d0 ER |
10 | # - possible sysdeps (uses release tags) |
11 | # "serf_src": "http://serf.googlecode.com/svn/tags/0.3.1", | |
b6a5d8d0 ER |
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", | |
b74b29a5 | 14 | # protobuf_lite |
24f1647c ER |
15 | |
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,')} | |
21 | %endif | |
22 | ||
08710a2f | 23 | %define mod_name pagespeed |
cad452c8 | 24 | %define apxs %{_sbindir}/apxs |
08710a2f ER |
25 | Summary: Apache module for rewriting web pages to reduce latency and bandwidth |
26 | Name: apache-mod_%{mod_name} | |
ce5a7d18 | 27 | Version: 1.5.27.2 |
9c41f6b1 | 28 | Release: 3 |
08710a2f ER |
29 | License: Apache v2.0 |
30 | Group: Networking/Daemons/HTTP | |
4623c72a | 31 | Source0: modpagespeed-%{version}.tar.xz |
ce5a7d18 | 32 | # Source0-md5: fa8d6a80fc4ca7f929910fa4eeb4a941 |
b74b29a5 | 33 | Source1: get-source.sh |
5a3e561c | 34 | Source2: gclient.conf |
42a31ab3 ER |
35 | Patch0: system-libs.patch |
36 | Patch1: gcc-headers.patch | |
1a9213c5 | 37 | Patch2: bug-632.patch |
b6382d61 | 38 | Patch3: opencv.patch |
cad452c8 | 39 | Patch4: no-dev-stdout.patch |
b74b29a5 | 40 | URL: https://developers.google.com/speed/pagespeed/ |
08710a2f ER |
41 | BuildRequires: %{apxs} |
42 | BuildRequires: apache-devel >= 2.2 | |
42a31ab3 | 43 | BuildRequires: glib2-devel |
3f27b998 | 44 | BuildRequires: gperf |
42a31ab3 | 45 | BuildRequires: libselinux-devel |
b74b29a5 | 46 | BuildRequires: libstdc++-devel >= 5:4.1 |
4623c72a | 47 | BuildRequires: opencv-devel >= 2.3.1 |
42a31ab3 | 48 | BuildRequires: openssl-devel |
3f27b998 | 49 | BuildRequires: pkgconfig |
757b3ba5 | 50 | BuildRequires: python-devel >= 1:2.6 |
4623c72a ER |
51 | # This version of gyp is new enough that it knows to use make for Linux 3.x |
52 | # and FreeBSD, but old enough that 'type': 'settings' works and | |
53 | # LINKER_SUPPORTS_ICF hasn't been removed yet. | |
3fbdacfc | 54 | BuildRequires: python-gyp >= 0.1-0.svn1602.1 |
08710a2f | 55 | BuildRequires: rpmbuild(macros) >= 1.268 |
4623c72a | 56 | BuildRequires: tar >= 1:1.22 |
2ddcd200 | 57 | BuildRequires: util-linux |
4623c72a | 58 | BuildRequires: xz |
42a31ab3 | 59 | BuildRequires: zlib-devel |
24f1647c ER |
60 | # gcc4 might be installed, but not current __cc |
61 | %if "%(echo %{cc_version} | cut -d. -f1,2)" < "4.0" | |
62 | BuildRequires: __cc >= 4.0 | |
63 | %endif | |
08710a2f | 64 | Requires: apache(modules-api) = %apache_modules_api |
e5171f2e | 65 | Requires: apache-mod_authz_host |
3f27b998 | 66 | Requires: apache-mod_headers |
b6a5d8d0 | 67 | Suggests: apache-mod_deflate |
08710a2f ER |
68 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) |
69 | ||
70 | %define _pkglibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null) | |
06daee42 ER |
71 | %define _pkgrootdir %(%{apxs} -q SYSCONFDIR 2>/dev/null) |
72 | %define _sysconfdir %{_pkgrootdir}/conf.d | |
73 | %define htdocsdir %(%{apxs} -q htdocsdir 2>/dev/null) | |
74 | %define cachedir %(%{apxs} -q proxycachedir 2>/dev/null)/mod_%{mod_name} | |
08710a2f ER |
75 | |
76 | %description | |
77 | mod_pagespeed automates the application of those rules in an Apache | |
78 | server. HTML, CSS, JavaScript, and images are changed dynamically | |
79 | during the web serving process, so that the best practices recommended | |
80 | by Page Speed can be used without having to change the way the web | |
81 | site is maintained. | |
82 | ||
83 | %prep | |
5bdfa704 ER |
84 | %setup -q -n modpagespeed-%{version} |
85 | %patch0 -p2 | |
86 | %patch1 -p2 | |
ce5a7d18 | 87 | %patch2 -p1 |
b6382d61 | 88 | %patch3 -p3 |
9c41f6b1 | 89 | %patch4 -p1 |
08710a2f ER |
90 | |
91 | %build | |
eb743e9a | 92 | # re-gen makefiles |
e62ba6cb ER |
93 | CC="%{__cc}" \ |
94 | CXX="%{__cxx}" \ | |
5bdfa704 ER |
95 | %{__python} build/gyp_chromium \ |
96 | --format=make \ | |
97 | --depth=. \ | |
98 | build/all.gyp \ | |
42a31ab3 ER |
99 | -Duse_openssl=1 \ |
100 | -Duse_system_apache_dev=1 \ | |
101 | -Duse_system_libjpeg=1 \ | |
102 | -Duse_system_libpng=1 \ | |
103 | -Duse_system_opencv=1 \ | |
104 | -Duse_system_zlib=1 \ | |
b2f50394 ER |
105 | -Dsystem_include_path_apr=%{_includedir}/apr \ |
106 | -Dsystem_include_path_aprutil=%{_includedir}/apr-util \ | |
107 | -Dsystem_include_path_httpd=%{_includedir}/apache \ | |
42a31ab3 ER |
108 | %{nil} |
109 | ||
1a9213c5 | 110 | %{__make} mod_pagespeed js_minify css_minify_main \ |
08710a2f ER |
111 | BUILDTYPE=%{!?debug:Release}%{?debug:Debug} \ |
112 | %{?with_verbose:V=1} \ | |
113 | CC="%{__cc}" \ | |
114 | CXX="%{__cxx}" \ | |
115 | CC.host="%{__cc}" \ | |
116 | CXX.host="%{__cxx}" \ | |
117 | LINK.host="%{__cxx}" \ | |
118 | CFLAGS="%{rpmcflags} %{rpmcppflags}" \ | |
119 | CXXFLAGS="%{rpmcxxflags} %{rpmcppflags}" \ | |
5bdfa704 | 120 | %{nil} |
08710a2f ER |
121 | |
122 | %install | |
123 | rm -rf $RPM_BUILD_ROOT | |
1a9213c5 ER |
124 | install -d $RPM_BUILD_ROOT{%{_pkglibdir},%{_sysconfdir},%{_bindir},%{cachedir}} |
125 | ||
5bdfa704 | 126 | %{__make} -j1 -C install staging_except_module \ |
06daee42 | 127 | APACHE_ROOT=%{_pkgrootdir} \ |
3f27b998 | 128 | APACHE_MODULES=modules \ |
06daee42 | 129 | APACHE_DOC_ROOT=%{htdocsdir} \ |
5bdfa704 ER |
130 | MOD_PAGESPEED_CACHE=%{cachedir} \ |
131 | MOD_PAGESPEED_STATS_LOG=/var/log/httpd/mod_pagespeed_stats.log \ | |
06daee42 ER |
132 | STAGING_DIR=staging |
133 | ||
1a9213c5 ER |
134 | out=out/%{!?debug:Release}%{?debug:Debug} |
135 | install -p $out/libmod_%{mod_name}.so $RPM_BUILD_ROOT%{_pkglibdir}/mod_%{mod_name}.so | |
136 | install -p $out/js_minify $RPM_BUILD_ROOT%{_bindir}/pagespeed_js_minify | |
137 | install -p $out/css_minify_main $RPM_BUILD_ROOT%{_bindir}/pagespeed_css_minify | |
138 | ||
5bdfa704 | 139 | cd install/staging |
06daee42 ER |
140 | cat > $RPM_BUILD_ROOT%{_sysconfdir}/90_mod_%{mod_name}.conf <<EOF |
141 | LoadModule %{mod_name}_module modules/mod_%{mod_name}.so | |
142 | ||
143 | $(cat pagespeed.conf) | |
144 | EOF | |
08710a2f | 145 | |
1a9213c5 ER |
146 | cp -p pagespeed_libraries.conf $RPM_BUILD_ROOT%{_sysconfdir}/91_mod_%{mod_name}_libraries.conf |
147 | ||
3f27b998 ER |
148 | install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} |
149 | cp -a mod_pagespeed_example/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} | |
150 | ||
08710a2f ER |
151 | %clean |
152 | rm -rf $RPM_BUILD_ROOT | |
153 | ||
154 | %post | |
155 | %service -q httpd restart | |
156 | ||
157 | %postun | |
158 | if [ "$1" = "0" ]; then | |
159 | %service -q httpd restart | |
160 | fi | |
161 | ||
162 | %files | |
163 | %defattr(644,root,root,755) | |
08710a2f | 164 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}.conf |
1a9213c5 ER |
165 | %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}_libraries.conf |
166 | %attr(755,root,root) %{_bindir}/pagespeed_css_minify | |
167 | %attr(755,root,root) %{_bindir}/pagespeed_js_minify | |
b6a5d8d0 | 168 | %attr(755,root,root) %{_pkglibdir}/mod_%{mod_name}.so |
3f27b998 | 169 | %{_examplesdir}/%{name}-%{version} |
5bdfa704 | 170 | %dir %attr(770,root,http) %{cachedir} |