]> git.pld-linux.org Git - packages/tomcat.git/blame - tomcat.spec
- BR: java-mail (thx sparky)
[packages/tomcat.git] / tomcat.spec
CommitLineData
3ba87888 1
eca62e60 2# Conditional build:
ac632beb 3%bcond_without javadoc # skip building javadocs
1d6ec01d 4%bcond_without webservices # skip building webservices
1d6ec01d 5
6%define jspapiver 2.1
7%define servletapiver 2.5
8
3ba87888 9%include /usr/lib/rpm/macros.java
868907c0 10Summary: Web server and Servlet/JSP Engine, RI for Servlet %{servletapiver}/JSP %{jspapiver} API
f02af67f 11Summary(pl.UTF-8): Serwer www i silnik Servlet/JSP będący wzorcową implementacją API Servlet %{servletapiver}/JSP %{jspapiver}
14a619da 12Name: tomcat
d4e41cd7 13Version: 6.0.26
d35d9f28 14Release: 7
c1934721 15License: Apache v2.0
16Group: Networking/Daemons/Java
1d6ec01d 17Source0: http://www.apache.org/dist/tomcat/tomcat-6/v%{version}/src/apache-%{name}-%{version}-src.tar.gz
d4e41cd7 18# Source0-md5: 83b46d9346bcbc517dbf6f1cac9ef8b1
14a619da 19Source1: apache-%{name}.init
20Source2: apache-%{name}.sysconfig
1d6ec01d 21Source3: %{name}-build.properties
22Source10: %{name}-context-ROOT.xml
23Source11: %{name}-context-docs.xml
24Source12: %{name}-context-manager.xml
25Source13: %{name}-context-host-manager.xml
26Source14: %{name}-context-examples.xml
27Patch0: %{name}-build.xml.patch
28Patch1: %{name}-extras.xml.patch
aef723ef 29URL: http://tomcat.apache.org/
498e9275 30BuildRequires: ant >= 1.5.3
7ea1b4e7 31BuildRequires: ant-trax
1d6ec01d 32BuildRequires: eclipse-jdt >= 3.2
5d4d27d1 33BuildRequires: java-commons-daemon >= 1.0
1d6ec01d 34BuildRequires: java-commons-dbcp-tomcat5 >= 0:1.1
ffe85d25 35BuildRequires: java-commons-pool-tomcat5
1d6ec01d 36%if %{with webservices}
1d6ec01d 37BuildRequires: java(JSR109)
3ba87888 38BuildRequires: java-geronimo-spec-jaxrpc
1d6ec01d 39%endif
e5a85283 40BuildRequires: java-jdbc-mysql
21a8c36d 41BuildRequires: java-mail
25b4b7d9 42BuildRequires: jdk
7ea1b4e7 43BuildRequires: jpackage-utils
a18fb636 44BuildRequires: rpm-javaprov
7ea1b4e7 45BuildRequires: rpmbuild(macros) >= 1.300
8129909e
ER
46Requires(post,preun): /sbin/chkconfig
47Requires(postun): /usr/sbin/groupdel
48Requires(postun): /usr/sbin/userdel
49Requires(pre): /bin/id
50Requires(pre): /usr/bin/getgid
51Requires(pre): /usr/sbin/groupadd
52Requires(pre): /usr/sbin/useradd
d5057aa4 53Requires: java(jaxp_parser_impl)
54Requires: java(jndi) >= 1.2.1
2d7d7c63 55Requires: java-%{name}-catalina = %{epoch}:%{version}-%{release}
56Requires: java-%{name}-coyote = %{epoch}:%{version}-%{release}
d0340044 57Requires: java-%{name}-jasper = %{epoch}:%{version}-%{release}
ffe85d25 58Requires: java-commons-dbcp-tomcat5 >= 0:1.1
ffe85d25 59Requires: java-commons-pool-tomcat5
da4f9769 60Requires: java-jdbc-mysql
b6c309e6 61Requires: java-mail
da4f9769 62Requires: java-servletapi = %{epoch}:%{version}-%{release}
06f3c8c2 63Requires: jpackage-utils
3352e747 64Requires: jre >= 1.2
06f3c8c2 65Requires: jsvc
eca62e60 66Requires: rc-scripts
da4f9769 67Suggests: tomcat-native
fa20abb1 68Provides: group(servlet)
201f6baa 69Provides: group(tomcat)
70Provides: user(tomcat)
26763826 71Obsoletes: apache-tomcat
51bcbcd2 72Obsoletes: jakarta-tomcat
623f0978 73BuildArch: noarch
74BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
75
a97a4eb2 76%define _tomcatdir %{_datadir}/tomcat
623f0978 77%define _logdir %{_var}/log
a0446376 78%define _vardir %{_var}/lib/tomcat
a97a4eb2 79%define _sysconfdir /etc/tomcat
623f0978 80
1d6ec01d 81%define find_jar() %{expand:%%define jarfile {%(jar=$(find-jar %1); echo ${jar:-%%nil})}}%{?jarfile}%{!?jarfile:%{error:find-jar %1 failed}}%{nil}
82
623f0978 83%description
eca62e60
ER
84Tomcat is the servlet container that is used in the official Reference
85Implementation for the Java Servlet and JavaServer Pages technologies.
86The Java Servlet and JavaServer Pages specifications are developed by
87Sun under the Java Community Process.
623f0978 88
eca62e60
ER
89Tomcat is developed in an open and participatory environment and
90released under the Apache Software License. Tomcat is intended to be a
91collaboration of the best-of-breed developers from around the world.
92We invite you to participate in this open development project.
93
f045ab88
JB
94%description -l pl.UTF-8
95Tomcat to kontener serwletowy używany przez oficjalną implementację
96wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
51bcbcd2
ER
97Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
98Community Process.
623f0978 99
1d6ec01d 100%package webapp-docs
51bcbcd2 101Summary: The Apache Tomcat Servlet/JSP Container documentation
152e6062 102Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
c1934721 103Group: Documentation
26763826 104Obsoletes: apache-tomcat-doc
51bcbcd2 105Obsoletes: jakarta-tomcat-doc
1d6ec01d 106Obsoletes: tomcat-doc
623f0978 107
1d6ec01d 108%description webapp-docs
e1f70dd8
JB
109The Tomcat Servlet/JSP Container documentation.
110
1d6ec01d 111%description webapp-docs -l pl.UTF-8
152e6062 112Dokumentacja do Tomcata - kontenera Servlet/JSP.
623f0978 113
1d6ec01d 114%package webapp-manager
115Summary: The Apache Tomcat Servlet/JSP application manager
116Summary(pl.UTF-8): Zarządca aplikacji w Tomcacie
117Group: Networking/Daemons/Java/Servlets
8917be8d 118Requires: %{name} = %{epoch}:%{version}-%{release}
1d6ec01d 119
120%description webapp-manager
121The Apache Tomcat Servlet/JSP application manager.
122
123%description webapp-manager -l pl.UTF-8
124Zarządca aplikacji w Tomcacie.
125
126%package webapp-host-manager
127Summary: The Apache Tomcat Servlet/JSP virtual hosts manager
128Summary(pl.UTF-8): Zarządca wirtualnych hostów w Tomcacie
c1934721 129Group: Networking/Daemons/Java/Servlets
8917be8d 130Requires: %{name} = %{epoch}:%{version}-%{release}
1d6ec01d 131Obsoletes: tomcat-admin
804609f8 132
1d6ec01d 133%description webapp-host-manager
134The Apache Tomcat Servlet/JSP virtual hosts manager.
804609f8 135
1d6ec01d 136%description webapp-host-manager -l pl.UTF-8
137Zarządca wirtualnych hostów w Tomcacie.
138
139%package webapp-examples
140Summary: The Apache Tomcat Servlet/JSP example applications
141Summary(pl.UTF-8): Przykładowe aplikacje dla Tomcata
142Group: Networking/Daemons/Java/Servlets
8917be8d 143Requires: %{name} = %{epoch}:%{version}-%{release}
1d6ec01d 144
145%description webapp-examples
146The Apache Tomcat Servlet/JSP example applications.
147
148%description webapp-examples -l pl.UTF-8
149Przykładowe aplikacje dla Tomcata.
150
151%package webservices
152Summary: Web Services support (JSR 109)
153Group: Libraries/Java
da4f9769 154Requires: %{name} = %{epoch}:%{version}-%{release}
1d6ec01d 155Requires: java(JSR109)
3ba87888 156Requires: java-geronimo-spec-jaxrpc
1d6ec01d 157
158%description webservices
159Factories for JSR 109 which may be used to resolve web services
160references.
804609f8 161
df85b7fd 162%package -n java-tomcat-catalina
f02af67f 163Summary: Tomcat's servlet container
164Group: Libraries/Java
165Requires: jpackage-utils
166
df85b7fd 167%description -n java-tomcat-catalina
f02af67f 168Catalina is Tomcat's servlet container. Catalina implements Sun
169Microsystems' specifications for servlet and JavaServer Pages (JSP).
170
df85b7fd 171%package -n java-tomcat-coyote
f02af67f 172Summary: Tomcat HTTP connector
173Group: Libraries/Java
174Requires: jpackage-utils
175
df85b7fd 176%description -n java-tomcat-coyote
f02af67f 177Coyote is Tomcat's HTTP Connector component that supports the HTTP 1.1
178protocol for the web server or application container. Coyote listens
179for incoming connections on a specific TCP port on the server and
180forwards the request to the Tomcat Engine to process the request and
181send back a response to the requesting client.
182
d0340044 183%package -n java-tomcat-jasper
55a9c77b 184Summary: JSP compiler
185Summary(pl.UTF-8): Kompilator JSP
d4ae229e 186Group: Libraries/Java
2ab6ab5f 187Requires: eclipse-jdt >= 3.2
da4f9769 188Requires: jpackage-utils
26763826 189Obsoletes: apache-tomcat-jasper
d0340044 190Obsoletes: tomcat-jasper
d4ae229e 191
d0340044 192%description -n java-tomcat-jasper
55a9c77b 193Jasper is Java ServerPages compiler used by Apache Tomcat servlet
194container.
195
d0340044 196%description -n java-tomcat-jasper -l pl.UTF-8
55a9c77b 197Jasper jest kompilatorem Java ServerPages używanym przez kontener
198servletów Apache Tomcat.
d4ae229e 199
1d6ec01d 200%package -n java-servletapi
201Summary: Java servlet and JSP implementation classes
202Summary(pl.UTF-8): Klasy z implementacją Java Servlet i JSP
203Group: Libraries/Java
d5057aa4 204Provides: java(jsp) = %{jspapiver}
205Provides: java(servlet) = %{servletapiver}
1d6ec01d 206Obsoletes: java-servletapi5
207
208%description -n java-servletapi
209Implementation classes of the Java Servlet and JSP APIs (packages
210javax.servlet, javax.servlet.http, javax.servlet.jsp, and
211javax.servlet.jsp.tagext).
212
213%description -n java-servletapi -l pl.UTF-8
214Implementacje klas API Java Servlet i JSP (pakiety javax.servlet,
215javax.servlet.http, javax.servlet.jsp i java.servlet.jsp.tagext).
216
623f0978 217%prep
14a619da 218%setup -q -n apache-%{name}-%{version}-src
3bd96a5e 219
1d6ec01d 220%patch0 -p0
221%patch1 -p0
e2f6574d 222
1d6ec01d 223# we don't need those scripts
224rm bin/*.bat
225rm bin/{startup,shutdown}.sh
eca62e60 226
1d6ec01d 227cp %{SOURCE3} build.properties
623f0978 228
229%build
eca62e60
ER
230TOPDIR=$(pwd)
231
1d6ec01d 232%ant -Drpm.javadir=%{_javadir} -Drpm.libdir=%{_libdir}
233
234%if %{with javadoc}
235%ant -f dist.xml dist-javadoc
236%endif
237
238%if %{with webservices}
239mkdir -p output/extras/webservices
240
241ln -s %{_javadir}/geronimo-spec-jaxrpc.jar output/extras/webservices/jaxrpc.jar
242ln -s %{_javadir}/jsr109.jar output/extras/webservices/wsdl4j.jar
243
244%ant -f extras.xml webservices
245%endif
3bd96a5e 246
eca62e60 247
623f0978 248%install
249rm -rf $RPM_BUILD_ROOT
1d6ec01d 250cd output/build
251
a97a4eb2
ER
252TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
253CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
623f0978 254
1d6ec01d 255install -d $TOMCATDIR \
256 $CATALINADIR/temp \
98133f85 257 $RPM_BUILD_ROOT%{_vardir}/webapps \
a0446376 258 $RPM_BUILD_ROOT%{_vardir}/work \
98133f85 259 $RPM_BUILD_ROOT%{_vardir}/conf \
1d6ec01d 260 $RPM_BUILD_ROOT%{_logdir}/tomcat \
125df118 261 $RPM_BUILD_ROOT/etc/sysconfig \
a0446376 262 $RPM_BUILD_ROOT/etc/rc.d/init.d
389e46b9 263
a97a4eb2 264install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
f93b3a59 265install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
623f0978 266
3bd96a5e 267cp -a conf/* $CATALINADIR/conf
1d6ec01d 268install -d $CATALINADIR/conf/Catalina/localhost
3e2cdbf3 269install %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
1d6ec01d 270install %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/docs.xml
271install %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/manager.xml
272install %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/host-manager.xml
273install %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/examples.xml
274
275cp -a bin lib webapps $TOMCATDIR
3bd96a5e 276cp -a temp $CATALINADIR
a97a4eb2 277
98133f85 278ln -sf %{_logdir}/tomcat $CATALINADIR/logs
093ffc1c 279ln -sf %{_logdir}/tomcat $TOMCATDIR/logs
4f9f35cf 280ln -sf %{_vardir}/work $TOMCATDIR/work
98133f85 281ln -sf %{_vardir}/conf $TOMCATDIR/conf
282ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
a97a4eb2
ER
283
284# symlinks instead of copies
1fe35e78 285jars="commons-daemon commons-logging-api"
fddf8ded
ER
286for jar in $jars; do
287 jar=$(find-jar $jar)
288 ln -sf $jar $TOMCATDIR/bin
289done
290
b6c309e6 291jars="commons-pool-tomcat5 commons-dbcp-tomcat5 mysql-connector-java org.eclipse.jdt.core mail"
1fe35e78 292for jar in $jars; do
293 jar=$(find-jar $jar)
294 ln -sf $jar $TOMCATDIR/lib
295done
296
1d6ec01d 297install -d $RPM_BUILD_ROOT%{_javadir}
298mv $TOMCATDIR/lib/jasper*.jar $RPM_BUILD_ROOT%{_javadir}
299mv $TOMCATDIR/lib/jsp-api.jar $RPM_BUILD_ROOT%{_javadir}/jsp-api-%{jspapiver}.jar
300mv $TOMCATDIR/lib/servlet-api.jar $RPM_BUILD_ROOT%{_javadir}/servlet-api-%{servletapiver}.jar
f02af67f 301mv $TOMCATDIR/lib/catalina.jar $RPM_BUILD_ROOT%{_javadir}/tomcat6-catalina.jar
302mv $TOMCATDIR/lib/tomcat-coyote.jar $RPM_BUILD_ROOT%{_javadir}/tomcat6-coyote.jar
3bd96a5e 303
1d6ec01d 304ln -s jsp-api-%{jspapiver}.jar $RPM_BUILD_ROOT%{_javadir}/jsp-api.jar
305ln -s servlet-api-%{servletapiver}.jar $RPM_BUILD_ROOT%{_javadir}/servlet-api.jar
3bd96a5e 306
1d6ec01d 307# XXX add softlinks jasper-compiler.jar and jasper-runtime for compatibility with tomcat 5.5?
1d6ec01d 308ln -sf %{_javadir}/jasper-el.jar $TOMCATDIR/lib
309ln -sf %{_javadir}/jasper.jar $TOMCATDIR/lib
6378940b 310
2b6adad9 311ln -sf %{_javadir}/jsp-api-%{jspapiver}.jar $TOMCATDIR/lib/jsp-api.jar
312ln -sf %{_javadir}/servlet-api-%{servletapiver}.jar $TOMCATDIR/lib/servlet-api.jar
a0446376 313
f02af67f 314ln -sf %{_javadir}/tomcat6-catalina.jar $TOMCATDIR/lib/catalina.jar
315ln -sf %{_javadir}/tomcat6-coyote.jar $TOMCATDIR/lib/tomcat-coyote.jar
316
1d6ec01d 317%if %{with webservices}
318install ../extras/catalina-ws.jar $TOMCATDIR/lib/catalina-ws.jar
319
320ln -s %{_javadir}/geronimo-spec-jaxrpc.jar $TOMCATDIR/lib/jaxrpc.jar
321ln -s %{_javadir}/jsr109.jar $TOMCATDIR/lib/jsr109.jar
322%endif
d4ae229e 323
623f0978 324%clean
325rm -rf $RPM_BUILD_ROOT
326
2b56d949 327%pre
bc75997d 328%groupadd -g 234 -r -f tomcat
fa20abb1 329%groupadd -g 237 -r -f servlet
330%useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat -G servlet tomcat
2b56d949 331
332%post
333/sbin/chkconfig --add tomcat
6c0937ca 334%service tomcat restart
2b56d949 335
336%preun
337if [ "$1" = "0" ]; then
6c0937ca 338 %service tomcat stop
2b56d949 339 /sbin/chkconfig --del tomcat
340fi
341
342%postun
343if [ "$1" = "0" ]; then
201f6baa 344 %userremove tomcat
345 %groupremove tomcat
fa20abb1 346 %groupremove servlet
2b56d949 347fi
348
623f0978 349%files
350%defattr(644,root,root,755)
1d6ec01d 351%doc KEYS RELEASE-NOTES RELEASE-PLAN-6.0.txt RUNNING.txt
a97a4eb2 352%attr(754,root,root) /etc/rc.d/init.d/tomcat
ab574f59 353%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
98133f85 354%{_sysconfdir}
a0446376 355%dir %{_tomcatdir}
98133f85 356%dir %{_tomcatdir}/conf
a0446376 357%dir %{_tomcatdir}/bin
a97a4eb2 358%{_tomcatdir}/bin/catalina-tasks.xml
389e46b9 359%attr(755,root,root) %{_tomcatdir}/bin/*.sh
389e46b9 360%{_tomcatdir}/bin/*.jar
1d6ec01d 361%dir %{_tomcatdir}/lib
362%{_tomcatdir}/lib/annotations-api.jar
d97bb7aa 363%{_tomcatdir}/lib/catalina-ant.jar
364%{_tomcatdir}/lib/catalina-ha.jar
1d6ec01d 365%{_tomcatdir}/lib/catalina.jar
d97bb7aa 366%{_tomcatdir}/lib/catalina-tribes.jar
1d6ec01d 367%{_tomcatdir}/lib/commons-dbcp-tomcat5.jar
3a73cb68 368%{_tomcatdir}/lib/commons-pool-tomcat5.jar
1d6ec01d 369%{_tomcatdir}/lib/el-api.jar
34a6b0e4 370%{_tomcatdir}/lib/jasper-el.jar
371%{_tomcatdir}/lib/jasper.jar
2ab9f95e 372%{_tomcatdir}/lib/jsp-api.jar
d97bb7aa 373%{_tomcatdir}/lib/mysql-connector-java.jar
34a6b0e4 374%{_tomcatdir}/lib/org.eclipse.jdt.core.jar
2ab9f95e 375%{_tomcatdir}/lib/servlet-api.jar
1d6ec01d 376%{_tomcatdir}/lib/tomcat-coyote.jar
d97bb7aa 377%{_tomcatdir}/lib/tomcat-i18n-es.jar
378%{_tomcatdir}/lib/tomcat-i18n-fr.jar
1d6ec01d 379%{_tomcatdir}/lib/tomcat-i18n-ja.jar
3bf2e196
ER
380
381%dir %{_tomcatdir}/webapps
382
383%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
384%{_tomcatdir}/webapps/ROOT
385
50aa3a1c 386%{_tomcatdir}/logs
a0446376 387%{_tomcatdir}/work
efc565cf 388%dir %attr(770,root,tomcat) %{_vardir}
1d6ec01d 389# these directory has to be writeable because /admin need to modify config
390# files and create temporary files
efc565cf 391%dir %attr(770,root,tomcat) %{_vardir}/conf
392%dir %attr(770,root,tomcat) %{_vardir}/conf/Catalina
49a8ad15 393%dir %{_vardir}/conf/Catalina/localhost
3bf2e196 394# tomcat config has to be writeable because of tomcat-users.xml file and Catalina dir
8ffc4ec0 395%config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
396%config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
397%config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
efc565cf 398%dir %attr(770,root,tomcat) %{_vardir}/work
399%dir %attr(770,root,tomcat) %{_vardir}/webapps
400%dir %attr(770,root,tomcat) %{_vardir}/temp
401%dir %attr(770,root,tomcat) %{_logdir}/tomcat
9e1e98ce 402%{_vardir}/logs
623f0978 403
1d6ec01d 404%files webapp-docs
ff740076 405%defattr(644,root,root,755)
1d6ec01d 406%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/docs.xml
407%{_tomcatdir}/webapps/docs
d4ae229e 408
1d6ec01d 409%files webapp-manager
804609f8 410%defattr(644,root,root,755)
1d6ec01d 411%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
412%{_tomcatdir}/webapps/manager
413
414%files webapp-host-manager
415%defattr(644,root,root,755)
416%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
417%{_tomcatdir}/webapps/host-manager
418
419%files webapp-examples
420%defattr(644,root,root,755)
421%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/examples.xml
422%{_tomcatdir}/webapps/examples
423
424%if %{with webservices}
425%files webservices
426%defattr(644,root,root,755)
d97bb7aa 427%{_tomcatdir}/lib/catalina-ws.jar
1d6ec01d 428%{_tomcatdir}/lib/jsr109.jar
429%{_tomcatdir}/lib/jaxrpc.jar
1d6ec01d 430%endif
804609f8 431
d0340044 432%files -n java-tomcat-jasper
7e500426 433%defattr(644,root,root,755)
1d6ec01d 434%{_javadir}/jasper-el.jar
435%{_javadir}/jasper.jar
436
df85b7fd 437%files -n java-tomcat-catalina
f02af67f 438%defattr(644,root,root,755)
439%{_javadir}/tomcat6-catalina.jar
440
df85b7fd 441%files -n java-tomcat-coyote
f02af67f 442%defattr(644,root,root,755)
443%{_javadir}/tomcat6-coyote.jar
444
1d6ec01d 445%files -n java-servletapi
446%defattr(644,root,root,755)
447%{_javadir}/jsp-api*.jar
448%{_javadir}/servlet-api*.jar
This page took 0.136992 seconds and 4 git commands to generate.