From 39d6ae82638684ce61e454dc7f8a1e46a3eeeb22 Mon Sep 17 00:00:00 2001 From: Todd Zullinger Date: Fri, 6 Feb 2009 18:54:50 +0000 Subject: Import cgit on F-10 branch --- .cvsignore | 3 ++ README.SELinux | 22 +++++++++++++++ cgit.httpd | 2 ++ cgit.spec | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cgitrc | 54 +++++++++++++++++++++++++++++++++++ sources | 2 ++ 6 files changed, 172 insertions(+) create mode 100644 README.SELinux create mode 100644 cgit.httpd create mode 100644 cgit.spec create mode 100644 cgitrc diff --git a/.cvsignore b/.cvsignore index e69de29..c6a8266 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1,3 @@ +*.rpm +*.tar.bz2 +clog diff --git a/README.SELinux b/README.SELinux new file mode 100644 index 0000000..95c690c --- /dev/null +++ b/README.SELinux @@ -0,0 +1,22 @@ +If you use SELinux, you need to ensure that the httpd_enable_cgi boolean is +set properly. This can be done via the command line, e.g.: + + # setsebool -P httpd_enable_cgi 1 + +Or you can use the graphical tool system-config-selinux, via System -> +Administration -> SELinux Management on the Gnome menu. + +Additionally, the git repositories need to be readable by the cgi. This is +handled automatically for repositories in the default path, /var/lib/git. If +your repositories are in a different path, /srv/git, for example, you can set +the proper context using semanage: + + # semanage fcontext -a -t httpd_sys_content_t "/srv/git(/.*)?" + +If you have other confined daemons that need to access the git repositories, +you may want to use public_content_t, or public_content_rw_t instead of +httpd_sys_content_t. + +Then use restorecon to update the contexts: + + # restorecon -RF /srv/git diff --git a/cgit.httpd b/cgit.httpd new file mode 100644 index 0000000..791d01b --- /dev/null +++ b/cgit.httpd @@ -0,0 +1,2 @@ +Alias /cgit-data /usr/share/cgit +ScriptAlias /cgit /var/www/cgi-bin/cgit diff --git a/cgit.spec b/cgit.spec new file mode 100644 index 0000000..50dd464 --- /dev/null +++ b/cgit.spec @@ -0,0 +1,89 @@ +# Review bug: https://bugzilla.redhat.com/479723 + +%define gitver 1.6.1.1 +%define cachedir %{_localstatedir}/cache/cgit +%define scriptdir %{_localstatedir}/www/cgi-bin +%define cgitdata %{_datadir}/cgit + +%define make_cgit \ +export CFLAGS="%{optflags}" \ +make V=1 %{?_smp_mflags} \\\ + DESTDIR=%{buildroot} \\\ + INSTALL="install -p" \\\ + CACHE_ROOT=%{cachedir} \\\ + CGIT_SCRIPT_PATH=%{scriptdir} \\\ + CGIT_SCRIPT_NAME=cgit \\\ + CGIT_DATA_PATH=%{cgitdata} + +Name: cgit +Version: 0.8.2 +Release: 1%{?dist} +Summary: A fast webinterface for git + +Group: Development/Tools +License: GPLv2 +URL: http://hjemli.net/git/cgit/ +Source0: http://hjemli.net/git/cgit/snapshot/%{name}-%{version}.tar.bz2 +Source1: http://www.kernel.org/pub/software/scm/git/git-%{gitver}.tar.bz2 +Source2: cgitrc +Source3: cgit.httpd +Source4: README.SELinux +BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) + +%if 0%{?fedora} +BuildRequires: libcurl-devel +%else +BuildRequires: curl-devel +%endif +BuildRequires: openssl-devel +Requires: httpd + +%description +This is an attempt to create a fast web interface for the git scm, +using a builtin cache to decrease server io-pressure. + +%prep +%setup -q -a 1 + +# setup the git dir +rm -rf git +mv git-%{gitver} git +sed -i 's/^\(CFLAGS = \).*/\1%{optflags}/' git/Makefile + +# add README.SELinux +cp -p %{SOURCE4} . + + +%build +%{make_cgit} + + +%install +rm -rf %{buildroot} +%{make_cgit} install +install -d -m0755 %{buildroot}%{_sysconfdir}/httpd/conf.d +install -p -m0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/cgitrc +install -p -m0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/httpd/conf.d/cgit.conf +install -d -m0755 %{buildroot}%{cachedir} + +%clean +rm -rf %{buildroot} + + +%files +%defattr(-,root,root,-) +%doc COPYING README* cgitrc.5.txt +%config(noreplace) %{_sysconfdir}/cgitrc +%config(noreplace) %{_sysconfdir}/httpd/conf.d/cgit.conf +%dir %attr(-,apache,root) %{cachedir} +%{cgitdata} +%{scriptdir}/* + + +%changelog +* Fri Feb 06 2009 Todd Zullinger - 0.8.2-1 +- Update to 0.8.2 +- Drop upstreamed Makefile patch + +* Mon Jan 12 2009 Todd Zullinger - 0.8.1-1 +- Initial package diff --git a/cgitrc b/cgitrc new file mode 100644 index 0000000..d3f811a --- /dev/null +++ b/cgitrc @@ -0,0 +1,54 @@ +# +# See /usr/share/doc/cgit-*/cgitrc.5.txt for details +# + +# Enable caching of up to 1000 output entries +cache-size=1000 + +# Specify some default clone prefixes +#clone-prefix=git://example.com ssh://example.com/pub/git http://example.com/git + +# Specify the css url +css=/cgit-data/cgit.css + +# Show extra links for each repository on the index page +enable-index-links=1 + +# Show number of affected files per commit on the log pages +enable-log-filecount=1 + +# Show number of added/removed lines per commit on the log pages +enable-log-linecount=1 + +# Add a cgit favicon +#favicon=/favicon.ico + +# Use a custom logo +logo=/cgit-data/cgit.png + +# Set the title and heading of the repository index page +#root-title=example.com git repositories + +# Set a subheading for the repository index page +#root-desc=tracking the foobar development + +# Include some more info about this site on the index page +#root-readme=/var/www/html/about.html + +# Allow download of tar.gz, tar.bz2 and zip-files +#snapshots=tar.gz tar.bz2 zip + +## +## List of repositories. +## PS: Any repositories listed when repo.group is unset will not be +## displayed under a group heading +## PPS: This list could be kept in a different file (e.g. '/etc/cgitrepos') +## and included like this: +## include=/etc/cgitrepos +## + +#repo.url=foo +#repo.path=/var/lib/git/foo.git +#repo.desc=the master foo repository +#repo.owner=fooman@example.com +#repo.readme=info/web/about.html diff --git a/sources b/sources index e69de29..3281b19 100644 --- a/sources +++ b/sources @@ -0,0 +1,2 @@ +872fafaa1ea6bd9292f312878864b665 cgit-0.8.2.tar.bz2 +d2b6925cb03e1e33911fdf9392946747 git-1.6.1.1.tar.bz2 -- cgit