From 4853573ee727424b05ed0705f189e93ff619378d Mon Sep 17 00:00:00 2001
From: Petr Baudis
Date: Thu, 5 Nov 2009 04:11:42 +0100
Subject: [PATCH] Generic Girocco
Remove any direct repo.or.cz data from Girocco configuration, make it fully example configuration instead. repo.or.cz will get its own rorcz branch in the repository instead.
---
Girocco/Config.pm | 39 +++++++++++++--------
gitweb/indextext.html | 49 +++++++++++++-------------
html/about.html | 96 ++++++++++++---------------------------------------
3 files changed, 72 insertions(+), 112 deletions(-)
rewrite gitweb/indextext.html (65%)
rewrite html/about.html (96%)
diff --git a/Girocco/Config.pm b/Girocco/Config.pm
index 344681f..0eac97e 100644
--- a/Girocco/Config.pm
+++ b/Girocco/Config.pm
@@ -7,16 +7,16 @@ use warnings;
## Basic settings
# Name of the service
-our $name = "repo.or.cz";
+our $name = "GiroccoEx";
# Title of the service (as shown in gitweb)
-our $title = "Public Git Hosting";
+our $title = "Example Girocco Hosting";
# Path to the Git binary to use (you MUST set this, even if to /usr/bin/git!)
our $git_bin = '/usr/bin/git';
# E-mail of the site admin
-our $admin = 'pasky@suse.cz';
+our $admin = 'admin@example.org';
## Feature knobs
@@ -27,7 +27,8 @@ our $mirror = 1;
# Enable push mode if true
our $push = 1;
-# Enable user management if true
+# Enable user management if true; this means the interface for registering
+# user accounts and uploading SSH keys. This implies full chroot.
our $manage_users = 1;
# Enable the special 'mob' user if set to 'mob'
@@ -41,11 +42,14 @@ our $project_passwords = 1;
# How to determine project owner; 'email' adds a form item asking for their
# email contact, 'source' takes realname of owner of source repository if it
-# is a local path (and empty string otherwise).
+# is a local path (and empty string otherwise). 'source' is suitable in case
+# the site operates only as mirror of purely local-filesystem repositories.
our $project_owners = 'email';
# Which project fields to make editable, out of 'shortdesc', 'homepage',
-# 'README':
+# 'README', 'notifymail', 'notifyjson', 'notifycia'. (This is currently
+# soft restriction - form fields aren't used, but manually injected values
+# *are* used. Submit a patch if that's an issue for you.)
our @project_fields = qw(homepage shortdesc README notifymail notifyjson notifycia);
# Minimal number of seconds to pass between two updates of a project.
@@ -57,15 +61,15 @@ our $min_gc_interval = 604800; # 1 week
## Paths
-# Path to the Girocco files (checkout of this project)
-# This will get COMPLETELY OVERWRITTEN by each make install!
+# Path where the main chunk of Girocco files will be installed
+# This will get COMPLETELY OVERWRITTEN by each make install!!!
our $basedir = '/home/repo/repomgr';
# The repository collection
our $reporoot = "/srv/git";
-# The chroot for ssh pushing; location for project database even in non-chroot
-# setups
+# The chroot for ssh pushing; location for project database and other run-time
+# data even in non-chroot setups
our $chroot = "/home/repo/j";
# The gitweb files web directory (corresponds to $gitwebfiles)
@@ -96,6 +100,8 @@ our $htmlurl = "http://repo.or.cz/h";
our $httppullurl = "http://repo.or.cz/r";
# Git URL of the repository collection (undef if N/A)
+# (You need to set up git-daemon on your system, and Girocco will not
+# do this particular thing for you.)
our $gitpullurl = "git://repo.or.cz";
# Pushy URL of the repository collection (undef if N/A)
@@ -111,8 +117,8 @@ our $giroccourl = "$Girocco::Config::gitweburl/girocco.git";
# Legal warning (on reguser and regproj pages)
our $legalese = <By submitting this form, you are confirming that you will mirror or push
-only free software and redistributing it will not violate any law
-of Czech Republic.
+only what we can store and show to anyone else who can visit this site without
+breaking any law, and that you will be nice to all small furry animals.
(more details)
EOT
@@ -167,12 +173,15 @@ our $mirror_sources = [
# the repository
# - repo: a user designated for cronjobs; handles mirroring and repacking;
# this one is optional if not $mirror
-# - others: the designated users that are supposed to be able to push
+# - others: the designated users that are supposed to be able to push; they
+# may have account either within chroot, or outside of it
# There are several ways how to use Girocco based on a combination of the
# following settings.
-# (Non-chroot) UNIX user the CGI scripts run on
+# (Non-chroot) UNIX user the CGI scripts run on; note that if some non-related
+# untrusted CGI scripts run on this account too, that can be a big security
+# problem and you'll probably need to set up suexec (poor you).
our $cgi_user = 'www-data';
# (Non-chroot) UNIX user performing mirroring jobs; this is the user who
@@ -183,7 +192,7 @@ our $mirror_user = 'repo';
# (Non-chroot) UNIX group owning the repositories by default; it owns whole
# mirror repositories and at least web-writable metadata of push repositories.
# If you undefine this, all the data will become WORLD-WRITABLE.
-# Both $cgi_user and $mirror_user should be members of this group.
+# Both $cgi_user and $mirror_user should be members of this group!
our $owning_group = 'repo';
# Whether to use chroot jail for pushing; this must be always the same
diff --git a/gitweb/indextext.html b/gitweb/indextext.html
dissimilarity index 65%
index e7b7c8f..6951c77 100644
--- a/gitweb/indextext.html
+++ b/gitweb/indextext.html
@@ -1,24 +1,25 @@
-repo.or.cz is a public Git hosting site.
-Create a project in a snap, publish your development, give others push
-access and let anyone have a look and contribute.
-Alternatively, if you just see a random git://
URL fly by and
-want to check it out, or you have limited bandwidth or want backup - just quickly
-set up a mirror of any project published
-elsewhere and we will provide pull and gitweb access for the project.
-(read more, terms&conditions)
-
-This service is BETA.
-The service is maintained by Petr Baudis
-as a public service for the Git community,
-please contact him with any requests, proposals or issues.
-Or you may be also interested in
-other Git hosting sites.
-
-Register project | Register user | Update user SSH keys
-
-
-How to grab a project? Simply
git clone git://repo.or.cz/project.git
.
-Then, repeat
git pull
to update to the latest version of the project.
-See the
The Git Homepage
-for more details about Git and its usage.
-
+Congratulations! Welcome in your fresh Girocco instance.
+Edit gitweb/indextext.html in the source tree and re-run make install to
+modify this text. (Never modify anything in the final destination directories,
+it will get overwritten!) You can tweak gitweb/gitweb_config.perl to define
+whether to show project list on the front page, or e.g. to turn content tags off.
+You may want to have a look at rorcz.git:
+the repo.or.cz branch of Girocco, to look at how this hosting site is configured.
+Enjoy setting up your Girocco! (read more, terms&conditions)
+
+Have you told Petr Baudis
+about your Girocco usage? Of course you don't have to, but then you may
+find out that upgrading to newer Girocco version in the future is not as
+smooth as you would like...
+
+If your cgidir is not in site root, you will have to adjust the three
+links below manually:
+
+Register project | Register user | Update user SSH keys
+
+
+How to grab a project? Simply
git clone git://repo.or.cz/project.git
.
+Then, repeat
git pull
to update to the latest version of the project.
+See the
The Git Homepage
+for more details about Git and its usage.
+
diff --git a/html/about.html b/html/about.html
dissimilarity index 96%
index e08160e..fbd2575 100644
--- a/html/about.html
+++ b/html/about.html
@@ -1,73 +1,23 @@
-@section=site guide
-@heading=About the Site
-@header
-
-
-
-
-repo.or.cz is a public Git hosting site.
-You can create a project here and then publish your development by pushing
-to it, or even enable push access for multiple developers.
-Alternately, you can just set up a mirror of any project published elsewhere
-and we will provide pull and gitweb access for the project.
-
-In the push mode, every developer that wants push access will need to
-create an account and use SSH for pushing changes;
-using the project administration password, you will be able to add/remove
-permission for developers to push. Also, optional anonymous push access
-to a dedicated mob branch is supported.
-
-In the mirror mode, we will check the remote repository at the URL you
-give us every hour and if we spot any changes, we will grab them, mirror
-them and show them in our gitweb interface. It's a matter of few clicks
-to set up a mirror - don't be shy and feel free to create mirror for any
-git project without a decent gitweb interface or with badly hosted
-repository; you don't need to be the project maintainer to setup a mirror.
-
-
-Terms and Conditions
-
-There are only two conditions:
-
-
-- Your project must be free software and distributing it must not violate laws
-of Czech Republic. (The registration process is completely automatic but we will
-remove your project if we find out during manual inspection or on request by
-someone relevant.)
-- The repository size should not exceed 400M after repacking (let us know
-if you need an exception). If you need more, you are running quite a big
-project and should be able to arrange own hosting; but we can and likely will
-grant exceptions. Note that e.g. CVS-imported glibc repository with ~15 years
-worth of history is just 100M.
-
-
-This site provides NO WARRANTY of any legal kind about whatever you store
-here. Someone can crack your account or the site, alter the data, make mayhem
-and whatever else; we cannot be held responsible for any damages that may be
-caused to you in any way in connection with this site.
-
-
-Backup policy
-
-Your repository is NOT backed up! Why? Because you have backups yourself,
-and all your users do, too! The distributed nature of Git means that all the
-developers and all the users who ever cloned the repository have the full
-history of it, and shall any disaster happen to repo.or.cz, all can be
-easily restored by a single simple push. That said, we may set up backups
-in the future if the service becomes popular enough.
-
-
-Operation
-
-repo.or.cz runs on a four-way Xeon 2GHz with 4G RAM and 256G disk array
-that also serves as a PoP for the XS26
-IPv6 tunnel broker.
-The server and connectivity is generously sponsored by
-UPC Czech Republic.
-
-Petr Baudis runs the site.
-Virtually all the infrastructure is available under the codename "Girocco"
-in git repositories girocco.git
-and git/gitweb.git
-and is licenced under GPLv2.
-repo.or.cz development is sponsored by SUSE / Novell Inc. and Novartis Pharma, AG.
+@section=site guide
+@heading=About the Site
+@header
+
+
+
+
+Hi There! This page should give more details about your Girocco
+instance; here, you can substitute for configuration variables already:
+e.g. @@webadmurl@@.
+
+It would be nice if you left the following section at the bottom
+of this file...
+
+
+About Girocco
+
+Girocco is a free
+and reasonably easy-to-install Git hosting suite supporting multiple
+operation modes; it has only essential features and is very UNIXy,
+thus is fairly simple to understand. Its prime site is repo.or.cz
+which provides free Git hosting services.
+(read more)
--
2.11.4.GIT