]> git.pld-linux.org Git - packages/apache-mod_pagespeed.git/blob - apache-mod_pagespeed.spec
eb6c3147f9e3036defb4fc1f4dd20598660324f1
[packages/apache-mod_pagespeed.git] / apache-mod_pagespeed.spec
1 #
2 # Conditional build:
3 %bcond_without  verbose         # verbose build (V=1)
4
5 # NOTE
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
9 # TODO
10 # - run unit tests
11 # third_party libraries:
12 # - apr - using system apr package
13 # - aprutil - using system apr-util, but from this repo modified apr_memcache2.c
14 # - gflags - system package may work
15 # - giflib - 4.1.6, no local modifications
16 # - google-sparsehash
17 # - httpd, httpd24 - using system apache-devel
18 # - icu - using system icu
19 # - jsoncpp - no local changes
20 # - libjpeg_turbo - 1.2.80 with chromium changes (but system lib should be fine)
21 # - libpng - no local changes
22 # - libwebp - 0.4.0, irrelevant local changes
23 # - optipng - 0.7.4, local changes: only the opngreduc component of optipng is included.
24 # - protobuf - should be possible to use full protobuf (not lite) to gain same functionality
25 # - re2 - should be possible to use system re2
26 # - serf - 0.7.2 bunch of google fixes
27 # - zlib - 1.2.5, no local changes
28 #
29 # third_party/chromium/src/base/third_party:
30 # - nspr - should be possible to use system lib
31 # - dmg_fp
32 # - dynamic_annotations
33 # - icu - not icu lib, but two files only
34 # - valgrind
35 #
36 # could be possible to use system libs, not packaged in pld:
37 # - base64
38 # - chromium
39 # - chromium_deps
40 # - css_parser
41 # - domain_registry_provider
42 # - instaweb
43 # - mod_spdy
44 # - modp_b64
45 # - rdestl
46
47 %define         mod_name        pagespeed
48 %define         apxs            %{_sbindir}/apxs
49 Summary:        Apache module for rewriting web pages to reduce latency and bandwidth
50 Name:           apache-mod_%{mod_name}
51 # beta: 1.9.32.x-beta
52 # stable: 1.9.32.x-stable
53 Version:        1.9.32.4
54 Release:        0.1
55 License:        Apache v2.0
56 Group:          Networking/Daemons/HTTP
57 Source0:        modpagespeed-%{version}.tar.xz
58 # Source0-md5:  c902122f7d85d4e43cad92911ad59a85
59 Source1:        get-source.sh
60 Source2:        gclient.conf
61 Patch0:         system-libs.patch
62 Patch2:         bug-632.patch
63 Patch4:         no-dev-stdout.patch
64 Patch5:         apache24-config.patch
65 URL:            https://developers.google.com/speed/pagespeed/module
66 BuildRequires:  %{apxs}
67 BuildRequires:  apache-devel >= 2.2
68 BuildRequires:  bash
69 BuildRequires:  glib2-devel
70 BuildRequires:  gperf
71 BuildRequires:  libicu-devel
72 BuildRequires:  libselinux-devel
73 BuildRequires:  libstdc++-devel >= 5:4.1
74 BuildRequires:  opencv-devel >= 2.3.1
75 BuildRequires:  openssl-devel
76 BuildRequires:  pkgconfig
77 BuildRequires:  python-devel >= 1:2.6
78 BuildRequires:  yasm
79 # This version of gyp is new enough that it knows to use make for Linux 3.x
80 # and FreeBSD, but old enough that 'type': 'settings' works and
81 # LINKER_SUPPORTS_ICF hasn't been removed yet.
82 BuildRequires:  python-gyp >= 0.1-0.svn1602.1
83 BuildRequires:  rpmbuild(macros) >= 1.268
84 BuildRequires:  tar >= 1:1.22
85 BuildRequires:  util-linux
86 BuildRequires:  xz
87 BuildRequires:  zlib-devel
88 BuildConflicts: depot_tools < 0.1-0.20150708
89 Requires:       apache(modules-api) = %apache_modules_api
90 Requires:       apache-mod_authz_host
91 Requires:       apache-mod_headers
92 Suggests:       apache-mod_deflate
93 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
94
95 %define         _pkglibdir      %(%{apxs} -q LIBEXECDIR 2>/dev/null)
96 %define         _pkgrootdir     %(%{apxs} -q SYSCONFDIR 2>/dev/null)
97 %define         _sysconfdir     %{_pkgrootdir}/conf.d
98 %define         htdocsdir       %(%{apxs} -q htdocsdir 2>/dev/null)
99 %define         cachedir        %(%{apxs} -q proxycachedir 2>/dev/null)/mod_%{mod_name}
100
101 # disable strip examples, http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2015-January/024223.html
102 %define         _noautostrip    .*%{_examplesdir}/.*
103
104 %description
105 mod_pagespeed automates the application of those rules in an Apache
106 server. HTML, CSS, JavaScript, and images are changed dynamically
107 during the web serving process, so that the best practices recommended
108 by Page Speed can be used without having to change the way the web
109 site is maintained.
110
111 %prep
112 %setup -q -n modpagespeed-%{version}
113 %patch0 -p2
114 %patch2 -p1
115 %patch4 -p1
116 %patch5 -p1
117
118 sh -x %{_sourcedir}/clean-source.sh
119
120 rm -r third_party/icu/source
121 rm -r third_party/icu/genfiles
122 install -d third_party/icu/source/{common,i18n}
123 ln -s %{_includedir}/unicode third_party/icu/source/i18n/unicode
124 ln -s %{_includedir}/unicode third_party/icu/source/common/unicode
125
126 %build
127 # re-gen makefiles
128 CC="%{__cc}" \
129 CXX="%{__cxx}" \
130 %{__python} build/gyp_chromium \
131         --format=make \
132         --depth=. \
133         build/all.gyp \
134         -Duse_openssl=1 \
135         -Duse_system_apache_dev=1 \
136         -Duse_system_icu=1 \
137         -Duse_system_libjpeg=1 \
138         -Duse_system_libpng=1 \
139         -Duse_system_opencv=1 \
140         -Duse_system_openssl=1 \
141         -Duse_system_yasm=1 \
142         -Duse_system_zlib=1 \
143         -Dsystem_include_path_apr=%{_includedir}/apr \
144         -Dsystem_include_path_aprutil=%{_includedir}/apr-util \
145         -Dsystem_include_path_httpd=%{_includedir}/apache \
146         %{nil}
147
148 %{__make} mod_pagespeed js_minify css_minify_main \
149         BUILDTYPE=%{!?debug:Release}%{?debug:Debug} \
150         %{?with_verbose:V=1} \
151         CC="%{__cc}" \
152         CXX="%{__cxx}" \
153         CC.host="%{__cc}" \
154         CXX.host="%{__cxx}" \
155         LINK.host="%{__cxx}" \
156         CFLAGS="%{rpmcflags} %{rpmcppflags}" \
157         CXXFLAGS="%{rpmcxxflags} %{rpmcppflags}" \
158         %{nil}
159
160 %install
161 rm -rf $RPM_BUILD_ROOT
162 install -d $RPM_BUILD_ROOT{%{_pkglibdir},%{_sysconfdir},%{_bindir},%{cachedir}}
163
164 %{__make} -j1 -C install staging_except_module \
165         APACHE_ROOT=%{_pkgrootdir} \
166         APACHE_MODULES=modules \
167         APACHE_DOC_ROOT=%{htdocsdir} \
168         MOD_PAGESPEED_CACHE=%{cachedir} \
169         MOD_PAGESPEED_STATS_LOG=/var/log/httpd/mod_pagespeed_stats.log \
170         STAGING_DIR=staging
171
172 out=out/%{!?debug:Release}%{?debug:Debug}
173 install -p $out/libmod_%{mod_name}.so $RPM_BUILD_ROOT%{_pkglibdir}/mod_%{mod_name}.so
174 install -p $out/js_minify $RPM_BUILD_ROOT%{_bindir}/pagespeed_js_minify
175 install -p $out/css_minify_main $RPM_BUILD_ROOT%{_bindir}/pagespeed_css_minify
176
177 cd install/staging
178 cat > $RPM_BUILD_ROOT%{_sysconfdir}/90_mod_%{mod_name}.conf <<EOF
179 LoadModule %{mod_name}_module   modules/mod_%{mod_name}.so
180
181 $(cat pagespeed.conf)
182 EOF
183
184 cp -p pagespeed_libraries.conf $RPM_BUILD_ROOT%{_sysconfdir}/91_mod_%{mod_name}_libraries.conf
185
186 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
187 cp -a mod_pagespeed_example/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
188
189 %clean
190 rm -rf $RPM_BUILD_ROOT
191
192 %post
193 %service -q httpd restart
194
195 %postun
196 if [ "$1" = "0" ]; then
197         %service -q httpd restart
198 fi
199
200 %files
201 %defattr(644,root,root,755)
202 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}.conf
203 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}_libraries.conf
204 %attr(755,root,root) %{_bindir}/pagespeed_css_minify
205 %attr(755,root,root) %{_bindir}/pagespeed_js_minify
206 %attr(755,root,root) %{_pkglibdir}/mod_%{mod_name}.so
207 %{_examplesdir}/%{name}-%{version}
208 %dir %attr(770,root,http) %{cachedir}
This page took 0.062054 seconds and 2 git commands to generate.