]> git.pld-linux.org Git - packages/apache-mod_pagespeed.git/blame - apache-mod_pagespeed.spec
- builds with gcc 4.5.2
[packages/apache-mod_pagespeed.git] / apache-mod_pagespeed.spec
CommitLineData
757b3ba5
ER
1#
2# Conditional build:
3%bcond_with verbose # verbose build (V=1)
4
b6a5d8d0
ER
5# NOTE
6# - use make < 3.82 (from th-obsolete) to hack on code, because 3.82
7# invalidates built objects and it's annoying to wait if all is recompiled
8# each time you invoke make
757b3ba5 9# - http://code.google.com/p/modpagespeed/wiki/HowToBuild
eb743e9a 10# - http://wiki.mediatemple.net/w/(dv)_HOWTO:_Install_mod_pagespeed
b6a5d8d0 11# TODO
757b3ba5 12# - add unit tests running
b6a5d8d0
ER
13# - c++ errors on 64bit/32bit gcc 4.5.1-4:
14# /usr/include/c++/4.5.1/bits/stl_map.h:87:5: instantiated from here
15# /usr/include/c++/4.5.1/bits/stl_pair.h:77:11: error: ‘std::pair<_T1, _T2>::second’ has incomplete type
16# ./net/instaweb/util/public/cache_interface.h:28:7: error: forward declaration of ‘struct net_instaweb::SharedString’
17# make[1]: *** [out/Release/obj.target/mod_pagespeed_test/net/instaweb/util/cache_fetcher_test.o] Error 1
55f3a9d4 18# http://pastebin.com/Eu88BPSQ
b6a5d8d0
ER
19# - sizeof(apr_int32_t) == sizeof(apr_int64_t) on 32bit (!?!):
20# third_party/apache/apr/src/strings/apr_snprintf.c: In function 'conv_os_thread_t':
21# third_party/apache/apr/src/strings/apr_snprintf.c:500:5: error: duplicate case value
22# third_party/apache/apr/src/strings/apr_snprintf.c:498:5: error: previously used here
23# third_party/apache/apr/src/strings/apr_snprintf.c: In function 'conv_os_thread_t_hex':
24# third_party/apache/apr/src/strings/apr_snprintf.c:671:5: error: duplicate case value
25# third_party/apache/apr/src/strings/apr_snprintf.c:669:5: error: previously used here
26# - possible sysdeps (uses release tags)
27# "serf_src": "http://serf.googlecode.com/svn/tags/0.3.1",
28# "apr_src": "http://svn.apache.org/repos/asf/apr/apr/tags/1.4.2",
29# "aprutil_src": "http://svn.apache.org/repos/asf/apr/apr-util/tags/1.3.9",
30# "apache_httpd_src": "http://svn.apache.org/repos/asf/httpd/httpd/tags/2.2.15",
31# "opencv_src": "https://code.ros.org/svn/opencv/tags/2.1",
32# "gflags_root": "http://google-gflags.googlecode.com/svn/tags/gflags-1.3/src",
33# "google_sparsehash_root": "http://google-sparsehash.googlecode.com/svn/tags/sparsehash-1.8.1/src",
757b3ba5 34# - use only source for modpagespeed if system headers are used (remove copies from tarball)
08710a2f
ER
35%define mod_name pagespeed
36%define apxs %{_sbindir}/apxs
37Summary: Apache module for rewriting web pages to reduce latency and bandwidth
38Name: apache-mod_%{mod_name}
757b3ba5
ER
39Version: 0.9.17.7
40Release: 0.4
08710a2f
ER
41License: Apache v2.0
42Group: Networking/Daemons/HTTP
757b3ba5
ER
43Source0: modpagespeed-%{version}.tar.bz2
44# Source0-md5: d4a49e422da63d6487afbec731432e21
08710a2f
ER
45URL: http://code.google.com/p/modpagespeed/
46BuildRequires: %{apxs}
47BuildRequires: apache-devel >= 2.2
757b3ba5
ER
48BuildRequires: libstdc++-devel >= 6:4.2
49BuildRequires: python-devel >= 1:2.6
08710a2f
ER
50BuildRequires: rpmbuild(macros) >= 1.268
51Requires: apache(modules-api) = %apache_modules_api
e5171f2e 52Requires: apache-mod_authz_host
b6a5d8d0 53Suggests: apache-mod_deflate
08710a2f
ER
54BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
55
56%define _pkglibdir %(%{apxs} -q LIBEXECDIR 2>/dev/null)
06daee42
ER
57%define _pkgrootdir %(%{apxs} -q SYSCONFDIR 2>/dev/null)
58%define _sysconfdir %{_pkgrootdir}/conf.d
59%define htdocsdir %(%{apxs} -q htdocsdir 2>/dev/null)
60%define cachedir %(%{apxs} -q proxycachedir 2>/dev/null)/mod_%{mod_name}
08710a2f
ER
61
62%description
63mod_pagespeed automates the application of those rules in an Apache
64server. HTML, CSS, JavaScript, and images are changed dynamically
65during the web serving process, so that the best practices recommended
66by Page Speed can be used without having to change the way the web
67site is maintained.
68
69%prep
e62ba6cb 70%setup -q -n modpagespeed
08710a2f
ER
71
72%build
eb743e9a 73# re-gen makefiles
e62ba6cb
ER
74cd src
75CC="%{__cc}" \
76CXX="%{__cxx}" \
77%{__python} build/gyp_chromium --format=make build/all.gyp
78cd ..
eb743e9a 79
e62ba6cb 80# makefile wrapper so we could just invoke "make" from shell
08710a2f
ER
81cat > Makefile <<'EOF'
82default:
83 $(MAKE) -C src \
84 BUILDTYPE=%{!?debug:Release}%{?debug:Debug} \
85 %{?with_verbose:V=1} \
86 CC="%{__cc}" \
87 CXX="%{__cxx}" \
88 CC.host="%{__cc}" \
89 CXX.host="%{__cxx}" \
90 LINK.host="%{__cxx}" \
91 CFLAGS="%{rpmcflags} %{rpmcppflags}" \
92 CXXFLAGS="%{rpmcxxflags} %{rpmcppflags}" \
93EOF
94%{__make}
95
96%install
97rm -rf $RPM_BUILD_ROOT
06daee42
ER
98%{__make} -j1 -C src/install staging \
99 HOSTNAME=localhost \
100 APACHE_ROOT=%{_pkgrootdir} \
101 APACHE_MODULES=%{_pkglibdir} \
102 APACHE_DOC_ROOT=%{htdocsdir} \
103 MOD_PAGESPEED_FILE_ROOT=%{cachedir} \
104 STAGING_DIR=staging
105
dbd6833d 106cd src/install/staging
08710a2f
ER
107install -d $RPM_BUILD_ROOT{%{_pkglibdir},%{_sysconfdir}}
108install -p mod_%{mod_name}.so $RPM_BUILD_ROOT%{_pkglibdir}
06daee42
ER
109install -d $RPM_BUILD_ROOT%{cachedir}/{cache,files}
110cat > $RPM_BUILD_ROOT%{_sysconfdir}/90_mod_%{mod_name}.conf <<EOF
111LoadModule %{mod_name}_module modules/mod_%{mod_name}.so
112
113$(cat pagespeed.conf)
114EOF
08710a2f
ER
115
116%clean
117rm -rf $RPM_BUILD_ROOT
118
119%post
120%service -q httpd restart
121
122%postun
123if [ "$1" = "0" ]; then
124 %service -q httpd restart
125fi
126
127%files
128%defattr(644,root,root,755)
08710a2f 129%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}.conf
b6a5d8d0 130%attr(755,root,root) %{_pkglibdir}/mod_%{mod_name}.so
06daee42
ER
131
132%dir %attr(710,root,http) %{cachedir}
133%dir %attr(770,root,http) %{cachedir}/cache
134%dir %attr(770,root,http) %{cachedir}/files
This page took 0.070714 seconds and 4 git commands to generate.