I've always written build scripts for projects that are fast moving, such as Roundcube is now, so I didn't have to do the manual steps everytime I wanted to update to the lastest/bleeding edge. To that end, here is my getround.sh script. It requires that you have CVS and EXPECT installed. It "works for me (tm)" but let me know how it goes for you. I would really like to work in a database backup/drop/create/restore function to it -or- some other way to update the DB as we move further.
http://cryer.us/phil/code/roundcubemail/
http://fak3r.com - you don't have to kick it