%include /usr/lib/rpm/macros.perl
Summary: Visual (www) interface to explore a CVS repository
-Summary(pl): Wizualny (WWW) interfejs do przegl±dania repozytorium CVS
+Summary(pl.UTF-8): Wizualny (WWW) interfejs do przeglądania repozytorium CVS
Name: cvsweb
-Version: 3.0.5
-Release: 0.22
+Version: 3.0.6
+Release: 4
Epoch: 1
License: BSD
Group: Development/Tools
Source0: http://people.FreeBSD.org/~scop/cvsweb/%{name}-%{version}.tar.gz
-# Source0-md5: 572dbb2d66ad6487c0a3536f93023086
+# Source0-md5: 0e1eec962b1db00e01b295fff84b6e89
+Source1: %{name}-apache.conf
URL: http://www.freebsd.org/projects/cvsweb.html
Patch0: %{name}-config.patch
-BuildRequires: rpmbuild(macros) >= 1.223
-# for %{_libdir}/cgi-bin
-Requires: FHS >= 2.3-8
-Requires: rcs
+Patch1: %{name}-emptyscript.patch
+Patch2: cveurl.patch
+BuildRequires: rpmbuild(macros) >= 1.268
+Requires: diffutils
+# for %{_prefix}/lib/cgi-bin
+Requires: filesystem >= 3.0-11
# for /etc/mime.types
Requires: mailcap
-Requires: webserver
-# because of wrong module load order
-Conflicts: apache1 < 1.3.33-6.3
+Requires: rcs
+Requires: webapps
+Conflicts: apache-base < 2.2.0-8
+Conflicts: apache1 < 1.3.34-6
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _sysconfdir /etc/%{name}
+%define _webapps /etc/webapps
+%define _webapp %{name}
+%define _sysconfdir %{_webapps}/%{_webapp}
%define _appdir %{_datadir}/%{name}
+%define _cgibindir %{_prefix}/lib/cgi-bin
+%define _enscriptdir %{_datadir}/enscript/hl
%description
CVSweb is a WWW interface for CVS repositories with which you can
version contains numerous cleanups, bug-fixes, security enhancements
and feature improvements.
-%description -l pl
-CVSweb jest interfejsem WWW dla repozytoriów CVS dziêki któremu mo¿na
-przegl±daæ ich zawarto¶æ w przegl±darce WWW widz±c pe³n± historiê
-zmian i numerów rewizji dla ka¿dego z plików. CVSWeb zosta³ stworzony
+%description -l pl.UTF-8
+CVSweb jest interfejsem WWW dla repozytoriów CVS dzięki któremu można
+przeglądać ich zawartość w przeglądarce WWW widząc pełną historię
+zmian i numerów rewizji dla każdego z plików. CVSWeb został stworzony
przez Billa Fennera dla projektu FreeBSD. FreeBSD-CVSweb dawniej znany
-jako knu-CVSweb jest rozszerzon± wersj± opart± na wersji Hennera
-Zellera, która z kolei by³a oparta na oryginalnej wersji. Kod obecnej
-wersji zosta³ uporz±dkowany i oczyszczony, usuniêtych zosta³o równie¿
-wiele b³êdów. Wprowadzono tak¿e du¿o poprawek bezpieczeñstwa oraz
-rozbudowano funkcjonalno¶æ.
+jako knu-CVSweb jest rozszerzoną wersją opartą na wersji Hennera
+Zellera, która z kolei była oparta na oryginalnej wersji. Kod obecnej
+wersji został uporządkowany i oczyszczony, usuniętych zostało również
+wiele błędów. Wprowadzono także dużo poprawek bezpieczeństwa oraz
+rozbudowano funkcjonalność.
+
+%package -n enscript-%{name}
+Summary: Enscript language files for CVSweb
+Summary(pl.UTF-8): Pliki języka Enscript dla CVSweba
+Group: Applications/Publishing
+Requires: enscript >= 1.6.4-1.2
+
+%description -n enscript-%{name}
+Enscript language files for CVSweb.
+
+%description -n enscript-%{name} -l pl.UTF-8
+Pliki języka Enscript dla CVSweba.
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
+%patch2 -p1
-install cvsweb.conf* samples
+cp -a cvsweb.conf* samples
# remove backups
find '(' -name '*~' -o -name '*.orig' ')' | xargs -r rm -v
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{%{_appdir}/{css,icons},%{_cgibindir},%{_enscriptdir},%{_sysconfdir}}
-install -d $RPM_BUILD_ROOT{%{_appdir}/{css,enscript,icons},%{_sysconfdir}}
-
-install %{name}.cgi $RPM_BUILD_ROOT%{_appdir}
+install %{name}.cgi $RPM_BUILD_ROOT%{_cgibindir}
install css/* $RPM_BUILD_ROOT%{_appdir}/css
-install enscript/* $RPM_BUILD_ROOT%{_appdir}/enscript
+install enscript/* $RPM_BUILD_ROOT%{_enscriptdir}
install icons/* $RPM_BUILD_ROOT%{_appdir}/icons
install %{name}.conf $RPM_BUILD_ROOT%{_sysconfdir}
echo '# vim:syn=perl' >> $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.conf
+install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
+install %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/httpd.conf
-cat <<EOF > $RPM_BUILD_ROOT%{_sysconfdir}/apache.conf
-Alias /%{name}/css/ %{_appdir}/css/
-Alias /%{name}/enscript/ %{_appdir}/enscript/
-Alias /%{name}/icons/ %{_appdir}/icons/
-ScriptAlias /cgi-bin/%{name}.cgi %{_appdir}/%{name}.cgi
-
-<Location /cgi-bin/%{name}.cgi>
- # See also $charset in cvsweb.conf.
- #AddDefaultCharset UTF-8
-
- # mod_perl >= 1.99:
- <IfModule mod_perl.c>
- SetHandler perl-script
- PerlResponseHandler ModPerl::Registry
- PerlOptions +ParseHeaders
- Options ExecCGI
- </IfModule>
-
- Allow from all
-</Location>
-<Location /%{name}/>
- Allow from all
-</Location>
-
-# vim: filetype=apache ts=4 sw=4
-EOF
+%clean
+rm -rf $RPM_BUILD_ROOT
%post
if [ "$1" = 1 ]; then
EOF
fi
-%clean
-rm -rf $RPM_BUILD_ROOT
+%triggerin -- apache1 < 1.3.37-3, apache1-base
+%webapp_register apache %{_webapp}
-# 79_ instead of 99_ because
-# - ScriptAlias /cgi-bin/ is in 80_mod_alias.conf
-# - SSL is in 40_mod_ssl.conf
-# - mod_auth 51_mod_ssl.conf
-# - mod_rewrite is 70
-# - TODO: fix apache.spec to have ScriptAlias in 80
-%triggerin -- apache1 >= 1.3.33-2
-%apache_config_install -v 1 -c %{_sysconfdir}/apache.conf -n 79
+%triggerun -- apache1 < 1.3.37-3, apache1-base
+%webapp_unregister apache %{_webapp}
-%triggerun -- apache1 >= 1.3.33-2
-%apache_config_uninstall -v 1 -n 79
+%triggerin -- apache < 2.2.0, apache-base
+%webapp_register httpd %{_webapp}
-%triggerin -- apache >= 2.0.0
-%apache_config_install -v 2 -c %{_sysconfdir}/apache.conf -n 09
+%triggerun -- apache < 2.2.0, apache-base
+%webapp_unregister httpd %{_webapp}
-%triggerun -- apache >= 2.0.0
-%apache_config_uninstall -v 2 -n 09
+%triggerpostun -- %{name} < 1:3.0.6-0.2
+# rescue app config
+if [ -f /etc/%{name}/cvsweb.conf.rpmsave ]; then
+ mv -f %{_sysconfdir}/cvsweb.conf{,.rpmnew}
+ mv -f /etc/%{name}/cvsweb.conf.rpmsave %{_sysconfdir}/cvsweb.conf
+fi
-%triggerpostun -- %{name} < 1:3.0.5-0.20
# migrate from old config location (only apache2, as there was no apache1 support)
if [ -f /etc/httpd/%{name}.conf.rpmsave ]; then
- cp -f %{_sysconfdir}/apache.conf{,.rpmnew}
- mv -f /etc/httpd/%{name}.conf.rpmsave %{_sysconfdir}/apache.conf
- if [ -f /var/lock/subsys/httpd ]; then
- /etc/rc.d/init.d/httpd restart 1>&2
- fi
+ cp -f %{_sysconfdir}/httpd.conf{,.rpmnew}
+ mv -f /etc/httpd/%{name}.conf.rpmsave %{_sysconfdir}/httpd.conf
+ httpd_reload=1
fi
-# place new config location, as trigger puts config only on first install, do it here.
-# apache1
-if [ -d /etc/apache/conf.d ]; then
- rm -f /etc/apache/conf.d/09_%{name}.conf # old slot
- ln -sf %{_sysconfdir}/apache.conf /etc/apache/conf.d/79_%{name}.conf
- if [ -f /var/lock/subsys/apache ]; then
- /etc/rc.d/init.d/apache restart 1>&2
+# migrate from apache-config macros
+if [ -f /etc/%{name}/apache.conf.rpmsave ]; then
+ if [ -d /etc/apache/webapps.d ]; then
+ cp -f %{_sysconfdir}/apache.conf{,.rpmnew}
+ cp -f /etc/%{name}/apache.conf.rpmsave %{_sysconfdir}/apache.conf
fi
-fi
-# apache2
-if [ -d /etc/httpd/httpd.conf ]; then
- ln -sf %{_sysconfdir}/apache.conf /etc/httpd/httpd.conf/09_%{name}.conf
- if [ -f /var/lock/subsys/httpd ]; then
- /etc/rc.d/init.d/httpd restart 1>&2
+
+ if [ -d /etc/httpd/webapps.d ]; then
+ cp -f %{_sysconfdir}/httpd.conf{,.rpmnew}
+ cp -f /etc/%{name}/apache.conf.rpmsave %{_sysconfdir}/httpd.conf
fi
+ rm -f /etc/%{name}/apache.conf.rpmsave
+fi
+
+if [ -L /etc/apache/conf.d/09_%{name}.conf ]; then
+ rm -f /etc/apache/conf.d/09_%{name}.conf
+ apache_reload=1
+fi
+if [ -L /etc/apache/conf.d/79_%{name}.conf ]; then
+ rm -f /etc/apache/conf.d/79_%{name}.conf
+ apache_reload=1
+fi
+if [ -L /etc/httpd/httpd.conf/09_%{name}.conf ]; then
+ rm -f /etc/httpd/httpd.conf/09_%{name}.conf
+ httpd_reload=1
+fi
+
+if [ "$apache_reload" ]; then
+ /usr/sbin/webapp register apache %{_webapp}
+ %service -q apache reload
+fi
+if [ "$httpd_reload" ]; then
+ /usr/sbin/webapp register httpd %{_webapp}
+ %service -q httpd reload
fi
%files
%dir %attr(750,root,http) %{_sysconfdir}
%config(noreplace) %verify(not md5 mtime size) %attr(640,root,http) %{_sysconfdir}/%{name}.conf
%config(noreplace) %verify(not md5 mtime size) %attr(640,root,root) %{_sysconfdir}/apache.conf
-%dir %{_appdir}
-%{_appdir}/css
-%{_appdir}/enscript
-%{_appdir}/icons
-%attr(755,root,root) %{_appdir}/cvsweb.cgi
+%config(noreplace) %verify(not md5 mtime size) %attr(640,root,root) %{_sysconfdir}/httpd.conf
+%attr(755,root,root) %{_cgibindir}/cvsweb.cgi
+%{_appdir}
+
+%files -n enscript-%{name}
+%defattr(644,root,root,755)
+%{_enscriptdir}/*