OpenStack on Raspberry Pi: Part 3 – Packages

After having spent too much time down a rabbit hole that involved rebuilding at least one Pi, it seems the Grizzly and Havana OpenStack packages have not been ported to the Raspberry Pi. All is not lost however, it seems one can download the sources and recompile ALL THE THINGS or so. Here is a quick how-to on that.

Note, all of this work is occurring outside the Raspberry Pi, on a Debian 7 (Wheezy) box.

The steps that follow are borrowed heavily from here and here.

Get the sources

To get all the sources, we first need to add the current Debian repositories for Havana as follows:

echo "deb http://archive.gplhost.com/debian havana-backports main" >> /etc/apt/sources.list
echo "deb http://archive.gplhost.com/debian havana main" >> /etc/apt/sources.list
echo "deb-src http://archive.gplhost.com/debian havana-backports main" >> /etc/apt/sources.list
echo "deb-src http://archive.gplhost.com/debian havana main" >> /etc/apt/sources.list
apt-get update && apt-get install gplhost-archive-keyring && apt-get update && apt-get dist-upgrade
apt-get install –y dpkg-dev

Next, we create a folder to download the sources into:

mkdir –p /root/rpi-sources
cd /root/rpi-sources

Finally, we download them all:

for i in `grep Package /var/lib/apt/lists/archive.gplhost.com_debian_dists_havana-backports_main_binary-amd64_Packages | awk '{print $2}'`; do apt-get source $i && apt-get build-dep $i; done

And:

for i in `grep Package /var/lib/apt/lists/archive.gplhost.com_debian_dists_havana_main_binary-amd64_Packages | awk '{print $2}'`; do apt-get source $i && apt-get build-dep $i; done

Recompile ALL the things

Next up, we need to compile all these things, and for the right architecture too, so here goes:

for i in `ls -al | grep drwxr-xr-x | awk '{print $9}'`; do cd /root/rpi-sources/$i; debuild -aarmhf -us -uc; cd /root/rpi-sources; done

Summary

This post only gets you part of the way… we’ll still need to place these packages into a repository, and then get that synced down to the rPI, but we’ll get there.