Saturday, October 31, 2009

soundtouch

After building and installing (via synaptic) libtool I tried to build soundtouch again.

Common drill again.
mkdir soundtouch
cd soundtouch
apt-get source soundtouch
cd soundtouch-1.3.1
prevu

Success! Apparently the '-i' argument for libtoolize was for the later version of libtool :)

Next I will move back to building Ardour again after this circuitous route.

libtool

While trying to build soundtouch I ran into more problems:
make[1]: Leaving directory `/var/cache/prevu/src/14938/source'
cd build-tree/soundtouch-1.3.1 && libtoolize -c -f -i
libtoolize: unrecognized option `-i'
Try `libtoolize --help' for more information.
make: *** [debian/stamp-autotools-files] Error 1
dpkg-buildpackage: failure: debian/rules build gave error exit status 2

I researched libtool a bit and find that the version in hardy is quite old compared to Jaunty (1.5.26-1ubuntu1 vs 2.2.6a-1ubuntu1).

At this point I did what works for me; I walked away again and did some thinking. Guessing that perhaps the '-i' was an argument for a later version I'm going to try to build libtool first before trying to build soundtouch again.

I made sure I was using the Jaunty source repository again.
sudo gedit /etc/apt/sources.list

I made sure the additional source at the bottom referenced Jaunty.
# Adding interpid sources for prevu
deb-src http://archive.ubuntu.com/ubuntu jaunty main restricted universe multiverse

Update prevu.
sudo -E prevu-update


Then I did the usual song and dance.
mkdir libtool
cd libtool
apt-get source libtool
cd libtool-2.6.2a
prevu

Success.

Next I installed the libtool package in the hopes that the '-i' argument was a new feature in the later versions libtool. Next on to building soundtouch again.

[edit: as it turned out, I was right and soundtouch then built correctly]

Note that I had such trouble that I couldn't conclusively determine if I needed to install packages via synaptic or would prevu recognize them from the local repository.

cdbs

As mentioned in the previous post I needed to build soundtouch in order to hopefully build Ardour but got no love from building soundtouch. It turns out I needed a more recent version of cdbs. So to build cdbs before I can build soundtouch before I can build Ardour.

Trouble is that as I tried to build cdbs from the jaunty repository I received an error rather than the expected and familiar unmet dependency. A quick Google search and I wasn't any better off. Therefore I do what I do best; I walked away and thought about it.

Thinking back from what I read I guessed that I might need to build the correct version of cdbs from the oldest release of Ubuntu, in this case intrepid.

I changed my sources.list so that I could get sources from the intrepid sources repository rather than jaunty.
sudo gedit /etc/apt/sources.list

and a changed this:
# Adding interpid sources for prevu
deb-src http://archive.ubuntu.com/ubuntu jaunty main restricted universe multiverse

to this:
# Adding interpid sources for prevu
deb-src http://archive.ubuntu.com/ubuntu intrepid main restricted universe multiverse

Now I needed to update my sources.
sudo apt-get update

Finally, I updated prevu.
sudo -E update-prevu

Now, I could follow the familiar steps.
mkdir cdbs
cd cdbs
apt-get source cdbs
cd cdbs-0.4.52ubuntu7
prevu

I really didn't think this would work but it did.

So now I've build cdbs with the correct required version so I can now build soundtouch (hopefully) and then build Ardour (also hopefully) without any more trouble.

Prediction: I expect soundtouch will build fine, but I would probably lay even money against Ardour building without some other trouble.

Lastly, I can now test how the prevu-update works. Specifically, do I need to actually install the latest cdbs on my system or can I just update prevu and let it recognize that a more recent version of cdbs is available from my local repository.

Friday, October 30, 2009

VAMP

My first build attempt to build Ardour failed and told me that I needed vamp-plugin-sdk. This was not unexpected.

So, the familiar mantra followed: make a directory, change to that directory, download source, change into new directory and run prevu.
mkdir vamp
cd vamp
apt-get source vamp-plugin-sdk
cd vamp-plugin-sdk-1.3-1
prevu

This built well so I installed vamp-plugin-sdk via synaptic and update prevu.
sudo -E prevu-update


Next I treid to build Ardour again but ran into another problem which apparently has something to do with an old version of soundtouch. I found this out from an old debian multimedia mail list.

It appears that an older version of soundtouch (1.3.0-2.2) that is in Hardy doesn't is not configured correctly. Fortunately, the version in Jaunty is a later version (1.3.1-2) which is configured correctly.

Therefore my next step is to grab the soundtouch source code from the Jaunty repository and build it. I shall also test to see if I need to actually install the library or will the prevu update work without it.

JACK

My first prevu build of JACK failed. I think it was because I needed to update prevu after building CELT and FFADO.

First I made a new directory, changed directory into it and got the source code.
mkdir jack
cd jack
apt-get source jack-audio-connection-kit


Then I reloaded the package list (since I had a new set of *.deb packages from CELT and FFADO) and installed them via synaptic before I updated prevu. Next I tried to build the package.
cd jack-audio-connection-kit-0.116.1
prevu

This build failed and told me I still needed the libcelt-dev and libffado-dev.

Once the first build failed I also moderated the control and changelog files to remove the libcelt-dev and libffado-dev build-depends and built JACK via prevu. This compiled correctly. So renamed this directory to jack-moderated from jack and recreated the jack directory and downloaded the source code again.

But before I tried to build again I updated prevu.
sudo -E prevu-update

This seemed to do the trick as when I tried to build again it worked.
prevu

Thursday, October 29, 2009

libcelt-dev

Next I need to build libcelt-dev which is part of the celt source package.

Starting in the ~/build directory I need to make a new directory and change directories to it.
mkdir celt
cd celt

Next I need the source.
apt-get source celt

Which gives a celt-0.5.1 directory, a celt_0.5.1.orig.tar.gz file, a celt_0.5.1.diff.gz file and the celt_0.5.1-0ubuntu1.dsc file.

Move intot he celt-0.5.1 directory and run prevu.
cd celt-0.5.1
prevu

And again, you are greeted with success.
** Success!. You can find source packages and .debs at /var/cache/prevu/hardy-debs **


The reason I built FFADO and CELT is because I believe libffado-dev and libcelt-dev are needed to build JACK. I do have concerns that even though I install these libraries that prevu still will not recognize them because it is running in an chroot environment. We shall see.

But the attempt will have to wait until later tonight as Ubuntu Studio 9.10 "Karmic Koala" has been released and I want to download and seed the torrent.

Wednesday, October 28, 2009

libffado

I have found that in order to build the packages that I had originally intended, i.e. JACK and Ardour, than I would need to package several others during this process. Notably, I needed to build the FFADO driver (libffado).

To this end, I first created a created under my /home directory called /build. Not very imaginative I admit.
mkdir build

This will be the main directory where other directories will be stored for the various applications and their respective source packages to be stored.

Next, I moved into the build directory and created another directory for libffado. Move into the new directory also.
cd build
mkdir libffado
cd libffado

Then I downloaded the source package.
apt-get source libffado

Under the /libffado directory that I created this created a /libffado-2.0~rc1 directory, a libffado_2.0~rc1.orig.tar.gz archived package, a libffado_2.0~rc1-0ubuntu2.diff.gz archived package and a libffado_2.0~rc1-0ubuntu2.dsc file.

The directory is for the source files, the orig.tar.gz is the original tarball from upstream, the diff.gz is a tarball of the differences between the original and the Ubuntu built pacakge and the .dsc file is a description file.

Okay, now comes the really hard part; running prevu. First we need to change directory to the source code directory and then type:
cd libffado-2.0~rc1
prevu

That's it, watch it work. It might be a while though.

If everything works well you will be told that you have a .deb file located under the /var/cache/prevu/hardy-debs directory. Of course, this is for Hardy 8.04.

Next I will be moving onto libcelt-dev because JACK requires it as a build-depends. This will provide the capability for Hardy users to use netjack if they build the CELT codec, which is a low latency codec for sending audio over the net.

The decision to build libcelt-dev was slightly difficult for me because of my general ignorance of package building. It was either build CELT also or remove it as a build-depends but then I would have jacked with the changelog and then had to change the version number of JACK and I decided that it would be simpler (hopefully) just to build CELT before building JACK. I suppose we shall find out.

prevu

prevu is an extremely handy tool for backporting and I am hoping to use it extensively in my efforts.

The first thing I did was to clean a 30 gig partition of my drive and install Ubuntu Studio 8.04 and install all the updates.

Next I installed prevu with:
sudo apt-get install prevu

The next step was to add the source repository from Juanty. This is important because prevu will build the most current available version of your application through this repository. Therefore, I opened my /etc/apt/sources.list by typing:
sudo gedit /etc/apt/sources.list

and added the following to the bottom:
# Adding jaunty sources for prevu
deb-src http://archive.ubuntu.com/ubuntu jaunty main restricted universe multiverse

This allows you (and more importantly prevu) to download the source packages from the main, restricted, universe, and multiverse repositories for jaunty.

Next I needed to initialize prevu by typing:
sudo -E prevu-init

Wait a while while it does its thing. Then it will ask if you want to add the .deb's you create as a repository. I answered yes.

This will allow you to either apt-get install or use synaptic to install the newer version applications into your older (but very stable) LTS version of Ubuntu Studio. And remove them also when necessary with apt-get or synaptic.

That's it for installing and initializing prevu. Next I'm going to document building libffado.

Changes

Well, first a brief notice of change.

I have decided to put the FOSS Music Project on indefinite hold as I have begun to help the Ubuntu Studio developers. Currently I am helping with documentation (which is effectively what this project was about, although slighter in scope), testing and perhaps backporting.

Therefore, I will probably be using this blog to help myself document some of the backporting processes.

I will be attempting to backport several applications and libraries to Ubuntu Studio 8.04 LTS Hardy including FFADO, JACK and Ardour. This will not only provide updated version of these applications but this will also provide fire wire support via the FFADO driver.

I should also point out that the next long term support (LTS) version is due in approximately six months, negating the effect of my backports with the following notable exception; I will have gained the experience of doing them. This should hopefully prepare a good foundation for helping to keep up with backporting applications for the upcoming LTS version.