edoceo: Latin "to inform fully, instruct thoroughly"

Edoceo's Blog: 2008.10

Sunday, October 26, 2008

Making a Gentoo Live USB System

Recently on #gentoo we saw a few questions about Gentoo Live USB, which we thought was an awesome idea. Turns out that many people were looking for this but few were finding it. We'd build an Ubuntu Live USB stick before and have been using Gentoo for years, this shouldn't be too hard... We cloned the ISO image for the Live CD, similar steps as we used on Ubuntu Live USB. Ran the extlinux and used the files from the isolinux folder in the Gentoo ISO. Booted off the disc on our test laptop and boom! Gentoo Live USB!

Monday, October 20, 2008

Migrating Trac from Sqlite to PostgreSQL

At Edoceo we use PostgreSQL almost exclusively, when we installed an old beta of Trac the only supported database was Sqlite. A little thing like that would not get in our way so we continued to use Trac successfully for a number of months. Just recently we decided to update our Trac install to use PostgreSQL. Here's how it worked. Backup your data before starting! (Good advice which we don't follow) Trac-Hacks had a handy script to aid in our migration called SqliteToPg. First fetch that script into your Trac directory (for simplicity) and make it executable.
cd /var/trac/
curl 'http://trac-hacks.org/browser/sqlitetopgscript/0.10/sqlite2pg?format=raw' > sqlite2pg.py
chmod 0755 sqlite2pg.py
Then create the PostgreSQL database (as you see fit, here's a very simple method)
psql -U postgres
postgres=# create user trac_edoceo;
postgres=# create database trac_edoceo with owner trac_edoceo encoding 'UTF-8';
Then execute the script to import the data!
./sqlite2pg.py --tracenv=./ --pg_uri='postgres://trac_edoceo@localhost/trac_edoceo'
Now update the Trac system to use this new database! Open the trac.ini file and edit the line that reads 'database = ...' to use the same URI as above. For us it looks like:
sed -i 's/sqlite:db\/trac\.db/postgres:\/\/trac_edoceo@localhost\/trac_edoceo/' conf/trac.ini
Then we restarted Apache just to make sure all the configuration changes would take affect.

Friday, October 17, 2008

Building ffmpeg on Ubuntu Linux

Recently decided to take advantage of some ffmpeg new latest features on an Ubuntu system. Here's what had to be done to get it ready. First, install all the necessary Ubuntu packages.
aptitude install git-core nasm \
  libswscale-dev libavcodec-dev libavformat-dev \
  libvorbis-dev libtheora-dev \
  liblame-dev liblame0  libgsm1-dev libgsm-tools libgsm1 \ 
  libfaad2-dev libfaac-dev libgpac-dev \ 
  libxvidcore4-dev liba52-0.7.4 liba52-0.7.4-dev \
  libdc1394-13-dev 
Then, make a location for the source and export the newest stuff!
cd /usr/src
git clone git://git.videolan.org/x264.git 
cd x264
./configure --prefix=/usr --enable-pthread --enable-shared \
  --enable-mp4-output --enable-pic
make
make install

mkdir /usr/src/ffmpeg-trunk
cd /usr/src
svn export svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg-trunk
cd ffmpeg-trunk
./configure --enable-gpl --enable-shared --enable-swscale --enable-pthreads \
  --enable-libdc1394 --enable-libfaac --enable-libfaad --enable-libgsm \
  --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 \
  --disable-debug --extra-version 'edoceo'
make
Now there is this custom ffmpeg stored in /usr/src/ffmpeg-trunk/. If it fails you'll need to search for the necessary -dev package with apt-cache search libXXX I choose to leave it here, notice I did not indicate to run make install. This means I have Ubuntu standard ffmpeg in the path, as the distribution expects it and the custom stuff stays out of the main system. Just have to remember the full path every time. The ffmpeg that is built will not have some of it's lib files installed in an expected location (because we left off the make install). So we'll have to sym-link them into place
cd /usr/src/ffmpeg-trunk
ln -s libswscale/libswscale.so.0 ./
ln -s libavdevice/libavdevice.so.52 ./
ln -s libavformat/libavformat.so.52 ./
ln -s libavcodec/libavcodec.so.52 ./
ln -s libavutil/libavutil.so.49 ./
Then run this custom ffmpeg as follows
LD_LIBRARY_PATH="/usr/src/ffmpeg-trunk" /usr/src/ffmpeg-trunk/ffmpeg [options] [outfile]
Another option, common for us is to specify a new prefix, such as --prefix=/opt/ffmpeg-trunk then install there.

Monday, October 6, 2008

Have you Used Dim Dim Yet?

DimDim is a very powerful web-meeting application, works great on all platforms we've tried. The latest Open Source release (3.5-beta) is very stable and was easy to install. The end-user experience when joining a meeting is much nicer than what WebEx offers. Only limitation is that desktop sharing on Linux is not supported yet. It's on their task list, we're hoping it's functional by end-of-year. Until then a combo of OpenVPN and x11vnc does the trick.