hyung-hwan
a950cb9e30
# added svn_tag_property to support soft tagging/labeling # changed some code views to show the tag # enhanced the revision view to tag/untag the revision |
||
---|---|---|
.. | ||
ac | ||
DEBIAN | ||
etc | ||
pecl-svn | ||
sbin | ||
src | ||
aclocal.m4 | ||
codepot.spec.in | ||
config.guess | ||
config.h.in | ||
config.sub | ||
configure | ||
configure.ac | ||
Makefile.am | ||
Makefile.in | ||
mkmf.sh | ||
README |
CODEPOT Codepot is a simple web-based source code manager. It incorporates the subversion revision control system and wiki-based documentation, and supports authentication via LDAP or DBMS. If you opt for the simplest, you can manage multiple subversion repositories independent of each other. Going beyond it, you can track issues, write documents, and upload release files. INSTALLATION ON CENTOS A RPM package is provided for RedHat/CentOS Linux. The RPM package specifies dependency which must be met prior to or at the same time as the installation of the rpm package. $ rpm -ivh codepot-X.X.X-Y.Y.Y.Y.rpm You can use the yum utility to be hassle-free instead. However, some required packages are not available in the base CentOS repository but in the RPMforge repository. You may be required to add the RPMforge repository to the system. View http://wiki.centos.org/AdditionalResources/Repositories/RPMForge for RPMforge set-up. $ yum localinstall --nogpgcheck codepot-X.X.X-Y.Y.Y.Y.rpm Once you have all required package installed, you can proceed to configure the system. The following steps shown assume the default installation of CentOS 5. X.X.X is the version number and Y.Y.Y.Y is the release number. For example, to install Codepot 0.2.0 for a 32-bit x86 CentOS 5 server running PHP 5.3, you should get the RPM package file - codepot-0.2.0-php53.1.el5.i686.rpm. 1. Add the following line to /etc/httpd/conf.d/perl.conf. It must be placed after 'LoadModule perl_module modules/mod_perl.so'. PerlSwitches -Mlib=/etc/codepot/perl 2. Customize the Subversion WebDAV access in /etc/httpd/conf.d/codepot.conf which the RPM package copies from /etc/codepot/codepot.http upon fresh installation. The default file installed specify the location '/svn'. It must match the path part of the subversion base URL(svn_base_url) specified in /etc/codepot/codepot.ini. You can skip this step if you don't need any customizations. 3. Create a database named 'codepot' into the running MySQL server. The schema is defined in /etc/codepot/codepot.mysql. You can execute the following in the MySQL command prompt. mysql> create database codepot; mysql> use codepot; mysql> source /etc/codepot/codepot.mysql; 4. Customize various configuration items in /etc/codepot/codepot.ini. Set all items beginning with database_ to match the database settings. Customize the values to match your system database. database_hostname = "localhost" database_username = "root" database_password = "" database_name = "codepot" database_driver = "mysql" database_prefix = "" 5. Add a local user using the 'codepot-user' command. This command is used to add a user to the database and a user entry added is effective if codepot is configured to use 'DbLoginModel'. You can change it by chaning the value of 'login_mode' in /etc/codepot/codepot.ini. $ /usr/sbin/codepot-user add username password username@your.domain 6. Enable the user added. $ /usr/sbin/codepot-user enable username 7. Optionally, you can set this user to be a system administrator in /etc/codepot/codepot.ini. sysadmin_userids = "username" 8. If you don't have the right subversion extension for PHP installed, you can install the codepot-peclsvn package. Codepot requires the 'svn.so' extension built of at least r333800 from http://svn.php.net/repository/pecl/svn/trunk. $ rpm -ivh codepot-peclsvn-X.X.X-Y.Y.Y.Y.rpm 9. Check if you have SELinux on and its current mode with the sestatus command. $ /usr/sbin/sestatus SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 21 Policy from config file: targeted If you have SELinux on in the enforcing mode, check if the data directories used by Codepot has the right context set. The 'httpd_sys_content_t' context type should be set. The Codepot RPM package sets the context type upon fresh installation only. $ ls -Zd /var/lib/codepot drwxr-xr-x root root user_u:object_r:httpd_sys_content_t /var/lib/codepot $ ls -Z /var/lib/codepot drwxr-xr-x apache apache system_u:object_r:httpd_sys_content_t attachments drwxr-xr-x apache apache system_u:object_r:httpd_sys_content_t files drwxr-xr-x apache apache system_u:object_r:httpd_sys_content_t svnrepo drwxr-xr-x apache apache system_u:object_r:httpd_sys_content_t usericons $ ls -lZd /var/cache/codepot drwxr-xr-x apache apache system_u:object_r:httpd_sys_content_t /var/cache/codepot 10. If you have SELinux on in the enforcing mode, ensure to allow httpd to execute an external command. $ /usr/sbin/getsebool httpd_ssi_exec httpd_ssi_exec --> off If httpd_ssi_exec is off, switch it to on. $ /usr/sbin/setsebool -P httpd_ssi_exec=1 $ /usr/sbin/getsebool httpd_ssi_exec httpd_ssi_exec --> on The only external command Codepot executes is '/etc/codepot/cloc.pl' which is configured under 'cloc_command_path' in /etc/codepot/codepot.ini. Some CLOC graphs won't work properly when the execution of this command fails. 11. Restart httpd. $ service httpd restart 12. Access http://your-server/codepot/ INSTALLATION ON DEBIAN Here is how to install Codepot into the standard locations under Debian Linux. * Install required packages. $ sudo apt-get install subversion $ sudo apt-get install apache2-mpm-prefork $ sudo apt-get install libapache2-svn $ sudo apt-get install libapache2-mod-auth-mysql # optional $ sudo apt-get install php5 php5-ldap php5-mysql $ sudo apt-get install php5-svn # if available * Install the mysql server if you want to store projects in a local mysql database. $ sudo apt-get install mysql-server * Install the openldap server if you want to use a local LDAP server. $ sudo apt-get install slapd * Enable the apache server modules $ sudo a2enmod php5 $ sudo a2enmod authnz_ldap # enable ldap-based authentication $ sudo a2enmod dav_svn $ sudo a2enmod userdir # to enable $HOME/public_html $ sudo /etc/init.d/apache2 restart * Install source code $ ./configure \ --with-wwwdir=/var/www/codepot \ --with-cfgdir=/etc/codepot \ --with-depotdir=/var/lib/codepot \ --with-logdir=/var/log/codepot \ --with-cachedir=/var/cache/codepot $ make install $ mkdir -p /var/lib/codepot/svnrepo /var/lib/codepot/files $ mkdir -p /var/cache/codepot /var/log/codepot * Customize CFGDIR/codepot.ini * Initialize database using CFGDIR/codepot.mysql * Configure apache web server authentication for subversion webdav access based on CFGDIR/codepot.httpd * To enable SSL $ sudo a2enmod ssl $ sudo a2ensite default-ssl $ sudo hostname actual.domain.name $ sudo make-ssl-cert generate-default-snakeoil --force-overwrite $ sudo hostname ${HOSTNAME} $ sudo /etc/init.d/apache2 restart Note that make-ssl-cert is provided by the ssl-cert package. LICENSE This software is licensed under the GNU General Public License. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. This software contains the following third-party components. ------------------------------------------------------------------------ Name License ------------------------------------------------------------------------ CodeIgniter 1.7.2 See src/system/license.txt Google code prettify Apache License 2.0 JavaScript Creole 1.0 Wiki Markup Parser See src/js/creole.js jQuery JavaScript Library v1.4.2 See http://jquery.org/license jQuery UI 1.8 MIT or GPL PHPGraphLib MIT CLOC 1.62 GPL Flot https://github.com/flot/flot/blob/master/LICENSE.txt ------------------------------------------------------------------------