PaulHowarth/Blog/2009-06-08

Monday 8th June 2009

Fedora Project

  • Cast my votes in the elections for F12 release name, FESCO, and the Board
  • Updated perl-Crypt-RSA to 1.99 in Rawhide

Local Packages

  • Updated python-zope-interface to buildreq python-setuptools-devel so that egg-info is generated

  • Updated perl-BerkeleyDB to 0.39

Today I got started on a project that I've been meaning to implement for a very long time, namely moving the repository source into a version control system. I've chosen subversion for this, mainly because of my familiarity with it and also because there's no need at this time to use a distributed VCS as I'm the only person likely to be making commits. I'll also be able to use the very nice repository browser that comes with trac when I set up the repository bug tracker (coming soon).

Anyway, here's what I did. The subversion repository is going to live on subversion.city-fan.org, so I logged in there and became root, then did:

# yum install subversion mod_dav_svn
# mkdir -p /srv/subversion/repos
# chcon -R -t httpd_sys_content_rw_t /srv/subversion/repos
# chown apache:apache /srv/subversion/repos
# su - -s /bin/sh apache
$ svnadmin create --fs-type fsfs /srv/subversion/repos/cfo-repo
$ logout
# cd /srv/subversion/repos/cfo-repo/conf
# htpasswd -c htpasswd paul
(set my password)
# chgrp apache htpasswd
# chmod 640 htpasswd
# vi authz
# vi /etc/httpd/conf.d/subversion.conf
# service httpd reload

/etc/httpd/conf.d/subversion.conf:

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

#
# Example configuration to enable HTTP access for a directory
# containing Subversion repositories, "/var/www/svn".  Each repository
# must be readable and writable by the 'apache' user.  Note that if
# SELinux is enabled, the repositories must be labelled with a context
# which httpd can write to; this will happen by default for
# directories created in /var/www.  Use "restorecon -R /var/www/svn"
# to label the repositories if upgrading from a previous release.
#

#
# To create a new repository "http://localhost/repos/stuff" using
# this configuration, run as root:
#
#   # cd /var/www/svn
#   # svnadmin create stuff   
#   # chown -R apache.apache stuff
#

<Location /repos>
   DAV svn
   SVNParentPath /srv/subversion/repos

   # Limit write permission to list of valid users.
   <LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      # SSLRequireSSL

      AuthType Basic
      AuthName "City-Fan.Org Package Repository"
      AuthUserFile /srv/subversion/repos/cfo-repo/conf/htpasswd
      Require valid-user
   </LimitExcept>
</Location>

<Directory "/srv/subversion/repos">
   Options Indexes FollowSymLinks
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

/srv/subversion/repos/cfo-repo/conf/authz:

### This file is an example authorization file for svnserve.
### Its format is identical to that of mod_authz_svn authorization
### files.
### As shown below each section defines authorizations for the path and
### (optional) repository specified by the section name.
### The authorizations follow. An authorization line can refer to:
###  - a single user,
###  - a group of users defined in a special [groups] section,
###  - an alias defined in a special [aliases] section,
###  - all authenticated users, using the '$authenticated' token,
###  - only anonymous users, using the '$anonymous' token,
###  - anyone, using the '*' wildcard.
###
### A match can be inverted by prefixing the rule with '~'. Rules can
### grant read ('r') access, read-write ('rw') access, or no access
### ('').

[groups]
svn-admin = paul

[/]
@svn-admin = rw
* = r


Recent