]> git.pld-linux.org Git - packages/apache-mod_pagespeed.git/blob - apache-mod_pagespeed.spec
163415770b4b16b7631f3c10893aa1ed535c8a04
[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:        2
55 License:        Apache v2.0
56 Group:          Networking/Daemons/HTTP
57 Source0:        modpagespeed-%{version}.tar.xz
58 # Source0-md5:  c6740a5de9cb7f20f0cf29c8835f6f95
59 Source1:        get-source.sh
60 Source2:        gclient.conf
61 Patch0:         system-libs.patch
62 Patch1:         addrinfo.patch
63 Patch2:         bug-632.patch
64 Patch4:         no-dev-stdout.patch
65 Patch5:         apache24-config.patch
66 URL:            https://developers.google.com/speed/pagespeed/module
67 BuildRequires:  %{apxs}
68 BuildRequires:  apache-devel >= 2.2
69 BuildRequires:  bash
70 BuildRequires:  glib2-devel
71 BuildRequires:  gperf
72 BuildRequires:  libicu-devel
73 BuildRequires:  libselinux-devel
74 BuildRequires:  libstdc++-devel >= 5:4.1
75 BuildRequires:  opencv-devel >= 2.3.1
76 BuildRequires:  openssl-devel
77 BuildRequires:  pkgconfig
78 BuildRequires:  python-devel >= 1:2.6
79 BuildRequires:  yasm
80 # This version of gyp is new enough that it knows to use make for Linux 3.x
81 # and FreeBSD, but old enough that 'type': 'settings' works and
82 # LINKER_SUPPORTS_ICF hasn't been removed yet.
83 BuildRequires:  python-gyp >= 0.1-0.svn1602.1
84 BuildRequires:  rpmbuild(macros) >= 1.268
85 BuildRequires:  tar >= 1:1.22
86 BuildRequires:  util-linux
87 BuildRequires:  xz
88 BuildRequires:  zlib-devel
89 BuildConflicts: depot_tools < 0.1-0.20150708
90 Requires:       apache(modules-api) = %apache_modules_api
91 Requires:       apache-mod_authz_host
92 Requires:       apache-mod_headers
93 Suggests:       apache-mod_deflate
94 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
95
96 %define         _pkglibdir      %(%{apxs} -q LIBEXECDIR 2>/dev/null)
97 %define         _pkgrootdir     %(%{apxs} -q SYSCONFDIR 2>/dev/null)
98 %define         _sysconfdir     %{_pkgrootdir}/conf.d
99 %define         htdocsdir       %(%{apxs} -q htdocsdir 2>/dev/null)
100 %define         cachedir        %(%{apxs} -q proxycachedir 2>/dev/null)/mod_%{mod_name}
101
102 # disable strip examples, http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2015-January/024223.html
103 %define         _noautostrip    .*%{_examplesdir}/.*
104
105 %description
106 mod_pagespeed automates the application of those rules in an Apache
107 server. HTML, CSS, JavaScript, and images are changed dynamically
108 during the web serving process, so that the best practices recommended
109 by Page Speed can be used without having to change the way the web
110 site is maintained.
111
112 %prep
113 %setup -q -n modpagespeed-%{version}
114 %patch0 -p2
115 %patch1 -p0
116 %patch2 -p1
117 %patch4 -p1
118 %patch5 -p1
119
120 %if 0
121 sh -x %{_sourcedir}/clean-source.sh
122 %endif
123
124 rm -r third_party/icu/source
125 rm -r third_party/icu/genfiles
126 install -d third_party/icu/source/{common,i18n}
127 ln -s %{_includedir}/unicode third_party/icu/source/i18n/unicode
128 ln -s %{_includedir}/unicode third_party/icu/source/common/unicode
129
130 %build
131 # re-gen makefiles
132 CC="%{__cc}" \
133 CXX="%{__cxx}" \
134 %{__python} build/gyp_chromium \
135         --format=make \
136         --depth=. \
137         build/all.gyp \
138         -Duse_openssl=1 \
139         -Duse_system_apache_dev=1 \
140         -Duse_system_icu=1 \
141         -Duse_system_libjpeg=1 \
142         -Duse_system_libpng=1 \
143         -Duse_system_opencv=1 \
144         -Duse_system_openssl=1 \
145         -Duse_system_yasm=1 \
146         -Duse_system_zlib=1 \
147         -Dsystem_include_path_apr=%{_includedir}/apr \
148         -Dsystem_include_path_aprutil=%{_includedir}/apr-util \
149         -Dsystem_include_path_httpd=%{_includedir}/apache \
150         %{nil}
151
152 %{__make} mod_pagespeed js_minify css_minify_main \
153         BUILDTYPE=%{!?debug:Release}%{?debug:Debug} \
154         %{?with_verbose:V=1} \
155         CC="%{__cc}" \
156         CXX="%{__cxx}" \
157         CC.host="%{__cc}" \
158         CXX.host="%{__cxx}" \
159         LINK.host="%{__cxx}" \
160         CFLAGS="%{rpmcflags} %{rpmcppflags}" \
161         CXXFLAGS="%{rpmcxxflags} %{rpmcppflags}" \
162         %{nil}
163
164 %install
165 rm -rf $RPM_BUILD_ROOT
166 install -d $RPM_BUILD_ROOT{%{_pkglibdir},%{_sysconfdir},%{_bindir},%{cachedir}}
167
168 %{__make} -j1 -C install staging_except_module \
169         APACHE_ROOT=%{_pkgrootdir} \
170         APACHE_MODULES=modules \
171         APACHE_DOC_ROOT=%{htdocsdir} \
172         MOD_PAGESPEED_CACHE=%{cachedir} \
173         MOD_PAGESPEED_STATS_LOG=/var/log/httpd/mod_pagespeed_stats.log \
174         STAGING_DIR=staging
175
176 out=out/%{!?debug:Release}%{?debug:Debug}
177 install -p $out/libmod_%{mod_name}.so $RPM_BUILD_ROOT%{_pkglibdir}/mod_%{mod_name}.so
178 install -p $out/js_minify $RPM_BUILD_ROOT%{_bindir}/pagespeed_js_minify
179 install -p $out/css_minify_main $RPM_BUILD_ROOT%{_bindir}/pagespeed_css_minify
180
181 cd install/staging
182 cat > $RPM_BUILD_ROOT%{_sysconfdir}/90_mod_%{mod_name}.conf <<EOF
183 LoadModule %{mod_name}_module   modules/mod_%{mod_name}.so
184
185 $(cat pagespeed.conf)
186 EOF
187
188 cp -p pagespeed_libraries.conf $RPM_BUILD_ROOT%{_sysconfdir}/91_mod_%{mod_name}_libraries.conf
189
190 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
191 cp -a mod_pagespeed_example/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
192
193 %clean
194 rm -rf $RPM_BUILD_ROOT
195
196 %post
197 %service -q httpd restart
198
199 %postun
200 if [ "$1" = "0" ]; then
201         %service -q httpd restart
202 fi
203
204 %files
205 %defattr(644,root,root,755)
206 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}.conf
207 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*_mod_%{mod_name}_libraries.conf
208 %attr(755,root,root) %{_bindir}/pagespeed_css_minify
209 %attr(755,root,root) %{_bindir}/pagespeed_js_minify
210 %attr(755,root,root) %{_pkglibdir}/mod_%{mod_name}.so
211 %{_examplesdir}/%{name}-%{version}
212 %dir %attr(770,root,http) %{cachedir}
This page took 0.032997 seconds and 2 git commands to generate.