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