Google

Tuesday, January 13, 2009

A Python Sidebar for Mozilla

When I was doing my Google summer of code in python I had so google search for many times to complete the project. Since, I did it in Python language and I was not familiar, I learn the basics through the Internet. But I couldn't find a place where I could gather all the information. Today I found a handy sidebar for python resources for Mozilla.

Monday, January 12, 2009

Trac WebAdmin Plugin

I was able to enable trac webadmin plugin to the trac system. Here are the simple steps,

first need to install easy_install utility
  • wget http://peak.telecommunity.com/dist/ez_setup.py
  • python ez_setup.py
I got the following error when I try to install it,
unable to open /usr/lib/python2.5/config/Makefile
then I install python-devel using yum
yum install python-devel
then I install webadmin trac plugin,
  • svn co http://svn.edgewall.com/repos/trac/sandbox/webadmin/
  • cd webadmin
  • python setup.py egg_info
  • python setup.py bdist_egg
  • cd dist
  • easy_install *.egg
then edit the trac.ini file which is in ${trac_home}/conf/trac.ini
[components] webadmin.* = enabled
install AccountManager Plugin,
  • svn co http://trac-hacks.org/svn/accountmanagerplugin/0.10 accountmanagerplugin
  • cd accountmanagerplugin
  • python setup.py bdist_egg
  • cd dist
  • easy_install *.egg
add following lines to trac.ini
[components] trac.web.auth.LoginModule = disabled acct_mgr.* = enabled  [account-manager] password_format = htpasswd password_file = /path/to/password.file
Finally restart the web server and made the plugins available from web.
/sbin/service httpd reload

Monday, January 5, 2009

Make a trac backup

I was able to make a backup of trac database and import all the data to other machine. So all the tickets, milestones, etc. were imported to another machine. Here is the procedure.

Make a backup of the current database.
mysqldump -u charith -p --databases trac > dbdump.sql
Then I copy it to the target machine and import it and create a new database called "trac" and allow permission to user charith,
grant all privileges on trac.* to charith@localhost identified by 'password';
I tried to use mysqlimport command,
mysqlimport trac --replace --user=root dbdump.sql
mysqlimport: Error: Table 'trac.dbdump' doesn't exist, when using table: dbdump

But I was able to import it successfully as root by,
mysql trac < dbdump.sql
But, still trac give the following error: "The 'repository_dir' has changed, a 'trac-admin resync' operation is needed".
So I synchronize the repository by,
trac-admin /path/to/env/ resync
Finally, I was able to import the data to the new environment.

Thursday, January 1, 2009

Install trac - project management tool

I spent few days to install trac software in my machine. I learnt lot of things while installing this software. Here is the procedure I followed,

1) Start Web server

First it need to confirm web server is running. We can start is as a service by,
System -> Administration -> Services
enabling the httpd and starting it.

Then can test it is running by browsing it using, http://localhost

To allow acces to the outsiders, need to enable webserver as a trusted service in firewall,
System -> Firewall

And need to enable port forwarding in the router which is depend on the router type.

Then you can get the public assigned to the router by browsing the www.whatismyip.com

You should be able to access http://public_ip

2) Running a subversion server
install subversion using yum as root
yum install subversion
Create svn repository
svnadmin create /srv/svn/
make httpd can access all files in repository
chown -R apache.apache /srv/svn chmod g+s /srv/svn/db
then create password file
vim /srv/trac/conf/trac.htpasswd
then add user password to it
htpasswd -m /srv/trac/conf/trac.htpasswd charith
configure apache by editing /etc/httpd/conf.d/subversion.conf
add folowwing lines to it
    DAV svn    SVNPath /srv/svn    AuthType Basic    AuthName "svn"    AuthUserFile /srv/trac/conf/trac.htpasswd    Require valid-user  
restart httpd service. This service need to be running to be reload. If not it will out put as "failed"
/sbin/service httpd reload
then upload the code to the repository
svn import -m "intial upload" /home/charith/SvnTestfile:///srv/svn/SvnTest
Can test the subversion surver running properly by checking out the code to some other folder
svn co http://localhost/srv/svn/SvnTest
Make repository access by apache
chcon -R -h -t httpd_sys_content_t /srv/svn/

3) Installing trac
install trac using yum
yum install trac
create a directory to store trac project
mkdir -p /srv/trac
create new trac environment using trav-admin
trac-admin /srv/trac/test initenv
make folders own by apache
chown -R apache.apache /srv/trac
edit the file /etc/httpd/conf.d/trac.conf to point to new project environment
# Replace all occurrences of /srv/trac with your trac root below
# and uncomment the respective SetEnv and PythonOption directives.
    SetEnv TRAC_ENV /srv/trac/charith
   AuthType Basic
   AuthName "trac"
   AuthUserFile /srv/trac/conf/trac.htpasswd
   Require valid-user
    SetHandler mod_python
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnv /srv/trac/charith
restart httpd service. This service need to be running to be reload. If not it will out put as "failed"
/sbin/service httpd reload
Now you should be able to access the trac in local mahine using
http://localhost/cgi-bin/trac.cgi

If you have enable SELinux there are few things to do, I used following commands to enable web server to access trac and subversion repositories.
chcon -R -t httpd_sys_content_t /srv/trac chcon -R -t httpd_sys_content_t /srv/svn
Easiest thing is to view the SELinux warning message from the top pannel. It contains the command to configure the SELinux.